(syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
[bpt/emacs.git] / src / ChangeLog
CommitLineData
b357b9d4
KR
12000-06-16 Ken Raeburn <raeburn@gnu.org>
2
3 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
4 termination of string. Fix sense of test whether
5 Vline_number_display_limit is an integer.
b357b9d4 6
a871441d
GM
72000-06-16 Gerd Moellmann <gerd@gnu.org>
8
6344985d
GM
9 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
10 of titles.
11
a871441d
GM
12 * dispnew.c (update_frame_1): Handle case that cursor vpos is
13 out of bounds.
14
228b083e
EZ
152000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
16
17 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
18 of its headers.
19
c25b53a2
KH
202000-06-15 Kenichi Handa <handa@etl.go.jp>
21
22 * coding.c (decode_coding_emacs_mule): Always set src_base at the
23 start of the while loop.
24
a6981b11
GM
252000-06-15 Gerd Moellmann <gerd@gnu.org>
26
e9924e52
GM
27 * atimer.c (alarm_signal_handler): Add forward declaration.
28
a6981b11
GM
29 * data.c (set_internal): Remove debug code.
30
25fa6deb
GM
312000-06-14 Gerd Moellmann <gerd@gnu.org>
32
dce6b995
GM
33 * Makefile.in (bootstrap-temacs): Add `-I../src'.
34
9f817ea4
GM
35 * unexec.c (toplevel) [COFF]: Include coff.h.
36
37 * s/lynxos.h: New file.
38
39 * keymap.c (Fsingle_key_description): Enclose function key and
40 event symbol names in angle brackets.
41
8a4e3c0c
GM
42 * xdisp.c (setup_echo_area_for_printing): Call
43 message_log_maybe_newline if message_buf_print is not set.
44
45 * print.c (printchar, strout): Don't check message_buf_print
46 before calling setup_echo_area_for_printing because that
47 function does something useful even when message_buf_print is
48 already set.
49
25fa6deb
GM
50 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
51 variables.
52 (ensure_echo_area_buffers): Initialize echo buffer's
53 truncate lines setting to nil.
54 (with_echo_area_buffer): Don't set the echo buffer's truncate
55 lines setting here.
8a4e3c0c 56 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
57 of message_truncate_lines.
58 (resize_mini_window): Handle case that lines are truncated.
59 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
60 message-truncate-lines.
61
62 * keyboard.c (read_char): Bind message-truncate-lines to t
63 while displaying a help-echo.
64
65 * lisp.h (Qmessage_truncate_lines): External declaration.
66
163dcff3
GM
672000-06-13 Gerd Moellmann <gerd@gnu.org>
68
1681ead6
GM
69 * xdisp.c (Vline_number_display_limit): Renamed from
70 line_number_display_limit.
71 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
72 Extend documentation string. Initialize
73 Vline_number_display_limit to nil meaning no limit.
74 (decode_mode_spec): Use Vline_number_display_limit with its new
75 meaning.
76
163dcff3
GM
77 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
78
792000-06-13 Richard Stallman <rms@caffeine.ai.mit.edu>
80
81 * frame.c (Fmodify_frame_parameters): Doc fix.
82
83 * xfns.c (x_set_frame_parameters): Comment fix.
84
85 * frame.c (store_frame_param): Call swap_in_global_binding if the
86 variable's current binding was chosen based on this frame.
87
88 * data.c (swap_in_global_binding): New function.
89
a704139d
EZ
902000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
91
92 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
93 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
94
9b6610db
EZ
952000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
96
97 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
98
c68833d2
JR
992000-06-12 Jason Rumney <jasonr@gnu.org>
100
101 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
102
103 * w32.h (EMACS_W32_H): Renamed from _NT_H_
104
105 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
106
107 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
108
ed1056b3
GM
1092000-06-12 Gerd Moellmann <gerd@gnu.org>
110
111 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
112 (syms_of_xfaces): Defsubr Sdump_colors.
113 (x_free_colors): Don't treat b&w specially on default visual.
114 (x_free_dpy_colors): New function.
115 (free_face_colors): Don't check visual class; it's done
116 in x_free_colors.
117
118 * xterm.c (x_frame_of_widget): New function.
119 (x_alloc_nearest_color_for_widget): Use it.
120 (x_copy_dpy_color): New function.
121 (x_destroy_window): Free various colors.
122
5050a2ef
KH
1232000-06-12 Kenichi Handa <handa@etl.go.jp>
124
125 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
126
127 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
128
129 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
130
131 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
132
133 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
134
fb1b041d
DL
1352000-06-11 Dave Love <fx@gnu.org>
136
137 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
138
ff96b5f4
EZ
1392000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
140
141 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
142
db8eeecd
GM
1432000-06-11 Gerd Moellmann <gerd@gnu.org>
144
ed1056b3 145 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
146 to `XEvent *'.
147
49b71c5f
KH
1482000-06-10 Kenichi Handa <handa@etl.go.jp>
149
c479bd55
KH
150 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
151 (regex_compile): Fix the code for handling the case of single byte
152 char and multibyte char being mixed in a range within [...].
153
ff6a65c2
KH
154 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
155 and dst_multibyte members of coding.
156
49b71c5f
KH
157 * charset.c (update_charset_table): Update the table
158 bytes_by_char_head.
159 (init_charset_once): Initialize elements of bytes_by_char_head to
160 1 except for leading codes for private charases.
161
162 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
163 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
164 sequence.
165
9e80b57d
KR
1662000-06-09 Ken Raeburn <raeburn@gnu.org>
167
168 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
169 access the data it doesn't point to.
170
f83fe4b4
GM
1712000-06-08 Gerd Moellmann <gerd@gnu.org>
172
173 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 174 will be translated to a switch-frame event when reading the
f83fe4b4
GM
175 event queue. This is necessary because Emacs otherwise won't
176 perform a switch-frame to a new frame until some other event, for
177 example a keystroke event, forces it to do so. This has various
178 effects, one visible being that the cursor of a frame created with
179 C-x 5 2 or switched to with a window manager key binding like
180 A-TAB stays hollow because selected_window isn't on the newly
181 focused frame until the switch-frame is performed.
182
183 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
184 generating a switch-frame event if necessary.
185
186 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
187
188 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
189 it's an integer.
190
0890801b
KH
1912000-06-08 Kenichi Handa <handa@etl.go.jp>
192
193 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
194 charset.
195
173cbca8
GM
1962000-06-07 Gerd Moellmann <gerd@gnu.org>
197
3091c2a6
GM
198 * window.c (displayed_window_lines): Take empty lines at
199 the bottom of a window into account.
200
f38952fe
GM
201 * window.c (displayed_window_lines): New function.
202 (Fmove_to_window_line): Use displayed_window_lines to determine
203 the number of lines to move, instead of using the window's height.
204
205 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
206 to stop reading, even if the form read sets point to a different
207 value when evaluated.
208
173cbca8
GM
209 * xdisp.c (display_line): Fix code deciding in which line to
210 put the cursor.
211
6ba6c818
KH
2122000-06-07 Kenichi Handa <handa@etl.go.jp>
213
214 * fileio.c (e_write): Free composition data if stored in
215 coding->cmp_data.
216
5f1aea9a
GM
2172000-06-06 Gerd Moellmann <gerd@gnu.org>
218
666852af
GM
219 * xdisp.c (display_line): Set row's and iterator's
220 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
221 Set cursor even if row ends in the middle of a character.
222 (dump_glyph_row): Print values of new flags.
223 (redisplay_window) <cursor movement in unchanged window>: When
224 point has been moved forward, and PT is at the end of the cursor
225 row, don't place the cursor in the next row if the cursor row ends
226 in the middle of a character or at ZV.
227
228 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
229 (struct glyph_row): Add starts_in_middle_of_char_p and
230 ends_in_middle_of_char_p.
231 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
232 ends_in_middle_of_char_p flag.
233 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
234
d13f3e2e
GM
235 * term.c (append_glyph): Revert change of 2000-06-06.
236
237 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
238 padding glyph not fitting on line as whole character not
239 fitting on line.
240
5f1aea9a
GM
241 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
242 this isn't true for images with `:ascent 100'.
243
10cda9b0
KH
2442000-06-06 Kenichi Handa <handa@etl.go.jp>
245
ed00559d
KH
246 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
247 as modified if it is originally unmodified.
248
10cda9b0
KH
249 * term.c (encode_terminal_code): Change the way to check if
250 terminal coding does any conversion.
251 (append_glyph): Set glyph->pixel_width correctly.
252
253 * xdisp.c (display_line): While checking line continuation, pay
254 attention to a padding glyph.
255
1969fae2
GM
2562000-06-05 Gerd Moellmann <gerd@gnu.org>
257
258 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
259
162ccef4
DL
2602000-06-05 Dave Love <fx@gnu.org>
261
f19f32dd
DL
262 * xdisp.c: Include fontset.h.
263
264 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
265
266 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
267
268 * dispnew.c: Conditionally include term.h.
269
270 * coding.h: Declare code_convert_string_norecord.
271
272 * frame.h (struct frame): Use volatile unconditionally.
273
274 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
275
276 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
277
278 * systime.h: Protect against multiple inclusion.
279 (timezone) [USG5_4]: Define as time_t.
280
281 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
282 (Foptimize_char_table, make_temp_name): Declare.
283
284 * Makefile.in (xdisp.o): Depend on fontset.h.
285
286 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
287
288 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
289 (Foptimize_char_table, make_temp_name): Declare.
290
162ccef4
DL
291 * s/irix4-0.h:
292 * s/irix5-0.h:
293 * s/netbsd.h: Don't define autoconfiscated MATHERR.
294
2082fe81
DL
2952000-06-02 Dave Love <fx@gnu.org>
296
297 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
298
dcf671d2
GM
2992000-06-02 Gerd Moellmann <gerd@gnu.org>
300
301 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 302 result face, set flags in that face indicating that colors may not
dcf671d2
GM
303 be freed.
304
305 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
306 glyph, use the ASCII NUL character to determine the face.
307
d42122a3
DL
3082000-06-02 Dave Love <fx@gnu.org>
309
310 * sysdep.c: Conditionally include stdlib.h, unistd.h.
311 (VFORK_RETURN_TYPE): Remove.
312
313 * config.in: Add NO_MATHERR.
314
dd432f16
DL
3152000-06-01 Dave Love <fx@gnu.org>
316
90aa4ea8
DL
317 * cmds.c (internal_self_insert): Don't check
318 Vbefore_change_function, Vafter_change_function.
319
320 * insdel.c (signal_before_change, signal_after_change): Likewise.
321
322 * buffer.c (Vbefore_change_function, Vafter_change_function):
323 Variables and their initializations deleted.
324
2330c9d4
DL
325 * callint.c (Fcall_interactively): Doc fix.
326
dd432f16
DL
327 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
328
bf9e8804
DL
3292000-05-31 Dave Love <fx@gnu.org>
330
331 * textprop.c: Revert last change -- duplicated.
332
3694b4ab
GM
3332000-05-31 Gerd Moellmann <gerd@gnu.org>
334
335 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
336 in #if 0.
337
338 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
339
f14156cd
JR
3402000-05-31 Jason Rumney <jasonr@gnu.org>
341
8119aab8
JR
342 * search.c (Fre_search_forward, Fre_search_backward)
343 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
344
f14156cd
JR
345 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
346
4aab9be3
JR
3472000-05-30 Jason Rumney <jasonr@gnu.org>
348
349 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
350 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
351
352 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
353 member.
354
355 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
356 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
357 expand a nil default_filename.
358
359 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
360 pointer to glyph_to_pixel_coords, not a frame.
361
362 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
363 coding.h to dependencies.
364
365 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
366
367 * w32console.c (glyph_to_pixel_coords): Change first parameter to
368 window pointer to be consistent with w32term.c and xterm.c.
369
370 * w32fns.c: Format and doc changes to bring closer to xfns.c.
371 (VIETNAMESE_CHARSET): Define if not defined in system headers.
372 (Qline_spacing, Qcenter): New variables.
373 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
374 (x_set_line_spacing): New function.
375 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
376 macros.
377 (x_specified_cursor_type): New function.
378 (x_set_cursor_type): Use it.
379 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
380 and icon strings.
381 (validate_x_resource_name, x_get_resource_string): Measure lengths
382 of external strings in bytes.
383 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
384 GetTextExtentPoint32 with NULL title.
385 (Fx_create_frame): Initialize Qline_spacing.
386 (w32_load_system_font): Initialize font->double_byte_p.
387 (x_to_w32_charset): Use Vw32_charset_info_alist.
388 (Image, busy cursor, tooltip functions): Merged changes from
389 xfns.c. Not yet functional on Windows.
390
391 * w32gui.h (W32FontStruct): Add double_byte_p member.
392
393 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
394 (emacs_button_translation): Use it.
395 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
396 in `mask' to be set.
397
398 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
399 menu strings.
400
401 * w32term.c: Format and doc changes to bring closer to xterm.c.
402 (w32_char_font_type): New enum.
403 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
404 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
405 (w32_encode_char): New function.
406 (x_encode_char): Removed.
407 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
408 x_encode_char and w32_font_is_double_byte.
409 (x_produce_image_glyph): Use image_ascent.
410 (x_produce_glyphs): Use new version of w32_per_char_metric and
411 handle NULL return value. Allow extra line spacing.
412 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
413 (w32_get_glyph_overhangs): Remove unicode_p param. Use
414 w32_font_type member of glyph instead.
415 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
416 (fast_find_position): Make sure not to consider rows not visible
417 in the window.
418 (w32_read_socket) [WM_MENUSELECT]: Cannot call
419 w32_menu_display_help with input blocked, as it can abort.
420 (x_display_and_set_cursor): Choose cursor depending
421 on buffer-local value of cursor_type.
422 (x_draw_bar_cursor): Add parameter WIDTH.
423
424 * w32term.h (CP_DEFAULT): Define.
425 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
426
10fc3187
GM
4272000-05-30 Gerd Moellmann <gerd@gnu.org>
428
429 * search.c (Fre_search_forward, Fre_search_backward)
430 (Fposix_search_backward, Fposix_search_forward): Doc fix.
431
d0555360
KH
4322000-05-30 Kenichi Handa <handa@etl.go.jp>
433
434 * coding.c (detect_coding_iso2022): Fix code for checking
435 CODING_CATEGORY_MASK_ISO_8_2.
436
f1ad044f
SM
4372000-05-29 Stefan Monnier <monnier@cs.yale.edu>
438
439 * regex.c (PREFETCH_NOLIMIT): New function.
440 (re_match_2_internal): Use it and adjust the end_match_2 logic.
441
84ec3b4b
GM
4422000-05-29 Gerd Moellmann <gerd@gnu.org>
443
66254a13
GM
444 * syntax.c (find_defun_start): Move test for
445 open_paren_in_column_0_is_defun_start outside of the loop.
446
49e70dec
GM
447 * xdisp.c (redisplay_window): Really switch buffers when
448 displaying mode lines, and temporarily set selected_frame to the
449 frame of the window that's redisplayed.
450
84ec3b4b
GM
451 * xfaces.c (free_realized_faces): Block/unblock input.
452 (free_realized_multibyte_face): Ditto.
453
869a3a14
DL
4542000-05-29 Dave Love <fx@gnu.org>
455
456 * textprop.c (Qkeymap): New variable.
457 (syms_of_textprop): Intern it.
458
459 * keymap.c: Include intervals.h.
460 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
461
462 * Makefile.in (keymap.o): Depend on intervals.h.
463
464 * keyboard.c (menu_bar_items, tool_bar_items)
465 (Fexecute_extended_command): Deal with `keymap' property.
466 (read_key_sequence): Track map from `keymap' property as well as
467 `local_map'.
468
469 * intervals.c (get_local_map): Extra arg to allow looking for
470 `keymap' too.
471
472 * intervals.h (map_property): New enum.
473 (get_local_map): Extra arg using it.
474 (Qkeymap): Declare.
475
84ec3b4b 476 * lisp.h (get_local_map): Don't declare here.
869a3a14 477
89d0c844
KH
4782000-05-29 Kenichi Handa <handa@etl.go.jp>
479
480 * Makefile.in (callproc.o): Depend on composite.h.
481
482 * callproc.c: Include composite.h.
483 (Fcall_process): Handle composition correctly.
484
485 * coding.h (coding_allocate_composition_data): Extern it.
486 (coding_restore_composition): Likewise.
487
488 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
489 yet allocated, finish decoding with result
490 CODING_FINISH_INSUFFICIENT_CMP.
491 (coding_allocate_composition_data): Make it non-static.
492 (coding_restore_composition): Likewise.
493
797a084a
EZ
4942000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
495
496 * charset.c (syms_of_charset): Revert last change.
497
cf872af5
EZ
4982000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
499
500 * term.c (produce_glyphs): Treat characters from the eight-bit-*
501 charsets as unibyte, with 1-column screen width. Sent by Kenichi
502 Handa.
503
5b1ae051
EZ
5042000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
505
506 * charset.c (syms_of_charset): Set width of character sets
507 eight-bit-control and eight-bit-graphic to 1 column.
508
34ec9ebe
GM
5092000-05-26 Gerd Moellmann <gerd@gnu.org>
510
511 * config.in (HAVE_SPEED_T): New define.
512
513 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
514 `extern speed_t'.
515
dd854dc2
DL
5162000-05-26 Dave Love <fx@gnu.org>
517
518 * coding.c (shrink_decoding_region): Initialize eol_conversion.
519
520 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
521 (Fsubr_arity): New function.
522 (syms_of_data): Install them.
523
ba9f8f95
KH
5242000-05-26 Kenichi Handa <handa@etl.go.jp>
525
0f3e0672
KH
526 * charset.c (init_charset_once): Set the table bytes_by_char_head
527 correctly.
528
cebefb44
KH
529 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
530 the default fontset to what Emacs uses by default.
0f3e0672
KH
531 (check_registry_encoding): This function deleted.
532 (Fset_fontset_font): Remove the adhoc condition for the default
533 fontset. Allow cons in FONTNAME.
cebefb44 534
0f3e0672
KH
535 * fns.c (map_char_table): Ignore char-table entries for
536 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 537
7a18af49
KR
5382000-05-25 Ken Raeburn <raeburn@gnu.org>
539
540 * emacs.c (main): Initialize keyboard syms before initializing
541 window code, so face names are available.
542
d2af47df
SM
5432000-05-25 Stefan Monnier <monnier@cs.yale.edu>
544
545 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
546 of an anchor at the beginning of a shy-group.
547
fc6a6a4e
GM
5482000-05-25 Gerd Moellmann <gerd@gnu.org>
549
550 * xdisp.c (handle_invisible_prop): Don't try to skip over
551 invisible text if end of text is already reached.
552
005f0d35
DL
5532000-05-25 Dave Love <fx@gnu.org>
554
02513cdd
DL
555 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
556
005f0d35
DL
557 * coding.c (encode_eol): Add null statement after label.
558
89f6ca4e
EZ
5592000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
560
561 * w16select.c (Fw16_set_clipboard_data): Fix the change from
562 2000-05-20.
563
a4e1759e
KH
5642000-05-25 Kenichi Handa <handa@etl.go.jp>
565
566 * ccl.c (ccl_driver): Fix previous change.
567
eacfd7fe
KH
5682000-05-25 Kenichi Handa <handa@etl.go.jp>
569
46ab33a9
KH
570 * coding.c (run_pre_post_conversion_on_str): Set point to the
571 beginning of buffer before calling coding->post_read_conversion.
572 (decode_coding_string): Give correct args to
573 run_pre_post_conversion_on_str.
574 (encode_coding_string): Likewise.
575
eacfd7fe
KH
576 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
577 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
578 eight-bit-graphic correctly.
579
f8569325
DL
5802000-05-24 Kenichi HANDA <handa@etl.go.jp>
581
582 * fileio.c (Finsert_file_contents): Even if a file is not found,
583 execute codes for setting up coding system. Call
584 after-insert-file-functions unconditionally.
585
04545643
GM
5862000-05-24 Gerd Moellmann <gerd@gnu.org>
587
588 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
589 BSD_PGRPS are not defined.
590
747d90ea
KH
5912000-05-24 Kenichi Handa <handa@etl.go.jp>
592
593 * charset.c (update_charset_table): Accept nil in LONG_NAME and
594 DESCRIPTION.
595 (syms_of_charset): Avoid building same strings.
596
716e3b88
GM
5972000-05-23 Gerd Moellmann <gerd@gnu.org>
598
599 * lread.c (Fload): Add a comment about the meaning of
600 Vuser_init_file being t.
601
602 * puresize.h (BASE_PURESIZE): Increase to 675000.
603
604 * s/gnu-linux.h (setpgrp): Don't define it here because this
605 prevents compilation on GNU/Linux systems with glib 2.2.
606
607 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
608 as setpgid.
609
9aeb39fa
EZ
6102000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
611
612 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
613 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
614 version.
615 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
616
29ced61b
KH
6172000-05-23 Kenichi Handa <handa@etl.go.jp>
618
0574a2ed
KH
619 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
620 unconditionally.
621
3d80f24d
KH
622 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
623
624 * term.c (encode_terminal_code): Set coding->src_multibyte
625 properly.
626
29ced61b
KH
627 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
628
d7e00792
KH
6292000-05-22 Kenichi Handa <handa@etl.go.jp>
630
c9d80d38
KH
631 * keyboard.c (read_char): Allow character codes 128..255 to be
632 handled by input-method-function.
633
d7e00792
KH
634 * insdel.c (adjust_markers_for_replace): Fix previous change.
635 (adjust_after_replace): If PREV_TEXT is nil, call
636 adjust_markers_for_insert, not adjust_markers_for_replace.
637
087121cc
GM
6382000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
639
640 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
641 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
642 [HAVE_GRANDPT]: Define.
643 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
644
645 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
646 like SYSV_PTYS.
647
648 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
649
650 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
651
c9671f81
KH
6522000-05-20 Kenichi Handa <handa@etl.go.jp>
653
654 The following changes are to handle 8-bit characters in a
655 multibyte buffer/string without facing with byte combining
656 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
657 eight-bit-graphic (for 0xA0..0xFF) are introduced.
658
659 * Makefile.in (fns.o): Depend on charset.h.
660
661 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
662 convert it to unibyte.
663 (make_string): Use parse_str_as_multibyte, not chars_in_text.
664
665 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
666 apparent char boundary.
667 (Fset_buffer_multibyte): Convert 8-bit characters in the range
668 0x80..0x9F to/from multibyte form.
669
670 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
671 to unibyte.
672
673 * callproc.c (Fcall_process): Always encode an argument string if
674 it is multibyte. Setup src_multibyte and dst_multibyte members of
675 process_coding properly.
ce75fd23 676
c9671f81
KH
677 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
678 SPLIT_NON_ASCII_CHAR.
679
680 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
681 as is.
682 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
683
684 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
685 variables.
686 (SPLIT_CHARACTER_SEQ): This macro deleted.
687 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
688 valid.
689 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
690 and eight-bit-graphic.
691 (char_to_string): Likewise. Signal an error for too large
692 character code.
693 (char_printable_p): Return 0 for 8-bit characters.
694 (update_charset_table): Update iso_charset_table only when a final
695 character is non-negative.
696 (find_charset_in_text): Renamed from find_charset_in_str.
697 Arguments and return value changed. Callers changed.
698 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
699 be -1 if CHARSET is used only internally.
700 (Fmake_char_internal): Handle new charsets; eight-bit-control and
701 eight-bit-graphic.
702 (Fcharset_after): Simplified.
703 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
704 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
705 (multibyte_chars_in_text): Simplified by assuming there's no
706 invalid multibyte sequence.
707 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
708 str_as_unibyte): New functions.
709 (Fstring): Simpified by assuming that byte combining never
710 happens.
711 (init_charset_once): Initialization for
712 LEADING_CODE_8_BIT_CONTROL.
713 (syms_of_charset): Intern and staticpro Qeight_bit_control and
714 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
715 eight-bit-control and eight-bit-graphic.
716
717 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
718 CHARSET_8_BIT_GRAPHIC): New macros.
719 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
720 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
721 (CHARSET_REVERSE_CHARSET): Likewise.
722 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
723 eight-bit-graphic.
724 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
725 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
726 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
727 encounter an invalid multibyte sequence.
728 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
729 sequence is always valid.
730 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
731 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
732 macros.
733 (CHAR_STRING): For 8-bit characters, call char_to_string.
734 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
735 multibyte sequence is always valid.
736 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
737 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
738 str_as_unibyte): Extern them.
739 (BCOPY_SHORT): Fix a bug.
740 (CHAR_LEN): This macro deleted. Callers changed to use
741 CHAR_BYTES.
742 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
743 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
744 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
745
bd4bde7f 746 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
747 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
748 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
749 EMIT_BYTES): New macros.
750 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
751 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
752 macros deleted.
753 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
754 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
755 check the validity of multibyte sequence.
756 (decode_coding_emacs_mule): New function.
757 (encode_coding_emacs_mule): New macro.
758 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
759 the source.
760 (DECODE_ISO_CHARACTER): Just return a character code.
761 (DECODE_COMPOSITION_START): Set coding->result instead of result.
762 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
763 EMIT_CHAR to produced decoded characters. Exit the loop only by
764 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
765 block here.
766 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
767 only position codes for an invalid character.
768 (encode_designation_at_bol): Return new destination pointer. 5th
769 arg DSTP is changed to DST.
770 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
771 from the source by ONE_MORE_CHAR. Don't handle the case of last
772 block here.
773 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
774 macros deleted.
775 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
776 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
777 TWO_MORE_BYTES to fetch a byte from the source.
778 (encode_eol): Pay attention to coding->src_multibyte.
779 (detect_coding, detect_eol): Preserve members src_multibyte and
780 dst_multibyte.
781 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
782 (encoding_buffer_size): Set magnification to 3 for all coding
783 systems that require encoding.
784 (ccl_coding_driver): For decoding, be sure that the result is
785 valid multibyte sequence.
786 (decode_coding): Initialize coding->errors and coding->result.
787 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
788 and raw-text, always call decode_eol. Handle the case of last
789 block here. If not coding->dst_multibyte, convert the resulting
790 sequence to unibyte.
791 (encode_coding): Initialize coding->errors and coding->result.
792 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
793 and raw-text, always call encode_eol. Handle the case of last
794 block here.
795 (shrink_decoding_region, shrink_encoding_region): Detect cases
796 that we can't skip data more rigidly.
797 (code_convert_region): Setup src_multibyte and dst_multibyte
798 members of coding. For decoding, if the buffer is multibyte,
799 convert the source sequence to unibyte in advance. For encoding,
800 if the buffer is multibyte, convert the resulting sequence to
801 multibyte afterward.
802 (run_pre_post_conversion_on_str): New function.
803 (code_convert_string): Deleted and divided into the following two.
804 (decode_coding_string, encode_coding_string): New functions.
805 (code_convert_string1, code_convert_string_norecord): Call one of
806 above.
807 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
808 MAKE_NON_ASCII_CHAR.
809 (Fset_terminal_coding_system_internal,
810 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
811 and dst_multibyte members.
812 (init_coding_once): Initialize iso_code_class with new enum
813 ISO_control_0 and ISO_control_1.
814
815 * coding.h (enum iso_code_class_type): Member ISO_control_code is
816 devided into ISO_control_0 and ISO_control_1.
817 (struct coding_system): New members src_multibyte, dst_multibyte,
818 errors, and result. Delete member fake_multibyte.
819 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
820 nonzero.
821 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
822 nonzero.
823
824 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
825 (Faset): Likewise.
826
827 * editfns.c (Fformat): Be sure to convert 8-bit characters to
828 multibyte form.
829 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
830 combining occurs.
831 (Ftranspose_region): Delete codes for handling byte combining.
832
833 * fileio.c (Finsert_file_contents): Setup src_multibyte and
834 dst_multibyte members of coding. On handling REPLACE on unibyte
835 buffer, convert the result of decode_coding to unibyte. On
836 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 837 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
838 multibyteness of the source (buffer or string).
839
840 * fns.c (concat): Handle 8-bit characters correctly.
841 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
842 unibyte in the result.
843 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
844 valid multibyte form in the result.
845 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
846 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
847 return -1, signal an error.
848 (base64_encode_1): New arg MULTIBYTE. Get each character by
849 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
850 character is found, return -1.
851 (Fbase64_decode_region): Delete codes for handling byte-combining.
852 Treat each decoded byte as a unibyte character.
853 (Fbase64_decode_string): Return unibyte string.
854 (Fcompare_strings, concat, string_byte_to_char): Use
855 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
856 FETCH_STRING_CHAR_ADVANCE.
857 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
858 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
859
860 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
861 SPLIT_NON_ASCII_CHAR.
862 (fontset_ref_via_base, fontset_set): Likewise
863
864 * insdel.c (adjust_markers_for_record_delete): Deleted.
865 (adjust_markers_for_insert): Argument changed. Caller changed.
866 (adjust_markers_for_replace): Likewise.
867 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
868 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
869 (copy_text): Delete unused local varialbe c_save. For converting
870 to multibyte, be sure to make all 8-bit characters in valid
871 multibyte form.
872 (count_size_as_multibyte): Handle 8-bit characters correctly.
873 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
874 adjust_after_replace, replace_range, del_range_2)
875 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
876 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
877 adjust_after_replace, replace_range, del_range_2) Delete codes for
878 handling byte combining.
879 (adjust_before_replace): Deleted.
880
881 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
882 SPLIT_NON_ASCII_CHAR.
883 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
884 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
885 unconditionally.
886 (Fkey_description): Likewise.
887
888 * lread.c (read1): On reading multibyte string, be sure to make
889 all 8-bit chararacters in valid multibyte form.
890 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
891
892 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
893 unconditionally.
894
895 * process.c (Fstart_process): GCPRO current_dir before calling
896 Ffind_operation_coding_system. Encode arguments here.
897 (create_process): Don't encode arguments here. Setup
898 src_multibyte and dst_multibyte members of struct coding.
899 (read_process_output): Setup src_multibyte and dst_multibyte
900 members of struct coding. If the output is to multibyte buffer,
901 always decode the output of the process. Adjust the
902 representation of 8-bit characters to the multibyteness of the
903 output.
904 (send_process): Setup coding->src_multibyte according to the
905 multibyteness of the source.
906
907 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
908 unconditionally.
909 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
910 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
911
912 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
913 CHAR_LEN.
914
915 * w16select.c (Fw16_set_clipboard_data): Setup members
916 src_multibyte and dst_multibyte of coding. Adjusted for the
917 change for find_charset_in_str.
918 (Fw16_get_clipboard_data): Likewise.
919
920 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
921 dst_multibyte of coding.
922 (x_to_w32_font): Likewise.
923
924 * w32select.c (Fw32_set_clipboard_data): Setup members
925 src_multibyte and dst_multibyte of coding. Adjusted for the
926 change for find_charset_in_str.
927 (Fw32_get_clipboard_data): Likewise.
928
929 * xdisp.c (get_next_display_element): Handle 8-bit characters
930 correctly.
931 (next_element_from_display_vector): Use CHAR_BYTES instead of
932 CHAR_LEN.
933 (disp_char_vector): Use SPLIT_CHAR instead of
934 SPLIT_NON_ASCII_CHAR.
935
936 * xselect.c (selection_data_to_lisp_data): Setup members
937 src_multibyte and dst_multibyte of coding. Adjusted for the
938 change for find_charset_in_str.
939 (lisp_data_to_selection_data): Likewise.
940
5f64c9e0
GM
9412000-05-19 Gerd Moellmann <gerd@gnu.org>
942
2b63d473
GM
943 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
944 buffer.
945
5f64c9e0
GM
946 * dispextern.h (Vimage_types): Add extern declaration.
947
948 * xdisp.c (Vimage_types): Moved here from xfns.c.
949 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
950
951 * xfns.c (Vimages_types): Moved to xdisp.c.
952 (syms_of_xfns): Move `image-types' to xdisp.c.
953
954 * w32fns.c (Vimage_types): Removed.
955 (syms_of_w32fns): Remove `image-types'.
956
813086ea
KH
9572000-05-18 Kenichi Handa <handa@etl.go.jp>
958
959 * fns.c (map_char_table): Pay attention to character number of
960 charset. Check the validity of charset at the first level. For
961 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
962 the default value.
963
964 * fontset.c: Include "buffer.h".
965 (fs_load_font): If the face has fontset, record the face ID in
966 that fontset.
967 (Finternal_char_font): New function.
968 (accumulate_font_info): New function.
969 (Ffontset_info): Rewritten for the new fontset implementation.
970 (syms_of_fontset): Register Vdefault_fontset in the first element
971 of Vfontset_table. Include Vdefault_fontset in
972 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
973 function.
974
bdaebbf0
DL
9752000-05-16 Dave Love <fx@gnu.org>
976
977 * m/iris5d.h: Deleted -- unused.
978
cb613bb8
GM
9792000-05-16 Gerd Moellmann <gerd@gnu.org>
980
b15f3b77
GM
981 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
982 `invalid' instead of `illegal'.
983
984 * indent.c (Fmove_to_column): When ending within a tab, insert
985 spaces first so that markers at the end of the tab get adjusted.
986
835c1b36
GM
987 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
988 buffer list that wasn't selected in that frame.
989
cb613bb8
GM
990 * filelock.c (get_boot_time): To obtain an 8 char file name, which
991 is needed on mescaline, use a 2 char prefix, and call
992 make_temp_name with second arg non-zero.
993
994 * fileio.c (make_temp_name): New function, extracted from
995 Fmake_temp_name.
996 (Fmake_temp_name): Use it.
997
f685bea9
EZ
9982000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
999
1000 * window.c (coordinates_in_window): Subtract 1 when computing
1001 right_x.
1002
a1b8d58b
GM
10032000-05-15 Gerd Moellmann <gerd@gnu.org>
1004
1005 * Makefile.in (lisp): Add env.elc.
1006
1007 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
1008
a265079f
GM
10092000-05-12 Gerd Moellmann <gerd@gnu.org>
1010
1011 * search.c (Freplace_match): Handle case of `\N' in the
1012 replacement when there's no group N.
1013
da4496b6
GM
10142000-05-11 Gerd Moellmann <gerd@gnu.org>
1015
0ace421a
GM
1016 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
1017 of the message to message_dolog.
1018
1172eb8d
GM
1019 * keyboard.c (read_char): Don't clear current message for help
1020 events; let the code handling help events handle this. Change
1021 code detecting help events that should be ignored.
1022
da4496b6
GM
1023 * xdisp.c (handle_single_display_prop): Don't try to set PT if
1024 we're interating over a string.
1025
0623e40f
DL
10262000-05-09 Dave Love <fx@gnu.org>
1027
1028 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
1029 that offset before writing. Move gcpro region past call of
1030 Ffile_regular_p.
1031
bae2503b
DL
10322000-05-04 Dave Love <fx@gnu.org>
1033
1034 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
1035
ec82fb2f
GM
10362000-05-04 Gerd Moellmann <gerd@gnu.org>
1037
1038 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
1039 of inserted characters when BUF equals the current buffer, and PT
1040 is in front of or equal to FROM.
1041
cbf18892
GM
10422000-05-03 Gerd Moellmann <gerd@gnu.org>
1043
4ff40dd0
GM
1044 * xdisp.c (handle_single_display_prop): If display property value
1045 is invalid, or something not supported on the frame, restore
1046 iterator's position to what it was initially. Make sure to return
1047 0 for invalid and unsupported property values.
1048
cbf18892
GM
1049 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
1050 that x_per_char_metric returns null.
1051
1b0672c3
GM
10522000-05-02 Gerd Moellmann <gerd@gnu.org>
1053
576da55d
GM
1054 * xterm.h (struct face): Add forward declaration.
1055 (struct image): Ditto.
1056 (image_ascent): Add prototype.
1057
1058 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1059 (x_draw_image_relief, x_draw_image_foreground_1): Call function
1060 image_ascent instead of using IMAGE_ASCENT.
1061
1062 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
1063 (IMAGE_ASCENT): Removed.
1064
1065 * xfns.c (Qcenter): New variable.
1066 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
1067 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
1068 (image_ascent): New function.
1069 (lookup_image): Recognize `:ascent center'.
1070 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1071 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
1072 (xbm_load): Don't set image's ascent here.
1073 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
1074 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
1075 check ascent values here.
1076 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
1077 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
1078 (syms_of_xfns): Initialize Qcenter.
1079
1b0672c3
GM
1080 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
1081 to the limits, increase the limits.
1082
0d7811ed
KH
10832000-05-01 Kenichi Handa <handa@etl.go.jp>
1084
1085 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
1086 Check Vfont_encoding_alist against the full name of the opened
1087 font.
1088
a943a5ca
GM
10892000-04-28 Gerd Moellmann <gerd@gnu.org>
1090
1091 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
1092 taller than the window.
1093
5dba1e29
KH
10942000-04-28 Kenichi Handa <handa@etl.go.jp>
1095
1096 * xfaces.c (realize_x_face): Fix the argument of the second
1097 xassert. BASE_FACE may not be a face for ASCII.
1098
353964e3
GM
10992000-04-27 Gerd Moellmann <gerd@gnu.org>
1100
c76e04a8
GM
1101 * print.c (print_object): Treat print-length < 0 as nil.
1102
1103 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
1104
1105 * s/freebsd.h (TERMCAP_OBJ): Removed.
1106 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
1107
1108 * lread.c (read1): Don't treat period followed by certain
1109 characters as symbol start.
1110
1111 * xfns.c (slurp_file): New function.
1112 (xbm_image_p): Handle case of in-memory XBM files.
1113 (xbm_scan): Rewritten to work on memory buffers instead of files.
1114 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
1115 Work on memory buffers instead of files. If DATA is null test
1116 if buffer looks like an in-memory XBM file.
1117 (xbm_load_image): Renamed from xbm_load_image_file. Work on
1118 memory buffers instead of files.
1119 (xbm_file_p): New function.
1120 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
1121
353964e3
GM
1122 * lread.c (end_of_file_error): New function.
1123 (read1): Call it instead of signaling `end-of-file' directly.
1124
1125 * print.c (print_error_message): Print data of `end-of-file'
1126 with Fprinc instead of Fprin1.
1127
24d744ac
KR
11282000-04-26 Ken Raeburn <raeburn@gnu.org>
1129
1130 * window.c (freeze_window_start): Check that minibuffer scroll
1131 window isn't nil before extracting the window structure pointer
1132 from it.
1133
1134 * undo.c (record_delete): If we hit the end of the undo list, stop
1135 picking elements apart.
1136
7464346d
GM
11372000-04-26 Gerd Moellmann <gerd@gnu.org>
1138
1139 * xdisp.c (display_line): If lines are continued, restore
1140 iterator's ascent/descent information to the values before the
1141 first glyph not fitting on the line.
1142
612839b6
GM
11432000-04-25 Gerd Moellmann <gerd@gnu.org>
1144
1145 * xdisp.c (try_window_id) <all changes above window start>: Adjust
1146 positions in glyph matrix. Don't compute new window end
1147 positions.
1148
1149 * dispnew.c (increment_matrix_positions): Renamed from
1150 increment_glyph_matrix_buffer_positions.
1151 (increment_row_positions): Renamed from
1152 increment_glyph_row_buffer_positions.
1153
1154 * dispextern.h: Change names of renamed functions from dispnew.c
1155 in prototypes.
1156
cc181e95
GM
11572000-04-24 Gerd Moellmann <gerd@gnu.org>
1158
abfcc168
GM
1159 * fileio.c (Fdo_auto_save): Create directories for auto-save
1160 list file if necessary.
1161
cc181e95
GM
1162 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
1163 from buffer or frame.
1164 (automatic_hscrolling_p): New variable.
1165 (hscroll_windows): Scroll windows horizontally only if automatic
1166 hscrolling is allowed.
1167 (syms_of_xdisp): New variable `automatic-hscrolling'.
1168
1169 * frame.h (struct frame): Add member extra_line_spacing.
1170
1171 * xfns.c (x_set_line_spacing): New function.
1172 (Fx_create_frame): Set line spacing from resources.
1173 (Qline_spacing): New variable.
1174 (syms_of_xfns): Initialize Qline_spacing.
1175
1176 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
1177
1178 * buffer.c (init_buffer_once): Handle extra_line_spacing.
1179 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 1180 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
1181 extra_line_spacing from default value.
1182 (init_buffer_once): Initialize default value of extra_line_spacing.
1183
1184 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
1185 and extra3.
1186
1187 * xterm.c (x_produce_glyphs): Remove reference to struct it's
1188 prompt_width. Add extra line spacing.
1189
1190 * term.c (produce_glyphs): Remove reference to struct it's
1191 prompt_width.
1192
1193 * dispextern.h (struct it): Remove member prompt_width, add
1194 extra_line_spacing.
1195
58827478
GM
11962000-04-22 Gerd Moellmann <gerd@gnu.org>
1197
1198 * dispnew.c (update_frame_line): When writing a whole line, make
1199 sure cursor is in the right row afterwards, otherwise a use of
1200 capability `ch' in cmgoto might leave the cursor in the row below.
1201
25a87f42
GM
12022000-04-21 Gerd Moellmann <gerd@gnu.org>
1203
1204 * lisp.h (struct Lisp_Buffer_Cons): Remove.
1205
1206 * keyboard.c (timer_check): Fix typo in comment.
1207
54edf5c2
KH
12082000-04-21 Kenichi Handa <handa@etl.go.jp>
1209
1210 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
1211 name change: ch -> character.
1212
3a64eef5
GM
12132000-04-20 Gerd Moellmann <gerd@gnu.org>
1214
1215 * keyboard.c (echo_message_buffer): New variable.
1216 (echo_now): Set echo_message_buffer to the echo area buffer used
1217 to display the echo.
1218 (cancel_echoing): Reset echo_message_buffer to nil.
1219 (read_char): Code rewritten that handles canceling an echo or
1220 echoing a dash, respectively.
1221
1222 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
1223 directory doesn't exist.
1224
6142fdcb
DL
12252000-04-19 Dave Love <fx@gnu.org>
1226
1227 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
1228 (concat): Don't allow numeric args.
1229 (Fconcat): Doc change.
6142fdcb 1230
ac6b5352
SM
12312000-04-19 Stefan Monnier <monnier@cs.yale.edu>
1232
1233 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
1234 instead define end_match(1|2) more carefully.
1235 Use GET_CHAR_BEFORE_2 for `begline'.
1236
cb9215e4
GM
12372000-04-19 Gerd Moellmann <gerd@gnu.org>
1238
5e3dac3f
GM
1239 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
1240 on 64-bit systems where NULL is defined as `0'.
1241
1242 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
1243 the `variable argument list' to make it work on Alpha.
1244
cb9215e4
GM
1245 * m/alpha.h (_LP64) [!_LP64]: Define.
1246 (ORDINARY_LINK): Define for NetBSD.
1247
1248 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
1249
f532dca0
DL
12502000-04-19 Dave Love <fx@gnu.org>
1251
c750667e
DL
1252 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
1253 change.
1254
1255 * Makefile.in (LIBS): Don't use.
1256 (GETLOADAVG_OBJ): Define again.
1257 (otherobj): Add GETLOADAVG_OBJ.
1258
f532dca0
DL
1259 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
1260
1c7e22fd
GM
12612000-04-18 Gerd Moellmann <gerd@gnu.org>
1262
f6d3257b
GM
1263 * lread.c (read_filtered_event): Cancel and start busy cursor.
1264
1c7e22fd
GM
1265 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1266 that the per-character metrics may be null.
1267
e10f64e7
GM
12682000-04-17 Gerd Moellmann <gerd@gnu.org>
1269
0daee095
GM
1270 * buffer.c (clone_per_buffer_values): New function.
1271 (Fmake_indirect_buffer): Add optional argument CLONE. Call
1272 clone_per_buffer_values if CLONE is not nil.
1273
e10f64e7
GM
1274 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1275
38687d43
DL
12762000-04-16 Dave Love <fx@gnu.org>
1277
1278 * Makefile.in: Remove obsolete localcpp stuff.
1279 (GETLOADAVG_OBJ): Don't define.
1280 (obj): Move LIBOBJS...
1281 (otherobj): ... to here.
1282 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
1283 whitespace-only lines after the continuation (Irix).
1284
c21c7262
GM
12852000-04-14 Gerd Moellmann <gerd@gnu.org>
1286
1287 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
1288
1289 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
1290
314767c0
DL
12912000-04-14 Dave Love <fx@gnu.org>
1292
1293 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
1294 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
1295 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
1296 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
1297 NLIST_STRUCT.
1298
1299 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
1300 autoconfiscated HAVE_GETLOADAVG.
1301
1302 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
1303 BROKEN_MKTIME.
1304
a2522dca
GM
13052000-04-14 Gerd Moellmann <gerd@gnu.org>
1306
1307 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
1308 (fill_in_lock_file_name): Avoid existing files that aren't
1309 links.
1310
33744b5d
DL
13112000-04-14 Dave Love <fx@gnu.org>
1312
c21c7262 1313 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
1314 (INTERVAL_SRC): Convert to make variable.
1315 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
1316 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
1317 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
1318 add LIBOBJS.
1319 (SOME_MACHINE_OBJECTS): Remove interval stuff.
1320 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
1321 (shortlisp): Add facemenu, float-sup, frame.
1322 (SOME_MACHINE_LISP): Remove them from here.
1323 (LIBES): Change unused LDLIBS to autoconf LIBS.
1324
1325 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
1326
9d3d5916
KH
13272000-04-14 Kenichi Handa <handa@etl.go.jp>
1328
1329 * composite.c (update_compositions): If FROM and TO are not in a
1330 valid range, do nothing.
1331
198e3c7a
GM
13322000-04-13 Gerd Moellmann <gerd@gnu.org>
1333
1334 * tparam.c (tparam1): Abort when encountering an unknown
1335 `%'-specifier.
1336
1337 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
1338 terminfo.o.
1339
1340 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
1341 as TERMCAP_OBJ.
1342
055a28c9
EZ
13432000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
1344
1345 * fileio.c (a_write): Remove redundant semi-colons.
1346 (e_write): Return -1 if failed to write all the data.
1347 This fixes the changes made at 1999-12-15.
1348
f5c75033
DL
13492000-04-12 Dave Love <fx@gnu.org>
1350
1351 * fns.c (mapcar1): Test for null vals to support mapc.
1352 (Fmapc): New function.
1353
0c3cfc51
EZ
13542000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
1355
1356 * msdos.c (NUM_MOUSE_BUTTONS): Define.
1357 (IT_frame_up_to_date): Support the buffer local value of
1358 cursor-type, if defined.
1359
33465a31
DL
13602000-04-10 Dave Love <fx@gnu.org>
1361
1362 * editfns.c (preceding-char, following-char): Doc fix.
1363
6ed56568
KR
13642000-04-10 Ken Raeburn <raeburn@gnu.org>
1365
1366 * Makefile.in (temacs): Revert 2000-03-12 change.
1367
7cf80d4e
JR
13682000-04-10 Jason Rumney <jasonr@gnu.org>
1369
1370 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
1371
34f3f342
GM
13722000-04-10 Gerd Moellmann <gerd@gnu.org>
1373
1a1b1895
GM
1374 * xdisp.c (setup_echo_area_for_printing): Choose an echo
1375 area buffer, if it's not set up yet.
1376
34f3f342
GM
1377 * indent.c (compute_motion): Set immediate_quit.
1378
be0dbdab
GM
13792000-04-09 Gerd Moellmann <gerd@gnu.org>
1380
c45be9ac
GM
1381 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
1382 variable.
1383 (realize_tty_face): Suppress boldness if colors are the inverse of
1384 the default colors, and tty_suppress_bold_inverse_default_colors_p
1385 is set.
1386 (Ftty_suppress_bold_inverse_default_colors): New function.
1387 (syms_of_xfaces): Defsubr it.
1388
be0dbdab
GM
1389 * buffer.c (Frestore_buffer_modified_p): New function.
1390 (syms_of_buffer): Defsubr it.
1391
e8413c3b
KR
13922000-04-08 Ken Raeburn <raeburn@gnu.org>
1393
87f67317
KR
1394 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
1395 charset id (int) argument, not a charset (Lisp_Object).
1396
e8413c3b
KR
1397 * coding.h (code_convert_string): Declare.
1398 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
1399 object, as the fourth argument to code_convert_string.
1400
1401 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
1402 value.
1403 (Fset_fontset_font): Use EQ to compare lisp objects.
1404
7c752c80
KR
14052000-04-05 Ken Raeburn <raeburn@gnu.org>
1406
c0333abc
KR
1407 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
1408 a pointer that looks like a lisp object.
1409 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
1410 zero, instead see whether it's an integer object, since they can't
1411 have intervals.
1412 (GET_INTERVAL_OBJECT): Simply assign to the destination.
1413
7c752c80
KR
1414 * dispnew.c (allocate_matrices_for_frame_redisplay,
1415 direct_output_forward_char): Use X(U)INT and make_number as needed
1416 to convert between (unsigned) int values and lisp integers.
1417 * keyboard.c (read_key_sequence): Likewise.
1418 * lread.c (substitute_object_recurse): Likewise.
1419 * fns.c (concat, hash_lookup, hash_remove): Likewise.
1420 * minibuf.c (do_completion, Fminibuffer_complete_word,
1421 Fminibuffer_completion_help): Likewise.
1422 * term.c (produce_special_glyphs): Likewise.
1423
1424 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
1425 * print.c (print_preprocess, print_object): Likewise.
1426
1427 * search.c (compile_pattern): Use NILP when checking for nil.
1428
74e49b38
KR
1429 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
1430 __OPTIMIZE__]: Provide a GNU C macro version that handles
1431 lisp-object unions.
1432 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
1433 field, to better cope with ENABLE_CHECKING and calls that modify a
1434 Lisp_Object using its old value.
1435
685e5ed2
GM
14362000-04-04 Gerd Moellmann <gerd@gnu.org>
1437
c407c570
GM
1438 * window.c (compare_window_configurations): Signal an error
1439 if parameters C1 or C2 aren't window configurations.
1440
685e5ed2
GM
1441 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
1442 AFTER_POTENTIAL_GC calls around calls to functions that can
1443 signal an error and thus invoke the debugger.
1444
587a49ab
GM
14452000-04-03 Gerd Moellmann <gerd@gnu.org>
1446
62f20204
GM
1447 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
1448 an error if decoding fails.
1449
587a49ab
GM
1450 * keyboard.c (lispy_mouse_names): Variable removed.
1451 (Vlispy_mouse_stem): New variable.
1452 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
1453 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
1454 for any mouse button number. Increase size of mouse_syms and
1455 button_down_location as needed. Call modify_event_symbol with
1456 different arguments.
1457 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
1458 Call modify_event_symbol with different arguments.
1459 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
1460 for any button number. Call modify_event_symbol with different
1461 arguments.
1462 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
1463 Accept a string for NAME_ALIST_OR_STEM.
1464
1465 * lisp.h (larger_vector): Add prototype.
1466
1467 * fns.c (larger_vector): Make externally visible.
1468
1469 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
1470
2d1675e4
SM
14712000-04-02 Stefan Monnier <monnier@cs.yale.edu>
1472
1473 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
1474 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
1475 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
1476 we are between str1 and str2.
1477 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
1478 (PATFETCH): Use `TRANSLATE'.
1479 (PATFETCH_RAW): Fetch multibyte char if applicable.
1480 (PATUNFETCH): Remove.
1481 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
1482 When writing a char, write it directly into the pattern buffer rather
1483 than going needlessly through a temp char-array.
1484 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
1485 multibyte magic and remove the useless `#ifdef emacs'.
1486 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
1487 buffer.
1488
1489 * regex.h (struct re_pattern_buffer): Make field `multibyte'
1490 conditional on `emacs'.
1491
1492 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
1493
cc2d8c6b
KR
14942000-04-01 Ken Raeburn <raeburn@gnu.org>
1495
1496 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
1497 non-union-type versions of XMARK and friends here, because XMARK
1498 and friends won't work on an integer field if NO_UNION_TYPE is not
1499 defined.
1500 (make_number): Define as a function if it's not defined as a
1501 macro.
1502
09654086
KR
1503 * composite.c (run_composite_function): Use NILP when checking for
1504 nil.
1505 (syms_of_composite): Delete local var NARGS, pass an int as first
1506 argument to Fmake_hash_table.
1507
2387b382
KR
1508 * editfns.c (text_property_stickiness): Use NILP to test
1509 Lisp_Object boolean value.
1510 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
1511 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
1512 problems reading from and changing the same lisp value in an
1513 XSETSTRING call.
1514
27660e89
GM
15152000-04-01 Gerd Moellmann <gerd@gnu.org>
1516
1517 * term.c (TN_no_color_video): New variable.
1518 (term_init): Intitialize TN_no_color_video.
1519 (enum no_color_bit): New enumeration.
1520 (MAY_USE_WITH_COLORS_P): New macro.
1521 (turn_on_face): Use it to determine if attributes may be used
1522 combined with colors.
1523
3578db3c
KR
15242000-04-01 Ken Raeburn <raeburn@gnu.org>
1525
1526 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
1527 with int lvalues via casts; instead, just yield lisp object
1528 lvalues.
1529 (enlarge_window): Variable sizep now points to Lisp_Object. Use
1530 proper accessor macros.
1531 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
1532 (grow_mini_window): Fix typo getting int value of root->height.
1533
6fc556fd
KR
1534 * xdisp.c (compute_string_pos): Fix order of arguments to
1535 string_pos_nchars_ahead.
1536 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
1537 count arg to variable-arg routines like Frun_hook_with_args and
1538 Fformat.
587a49ab
GM
1539 (back_to_previous_visible_line_start)
1540 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
1541 fixed-arg routines like Fget_char_property and Fmake_string.
1542 (reconsider_clip_changes): Use XINT when comparing integer lisp
1543 objects, or passing them as int arguments.
587a49ab
GM
1544 (mark_window_display_accurate, insert_left_trunc_glyphs)
1545 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
1546 storing or passing integer values as lisp objects.
1547 (set_cursor_from_row, highlight_trailing_whitespace): Use
1548 INTEGERP, not implicit test against zero, for glyph object.
1549 (try_window_id): Don't use make_number when we want an int value.
1550
1551 * xfaces.c (xlfd_symbolic_value): Make last argument a
1552 Lisp_Object, to be consistent with callers.
1553 (Fbitmap_spec_p): Use XINT to get numeric value of height.
1554 (lface_hash): Apply XFASTINT to lisp values before folding in.
1555
1556 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
1557 fill in window width and height. Pass an int, not a lisp object,
1558 as first arg to Finsert.
1559
6e7b2457
GM
15602000-04-01 Gerd Moellmann <gerd@gnu.org>
1561
610d841e
GM
1562 * xfaces.c (realize_basic_faces): Block input while realizing
1563 the faces.
1564
6e7b2457
GM
1565 * keyboard.c (lispy_mouse_names): Add additional mouse names.
1566
1567 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
1568
aa110c0c
GM
15692000-03-31 Gerd Moellmann <gerd@gnu.org>
1570
1571 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 1572 or ASCII, handle case that per-char metric is null.
aa110c0c 1573
8801a864
KR
15742000-03-30 Ken Raeburn <raeburn@gnu.org>
1575
c6129d7e
KR
1576 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
1577
8801a864
KR
1578 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
1579 XSUBR, XBUFFER): Verify correct object type before returning
1580 pointer, using eassert.
1581 * frame.h (XFRAME): Likewise.
1582
1583 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
1584 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
1585 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
1586 type.
1587 * data.c (set_internal): Likewise.
1588 * dispextern.h (WINDOW_WANTS_MODELINE_P,
1589 WINDOW_WANTS_HEADER_LINE_P): Likewise.
1590 * fileio.c (auto_save_1): Likewise.
1591 * insdel.c (check_markers): Likewise.
1592 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
1593 * undo.c (record_insert): Likewise.
1594 * vmsproc.c (child_sig): Likewise.
1595 * window.c (unshow_buffer, window_loop): Likewise.
1596 * xterm.c (x_erase_phys_cursor): Likewise.
1597
8e7af858
GM
15982000-03-30 Gerd Moellmann <gerd@gnu.org>
1599
1600 * xfns.c (free_image_cache): Free the cache structure itself
1601 last, after all its members have been freed.
1602
1603 * lisp.h (xstrdup): Add prototype.
1604
1605 * alloc.c (xstrdup): Moved here from xfaces.c.
1606 (allocating_for_lisp): Variable removed.
1607 (lisp_malloc): Block input around the calls to malloc and
1608 mem_insert.
1609
1610 * xfaces.c (realize_tty_face): Use find_symbol_value instead
1611 of Fsymbol_value.
1612 (xstrdup): Moved to alloc.c.
1613
e0b8c689
KR
16142000-03-29 Ken Raeburn <raeburn@gnu.org>
1615
b96f9fb7
KR
1616 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
1617
1618 * emacs.c (main): Fix sense of no-loadup test.
1619
e0b8c689
KR
1620 * config.in (ENABLE_CHECKING): Undef.
1621
1622 * lisp.h (struct interval): Replace "parent" field with a union of
1623 interval pointer and Lisp_Object; add new bitfield to use as
1624 discriminant. Change other flag fields to bitfields.
1625 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
1626 is defined and the supplied test fails, print a message and
1627 abort.
1628 (eassert): New macro. Use CHECK to provide an assert-like
1629 facility.
1630
1631 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
1632 pointers; abort if the value looks like a lisp object.
1633 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
1634 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
1635 Modify for new interval parent definition.
1636
1637 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
1638 UNMARK_BALANCE_INTERVALS): Update references that need an
1639 addressable lisp object in the interval structure.
1640 (die): New function.
1641 (suppress_checking): New variable.
1642
1643 * intervals.c (interval_start_pos): Just return 0 if there's no
1644 parent object.
1645
f83c5440
GM
16462000-03-29 Gerd Moellmann <gerd@gnu.org>
1647
1648 * lread.c (read1): Accept `.' (period) as symbol start like in CL
1649 and earlier Emacs versions.
1650
1651 * keyboard.c (Ftop_level): Cancel busy-cursor.
1652
1653 * eval.c (call_debugger): Cancel busy-cursor.
1654
fdce64ff
KH
16552000-03-29 Kenichi Handa <handa@etl.go.jp>
1656
1657 * search.c (Freplace_match): Adjust multibyteness of the current
1658 buffer and NEWTEXT. Free allocated memory before signaling an
1659 error.
1660
f6a3f532
SM
16612000-03-28 Stefan Monnier <monnier@cs.yale.edu>
1662
1663 * regex.c (analyse_first): New function obtained by ripping out most
1664 of re_compile_fastmap and generalizing it a little bit so that it
1665 can also just return whether a given (sub)pattern can match the empty
1666 string or not.
1667 (regex_compile): Use `analyse_first' to decide whether the loop-check
1668 needs to be done or not for *, +, *? and +? (the loop check is costly
1669 for non-greedy repetition).
1670 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
1671
e9b309ac
DL
16722000-03-28 Dave Love <fx@gnu.org>
1673
bb15bd9a
DL
1674 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
1675 alpha.
1676
e9b309ac
DL
1677 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
1678
ed0767d8
SM
16792000-03-27 Stefan Monnier <monnier@cs.yale.edu>
1680
1681 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
1682 an expression.
1683 (enum re_opcode_t): Update description of succeed_n.
1684 (PATFETCH): Always define.
1685 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
1686 operators, char classes, shy-groups and intervals).
1687 Optimize special cases of intervals so as to only use succeed_n and
1688 jump_n when really needed.
1689 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
1690 that we don't have to handle the special cases any more.
1691 Simplify on_failure_jump handling as well.
1692
e11e7e46
JR
16932000-03-28 Jason Rumney <jasonr@gnu.org>
1694
1695 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
1696
88faab89
GM
16972000-03-27 Gerd Moellmann <gerd@gnu.org>
1698
182ff242
GM
1699 * s/freebsd.h (GC_SETJMP_WORKS): Define.
1700
1701 * s/msdos.h (GC_SETJMP_WORKS): Define.
1702
1703 * alloc.c (mark_maybe_object): New function.
1704 (mark_memory): Use it.
1705 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
1706 (setjmp_tested_p, longjmp_done): New variables.
1707 (test_setjmp): New function.
1708 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
1709 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
1710
c1005d06
GM
1711 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
1712 to DEC_TEXT_POS and INC_TEXT_POS.
1713
1714 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
1715 with parameter MULTIBYTE_P.
1716
1717 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
1718 MULTIBYTE_P.
1719
7439e5b9 1720 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
1721 buffers because it looks for multibyte character byte sequences
1722 which don't exist in unibyte text.
7439e5b9 1723
d9c545da
GM
1724 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
1725
11fd416e 1726 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
1727 [DEBUG_X_COLORS]: New functions.
1728 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
1729
1730 * xfns.c (x_set_cursor_color): Get color reference counts right.
1731
1732 * xterm.c (x_copy_color): New function.
1733 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
1734
1735 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
1736 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
1737 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
1738 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
1739 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
1740 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
1741 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
1742 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
1743 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
1744 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
1745
11fd416e
GM
1746 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
1747 names for handling per-buffer variables.
d9c545da
GM
1748
1749 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
1750 instead of MAX_BUFFER_LOCAL_VARS.
1751 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
1752
1753 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
1754
88faab89
GM
1755 * xfns.c (x_specified_cursor_type): New function.
1756 (x_set_cursor_type): Use it.
1757
1758 * buffer.h (struct buffer): Add cursor_type.
1759
d80f42b7
SM
17602000-03-26 Stefan Monnier <monnier@cs.yale.edu>
1761
1762 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
88faab89
GM
1763 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
1764 opcode.
d80f42b7
SM
1765 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
1766 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
1767 executing it as well as when popping it off the stack to find infinite
1768 loops in non-greedy repetition operators.
1769
89e80928
GM
17702000-03-26 Gerd Moellmann <gerd@gnu.org>
1771
3d4ff2dd
GM
1772 * doc.c (Qfunction_documentation): New variable.
1773 (syms_of_doc): Initialize Qfunction_documentation.
1774 (Fdocumentation): If FUNCTION is a symbol with non-nil
1775 `function-documentation' property, return a documentation derived
1776 from that.
1777
bd96bd79
GM
1778 * buffer.c (syms_of_buffer): Add default-cursor-type.
1779 (init_buffer_once): Don't let cursor_type have a local value
1780 in every buffer.
1781
19d1bc27
GM
1782 * xterm.c (x_display_and_set_cursor): Choose cursor depending
1783 on buffer-local value of cursor_type.
1784 (x_draw_bar_cursor): Add parameter WIDTH.
1785
1786 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
1787 (init_buffer_once): Set default cursor_type value to t.
1788 Mark cursor_type as local everywhere.
1789 (syms_of_buffer): New per-buffer variable cursor-type.
1790
89e80928
GM
1791 * buffer.h (struct buffer): Remove member local_var_flags,
1792 add local_flags.
1793 (MAX_BUFFER_LOCAL_VARS): New macro.
1794 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
1795 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
1796 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
1797 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
1798
1799 * print.c (print_object): Use new macros for per-buffer
1800 variables.
1801
1802 * category.c (Fset_category_table): Use new macros for per-buffer
1803 variables.
1804
1805 * buffer.c (buffer_permanent_local_flags): Make a char array.
1806 (max_buffer_local_idx): New variable.
1807 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
1808 for new handling of per-buffer variables.
1809 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
1810 (init_buffer_once): Initialize per-buffer vars differently.
1811 Set max_buffer_local_idx.
1812
1813 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
1814 variables.
1815
1816 * lread.c (defvar_per_buffer): Use new macros for per-buffer
1817 variables.
1818
1819 * data.c (do_symval_forwarding, store_symval_forwarding)
1820 (find_symbol_value, set_internal, default_value, Fset_default)
1821 (Fkill_local_variable, Flocal_variable_p): Use new macros for
1822 per-buffer variables.
1823
1824 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
1825
9a0dd3dc
GM
18262000-03-24 Gerd Moellmann <gerd@gnu.org>
1827
b68c375f
GM
1828 * xterm.c (x_term_init): Unblock input around call1 of
1829 Qvendor_specific_keysyms.
1830
9a0dd3dc
GM
1831 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
1832 (find_defun_start): Consider an open parenthesis in column 0
1833 a defun start only if open_paren_in_column_0_is_defun_start is set.
1834 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
1835
7973e637
SM
18362000-03-24 Stefan Monnier <monnier@cs.yale.edu>
1837
1838 * eval.c (Fautoload): Add entry in load-history (if after dump).
1839 * lread.c (load-history): Update docstring.
1840
39210e90
GM
18412000-03-24 Gerd Moellmann <gerd@gnu.org>
1842
1843 * indent.c (Fvertical_motion): Always use the current buffer.
1844 Temporarily change the window's buffer, if necessary.
1845
72db3ab5
GM
18462000-03-23 Gerd Moellmann <gerd@gnu.org>
1847
1848 * xterm.c (fast_find_position): Make sure not to consider rows
1849 not visible in the window.
1850
990b2375
SM
18512000-03-22 Stefan Monnier <monnier@cs.yale.edu>
1852
1853 * regex.c (enum syntaxcode): Provide default for non-Emacs.
1854 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
1855
ff4df011
JR
18562000-03-22 Jason Rumney <jasonr@gnu.org>
1857
1858 * w32menu.c (single_submenu): Set help string to NULL if none.
1859 (w32_menu_show): Set help string correctly.
1860 (add-menu-item): Set help string in MIIM_DATA for menu item.
1861 Load SetMenuItemInfoA explicitly.
1862 (w32_menu_display_help): New function.
1863
1864 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
1865 (QCdata): Moved to xdisp.c.
1866
1867 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
1868 (Vw32_charset_to_codepage_alist): Removed.
1869 (Vw32_charset_info_alist): New variable.
1870 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
1871 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
1872 greek, hebrew, thai, johab, mac, unicode]): New symbols.
1873 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
1874 with TODO comment.
1875 (w32_codepage_for_font): Use Vw32_charset_info_alist.
1876 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
1877 Define Vw32_charset_info_alist and w32_charset symbols.
1878
18792000-03-22 Jason Rumney <jasonr@gnu.org>
1880
1881 * makefile.nt (w32bdf.obj): Update dependencies.
1882
1883 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
1884
1885 * w32fns.c: Include fontset.h after dispextern.h.
1886 (Fx_create_frame): Do not create fontset.
1887 (w32_load_system_font): Doc fix.
1888 (Fx_close_connection): Free full_name if it is not shared.
1889
1890 * w32term.c: Include fontset.h after dispextern.h.
1891 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
1892 updated.
1893 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
1894 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
1895 (w32_font_is_double_byte): New function, needs body.
1896 (x_append_glyph): Set glyph->glyph_not_available_p.
1897 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
1898 it->charset. If it->multibyte_p is zero and it->c is a multibyte
1899 character, convert it to a unibyte character.
1900 (struct glyph_string): Delete member `charset'.
1901 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
1902 calculating it is found.
1903 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
1904 the case that per char metric is not available correctly.
1905 (x_fill_glyph_string): Handle the case that the specific glyph is
1906 not available correctly.
1907 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
1908 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
1909 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
1910 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
1911 fontset. Don't call FS_LOAD_FONT.
1912
439d5cb4
KR
19132000-03-22 Ken Raeburn <raeburn@gnu.org>
1914
1915 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
1916 (INT_LISPLIKE): New macro.
1917 (NULL_INTERVAL_P): Use it.
1918 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
1919 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
1920 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
1921
1922 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
1923 explicit references to "parent" field of struct interval and
1924 associated unclean type conversions.
1925 * intervals.c (create_root_interval, root_interval, rotate_right,
1926 rotate_left, balance_possible_root_interval, split_interval_right,
1927 split_interval_left, interval_start_pos, find_interval,
1928 next_interval, previous_interval, update_interval,
1929 adjust_intervals_for_insertion, delete_node, delete_interval,
1930 adjust_intervals_for_deletion, merge_interval_right,
1931 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
1932 copy_intervals_to_string): Likewise.
1933 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
1934 Likewise.
1935 * syntax.c (update_syntax_table): Likewise.
1936
1937 * intervals.c (reproduce_tree_obj): New function, like
1938 reproduce_tree but takes a Lisp_Object for the parent. Declare
1939 with prototype.
1940 (graft_intervals_into_buffer): Use it when appropriate.
1941 (reproduce_tree): Declare with prototype.
1942 (balance_possible_root_interval): Check that the parent is a lisp
1943 object before trying to examine its type.
1944
ee1c5b21
GM
19452000-03-22 Gerd Moellmann <gerd@gnu.org>
1946
1947 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
1948 as strings only if both are known to be strings.
1949
1950 * s/openbsd.h (LIBS_TERMCAP): Undef.
1951
1fb352e0
SM
19522000-03-21 Stefan Monnier <monnier@cs.yale.edu>
1953
1954 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
1955 definitions for non-Emacs compilation.
1956 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
1957 outside of `#ifdef emacs'.
1958 (print_partial_compiled_pattern): Update.
1959 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
1960 (re_compile_fastmap): Merge handling of charset and charset_not (for
1961 emacs and non-emacs compilation as well).
1962 Similarly for (not)categoryspec and (not)syntaxspec.
1963 Don't use the fastmap when reaching `anychar' since the added
1964 complexity is not justified.
1965 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
1966 and (not)syntaxspec. Merge (not)categoryspec.
1967
fdaa1f77
KH
19682000-03-22 Kenichi Handa <handa@etl.go.jp>
1969
ff1a0d8e
KH
1970 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
1971 FACE_FOR_CHAR): Define them differently for the configuration of
1972 --without-x.
fdaa1f77 1973
d152fb46
DL
19742000-03-21 Dave Love <fx@gnu.org>
1975
1976 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
1977 doc string.
1978
d2cafc8c
GM
19792000-03-21 Gerd Moellmann <gerd@gnu.org>
1980
1981 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
1982 (lface_fully_specified_p): Don't check contents of
1983 LFACE_FONT_INDEX because that attribute is optional.
1984 (realize_x_face): Remove now unwarranted xassert.
1985
9111d4b5
KH
19862000-03-21 Kenichi HANDA <handa@etl.go.jp>
1987
1988 The following changes are to make font selection based on
1989 characters, not charset. In addition, they recover fontset
1990 facilities while utilizing the new font selection mechanism.
1991
6c4bfdc0
KH
1992 * Makefile.in (fontset.o): Depend on dispextern.h.
1993
1994 * alloc.c (mark_face_cache): Don't mark face->registry.
1995
9111d4b5
KH
1996 * dispextern.h (struct glyph): New member glyph_not_available_p.
1997 Use 22 bits for face_id.
1998 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
1999 (struct face): Delete member registry, new member ascii_face.
2000 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
2001 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
2002 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
2003 (struct it): Delete member charset, new member
2004 glyph_not_available_p.
2005
2006 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
2007 (struct fontset_info, struct fontset_data): Structs removed.
2008 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
2009 Vglobale_fontset_alist, font_idx_temp): Externs removed.
2010 (fs_load_font, fs_query_fontset): Adjusted for new argument.
2011 (fs_free_face_fontset, fontset_font_pattern,
2012 face_suitable_for_char_p, face_for_char,
2013 make_fontset_for_ascii_face): Extern them.
2014 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
2015 (FS_LOAD_FACE_FONT): New macro.
2016
2017 * fontset.c: All codes rewritten or adjusted for the change of
2018 fontset implementation. Now fontset is represented by char table.
2019 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
2020 removed.
2021 (my_strcasecmp): Function removed.
2022 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
2023 variables.
2024 (AREF, ASIZE): New macros.
2025 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
2026 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
2027 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
2028 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
2029 fontset_id_valid_p, font_family_registry, fontset_name,
2030 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
2031 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
2032 New functions.
2033 (fs_load_font): New arg FACE. Caller changed.
2034 (fs_query_fontset): Argument changed. Caller changed.
2035 (Fquery_fontset): call fs_query_fontset.
2036 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
2037 Functions removed.
2038 (clear_fontset_elements, check_registry_encoding,
2039 check_fontset_name): New functions.
2040 (syms_of_fontset): Set char-table-extra-slots property of fontset
2041 to 3. Staticpro and initialize Vfontset_table and
2042 Vdefault_fontset. Defsubr fontset_font and fontset_list.
2043
2044 * frame.h (struct frame): Member `fontset_data' removed.
2045 (FRAME_FONTSET_DATA): Macro removed.
2046
2047 * frame.c (make_frame): Don't allocate f->fontset_data.
2048 (Fdelete_frame): Don't free f->fontset_data.
2049
6c4bfdc0
KH
2050 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
2051
9111d4b5
KH
2052 * xdisp.c (charset_at_position): Function removed.
2053 (init_iterator): Don't set member charset of struct `it'.
2054 (handle_face_prop, reseat_to_string, set_iterator_to_next,
2055 next_element_from_display_vector, insert_left_trunc_glyphs):
2056 Likewise.
2057 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
2058 FACE_FOR_CHARSET.
2059 (get_next_display_element, append_space,
2060 extend_face_to_end_of_line): Likewise.
2061
2062 * xfaces.c (Qx_charset_registry, Vface_default_registry):
2063 Variables removed.
2064 (clear_font_table, frame_update_line_height, load_face_font):
2065 Adjusted for the change of fontset implementation.
2066 (load_face_fontset_font): Function removed.
2067 (pixel_point_size): New function.
2068 (font_list): Argument type changed. Caller changed.
2069 (LFACE_FONT): New macro.
2070 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
2071 (set_lface_from_font_name): Type of arg FONTNAME is changed to
2072 Lisp_Object. Determine the font name by actually loading a font
2073 by the specified pattern. Set LFACE_FONT (lface) to the specified
2074 pattern. Even if a font is not found, don't try alternatives.
2075 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
2076 (set_font_frame_param): If `font' is specified in lface, use it.
2077 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
2078 (lface_same_font_attributes_p): Likewise.
2079 (make_realized_face): Arguent changed. Caller changed. Set
2080 face->ascii_face to face itself.
2081 (free_realized_face): Free face->fontset if face is for ASCII.
2082 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
2083 deduce_unibyte_registry, x_charset_registry): Functions removed.
2084 (free_realized_multibyte_face): New function.
2085 (lookup_face, lookup_named_face, lookup_derived_face): Argument
2086 changed. Caller changed.
2087 (try_font_list): Argument type changed.
2088 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
2089 (choose_face_font): Argument changed. Handle fontset properly.
2090 (choose_face_fontset_font): Function removed.
2091 (realize_default_face, realize_named_face): Don't remove the
2092 former face here.
2093 (realize_face): Argument changed. Caller changed. Remove face
2094 with the arg former_face_id in advance. Load font for the new
2095 face.
2096 (realize_x_face): Argument changed. Caller changed. For a
2097 multibyte character, share fontset with base_face. For a single
2098 byte character, make a new realized fontset. Don't load a font
2099 here.
2100 (realize_tty_face): Argument changed. Caller changed.
2101 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
2102 (face_at_buffer_position): Don't check multibyte_p for returning
2103 DEFAULT_FACE_ID.
2104 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
2105 FACE_SUITABLE_FOR_CHARSET_P.
2106 (syms_of_xfaces): Remove code for Qx_charset_registry and
2107 Vface_default_registry.
2108
6c4bfdc0
KH
2109 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
2110 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
2111 (x_per_char_metric): Don't try FONT->default_char. Even if
2112 pcm->width is zero, glyph bits may exist.
2113 (x_encode_char): Always initialize char2b->byte1.
2114 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
2115 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
2116 changed.
2117 (x_append_glyph): Set glyph->glyph_not_available_p.
2118 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
2119 it->charset. Handle the case that per char metric is not
2120 available. If it->multibyte_p is zero and it->c is a multibyte
2121 character, convert it to a unibyte character.
2122 (struct glyph_string): Delete member `charset'.
2123 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
2124 the case that per char metric is not available correctly.
2125 (x_fill_glyph_string): Handle the case that the specific glyph is
2126 not available correctly.
2127 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
2128 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
2129 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
2130 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
2131 fontset. Don't call FS_LOAD_FONT.
2132
2133 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
2134 (x_create_tip_frame): Likewise.
2135 (Fx_close_connection): Free full_name of font_info.
2136
2137 * fns.c (optimize_sub_char_table): New function.
2138 (Foptimize_char_table): New function.
2139 (syms_of_fns): Defsubr Soptimize_char_table.
2140
b33dd3b0
GM
21412000-03-20 Gerd Moellmann <gerd@gnu.org>
2142
2143 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
2144 only if buffer is displayed in some window.
2145
2146 * xdisp.c (handle_single_display_prop): Initialize local `value'.
2147 (try_window_reusing_current_matrix): Don't call scroll run
2148 function if run's current and desired position are the same;
2149 this prevents cursor flickering.
2150
4e8a9132
SM
21512000-03-19 Stefan Monnier <monnier@cs.yale.edu>
2152
2153 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
2154
2155 * regex.c (RE_STRING_CHAR): New macro.
2156 (GET_CHAR_AFER_2): Remove.
2157 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
2158 (enum re_opcode_t): Remove on_failure_jump_exclusive.
2159 (print_partial_compiled_pattern, re_compile_fastmap)
2160 (re_match_2_internal): Remove on_failure_jump_exclusive.
2161 (regex_compile): Turn optimizable P+ loops into PP*, so that the
2162 optimization only need to work for * (ie. can use of_keep_string_jump).
2163 Remove the special case for .*\n since it is now covered by the general
2164 optimization.
2165 (re_search_2): Don't bother with `room'.
2166 (skip_one_char): New function.
2167 (skip_noops): Simplify since `memory' is not needed any more.
2168 (mutually_exclusive_p): Restructure slightly to use `switch' and
2169 add handling for "all" remaining cases.
2170 (re_match_2_internal): Change on_failure_jump_smart to use
2171 on_failure_keep_string_jump (and redirect the end-of-loop jump)
2172 rather than on_failure_jump_exclusive.
2173
2136fdd4
GM
21742000-03-19 Gerd Moellmann <gerd@gnu.org>
2175
2176 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
2177 number of bits per RGB because it's everywhere used as the depth
2178 of the visual.
2179
2180 * term.c (calculate_costs): Remove code dealing with X frames.
2181
e53ae11c
RS
21822000-03-19 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2183
2184 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
2185
d7b511c4
GM
21862000-03-18 Gerd Moellmann <gerd@gnu.org>
2187
2188 * lread.c (read_integer): Unread the last char not consumed.
2189
16b5d424
GM
21902000-03-17 Gerd Moellmann <gerd@gnu.org>
2191
2192 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 2193 which are in the process of being deleted.
16b5d424 2194
1fa28578
GM
21952000-03-16 Gerd Moellmann <gerd@gnu.org>
2196
83488cce
GM
2197 * Makefile.in (mostlyclean): Add `*.core'.
2198 (clean): Add `bootstrap-emacs'.
2199
1fa28578
GM
2200 * lread.c (read_integer): New function.
2201 (read1): Support read syntax #o, #x, #b, #r.
2202
99633e97
SM
22032000-03-15 Stefan Monnier <monnier@cs.yale.edu>
2204
1fa28578
GM
2205 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
2206 make sure POINTER_TO_OFFSET gives the same value before and after
2207 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
2208 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
2209 (debug): Now only active if > 0 rather than if != 0.
2210 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
2211 (print_partial_compiled_pattern): Add missing `succeed' case. Use
2212 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
2213 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
2214 (store_op1, store_op2, insert_op1, insert_op2)
2215 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
2216 (group_in_compile_stack): Move to after its arg's types are
2217 declared and add a prototype.
99633e97 2218 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
2219 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
2220 wrapper.
99633e97 2221 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
2222 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
2223 indentation of the greedy-op and shy-group code.
99633e97
SM
2224 (at_(beg|end)line_loc_p): Fix argument's types.
2225 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
2226 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
2227 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
2228 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
2229 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
2230 QUIT unconditionally.
99633e97 2231
699238d9
GM
22322000-03-15 Gerd Moellmann <gerd@gnu.org>
2233
2234 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
2235 a sole completion.
2236
2237 * process.c (send_process): Add a hint that the function
2238 can call Lisp code to its comment.
2239
2240 * lread.c (load_dangerous_libraries): New variable.
2241 (Vbytecomp_version_regexp): New variable.
2242 (safe_to_load_p): New function.
2243 (Fload): Handle files not compiled with Emacs specially.
2244 (syms_of_lread): New Lisp variable load-dangerous-libraries.
2245
34e23e5a
GM
22462000-03-14 Gerd Moellmann <gerd@gnu.org>
2247
9c763cca
GM
2248 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
2249
2250 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
2251 support functions only if HAVE_X11R6_XIM is defined.
2252 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
2253
2254 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
2255
2256 * xfns.c (X_I18N_INHIBITED): Don't define.
2257 (create_frame_xic): Remove conditional compilation on
2258 X_I18N_INHIBITED.
2259 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
2260
2261 * config.in (HAVE_X_I18N): Moved here from xterm.h.
2262 (HAVE_X11R6_XIM): Define.
2263
2264 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
2265
34e23e5a
GM
2266 * xterm.c (x_term_init): Add support for X resource `synchronous'.
2267 If set, call XSynchronize.
2268
66f0296e
SM
22692000-03-13 Stefan Monnier <monnier@cs.yale.edu>
2270
34e23e5a
GM
2271 * regex.c: Declare a new type `re_char' used throughout the code
2272 for the string char type. It's `const unsigned char' to match the
2273 rest of Emacs. Consistently make sure all pointers to strings use
2274 it and make sure all pointers into the pattern use `unsigned
2275 char'.
66f0296e 2276 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
2277 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
2278 code duplication.
66f0296e
SM
2279
2280 * charset.h (GET_CHAR_AFTER_2): Remove.
2281 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
2282
854a025c
KR
22832000-03-12 Ken Raeburn <raeburn@gnu.org>
2284
2285 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
2286 variable before the invocation of YMF_PASS_LDFLAGS, in case both
2287 of them try to use backquotes.
2288
b9d2c7e2
DL
22892000-03-12 Dave Love <fx@gnu.org>
2290
2291 * unexelf.c: Restore changes of 1999-10-19.
2292 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
2293 fix its type and alignment; copy it from current process.
2294
5e5dff44
GM
22952000-03-12 Gerd Moellmann <gerd@gnu.org>
2296
9b2f3c38
GM
2297 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
2298 has been found. Fix bug not computing timer's predecessor.
2299
9172b88d
GM
2300 * fileio.c (Fread_file_name): Handle case that DIR contains a
2301 file name.
2302
e1cff360
GM
2303 * window.c (Fsave_window_excursion): Doc fix.
2304
5e5dff44
GM
2305 * xfns.c (x_defined_color): Rewritten to use
2306 x_allocate_nearest_color.
2307
e411ce4b
EZ
23082000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2309
2310 * msdos.c (vga_installed): New function, code moved from
2311 dos_set_window_size.
2312 (Qbar, Qcursor_type, outside_cursor): New variables.
2313 (syms_of_msdos): Intern and staticpro them.
2314 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
2315 shape used outside Emacs when called for the first time.
2316 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
2317 cursor shape used outside Emacs.
2318 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
2319 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
2320 type has changed.
2321 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
2322 parameters specify the cursor. Make qreverse a global
2323 variable (renamed to Qreverse).
2324
80460654
GM
23252000-03-09 Gerd Moellmann <gerd@gnu.org>
2326
2327 * fns.c (Fy_or_n_p): Cancel busy-cursor.
2328
95cd4c40
SM
23292000-03-08 Stefan Monnier <monnier@cs.yale.edu>
2330
2331 This is a big redesign of failure-stack and register handling, prompted
2332 by bugs revealed when trying to add shy-groups. Overall, what happened
2333 is that loops are now structured a little differently, groups can be
2334 shy and the code is a little simpler.
2335
2336 * regex.h: Update the copyright.
2337 (RE_SHY_GROUPS): New value.
2338 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
2339 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
2340
80460654
GM
2341 * regex.c (enum re_opcode_t): Remove jump_past_alt,
2342 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
2343 on_failure_jump_(exclusive, loop and smart). Also fix the comment
2344 for (start|stop)_memory since they now only take one argument (the
2345 second has becomes unnecessary).
2346 (print_partial_compiled_pattern): Adjust for changes in
2347 re_opcode_t.
2348 (print_compiled_pattern): Use %ld to printf long ints and flush to
2349 make debugging a little easier.
95cd4c40
SM
2350 (union fail_stack_elt): Make the integer unsigned.
2351 (struct fail_stack_type): Add a `frame' element.
2352 (INIT_FAIL_STACK): Init `frame' as well.
2353 (POP_PATTERN_OP): New macro for re_compile_fastmap.
2354 (DEBUG_PUSH, DEBUG_POP): Remove.
2355 (NUM_REG_ITEMS): Remove.
2356 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
2357 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
2358 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 2359 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
2360 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
2361 macros.
2362 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
2363 address pushed is not the destination of the jump but the source
2364 of it instead.
95cd4c40
SM
2365 (NUM_FAILURE_ITEMS): Remove.
2366 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
2367 registers before the actual failure point). Don't hardcode any
2368 meaning for str==NULL anymore.
95cd4c40 2369 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
2370 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
2371 Remove.
95cd4c40
SM
2372 (REG_UNSET_VALUE): Use NULL (why not?).
2373 (compile_range): Remove declaration since it doesn't exist.
2374 (struct compile_stack_elt_t): Remove inner_group_offset.
2375 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
2376 (regex_grow_registers): Remove dead code.
2377 (FIXUP_ALT_JUMP): New macro.
80460654
GM
2378 (regex_compile): Add shy-groups Change loops to use
2379 on_failure_jump_smart&jump instead of
2380 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
2381 initial (dummy_failure_)jump. Remove c1_base (looks like unused
2382 variable to me). Use `jump' instead of `jump_past_alt' and don't
2383 bother with push_dummy_failure in alternatives since it is now
2384 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
2385 emacs' for (re)allocating the stack.
2386 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
2387 from loop when bufp->can_be_null rather than jumping to `done'.
2388 Avoid jumping backwards so as to ensure termination. Use
2389 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
2390 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 2391 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
2392 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
2393 improve mutually_exclusive_p to handle ".+\n".
2394 (lowest_active_reg, highest_active_reg,
2395 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
2396 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
2397 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
2398 variables. Push register (in `start_memory') on the stack rather
2399 than storing it in old_reg(start|end). Remove the cycle detection
2400 from `stop_memory', replaced by the use of on_failure_jump_loop
2401 for greedy loops. Add code for the new on_failure_jump_<foo>.
2402 Remove ad-hoc code in `on_failure_jump' to push more registers in
2403 the case of a loop. Take out code from `maybe_pop_jump' into
2404 separate functions and adapt it to the semantics of
2405 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
2406 and push_dummy_failure. Remove dummy_failure handling and
2407 handling of `failures to jump to on_failure_jump' (this last one
2408 was already dead code, it seems).
2409 (group_match_null_string_p, alt_match_null_string_p)
2410 (common_op_match_null_string_p): Remove.
95cd4c40 2411
7397acc4
DL
24122000-03-08 Dave Love <fx@gnu.org>
2413
2414 * config.in: Don't depend on __STDC__ for volatile.
2415 Add POINTER_TYPE, PTR, PROTOTYPES.
2416
2417 * hftctl.c, strftime.c: Use PROTOTYPES.
2418 * eval.c (find_handler_clause): Likewise.
2419
2420 * mem-limits.h: Use POINTER_TYPE.
2421
2422 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
2423 (memory_warnings): Declare using POINTER_TYPE.
2424
5e91ff9e
GM
24252000-03-08 Gerd Moellmann <gerd@gnu.org>
2426
feab4fba
GM
2427 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
2428
25edb08f
GM
2429 * xdisp.c (display_echo_area): Temporarily inhibit garbage
2430 collection.
2431
5e91ff9e
GM
2432 * xfns.c: Remove obsolete code in #if 0.
2433 (Fx_focus_frame): New function.
2434
a735b7e1
KH
24352000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2436
2437 * coding.c (coding_category_name): Add coding-category-utf-8,
2438 coding-category-utf-16-be, coding-category-utf-16-le.
2439 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
2440 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
2441 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
2442 (detect_coding_utf_8): New function.
2443 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
2444 UTF_16_LOW_SURROGATE_P): New macros.
2445 (detect_coding_utf_16): New function
2446 (detect_coding_mask): When priorities are specified, skip any
2447 categories that have `nil' coding-system. Fix bug of returning
2448 wrong mask when PRIORITIES is specified and detect_coding_XXX()
2449 returns a mask not set in PRIORITIES.
2450 (detect_eol_type_in_2_octet_form): New function.
2451 (detect_eol): selects detect_eol_type_XXX to call according to
2452 cooding->category_idx.
2453 (detect_coding_system): Remove `nil' coding-system in the result.
2454 (Fupdate_coding_systems_internal): Update all coding-categories.
2455
2456 * coding.h (CODING_CATEGORY_IDX_UTF_8,
2457 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
2458 macros.
2459 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
2460 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
2461 CODING_CATEGORY_IDX_UTF_16_LE.
2462 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
2463 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
2464 (CODING_CATEGORY_MASK_ANY): Include the above macros.
2465 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
2466
9994cc69
GM
24672000-03-07 Gerd Moellmann <gerd@gnu.org>
2468
e9b4e5ff
GM
2469 * doc.c (Fdocumentation_property): If value is not a string,
2470 and doesn't refer to etc/DOC, evaluate it to obtain a string.
2471
f7daf1e1
GM
2472 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
2473 close the display with XtCloseDisplay. This caused a bus error
2474 on OpenWindows.
2475
9994cc69
GM
2476 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
2477 complete but not unique.
2478
4336c705
GM
24792000-03-06 Gerd Moellmann <gerd@gnu.org>
2480
18bb0684
GM
2481 * process.c (send_process): Remove local variable `procname' that
2482 might become invalid when a GC happens. Instead, access the
2483 process name slot directly.
2484
4336c705
GM
2485 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
2486 orig_height if set.
2487
2488 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
2489 orig_height if set.
2490
515d0d0e
EZ
24912000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2492
2493 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
2494 glyph matrices have been freed.
2495
100b3cbb
GM
24962000-03-05 Gerd Moellmann <gerd@gnu.org>
2497
50df5e5a 2498 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 2499 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
2500
2501 * xfns.c (QCdata): Moved to xdisp.c.
2502
2503 * xdisp.c (QCdata): Moved here from xfns.c.
2504 (syms_of_xdisp): Initialize QCdata.
2505
2506 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
2507
2508 * window.c (coordinates_in_window): Use
2509 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
2510 FRAME_INTERNAL_BORDER_WIDTH.
2511
100b3cbb 2512 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 2513 it is obviously invalid.
100b3cbb
GM
2514
2515 * xterm.c (x_term_init): Create a colormap if not using the
2516 default visual.
2517
2518 * xterm.h (select_visual): Change prototype.
2519
2520 * xfns.c (select_visual): Rewritten. Recognize user-specified
2521 visual classes.
2522 (visual_classes): New variable.
2523
64d739c4
GM
25242000-03-04 Gerd Moellmann <gerd@gnu.org>
2525
2526 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
2527 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
2528 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
2529 (x_decode_color): Don't handle allocation of white and black
2530 specially.
2531 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
2532 XtNcolormap resources.
2533 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
2534 (Fx_create_frame): Initialize color members of x_output structure.
2535 (xpm_load): Pass colormap to XPM lib.
2536
2537 * xfaces.c (x_free_colors): Access colormap of frame using
2538 FRAME_X_COLORMAP. Be paranoid about freeing black and white
2539 when default colormap is used.
2540
2541 * xterm.c (x_term_init): Set Colormap member of x_display_info
2542 structure. Copy colormap if resource `privateColormap' is
2543 specified (PseudoColor only).
2544 (x_setup_relief_color): Access colormap of frame using
2545 FRAME_X_COLORMAP.
2546
2547 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
2548 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
2549
c3cee013
JR
25502000-03-04 Jason Rumney <jasonr@gnu.org>
2551
2552 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
2553 other non-platform-specific equivalents.
64d739c4 2554 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
2555 specific functions and macros as their w32 equivalents where
2556 non-platform-specifics are not available.
2557 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
2558 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
2559 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
2560 (frame_update_line_height): Use macros to access f->output_data.
2561 (defined_color): Remove FIXME comments; fixed.
2562 (x_face_list_fonts, prepare_face_for_display): Put X specifics
2563 into #ifdef blocks. Add WINDOWSNT blocks.
2564 (Fx_list_fonts): Use macros for accessing font data.
2565 (set_lface_from_font_name): Different default fonts for X and
2566 WINDOWSNT.
2567 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
2568 scalable for backward compatibility.
64d739c4 2569 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
2570 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
2571
64d739c4 2572 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
2573 syms_of_w32faces.
2574
2575 * makefile.nt (w32faces.obj): Remove.
2576 (xfaces.obj): Add.
2577
807cc41c
JR
25782000-03-03 Jason Rumney <jasonr@gnu.org>
2579
2580 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
2581 correct parameters.
2582
0007072a
KR
25832000-03-03 Ken Raeburn <raeburn@gnu.org>
2584
2585 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
2586 standard ELF definitions here if the system header does not.
2587
71a6ba55
GM
25882000-03-03 Gerd Moellmann <gerd@gnu.org>
2589
2590 * xterm.c (PER_CHAR_METRIC): Removed.
2591 (x_per_char_metric_1, x_default_char): New functions.
2592 (x_per_char_metric): If font's default char is invalid, return
2593 metrics of a suitably chosen usable default char.
2594 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
2595 char, replace occurrences of unprintable chars with a suitably
2596 chosen usable default char.
71a6ba55 2597
900fa1f1
GM
25982000-03-02 Gerd Moellmann <gerd@gnu.org>
2599
42f55fe0
GM
2600 * xterm.c (note_mouse_highlight): Return quickly if frame's
2601 glyph matrices have been freed.
2602
2603 * dispnew.c (free_glyphs): Block input while freeing matrices.
2604
900fa1f1
GM
2605 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
2606
2607 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
2608 x_free_colors.
2609
2610 * dispextern.h (x_free_colors): Add prototype.
2611
2612 * xfaces.c (x_free_colors): New function.
2613 (unload_color, free_face_colors): Use it.
2614
2f950292
EZ
26152000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2616
2617 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
2618
2619 * window.c [MSDOS]: Include msdos.h.
2620
54d04320
DL
26212000-03-02 Dave Love <fx@gnu.org>
2622
2623 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
2624
2625 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
2626 set C_OPTIMIZE_SWITCH for gcc.
2627
0ba93ac4
KH
26282000-03-02 Kenichi Handa <handa@etl.go.jp>
2629
2630 * coding.c (coding_save_composition): Be sure to allocate
2631 composition data area in coding even if there's no composition in
2632 the current run.
2633
a2bc11d4
JR
26342000-03-01 Jason Rumney <jasonr@gnu.org>
2635
2636 * w32term.c: Equivalent changes to those made to xterm.c on
2637 2000-02-25 and 2000-02-24.
2638
2639 * w32fns.c: Equivalent changes to those made to xfns.c on
2640 2000-02-25 and 2000-02-21.
2641
2642 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
2643 correct line-end convention is followed.
2644
2645 * w32menu.c [HAVE_BOXES]: Remove #undef.
2646 (single_keymap_panes): Remove code for simulating checkmarks.
2647 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
2648 Remove code for drawing simulated checkmarks.
2649 (w32_menu_show): make unibyte help string correctly.
2650 (add_menu_item): draw standard Windows checkmarks. Draw radio
2651 buttons as radio buttons if possible.
2652
72d19d75
GM
26532000-03-01 Gerd Moellmann <gerd@gnu.org>
2654
2df636f4
GM
2655 * sysdep.c (start_of_text): Don't define this function for NetBSD
2656 with ELF.
2657
2658 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2659 Don't define.
2660 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
2661 (LINKER): Don't undef if __NetBSD__ is defined.
2662
2663 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
2664
2665 * fileio.c [__NetBSD__]: Define `unix'.
2666
72d19d75
GM
2667 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
2668
ed4d0512
GM
26692000-02-29 Gerd Moellmann <gerd@gnu.org>
2670
50b1039f
GM
2671 * atimer.c (start_atimer): Don't abort when timers are stopped.
2672 (append_atimer_lists): New function.
2673 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
2674 arbitrary lists of stopped and running atimers.
2675
ed4d0512
GM
2676 * atimer.c (cancel_atimer): Handle canceling an atimer when
2677 some timers are stopped.
2678
2679 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
2680 after canceling it.
2681
2682 * fns.c (maybe_resize_hash_table): Handle case of new size
2683 coming out as being the same as old size.
2684
387023ee
JR
26852000-02-27 Jason Rumney <jasonr@gnu.org>
2686
2687 * makefile.nt: Add atimer.h to dependencies.
2688 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
2689 * w32console.c: Only disable window system features for dispextern.h
2690 (initialize_w32_display): Build a display info for the console.
2691 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
2692 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
2693 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
2694 as 2 button mice.
2695 * w32gui.h (struct W32FontStruct): Revert last change after change
2696 to xdisp.c.
2697 * w32menu.c (single_submenu): Set up help string.
2698 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
2699 (w32_dialog_show): Set up help string.
2700 * w32term.c (w32_display_info_for_display): Remove unused function.
2701 (w32_draw_bitmap): Use pre-built bitmaps.
2702 (w32_initialize_display_info): New function to initialize parts of
2703 display info that are common to both GUI and console frames.
2704 (w32_term_init): Use w32_initialize_display_info. Do not set
2705 Vw32_num_mouse_buttons here, as it is not called for console
2706 frames. Build bitmaps for indicating truncated lines etc.
2707 (x_delete_display): Destroy pre-built bitmaps.
2708 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
2709 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
2710
4516715a
DL
27112000-02-27 Dave Love <fx@gnu.org>
2712
2713 * lisp.h: Add a bunch of prototypes.
2714
171ca836
KH
27152000-02-26 Kenichi Handa <handa@etl.go.jp>
2716
2717 * keyboard.c (read_char): Set `usec' correctly.
2718
4013921d
KH
27192000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
2720
2721 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
2722 `lambda', set reg[RRR] to the map index.
2723 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
2724 reg[RRR] to 0. Otherwise, set it to -1.
2725
9244a058
GM
27262000-02-25 Gerd Moellmann <gerd@gnu.org>
2727
2df636f4 2728 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 2729
f43d79c1
GM
27302000-02-25 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2731
2732 * fileio.c (Ffile_symlink_p): If result starts with a `/'
2733 and contains a `:', prepend `/:'.
2734
2735 * window.c (select_window_1): If selected_window is nil,
2736 don't "swap out" the buffer's point.
2737 (Fset_window_configuration): Set selected_window to nil
2738 before calling Fselect_window.
2739 (unshow_buffer): Don't set point in buffer from window's point
2740 if another more recently selected window also shows the buffer.
2741
bed0c171
GM
27422000-02-25 Gerd Moellmann <gerd@gnu.org>
2743
449c3c52
GM
2744 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
2745
f5b58615
GM
2746 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
2747 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
2748 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
2749 variables.
2750 (DEFAULT_BUSY_CURSOR_DELAY): New define.
2751 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
2752 (hide_busy_cursor): New functions.
2753 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
2754
2755 * minibuf.c (read_minibuf): Cancel busy-cursor.
2756
2757 * keyboard.c (command_loop_1): Call start_busy_cursor before
2758 Fcommand_execute and cancel_busy_cursor after it.
2759 (timer_check): Remove busy-cursor code.
2760 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
2761 cursor timer.
2762
2763 * process.c (wait_reading_process_input): Remove busy-cursor code.
2764
2765 * eval.c (Fsignal): Call cancel_busy_cursor instead of
2766 Fx_hide_busy_cursor.
2767
2768 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
2769 Remove prototyoes.
2770 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
2771
2772 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
2773
2774 * xterm.c (XTread_socket): Remove busy-cursor code.
2775
4eb8436f
GM
2776 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
2777 (build_frame_matrix_from_leaf_window): Put code handling
2778 glyph row's not being a slice of a frame row in #if 0.
2779 (sync_window_with_frame_matrix_rows): New function.
2780 (frame_row_to_window): New function.
2781 (mirror_line_dance): Handle copies between windows.
2782
3cb65b0e
GM
2783 * lread.c (Fload): Use `xfree' instead of `free'.
2784 (init_obarray): Use `xmalloc' instead of `malloc'.
2785
bed0c171
GM
2786 * window.c (Fset_window_buffer): Set WINDOW to the window
2787 after decoding.
2add4349
GM
2788 (coordinates_in_window): Take frame's internal border width
2789 into account.
bed0c171 2790
42088c12
GM
27912000-02-24 Gerd Moellmann <gerd@gnu.org>
2792
2793 * xterm.c (x_display_and_set_cursor): Display cursor of
2794 non-selected windows depending on the setting of
2795 cursor_in_non_selected_windows.
2796
2797 * xdisp.c (cursor_in_non_selected_windows): New variable.
2798 (syms_of_xdisp): DEFVAR_BOOL it.
2799
d1e103b2
GM
28002000-02-23 Gerd Moellmann <gerd@gnu.org>
2801
723e779c
GM
2802 * data.c (Fstring_to_number): If number is greater than what
2803 fits into an integer, return a float.
2804
d1e103b2
GM
2805 * eval.c (specbind): Remove references to
2806 keyword_symbols_constant_flag.
2807
2808 * data.c (keyword_symbols_constant_flag): Removed.
2809 (Fmakunbound, set_internal, syms_of_data): Remove references to
2810 keyword_symbols_constant_flag.
2811
2812 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
2813
214f877f
KH
28142000-02-23 Kenichi Handa <handa@etl.go.jp>
2815
2816 * syntax.c (multibyte_syntax_as_symbol): New variable.
2817 (syms_of_syntax): Declare it as a Lisp variable.
2818 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
2819 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
2820 nonzero, treat all multibyte characters as symbol.
42088c12 2821 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
2822 characters.
2823
130adcb7
EZ
28242000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
2825
3cb65b0e 2826 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
130adcb7
EZ
2827 a deleted frame.
2828
17cbbf95
GM
28292000-02-21 Gerd Moellmann <gerd@gnu.org>
2830
2831 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
2832
2833 * xfns.c (x_window_to_frame, x_any_window_to_frame)
2834 (x_non_menubar_window_to_frame): Check the busy-cursor window.
2835
beb0bc36
DL
28362000-02-21 Dave Love <fx@gnu.org>
2837
2838 * frame.c (Vmouse_position_function): New variable.
2839 (Fmouse_position): Use it.
2840 (syms_of_frame): Install it.
2841
2842 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
2843
1d92afcd
GM
28442000-02-20 Gerd Moellmann <gerd@gnu.org>
2845
2846 * fileio.c (Finsert_file_contents): Unbind the binding of
2847 standard-output done by temp_output_buffer_setup.
329eed9f
GM
2848
2849 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
2850 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
2851 (specbind, unbind_to): Handle most common case of non-constant
2852 symbol with trivial value specially.
2853
2854 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
2855
2d06696f
RS
28562000-02-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2857
2858 * data.c (Fmake_variable_buffer_local): Doc fix.
2859 Init found_for_buffer to 0.
2860 (Fmake_variable_frame_local): If the variable has already
2861 been buffer-local, set the check_frame field.
2862
1d4311c3
EZ
28632000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
2864
2865 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
2866 produced for CODING_MODE_LAST_BLOCK requires.
2867
2dc95ddd
DL
28682000-02-18 Dave Love <fx@gnu.org>
2869
2870 * keyboard.c (echo_keystrokes): Remove declaration.
2871 (Vecho_keystrokes) New variable.
2872 (read_char, record_menu_key, read_key_sequence): Use it to allow
2873 use of float value.
2874 (syms_of_keyboard): Change Vecho_keystrokes declaration.
2875
2876 * lread.c: Undef feature selection macros before defining.
2877
f0930f35
GM
28782000-02-18 Gerd Moellmann <gerd@gnu.org>
2879
2880 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
2881 for symbols other than the symbol in question.
2882
e3d4de90
DL
28832000-02-17 Dave Love <fx@gnu.org>
2884
2885 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
2886
0b378936
GM
28872000-02-17 Gerd Moellmann <gerd@gnu.org>
2888
d621caf7
GM
2889 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
2890
0b378936
GM
2891 * alloc.c (enum mem_type): Compile unconditionally.
2892
3b451f74
EZ
28932000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
2894
2895 * xfaces.c (tty_defined_color): Don't return faulire indication
2896 for unspecified-fg and unspecified-bg pseudo-colors.
2897
10689a01
GM
28982000-02-17 Gerd Moellmann <gerd@gnu.org>
2899
1216f5e4
GM
2900 * alloc.c (mark_object): Don't mark symbol names in pure space.
2901 (gc_sweep): Don't unmark symbol names in pure space.
2902
2903 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
2904 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
2905 [GC_MARK_STACK]: New defines.
2906 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
2907 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
2908
2909 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
2910
2911 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
2912 allocate_buffer instead of xmalloc.
2913
2914 * alloc.c (toplevel): Include setjmp.h.
2915 (PURE_POINTER_P): New define.
2916 (enum mem_type) [GC_MARK_STACK]: New enumeration.
2917 (Vdead) [GC_MARK_STACK]: New variable.
2918 (lisp_malloc): Add parameter TYPE, call mem_insert if
2919 GC_MARK_STACK is defined.
2920 (allocate_buffer): New function.
2921 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
2922 (free_float) [GC_MARK_STACK]: Set type to Vdead.
2923 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
2924 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
2925 (MEM_NIL) [GC_MARK_STACK]: New define.
2926 (struct mem_node) [GC_MARK_STACK]: New structure.
2927 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
2928 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
2929 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
2930 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
2931 (mark_stack) [GC_MARK_STACK]: New functions.
2932 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
2933 (clear_marks): Removed.
2934 (gc_sweep): Set free conses' car, free floats' type, free
2935 symbols' function to Vdead. Use lisp_free to free buffers.
2936 (init_alloc_once): Initialize Vdead.
2937 (survives_gc_p): Return non-zero for pure objects.
2938
2939 * alloc.c: Add comments throughout the file.
2940
2503c8b1
GM
2941 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
2942 that unblocks alarms.
2943
8389e1e2
GM
2944 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
2945 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
2946 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
2947
10689a01
GM
2948 * frame.c (make_frame): Set frame initiallly to `garbaged'.
2949
bfc17d18
KH
29502000-02-17 Kenichi Handa <handa@etl.go.jp>
2951
4a09dee0
KH
2952 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
2953 avoid infinite error signaling. Allocate sufficient memory for
2954 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 2955
2b927d02
SM
29562000-02-17 Stefan Monnier <monnier@cs.yale.edu>
2957
2958 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
2959 depends on the previous behavior.
2960
b49cb764
GM
29612000-02-16 Gerd Moellmann <gerd@gnu.org>
2962
2963 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
2964
99e95407
GM
29652000-02-15 Gerd Moellmann <gerd@gnu.org>
2966
2967 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
2968
2969 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 2970 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
2971 write(2).
2972
6ffd3cf7
RS
29732000-02-15 Richard M. Stallman <rms@gnu.org>
2974
2975 * data.c (set_internal): Don't make variable buffer-local
2976 if within a let-binding for the same buffer.
2977 (let_shadows_buffer_binding_p): New function.
2978
2979 * eval.c (specbind): For buffer-local value,
2980 record the current buffer also.
2981 (unbind_to): Cope with that change.
2982
cad53475
GM
29832000-02-15 Gerd Moellmann <gerd@gnu.org>
2984
2985 * window.c (Fsave_window_excursion): Doc fix.
2986
1aa963c8
SM
29872000-02-15 Stefan Monnier <monnier@cs.yale.edu>
2988
2989 * syntax.c (back_comment): Make sure we only consider comment-starters
2990 of the relevant style and return -1 in case of a failure to find the
2991 beginning of the comment.
2992 (Fforward_comment): If back_comment fails, go back to the position just
2993 after the comment-end.
2994 (scan_lists): Add comment describing a very minor bug.
2995
b9b84fd3
SM
29962000-02-14 Stefan Monnier <monnier@cs.yale.edu>
2997
2998 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
2999 `completion-regexp-list' in the docstring.
3000
3a28db80
DL
30012000-02-14 Dave Love <fx@gnu.org>
3002
3003 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
3004
fb4a568d
SM
30052000-02-14 Stefan Monnier <monnier@cs.yale.edu>
3006
3007 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
3008 to Emacs' syntax. Also fix the comment about set/not-set meanings
3009 since Emacs syntax is not the value 0 any more.
3010 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
3011 since it's now part of RE_SYNTAX_EMACS.
3012
1063ebb5
DL
30132000-02-12 Dave Love <fx@gnu.org>
3014
3015 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
3016 Alpha.
3017
fb07a302
GM
30182000-02-12 Gerd Moellmann <gerd@gnu.org>
3019
3020 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
3021
aaf2320c
DL
30222000-02-12 Dave Love <fx@gnu.org>
3023
3024 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
3025
3026 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
3027 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
3028 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
3029
3030 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
3031
3032 * s/nextstep.h: Don't define HAVE_ALLOCA.
3033
3034 * config.in: Add vfork bits.
3035
eedf8bde
GM
30362000-02-12 Gerd Moellmann <gerd@gnu.org>
3037
3038 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
3039 unwind function to undo the effect of stopping atimers.
3040
3041 * keyboard.c (bind_polling_period): Stop all timers except
3042 poll_timer.
3043
3044 * atimer.c (stopped_atimers): New variable.
3045 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
3046 New functions.
3047
3048 * atimer.h (stop_other_atimers, run_all_atimers)
3049 (unwind_stop_other_atimers): Add function prototypes.
3050
3051 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
3052
8476c2f8
KR
30532000-02-11 Ken Raeburn <raeburn@gnu.org>
3054
3055 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
3056 library may depend on jpeg.
3057 (atimer.o): Depends on atimer.c.
3058
0e85e4a3
KH
30592000-02-11 Kenichi Handa <handa@etl.go.jp>
3060
3061 * insdel.c (del_range_1): Call update_compositions.
3062 (del_range_both): Call update_compositions just once..
3063
97fa0cc8
DL
30642000-02-10 Dave Love <fx@gnu.org>
3065
3066 * xfns.c (create_frame_xic): Fix initialization of automatic
3067 aggregates for pcc.
3068
25566a3c
KH
30692000-02-09 Kenichi Handa <handa@etl.go.jp>
3070
3071 * ccl.c (CCL_MAKE_CHAR): New macro.
3072 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
3073 registers by CCL_MAKE_CHAR before calling translate_char.
3074 <CCL_TranslateCharacterConstTbl> Likewise.
3075
69da54ba
DL
30762000-02-08 Dave Love <fx@gnu.org>
3077
3078 * lread.c (__EXTENSIONS__): Define.
3079
f7136ee8
GM
30802000-02-08 Gerd Moellmann <gerd@gnu.org>
3081
3082 * puresize.h (BASE_PURESIZE): Increase to 650000.
3083
7768790b
EZ
30842000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3085
3086 * msdos.c (XMenuActivate): Turn off the cursor after displaying
3087 the help message.
3088
38fd211b
EZ
30892000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
3090
3091 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
3092 md, mh, mb, mr, and me to the fake termcap entry.
3093
66e4690f
KR
30942000-02-06 Ken Raeburn <raeburn@gnu.org>
3095
3096 * sound.c (sound_cleanup): Don't call device close routine if the
3097 function pointer is null.
3098
a75dfea0
AI
30992000-02-06 Andrew Innes <andrewi@gnu.org>
3100
3101 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
3102 around image definitions and prototypes.
3103 (gamma_correct) [WINDOWSNT]: New prototype.
3104
3105 * w32term.c (x_make_frame_visible): Replace call to
3106 input_poll_signal with poll_for_input.
3107
3108 * window.c [WINDOWSNT]: Include w32term.h.
3109
3110 * xdisp.c [WINDOWSNT]: Include w32term.h.
3111
3112 * makefile.nt: Add dependencies on w32gui.h.
3113 (OBJ1): Include atimer.obj.
3114 ($(BLD)\atimer.obj): New dependency rule.
3115
3116 * w32.c (sigmask): New function (does nothing).
3117 (sigunblock): Ditto.
3118
3119 * frame.c [WINDOWSNT]: Include w32term.h.
3120
3121 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
3122
3123 * lread.c (syms_of_lread): Fix literal newlines.
3124
3125 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
3126 the string constant limit (2048 bytes) in MSVC.
3127 (main): Ditto.
3128
59ddecde
GM
31292000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
3130
3131 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
3132 area.
3133 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
3134 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
3135 dispatch the event.
3136
07590973
DL
31372000-02-04 Dave Love <fx@gnu.org>
3138
3139 * fileio.c: Remove some unused vars.
3140 (_GNU_SOURCE): Define (for euidaccess).
3141
3142 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
3143
3144 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
3145 gcpro1, gcpro2.
3146 (read_minibuf): Deal with allow_props correctly.
3147
649351f9
EZ
31482000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
3149
3150 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
3151
66e4690f 31522000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
3153
3154 * search.c (compile_pattern): If a cache entry has a nil regexp,
3155 fill in that entry instead of clobbering a previously cached
3156 string regexp.
3157
66e4690f 31582000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
3159
3160 * puresize.h (BASE_PURESIZE): Increase to 610000.
3161
d240a249
GM
31622000-02-02 Gerd Moellmann <gerd@gnu.org>
3163
3164 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
3165 can GC.
3166
ca91fb26
KH
31672000-02-02 Kenichi Handa <handa@etl.go.jp>
3168
25660570
KH
3169 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
3170 instead of incrementing ic directly.
3171 <CCL_WriteExprConst> Likewise.
3172 <ccl_set_expr>: Set ic to jump_address.
3173
ca91fb26
KH
3174 * fileio.c (e_write): Fix the handling of
3175 CODING_FINISH_INSUFFICIENT_SRC.
3176
2ede9689
DL
31772000-02-01 Dave Love <fx@gnu.org>
3178
3179 * editfns.c (Fpropertize): Doc fix.
3180
3181 * process.c (Fstart_process): Doc fix.
3182
3183 * eval.c: Fix various doc strings not to duplicate information
3184 from help-manyarg-func-alist.
3185
3186 * window.c (Fset_window_margins): Don't make interactive. Doc
3187 fix.
3188
3189 * doc.c (Vhelp_manyarg_func_alist): New variable.
3190 (Fdocumentation): Use it.
3191 (syms_of_doc): Define it.
3192
b6680a0e
GM
31932000-01-31 Gerd Moellmann <gerd@gnu.org>
3194
2cb750ba
GM
3195 * xterm.c (xim_open_dpy): Remove unused local variable.
3196
74e9213b
GM
3197 * emacs.c (USAGE): Use term `display options' instead of `X
3198 options'.
3199
3200 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
3201 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
3202
b6680a0e
GM
3203 * fns.c (sweep_weak_table): New function.
3204 (sweep_weak_hash_tables): Use it. Keep on marking until there
3205 is no more change.
3206
994c5afe
GM
32072000-01-30 Gerd Moellmann <gerd@gnu.org>
3208
3209 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
3210 that XTread_socket does not crash by trying to call XNoOp on a
3211 closed display.
3212
f00276e3
JR
32132000-01-30 Jason Rumney <jasonr@gnu.org>
3214
3215 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3216 Change selected_frame to SELECTED_FRAME ().
3217 (w32_console_mouse_position): Remove #ifndef MULE from around
3218 `insist' parameter.
3219
3220 * makefile.nt: Remove dosfns.obj.
3221
3222 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
3223
3224 * w32fns.c (w32_defined_color): Check for valid frame before
3225 applying gamma correction. Eliminate dependency on frame elsewhere.
3226 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
3227 (w32_to_x_font): Use resx and resy not height_in and width_in.
3228 (x_to_w32_font): Doc fix.
3229 (xlfd_strip_height): New function to strip and return font height.
3230 (w32_font_match): Compare height separately from rest of xlfd
3231 spec, using xlfd_strip_height.
3232
3233 * w32term.c (w32_term_init): Swap resx and height_in, resy and
3234 width_in. Use w32_defined_color in place of defined_color.
3235
3236 * w32faces.c: Merge more of DOS and X specifics in preparation for
3237 merge with xfaces.c.
3238 (defined_color): Remove FIXME comment.
3239 (tty_color_name): Provide w32-specific function.
3240 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
3241
3242 * w32console.c (turn_on_face, turn_off_face): Removed.
3243 (w32_face_attributes): New function.
3244 (Global_variables): Reduce scope where possible.
3245 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
3246 fill attribute.
3247 (hl_mode): Don't modify text attributes.
3248 (write_glyphs): Don't do anything if len <= 0. Use
3249 w32_face_attributes to get attributes for drawing. Write
3250 terminating codes using char_attr_normal.
3251 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
3252 (update_begin, update_end): Likewise.
3253 (vga_stdcolor_name): New function.
3254 (initialize_w32_display): Remove char_attr_reverse and char_attr.
3255 (Fset_screen_color): Remove char_attr_reverse.
3256
b08e8bb2
GM
32572000-01-29 Gerd Moellmann <gerd@gnu.org>
3258
3259 * xfns.c (xic_set_preeditarea): Take window parameter and
3260 window-relative pixel-positions.
3261
3262 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
3263 is its frame's selected window.
3264 (xim_instantiate_callback): Likewise.
3265
3266 * xfns.c (x_create_im): Removed.
3267 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
3268 (supported_xim_styles): Renamed from supported_styles.
3269 (best_xim_style): Renamed from best_style.
3270 (create_frame_xic): Renamed from xic_create_frame.
3271 (free_frame_xic): Renamed from xic_destroy_frame.
3272
32732000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
3274
3275 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
3276 our frames, call XFilterEvent with 2nd parameter `None'.
3277 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
3278 returning XBufferOverflow.
3279 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
3280 area.
3281 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
3282 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
3283 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
3284 (xim_initialize, xim_close)
3285 [HAVE_X_I18N && HAVE_X11R6]: New functions.
3286 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
3287 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
3288 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
3289
3290 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
3291 and `xim_styles'.
3292 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
3293 `xic_style' and `xic_xfs'.
3294 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
3295 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
3296 (FRAME_XIM): Removed.
3297
3298 * xfns.c (supported_styles): New variable.
3299 (DEFAULT_STYLE, DEFAULT_FONT): New macros
3300 (xic_create_xfontset, best_style, xic_create_frame)
3301 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
3302 (xic_set_xfontset): New functions.
3303
142e109c
DL
33042000-01-28 Dave Love <fx@gnu.org>
3305
3306 * s/irix6-5.h: Revert last change after change to irix5-0.h.
3307
3308 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
3309
b02786f9
GM
33102000-01-28 Gerd Moellmann <gerd@gnu.org>
3311
d060bc9f
GM
3312 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
3313 for *scratch* if it already existed.
3314
b02786f9
GM
3315 * emacs.c (USAGE): New macro.
3316 (main): Use it to display usage information.
3317
2c52d7e4
EZ
33182000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3319
3320 Support for the menu-help feature:
3321
3322 * msdos.h: Change prototypes of XMenuAddSelection and
3323 XMenuActivate.
3324
3325 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
3326 part of the line to the termscript file.
3327 (IT_clear_to_end): Clear the entire line, not just its beginning.
3328 (menu_help_message, prev_menu_help_message): New variables.
3329 (IT_menu_make_room): Make room for the help_text member.
3330 (IT_menu_display): New argument disp_help; all callers changed.
3331 If disp_help is non-zero, store the help text of the active menu
3332 item in menu_help_message.
3333 (XMenuAddPane): Initialize the help_text member to NULL.
3334 (XMenuAddSelection): New argument help_text. Store it in the
3335 XMenu structure.
3336 (XMenuActivate): New argument help_callback. If the value of
3337 menu_help_message has changed since the last time, display the
3338 menu help message text while waiting for the mouse to move. Clear
3339 the echo area before exiting.
3340 (XMenuDestroy): Free the help_text member.
3341
ffe0bcd1
GM
33422000-01-27 Gerd Moellmann <gerd@gnu.org>
3343
3344 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
3345 XMenuAddSelection. Pass help callback to XMenuActivate.
3346 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
3347
50dbd23f
EZ
33482000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
3349
3350 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
3351 and EMACS_SET_USECS.
3352
f5941bf8
GM
33532000-01-26 Dave Love <fx@gnu.org>
3354
6c67ddee
DL
3355 * editfns.c (Fchar_after, Fchar_before): Doc fix.
3356
f5941bf8
GM
3357 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
3358 an error may be signalled.
3359
9e49c990
GM
33602000-01-26 Gerd Moellmann <gerd@gnu.org>
3361
fc3cb460
GM
3362 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
3363 LD_SWITCH_SYSTEM inherited from irix5-0.h.
3364
9e49c990
GM
3365 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
3366
d0c037d8
GM
33672000-01-25 Gerd Moellmann <gerd@gnu.org>
3368
3369 * charset.c (Fstring): If there is a multibyte char among
3370 the args, always return a multibyte string.
3371
e12489f9
GM
33722000-01-25 Gerd Moellmann <gerd@gnu.org>
3373
3374 * sysdep.c (sys_select): Turn atimers off and on instead of
3375 recording and restoring old alarm handler
3376
3377 * process.c (toplevel): Include atimer.h.
3378 (create_process_1): Rewritten.
3379 (create_process): Use atimers instead of alarm.
3380 (wait_reading_process_input) [hpux]: Turn atimers off instead
3381 of turning off SIGALRM.
3382 (wait_reading_process_input): Turn off atimers instead off
3383 calling stop_polling.
3384
3385 * emacs.c (main): Call init_atimer.
3386
3387 * keyboard.c (toplevel): Include systime.h and atimer.h.
3388 (polling_for_input): Removed because unused.
3389 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
3390 (poll_timer): New variable.
3391 (poll_for_input, poll_for_input_1): New functions.
3392 (start_polling, stop_polling): Rewritten.
3393
3394 * keyboard.h (polling_for_input): Removed.
3395
3396 * atimer.h, atimer.c: New files.
3397
3398 * Makefile.in (obj): Add atimer.o.
3399 (atimer.o): New target.
3400
3401 * blockinput.h (pending_atimers): Add extern declaration.
3402 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
3403
3404 * lisp.h (popup_activated_flag): Add extern declaration.
3405
3406 * xmenu.c (popup_activated_flag): Make externally visible.
3407 (popup_activate_callback) [USE_MOTIF]: Increment
3408 popup_activated_flag.
3409 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
3410
3411 * xterm.c (toplevel): Include atimer.h.
3412 (toolkit_scroll_bar_interaction): New variable.
3413 (Fxt_process_timeouts): Removed.
3414 (x_process_timeouts): New function.
3415 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
3416 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
3417 (x_make_frame_visible): Call poll_for_input_1 instead of
3418 input_poll_signal. Don't call alarm.
3419 (x_initialize): Install timer calling x_process_timeouts.
3420
1e5279b9
DL
34212000-01-24 Dave Love <fx@gnu.org>
3422
6c67ddee 3423 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
3424 Don't use -cckr -- apparently not now necessary.
3425
edf6aeb8
EZ
34262000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3427
3428 * msdos.c (IT_menu_display): Truncate long menu lines at the right
3429 screen boundary.
3430
9badad41
JR
34312000-01-23 Jason Rumney <jasonr@gnu.org>
3432
3433 * w32fns.c (w32_defined_color): Apply gamma correction before
3434 trying to map to the palette.
3435 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
3436 to w32_clear_rect.
3437
3438 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
3439 here. Callers changed to always pass real device context.
3440 (w32_draw_bitmap): Likewise.
3441 (w32_get_glyph_overhangs): Likewise.
3442 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
3443 one.
3444 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
3445 pfnSetScrollInfo and SetScrollRange.
3446 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
3447 back into MULE characters after decoding them.
3448 (x_get_glyph_face_and_encoding): Likewise.
3449 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
3450 GetCharABCWidthsW fails, since this is defined on Windows 9x.
3451 (x_produce_glyphs): Calculate per char metrics for a character
3452 that we know exists in default font when font_not_found_p is true.
3453
63bd786b
JR
34542000-01-22 Jason Rumney <jasonr@gnu.org>
3455
3456 * makefile.nt (intervals.obj, composite.obj): New modules.
3457 (composite.h): Added as dependency where appropriate.
3458
3459 * w32gui.h (XGCValue): New struct for emulating X GCs.
3460
3461 * w32term.h (XCharStruct): New struct for emulating X.
3462
3463 * w32console.c (turn_on_face, turn_off_face): New functions.
3464 (change_line_highlight): New prototype for new redisplay.
3465 (write_glyphs): Support multibyte text. Support faces.
3466
3467 * w32faces.c: Complete rewrite for new redisplay based on new
3468 xfaces.c.
3469
3470 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
3471 throughout. struct frame * in place of FRAME_PTR.
3472 Skeleton support for images, toolbars, tooltips from xfns.c.
3473 (Fx_create_frame): Use system default for default scroll bar
3474 width.
3475 (w32_get_arg): Renamed from x_get_arg.
3476 (Fx_file_dialog): New function.
3477 (w32_list_fonts): Check cache before asking system.
3478 (Vw32_enable_synthesized_fonts): New variable.
3479 (Vw32_enable_italics): Obsolete, removed.
3480
3481 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
3482 Use SELECTED_FRAME macro.
3483
3484 * w32menu.c: Add skeleton support for help strings on menus.
3485 (add_menu_item): Native checkbox and radio support added, but not
3486 yet enabled due to bugs.
3487 (push_menu_item): Add parameters type, selection and help.
3488 Callers updated.
3489 Formatting changes to reduce unnecessary diffs with xmenu.c.
3490
3491 * w32select.c (Fw32_set_clipboard_data): Update call to
3492 find_charset_in_str.
3493
3494 * w32term.c: Complete rewrite for new redisplay based on new
3495 xterm.c with necessary sections merged back in from old w32term.c.
3496
6ffd3cf7 34972000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
3498
3499 * data.c (set_internal): Further fix in same criterion.
3500
6ffd3cf7 35012000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
3502
3503 * data.c (set_internal): Fix the criteria for whether
3504 to swap out the old cached binding.
3505
60af03f1
DL
35062000-01-19 Dave Love <fx@gnu.org>
3507
3508 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
3509
f9be074f
KH
35102000-01-18 Kenichi Handa <handa@etl.go.jp>
3511
3512 * regex.c (re_compile_fastmap): While checking a range table for
3513 `charset', skip flag bits for a character class correctly.
3514
52b8dbf9
GM
35152000-01-17 Gerd Moellmann <gerd@gnu.org>
3516
d36100c9
GM
3517 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
3518
52b8dbf9
GM
3519 * xfns.c (x_window): Call lw_create_widget with new parameter
3520 list.
3521
3522 * widget.c (EmacsFrameSetCharSize): Change size of children first
3523 because of problems with main window geometry management under
3524 Lesstif.
3525
3526 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
3527 MENU_ITEMS_ITEM_.*.
3528 (MENU_ITEMS_ITEM_HELP): New enumerator.
3529 (push_menu_item): Add parameter HELP. Record help in menu_items.
3530 (single_menu_item, single_submenu, list_of_items): Call
3531 push_menu_item with new parameter.
3532 (single_submenu): Set help string in widget value.
3533 (menu_highlight_callback): New function.
3534 (set_frame_menubar): Call lw_create_widget with new
3535 parameter list.
3536 (xmenu_show, xdialog_show): Ditto.
3537
3139018f
GM
35382000-01-13 Gerd Moellmann <gerd@gnu.org>
3539
3540 * sound.c (Fplay_sound): Improve doc string.
3541
83c8f461
RS
35422000-01-11 Richard M. Stallman <rms@gnu.org>
3543
3544 * lisp.h (set_internal): Enter the new arg.
3545
3546 * eval.c (specbind): Record buffer-local variables specially,
3547 indicating which buffer's binding was saved.
3548 (unbind_to): Restore buffer-local variables specially
3549 in the proper buffer.
3550
3551 * data.c (set_internal): New arg BUF.
3552
3553 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
3554 * data.c (Fset): Pass new arg to set_internal.
3555 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
3556
1fab1775
GM
35572000-01-11 Gerd Moellmann <gerd@gnu.org>
3558
3559 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
3560 xprintsym.
3561
83c8f461 35622000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
3563
3564 * minibuf.c (Ftry_completion): Doc fix.
3565
7a85e4df
GM
35662000-01-11 Gerd Moellmann <gerd@gnu.org>
3567
3568 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
3569 vector, too.
3570
a970dae4
AS
35712000-01-11 Andreas Schwab <schwab@suse.de>
3572
3573 * coding.c (code_convert_region): Initialize total_skip.
3574
c65d14ee
DL
35752000-01-08 Dave Love <fx@gnu.org>
3576
3577 * eval.c (Fuser_variable_p): Check customizability too.
3578
834938d2
GM
35792000-01-07 Gerd Moellmann <gerd@gnu.org>
3580
3581 * minibuf.c (Fcompleting_read): Doc fix.
3582
e0303cd6
GM
35832000-01-05 Gerd Moellmann <gerd@gnu.org>
3584
8a26744b
GM
3585 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
3586 -L /usr/local/lib.
3587
e0303cd6
GM
3588 * xfns.c (x_create_im): New function to set IM and IC of a frame.
3589 Check that input style is supported before trying to create an
3590 IC for it.
3591 (x_window): Call x_create_im.
3592
2e471eb5
GM
35932000-01-04 Gerd Moellmann <gerd@gnu.org>
3594
560a7bd2
GM
3595 * xfns.c (current_gif_memory_src): New variable.
3596 (gif_load): Record the address of the current memory source
3597 in current_gif_memory_src.
3598 (gif_read_from_memory): Use current_gif_memory_src.
3599
f9ee84a3
GM
3600 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
3601 macros statement form.
3602
d1299cde
GM
3603 * sound.c (struct sound): Renamed from struct sound_file.
3604 (struct sound): Add members `data' and `header_size'.
3605 (enum sound_attr): Add SOUND_DATA.
3606 (current_sound, current_sound_device): Variables renamed from
3607 sound_file and sound_device.
3608 (parse_sound): Parse :data.
3609 (parse_sound): Handle sound data in strings.
3610 (find_sound_type): Function renamed from find_sound_file_type.
3611 (wav_init, au_init): Fail if sound's header_size is smaller than
3612 needed header size.
3613 (wav_play, au_play): Play sounds from string data.
3614
2e471eb5
GM
3615 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
3616
3617 * lisp.h: Add prototype for allocate_string_data.
3618
3619 * alloc.c (Fgarbage_collect): Return number of live and free
3620 strings.
3621
3622 * alloc.c (mark_buffer): Remove code in #if 0.
3623 (gc_sweep): Ditto.
3624 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
3625 (strings_consed): New variable.
3626 (allocate_string): Set it.
3627 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
3628 (Fmemory_use_counts): Return strings_consed. Use Flist.
3629
3630 * alloc.c: General cleanup in comments etc. Remove conditional
3631 compilation for `standalone'.
3632
3633 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
3634
3635 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
3636 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
3637 (DONT_COPY_FLAG): Removed.
3638 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
3639 (struct sdata, struct sblock): New
3640 (struct string_block): Rewritten.
3641 (STRINGS_IN_STRING_BLOCK): New macro.
3642 (oldest_sblock, current_sblock, total_strings, total_free_strings)
3643 (large_sblocks, string_blocks, string_free_list): New variables.
3644 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
3645 (init_strings): Rewritten.
3646 (allocate_string, allocate_string_data, compact_small_strings)
3647 (free_large_strings, sweep_strings): New functions.
3648 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
3649 (struct string_block_head, current_string_block)
3650 (first_string_block, large_string_blocks, STRING_FULLSIZE)
3651 (STRING_PAD): Removed.
3652 (make_uninit_multibyte_string, make_pure_string): Rewritten.
3653 (Fgarbage_collect): Don't set mark bit in large strings.
3654 (mark_object): Mark strings differently. Mark symbol names
3655 differently.
3656 (survives_gc_p): Test marked strings differently.
3657 (gc_sweep): Sweep strings differently, unmark strings in
3658 symbol names.
3659 (compact_strings): Removed.
3660
42608ba8
EZ
36612000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
3662
3663 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
3664 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
3665
e0a09e1a
KH
36662000-01-04 Kenichi Handa <handa@etl.go.jp>
3667
dd9f0750
KH
3668 * fileio.c (Finsert_file_contents): Signal error if visiting file
3669 in a non-empty buffer.
3670
3c0f3b15 3671 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 3672
44cd3ae5
GM
36732000-01-03 Gerd Moellmann <gerd@gnu.org>
3674
3675 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
3676 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
3677
3678 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
3679
c182a70f
EZ
36802000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3681
3682 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
3683 need to test for MSDOS frames.
3684
24480d5b
EZ
36852000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3686
3687 * dosfns.c (unspecified_colors): Remove.
3688 (msdos_stdcolor_idx): Use global variables unspecified_fg and
3689 unspecified_bg.
3690 (msdos_stdcolor_name): Return strings for unspecified fore- and
3691 back-ground colors.
3692
3693 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 3694 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
3695 (tty_color_name): Return Lisp strings for unspecified fore- and
3696 back-ground colors.
3697 (Finternal_set_lisp_face_attribute): Remove the special treatment
3698 for Qunspecified_{f,b}g.
3699 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
3700 string.
3701
047f434a
GM
37022000-01-03 Gerd Moellmann <gerd@gnu.org>
3703
3704 * xdisp.c (reseat_at_next_visible_line_start): Position before
3705 newline only if ending up on a newline.
3706 (next_element_from_ellipsis): Return success. Handle case of
3707 displaying no ellipsis. Fix case of ellipsis defined in display
3708 table.
3709 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
3710 returns 0.
3711
d684c676
EZ
37122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
3713
3714 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
3715 (Fcolor_supported_p): Renamed from face-color-supported-p.
3716
5fe1d139
EZ
37172000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3718
3719 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
3720 list of colors renamed to tty-defined-color-alist.
3721 (tty_color_name): Pass the frame to tty-color-by-index.
3722 (realize_tty_face): tty-color-alist is now a function which
3723 accepts the frame as argument.
3724
3725 * term.c (Ftty_display_color_p): Accept an optional argument
3726 FRAME.
3727
816be8b8
EZ
37282000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3729
3730 * term.c (insert_glyphs): Pass glyph, not &glyph, to
3731 encode_terminal_code.
3732
b635321e
EZ
37332000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3734
3735 * dispnew.c (mode_line_string): Support termcap frames as well.
3736
9b784e96
GM
37372000-01-01 Gerd Moellmann <gerd@gnu.org>
3738
27189709
GM
3739 * syntax.c (Fforward_word): Undo previous change.
3740
3741 * editfns.c (Fconstrain_to_field): Don't constrain if
3742 inhibit-field-text-motion is non-nil.
3743 (Fline_beginning_position): Undo previous change.
3744 (Fline_end_position): Ditto.
3745
3746 * syntax.c (Fforward_word): Notice field boundaries only if
3747 inhibit-field-text-motion is nil.
3748
3749 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
3750
3751 * editfns.c (Vinhibit_field_text_motion): New variable.
3752 (inhibit-field-text-motion): New DEFVAR_LISP.
3753 (Fline_beginning_position, Fline_end_position): Notice field
3754 boundaries only if inhibit-field-text-motion is nil.
3755
45158a91
GM
3756 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
3757 All calls adjusted.
3758 (x_build_heuristic_mask): Likewise.
3759 (xbm_load_image_from_file): Change error output.
3760 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
3761 (gif_load, gs_load, x_kill_gs_process): Ditto.
3762
9b784e96
GM
3763 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
3764 color indices when accessing raster pixels.
63cec32f
GM
3765 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
3766 one of :file or :data.
3767 (enum pbm_keyword_index): Add PBM_DATA.
3768 (pbm_format): Add :data.
3769 (pbm_image_p): Allow either :file or :data.
3770 (pbm_read_file): New function.
3771 (pbm_scan_number): Rewritten to read from string.
3772 (pbm_load): Support :data.
9b784e96 3773
5ad6a5fb
GM
37741999-12-31 Gerd Moellmann <gerd@gnu.org>
3775
3776 * xfns.c: New image functions adapted to Emacs conventions.
3777 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
3778 variable `file'.
3779
63448a4d
WP
37801999-12-31 William M. Perry <wmperry@aventail.com>
3781
3782 * xfns.c (jpeg_format): Added the :data keyword
3783 (jpeg_image_p): JPEG is valid with :file _or_ :data
3784 (jpeg_memory_src): Defined new JPEG image source to read from a
3785 memory buffer.
3786 (jpeg_load): Pay attention to the :data keyword if specified.
3787 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
3788 found.
3789 (png_format): Added the :data keyword
3790 (png_image_p): PNG is valid with :file _or_ :data
3791 (png_read_from_memory): New PNG read function to read from a
3792 memory buffer.
3793 (png_load): Pay attention to the :data keyword if specified. Uses
3794 png_set_read_fn() instead of png_init_io() if specified.
3795 (tiff_format): Added the :data keyword for TIFF images.
3796 (tiff_image_p): TIFF is valid with :file _or_ :data
3797 (tiff_read_from_memory): Defined new TIFF I/O functions to read
3798 from a memory buffer.
3799 (tiff_load): Pay attention to the :data keyword if specified.
3800 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
3801 (gif_format): Added the :data keyword
3802 (gif_image_p): GIF is valid with :file _or_ :data
3803 (gif_read_from_memory): New GIF input function to read from a
3804 memory buffer.
c65d14ee 3805 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
3806 instead of DGifOpenFileName() if specified.
3807
c880678e
GM
38081999-12-31 Gerd Moellmann <gerd@gnu.org>
3809
3810 * xdisp.c (next_element_from_buffer): Change assertion at the end
3811 because it doesn't hold when there's an overlay string at the end
3812 from which we deliver an image.
3813
8ccb9a54
EZ
38141999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3815
3816 * msdos.c (IT_update_begin): Don't dereference members of struct
3817 window for deleted windows.
3818
12ce2351
GM
38191999-12-30 Gerd Moellmann <gerd@gnu.org>
3820
a915c648
GM
3821 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
3822 a hook, and the hook has a non-nil `no-self-insert' property, let
3823 the return value of the hook specify whether an expansion took
3824 place. If it returns nil, no expansion has been performed.
3825
12ce2351
GM
3826 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
3827 differently.
3828
04ee4f45
EZ
38291999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
3830
3831 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
3832
7f4bc0c3
EZ
38331999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
3834
3835 * dispnew.c (mode_line_string): Support MS-DOS frames.
3836
dac204bc
GM
38371999-12-29 Gerd Moellmann <gerd@gnu.org>
3838
3839 * eval.c (syms_of_eval): Initialize debugger_may_continue.
3840
7b712ad8
KH
38411999-12-29 Kenichi Handa <handa@etl.go.jp>
3842
3843 * process.c (read_process_output): Fix the args CHARPOS and LENINS
3844 to signal_after_change.
3845
adb9900f
EZ
38461999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
3847
41ad069b
EZ
3848 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
3849 dimensions changed, invalidate the mouse highlight info.
3850 (disable_mouse_highlight, help_echo, previous_help_echo): New
3851 variables.
3852 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
3853 (fast_find_position, IT_note_mode_line_highlight)
3854 (IT_note_mouse_highlight): New functions.
3855 (IT_update_begin): If the redisplay affects the window where the
3856 mouse highlight is, clear the highlight. If the frame where the
3857 highlight was displayed was killed, invalidate the highlight
3858 info.
3859 (IT_update_end): Reset the highlight flag. Reset the mouse
3860 highlight-defer flag.
3861 (IT_frame_up_to_date): New function, if mouse highlight was
3862 deferred due to GC, do it now.
3863 (internal_terminal_init): Initialize mouse-highlight related
3864 members of the_only_x_display. Assign IT_frame_up_to_date to
3865 frame_up_to_date_hook.
3866 (dos_rawgetc): If the mouse moved, update mouse highlight. If
3867 help_echo changed value, generate a HELP_EVENT event.
3868 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
3869
adb9900f
EZ
3870 * msdos.h (struct display_info): New.
3871 (struct x_output): Add the display_info member.
3872 (FRAME_X_DISPLAY_INFO): New macro.
3873
481b5054
GM
38741999-12-28 Gerd Moellmann <gerd@gnu.org>
3875
3876 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
3877 if MODIFF > 1.
6448a6b3 3878 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
3879
3880 * buffer.c (modify_overlay): Always compute unchanged info.
3881
a2882b0d
KH
38821999-12-27 Kenichi Handa <handa@etl.go.jp>
3883
3884 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
3885
89ba5b5f
KH
38861999-12-27 Kenichi Handa <handa@etl.go.jp>
3887
3888 The following changes are to use more bits for face IDs.
3889
3890 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
3891 lowest 8 bits are single byte character code, the bits above are
3892 face ID.
481b5054 3893 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 3894 above.
481b5054
GM
3895 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
3896 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
3897
3898 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
3899 of GLYPH_MASK_CHAR.
3900
3901 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
3902 of GLYPH_MASK_CHAR.
3903
3904 * dispextern.h (struct glyph): Make face_id and padding_p the top
3905 level members. Change members in union `u'.
3906 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
3907 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
3908 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
3909 (CHAR_GLYPH_PADDING_P): Likewise.
3910 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
3911 characters.
3912
481b5054 3913 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
3914 for the change of struct glyph.
3915 (line_draw_cost): Adjusted for the change of
3916 GLYPH_FROM_CHAR_GLYPH.
3917 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
3918
3919 * term.c (encode_terminal_code): Adjusted for the change of struct
3920 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 3921 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
3922 change of struct glyph.
3923
3924 * xdisp.c: All codes adjusted for the change of struct glyph.
3925
3926 * xterm.c: All codes adjusted for the change of struct glyph.
3927
5bcd116c
KH
39281999-12-27 Kenichi Handa <handa@etl.go.jp>
3929
3930 * composite.h (struct composition): Change the order of declaring
3931 members to reduce the byte size of the structure.
3932
f21b06b7
GM
39331999-12-25 Gerd Moellmann <gerd@gnu.org>
3934
3935 * search.c (looking_at_1): Reset immediate_quit before modifying
3936 global data.
3937
e36557c9
KH
39381999-12-24 Kenichi Handa <handa@etl.go.jp>
3939
3940 * process.c (read_process_output): Fix the arg FROM to
3941 update_compositions.
3942
83c8f461 39431999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
3944
3945 * search.c (Freplace_match): For nonliteral replacement in buffer,
3946 construct all the new text first, then insert all at once.
3947
0b863bd9
DL
39481999-12-22 Dave Love <fx@gnu.org>
3949
3950 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
3951
6d8e8ef3
GM
39521999-12-22 Gerd Moellmann <gerd@gnu.org>
3953
28d7281d
GM
3954 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
3955 lead to size changes to after the X window has been created.
3956
e22ef6eb 3957 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
3958 variable in xassert.
3959
8affcced
KH
39601999-12-22 Kenichi Handa <handa@etl.go.jp>
3961
3962 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 3963 only when the frame is not for a window system.
8affcced 3964
f2be1146
GM
39651999-12-22 Gerd Moellmann <gerd@gnu.org>
3966
deca1348
GM
3967 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
3968 redisplay after changing the multibyteness of a buffer.
3969
f2be1146
GM
3970 * xterm.c (XTread_socket): At the beginning of the loop, pass the
3971 frame's X window to XFilterEvent instead of None because that's
3972 the X window for which the IC was created. This makes dead
3973 accents work when the pointer is not in Emacs' frame.
3974 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
3975
a744a2ec
DL
39761999-12-20 Dave Love <fx@gnu.org>
3977
3978 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
3979
9e6985ed
GM
39801999-12-19 Gerd Moellmann <gerd@gnu.org>
3981
3982 * eval.c (debugger_may_continue): New variable.
3983 (syms_of_eval): Add a DEFVAR_BOOL for it.
3984 (call_debugger): Bind it.
3985
3b620731
EZ
39861999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
3987
3988 * msdos.c (IT_set_face): Don't swap face colors when highlight or
3989 fp->tty_reverse_p is set, unless the computed colors are identical
3990 to frame colors. Print both original and computed colors to
3991 termscript file.
3992 (IT_write_glyphs): Track the changes in handling of composite
3993 characters.
3994 (IT_set_frame_parameters): Don't set frame colors from
3995 unspecified-fg and unspecified-bg pseudo-colors.
3996
0f9a51c4
DL
39971999-12-17 Dave Love <fx@gnu.org>
3998
3999 * data.c (Fkeywordp): New function.
4000 (syms_of_data): Install it.
4001
363e4e42
EZ
40021999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4003
4004 * xfaces.c (tty_defined_color): Fix last change.
4005
cfad01b4
GM
40061999-12-15 Gerd Moellmann <gerd@gnu.org>
4007
4008 * xdisp.c (redisplay_window) <optional new window start>: Check
4009 that window start is in [BEGV..ZV].
4010
f9d2fdc4
EZ
40111999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
4012
4013 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
4014 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
4015
4016 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
4017 (syms_of_xfaces): Initialize and staticpro them.
4018 (tty_defined_color): If the color name is unspecified-fg or
4019 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
4020 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
4021 (tty_color_name): If the color pixel value is either
4022 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
4023 Qunspecified_fg or Qunspecified_bg, respectively.
4024 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
4025 and Qunspecified_bg for foreground and background colors.
4026 (realize_default_face): If the foreground and background colors
4027 are not specified, default to Qunspecified_fg and Qunspecified_bg.
4028 (realize_tty_face): By default, set the face colors to
4029 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
4030 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
4031 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
4032 Reverse the colors if the default colors were reversed.
4033
4034 * dispnew.c (init_display): Initialize the frame pixels of the
4035 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
4036 FACE_TTY_DEFAULT_BG_COLOR.
4037
4038 * term.c (turn_on_face): If the default fore- and background
4039 colors are reversed, enter inverse video mode. Don't send color
4040 escape sequences for unspecified foreground and background colors.
4041 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
4042
4043 * dosfns.c (unspecified_colors): New variable.
4044 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
4045 color names, return FACE_TTY_DEFAULT_FG_COLOR and
4046 FACE_TTY_DEFAULT_BG_COLOR, respectively.
4047 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
4048 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
4049 Qunspecified_bg, respectively.
4050
4051 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
4052 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
4053
e19539f1
KH
40541999-12-15 Kenichi Handa <handa@etl.go.jp>
4055
4056 * coding.c (code_convert_region): Fix the secoding arg to
4057 update_compositions.
4058
5ec14d3c
KH
40591999-12-15 Kenichi Handa <handa@etl.go.jp>
4060
4061 The following changes are for the new composition mechanism. We
4062 have deleted `composition' charset and composite characters,
4063 instead introduced a special text property `composition'.
4064
4065 * Makefile.in (INTERVAL_SRC): Include composite.h.
4066 (INTERVAL_OBJ): Include composite.o.
4067 (SOME_MACHINE_OBJECTS): Include composite.o.
4068 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
4069 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
4070 Depend on composite.h.
4071 (doc.o): Depend on charset.h.
4072 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
4073 (composite.o): New target.
4074
4075 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
4076
4077 * callproc.c (Fcall_process): Call code_convert_string to encode
4078 arguments. Use CODING_REQUIRE_DECODING to check if the process
4079 output should be decoded.
4080
4081 * casefiddle.c: Include composite.h.
4082 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
4083 multibyte character. Adjusted for the change of CHAR_STRING.
4084 (casify_region): Likewise. Call update_compositions.
4085
4086 * category.h (CATEGORY_SET): Delete codes for a composite
4087 character.
4088
4089 * category.c (word_boundary_p): Delete codes for a composite
4090 character.
4091 (Fmake_category_table): New function.
4092 (syms_of_category): Defsubr it.
4093
4094 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
4095 (ccl_driver): Delete codes for a composite character.
4096
4097 * charset.h: In this entry, just `Modified' means that codes for a
4098 composite character is deleted.
4099 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
4100 (charset_composition) (MIN_CHAR_COMPOSITION)
4101 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
4102 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
4103 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
4104 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
4105 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
4106 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
4107 Modified.
4108 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
4109 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
4110 non_ascii_char_to_string.
4111 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
4112 (STRING_CHAR_AND_LENGTH): Likewise.
4113 (FETCH_CHAR_ADVANCE): New macro.
4114 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
4115 (MAX_MULTIBYTE_LENGTH): New macro.
4116 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
4117 (find_charset_in_str): Argument adjusted.
4118 (CHAR_LEN): Modified.
4119
4120 * charset.c: In this entry, just `Modified' means that codes for a
4121 composite character is deleted.
4122 (Qcomposition) (leading_code_composition)
4123 (charset_composition) (min_composite_char) (cmpchar_table)
4124 (cmpchar_table_size) (n_cmpchars): Deleted.
4125 (SPLIT_COMPOSITE_SEQ): Deleted.
4126 (SPLIT_MULTIBYTE_SEQ): Modified.
4127 (char_to_string): Renamed from non_ascii_char_to_string.
4128 Modified.
4129 (string_to_char): Renamed from string_to_non_ascii_char.
4130 (split_string): Renamed from split_non_ascii_string.
4131 (char_printable_p) (Fsplit_char)
4132 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
4133 (char_bytes) (Fchar_width) (strwidth): Modified.
4134 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
4135 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
4136 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
4137 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
4138 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
4139 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
4140 (Fcmpchar_cmp_count): Deleted.
4141 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
4142 (init_charset_once): Modified.
4143 (syms_of_charset): Modified.
4144
4145 * cmds.c (internal_self_insert): Adjusted for the change of
4146 CHAR_STRING.
4147
4148 * coding.h (emacs_code_class_type): Delete the member
4149 EMACS_leading_code_composition.
4150 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
4151 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
4152 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
4153 (COMPOSING_WITH_RULE_P): Macros deleted.
4154 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
4155 macros.
4156 (struct composition_data): New structure.
4157 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
4158 (struct coding_system): New members composition_rule_follows,
4159 cmp_data, cmp_data_start, cmp_data_index.
4160 (coding_save_composition) (coding_free_composition_data)
4161 (coding_adjust_composition_offset): Extern them.
4162
4163 * coding.c: Include composite.h.
4164 (DECODE_CHARACTER_ASCII): Don't handle composition here.
4165 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
4166 of multibyte code here.
4167 (DECODE_CHARACTER_DIMENSION2): Likewise.
4168 (detect_coding_emacs_mule): Change the case label from
4169 EMACS_leading_code_composition to 0x80.
4170 (detect_coding_iso2022): Handle new composition sequence.
4171 (DECODE_ISO_CHARACTER): Likewise.
4172 (check_composing_code): Deleted.
4173 (coding_allocate_composition_data): New function.
4174 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
4175 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
4176 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
4177 (decode_coding_iso2022): Handle new composition sequence.
4178 (ENCODE_ISO_CHARACTER): Don't check composition here.
4179 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
4180 (ENCODE_COMPOSITION_NO_RULE_START)
4181 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
4182 (ENCODE_COMPOSITION_END): Handle new composition sequence.
4183 (ENCODE_COMPOSITION_FAKE_START): New macro.
4184 (encode_coding_iso2022): Handle new composition sequence.
4185 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
4186 (encode_coding_sjis_big5): Ignore composition.
4187 (setup_coding_system): Initialize new members of struct
4188 coding_system. Enable composition only when the coding system has
4189 `composition' property t.
4190 (coding_free_composition_data) (coding_adjust_composition_offset)
4191 (coding_save_composition) (coding_restore_composition): New
4192 functions.
4193 (code_convert_region): Call coding_save_composition for encoding
4194 and coding_allocate_composition_data for decoding. Don't skip
4195 ASCII characters if we handle composition on encoding. Call
4196 signal_after_change with Check_BORDER.
4197 (code_convert_string): Call coding_save_composition for encoding
4198 and coding_allocate_composition_data for decoding. Don't skip
4199 ASCII characters if we handle composition on encoding.
4200 (code_convert_string1): Set Vlast_coding_system_used after calling
4201 code_convert_string.
4202 (code_convert_string_norecord): Disable composition.
4203 (Fset_terminal_coding_system_internal): Likewise.
4204 (Fset_safe_terminal_coding_system_internal): Likewise.
4205 (Fset_keyboard_coding_system_internal): Likewise.
4206 (init_coding_once): Set emacs_code_class[0x80] to
4207 EMACS_invalid_code.
4208
4209 * composite.h: New file.
4210
4211 * composite.c: New file.
4212
4213 * data.c (Faref): Delete codes for a composite character..
4214 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
4215
4216 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
4217 (struct glyph): Add new sub-structure cmp to the union `u'.
4218 (enum display_element_type): New member IT_COMPOSITION.
4219 (enum prop_idx): New member COMPOSITION_PROP_IDX.
4220 (struct it): New members cmp_id, cmp_len.
4221
4222 * dispnew.c (direct_output_forward_char): Check point moving into
4223 or out of a composition. If so, give up direct method.
4224
4225 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
4226
4227 * editfns.c (Fchar_to_string): Adjusted for the change of
4228 CHAR_STRING.
4229 (general_insert_function): Likewise.
4230 (Finsert_char): Likewise.
4231 (Fsubst_char_in_region): Likewise. Call update_compositions.
4232 (Ftranslate_region): Call update_compositions.
4233 (Ftranspose_regions): Call update_compositions.
4234
4235 * emacs.c (main): Call syms_of_composite.
4236
4237 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
4238 CHAR_STRING.
4239 (Finsert_file_contents): Set Vlast_coding_system_used before
4240 calling signal_after_change. Call update_compositions if some
4241 texts are inserted..
4242 (Fwrite_region): Adjusted for the change of a_write and e_write.
4243 (a_write): Argument changed. Work based on character position,
4244 not byte position.
4245 (e_write): Argument changed. Handle new way of composition.
4246
4247 * fns.c (Flength): The length of char-table is MAX_CHAR.
4248 (concat): Adjusted for the change of CHAR_STRING.
4249 (Ffillarray): Adjusted for the change of CHAR_STRING.
4250 (Fset_char_table_default): Delete codes for a composite character.
4251 (hash_put): Return hash index.
4252
4253 * fontset.h (struct font_info): New member vertical_centering.
4254 (Vvertical_centering_font_regexp): Extern it.
4255
4256 * fontset.c (Vvertical_centering_font_regexp): New variable.
4257 (syms_of_fontset): Declare it as a Lisp variable and initialize.
4258 Set Vignore_relative_composition to nil.
4259 (fs_load_font): Initialize `vertical_centering' of struct
4260 font_info.
4261
4262 * indent.c (check_composition): New function.
4263 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
4264 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
4265 (current_column_1): Handle new way of composition.
4266 (Fmove_to_column): Likewise.
4267 (compute_motion): Likewise.
4268
4269 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
4270 (insert_char): Likewise.
4271 (insert): Call update_compositions.
4272 (insert_and_inherit): Likewise.
4273 (insert_before_markers): Likewise.
4274 (insert_before_markers_and_inherit): Likewise.
4275 (insert_from_string): Likewise.
4276 (insert_from_string_before_markers): Likewise.
4277 (insert_from_buffer): Likewise.
4278 (replace_range): Likewise.
4279 (count_combining_composition): Deleted.
4280 (count_combining_before): Delete codes for a composite character.
4281 (count_combining_after): Likewise.
4282 (del_range_1): Call update_compositions.
4283 (del_range_byte): Likewise.
4284 (del_range_both): Likewise.
4285 (Fcombine_after_change_execute): Likewise.
4286
4287 * intervals.h: Include composite.h.
4288 (get_property_and_range): Extern it.
4289 (Vtext_property_default_nonsticky): Extern it.
4290
4291 * intervals.c (adjust_intervals_for_insertion): To check stickines
4292 of properties, pay attention to text-property-default-nonsticky.
4293 (merge_properties_sticky): Likewise.
4294 (get_property_and_range): New function.
4295
4296 * keyboard.c (Vdisable_point_adjustment): New variable.
4297 (Vglobal_disable_point_adjustment): New variable.
4298 (syms_of_keyboard): Declare them as Lisp variables.
4299 (command_loop_1): Check them and call adjust_point_for_property if
4300 necessary.
4301 (adjust_point_for_property): New function.
4302
4303 * keymap.c (push_key_description): Adjusted for the change of
4304 CHAR_STRING.
4305 (Ftext_char_description): Likewise.
4306
4307 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
4308 (hash_put): Adjusted for the change of the definition.
4309 (signal_after_change): Likewise.
4310 (check_point_in_composition): Extern it.
4311
4312 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
4313 Delete a code that handles an invalid too-long multibyte sequence
4314 because we are now sure that we never encounter with such a
4315 sequence.
4316 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
4317 MAX_LENGTH_OF_MULTI_BYTE_FORM.
4318 (init_obarray): Likewise.
4319 (read1): Likewise. Adjusted for the change of CHAR_STRING.
4320
4321 * print.c (printchar): Adjusted for the change of CHAR_STRING.
4322
4323 * process.c: Include composite.h.
4324 (read_process_output): Call update_compositions.
4325
4326 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
4327
4328 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
4329
4330 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
4331 character.
4332
4333 * term.c (encode_terminal_code): Delete codes for a composite
4334 character. Adjusted for the change of CHAR_STRING.
4335 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
4336 Delete codes for a composite character.
4337
4338 * textprop.c (Vtext_property_default_nonsticky): New variable
4339 (syms_of_textprop): Declare it as a Lisp variable.
4340
4341 * window.c (Frecenter): Clear all caches of compositions.
4342
4343 * xdisp.c (it_props): Add an entry for composition.
4344 (face_before_or_after_it_pos): For composition, check face of a
4345 character after the composition.
4346 (handle_composition_prop): New function.
4347 (get_next_display_element): Adjusted for the change of
4348 CHAR_STRING.
4349 (set_iterator_to_next): Handle the case that it->method ==
4350 next_element_from_composition.
4351 (next_element_from_composition): New function.
4352 (message_dolog): Adjusted for the change of CHAR_STRING.
4353 (set_message_1): Likewise.
4354 (check_point_in_composition): New function.
4355 (reconsider_clip_changes): If point moved into or out of
4356 composition, set b->clip_changed to 1 to force updating of the
4357 screen.
4358 (disp_char_vector): Delete codes for a composite character.
4359 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
4360
4361 * xfaces.c (choose_face_fontset_font): Delete codes for a
4362 composite character.
4363 (realize_x_face): Likewise. Change a place to set local variable
4364 `f' to avoid a bug of GCC 2.8.1 on Solaris.
4365
4366 * xfns.c: Include intervals.h.
4367 (syms_of_xfns): Make `display' property nonsticky by default.
4368
4369 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
4370 for find_charset_in_str.
4371
4372 * xterm.h (struct x_output): Change member font_baseline to
4373 baseline_offset.
4374
4375 * xterm.c (x_append_glyph): Setup members of struct glyph properly
4376 for composition.
4377 (x_append_composite_glyph): New function.
4378 (VCENTER_BASELINE_OFFSET): New macro.
4379 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
4380 of struct it for the composition. Cache pixel offsets in the
4381 struct composition. Delete codes for a composite character.
4382 Handle Vignore_relative_composition in composition code.
4383 (struct glyph_string): Delete member cmpcharp, add new member cmp.
4384 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
4385 (x_compute_glyph_string_overhangs): Likewise.
4386 (x_get_glyph_overhangs): Delete codes for a composite character.
4387 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
4388 (x_draw_glyph_string_background): Likewise. Delete codes for
4389 checking s->gidx for a composition.
4390 (x_draw_glyph_string_foreground): Delete code for a composite
4391 character.
4392 (x_draw_composite_glyph_string_foreground): New function.
4393 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
4394 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
4395 (struct work): Deleted.
4396 (x_fill_composite_glyph_string): Argument changed. Mostly
4397 rewritten for that.
4398 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
4399 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
4400 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
4401 (BUILD_GLYPH_STRINGS): For composition, call
4402 BUILD_COMPOSITE_GLYPH_STRING.
4403 (x_new_font): Initialize f->output_data.x->baseline_offset, not
4404 f->output_data.x->font_baseline.
4405
c3c60f13
GM
44061999-12-14 Gerd Moellmann <gerd@gnu.org>
4407
4408 * xterm.c (show_mouse_face): Don't use updated_area, use
4409 TEXT_AREA.
4410
83c8f461 44111999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4412
4413 * minibuf.c (Fall_completions): Doc fix.
4414
83c8f461 44151999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
4416
4417 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
4418 has been changed by the Lisp code.
4419
d8eccf12
GM
44201999-12-12 Gerd Moellmann <gerd@gnu.org>
4421
4422 * xfns.c: Indentation fixes.
4423
ae56feae
SM
44241999-12-10 Stefan Monnier <monnier@cs.yale.edu>
4425
4426 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
4427
dfa1c6ae
GM
44281999-12-10 Gerd Moellmann <gerd@gnu.org>
4429
4430 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
4431 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
4432
4433 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
4434 to frame.h.
4435
ec18280f
SM
44361999-12-09 Stefan Monnier <monnier@cs.yale.edu>
4437
4438 * keyboard.c (Qratio): New symbol.
4439 (scroll_bar_parts): Add `Qratio' to it.
4440 (syms_of_keyboard): Init `Qratio'.
4441 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
4442 * xterm.c (#includes): Allow compilation with only Xaw.
4443 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
4444 (xt_action_hook): Replace XAW3D by XAW.
4445 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
4446 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
4447 Determine epsilon dynamically and don't try to be too clever.
4448 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
4449 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
4450 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
4451 scrollbar (using `ratio').
4452 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
4453 scrollbar we have so as to set it up more optimally and to fix
4454 xaw3d_arrow_scroll and xaw3d_pick_top.
4455 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
4456 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
4457 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
4458 is not ignored, using a major gross hack.
4459 (x_initialize): Init default values for xaw3d_arrow_scroll and
4460 xaw3d_pick_top.
4461
83b6d970
DL
44621999-12-09 Dave Love <fx@gnu.org>
4463
4464 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
4465
3648c842
GM
44661999-12-08 Gerd Moellmann <gerd@gnu.org>
4467
4468 * eval.c: Remove conditional compilation on `standalone'.
4469 (call_debugger): When entering the debugger while redisplaying,
4470 reset redisplaying_p, and go back to the top-level if the debugger
4471 returns.
4472
05e71564
GM
44731999-12-07 Gerd Moellmann <gerd@gnu.org>
4474
4475 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
4476 basic faces are realized before trying to use face `menu'.
4477
4478 * window.c (delete_window): Block input for the time window
4479 matrices are being changed.
4480
b46cd536
DL
44811999-12-07 Dave Love <fx@gnu.org>
4482
4483 * lread.c (Fintern_soft): Fix newlines in doc string.
4484
96acb1f7
GM
44851999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
4486
4487 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
4488 duplicate definition of ElfW.
4489 (find_section): Copied from unexsgi.c.
4490 (unexec): Use find_section. Adjust whitespace. Initialize
4491 new_data2_offset based on old_data, not sbss (this fixes a bug on
4492 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
4493 Adjust test for presence of .mdebug section to the new return
4494 value of find_section.
4495
44961999-12-07 Gerd Moellmann <gerd@gnu.org>
4497
4498 * unexelf.c: Merge changes from 20.5.
4499 (unexec): Handle .lit4 and .lit8 unconditionally.
4500
4501 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
4502 unexsgi.o again.
4503
4504 * m/iris5d.h (UNEXEC): Likewise.
4505
7dae4502
SM
45061999-12-06 Stefan Monnier <monnier@cs.yale.edu>
4507
4508 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
4509 (syms_of_editfns): Register it.
4510 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
4511 (del_range_1, del_range_2): Add a ret_string argument to
4512 request that the deleted text be returned.
4513 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 4514 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
4515 * casefiddle.c (casify_region): Update del_range_1 call.
4516 * coding.c (code_convert_region): Update del_range_2 call.
4517 * fileio.c (Finsert_file_contents): Update del_range_2 call.
4518
397e4fae
GM
45191999-12-06 Gerd Moellmann <gerd@gnu.org>
4520
4521 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
4522
3d973f71
GM
45231999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
4524
4525 * lread.c (Fintern_soft): Accept a symbol argument.
4526
740e985f
EZ
45271999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4528
4529 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
4530
4531 * insdel.c (adjust_markers_for_delete): Fix last change.
4532
2d764c78
EZ
45331999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
4534
4535 Changes for automatic remapping of X colors on terminal frames:
4536
4537 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
4538 frames.
4539 (Vface_tty_color_alist): Remove.
4540 (tty_defined_color): New function.
4541 (defined_color): Rewrite to support any type of frame.
4542 (tty_color_name): New function.
4543 (face_color_supported_p, Fface_color_gray_p,
4544 Fface_color_supported_p): Support non-X frames.
4545 (load_color): Enclose the color name in quotes, in the log
4546 messages. Remove DOS-specific version of load_color.
4547 (realize_tty_face): Take the supported colors from
4548 tty-color-alist. Support translation of X colors to the closest
4549 tty color, for both MSDOS and tty frames.
4550 [MSDOS]: Don't invert face colors if they were taken from the
4551 frame colors.
4552 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
4553
4554 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
4555 Define a mostly empty surrogate.
4556 (tty_display): Declare.
4557
4558 * frame.c (make_terminal_frame) [!macintosh]: Don't use
4559 tty_display.
4560 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
4561 frames when the frame's param_alist includes 'reverse.
4562 (tty_display): Define.
4563 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
4564 output_data.x member.
4565 (Fframe_parameters): Return foreground and background color names
4566 on tty frames as well, in addition to MSDOS frames.
4567
4568 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
4569 selected_frame.
4570 (struct x_output): Remove unused members; document who uses each
4571 member.
4572 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
4573 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
4574 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
4575 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
4576 unused macro definintions.
4577
4578 * msdos.c (IT_set_frame_parameters): Don't call
4579 recompute_basic_faces, the next redisplay will, anyway.
4580 (x_current_display): Remove unused variable.
4581 Many functions: changes for Lisp_object selected_frame.
4582 (IT_set_face): If the tty_reverse_p flag is set for the face,
4583 reverse the foreground and background colors.
4584 (Fmsdos_remember_default_colors): New function.
4585 (syms_of_msdos): Defsubr it.
4586 (IT_set_frame_parameters): Use initial_screen_colors[] when
4587 creating a new frame. If the frame parameters include 'reverse,
4588 swap the foreground and background colors.
4589 (internal_terminal_init): Initialize initial_screen_colors to -1.
4590 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
4591 cus-start.el.
4592
4593 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
4594
4595 * xfns.c (x_defined_color): Rename from defined_color. All
4596 callers changed.
4597 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4598 all callers changed.
4599 (Fxw_color_values): Renamed from Fx_color_values; all callers
4600 changed.
4601 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4602 callers changed.
4603 (x_window_to_frame, x_any_window_to_frame,
4604 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
4605 x_top_window_to_frame): Use !FRAME_X_P instead of
4606 f->output_data.nothing.
4607 * xterm.h (x_defined_color): Rename from defined_color.
4608
4609 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
4610 f->output_data.nothing.
4611 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
4612 all callers changed.
4613 (Fxw_color_values): Renamed from Fx_color_values; all callers
4614 changed.
4615 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
4616 callers changed.
4617
4618 * dispextern.h (tty_color_name): Add prototype.
4619
4620 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
4621 f->output_data.nothing.
4622 * w32menu.c (menubar_id_to_frame): Likewise.
4623 * w32term.h (w32_output): Declare.
4624
4625 * dosfns.c (Qmsdos_color_translate): Remove.
4626 (msdos_stdcolor_name): Now returns a Lisp_Object.
4627 * dosfns.h (Qmsdos_color_translate): Remove.
4628
4629 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
4630
b3e5232e
KH
46311999-12-06 Kenichi Handa <handa@etl.go.jp>
4632
4633 * fileio.c (decide_coding_unwind): Renamed from
4634 set_auto_coding_unwind.
4635 (Finsert_file_contents): Make single unwind protect to call both
4636 Vset_auto_coding_function and Ffind_operation_coding_system.
4637
4638 * insdel.c (adjust_markers_for_delete): Make it non-static.
4639
db0e466c
SM
46401999-12-04 Stefan Monnier <monnier@cs.yale.edu>
4641
4642 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
4643 operators and handle them properly.
4644 * regex.h (RE_ALL_GREEDY): New option.
4645 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
4646 sorting would put it.
4647 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
4648 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
4649
22afa6e8
DL
46501999-12-04 Dave Love <d.love@dl.ac.uk>
4651
4652 * m/arm.h: New file.
4653
40afb967
DL
46541999-12-03 Dave Love <fx@gnu.org>
4655
4656 * editfns.c (Fmessage_or_box): Use use_dialog_box.
4657
ddf8eff5
GM
46581999-12-02 Gerd Moellmann <gerd@gnu.org>
4659
4660 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
4661 for building with Motif.
4662
4663 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
4664 unexelf.o.
4665
4666 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
4667
fa09a82d
DL
46681999-12-01 Dave Love <fx@gnu.org>
4669
4670 * emacs.c (main): Set LANG=C iff AX3_2 defined.
4671
ddf8eff5
GM
46721999-11-28 Gerd Moellmann <gerd@gnu.org>
4673
4674 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
4675 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
4676 macros.
4677
4678 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
4679
fa09a82d
DL
46801999-11-28 eliz <eliz@dlpx1>
4681
4682 * emacs.c (synchronize_locale): Avoid compiler warnings about
4683 pointer type mismatch.
4684
f9632fc8
GM
46851999-11-28 Gerd Moellmann <gerd@gnu.org>
4686
717d0121
GM
4687 * window.c (Fwindow_end): Don't call temp_set_pt_both with
4688 out of range position.
4689
f9632fc8
GM
4690 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
4691 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
4692
59c65f1e
EZ
46931999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
4694
613a8346
EZ
4695 * charset.c (Fmake_char_internal): Print the charset ID when
4696 signalling an error.
4697
59c65f1e
EZ
4698 * emacs.c (synchronize_locale): Avoid compiler warnings about
4699 pointer type mismatch.
4700
83c8f461 47011999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
4702
4703 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
4704
18df9369
GM
47051999-11-26 Gerd Moellmann <gerd@gnu.org>
4706
65a3ccf7
GM
4707 * puresize.h (BASE_PURESIZE): Increase to 550000.
4708
b3b98592
GM
4709 * textprop.c (set_text_properties): New function. Like
4710 Fset_text_properties, but with additional parameter
4711 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
4712 changes.
4713 (Fset_text_properties): Use it.
4714
4715 * insdel.c (insert_1_both): Call set_text_properties with last
4716 parameter nil so that no after changes will be signaled.
4717
4718 * lisp.h: Add prototype for set_text_properties.
4719
18df9369
GM
4720 * xfaces.c (set_lface_from_font_name): Fix previous change.
4721 (recompute_basic_faces): Change assert to abort.
4722
71a8e74b
DL
47231999-11-25 Dave Love <fx@gnu.org>
4724
4725 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
4726 (Fmember, Fdelq, Fdelete): Inline car.
4727 (Fy_or_n_p): Doc fix.
4728
bc6a5782
GM
47291999-11-25 Gerd Moellmann <gerd@gnu.org>
4730
3221576b 4731 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 4732 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
4733 is not set, try to use a reasonable default.
4734
bc6a5782
GM
4735 * dispnew.c (direct_output_for_insert): Set glyph row's
4736 displays_text_p flag. Correct window's window_end_vpos if
4737 necessary.
4738
0c8559bb
PE
47391999-11-25 Paul Eggert <eggert@twinsun.com>
4740
4741 * emacs.c (fixup_locale): Don't bother to record initial locale.
4742 (synchronize_locale): If the desired locale is nil,
4743 treat it as if it were the empty string,
4744 so that we set the locale from the environment.
4745
35737351
KH
47461999-11-25 Kenichi Handa <handa@etl.go.jp>
4747
4748 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
4749 of the current buffer via Fset.
4750
5562b47f
DL
47511999-11-24 Dave Love <fx@gnu.org>
4752
5562b47f
DL
4753 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
4754
4755 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
4756
00da0e4a
GM
47571999-11-24 Gerd Moellmann <gerd@gnu.org>
4758
4759 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
4760
4761 * emacs.c (PVEC_FLAG): New variable.
4762
b1775dc1
GM
47631999-11-23 Gerd Moellmann <gerd@gnu.org>
4764
4765 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
4766 that fails on IBM PowerPC, AIX 4.2.
4767
08de6200
EZ
47681999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
4769
4770 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
4771 string of mode-line-format. Remove the obsolete %t.
4772
02fda8ff
GM
47731999-11-22 Gerd Moellmann <gerd@gnu.org>
4774
f2fa858f
GM
4775 * dispnew.c (direct_output_for_insert): Increment glyph positions
4776 for glyphs from buffer text only.
4777
02fda8ff
GM
4778 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
4779 (gdb_data_seg_bits): New variables.
4780
4781 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
4782 work on systems not allowing enumerators > INT_MAX, and it
4783 won't work if EMACS_INT is long long.
4784
1b0d24e7
PE
47851999-11-22 Paul Eggert <eggert@twinsun.com>
4786
4787 Port to SunOS 4.1.x again. Help out with Alpha port.
4788 Rename messages-locale to system-messages-locale,
4789 and likewise for time-locale.
4790
4791 * callproc.c (strerror): Remove decl.
4792 * fileio.c (strerror): Likewise.
4793 * process.c (strerror): Likewise.
4794 * emacs.c (strerror): Likewise.
4795 (Vsystem_messages_locale): Renamed from Vmessages_locale.
4796 All uses changed.
4797 (Vprevious_system_messages_locale): Likewise, from
4798 Vprevious_messages_locale.
4799 (Vsystem_time_locale): Likewise, from Vtime_locale.
4800 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
4801 (ABORT_RETURN_TYPE): New macro.
4802 (abort): Return type is now ABORT_RETURN_TYPE.
4803 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
4804 defined.
4805 (syms_of_emacs): messages-locale -> system-messages-locale,
4806 previous-messages-locale -> previous-system-messages-locale,
4807 time-locale -> system-time-locale,
4808 previous-time-locale -> previous-system-time-locale.
4809
4810 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
4811 (const): Do not define; that's config.h's job.
4812 (<limits.h>): Include if HAVE_LIMITS_H is defined.
4813 (CHAR_BIT): Move test for definedness outside of limits.h condition.
4814 (<stddef.h>): Include if STDC_HEADERS is defined.
4815 (FREE_RETURN_TYPE): New macro.
4816 (free): Return type is now FREE_RETURN_TYPE.
4817
4818 * lisp.h (synchronize_system_time_locale): Renamed from
4819 synchronize_time_locale. All uses changed.
4820 (synchronize_system_messages_locale): Likewise, from
4821 synchronize_messages_locale.
4822
4823 * m/alpha.h (malloc, realloc, calloc): Remove decls;
4824 stdlib.h now does this.
4825
4826 * process.c (sys_siglist): Remove.
4827
4828 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
4829 New macros.
4830
4831 * syntax.c (scan_sexps_forward): Use abort, not assert.
4832
4833 * sysdep.c (my_sys_siglist): New var.
4834 (sys_siglist): New macro. Remove old initialized vars of same name.
4835 (init_signals): Initialize sys_siglist.
4836
4837 * xfns.c (abort): Remove decl; stdlib.h now does this.
4838
0dcd5b54
DL
48391999-11-18 Dave Love <fx@gnu.org>
4840
946173ad
DL
4841 * filelock.c: Add forward declaration for get_boot_time_1.
4842
0dcd5b54
DL
4843 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
4844
71447e8f
GM
48451999-11-18 Gerd Moellmann <gerd@gnu.org>
4846
4847 * buffer.h (struct buffer_text): Add comment about moving
4848 buffer text if REL_ALLOC is defined.
4849
eeedff63
KH
48501999-11-18 Kenichi Handa <handa@etl.go.jp>
4851
4852 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
4853
4854 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
4855 memory for push_key_description.
4856
4857 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
4858 allocate memory for push_key_description.
4859 (describe_buffer_bindings): Likewise.
4860
5d7e4a2c
GM
48611999-11-17 Gerd Moellmann <gerd@gnu.org>
4862
4863 * xfns.c (Fx_show_busy_cursor): Doc-fix.
4864 (Fx_hide_busy_cursor): Ditto.
4865
48661999-11-17 Marco Walther <walther@siemens-pyramid.com>
4867
4868 * unexsni.c (unexec): Handle .rel.dyn section.
4869
b5b41e02
DL
48701999-11-16 Dave Love <fx@gnu.org>
4871
4872 * doc.c (Fdocumentation): Remove gcpro here too.
4873
e35b6123
GM
48741999-11-16 Gerd Moellmann <gerd@gnu.org>
4875
4876 * keyboard.c (command_loop_1): Remove no_redisplay.
4877
83c8f461 48781999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
4879
4880 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
4881 in noninteractive.
4882
b05d3bee
GM
48831999-11-14 Gerd Moellmann <gerd@gnu.org>
4884
5bcfeb49
GM
4885 * xdisp.c (ensure_echo_area_buffers): New.
4886 (with_echo_area_buffer): Use it.
4887 (setup_echo_area_for_printing): Ditto.
4888
b05d3bee
GM
4889 * buffer.c (indicate-empty-lines): Doc-fix.
4890
9b2e6e4c
GM
48911999-11-12 Gerd Moellmann <gerd@gnu.org>
4892
e7f90eab
GM
4893 * term.c (term_init): If "op" isn't available, don't support color
4894 because we can't switch back to the default foreground and
4895 background.
4896
9b2e6e4c
GM
4897 * doc.c (Fdocumentation_property): Remove GCPRO because
4898 Fsubstitute_command_keys gcpro's the string.
4899
1bf21027
KH
49001999-11-12 Kenichi Handa <handa@etl.go.jp>
4901
4902 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
4903
3bc6df53
GM
49041999-11-11 Gerd Moellmann <gerd@gnu.org>
4905
4906 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
4907 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
4908 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
4909
35a5514b
GM
49101999-11-10 Gerd Moellmann <gerd@gnu.org>
4911
4912 * xfns.c (QCuser_data): Removed.
4913 (syms_of_xfns): Initialization of QCuser_data removed.
4914 (parse_image_spec): Don't handle :user-data specially. Allow
4915 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
4916 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
4917 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
4918 parse_image_spec accordingly.
4919
83c8f461 49201999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
4921
4922 * cmds.c (Fbeginning_of_line): Doc fix.
4923 (Fend_of_line): Doc fix.
4924
4925 * editfns.c (Fline_beginning_position): If N is not 1,
4926 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
4927
4928 * syntax.c (Fforward_word): Handle fields even if would have hit
4929 an edge of the buffer. Return nil if affected by fields.
4930
83c8f461 49311999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
4932
4933 * editfns.c (preceding_pos): Function deleted.
4934 (text_property_stickiness): Decrement POS directly.
4935 Fix a confusion that used PT instead of POS.
4936
4937 * editfns.c (find_field): Properly handle the case
4938 of a field boundary where `field' inherits from neither side.
4939
4940 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
4941 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
4942
fa9aabf6
GM
49431999-11-08 Gerd Moellmann <gerd@gnu.org>
4944
4945 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
4946 BEFORE_POTENTIAL_GC before DISCARD.
4947
4015b3c0
GM
49481999-11-07 Gerd Moellmann <gerd@gnu.org>
4949
033a5fa3
GM
4950 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
4951
4952 * lisp.h: Add prototype for unmark_byte_stack.
4953
4954 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
4955 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
4956 XUNMARK.
4957
55b064bd
GM
4958 * xdisp.c (resize_mini_window): Fix computation of needed
4959 mini-window height.
4960
4961 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
4962 compilation on USE_TEXT_PROPERTIES.
01e9b9df 4963
4015b3c0 4964 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 4965 locally there. Rearrange case statements so that those most
4015b3c0
GM
4966 frequently executed come first. Avoid goto's in frequently
4967 executed cases.
4968
fe512f27
GM
49691999-11-05 Gerd Moellmann <gerd@gnu.org>
4970
dd59e217
GM
4971 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
4972 AFTER_POTENTIAL_GC around internal_catch.
4973
bcf28080
GM
4974 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
4975 relocate_byte_pcs.
4976 (init_alloc_once, init_alloc): Set byte_stack_list to null.
4977
4978 * eval.c (struct catchtag): Add member byte_stack.
4979 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 4980 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
4981 catchtag.
4982 (unwind_to_catch): Restore byte_stack_list from catchtag.
4983
4984 * lisp.h: Add prototypes for new functions in bytecode.c.
4985 Add extern declaration for byte_stack_list.
4986
4987 * bytecode.c (struct byte_stack): New.
4988 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
4989 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
4990 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
4991 (HANDLE_RELOCATION): Removed.
4992 (Fbyte_code): Use byte_stack structures.
4993
4d59c34c
GM
4994 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
4995
fe512f27
GM
4996 * buffer.c (syms_of_buffer): Extend documentation of
4997 mode-line-format.
4998
60b64cd6
GM
49991999-11-04 Gerd Moellmann <gerd@gnu.org>
5000
5001 * editfns.c (Fdelete_field): Renamed from Ferase_field.
5002
5003 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
5004 Ferase_field instead of Fdelete_field.
5005
b51b619b
GM
50061999-11-03 Gerd Moellmann <gerd@gnu.org>
5007
5008 * dispnew.c (Finternal_show_cursor): Change it to set the
5009 cursor on/off, not toggle its state.
5010 (Finternal_show_cursor_p): New.
5011 (syms_of_display): Defsubr Sinternal_show_cursor_p.
5012
5865af0d
DL
50131999-11-03 Dave Love <fx@gnu.org>
5014
5015 * charset.c (split_non_ascii_string): Define return value.
5016
82a700f3
GM
50171999-11-03 Gerd Moellmann <gerd@gnu.org>
5018
edfef199
GM
5019 * minibuf.c (string_to_object): New.
5020 (read_minibuf_noninteractive): New.
5021 (read_minibuf): Call read_minibuf_noninteractive if
5022 noninteractive. Use string_to_object.
5023
82a700f3
GM
5024 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
5025
b5540f0d
DL
50261999-11-02 Dave Love <fx@gnu.org>
5027
e69dcd60
DL
5028 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
5029
827a1788
DL
5030 * process.c: Define _GNU_SOURCE before config.h to get strsignal
5031 declared with glibc2.
b5540f0d 5032
a69a6e61
GM
50331999-11-02 Gerd Moellmann <gerd@gnu.org>
5034
5035 * lisp.h (QUIT): Give it statement form.
5036
87e21fbd
DL
50371999-11-02 Dave Love <fx@gnu.org>
5038
5039 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
5040
1b335865
GM
50411999-11-02 Gerd Moellmann <gerd@gnu.org>
5042
9fb5e03d
GM
5043 * xfns.c (QCuser_data): New.
5044 (syms_of_xfns): Initialize QCuser_data.
5045 (parse_image_spec): Ignore :user-data DATA properties.
5046
1b335865
GM
5047 * xdisp.c (display_line): Set charpos of first glyph in blank
5048 lines not corresponding to any text to -1, even if no glyphs are
5049 filled in in that line.
5050
e76f1c44
GM
50511999-11-01 Gerd Moellmann <gerd@gnu.org>
5052
36fcd3d9
GM
5053 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
5054 png_get_sRGB in #ifdef.
5055
111259b4
GM
5056 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
5057 (syms_of_display): Use the new name.
5058
dd5c96e8
GM
5059 * textprop.c (verify_interval_modification): Signal text-read-only
5060 instead of calling error.
5061
db8878fb
GM
5062 * data.c (Qtext_read_only): New built-in error.
5063 (syms_of_data): Initialize it.
5064
5065 * lisp.h: Add extern declaration for Qtext_read_only.
5066
e76f1c44
GM
5067 * syntax.c: Remove whitespace after open or in front of closing
5068 parentheses.
5069
83c8f461 50701999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5071
5072 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
5073
7843e09c
GM
50741999-10-31 Gerd Moellmann <gerd@gnu.org>
5075
575ed805
GM
5076 * xdisp.c (resize_mini_window): Compute needed height differently.
5077
7843e09c
GM
5078 * fns.c (Flength): Unroll loop over lists.
5079
5080 * xdisp.c (append_space): Return non-zero if space was appended.
5081 (display_line): Set charpos of first glyph to -1 only if that
5082 glyph is the space added by append_glyph.
5083
83c8f461 50841999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
5085
5086 * print.c (strout): Consider `noninteractive' and use stdout
5087 only when PRINTCHARFUN is t.
5088
5089 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
5090 (gcpro_level): Declare it extern.
5091 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
5092 Alternate definitions that set `level' and increment `gcpro_level'.
5093 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
5094
5095 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
5096 (init_eval) [DEBUG_GCPRO]: Initialize it.
5097 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
5098 from remaining gcprolist.
5099
3636f7a3
KH
51001999-10-29 Kenichi Handa <handa@etl.go.jp>
5101
5102 * coding.c (code_convert_region): Update `dst' correctly.
5103
a2ad7096
GM
51041999-10-28 Gerd Moellmann <gerd@gnu.org>
5105
5106 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
5107 (Frassoc): Rewritten.
5108
1e3196e8
GM
51091999-10-27 Noah Friedman <friedman@splode.com>
5110
5111 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
5112 Define PTY_NAME_SPRINTF.
5113 Redefine PTY_TTY_NAME_SPRINTF.
5114 * config.in: Add undef for HAVE_DEV_PTMX.
5115
83c8f461 51161999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
5117
5118 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
5119 as arg to DEBUG_POP and DEBUG_PRINT.
5120
83c8f461 51211999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
5122
5123 * data.c (Qad_activate_internal): Renamed from Qad_activate.
5124 (Ffset): Call Qad_activate_internal.
5125 (syms_of_data): Initialize Qad_activate_internal.
5126
26922151
GM
51271999-10-27 Gerd Moellmann <gerd@gnu.org>
5128
5129 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
5130 Vterminal_frame is selected and Vwindow_system is non-nil.
5131
67a5596f
GM
51321999-10-26 Gerd Moellmann <gerd@gnu.org>
5133
2bea706b
GM
5134 * xdisp.c (echo_area_display): Put previous change in #if 0.
5135
67a5596f
GM
5136 * emacs.c (standard_args): Add `file' as synonym for `visit',
5137 `execute' as synonym for `eval'.
5138 (main): Add new options to usage message.
5139
81dc5de5
GM
51401999-10-25 Gerd Moellmann <gerd@gnu.org>
5141
5142 * data.c (Qhash_table): New.
5143 (Ftype_of): Return it for hash tables.
5144 (syms_of_data): Initialize Qhash_table.
5145
83c8f461 51461999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
5147
5148 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
5149
66e4690f 51501999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 5151
7539e11f
KR
5152 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
5153 lisp.h.
5154
5155 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
5156 Fbuffer_local_variables, Fother_buffer, record_buffer,
5157 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
5158 swap_out_buffer_local_variables, overlays_at, overlays_in,
5159 overlay_touches_p, overlay_strings, recenter_overlay_lists,
5160 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
5161 Foverlay_put, report_overlay_modification, evaporate_overlays):
5162 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
5163 references.
5164 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
5165 swap_in_symval_forwarding, set_internal, default_value,
5166 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
5167 Fmake_variable_frame_local, Flocal_variable_p,
5168 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
5169 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
5170 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
5171 * emacs.c (main): Likewise.
5172 * fontset.c (fs_load_font, fs_register_fontset,
5173 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
5174 Fnew_fontset, Fset_fontset_font): Likewise.
5175 * frame.c (do_switch_frame, next_frame, prev_frame,
5176 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
5177 Likewise.
5178 * keyboard.c (read_char, help_char_p, event_to_kboard,
5179 kbd_buffer_get_event, timer_start_idle, timer_check,
5180 make_lispy_event, apply_modifiers, reorder_modifiers,
5181 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
5182 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
5183 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
5184 Fcommand_execute, Fexecute_extended_command): Likewise.
5185 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
5186 Fall_completions): Likewise.
5187 * window.c (Fset_window_margins): Likewise.
5188
5189 * callint.c (quotify_args): Don't explicitly use struct
5190 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
5191
3a7093d8
KR
5192 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
5193 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
5194 if __ELF__ is defined.
5195
2a3d7146
GM
51961999-10-24 Gerd Moellmann <gerd@gnu.org>
5197
5198 * window.c (Fnext_window): Add a QUIT in the loop.
5199
8ac52782
GM
52001999-10-23 Gerd Moellmann <gerd@gnu.org>
5201
5202 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
5203 New targets.
5204
05f0d15a
DL
52051999-10-22 Dave Love <fx@gnu.org>
5206
5207 * emacs.c (main): Enable profiling conditional on __linux also.
5208
882fb0e6
GM
52091999-10-20 Gerd Moellmann <gerd@gnu.org>
5210
5211 * xrdb.c (x_load_resources): Set default resources for resource
5212 classes instead of for the specific Emacs.
5213
b5f5bc31
GM
52141999-10-19 Gerd Moellmann <gerd@gnu.org>
5215
66f4dd69
GM
5216 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
5217 defines it that way.
5218
b5f5bc31
GM
5219 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
5220 if selected_frame is equal to Vterminal_frame.
5221
68c45bf0
PE
52221999-10-19 Paul Eggert <eggert@twinsun.com>
5223
5224 Add support for large files, 64-bit Solaris, system locale codings.
5225
5226 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
5227 when dumping, so that the dumped Emacs doesn't have stray locale info.
5228 (dired.o): Depend on systime.h.
5229 (editfns.o): Depend on coding.h.
5230
5231 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
5232 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
5233 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
5234 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
5235 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
5236 Include <config.h> before any system include files.
5237
5238 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
5239 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
5240 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
5241 xmenu.c, xterm.c:
5242 Do not include <stdlib.h>, as <config.h> does this now.
5243
5244 * callproc.c (Fcall_process):
5245 Synchronize messages locale before invoking strerror.
5246 Decode resulting string with locale-coding-system.
5247
5248 * coding.c (Vlocale_coding_system): New var.
5249 (syms_of_coding): Adjust to above change.
5250 (emacs_strerror): New function.
5251
5252 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
5253
5254 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
5255 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
5256 HAVE_STRSIGNAL): New macros.
5257 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
5258 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
5259
5260 * dired.c: Include "systime.h".
5261 (Ffile_attributes): Do not cast s.st_size to int; this loses
5262 information if int is 32 bits but st_size and EMACS_INT are larger.
5263 Treat large device numbers like large inode numbers.
5264
5265 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
5266
5267 * editfns.c: Include coding.h.
5268 (emacs_strftime): Remove decl.
5269 (emacs_strftimeu): New decl.
5270 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
5271 Use emacs_strftimeu instead of emacs_strftime.
5272 (Fformat_time_string): Convert format string using
5273 Vlocale_coding_system, and convert result back. Synchronize time
5274 locale before invoking lower level function. Invoke
5275 emacs_memftimeu, passing ut, instead of emacs_memftime.
5276
5277 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
5278 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
5279 Vprevious_time_locale): New variables.
5280 (main): Invoke setlocale early, so that initial error messages are
5281 localized properly. But skip locale-setting if LC_ALL is "C".
5282 Fix up locale when it's safe to do so.
5283 (fixup_locale): Moved here from xterm.c.
5284 (synchronize_locale, synchronize_time_locale,
5285 synchronize_messages_locale): New functions.
5286 (syms_of_emacs): Accommodate above changes.
5287
5288 * fileio.c (report_file_error): Convert strerror output according
5289 to Vlocale_coding_system.
5290 (Finsert_file_contents): Check for arithmetic overflow in
5291 computations that depend on file size. Report IO errors
5292 with emacs_strerror, not strerror.
5293
5294 * fns.c (Fgethash): Declare dflt parameter.
5295
5296 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
5297 is defined; that's config.h's job.
5298
5299 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
5300 default these values to long, BITS_PER_LONG, and unsigned long.
5301 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
5302 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
5303 (code_convert_string_norecord, fixup_locale,
5304 synchronize_messages_locale, synchronize_time_locale,
5305 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
5306 All Emacs callers of open, close, read, write changed to use
5307 emacs_open, emacs_close, emacs_read, emacs_write.
5308
5309 * lread.c (file_offset, file_tell): New macros. All uses of ftell
5310 changed to file_tell.
5311 (saved_doc_string_position, prev_saved_doc_string_position): Now
5312 of type file_offset.
5313 (init_lread): Do not fix locale here; fixup_locale now does this.
5314
5315 * m/amdahl.h, s/usg5-4.h:
5316 (NSIG): Remove.
5317 (NSIG_MINIMUM): New macro.
5318
5319 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
5320 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
5321 s/umips.h, s/usg5-4.h:
5322 (SIGIO): Do not undef.
5323 (BROKEN_SIGIO): New macro.
5324
5325 * m/ustation.h:
5326 (SIGTSTP): Do not undef.
5327 (BROKEN_SIGTSTP): New macro.
5328
5329 * s/gnu-linux.h:
5330 (SIGPOLL, SIGURG): Do not undef.
5331 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
5332
5333 * s/ptx4.h:
5334 (SIGINFO): Do not undef.
5335 (BROKEN_SIGINFO): New macros.
5336
5337 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
5338
5339 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
5340 some Emacs-related changes merged.
5341
5342 * print.c (float_to_string): Prepend "-" to representation of a
5343 NaN if the NaN is negative.
5344
5345 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
5346 (wait_reading_process_input): Use emacs_strerror, not strerror.
5347
5348 * process.c (status_message, sigchld_handler): Synchronize locale,
5349 then use strsignal istead of sys_siglist.
5350 * w32proc.c (sys_wait): Likewise.
5351
5352 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
5353 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
5354 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
5355 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
5356 (open, close, read, write, INTERRUPTIBLE_OPEN,
5357 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
5358
5359 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
5360
5361 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
5362 sys_open, open): Remove.
5363 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
5364 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
5365 macros are no longer used.
5366 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
5367 (emacs_close): Renamed from sys_close.
5368 (emacs_read): Renamed from sys_read.
5369 (emacs_write): Renamed from sys_write.
5370 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
5371 (dup2): Do not print error on failure; the real dup2 doesn't.
5372 (strsignal): New function, defined if !HAVE_STRSIGNAL.
5373
5374 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
5375 is defined.
5376 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
5377 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
5378 (strsignal): Declare if !HAVE_STRSIGNAL.
5379
5380 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
5381 (ElfW): Define in terms of ElfExpandBitsW.
5382
5383 * w32proc.c (sys_siglist): Remove decl.
5384
5385 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
5386 with ANSI C.
5387 (display_string): Declare face_string_pos arg.
5388
5389 * xfns.c (Fx_show_tip): Declare timeout param.
5390
5391 * xterm.c: No need to include locale.h.
5392 (x_alloc_lighter_color, x_setup_relief_color):
5393 Pass arg as double, not float, for compatibility with ANSI C.
5394 (fixup_locale): Move to emacs.c.
5395 (x_term_init): Do not setlocale or fixup locale; the main program
5396 does this now.
5397
2f0b74ea
DL
53981999-10-18 Dave Love <fx@gnu.org>
5399
5400 * doc.c (Fdocumentation_property): Gcpro `tem'.
5401
471aa4a0
KH
54021999-10-18 Kenichi Handa <handa@etl.go.jp>
5403
5404 * lread.c (Fload): Calculate bytes of filename correctly.
5405 (openp): Likewise.
5406
aca2020b
KH
54071999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
5408
5409 * print.c (print_preprocess): In case print-circle is nil,
5410 add OBJ to Vprint_number_table only when OBJ is a symbol.
5411
1f5fe392 54121999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
5413
5414 * coding.c (code_convert_string): Add record_unwind_protect to
5415 assure setting inhibit_pre_post_conversion back to zero. Take
5416 care of the multibyteness of the working buffer.
5417
5418 * coding.c (inhibit_pre_post_conversion): New variable.
5419 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
5420 ignore post-read-conversion and pre-write-conversion property of
5421 the coding system.
5422 (code_convert_region_unwind): New function.
5423 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
5424 running pre-write-conversion and post-read-conversion.
5425 (code_convert_string): Likewise.
5426
cd876a91
GM
54271999-10-17 Miles Bader <miles@gnu.org>
5428
5429 * editfns.c: Doc fix.
5430
54311999-10-17 Miles Bader <miles@gnu.org>
5432
5433 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
5434 argument preconditions of find_before_next_newline in the case
5435 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
5436 was indeed at the edge.
5437
54381999-10-17 Miles Bader <miles@gnu.org>
5439
5440 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
5441 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
5442
5443 * editfns.c (text_property_eq, text_property_stickiness): Don't
5444 use initializers for auto variables of type Lisp_Object.
5445 (find_field): Likewise. Use braces around nested ifs.
5446 (Fline_end_position): Store the raw eol in a variable, so that the
5447 final expression doesn't look so ugly.
5448 (Fconstrain_to_field): Doc fix.
5449 (preceding_pos): Renamed from `preceeding_pos'.
5450 (text_property_stickiness, find_field): Call preceding_pos,
5451 not preceeding_pos.
5452
54531999-10-17 Miles Bader <miles@gnu.org>
5454
5455 * editfns.c (Ffield_string_no_properties): New function.
5456 (text_property_stickiness, preceeding_pos): New functions.
5457 (Ffield_string): Remove PROPS parameter.
5458 (find_field): Add MERGE_AT_BOUNDARY parameter.
5459 Rewrite to use stickiness of `field' property to resolve
5460 ambiguous cases.
5461 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
5462 (Fconstrain_to_field): Likewise.
5463 (syms_of_editfns): Init Sfield_string_no_properties.
5464 (Ffield_string, Ferase_field, Ffield_end):
5465 Supply new MERGE_AT_BOUNDARY argument to find_field.
5466 (Fline_beginning_position, Fline_end_position): Supply new
5467 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
5468 Pass a value of Qt for the ONLY_IN_LINE argument to
5469 Fconstrain_to_field (only matters if N != 1).
5470 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
5471 to Fconstrain_to_field.
5472
5473 * minibuf.c (Fminibuffer_complete_word): Use
5474 Ffield_beginning to find the prompt end.
5475
54761999-10-17 Miles Bader <miles@gnu.org>
5477
5478 * editfns.c (Fconstrain_to_field): Add get/set-current-point
5479 behavior when NEW_POS is nil.
5480 (find_field): Use XSETFASTINT instead of make_number.
5481 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
5482 input string by seeing where the field begins, instead of
5483 looking at text-properties.
5484
54851999-10-17 Miles Bader <miles@gnu.org>
5486
5487 * editfns.c (Qfield): New variable.
5488 (find_field, Ferase_field, Ffield_string,
5489 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
5490 (Fline_beginning_position, Fline_end_position): Constrain to any field.
5491 (make_buffer_string_both): Remove minibuffer-prompt hack.
5492 (syms_of_editfns): Initialize Qfield, and subr entries for
5493 field functions above.
5494 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
5495 minibuf_save_list.
5496 Don't initialize minibuffer prompt length.
5497 Wrap prompt text-properties around the entire prompt.
5498 Add 'prompt text-property to prompt.
5499 Get final value with Ffield_string instead of make_buffer_string.
5500 (read_minibuf_unwind): Don't restore minibuffer prompt length from
5501 minibuf_save_list.
5502 (do_completion): Get minibuffer input with Ffield_string
5503 instead of Fbuffer_string.
5504 Erase minibuffer input with Ferase_field instead of erase_buffer.
5505 (Fminibuffer_complete_and_exit): Likewise.
5506 Test whether buffer is empty by looking for the 'prompt text
5507 property at the end.
5508 Set prompt length by looking for the end of the prompt text property,
5509 and save prompt length for later use (since there is no longer a
5510 buffer variable to get it from).
5511 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
5512 (syms_of_minibuf): Remove initializations of
5513 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
5514 * buffer.h (struct buffer): Remove prompt_end_charpos field.
5515 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
5516 Don't initialize prompt_end_charpos field.
5517 * syntax.c (Fforward_word): Likewise.
5518 Constrain to any field.
5519
3f6f7508
GM
55201999-10-16 Gerd Moellmann <gerd@gnu.org>
5521
5522 * window.c (enum save_restore_action): New.
5523 (save_restore_orig_size): Change parameter list. Add
5524 functionality to check for valid orig_top and orig_height members
5525 in a window tree.
5526 (grow_mini_window): Call save_restore_orig_size with new parameter
5527 list.
5528 (shrink_mini_window): Restore old window sizes only if old
5529 size information is valid in all windows in a window tree.
5530
06482119
GM
55311999-10-15 Gerd Moellmann <gerd@gnu.org>
5532
2710454d
GM
5533 * xmenu.c (set_frame_menubar): Don't call
5534 x_set_menu_resources_from_menu_face here.
5535 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
5536
06482119
GM
5537 * xfns.c (gif_load): Fix handling of interlaced GIFs.
5538
17fa2837
DL
55391999-10-14 Dave Love <fx@gnu.org>
5540
5541 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
5542
45f93416
GM
55431999-10-14 Gerd Moellmann <gerd@gnu.org>
5544
5545 * process.c (Fopen_network_stream): Don't loop if gethostbyname
5546 fails and h_errno is TRY_AGAIN.
5547
c765b723
DL
55481999-10-13 Dave Love <fx@gnu.org>
5549
5550 * filelock.c (lock_file): Move gcpro of `fn'.
5551
dace7f4e
GM
55521999-10-10 Gerd Moellmann <gerd@gnu.org>
5553
5554 * keyboard.c (auto-save-interval): Fix documentation.
5555
83c8f461 55561999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
5557
5558 * print.c (print): When removing objects from Vprint_number_table,
5559 only scan the newly added objects.
5560 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
5561 unconditionally force it to stay in the table.
5562
85177c86
GM
55631999-10-09 Gerd Moellmann <gerd@gnu.org>
5564
5565 * xfns.c (prepare_image_for_display): Don't try to load image if
5566 loading it failed before.
5567 (lookup_image, prepare_image_for_display): Remember if loading the
5568 image failed.
5569 (xpm_load): Add missing UNBLOCK_INPUT.
5570
5571 * dispextern.h (struct image): New member load_failed_p.
5572
11e4de5d
SM
55731999-10-08 Stefan Monnier <monnier@cs.yale.edu>
5574
f28eba7b 5575 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
5576 in the docstring.
5577
f1da8f06
GM
55781999-10-08 Gerd Moellmann <gerd@gnu.org>
5579
5580 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
5581 Don't call XSetInputFocus because that can generate additional
5582 FocusIn events.
5583
c37bbd4f
GM
55841999-10-07 Jeffrey C Honig <jch@bsdi.com>
5585
5586 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
5587
83c8f461 55881999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
5589
5590 * process.c (wait_reading_process_input): When trying to suck
5591 input from one process, for accept-process-output,
5592 exit that loop if we get EAGAIN or EWOULDBLOCK.
5593
577d9e2f
GM
55941999-10-07 Gerd Moellmann <gerd@gnu.org>
5595
5596 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
5597 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
5598 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
5599 Fpixmap_spec_p and Qpixmap_spec_p.
5600 (load_face_colors, check_lface_attrs,
5601 merge_face_vector_with_property,
5602 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
5603 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
5604 Fbitmap_spec_p.
5605
f5737ad2
GM
56061999-10-07 Gerd Moellmann <gerd@gnu.org>
5607
5608 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
5609 MODE_LINE_FACE_ID.
5610
5611 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
5612 (struct x_resources) [USE_X_TOOLKIT]: New.
5613 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
5614 [USE_MOTIF]: New.
5615 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
5616 [USE_LUCID]: New.
5617 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
5618 (Qmenu): New.
5619 (syms_of_xfaces): Initialize Qmenu.
5620 (realize_basic_faces): Realize face `menu'.
5621 (resolve_face_name): New.
5622 (lface_from_face_name): Use it.
5623 (Finternal_set_lisp_face_attribute): Ditto.
5624 (Fpixmap_spec_p): Rewritten. Extend doc string.
5625
5626 * xmenu.c (set_frame_menubar, xmenu_show): Call
5627 x_set_menu_resources_from_menu_face.
5628
5629 * dispextern.h (enum face_id): Add MENU_FACE_ID.
5630 (toplevel): Include X11/Intrinsic.h.
5631
6a1aa823
DL
56321999-10-03 Ken'ichi Handa <handa@gnu.org>
5633
5634 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
5635 correctly.
5636
26901792
DL
56371999-09-30 Kenichi Handa <handa@etl.go.jp>
5638
5639 * category.c (modify_lower_category_set): Set default value of
5640 TABLE correctly.
5641
5642 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
5643 size correctly.
5644
56451999-09-29 Gerd Moellmann <gerd@gnu.org>
5646
5647 * editfns.c (Fpropertize): Renamed from Fproperties.
5648
56491999-09-29 Gerd Moellmann <gerd@gnu.org>
5650
5651 * xdisp.c (resize_mini_window): Do nothing if frame is an X
5652 frame that hasn't been initialized yet.
5653
83c8f461 56541999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
5655
5656 * keymap.c (Fsingle_key_description): Make tem big enough.
5657 (describe_buffer_bindings): Make buf big enough.
5658
83c8f461 56591999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
5660
5661 * intervals.c (get_local_map): Use indirect_function,
5662 not Findirect_function.
5663
26901792
DL
56641999-09-27 Dave Love <fx@gnu.org>
5665
5666 * cm.h: Remove unneeded declaration of ospeed.
5667
56681999-09-26 Gerd Moellmann <gerd@gnu.org>
5669
5670 * lisp.h (toplevel): Add prototype for
5671 next_single_char_property_change.
5672
5673 * textprop.c (next_single_char_property_change): New.
5674
5675 * xdisp.c (display_prop_end, invisible_text_between_p): Use
5676 next_single_char_property_change.
5677
56781999-09-25 Gerd Moellmann <gerd@gnu.org>
5679
5680 * editfns.c (Fproperties): New.
5681 (syms_of_editfns): Defsubr it.
5682
5683 * xfns.c (lookup_image): Set image's timestamp because it's
5684 used when we look it up.
5685
56861999-09-23 Gerd Moellmann <gerd@gnu.org>
5687
5688 * window.c (enlarge_window): Add window parameter instead of using
5689 selected_window.
5690 (Fdisplay_buffer): Call it with window parameter instead of
5691 setting selected_window.
5692 (Fenlarge_window, Fshrink_window): Ditto.
5693 (shrink_mini_window): If there is no recorded height and position
5694 info, resize mini-window to height 1.
5695
5696 * xfns.c (image_error): Use add_to_log.
5697
5698 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
5699 (load_face_font_or_fontset, load_color,
5700 merge_face_vector_with_property): Ditto.
5701
5702 * dispextern.h: Add prototype for add_to_log.
5703
5704 * xfaces.c (add_to_log): Move to xdisp.c.
5705
5706 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
5707 parameter.
5708
57091999-09-23 Gerd Moellmann <gerd@gnu.org>
5710
5711 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
5712 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
5713
5714 * xdisp.c (resize_mini_window): Use grow_mini_window and
5715 shrink_mini_window.
5716
5717 * window.c (window_min_size): Add parameter ignore_fixed_p.
5718 (change_window_height): Call window_min_size with new parameter.
5719 (shrink_window_lowest_first, save_restore_orig_size,
5720 grow_mini_window, shrink_mini_window): New.
5721 (make_window, replace_window): Initialize orig_top and
5722 orig_height.
5723 (enlarge_window): Renamed from change_window_height. Make it
5724 static.
5725 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
5726 enlarge_window instead of change_window_height.
5727
5728 * window.h (struct window): New members orig_top, orig_height.
5729 (toplevel): Add prototypes for grow_mini_window and
5730 shrink_mini_window. Remove prototype for change_window_height.
5731
57321999-09-21 Eli Zaretskii <eliz@gnu.org>
5733
5734 * frame.c (frame_name_fnn_p): Fix previous change.
5735
57361999-09-20 Gerd Moellmann <gerd@gnu.org>
5737
5738 * minibuf.c (toplevel): Move include of stdio.h to other includes.
5739
5740 * dispnew.c (direct_output_for_insert): Cast arguments to
5741 safe_bcopy to char *.
5742
5743 * lread.c (readchar): Remove unused variables.
5744 (read_filtered_event, read1, Fmapatoms): Ditto.
5745 (toplevel): Include intervals.h.
5746
5747 * eval.c (Fsignal): Remove unused variables.
5748 (Fcommandp, do_autoload): Ditto.
5749
5750 * lisp.h: Add prototype for safe_bcopy, fatal.
5751
5752 * editfns.c (init_editfns): Remove unused variables.
5753 (Fgoto_char, Fchar_after, Fformat): Ditto.
5754 (message_text, message_length): Put in #ifndef HAVE_MENUS.
5755
5756 * data.c (find_symbol_value): Remove unused variables.
5757 (Faref, Fstring_to_number): Ditto.
5758 (toplevel): Include stdio.h.
5759 (Fnumber_to_string): Cast XINT to long for %ld.
5760
5761 * casefiddle.c (casify_object): Remove unused variables.
5762 (casify_region): Ditto.
5763
5764 * filelock.c (get_boot_time): Put local variable used in
5765 conditinally compiled section in #ifdef.
5766 (toplevel): Include stdio.h.
5767
5768 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
5769 keys_of_keymap, syms_of_keymap): Remove unused variables.
5770
57711999-09-20 Gerd Moellmann <gerd@gnu.org>
5772
5773 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
5774 whose corresponding window rows have been disabled in
5775 try_window_id.
5776
57771999-09-20 Gerd Moellmann <gerd@gnu.org>
5778
5779 * xdisp.c (compute_window_start_on_continuation_line): Handle case
5780 that window start is out of range.
5781 (handle_display_prop, handle_single_display_prop): Replace
5782 marginal area specifications like `left-margin' with `(margin
5783 left-margin)'.
5784 (Qmargin): New.
5785 (syms_of_xdisp): Initialize Qmargin.
5786
57871999-09-19 Gerd Moellmann <gerd@gnu.org>
5788
5789 * syntax.c (update_syntax_table, find_defun_start, back_comment,
5790 describe_syntax, skip_chars): Remove unused variables.
5791 (back_comment, forw_comment): Add braces to if-statement with
5792 if-else as dependent statement.
5793
5794 * process.c (list_processes_1): Remove unused variables.
5795 (Fopen_network_stream, create_process): Add parentheses to
5796 conditional expressions.
5797 (create_process): Put declaration of sigchld in #if 0.
5798 (Fopen_network_stream): Removed unused variables.
5799 (Fopen_network_stream, wait_reading_process_input,
5800 wait_reading_process_input, send_process, send_process): Ditto.
5801 (toplevel): Add prototypes for set_waiting_for_input and
5802 keyboard_bit_set.
5803
5804 * abbrev.c (Fexpand_abbrev): Remove unused variables.
5805
5806 * textprop.c (Fset_text_properties): Remove unused variables.
5807 (text_property_list, verify_interval_modification,
5808 interval_has_all_properties): Ditto.
5809
5810 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5811 (Fcall_process): Remove unused variable.
5812
5813 * keyboard.c (Frecursive_edit): Remove unused variable.
5814 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
5815 timer_check, make_lispy_event, menu_bar_items,
5816 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
5817 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
5818 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
5819 read_key_sequence): Ditto. Fread_key_sequence,
5820 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
5821 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
5822 used when GOBBLE_FIRST_EVENT is defined in #ifdef
5823 (Fexecute_extended_command): Cast XINT to long for %ld.
5824 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5825 (toplevel): Include sys/types.h.
5826
5827 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
5828 (toplevel): Add prototypes for stuff_char, and
5829 code_convert_string_norecord.
5830
58311999-09-19 Gerd Moellmann <gerd@gnu.org>
5832
5833 * buffer.h: Add prototype for r_re_alloc.
5834
5835 * insdel.c (copy_text): Removed unused variables.
5836 (count_combining_after, count_combining_after, insert_1_both,
5837 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
5838 (adjust_after_replace, replace_range): Add parentheses to logical
5839 expressions. Remove unused variables.
5840 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
5841 expression.
5842
5843 * alloc.c (Fgarbage_collect): Remove unused variable.
5844 (compact_strings): Add parentheses around assignments in
5845 conditional context.
5846 (toplevel): Put declaration of unused function clear_marks
5847 in #if 0 like its definition.
5848
5849 * lisp.h: Add prototype for shrink_regexp_cache,
5850 sweep_weak_hash_tables.
5851
58521999-09-19 Dave Love <fx@gnu.org>
5853
5854 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
5855
5856 * doc.c (read_bytecode_char): Declare arg.
5857
5858 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
5859 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
5860
58611999-09-18 Richard Stallman <rms@gnu.org>
5862
5863 * xdisp.c (echo_area_display): Turn off code that returned
5864 without doing anything when using a terminal frame.
5865
83c8f461 58661999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
5867
5868 * unexelf.c (unexec): Don't get confused by a short section
5869 just before the bss section.
5870
26901792
DL
58711999-09-16 Gerd Moellmann <gerd@gnu.org>
5872
5873 * emacs.c (main): Remove unused variables.
5874 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
5875
5876 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
5877 init_fileio_once, syms_of_sound, init_xfns, init_fns
5878 init_sound, check_message_stack.
5879
5880 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
5881
5882 * intervals.c (rotate_right, rotate_left): Add braces to avoid
5883 ambiguous else warning.
5884 (split_interval_left): Remove unused variables.
5885 (previous_interval, adjust_intervals_for_deletion,
5886 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
5887 (icount, idepth, zero_length): Move into #if 0 section below
5888 original position where these are used.
5889
5890 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
5891
5892 * buffer.c (Fkill_buffer): Remove unused variables.
5893 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
5894 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
5895 init_buffer_once, (syms_of_buffer): Ditto.
5896
5897 * xrdb.c (get_fallback): Remove unused variable.
5898 (x_load_resources): Ditto. Put local variable used for Motif only
5899 in #ifdef USE_MOTIF.
5900
59011999-09-16 Gerd Moellmann <gerd@gnu.org>
5902
5903 * minibuf.c (read_minibuf): Remove unused variables.
5904 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
5905 (do_completion): Move assignment out of conditional context.
5906 (Fdisplay_completion_list): Add parentheses to conditional expression.
5907
5908 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
5909
5910 * lisp.h: Add prototype for no_switch_window.
5911
5912 * window.c (Fset_window_buffer): Remove unused variables.
5913 (Fset_window_margins): Ditto.
5914
5915 * xdisp.c (resize_mini_window): Temporarily set the selected
5916 window's or Vminibuf_scroll_window's height to "fixed" around
5917 the call the change_window_height.
5918
5919 * window.c (window_fixed_size_p): Check window's height_fixed_p
5920 flag.
5921
5922 * window.h (struct window): New member height_fixed_p.
5923
5924 * dispnew.c (direct_output_forward_char): Don't use this method
5925 if showing a message or a message was just cleared because we
5926 might need to resize the mini-window.
5927
59281999-09-16 Gerd Moellmann <gerd@gnu.org>
5929
5930 * frame.c (Fdelete_frame): Correct local variable pointing to
5931 selected frame after selecting new frame.
5932
59331999-09-15 Richard Stallman <rms@gnu.org>
5934
5935 * puresize.h (BASE_PURESIZE): Increase to 525000.
5936
5937 * filelock.c (Vtemporary_file_directory): New variable.
5938 (syms_of_filelock): Set up Lisp variable.
5939
59401999-09-15 Gerd Moellmann <gerd@gnu.org>
5941
5942 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
5943 (encode_terminal_code): Remove unused variables.
5944 (turn_off_face): Ditto.
5945 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
5946
5947 * dispnew.c (update_frame_line): If writing whole desired line,
5948 don't clear to end of line if already at the end.
5949
59501999-09-15 Gerd Moellmann <gerd@gnu.org>
5951
5952 * xdisp.c (resize_mini_window): Don't report changed window
5953 height if it actually hasn't changed.
5954
5955 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
5956 unused variables.
5957 (mark_shell_size_user_specified): Put in #if 0 because not used.
5958 (create_frame_gcs): Put in #if 0 because currently unused.
5959 (first_frame_p): Ditto.
5960
5961 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
5962 single_submenu, update_frame_menubar, set_frame_menubar,
5963 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
5964 variables.
5965
5966 * print.c (PRINTFULLP): Removed because it is no longer used and
5967 is misleading.
5968 (Ferror_message_string): Remove unused variables.
5969 (print_object): Cast argument of sprintf to long for `%ld'
5970 specifier. Remove unused variable.
5971
59721999-09-14 Gerd Moellmann <gerd@gnu.org>
5973
5974 * sound.c (Fplay_sound): Remove usused variables.
5975 (be2hs): Put in #if 0 because it's currently not used.
5976
59771999-09-14 Ken Raeburn <raeburn@gnu.org>
5978
5979 * print.c (Ferror_message_string, print_error_message,
5980 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
5981 member access.
5982
59831999-09-14 Gerd Moellmann <gerd@gnu.org>
5984
5985 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
5986
5987 * frame.c (Fnext_frame): Remove unused variable(s).
5988 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
5989 (store_frame_param): Add parentheses to conditional expression.
5990 (Fmodify_frame_parameters): Remove unused variables.
5991 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
5992 Ditto.
5993
5994 * xfns.c (x_set_background_color): Remove unused variable(s).
5995 (x_set_border_pixel): Ditto.
5996 (x_set_menu_bar_lines): Put local variable used only for
5997 non-toolkit case in #ifdef/#endif.
5998 (x_figure_window_size): Remove unused variable(s).
5999 (x_figure_window_size, x_window, lookup_image,
6000 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
6001 png_load, jpeg_load, gif_load, x_create_tip_frame,
6002 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
6003
6004 * xterm.c (x_scroll_bar_handle_click): Compile only if
6005 not USE_TOOLKIT_SCROLL_BARS.
6006 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
6007
6008 * dispextern.h: Add prototypes for gamma_correct and
6009 x_kill_gs_process.
6010
6011 * xterm.c (x_produce_glyphs): Remove unused variable(s).
6012 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
6013 x_set_toolkit_scroll_bar_thumb): Ditto.
6014 (x_scroll_bar_create): Move local variable to the
6015 conditionally compiled section of code where it is used.
6016 (x_scroll_bar_create): Remove unused variable(s).
6017 (x_scroll_bar_remove, XTread_socket): Ditto.
6018 (XTread_socket) <ConfigureNotify>: Move variables used for
6019 non-toolkit case into conditionally compiled section of code.
6020
6021 * window.h (freeze_window_starts): Fix typo in prototype.
6022
6023 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
6024 variable(s).
6025
6026 * lisp.h: Add prototype for debug_print.
6027
6028 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
6029 to use do-while.
6030
6031 * fns.c (SXHASH_COMBINE): Add missing parentheses.
6032 (Fchar_table_range, Fset_char_table_default, mapcar1,
6033 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
6034
6035 * lisp.h: Add prototype for getloadavg.
6036
60371999-09-14 Andreas Schwab <schwab@gnu.org>
6038
6039 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
6040
6041 * lisp.h: Declare close_file_unwind.
6042
60431999-09-14 Richard Stallman <rms@gnu.org>
6044
6045 * filelock.c (get_boot_time): Make the temp name in the proper dir.
6046
60471999-09-13 Gerd Moellmann <gerd@gnu.org>
6048
6049 * xdisp.c (redisplay_window): Make sure start_at_line_beg
6050 is always set correctly.
6051
60521999-09-13 Dave Love <fx@gnu.org>
6053
6054 * xdisp.c (move_it_in_display_line_to): Make type consistent with
6055 declaration.
6056
60571999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6058
6059 * xdisp.c (QCfile): Move here from xfns.c.
6060 (syms_of_xdisp): Initialize it.
6061 (message2_nolog): Change for Lisp_Object selected_frame.
6062 (message3_nolog, message_with_string, message,
6063 setup_echo_area_for_printing, truncate_echo_area,
6064 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6065
60661999-09-13 Dave Love <fx@gnu.org>
6067
6068 * xterm.c: Don't continue #define args for benefit of old cc.
6069 (xt_action_hook): Indent #error for benefit of K&R cc.
6070
60711999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6072
6073 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6074 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6075 (XRINGBELL): Removed.
6076
60771999-09-13 Dave Love <fx@gnu.org>
6078
6079 * xfns.c (x_put_x_image): Make type consistent with declaration.
6080
6081 * fns.c (Fmake_hash_table): Fix string continuation.
6082
60831999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
6084
6085 * xfns.c (QCfile): Moved to xdisp.c.
6086 (syms_of_xfns): Don't initialize QCfile.
6087 (check_x_frame): Change for Lisp_Object selected_frame.
6088 (check_x_display_info, x_get_resource_string): Ditto.
6089
60901999-09-13 Gerd Moellmann <gerd@gnu.org>
6091
6092 * minibuf.c (choose_minibuf_frame): Don't try to set the
6093 mini-buffer window's buffer, if the buffer is invalid.
6094
6095 * xfns.c (QCfile): Moved to xdisp.c.
6096 (syms_of_xfns): Don't initialize QCfile.
6097
6098 * xdisp.c (QCfile): Move here from xfns.c.
6099 (syms_of_xdisp): Initialize it.
6100
6101 * lisp.h (selected_frame): Add external declaration.
6102
6103 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
6104 (Fx_store_cut_buffer_internal): Ditto.
6105 (Fx_rotate_cut_buffers_internal): Ditto.
6106
6107 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
6108 selected_frame.
6109 (Finternal_set_lisp_face_attribute): Ditto.
6110 (Finternal_get_lisp_face_attribute): Ditto.
6111 (Finternal_lisp_face_empty_p): Ditto.
6112 (Fdump_face): Ditto.
6113
6114 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
6115 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
6116 set_terminal_window, set_scroll_region, reassert_line_highlight,
6117 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
6118 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
6119 encode_terminal_code, write_glyphs, term_init): Ditto.
6120
6121 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
6122 (kbd_input_ast, read_input_waiting): Ditto.
6123
6124 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
6125 selected_frame.
6126 (read_minibuf): Ditto.
6127
6128 * keyboard.c (command_loop_1): Change for Lisp_Object
6129 selected_frame.
6130 (cmd_error_internal, command_loop_1, read_char,
6131 kbd_buffer_get_event, read_avail_input,
6132 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
6133 interrupt_signal, quit_throw_to_read_char): Ditto.
6134
6135 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
6136 (Ffontset_info): DItto.
6137
6138 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
6139
6140 * dispnew.c (selected_frame): Make it a Lisp_Object.
6141 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
6142 (direct_output_for_insert, direct_output_forward_char,
6143 init_display): Ditto.
6144
6145 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
6146 selected_frame.
6147 (set_internal): Ditto.
6148
6149 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
6150 (record_buffer): Ditto.
6151
6152 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
6153 (do_switch_frame): Change for Lisp_Object selected_frame.
6154 (Fselected_frame): Ditto.
6155 (Fframe_first_window): Use SELECTED_FRAME.
6156 (Fframe_root_window): Change for Lisp_Object selected_frame.
6157 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
6158 Fprevious_frame, other_visible_frames, Fdelete_frame,
6159 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
6160 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
6161 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
6162 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
6163 Fset_frame_height, Fset_frame_width): Ditto.
6164
61651999-09-13 Gerd Moellmann <gerd@gnu.org>
6166
6167 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
6168 (message3_nolog, message_with_string, message,
6169 setup_echo_area_for_printing, truncate_echo_area,
6170 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
6171
6172 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
6173 (Fx_popup_dialog): Ditto.
6174
6175 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
6176 (check_x_display_info, x_get_resource_string): Ditto.
6177
6178 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
6179 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
6180 (XRINGBELL): Removed.
6181
6182 * window.c (Fminibuffer_window): Change for Lisp_Object
6183 selected_frame.
6184 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
6185 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
6186 Fcurrent_window_configuration, init_window_once): Ditto.
6187
6188 * frame.h (SELECTED_FRAME): New.
6189
61901999-09-12 Ken Raeburn <raeburn@gnu.org>
6191
6192 * category.c (word_boundary_p): Use XCAR and XCDR.
6193 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
6194 Fregister_code_conversion_map): Likewise.
6195 * coding.c (setup_coding_system, detect_coding_system,
6196 Ffind_operation_coding_system, Fset_coding_priority_internal):
6197 Likewise.
6198 * doc.c (get_doc_string, Fdocumentation,
6199 store_function_docstring): Likewise.
6200 * editfns.c (save_restriction_restore): Likewise.
6201 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
6202 skip_debugger, find_handler_clause, Fautoload, Fapply,
6203 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
6204 Likewise.
6205 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
6206 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
6207 Fread_file_name): Likewise.
6208 * filelock.c (unlock_all_files): Likewise.
6209 * insdel.c (Fcombine_after_change_execute): Likewise.
6210 * intervals.c (adjust_intervals_for_insertion): Likewise.
6211 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
6212 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
6213 store_in_keymap, Fcopy_keymap, define_as_prefix,
6214 current_minor_maps, Faccessible_keymaps,
6215 accessible_keymaps_char_table, Fkey_description,
6216 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
6217 describe_buffer_bindings, describe_map_tree, shadow_lookup,
6218 describe_map): Likewise.
6219 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
6220 read_list, init_lread): Likewise.
6221 * search.c (Fmatch_data): Likewise.
6222 * sunfns.c (Fsun_menu_internal): Likewise.
6223 * syntax.c (describe_syntax): Likewise.
6224 * undo.c (record_insert, record_delete, Fundo_boundary,
6225 truncate_undo_list): Likewise.
6226 * vmsproc.c (child_sig): Likewise.
6227
6228 * editfns.c (Fformat): Use XFLOAT_DATA.
6229
62301999-09-12 Gerd Moellmann <gerd@gnu.org>
6231
6232 * keyboard.c (command_loop_1): Resize mini-window to the
6233 exact size of a message displayed, if any.
6234
6235 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
6236 to exact size if exact_p is non-zero.
6237 (display_echo_area_1): Call resize_mini_window with
6238 new parameter.
6239 (redisplay_internal): Ditto.
6240 (resize_echo_area_axactly): New.
6241
6242 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
6243 new parameter.
6244
6245 * dispextern.h: Change prototype of resize_mini_window.
6246 Add prototype for resize_echo_area_axactly.
6247
6248 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
6249 (syms_of_xfaces): Defsubr accordingly.
6250
6251 * xdisp.c (hscroll_window_tree): Choose cursor row from
6252 desired or current matrix.
6253 (redisplay_internal): Hscroll before updating.
6254
62551999-09-12 Gerd Moellmann <gerd@gnu.org>
6256
6257 * syntax.c (Fforward_word): Use prompt_end_charpos instead
6258 of minibuffer_prompt_length.
6259
6260 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
6261 of minibuffer_prompt_length.
6262 (read_minibuf_unwind): Ditto.
6263 (Fminibuffer_complete_and_exit): Ditto.
6264 (Fminibuffer_complete_word): Ditto.
6265 (Fminibuffer_prompt_end): Ditto.
6266
6267 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
6268 of minibuffer_prompt_length.
6269 (Fline_beginning_position): Ditto.
6270
6271 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
6272 of minibuffer_prompt_length.
6273 (Fmake_indirect_buffer): Ditto.
6274 (Fkill_buffer): Ditto.
6275 (Ferase_buffer): Ditto.
6276
6277 * buffer.h (prompt_end_charpos): Replaces
6278 minibuffer_prompt_length.
6279
6280 * minibuf.c (read_minibuf): Return mini-buffer contents
6281 without the prompt.
6282
6283 * editfns.c (make_buffer_string_both): Take out the code
6284 to handle mini-buffer prompts.
6285 (Fbuffer_string): Handle the prompt here, instead.
6286
6287 * xfaces.c (lface_from_face_name): Resolve face aliases.
6288 (Qmode_line): Replaces Qmodeline.
6289 (realize_basic_faces): Use Qmode_line.
6290 (syms_of_xfaces): Initialize Qmode_line.
6291
62921999-09-12 Gerd Moellmann <gerd@gnu.org>
6293
6294 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
6295 current column after inserting prompt.
6296 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
6297
6298 * xfaces.c (Qframe_update_face_colors): New.
6299 (syms_of_xfaces): Initialize call.
6300 (update_face_from_frame_parameter): Call that function when
6301 the frame's background changes.
6302
63031999-09-12 Richard Stallman <rms@gnu.org>
6304
6305 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
6306
63071999-09-12 Ken Raeburn <raeburn@gnu.org>
6308
6309 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
6310 mark_object, mark_buffer): Use XCAR and XCDR.
6311 * bytecode.c (Fbyte_code): Likewise.
6312 * callint.c (Fcall_interactively, Fprefix_numeric_value):
6313 Likewise.
6314 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
6315 getenv_internal): Likewise.
6316 * dired.c (file_name_completion): Likewise.
6317 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
6318 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
6319 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
6320 * indent.c (Fcompute_motion): Likewise.
6321 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
6322 list_processes_1, Fstart_process, Fopen_network_stream,
6323 wait_reading_process_input, read_process_output_call,
6324 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
6325 status_notify, wait_reading_process_input): Likewise.
6326 * textprop.c (PLIST_ELT_P, property_value, set_properties,
6327 extend_property_ranges): Likewise.
6328 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
6329 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
6330 x_report_frame_params, x_set_cursor_type, x_icon_type,
6331 x_figure_window_size, Fx_create_frame, w32_load_system_font,
6332 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
6333 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
6334 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
6335 x_display_info_for_name, Fx_display_list): Likewise.
6336 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
6337 Fx_popup_menu, Fx_popup_dialog): Likewise.
6338 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
6339 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
6340 w32_term_init, x_delete_display): Likewise.
6341 * xfns.c (x_window_to_frame, x_any_window_to_frame,
6342 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
6343 x_top_window_to_frame, x_set_frame_parameters,
6344 x_report_frame_params, x_set_cursor_type, x_icon_type,
6345 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
6346 Fx_display_list, x_create_tip_frame): Likewise.
6347 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
6348 Fx_popup_menu, Fx_popup_dialog): Likewise.
6349 * xselect.c (x_own_selection, x_get_local_selection,
6350 x_handle_selection_request, x_handle_selection_clear,
6351 x_clear_frame_selections, wait_for_property_change_unwind,
6352 wait_for_property_change, x_handle_property_notify,
6353 copy_multiple_data, x_get_foreign_selection,
6354 lisp_data_to_selection_data, clean_local_selection_data,
6355 x_handle_selection_notify, Fx_get_selection_internal,
6356 x_disown_buffer_selections): Likewise.
6357 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
6358 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
6359 Likewise.
6360
6361 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
6362 XFLOAT_DATA.
6363 * bytecode.c (Fbyte_code): Likewise.
6364 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
6365 fmod_float): Likewise.
6366
63671999-09-11 Richard Stallman <rms@gnu.org>
6368
6369 * xdisp.c (run_window_scroll_functions): If hook functions switch
6370 buffers, switch back after.
6371
63721999-09-11 Ken Raeburn <raeburn@gnu.org>
6373
6374 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
6375 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
6376 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
6377 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
6378 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
6379 XCDR.
6380 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
6381 XCDR.
6382
63831999-09-10 Richard Stallman <rms@gnu.org>
6384
6385 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
6386 not RevertToPointerRoot.
6387 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6388 Fix the code to clear around the scroll bar.
6389
63901999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
6391
6392 * print.c: Support print-circle and related features.
6393 (Vprint_gensym_alist): Removed.
6394 (Vprint_circle, Vprint_continuous_numbering, print_number_index
6395 Vprint_number_table): New variables.
6396 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
6397 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
6398 (print, print_preprocess, print_preprocess_string, print_object):
6399 New/modified functions with print-circle feature. Use
6400 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
6401 (syms_of_print): Defined new Lisp variables `print-circle',
6402 `print-continuous-numbering', `print-number-table'.
6403
64041999-09-10 Gerd Moellmann <gerd@gnu.org>
6405
6406 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
6407 as background color specification instead of an integer.
6408 (image-cache-eviction-delay): Replaces image-eviction-seconds.
6409 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
6410 (clear_image_cache, syms_of_xfns): Use it.
6411 (Qpostscript): Replaces Qghostscript.
6412 (gs_type): Use it.
6413 (gs_image_p): Ditto.
6414 (syms_of_xfns): Initialize Qpostscript.
6415
64161999-09-10 Richard Stallman <rms@gnu.org>
6417
6418 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
6419
64201999-09-09 Richard Stallman <rms@gnu.org>
6421
6422 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
6423
6424 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
6425
64261999-09-09 Gerd Moellmann <gerd@gnu.org>
6427
6428 * fns.c (Fmakehash): Accept just one optional argument TEST.
6429
6430 * xfns.c (QCindex): New.
6431 (syms_of_xfns): Initialize QCindex.
6432 (gif_load): Use it instead of `:image'.
6433
64341999-09-09 Richard Stallman <rms@gnu.org>
6435
6436 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
6437 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
6438
64391999-09-08 Gerd Moellmann <gerd@gnu.org>
6440
6441 * xdisp.c (Qwhen): Replaces QCwhen.
6442 (syms_of_xdisp): Initialized it instead of QCwhen.
6443 (handle_single_display_prop): Use it instead of QCwhen.
6444
64451999-09-08 Ken'ichi Handa <handa@gnu.org>
6446
6447 * charset.c (translate_char): Reset MSBs of arguments of
6448 MAKE_CHAR.
6449 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
6450
64511999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
6452
6453 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
6454
6455 * fns.c (Fbase64_decode_region): Don't place point outside of the
6456 current accessible portion.
6457
64581999-09-07 Richard Stallman <rms@gnu.org>
6459
6460 * keymap.c (fix_submap_inheritance): Do nothing if the proper
6461 parent is an ancestor of SUBMAP; otherwise, add it as the
6462 ultimate ancestor.
6463
64641999-09-07 Gerd Moellmann <gerd@gnu.org>
6465
6466 * xdisp.c (handle_single_display_prop): Change conditional
6467 display property to `:when FORM . VALUE'.
6468
64691999-09-07 Richard Stallman <rms@gnu.org>
6470
6471 * fileio.c (Fwrite_region): Doc fix.
6472
64731999-09-07 Stefan Monnier <monnier@cs.yale.edu>
6474
6475 * fileio.c (Qexcl): New variable.
6476 (report_file_error): Handle EEXIST specially.
6477 (Fwrite_region): Special handling for CONFIRM = `excl'.
6478 (syms_of_fileio): Initialize Qexcl.
6479
64801999-09-07 Gerd Moellmann <gerd@gnu.org>
6481
6482 * xfns.c (x_set_foreground_color): Call
6483 update_face_from_frame_parameter.
6484 (x_set_background_color): Ditto.
6485 (x_set_mouse_color): Ditto.
6486 (x_set_cursor_color): Ditto.
6487 (x_set_border_color): Ditto.
6488 (x_set_scroll_bar_foreground): Ditto.
6489 (x_set_scroll_bar_background): Ditto.
6490
6491 * xfaces.c (recompute_basic_faces): Clear face cache.
6492 (Finternal_set_lisp_face_attribute): Modify frame parameters
6493 if attributes of certain faces are changed.
6494 (update_face_from_frame_parameter): New.
6495
6496 * xfaces.c (realize_basic_faces): Realize new basic faces.
6497
6498 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
6499 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
6500
6501 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
6502 (syms_of_xfaces): Intialize new symbols.
6503
6504 * fns.c (Fmakehash): Take one argument, test, make all the
6505 rest keyword arguments.
6506
6507 * window.c (Fset_window_margins): Make window the first argument.
6508 (set_window_buffer): Call Fset_window_margins with window as first
6509 argument.
6510
65111999-09-07 Gerd Moellmann <gerd@gnu.org>
6512
6513 * xfaces.c (Qfringe): Replaces Qmargin.
6514
65151999-09-07 Kenichi Handa <handa@etl.go.jp>
6516
6517 * charset.h: Lots of comments fixed.
6518 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
6519 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
6520
6521 * charset.c : Lots of comments fixed.
6522 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
6523 (CHAR_COMPONENTS_VALID_P): Name changed from
6524 CHAR_COMPONENT_VALID_P. Caller changed.
6525
65261999-09-06 Richard Stallman <rms@gnu.org>
6527
6528 * insdel.c (syms_of_insdel): Define Lisp variable
6529 inhibit-modification-hooks.
6530
65311999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
6532
6533 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
6534 unexaix.c.
6535
6536 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
6537
65381999-09-06 Dave Love <fx@gnu.org>
6539
6540 * unexaix.c: New version incorporating Michael Sperber's changes
6541 from XEmacs. Should solve problems on AIX 4.3.
6542
6543 * lread.c (Vbyte_boolean_vars): New variable.
6544 (defvar_bool, syms_of_lread): Use it.
6545
65461999-09-05 Richard Stallman <rms@gnu.org>
6547
6548 * minibuf.c (read_minibuf): Put all three properties on the
6549 same range, the whole prompt.
6550
65511999-09-05 Gerd Moellmann <gerd@gnu.org>
6552
6553 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
6554 (Fplay_sound, syms_of_sound): Use it.
6555 (parse_sound): Allow float volume values in the range [0, 1].
6556 (Fplay_sound): Ditto.
6557
6558 * window.c (Fset_window_vscroll): Make window the first argument,
6559 amount to scroll the second. Take non-negative vscroll as
6560 argument.
6561 (Fwindow_vscroll): Return non-negative vscroll.
6562
6563 * xfns.c (Fx_show_tip): Improve documentation.
6564
65651999-09-05 Gerd Moellmann <gerd@gnu.org>
6566
6567 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
6568 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
6569 `top-line' and `top_line' to `header-line' and `header_line'.
6570 Likewise for similar spellings.
6571
65721999-09-05 Gerd Moellmann <gerd@gnu.org>
6573
6574 * xdisp.c (row_containing_pos): New.
6575 (try_window_id): Use it.
6576
6577 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
6578 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
6579 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
6580 Likewise for upper-case etc.
6581
65821999-09-05 Gerd Moellmann <gerd@gnu.org>
6583
6584 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
6585 Fix reference to renamed variable.
6586
65871999-09-04 Gerd Moellmann <gerd@gnu.org>
6588
6589 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
6590 (window_fixed_size_p): Use Qwindow_size_fixed instead of
6591 Qfixed_window_size.
6592 (syms_of_window): Ditto.
6593
6594 * fns.c (Fmakehash): Exchange optional test and size arguments.
6595
65961999-09-03 Gerd Moellmann <gerd@gnu.org>
6597
6598 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
6599 under newly created scroll bar.
6600 (expose_window): If window is not yet fully initialized, do
6601 nothing. This can happen when toolkit scroll bars are used and a
6602 window is split. Reconfiguring the scroll bars will generate an
6603 expose for a newly created window.
6604
6605 * frame.h (struct frame): New member `gamma'.
6606
6607 * xfns.c: Include math.h. Add extern declaration for atof in case
6608 we don't see one.
6609 (Qscreen_gamma): New.
6610 (struct x_frame_parm_table): Add prototypes, add
6611 x_set_screen_gamma.
6612 (gamma_correct): New function.
6613 (defined_color): Call it.
6614 (x_set_screen_gamma): New.
6615 (x_set_title): Add parameter old_value.
6616 (RES_TYPE_FLOAT): New.
6617 (x_get_arg): Handle RES_TYPE_FLOAT.
6618 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
6619 (lookup_pixel_color): Change call to x_alloc_nearest_color to
6620 new prototype.
6621 (lookup_rgb_color): Ditto.
6622 (syms_of_xfns): Initialize Qscreen_gamma.
6623
6624 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
6625 New. Allocate color for lwlib widgets.
6626 (x_alloc_nearest_color): Change parameter list include the
6627 frame on which to allocate colors. Gamma-correct colors.
6628 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
6629 parameter list.
6630
6631 * xterm.h: Change protorype of x_alloc_nearest_color.
6632
66331999-09-03 Richard Stallman <rms@gnu.org>
6634
6635 * callproc.c: Delete the system-independent include of stdlib.h
6636 (leaving only the one in the WINDOWSNT conditional).
6637
66381999-09-03 Andrew Choi <choi@cs.hku.hk>
6639
6640 * callproc.c (call-process) [macintosh]: Call mac_run_command in
6641 sysdep.c. The Mac code is modeled after the DOS code.
6642
6643 * dispextern.h [macintosh]: Include macterm.h to define substitute X
6644 Window types and macros.
6645
6646 * frame.h: Do nothing if included a second time.
6647 (enum output_method): Add mac_output frame type.
6648 (union output_data): Add new alternative `mac'.
6649 (FRAME_MAC_P): New macro.
6650
6651 * frame.c (Fframep) [macintosh]: Handle mac frame type.
6652 (syms_of_frame_1): Initialize Qmac.
6653 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
6654 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
6655 (Fmodify_frame_parameters) [macintosh]: Call
6656 mac_set_frame_parameter in macterm.c.
6657
6658 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
6659 (512) because Mac compilers limit local data of a function to 32K.
6660
6661 * make-docfiles.c: Correctly handle input files with Mac-style
6662 eol's.
6663
6664 * sysdep.c: Define numerous routines to emulate Unix system calls.
6665
6666 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
6667 file of an X Window environment.
6668
6669 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
6670 x-display-grayscale, x-color-defined-p, and x-color-values.
6671
6672 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
6673 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
6674 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
6675 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
6676 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
6677 New functions, replacing POSIX features.
6678
6679 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
6680 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
6681 (InitEmacsPasswdDir, run_mac_command): New subroutines.
6682
6683 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
6684 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
6685 (myPasswdDir, TempDirName, sys_siglist): New variables.
6686
6687 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
6688 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
6689 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
6690 Define empty stubs so Emacs will link.
6691
66921999-09-03 Gerd Moellmann <gerd@gnu.org>
6693
6694 * xdisp.c: Use XCAR and XCDR instead of XCONS.
6695
6696 * window.h: New member frozen_window_start_p.
6697
6698 * window.c (foreach_window, foreach_window_1): New.
6699 (freeze_window_start, freeze_window_starts): New.
6700 (make_window): Initialize frozen_window_start_p.
6701 (replace_window): Ditto.
6702 (Fset_window_point): Remove references to deleted variables.
6703 (Fset_window_start): Ditto.
6704
6705 * xdisp.c (Vresize_mini_config, resize_mini_frame,
6706 resize_mini_initial_height): Removed.
6707 (syms_of_xdisp): Remove references to these variables.
6708 (resize_mini_window): Don't save window configuration, freeze
6709 window starts instead. Enlarge window until displaying an empty
6710 buffer, then shrink it. Make the function externally visible.
6711 (redisplay_window): Treat frozen window start like forced start,
6712 but accept point outside of the window.
6713
6714 * dispextern.h: Add function prototype for resize_mini_window.
6715
6716 * minibuf.c (read_minibuf_unwind): Resize mini-window when
6717 reaching minibuf_level 0.
6718
6719 * lisp.h: Remove extern declarations for variables deleted from
6720 xdisp.c.
6721
6722 * dispnew.c (adjust_frame_glyphs): Remove reference to
6723 Vresize_mini_config.
6724
67251999-09-03 Gerd Moellmann <gerd@gnu.org>
6726
6727 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
6728 to USE_TOOLKIT_SCROLL_BARS.
6729
6730 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
6731 here.
6732 (XTset_vertical_scroll_bar): Clarify position computations. Clear
6733 under newly created scroll bar. Put toolkit scroll bars in the
6734 middle of the area reserved for the scroll bar.
6735
67361999-09-03 Kenichi Handa <handa@etl.go.jp>
6737
6738 The following changes are for the new handling of mulitbyte
6739 sequence. Now, except for a composite character, no multibyte
6740 character in string/buffer has trailing garbage bytes. For
6741 instance, the length of string "\201\300\300" is now 2, the first
6742 character is Latin-1 A-grave, the second is raw \300.
6743
6744 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
6745 are negative.
6746 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
6747 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
6748 (PARSE_COMPOSITE_SEQ): New macro.
6749 (PARSE_CHARACTER_SEQ): New macro.
6750 (PARSE_MULTIBYTE_SEQ): New macro.
6751 (CHAR_PRINTABLE_P): New macro.
6752 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
6753 (STRING_CHAR_AND_LENGTH): Likewise.
6754 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
6755 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
6756 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
6757
6758 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
6759 (SPLIT_CHARACTER_SEQ): New macro.
6760 (SPLIT_MULTIBYTE_SEQ): New macro.
6761 (CHAR_COMPONENT_VALID_P): New macro.
6762 (non_ascii_char_to_string): Generate a multibyte sequence as far
6763 as possible.
6764 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
6765 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
6766 (split_non_ascii_string): Likewise.
6767 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
6768 (char_printable_p): New function.
6769 (translate_char): Check character by NATNUMP instead of INTEGERP.
6770 (unibyte_char_to_multibyte): Call char_valid_p instead of
6771 VALID_MULTIBYTE_CHAR_P.
6772 (Fmake_char_internal): Check the arguments more rigidly.
6773 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
6774 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
6775 (Fmultibyte_char_to_unibyte): Check the validity of character by
6776 CHAR_VALID_P.
6777 (chars_in_text): Call multibyte_chars_in_text.
6778 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
6779 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
6780 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
6781
6782 * data.c (Faset): Adjust the way to check byte-combining
6783 possibility for the new handling of multibyte sequence.
6784
6785 * editfns.c (Fsubst_char_in_region): Likewise.
6786
6787 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
6788 (string_char_to_byte): Likewise.
6789 (string_byte_to_char): Likewise.
6790
6791 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
6792 macro STRING_CHAR_AND_LENGTH. Caller changed.
6793
6794 * insdel.c (count_combining_composition): New function.
6795 (count_combining_before): Adjust the way to check byte-combining
6796 possibility for the new handling of multibyte sequence. Call
6797 count_combining_composition for a composite character.
6798 (count_combining_after): Likewise.
6799
6800 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
6801 (print): Likewise.
6802
6803 * dispextern.h (struct it): Change the size of the member
6804 `ctl_chars'.
6805
6806 * xdisp.c (get_next_display_element): Display incomplete multibyte
6807 sequence (e.g. \222\300) by octal form.
6808
68091999-09-02 Gerd Moellmann <gerd@gnu.org>
6810
6811 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
6812
6813 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
6814 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
6815
68161999-09-02 Gerd Moellmann <gerd@gnu.org>
6817
6818 * buffer.c (set_buffer_internal): Never set
6819 windows_or_buffers_changed.
6820
6821 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
6822 if we have displayed to the bottom of the window.
6823
6824 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
6825 in both directions. Extend documentation.
6826
68271999-09-01 Gerd Moellmann <gerd@gnu.org>
6828
6829 * minibuf.c (read_minibuf): Flush display after setting cursor to
6830 column 0.
6831
68321999-08-31 Gerd Moellmann <gerd@gnu.org>
6833
6834 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
6835 already defined. This avoids a warning from buffer.c.
6836
68371999-08-30 Gerd Moellmann <gerd@gnu.org>
6838
6839 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
6840 of both margins.
6841 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
6842 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
6843 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
6844
6845 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
6846 once instead of twice.
6847 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
6848
6849 * xterm.c: Remove unused bitmaps.
6850 (continued_bits, continuation_bits, overlay_bits): Change images.
6851 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
6852 instead of FRAME_X_FLAGS_AREA_WIDTH.
6853 (x_after_update_window_line): Ditto.
6854 (x_draw_bitmap): Likewise.
6855 (x_draw_row_bitmaps): Likewise.
6856 (x_draw_glyph_string_box): Likewise.
6857 (x_draw_glyphs): Likewise.
6858 (x_scroll_run): Likewise.
6859 (expose_window_tree): Likewise.
6860 (note_mode_line_highlight): Likewise.
6861 (XTset_vertical_scroll_bar): Likewise.
6862 (x_clip_to_row): Likewise.
6863 (x_set_window_size): Likewise.
6864
6865 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
6866 of 2 * that value.
6867
6868 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
6869 2 * that value.
6870 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
6871 FRAME_FLAGS_AREA_WIDTH.
6872
6873 * window.c (coordinates_in_window): Use
6874 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6875 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
6876 instead of twice.
6877
6878 * widget.c (set_frame_size): Set flags_area_extra to
6879 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
6880 (EmacsFrameSetCharSize): Ditto.
6881
6882 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
6883 instead of FRAME_FLAGS_AREA_WIDTH.
6884
6885 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
6886 FRAME_FLAGS_AREA_COLS once.
6887 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
6888 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
6889
68901999-08-30 Gerd Moellmann <gerd@gnu.org>
6891
6892 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
6893 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
6894
68951999-08-30 Gerd Moellmann <gerd@gnu.org>
6896
6897 * fns.c (QCweakness): Replaces QCweak.
6898 (Fmake_hash_table): Ditto.
6899 (Fmakehash): Ditto.
6900 (syms_of_fns): Ditto.
6901
69021999-08-29 Richard Stallman <rms@gnu.org>
6903
6904 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
6905
6906 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
6907
6908 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
6909 Add support for nested comments.
6910
863476d1
SM
6911 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
6912 Consolidate the forward comment code into the new `forw_comment'.
6913 (forw_comment): New subroutine. Added support for nested comments.
6914 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
6915 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
6916
69171999-08-28 Ken Raeburn <raeburn@gnu.org>
6918
6919 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
6920 names of structure elements if HIDE_LISP_IMPLEMENTATION is
6921 defined, to help detect code that uses knowledge of the Lisp
6922 internals that it shouldn't have.
6923 (XFLOAT_DATA): New macro.
6924
69251999-08-25 Gerd Moellmann <gerd@gnu.org>
6926
6927 * syntax.c (Fforward_word): If in a mini-buffer and moving
6928 backwards, stop in front of the prompt to prevent accidentially
6929 moving into the read-only prompt.
6930
6931 * window.c (Frecenter): Clear frame if called with nil or no arg.
6932
6933 * xdisp.c (resize_mini_window): Don't resize if
6934 Vmax_mini_window_height is nil. Otherwise, use a default if
6935 Vmax_mini_window_height is not ot a number.
6936 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
6937
69381999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
6939
6940 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
6941 * m/iris4d.h: Use unexelf for IRIX 5.*.
6942 * m/iris5d.h: Use unexelf for IRIX 6.*.
6943 * unexsgi.c: Deleted.
6944
6945 * unexelf.c: Auto-detect .sbss section.
6946 (round_up): Make it static.
6947 (unexec): Declare alignment as Elf Word. Skip ``Program
6948 segment above .bss'' test on MIPS without .sbss.
6949 Copy sections .got and .sdata1 sections. Adjust offsets in
6950 sections .sdata, .lit4, .lit8, .got and .sdata1.
6951
69521999-08-25 Gerd Moellmann <gerd@gnu.org>
6953
6954 * xdisp.c (try_window_id): Remove typo.
6955
69561999-08-24 Gerd Moellmann <gerd@gnu.org>
6957
6958 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
6959 unchanged text at the bottom when computing the cursor position.
6960 (message3_nolog): Raise frame only if minibuffer_auto_raise is
6961 set.
6962
6963 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
6964
69651999-08-24 Gerd Moellmann <gerd@gnu.org>
6966
6967 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
6968 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
6969 (syms_of_xfaces): Ditto.
6970
6971 * window.c (Fset_window_point): Reset Vresize_mini_config.
6972 (Fset_window_start): Ditto.
6973 (set_window_buffer): Ditto.
6974
6975 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
6976
6977 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
6978 before calling try_window.
6979 (echo_area_display): If height has changed, update other windows.
6980 (resize_mini_frame, resize_mini_initial_height): New.
6981 (resize_mini_window): Save/restore window configuration
6982 differently.
6983
6984 * lisp.h (Vresize_mini_config, resize_mini_frame,
6985 resize_mini_initial_height): Add extern declarations.
6986
6987 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
6988 CANON_X_UNIT.
6989
6990 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
6991 being redefined in jconfig.h.
6992
69931999-08-23 Ken'ichi Handa <handa@gnu.org>
6994
6995 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
6996
69971999-08-22 Gerd Moellmann <gerd@gnu.org>
6998
6999 * alloc.c (mark_glyph_matrix): Mark strings only.
7000
7001 * xdisp.c (redisplay_internal): Clear garbaged frames after
7002 resizing mini-window.
7003
70041999-08-22 Gerd Moellmann <gerd@gnu.org>
7005
7006 * xdisp.c (unwind_with_echo_area_buffer): Use
7007 set_buffer_internal_1 instead of set_buffer_internal.
7008 (with_echo_area_buffer): Ditto.
7009
7010 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
7011 only if buffer is displayed somewhere.
7012
7013 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
7014
7015 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
7016 (gap_right): Ditto.
7017 (modify_region): Ditto.
7018
7019 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
7020
7021 * xdisp.c (Vresize_mini_config): New.
7022 (resize_mini_window): Use it to save restore original window
7023 configuration
7024 (syms_of_xdisp): Initialize it.
7025
7026 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
7027
7028 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
7029
7030 * xdisp.c (reconsider_clip_changes): New.
7031 (redisplay_internal, redisplay_window): Call it.
7032 (mark_window_display_accurate, redisplay_internal): Set current
7033 matrix' buffer, begv, zv.
7034
7035 * window.c (Fset_window_hscroll): Set
7036 prevent_redisplay_optimizations_p instead of clip_changed.
7037 (Fset_window_hscroll): Ditto.
7038 (temp_output_buffer_show): Ditto.
7039 (Fset_window_vscroll): Ditto.
7040
7041 * buffer.c (reset_buffer): Set clip_changed to 0 and
7042 prevent_redisplay_optimizations_p to 1.
7043 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
7044
7045 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
7046 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
7047 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
7048 END_UNCHANGED): New.
7049 (struct buffer_text): Add beg_unchanged, end_unchanged,
7050 unchanged_modified, overlay_unchanged_modified.
7051
7052 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7053 overlay_unchanged_modified): Removed.
7054 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
7055 (unwind_with_echo_area_buffer): Don't restore them.
7056 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
7057 (text_outside_line_unchanged_p, redisplay_internal,
7058 try_scrolling): Use/set buffer-specific beg/end_unchanged.
7059 (redisplay_window): Let try_window_id be called if more than one
7060 window is displayed. Use/set buffer-specific beg/end_unchanged.
7061 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
7062 try_window_id):
7063 Use buffer-specific beg/end_unchanged.
7064
7065 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
7066 overlay_unchanged_modified): Remove extern declarations.
7067
7068 * keyboard.c (command_loop_1): Set beg/end_unchanged per
7069 buffer.
7070
7071 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
7072 (gap_right): Ditto.
7073 (adjust_after_replace): Likewise.
7074 (replace_range, del_range_2, modify_region): Likewise.
7075
7076 * dispnew.c (direct_output_for_insert): Set beg_unchanged
7077 and unchanged_modified per buffer.
7078
7079 * coding.c (code_convert_region): Compute beg/end_unchanged per
7080 buffer.
7081
7082 * buffer.c (modify_overlay): Compute beg/end_unchanged
7083 per buffer.
7084 (Fget_buffer_create): Initialize new members of the buffer
7085 structure.
7086
70871999-08-22 Gerd Moellmann <gerd@gnu.org>
7088
7089 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
7090
7091 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
7092 (Qkey_value_weak): Removed.
7093 (make_hash_table): Use nil, `key', `value', t for weakness.
7094 (Fmake_hash_table): Ditto.
7095 (copy_hash_table): New.
7096 (Fcopy_hash_table): New.
7097
70981999-08-22 Gerd Moellmann <gerd@gnu.org>
7099
7100 * xfns.c: Call change_frame_size and do_pending_window_change with
7101 new parameter.
7102
71031999-08-21 Gerd Moellmann <gerd@gnu.org>
7104
7105 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
7106 well.
7107 (redisplay_internal): Resize mini-window only if text might
7108 have changed.
7109 (display_echo_area): Reset displayed echo_area_buffer to nil
7110 at the end if we're displaying a nil message.
7111
71121999-08-21 Gerd Moellmann <gerd@gnu.org>
7113
7114 * fns.c (hash_lookup): Test with EQ before calling key comparion
7115 function.
7116 (hash_remove): Ditto.
7117 (cmpfn_eq): Removed.
7118 (cmpfn_eql): Don't test with EQ.
7119 (cmpfn_equal): Ditto.
7120 (make_hash_table): Set comparison function for `eq' to null.
7121
7122 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
7123 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
7124
7125 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
7126
7127 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
7128 xterm.c: Call change_frame_size and do_pending_window_change with
7129 new parameter.
7130
7131 * dispnew.c (do_pending_window_change): Add parameter `safe'.
7132 (change_frame_size): Ditto.
7133 (change_frame_size_1): Ditto. Deley size changes if redisplaying
7134 and not called from a safe place.
7135 (window_change_signal): Call change_frame_size with new parameter.
7136
7137 * dispextern.h: Change prototypes for do_pending_window_change
7138 and change_frame_size.
7139
7140 * xfaces.c (face_at_buffer_position): Don't xassert that
7141 window's buffers equals current_buffer; this is not the
7142 case during echo area display.
7143
71441999-08-21 Gerd Moellmann <gerd@gnu.org>
7145
7146 * xdisp.c, minibuf.c: Remove conditional compilation on
7147 NO_PROMPT_IN_BUFFER.
7148
7149 * minibuf.c (Fminibuffer_prompt_end): New.
7150 (syms_of_minibuf): Defsubr it. Remove
7151 minibuffer-prompt-in-buffer.
7152 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
7153 Extend documentation.
7154
7155 * xdisp.c (get_next_display_element): Display \r as ^M.
7156
7157 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
7158 under scroll bar widget.
7159
71601999-08-21 Gerd Moellmann <gerd@gnu.org>
7161
7162 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
7163 anywhere.
7164 (unwind_redisplay): Return nil.
7165 (clear_garbaged_frames): New.
7166 (redisplay_internal): Use it.
7167 (echo_area_display): Ditto.
7168 (resize_mini_window): Mew.
7169 (display_echo_area_1): Use it to resize echo area window.
7170 (redisplay_internal): Use it to resize active mini-window.
7171
7172 * dispextern.h, lisp.h: Add function prototypes.
7173
7174 * dispnew.c (set_window_cursor_after_update): Do the
7175 cursor_in_echo_area case only for a mini-window showing
7176 a message. Don't let cursor end up after the end of a row.
7177
7178 * xdisp.c (echo_area_glyphs, echo_area_message,
7179 echo_area_glyphs_length, previous_echo_glyphs,
7180 previous_echo_area_message, previous_echo_area_glyphs_length):
7181 Removed.
7182 (Vmessage_stack, echo_area_buffer, echo_buffer,
7183 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
7184 (message2_nolog): Use set_message and clear_message.
7185 (message3): Rename parameter len to nbytes to make clear what
7186 it is.
7187 (message3_nolog): Ditto. Use set_message and clear_message.
7188 (update_echo_area): Rewritten.
7189 (with_echo_area_buffer): New.
7190 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
7191 (setup_echo_area_for_printing): New.
7192 (display_echo_area, display_echo_area_1): New.
7193
7194 (current_message, current_message_1): New.
7195 (push_message, restore_message, pop_message,
7196 check_message_stack): New.
7197 (truncate_echo_area): Rewritten.
7198 (truncate_message_1): New.
7199 (set_message, set_message_1, clear_message): New.
7200 (echo_area_display): Rewritten.
7201 (redisplay_internal): Check for needed echo area update
7202 differently.
7203 (redisplay_preserve_echo_area): Rewritten.
7204 (redisplay_window): Check for mini-window displaying echo area
7205 message differently.
7206 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
7207 Remove initialzation of removed variables.
7208 (init_xdisp): Remove references to removed variables.
7209
7210 * dispnew.c (adjust_frame_message_buffer): Removed references
7211 to echo_area_glyphs and previous_echo_glyphs.
7212 (direct_output_for_insert): Check for mini-window displaying
7213 echo area message differently.
7214 (update_frame): Likewise.
7215 (set_window_cursor_after_update): Likewise. In echo area,
7216 don't try to set cursor on rows that aren't enabled.
7217
7218 * print.c: Remove conditional compilation on `standalone'.
7219 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
7220 glyph_to_str_cpy): Remove that section because GLYPHs are no
7221 longer used in that way.
7222 (PRINTDECLARE): Add multibyte.
7223 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
7224 (printbufidx): Removed.
7225 (printchar, strout): Rewritten.
7226
7227 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
7228 a struct kboard.
7229 (echo_kboard): New.
7230 (echo_now): Set echo_kboard to the current kboard.
7231 (cancel_echoing): Set echo_kboard to null.
7232 (cmd_error_internal): Use clear_message, remove references
7233 to echo_area_glyphs and echo_area_message.
7234 (command_loop_1): Check for echo area messages differently.
7235 (read_char): Likewise.
7236 (record_menu_key): Use clear_message.
7237 (Fexecute_extended_command): Check for echo area messages
7238 differently. Use push_message, restore_message, pop_message.
7239
7240 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
7241 pop_message.
7242
7243 * emacs.c (shut_down_emacs): Call check_message_stack.
7244
7245 * lisp.h: Add function prototypes and extern declarations for
7246 new functions and variables.
7247
7248 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
7249 pop_message.
7250
7251 * minibuf.c (read_minibuf): Use clear_message instead of
7252 setting echo_area_glyphs.
7253 (Fminibuffer_completion_help): Ditto.
7254
7255 * editfns.c (Fcurrent_message): Rewritten.
7256
7257 * frame.c, window.h: Remove references to echo_area_glyphs
7258 and previous_echo_glyphs.
7259
72601999-08-21 Dave Love <fx@gnu.org>
7261
7262 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
7263 * aix4-1.h: Likewise.
7264
7265 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
7266
72671999-08-20 Gerd Moellmann <gerd@gnu.org>
7268
7269 * xfns.c: Remove tiff34 prefix from include.
7270
72711999-08-20 Dave Love <fx@gnu.org>
7272
7273 * cm.c: Revert previous change.
7274
72751999-08-19 Gerd Moellmann <gerd@gnu.org>
7276
7277 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
7278 under scroll bar with width FRAME_SCROLL_BAR_COLS.
7279
72801999-08-18 Dave Love <fx@gnu.org>
7281
7282 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
7283 stdlib.h.
7284
7285 * doprnt.c: Use stdlib.h, unistd.h.
7286
7287 * config.in: Add HAVE_TERMCAP_H.
7288
7289 * cm.c: Use termcap.h.
7290
72911999-08-18 Gerd Moellmann <gerd@gnu.org>
7292
7293 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
7294 FRAME_X_WINDOW (f) being null at the of the function. If widgets
7295 cannot be created we will already have crashed earlier. Call
7296 lw_set_main_areas with a null menu-bar widget, so that we have
7297 a reasonable default.
7298 (Fx_create_frame): Rearranged so that Lisp errors during frame
7299 initialization cause less damage. Initialize menu bar widget
7300 here.
7301
73021999-08-18 Gerd Moellmann <gerd@gnu.org>
7303
7304 * dispnew.c (update_frame_line): Fix previous change. If writing
7305 whole line clear to end of frame.
7306
73071999-08-17 Gerd Moellmann <gerd@gnu.org>
7308
7309 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
7310 and `right-bitmap-area' if position is in the bitmap areas. This
7311 avoids an error when clicking on the bitmap areas. Instead, they
7312 are currently treated like clicks inside the window.
7313 (coordinates_in_window): Return 5 and 6 for bitmap areas.
7314 (Qleft_bitmap_area, Qright_bitmap_area): New.
7315 (syms_of_window): Initialize new symbols.
7316
7317 * dispnew.c (update_frame_line): If writing whole line,
7318 don't write trailing spaces unless we must.
7319
7320 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
7321 (redisplay_internal): Register unwind_redisplay with
7322 register_unwind_protect.
7323 (try_window_reusing_current_matrix): If new start > old start,
7324 give up if start pos of first reusable row is not equal to new
7325 start.
7326
7327 * eval.c (Fsignal): Don't reset redisplaying_p here.
7328
7329 * xterm.c (expose_area): If row extends face to end of line,
7330 write the whole line.
7331
73321999-08-16 Gerd Moellmann <gerd@gnu.org>
7333
7334 * dispextern.h (struct it): Remove member
7335 show_trailing_whitespace_p.
7336
7337 * dispnew.c (direct_output_for_insert): Use
7338 Vshow_trailing_whitespace instead of former iterator member
7339 show_trailing_whitespace_p.
7340 (direct_output_forward_char): Don't do it if hightlighting
7341 trailing whitespace.
7342
7343 * xdisp.c (Qshow_trailing_whitespace): Removed.
7344 (Vshow_trailing_whitespace): Added.
7345 (init_iterator): Remove initialization code for
7346 show_trailing_whitespace_p.
7347 (redisplay_internal): Don't try cursor movement in this_line
7348 if showing trailing whitespace.
7349 (redisplay_window): Likewise for cursor movement in current
7350 matrix and try_window_id.
7351 (try_window_reusing_current_matrix): Likewise.
7352 (trailing_whitespace_p): Return 0 if trailing whitespace is
7353 in front of point.
7354 (display_line): Use Vshow_trailing_whitespace instead of
7355 former iterator member show_trailing_whitespace_p.
7356 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
7357
73581999-08-16 Gerd Moellmann <gerd@gnu.org>
7359
7360 * window.c (Fpos_visible_in_window_p): Rewritten.
7361
7362 * xfaces.c (add_to_log): Renamed from display_message.
7363 Don't display messages in echo area.
7364
7365 * xterm.c (x_draw_glyph_string_box): Use the background width
7366 of the glyph string for the width of the box.
7367
73681999-08-16 Stefan Monnier <monnier@cs.yale.edu>
7369
7370 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
7371
73721999-08-16 Geoff Voelker <voelker@cs.washington.edu>
7373
7374 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
7375 background first, and then set other parameters that might
7376 depend upon their new values.
7377
73781999-08-15 Gerd Moellmann <gerd@gnu.org>
7379
7380 * xfaces.c (Vfont_list_limit): New.
7381 (syms_of_xfaces): Make it a user-variable.
7382 (DEFAULT_FONT_LIST_LIMIT): New.
7383 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
7384 maximally that number of fonts, otherwise use
7385 DEFAULT_FONT_LIST_LIMIT.
7386 (Fx_font_family_list): Bind `font-list-limit' to higher values
7387 until we have all fonts.
7388 (Fxfont_list): Additionally return the full names of fonts and
7389 their registry and encoding.
7390
7391 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
7392 Simplify clearing "under" scroll bar.
7393
7394 * window.c (Qfixed_window_size): New.
7395 (syms_of_window): Initialiaze it.
7396 (check_all_windows): Add return type void.
7397 (window_fixed_size_p): New. Return non-zero if window
7398 is fixed-size.
7399 (window_min_size_1): New.
7400 (window_min_size): Handle fixed-size windows.
7401 (size_window): New. Rewritten combination of set_window_height and
7402 set_window_width that handles fixed-size windows.
7403 (set_window_height): Call it.
7404 (set_window_width): Call it.
7405 (Fsplit_window): Give an error on attempt to split a fixed-size
7406 window.
7407 (change_window_height): Partly rewritten to handle fixed-size
7408 windows.
7409
74101999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7411
7412 * process.c (Fopen_network_stream): Fix previous change.
7413
74141999-08-13 Karl Heuer <kwzh@gnu.org>
7415
7416 * xdisp.c (line_number_display_limit_width): New var.
7417 (decode_mode_spec): Use it instead of hardcoded value.
7418 (syms_of_xdisp): Defvar it.
7419
74201999-08-13 Richard M. Stallman <rms@gnu.org>
7421
7422 * eval.c (run_hook_list_with_args): Gcpro `globals'.
7423 (run_hook_with_args): Likewise.
7424
7425 * window.h (struct window): New field too_small_ok.
7426
7427 * window.c (set_window_height, set_window_width):
7428 If window starts out "too small", set its too_small_ok flag.
7429 If window's too_small_ok flag is set, don't delete it
7430 unless it is so small it would cause a crash.
7431
74321999-08-13 Gerd Moellmann <gerd@gnu.org>
7433
7434 * window.c (MINSIZE): Removed.
7435 (window_min_size): New.
7436 (set_window_height): Use window_min_size.
7437 (change_window_height): Ditto.
7438
74391999-08-12 Gerd Moellmann <gerd@gnu.org>
7440
7441 * indent.c (vmotion): Don't add in mini-buffer prompt width
7442 if prompts are inserted into mini-buffer.
7443
74441999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
7445
7446 * config.in: Add HAVE_GETADDRINFO.
7447 * process.c (Fopen_network_stream): Use getaddrinfo.
7448
74491999-08-11 Gerd Moellmann <gerd@gnu.org>
7450
7451 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
7452 glyphs to -1.
7453
7454 * xdisp.c (face_before_or_after_it_pos): If position after
7455 or before iterator's current position in the buffer is out
7456 of bounds, return the iterator's original face id.
7457
7458 * dispnew.c (mirror_make_current): If desired row isn't enabled,
7459 just swap glyphs pointers between current and desired row.
7460 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
7461 desired matrix method string to current matrix.
7462
74631999-08-11 Kenichi Handa <handa@etl.go.jp>
7464
7465 * lisp.h (CHAR_MODIFIER_MASK): New macro.
7466
7467 * lread.c (read_escape): For Control modifier, pay attention to
7468 multibyte character.
7469 (read1): Likewise. Singal error or a multibyte character which
7470 has a modifer bit. Check validity of Shift modifer.
7471
7472 * charset.c (non_ascii_char_to_string): Handle modifier bits as
7473 the same as Lisp reader.
7474
74751999-08-10 Richard M. Stallman <rms@gnu.org>
7476
7477 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
7478
74791999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
7480
7481 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
7482
74831999-08-10 Eli Zaretskii <eliz@gnu.org>
7484
7485 * msdos.c (IT_set_face): Abort if the default face is not realized
7486 and cached.
7487 (IT_write_glyphs): Reset the screen face to the default face
7488 before writing glyphs.
7489
7490 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
7491 colors from the frame here.
7492 (realize_tty_face) [MSDOS]: Do it here. Update the face
7493 attributes with the actual name of the color taken from the
7494 frame.
7495
7496 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
7497 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
7498
7499 * frame.c (Fframe_parameters): Swap foreground and background
7500 colors returned in frame parameters if the frame has reverse in
7501 its parameter alist.
7502 (Fmake_terminal_frame): Make a unique copy of face_alist for
7503 each frame.
7504
75051999-08-07 Richard Stallman <rms@gnu.org>
7506
7507 * buffer.c (Fprevious_overlay_change): Just return
7508 the answer obtained from overlays_at.
7509
7510 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
7511 Use XpmCloseness and attrs.closeness instead.
7512
75131999-08-06 Richard Stallman <rms@gnu.org>
7514
7515 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
7516
75171999-08-06 Geoff Voelker <voelker@cs.washington.edu>
7518
7519 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
7520 Ffile_attributes_lessp): New functions.
7521 (Fdirectory_files): Use directory_files_internal.
7522 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
7523 Ffile_attributes_lessp.
7524
7525 * w32.c (stat): Check for directory ending in separator when
7526 doing readdir fast path.
7527
7528 * w32fns.c (x_set_icon_type): Support setting frame icons.
7529 * w32term.c (x_bitmap_icon): New function.
7530 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
7531
75321999-08-06 Gerd Moellmann <gerd@gnu.org>
7533
7534 * xdisp.c (set_iterator_to_next): After delivering a character
7535 from a display vector, restore face and charset to what they were
7536 before the display vector was processed.
7537
75381999-08-06 Gerd Moellmann <gerd@gnu.org>
7539
7540 * xdisp.c (reseat_at_next_visible_line_start): New parameter
7541 on_newline_p.
7542 (set_iterator_to_next): After delivering last char
7543 from display vector, reseat on next visible line start if
7544 dpvec_char_len < 0.
7545 (next_element_from_buffer): Set dpvec_char_len to -1 for
7546 selective display.
7547
75481999-08-06 Gerd Moellmann <gerd@gnu.org>
7549
7550 * xdisp.c (compute_line_metrics): If first line's physical ascent
7551 is larger than its logical ascent, use the physical ascent, and
7552 make the row taller. Set row's overlapping_p flag.
7553
7554 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
7555 (direct_output_for_insert): Ditto.
7556
7557 * dispextern.h (struct glyph_row): Add overlapping_p.
7558
7559 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
7560
7561 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
7562 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
7563
7564 * dispnew.c (direct_output_for_insert): Don't use this method if
7565 row is overlapped by others.
7566 (update_text_area): Write full line if current line is overlapped.
7567 (redraw_overlapped_rows): New.
7568 (update_window): Call it.
7569 (redraw_overlapping_rows): New.
7570 (update_window): Call it.
7571 (scrolling_window): Make sure overlapped_p flag in current rows is
7572 unchanged.
7573 (row_equal_p): Take rows overlapped_p flag into account.
7574
7575 * dispextern.h (struct glyph_row): Add flag overlapped_p.
7576
7577 * xterm.c (x_fix_overlapping_area): New.
7578 (x_redisplay_interface): Add x_fix_overlapping_area.
7579
7580 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
7581
75821999-08-06 Gerd Moellmann <gerd@gnu.org>
7583
7584 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
7585 (struct glyph_string): Add member for_overlaps_p.
7586 (x_get_glyph_string_clip_rect): If glyph string draws foreground
7587 of overlapping rows, clip to window bottom.
7588 (x_fill_glyph_string): Add parameter overlaps_p.
7589 (x_fill_composite_glyph_string): Ditto.
7590 (BUILD_GLYPH_STRINGS): Ditto.
7591 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
7592 (x_draw_glyph_string): Don't draw anything but the foreground
7593 if glyph string draws row overlaps.
7594
7595 * dispnew.c (direct_output_for_insert): Don't use this
7596 optimization for rows that overlap others.
7597 (update_window_line): Return non-zero if display has changed.
7598 (update_text_area): Ditto.
7599 (update_window): Record if display has been changed.
7600
7601 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
7602
7603 * dispextern.h (struct redisplay_interface): Add
7604 fix_overlapping_area.
7605
7606 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
7607
7608 * dispextern.h (struct glyph): Add overlaps_vertically_p.
7609
7610 * xterm.c (x_produce_image_glyph): Compute iterator's physical
7611 ascent and descent.
7612 (x_produce_stretch_glyph): Ditto.
7613 (x_produce_glyphs): Ditto.
7614
7615 * xdisp.c (init_iterator): Reset physical line height info
7616 after producing special glyphs.
7617 (display_toolbar_line): Set physical line height info.
7618 (compute_line_metrics): Ditto.
7619 (display_line): Ditto.
7620 (display_string): Ditto.
7621
7622 * term.c (produce_glyphs): Set iterator's physical height
7623 information.
7624
7625 * dispnew.c (blank_row): Compute glyph row's physical height.
7626 (row_equal_p): Take physical row heights into account.
7627 (direct_output_for_insert): Ditto.
7628 (update_text_area): Ditto.
7629
7630 * dispextern.h (struct glyph_row): Add phys_ascent and
7631 phys_height.
7632 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
7633 max_phys_descent.
7634
76351999-08-04 Stefan Monnier <monnier@cs.yale.edu>
7636
7637 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
7638 Fswitch_to_buffer.
7639 (no_switch_buffer): New function.
7640 (Fswitch_to_buffer): Call them. Don't get confused
7641 by "same-window" buffers in a dedicated frame.
7642
7643 * window.c (display-buffer): Don't get confused
7644 by "same-window" buffers in a dedicated frame.
7645
76461999-08-04 Andreas Schwab <schwab@gnu.org>
7647
7648 * insdel.c (insert_from_string_1): Check gap size against number
7649 of outgoing bytes, not incoming bytes.
7650
76511999-08-03 Tom Breton <tob@world.std.com>
7652
7653 * lread.c (read1): Added circular reading code to #N=.
7654 (SUBSTITUTE): New macro.
7655 (seen_list): New variable.
7656 (substitute_object_in_subtree): New function.
7657 (substitute_object_recurse): New function.
7658 (substitute_in_interval): New function.
7659
76601999-08-02 Eli Zaretskii <eliz@gnu.org>
7661
7662 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
7663
7664 * frame.c (make_terminal_frame): Don't call init_frame_faces if
7665 noninteractive, for termcap frames as well.
7666
7667 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
7668 frames.
7669
76701999-08-01 Richard Stallman <rms@gnu.org>
7671
7672 * fns.c (internal_equal): Correct overlay comparison.
7673
83c8f461 76741999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
7675
7676 * xfns.c (x_set_internal_border_width):
7677 Call do_pending_window_change. Don't block input, don't call XFlush.
7678 (x_set_vertical_scroll_bars): Call do_pending_window_change.
7679 (x_set_scroll_bar_width, x_set_font): Likewise.
7680
7681 * frame.c (Fset_frame_height): Call do_pending_window_change.
7682 (Fset_frame_width, Fset_frame_size): Likewise.
7683
7684 * xterm.c (x_set_window_size): When calling change_frame_size,
7685 specify 1 for DELAY.
7686
7687 * widget.c (EmacsFrameSetCharSize): Don't call
7688 do_pending_window_change here.
7689
76901999-07-30 Dave Love <fx@gnu.org>
7691
7692 * config.in: Add HAVE_STDLIB_H.
7693
76941999-07-30 Richard M. Stallman <rms@gnu.org>
7695
7696 * process.c (create_process): Detect failure of `pipe'.
7697
76981999-07-30 Keisuke Nishida <kei@psn.net>
7699
7700 * alloc.c (allocate_vectorlike): Add missing increment.
7701
7702 * data.c (Fdefalias): Call Ffset instead of duplicating code.
7703
7704 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
7705 before calling indirect_function.
7706
77071999-07-30 Eli Zaretskii <eliz@gnu.org>
7708
7709 * dispextern.h (load_color, lookup_derived_face): Declare
7710 prototypes.
7711
7712 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
7713 it will be done later.
7714
7715 * frame.c (make_terminal_frame) [MSDOS]: Don't call
7716 init_frame_faces if non-interactive.
7717 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
7718 array with a call to msdos_stdcolor_name. The font name is now
7719 "ms-dos", consistent with realize_tty_face.
7720
7721 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
7722 MSDOS frame.
7723
7724 * window.c (Fset_window_configuration) [MSDOS]: Don't call
7725 x_set_toolbar_lines.
7726
7727 * xfaces.c (load_color): Remove static from definition and remove
7728 prototype.
7729 [MSDOS]: Add a DOS-specific version of load_color.
7730 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
7731 (lookup_derived_face): New function.
7732 (realize_default_face): Support MSDOS frames.
7733 [MSDOS]: If fore/background colors are unspecified, inherit them
7734 from the frame.
7735 (realize_face): Support MSDOS frames.
7736 (realize_tty_face): Support MSDOS frames.
7737 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
7738 load_color to try to find a suitable approximation. If the face
7739 is inverse-video, swap the foreground and background colors.
7740
7741 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
7742 functions.
7743
7744 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
7745
7746 * msdos.h: Remove redundant declarations (most of them are now in
7747 dispextern.h).
7748
7749 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
7750 Use default frame colors if the face doesn't specify them; invert
7751 the colors if highlight is ON.
7752 (IT_write_glyphs): Rewritten for the new redisplay engine.
7753 (IT_change_line_highlight): Add (unused) parameter Y, since that's
7754 how the hook is called by term.c.
7755 (IT_copy_glyphs): New function, copies an area of the display in
7756 video RAM.
7757 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
7758 redisplay now calls it even if char_ins_del_ok is zero.
7759 (IT_set_frame_parameters): Prototype changed. Calls the new
7760 load_color. Puts the new fore/background colors into the default
7761 face on current frame.
7762 (IT_menu_display): Rewritten to handle the new struct glyph
7763 instead of a char array.
7764 (XMenuActivate): Call lookup_derived_face to create and use
7765 special faces for the pop-up and drop-down menus.
7766
77671999-07-29 Gerd Moellmann <gerd@gnu.org>
7768
7769 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
7770 XawScrollbarSetThumb if thumb parameters haven't changed because
7771 that function apparently isn't optimized for this case.
7772
77731999-07-29 Eli Zaretskii <eliz@gnu.org>
7774
7775 * msdos.c (getdefdir): Don't return failure indication when
7776 _fixpath sets errno to ENOSYS.
7777
77781999-07-28 Gerd Moellmann <gerd@gnu.org>
7779
7780 * xdisp.c (string_char_and_length): New. Use it everywhere
7781 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
7782
77831999-07-28 Kenichi Handa <handa@etl.go.jp>
7784
7785 * fns.c (count_combining): New function.
7786 (struct textprop_rec): New structure.
7787 (concat): Copy text properties correctly when byte combining
7788 occurs.
7789
77901999-07-28 Gerd Moellmann <gerd@gnu.org>
7791
7792 * xterm.c (x_setup_relief_color): Don't try smart color allocation
7793 if display is mono.
7794 (x_draw_row_bitmaps): If face has stipple, don't switch
7795 to foreground color for clearing areas, and set the fill style.
7796
7797 * xfaces.c (load_face_colors): Load background color if setting
7798 stipple, too.
7799 (prepare_face_for_display): Use FillOpaqueStippled instead of
7800 FillStippled.
7801
78021999-07-26 Ken'ichi Handa <handa@gnu.org>
7803
7804 * xterm.c (x_find_ccl_program): Add casting.
7805
7806 * w32fns.c (w32_find_ccl_program): Add casting.
7807
78081999-07-27 Gerd Moellmann <gerd@gnu.org>
7809
7810 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
7811
7812 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
7813 because this will try to access a nonexisting widget.
7814
78151999-07-26 Markus Rost <rost@gnu.org>
7816
7817 * fns.c (Fgethash): Fix order of variables (patch by gerd).
7818 (Fputhash): Ditto.
7819 (Fremhash): Ditto.
7820
78211999-07-26 Gerd Moellmann <gerd@gnu.org>
7822
7823 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
7824 value to frame width and height.
7825
7826 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
7827 into account for full-width windows. Don't add scroll bar width
7828 to width of clip rect.
7829 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
7830 (x_set_glyph_string_background_width): Add 1 to background width.
7831 (x_draw_glyphs): Take internal border into account for full-width
7832 lines.
7833
78341999-07-26 Richard M. Stallman <rms@gnu.org>
7835
7836 * xfns.c (x_set_mouse_color): Always unload the old color.
7837 Don't allow nil as color value.
7838 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
7839 Always unload the old color.
7840
7841 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
7842
78431999-07-26 Karl Heuer <kwzh@gnu.org>
7844
7845 * fns.c (Fy_or_n_p): Doc fix.
7846
78471999-07-26 Kenichi Handa <handa@etl.go.jp>
7848
7849 * ccl.h (setup_ccl_program): The type is changed to `int'.
7850
7851 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
7852 stored in the following CCL code. Adjusted for the change of
7853 Vccl_program_table.
7854 (resolve_symbol_ccl_program): Adjusted for the new style of
7855 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
7856 is resolving failed.
7857 (ccl_get_compiled_code): New function.
7858 (setup_ccl_program): Function type changed from `void' to `int'.
7859 Resolve symbols in CCL_PROG.
7860 (Fccl_program_p): New function.
7861 (Fccl_execute): Get compiled CCL code by just calling
7862 setup_ccl_program.
7863 (Fccl_execute_on_string): Likewise.
7864 (Fregister_ccl_program): Adjusted for the change of
7865 Vccl_program_table.
7866
7867 * coding.c (setup_coding_system): Get compiled CCL code by just
7868 calling setup_ccl_program.
7869
7870 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
7871 calling setup_ccl_program.
7872
7873 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
7874 calling setup_ccl_program.
7875
78761999-07-23 Gerd Moellmann <gerd@gnu.org>
7877
7878 * xfaces.c (frame_update_line_height): Just use the height of the
7879 frame's fontset or font, instead of taking face fonts into
7880 account.
7881
7882 * xdisp.c (get_next_display_element): Display DEL as `^?'.
7883
78841999-07-23 Richard M. Stallman <rms@gnu.org>
7885
7886 * window.c (Fsplit_window): For default size, round up for left window.
7887
78881999-07-21 Joe Ramey <ramey@ti.com>
7889
7890 * filelock.c (lock_if_free): Return -1 if check_lock_owner
7891 has returned -1 (lockfile exists but is not a symlink?).
7892
78931999-07-20 Gerd Moellmann <gerd@gnu.org>
7894
7895 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
7896 because of a change in cursor_gc made in 20.4.
7897
78981999-07-19 Gerd Moellmann <gerd@gnu.org>
7899
7900 * xterm.c (x_calc_absolute_position): Subtract menu bar height
7901 for YNegative, if using X toolkit.
7902
7903 * xfns.c (x_real_positions): Don't subtract window borders
7904 from positions returned.
7905
79061999-07-17 Gerd Moellmann <gerd@gnu.org>
7907
7908 * xrdb.c (x_load_resources): Set double-click time defaults
7909 for Motif list boxes from double-click-time.
7910
7911 * fns.c (Vhash_table_tests): Remvoed.
7912 (Qhash_table_test): New.
7913 (syms_of_fns): Initialize Qhash_table_test.
7914 (Fmake_hash_table): Look up user-defined tests in symbol prop
7915 `hash-table-test'.
7916 (Fdefine_hash_table_test): Store test and hash function as
7917 symbol prop `hash-table-test'.
7918 (make_hash_table): Add parameters user_test and user_hash.
7919
7920 * window.c (set_window_buffer): Set window margins for tty
7921 frames, too.
7922 (Fset_window_margins): Ditto.
7923
7924 * term.c (append_glyph): Use glyph area of iterator instead of
7925 always TEXT_AREA.
7926
7927 * dispnew.c (update_frame_1): Add left margin width to cursor
7928 hpos.
7929 (direct_output_for_insert): Ditto.
7930 (direct_output_forward_char): Ditto.
7931
7932 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
7933
7934 * dispextern.h (struct glyph_matrix): Add top_line_p.
7935
79361999-07-16 Gerd Moellmann <gerd@gnu.org>
7937
7938 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
7939 instead.
7940
7941 * fns.c (cmpfn_eq): Add hash code parameters.
7942 (cmpfn_eql): Ditto.
7943 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
7944 (cmpfn_user_defined): Likewise.
7945
79461999-07-15 Gerd Moellmann <gerd@gnu.org>
7947
7948 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
7949
7950 * fns.c (maybe_resize_hash_table): Correct computation of
7951 index vector size.
7952 (make_hash_table): Ditto.
7953 (Fmakehash): New.
7954
7955 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
7956
7957 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
7958 (survives_gc_p): Make it externally visible.
7959 (mark_object): Ditto.
7960
7961 * fns.c (remove_hash_entry): Removed.
7962 (sweep_weak_hash_tables): New.
7963
7964 * print.c (print): Print more information about hash tables.
7965
7966 * xfns.c (image_spec_hash): Removed.
7967 (lookup_image): Use sxhash instead of image_spec_hash.
7968 (image_spec_equal_p): Removed.
7969 (lookup_image): Use Fequal instead of image_spec_equal_p.
7970
79711999-07-14 Gerd Moellmann <gerd@gnu.org>
7972
7973 * lisp.h (P_): Moved to top of file.
7974
7975 * fns.c (make_hash_table): Set new members.
7976
7977 * alloc.c (mark_object): Mark hash table's user_hash_function.
7978 Mark index vector for weak hash tables.
7979
7980 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
7981 user_hash_function, cmpfn, and hashfn.
7982
7983 * fns.c (build_hash): Removed.
7984 (hash_test): Removed.
7985 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
7986 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
7987
79881999-07-13 Gerd Moellmann <gerd@gnu.org>
7989
7990 * alloc.c (survives_gc_p): New.
7991
7992 * print.c (print): Add hash table handling.
7993
7994 * alloc.c (mark_object): Add code to mark hash tables.
7995
7996 * lisp.h (GC_HASH_TABLE_P): New.
7997
7998 * emacs.c (main): Call init_fns.
7999
8000 * fns.c (init_fns): New.
8001
8002 * fns.c: Add hash table implementation.
8003
8004 * lisp.h (PVEC_HASH_TABLE): New.
8005 (struct Lisp_Hash_Table): New.
8006 (XHASH_TABLE): New.
8007 (XSET_HASH_TABLE): New.
8008 (HASH_TABLE_P): New.
8009 (CHECK_HASH_TABLE): New.
8010 (DEFAULT_HASH_SIZE): New.
8011 (DEFAULT_REHASH_THRESHOLD): New.
8012 (DEFAULT_REHASH_SIZE): New.
8013
8014 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
8015 (x_write_glyphs): Compute overwritten cursor using real start
8016 and end positions of display.
8017 (x_insert_glyphs): Ditto.
8018
80191999-07-10 Gerd Moellmann <gerd@gnu.org>
8020
8021 * keyboard.c (read_char): Use message3_nolog to show help-echo.
8022
8023 * dispnew.c (blank_row): Add y-position as parameter. Compute
8024 visible height.
8025
8026 * xdisp.c (next_element_from_string): Give padding spaces
8027 a position of -1.
8028
8029 * dispnew.c (adjust_glyph_matrix): Some work to support
8030 marginals areas on tty frames in a future version.
8031 (allocate_matrices_for_frame_redisplay): Ditto.
8032
8033 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
8034 to zero if number of glyphs in the row is <= 1.
8035
80361999-07-09 Gerd Moellmann <gerd@gnu.org>
8037
8038 * dispnew.c (buffer_posn_from_coords): Take left marginal area
8039 into account.
8040
8041 * xdisp.c (handle_display_prop): Don't reset area if handing
8042 a property from a string that came from a `display' property.
8043 (handle_single_display_prop): Don't handle recursive `display'
8044 properties.
8045 (handle_single_display_prop): Handle some display property
8046 forms for terminal frames.
8047 (Qimage): Moved here from xfns.c.
8048
8049 * dispextern.h (struct it): New field string_from_display_prop_p.
8050
8051 * xterm.c (x_clip_to_row): Don't let clip_rect include top
8052 line.
8053
80541999-07-08 Gerd Moellmann <gerd@gnu.org>
8055
8056 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
8057
8058 * window.c (set_window_buffer): Set window's vscroll to zero.
8059
8060 * xdisp.c (QCwhen): New.
8061 (display_prop_end): New.
8062 (handle_single_display_prop): Use it.
8063 (debug_method_add): Print buffer name if tracing.
8064 (try_window_reusing_current_matrix): Compute visible height
8065 of reused rows. Fix cursor position calculation in case of
8066 top-line.
8067
8068 * dispextern.h (struct redisplay_interface): Add parameter
8069 cursor_on_p to update_window_end_hook.
8070
8071 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
8072
80731999-07-07 Gerd Moellmann <gerd@gnu.org>
8074
8075 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
8076 doesn't become negative when decrementing it.
8077
8078 * eval.c (Fsignal): Reset redisplaying_p to zero.
8079
8080 * xdisp.c (try_window_reusing_current_matrix): Call hooks
8081 for window update.
8082 (try_window_id): Ditto.
8083
8084 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
8085 (x_scroll_run): Ditto.
8086 (any_help_event_p): New.
8087 (x_initialize): Set it to zero.
8088 (XTread_socket): Clear help echo only if any_help_event_p.
8089
8090 * xdisp.c (init_iterator): Set top_line_p.
8091 (start_display): Use correct initial y if top-line is present.
8092 (make_cursor_line_fully_visible): Bug fixes for top-line.
8093 (try_scrolling): Ditto.
8094 (try_window_reusing_current_matrix): Ditto.
8095
8096 * dispextern.h (struct it): Add top_line_p.
8097
8098 * dispnew.c (shift_glyph_matrix): Move some computations out
8099 of the loop.
8100
8101 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
8102 XFLOATINT.
8103
81041999-07-06 Gerd Moellmann <gerd@gnu.org>
8105
8106 * dispnew.c (update_frame_1): When setting cursor in echo area,
8107 skip only over padding spaces at the end.
8108
8109 * xfaces.c (realize_tty_face): Set face's font_name field to
8110 "tty".
8111
8112 * term.c (update_end): Turn cursor on only if selected window's
8113 cursor_off_p flag is not set.
8114
81151999-07-05 Gerd Moellmann <gerd@gnu.org>
8116
8117 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
8118 (TS_cursor_normal): Renamed from TS_end_visual_mode.
8119 (TS_cursor_invisible): New.
8120 (term_init): Initialize TS_cursor_invisible.
8121 (tty_hide_cursor): New.
8122 (tty_show_cursor): New.
8123 (update_end): Show tty cursor.
8124 (update_begin): Hide tty cursor to prevent cursor flickering
8125 during redisplays triggered by timers (stealth fontification).
8126
8127 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
8128
8129 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
8130 in scroll bars.
8131 (x_handle_toolbar_click): Set modifier bits.
8132
81331999-07-04 Gerd Moellmann <gerd@gnu.org>
8134
8135 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
8136 instead of a pointer to a volatile input_event.
8137 (kbd_buffer_store_event): Remove volatile modifier from
8138 declaration of local variable `sp'.
8139 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
8140 to kbd_fetch_ptr.
8141
81421999-07-03 Gerd Moellmann <gerd@gnu.org>
8143
8144 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
8145 only if buffer is modified. Return quickly if changes are
8146 above window start.
8147
81481999-07-02 Gerd Moellmann <gerd@gnu.org>
8149
8150 * dispextern.h (HSCROLL_WINDOWS): Removed.
8151
8152 * xdisp.c (mark_window_display_accurate): Don't set
8153 w->region_showing.
8154 (redisplay_internal): Don't call redraw_garbaged_frames.
8155
81561999-07-01 Gerd Moellmann <gerd@gnu.org>
8157
8158 * xdisp.c (echo_area_display): Don't display truncation marks
8159 for messages because 20.4 doesn't do it either.
8160 (redisplay_window): Case same window start. Instead of giving
8161 up when cursor is partially visible, make it fully visible.
8162 (mark_window_display_accurate): Some cleanup. Record window's
8163 last cursor information.
8164 (debug_method_add): Improved.
8165 (redisplay_internal): Record last cursor info only if not
8166 consider_all_windows_p.
8167
8168 * dispnew.c (update_window): Update top line after scrolling.
8169 (blank_row): Renamed from make_empty_enabled_row.
8170 (increment_glyph_row_buffer_positions): Increment positions
8171 in buffers, only.
8172
8173 * window.c (Fcoordinates_in_window_p): Add top-line to doc
8174 string.
8175
81761999-06-30 Gerd Moellmann <gerd@gnu.org>
8177
8178 * dispnew.c (update_window): Check that updated row is visible.
8179
8180 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
8181 top of window differently.
8182
8183 * xdisp.c (try_window_reusing_current_matrix): Don't do it
8184 if region is showing.
8185
8186 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
8187 avoiding matrix reallocation. Set window_vscroll in matrix.
8188
8189 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
8190
26901792
DL
8191 * xdisp.c (debug_method_add): New.
8192 (debug_redisplay_method): Removed.
8193 (try_window_reusing_current_matrix): Handle case where old
8194 window start is the same as new window start.
8195
8196 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
8197 an array instead of a pointer.
8198
26901792
DL
8199 * xfns.c (Fx_show_tip): Undo previous change.
8200
8201 * xterm.c (x_append_glyph): Clear glyph->u.val.
8202
8203 * dispextern.h (struct glyph): Increase size of face_id bit-field
8204 for CHAR_GLYPH to 12.
8205
82061999-06-29 Gerd Moellmann <gerd@gnu.org>
8207
8208 * xfaces.c (x_charset_registry): Make it externally visible.
8209
82101999-06-28 Gerd Moellmann <gerd@gnu.org>
8211
8212 * dispnew.c (update_window): Use mode_line_p flag of rows
8213 instead of WINDOW_WANTS_MODELINE_P.
8214
8215 * xterm.c (clear_mouse_face): Make externally visible.
8216
8217 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
8218
8219 * xterm.c (expose_line): Handle exposure of top-lines.
8220
8221 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
8222 if mouse_face_mouse_frame is null.
8223
8224 * xdisp.c (redisplay_window): If window is echo_area_window,
8225 and update_mode_line is set, update menubar and toolbar.
8226
8227 * dispnew.c (space_glyph): Set its charpos to -1.
8228 (update_frame_1): Ignore trailing padding spaces.
8229
8230 * xdisp.c (next_element_from_c_string): Set position of padding
8231 glyphs to -1.
8232
82331999-06-27 Gerd Moellmann <gerd@gnu.org>
8234
8235 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
8236 XQueryColor.
8237
8238 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
8239 (set_cursor_from_row): Skip over glyphs having a null object at
8240 the start of rows.
8241 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
8242 glyphs.
8243 (handle_invisible_prop): Compute next change only when needed.
8244 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
8245 line.
8246
82471999-06-26 Gerd Moellmann <gerd@gnu.org>
8248
8249 * xrdb.c (x_load_resources): Don't set resource for double-click
8250 time.
8251
8252 * xdisp.c (try_window_id): Return quickly if all changes are
8253 below the window's current matrix end.
8254
8255 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
8256 parameter.
8257
8258 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
8259 in desired not in current matrix.
8260 (try_window_reusing_current_matrix): Rotate matrices starting
8261 at start_vpos instead of 0.
8262
8263 * xterm.c (expose_window): Use window_text_bottom_y.
8264 (fast_find_position): Ditto.
8265
8266 * xdisp.c (redisplay_window): Use window_text_bottom_y.
8267 (try_window_reusing_current_matrix): Ditto.
8268 (get_last_unchanged_at_beg_row): Ditto.
8269 (init_iterator): Ditto.
8270
8271 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
8272 more row.
8273 (check_matrix_invariants): Use window_text_bottom_y.
8274 (update_window): Ditto.
8275 (scrolling_window): Ditto.
8276
8277 * xdisp.c (window_text_bottom_y): New.
8278
82791999-06-25 Gerd Moellmann <gerd@gnu.org>
8280
8281 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
8282 clearing mouse face.
8283 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
8284 event.xcrossing.focus is not set, and focus is in the menu bar,
8285 set focus frame as if event.xcrossing.focus were set.
8286
82871999-06-24 Gerd Moellmann <gerd@gnu.org>
8288
8289 * keyboard.c (make_lispy_event): Handle mouse on top lines.
8290 * keyboard.c (make_lispy_movement): Ditto.
8291
8292 * window.c (coordinates_in_window): Return 4 if on top line.
8293 (Fcoordinates_in_window_p): Return `top-line' if on top line.
8294
8295 * xdisp.c (window_box_height): Subtract top line height.
8296 (window_box): Add top line height to top y position if top line
8297 exists.
8298 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
8299 the top line row of the window. Set initial y-position to
8300 window's top line height plus delta.
8301 (start_display): Choose start glyph row depending on whether
8302 window has a top line.
8303 (try_scrolling): Take top line height into account for aggressive
8304 scrolling.
8305 (compute_window_start_on_continuation_line): Take top line into
8306 account.
8307 (redisplay_window): Ditto. If top line height has changed,
8308 trigger a new redisplay.
8309 (try_window_reusing_current_matrix): Take top line into account.
8310 (find_last_row_displaying_text): Ditto.
8311 (get_last_unchanged_at_beg_row): DItto.
8312 (try_window_id): Ditto.
8313 (compute_line_metrics): Ditto.
8314
8315 * dispnew.c (shift_glyph_matrix): Compute visible row height
8316 taking top line of window into account.
8317 (update_window): Update top line. If scrolling_window detects
8318 that all rows are equal, only set cursor.
8319 (update_window_line): Call after_update_window_line_hook if
8320 mode_line_p flag of rows has changed.
8321 (scrolling_window): Add parameter top_line_p. Return -1 if
8322 all rows are equal.
8323 (mode_line_string): Add parameter mode_line_p. Handle strings
8324 in top lines.
8325
8326 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
8327 (MATRIX_FIRST_TEXT_ROW): New.
8328 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
8329 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
8330 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
8331 (MATRIX_TOP_LINE_HEIGHT): New.
8332 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
8333 (CURRENT_TOP_LINE_HEIGHT): New.
8334 (DESIRED_TOP_LINE_HEIGHT): New.
8335 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
8336 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
8337 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
8338 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
8339
8340 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
8341 lines.
8342 (x_draw_row_bitmaps): Take top line into account when clearing
8343 bitmap area.
8344 (x_estimate_mode_line_height): Replacement for
8345 x_frame_mode_line_height.
8346 (x_get_glyph_string_clip_rect): Take top line into account.
8347 (x_clear_end_of_line): Ditto.
8348 (note_mode_line_highlight): Add parameter mode_line_p. Handle
8349 top lines.
8350 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
8351 (x_erase_phys_cursor): Take top line into account.
8352
8353 * xdisp.c (window_box_height): Subtract top line height if
8354 window wants a top line.
8355 (display_mode_lines): New.
8356 (redisplay_window): Call it.
8357 (display_mode_line): Add parameters face_id and format.
8358
8359 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
8360 (MATRIX_TOP_LINE_HEIGHT): New.
8361
8362 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
8363
8364 * term.c (estimate_mode_line_height): Renamed from
8365 frame_mode_line_height. Add parameter face_id.
8366 (estimate_mode_line_height_hook): Renamed from
8367 frame_mode_line_height_hook.
8368 (produce_special_glyphs_hook): Removed.
8369 (produce_glyphs_hook): Removed.
8370
83711999-06-23 Gerd Moellmann <gerd@gnu.org>
8372
8373 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
8374 (struct glyph_row): Add mode_line_p.
8375
8376 * xfaces.c (realize_basic_faces): Realize face `top-line'.
8377 (Qtop_line): New.
8378 (syms_of_xfaces): Initialize Qtop_line.
8379
8380 * dispextern.h (TOP_LINE_FACE_ID): New.
8381
8382 * buffer.c (init_buffer_once): Set default for
8383 top_line_format to nil.
8384 (init_buffer_once): Init top_line_format.
8385 (default-top-line-format): New.
8386 (top-line-format): New buffer-local variable.
8387
8388 * buffer.h: Add top_line_format.
8389
8390 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
8391
83921999-06-17 Dave Love <fx@gnu.org>
8393
8394 * xfns.c: Move the PNG section before the JPEG one to avoid
8395 problems surrounding setjmp.h/png.h on GNU/Linux.
8396
83971999-06-17 Gerd Moellmann <gerd@gnu.org>
8398
8399 * xfns.c (x_kill_gs_process): Don't free colors.
8400
84011999-06-17 Dave Love <fx@gnu.org>
8402
8403 * s/gnu-linux.h: Zap spurious ~.
8404
84051999-06-16 Gerd Moellmann <gerd@gnu.org>
8406
8407 * xfns.c (gif_load): Improve multi-image support.
8408
84091999-06-15 Gerd Moellmann <gerd@gnu.org>
8410
8411 * xfns.c (gif_load): Support multi-image files.
8412
8413 * Makefile.in (LIBGIF): Use libungif.
8414
8415 * configure.in (HAVE_GIF): Use libungif instead of libgif
8416 because the former doesn't contain patented compression code.
8417
8418 * xdisp.c (compute_window_start_on_continuation_line): Don't
8419 do it if line start is too far away from window start.
8420
84211999-06-14 Gerd Moellmann <gerd@gnu.org>
8422
8423 * buffer.c (init_buffer_once): Set buffer_local_flags for
8424 scroll_*_aggressively.
8425 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
8426 (init_buffer_once): Set defaults for these variables.
8427 (syms_of_buffer): Add default-scroll-*-aggressively.
8428
8429 * buffer.h (scroll_up_aggressively): New.
8430 (scroll_down_aggressively): New.
8431
8432 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
8433 a static PNG library.
8434
8435 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
8436 in case it's a static library.
8437
8438 * Makefile.in (ctagsfiles): Split so that files starting
8439 with an `x' are found before files starting with `w32'.
8440 (ctagsfiles1): New.
8441 (ctagsfiles2): New.
8442 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
8443
8444 * xdisp.c (compute_window_start_on_continuation_line): New.
8445 (redisplay_window): Use it.
8446 (INFINITY): New.
8447 (reseat_to_string): Use it.
8448 (hscroll_window_tree): Ditto.
8449 (compute_window_start_on_continuation_line): Ditto.
8450 (redisplay_window): Don't force display with a new window start.
8451
84521999-06-06 Gerd Moellmann <gerd@gnu.org>
8453
8454 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
8455 if widget not present.
8456
8457 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
8458
84591999-06-04 Gerd Moellmann <gerd@gnu.org>
8460
8461 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
8462 value of realize_basic_faces.
8463 (load_face_font_or_fontset): Store full font name in face.
8464 (realize_default_face): Use full font name.
8465
26901792
DL
8466 * xterm.c (x_produce_glyphs): Set member char_to_display.
8467 (x_append_glyph): Store char_to_display in glyphs.
8468
8469 * dispextern.h (struct it): Add char_to_display.
8470
8471 * xfns.c (x_set_font): Don't call face-set-after-frame-default
8472 if faces haven't been initialized.
8473 (Fx_create_frame): Call face-set-after-frame-default after
8474 faces have been initialized, and widget has been created.
8475
8476 * puresize.h (BASE_PURESIZE): Increased.
8477
84781999-06-01 Gerd Moellmann <gerd@gnu.org>
8479
8480 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
8481 (Finternal_set_lisp_face_attribute): If frame is t when
8482 :font attribute is set, use the selected frame.
8483 (clear_face_cache): Add parameter clear_fonts_p.
8484 (Fclear_face_cache): Add optional parameter thorougly.
8485
8486 * xfaces.c (face_numeric_value): Return -1 if symbol is not
8487 in table.
8488 (Fclear_face_cache): New.
8489 (choose_face_fontset_font): If fontset doesn't contain font
8490 pattern for the given charset, use CHARSET_ASCII.
8491 (Finternal_set_lisp_face_attribute): Fix handling of nil
8492 stipple attribute.
8493 (Finternal_set_lisp_face_attribute): Fix handling of changing
8494 font-related face attributes of the default face.
8495 (set_lface_from_font_name): Set only attributes that aren't
8496 specified.
8497
84981999-05-31 Gerd Moellmann <gerd@gnu.org>
8499
8500 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
8501 font support.
8502 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
8503 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
8504 scalable fonts depending on the setting of SCALABLE_FONTS.
8505 (first_font_matching): List more than one font to find the
8506 first non-scalable matching font.
8507 (sorted_font_list): Let x_face_list_fonts return scalable fonts
8508 depending on SCALABLE_FONTS.
8509 (better_font_p): New parameter compare_pt_p. If zero, don't
8510 compare point sizes of fonts.
8511 (exact_face_match_p) [SCALABLE_FONTS]: New.
8512 (build_scalable_font_name) [SCALABLE_FONTS]: New.
8513 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
8514 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
8515 (syms_of_xfaces): Add scalable-fonts-allowed.
8516
85171999-05-26 Gerd Moellmann <gerd@gnu.org>
8518
8519 * xfns.c (png_load): Let PNG lib handle gamma. Construct
8520 mask only if image contains simple transparency information.
8521 Otherwise, combine image with frame background color.
8522
8523 * configure.in (--with-png, HAVE_PNG): New.
8524
8525 * config.in (HAVE_PNG): New.
8526
8527 * Makefile.in: Add PNG library.
8528
8529 * xfns.c: Add PNG support.
8530
85311999-05-25 Gerd Moellmann <gerd@gnu.org>
8532
8533 * xdisp.c (init_xdisp): Initialize echo_area_message and
8534 previous_echo_area_message to nil.
8535
8536 * keyboard.c (read_char): Rename local variable echo_area_message
8537 because it shadows the global one.
8538
85391999-05-05 Gerd Moellmann <gerd@gnu.org>
8540
8541 * xterm.c (note_mode_line_highlight): Restructured.
8542
8543 * window.c (coordinates_in_window): Handle windows that don't have
8544 a mode line because their buffer's mode-line-format is nil.
8545 Recognize the mode line under x positions that correspond to
8546 flags areas and left scroll bar.
8547
85481999-05-02 Dave Love <fx@gnu.org>
8549
8550 * xterm.c (note_mouse_highlight): Separate help-echo processing
8551 from check on mouse-face so that it works generally.
8552
85531999-04-21 Gerd Moellmann <gerd@gnu.org>
8554
8555 * sound.c (Fplay_sound): Run hook play-sound-hook.
8556 (Qplay_sound_hook): New.
8557
85581999-04-20 Gerd Moellmann <gerd@gnu.org>
8559
8560 * xdisp.c (update_echo_area): Handle echo_area_message.
8561
85621999-04-19 Gerd Moellmann <gerd@gnu.org>
8563
8564 * editfns.c (Fmessage): Use message3.
8565
8566 * print.c (printchar): Set echo_area_message to nil.
8567 (strout): Ditto.
8568
8569 * minibuf.c (read_minibuf): Reset echo message strings to nil.
8570 (Fminibuffer_completion_help): Ditto.
8571
8572 * keyboard.c (cmd_error_internal): Set echo_areA_message.
8573 (command_loop_1): Test echo_areA_message.
8574 (read_char): Ditto.
8575 (record_menu_key): Set echo_area_message to nil.
8576 (Fexecute_extended_command): Test echo_area_message.
8577 (Fexecute_extended_command): Handle echo_area_message.
8578
8579 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
8580 is set.
8581
8582 * editfns.c (Fcurrent_message): If echo_area_message is set,
8583 return a substring of that string.
8584
8585 * dispnew.c (direct_output_for_insert): Test echo_area_message
8586 in addition to echo_area_glyphs.
8587 (set_window_cursor_after_update): Ditto.
8588 (update_frame_1): Ditto.
8589
8590 * alloc.c (Fgarbage_collect): Use message3_nolog to display
8591 old Lisp message string.
8592
8593 * xdisp.c (echo_area_message): New.
8594 (previous_echo_area_message): New.
8595 (syms_of_xdisp): Initialize and staticpro new variables.
8596 (echo_area_display): Display echo_area_message if set.
8597 (message2_nolog): Set echo_area_message and
8598 previous_echo_area_message.
8599 (echo_area_display): Set previous_echo_area_message.
8600 (redisplay_internal): Display echo area if echo_area_message
8601 or previous_echo_area_message are set.
8602 (redisplay_preserve_echo_area): Test/set echo_area_message and
8603 previous_echo_area_message.
8604 (redisplay_window): Test echo_area_message.
8605 (message3_nolog): New.
8606 (message3): New.
8607
8608 * editfns.c (Fformat): Add text properties to the result string
8609 from properties of the format string and properties of string
8610 arguments.
8611
8612 * textprop.c (text_property_list): New.
8613 (add_text_properties_from_list): New.
8614 (extend_property_ranges): New.
8615
86161999-03-29 Gerd Moellmann <gerd@gnu.org>
8617
8618 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
8619 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
8620 Use these symbols for the box face attribute instead of the
8621 removed ones.
8622
86231999-03-12 Gerd Moellmann <gerd@gnu.org>
8624
8625 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
8626 Correct wrong test for slant.
8627
86281999-03-10 Gerd Moellmann <gerd@gnu.org>
8629
8630 * xfaces.c: Use `unspecified' for unspecified face attributes,
8631 use t and nil for on/off.
8632
86331999-03-06 Gerd Moellmann <gerd@gnu.org>
8634
8635 * buffer.c (syms_of_buffer): Extend doc string of
8636 mode-line-format.
8637
8638 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
8639 (first_font_matching): New.
8640 (set_lface_from_font_name): Use it if font name is a pattern.
8641 (font_field_wildcard_p): Removed.
8642
8643 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
8644 Recompute visible height of rows.
8645
8646 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
8647 Don't accept non-strings for help-echo from overlays.
8648
86491999-03-04 Dave Love <fx@gnu.org>
8650
8651 * xterm.c (note_mouse_highlight): Check overlays for help-text
8652 property.
8653 (XTread_socket): Fix compiler warning.
8654
86551999-03-05 Gerd Moellmann <gerd@gnu.org>
8656
8657 * xterm.c (note_mouse_highlight): Don't restrict number of
8658 overlay to 10. Call overlays_at so that it doesn't try to
8659 extend the vector.
8660
8661 * xdisp.c (compute_line_metrics): Compute glyph row's visible
8662 height.
8663
8664 * dispnew.c (row_equal_p): Compare visible row height, only.
8665 (update_text_area): Draw whole line if visible heights of
8666 rows differ.
8667 (update_window_line): Call after_update_window_line_hook
8668 if visible row height has changed.
8669
8670 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
8671 (struct glyph_row): New member visible_height.
8672
8673 * xfaces.c (font_field_wildcard_p): New.
8674 (set_lface_from_font_name): Remove parameter force_p. Accept
8675 font names containing wildcards.
8676
86771999-03-04 Gerd Moellmann <gerd@gnu.org>
8678
8679 * xterm.c (x_after_update_window_line): Clear internal border
8680 when windows_or_buffers_changed.
8681
8682 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
8683 buffer has a nil mode_line_format.
8684
86851999-03-03 Gerd Moellmann <gerd@gnu.org>
8686
8687 * xterm.c (x_setup_relief_colors): Use either background color
8688 or specified color.
8689
8690 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
8691
8692 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
8693
8694 * xterm.c (x_draw_box_rect): New.
8695 (x_draw_glyph_string_box): Renamed from
8696 x_draw_glyph_string_relief. Call x_draw_box_rect.
8697
8698 * xfns.c (QCrelief): New.
8699 (syms_of_xfns): Initialize it.
8700
8701 * dispextern.h (struct glyph): Rename left_shadow_p to
8702 left_box_line_p, right_shadow_p to right_box_line_p.
8703 (MAX_RELIEF_THICKNESS): Removed.
8704 (struct it): Rename members having `relief' in their names
8705 to contain `box' instead.
8706
8707 * xfaces.c (realize_x_face): Handle new box attribute values.
8708 (QCrelief, Qbox): Removed.
8709 (QCshadow, QCcolor, Qraised, Qsunken): New.
8710 (syms_of_xfaces): Initialize new symbols.
8711
87121999-03-02 Gerd Moellmann <gerd@gnu.org>
8713
8714 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
8715
8716 * xfaces.c (LFACE_RELIEF): Removed.
8717 (merge_face_vector_with_property): Remove handling of `:relief'.
8718 (Finternal_set_lisp_face_attribute): Ditto.
8719 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8720 (Finternal_get_lisp_face_attribute): Ditto.
8721 (realize_default_face): Ditto.
8722 (lface_hash): Don't compute hash from relief.
8723
8724 * dispextern.h (struct face): Replace member `relief' by
8725 `box_line_width'. Add member `box'.
8726 (face_box_type): New.
8727
8728 * xterm.c (x_produce_glyphs): If face has overline, add overline
8729 thickness + 1 to ascent.
8730
87311999-03-01 Gerd Moellmann <gerd@gnu.org>
8732
8733 * xterm.c (x_draw_glyph_string): Draw underline, overline,
8734 strike-through, and boxes.
8735 (x_draw_glyph_string_underline): Removed.
8736
8737 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
8738 (Qoverline, Qstrike_through, Qbox): New.
8739 (syms_of_xfaces): Define these symbols.
8740 (check_lface_attrs): Add checks for overline, strike-through,
8741 and box.
8742 (Finternal_set_lisp_face_attribute): Set new attributes.
8743 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
8744 (load_color): Handle new attributes.
8745 (realize_x_face): Ditto.
8746 (merge_face_vector_with_property): Ditto.
8747 (free_face_colors): Ditto.
8748 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
8749 (Finternal_get_lisp_face_attribute): Ditto.
8750 (Finternal_lisp_face_attribute_values): Ditto.
8751
8752 * dispextern.h (lface_attribute_index): Add enumerators for
8753 overstrike, strike-through, and box.
8754 (struct face): Add members for overline, strike-through, and
8755 box.
8756
87571999-02-17 Dave Love <fx@gnu.org>
8758
8759 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
8760 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
8761 files.
8762
87631999-02-16 Gerd Moellmann <gerd@gnu.org>
8764
8765 * keyboard.c (toolbar_items): Call access_keymap with third
8766 parameter 1, so that we don't get inherited toolbar item
8767 definitions.
8768
8769 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
8770 the window end vpos when in empty first line of window.
8771
87721999-02-15 Gerd Moellmann <gerd@gnu.org>
8773
8774 * xfaces.c (set_font_frame_param): New.
8775 (Finternal_set_lisp_face_attribute): Call it.
8776
8777Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8778
8779 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
8780 Accept specifications of color for underline.
8781
87821999-02-13 Gerd Moellmann <gerd@gnu.org>
8783
8784 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
8785 `frame' is t, operate on face defaults for new frames. If it
8786 is nil, operate on the selected frame.
8787
87881999-02-12 Gerd Moellmann <gerd@gnu.org>
8789
8790 * dispnew.c (check_matrix_invariants): Put it in #if 0.
8791 (update_window): Put the call to check_matrix_invariants in #if 0.
8792
8793Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8794
8795 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
8796 Remove definition of UNDERLINE_COLOR.
8797
8798Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8799
8800 * xfaces.c (free_face_colors): Free the color for underline.
8801
8802 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
8803 to the GC.
8804
8805Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
8806
8807 * dispextern.h (UNDERLINE_COLOR): Defined.
8808 (struct face): Added two new members.
8809 underline_color, underline_defaulted_p.
8810
8811 * xfaces.c (merge_face_vector_with_property):
8812 (check_lface_attrs): Accept the string value for underline.
8813 (Finternal_set_lisp_face_attribute): Likewise.
8814
8815 * xfaces.c (load_color): Change the last argument type to enum
8816 lface_attribute_index from int. And addec code for underling coloring.
8817 (load_face_colors): Pass LFACE_*_INDEX to load_color.
8818
88191999-02-12 Gerd Moellmann <gerd@gnu.org>
8820
8821 * xfns.c (Fx_image_header): Removed.
8822
88231999-02-07 Gerd Moellmann <gerd@gnu.org>
8824
8825 * xterm.c: Don't include <bitmaps/gray>.
8826 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
8827
8828 * xfns.c (Fx_image_header): Add missing `\n\'.
8829 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
8830
88311999-02-01 Gerd Moellmann <gerd@gnu.org>
8832
8833 * xterm.c (x_scroll_bar_create): Set background pixel from
8834 specified scroll bar color.
8835 (x_scroll_bar_set_handle): Use scroll bar foreground color.
8836
8837 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
8838 (x_set_scroll_bar_background): Ditto.
8839
8840 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
8841
8842 * xfns.c (x_default_scroll_bar_color_parameter): New.
8843 (Fx_create_frame): Call it.
8844
88451999-01-31 Gerd Moellmann <gerd@gnu.org>
8846
8847 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
8848 values in x_output structure.
8849 (Qscroll_bar_foreground, Qscroll_bar_background): New.
8850 (syms_of_xfns): Initialize these symbols.
8851
8852 * xterm.h (struct x_output): Add scroll bar pixel colors.
8853
8854 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
8855 (x_set_scroll_bar_foreground): New.
8856 (x_set_scroll_bar_background): New.
8857
26901792
DL
88581999-01-12 Gerd Moellmann <gerd@gnu.org>
8859
8860 * xdisp.c (handle_single_display_prop): New.
8861 (handle_display_prop): Call it.
8862 (handle_raise_prop): Removed.
8863 (handle_height_prop): Removed.
8864 (handle_space_width_prop): Removed.
8865 (handle_face_prop): Remove handling of raised text.
8866 (handle_display_prop): Do it here.
8867
8868 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
8869 (RAISE_PROP_IDX): Removed.
8870 (HEIGHT_PROP_IDX): Removed.
8871 (SPACE_WIDTH_PROP_IDX): Removed.
8872
8873 * xdisp.c (Qdisplay): Replaces Qglyph.
8874 (handle_display_prop): Formerly handle_glyph_prop.
8875
88761999-01-11 Gerd Moellmann <gerd@gnu.org>
8877
8878 * xdisp.c (reseat_to_string): Set position in display vector to -1.
8879 (handle_stop): Set position in display vector to -1. Don't
8880 check overlay strings when set up to deliver characters from a
8881 display vector.
8882 (set_iterator_to_next): At the end of a run of characters from a
8883 display vector, check whether the display vector display replaces
8884 the display of a character.
8885
88861999-01-05 Gerd Moellmann <gerd@gnu.org>
8887
8888 * xfaces.c (init_frame_faces): Don't realize faces if frame's
8889 X window hasn't been created yet.
8890
88911998-12-06 Gerd Moellmann <gerd@gnu.org>
8892
8893 * sound.c: New.
8894
88951998-12-04 Gerd Moellmann <gerd@gnu.org>
8896
8897 * config.in (HAVE_SOUND): New.
8898
8899 * emacs.c (main): Call syms_of_sound and init_sound.
8900
8901 * Makefile.in (obj): Add sound.o.
8902
8903 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
8904
8905 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
8906 (HAVE_SYS_SOUNDCARD_H): New.
8907
89081998-12-03 Gerd Moellmann <gerd@gnu.org>
8909
8910 * buffer.h (struct buffer): indicate_empty_lines renamed from
8911 indicate_zv_lines.
8912
8913 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
8914 (default-indicate-zv-lines): Likewise.
8915
8916 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
8917 to indicate_empty_line_p.
8918
8919 * xdisp.c (reseat_at_next_visible_line_start): Reset method
8920 to next_element_from_buffer.
8921
8922 * frame.c (make_frame): Set n_current_toolbar_items to 0.
8923
8924 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
8925 and `N-'.
8926
8927 * xfns.c (xbm_scan): New.
8928 (xbm_read_hexint): Removed.
8929 (xbm_read_bitmap_file_data): Use xbm_scan.
8930
8931 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
8932
89331998-12-02 Gerd Moellmann <gerd@gnu.org>
8934
8935 * xfns.c (xbm_read_hexint): New.
8936 (xbm_read_bitmap_file_data): New.
8937 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
8938 instead of XReadBitmapFileData.
8939
8940 * xdisp.c (handle_raise_prop): Compute voffset from current font.
8941
8942 * xfaces.c (face_with_height): New.
8943
8944 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
8945 (eval_form): Renamed from eval_mode_element.
8946 (handle_face_prop): Use it.
8947 (Qheight): Replaces Qsmaller.
8948 (handle_height_prop): Replaces handle_smaller_prop.
8949 (handle_face_prop): If iterator's font_height is not an
8950 integer, evaluate it to get the font height to use.
8951
8952 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
8953 (struct it): Use `font_height' instead of `smaller'.
8954
89551998-12-01 Gerd Moellmann <gerd@gnu.org>
8956
8957 * xdisp.c (reseat_1): New.
8958 (reseat): Call it.
8959 (move_it_vertically_backward): Ditto.
8960 (redisplay_window): Don't abort when cursor not found in recenter.
8961
89621998-11-30 Gerd Moellmann <gerd@gnu.org>
8963
8964 * xdisp.c (reseat_at_next_visible_line_start): When not
8965 currently delivering display elements from the current buffer,
8966 restore buffer position first.
8967 (init_from_display_pos): Don't set IT's position from the
8968 position passed to this function.
8969
89701998-11-28 Gerd Moellmann <gerd@gnu.org>
8971
8972 * config.in (PROTO): Removed.
8973
8974 * xterm.h: Change PROTO to P_.
8975
89761998-11-26 Gerd Moellmann <gerd@gnu.org>
8977
8978 * xterm.c (take_vertical_position_into_account): New.
8979 (x_produce_image_glyph): Call it.
8980 (x_produce_stretch_glyph): Ditto.
8981 (x_produce_glyphs): Ditto.
8982 (x_fill_glyph_string): Adjust base line for glyph's voffset.
8983 (x_fill_composite_glyph_string): Ditto.
8984 (x_fill_image_glyph_string): Ditto.
8985 (x_fill_stretch_glyph_string): Ditto.
8986
8987 * xdisp.c (display_line): Always compute row height from
8988 max_ascent and max_descent.
8989
8990 * dispextern.h (struct glyph): Add voffset.
8991 (struct it): Replace height by descent, max_height by max_descent.
8992
8993 * xterm.c (x_append_glyph): Set voffset
8994 (x_append_stretch_glyph): Ditto.
8995 (x_produce_image_glyph): Ditto.
8996 (x_produce_glyphs): Take voffset into account.
8997 (x_produce_image_glyph): Ditto.
8998 (x_produce_stretch_glyph): Ditto.
8999
9000 * dispextern.h (struct it): Add voffset.
9001 * xdisp.c (push_it): Save voffset.
9002 (pop_it): Restore it.
9003
9004 * xdisp.c (it_props): Add entry for `raise'.
9005 (handle_raise_prop): New.
9006
9007 * dispextern.h (RAISE_PROP_IDX): New.
9008
9009 * xdisp.c (Qraise): New.
9010 (syms_of_xdisp): Define Qraised.
9011
9012 * xterm.c (x_scroll_bar_move): Clear to the left and right
9013 of toolkit scroll bars differently.
9014 (x_scroll_bar_move): Removed.
9015 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
9016
9017 * dispextern.h: Make it compilable --with-x=no.
9018 * alloc.c: Ditto.
9019 * emacs.c: Ditto.
9020 * dispnew.c: Ditto.
9021 * keyboard.c: Ditto.
9022 * term.c: Ditto.
9023 * xdisp.c: Ditto.
9024 * xfaces.c: Ditto.
9025 * xfns.c: Ditto.
9026 * xmenu.c: Ditto.
9027
90281998-11-25 Gerd Moellmann <gerd@gnu.org>
9029
9030 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
9031
90321998-11-24 Gerd Moellmann <gerd@gnu.org>
9033
9034 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
9035 update slider size, only.
9036 (xm_scroll_callback): Set dragging member of the scroll bar.
9037 (xt_action_hook): Reset last_scroll_bar_part.
9038 (XTredeem_scroll_bar): Reset bar->dragging to nil.
9039
26901792
DL
9040 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
9041 window on newly created frames that don't have one.
9042
90431998-11-23 Gerd Moellmann <gerd@gnu.org>
9044
9045 * xdisp.c (restore_overlay_strings): Removed.
9046 (restore_dpvec): Removed.
9047 (init_from_display_pos): Inline both functions above.
9048
9049 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
9050 (parse_image_spec): Handle it.
9051 (xbm_format): Use it.
9052 (xpm_format): Ditto.
9053 (pbm_format): Ditto.
9054 (jpeg_format): Ditto.
9055 (tiff_format): Ditto.
9056 (gif_format): Ditto.
9057 (gs_format): Ditto.
9058
9059 * xdisp.c (set_window_cursor): Removed.
9060 (redisplay_internal): Case cursor motion in cursor line of
9061 selected window; use set_cursor_from_row.
9062
90631998-11-22 Gerd Moellmann <gerd@gnu.org>
9064
9065 * widget.c (EmacsFrameSetCharSize): Take widget's border width
9066 into account.
9067
90681998-11-21 Gerd Moellmann <gerd@gnu.org>
9069
9070 * xterm.c (expose_frame): Redraw menu bar window.
9071
9072 * xdisp.c (display_menu_bar): Record hpos instead of x-position
9073 in menu item.
9074
9075 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
9076 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
9077
9078 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
9079 to determine vertical_scroll_bar_extra.
9080 (EmacsFrameSetCharSize): Ditto.
9081 * xfns.c (x_figure_window_size): Ditto.
9082
9083 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
9084 (x_draw_bitmap): Ditto.
9085
9086 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
9087 * xfaces.c (realize_basic_faces): Realize it.
9088
90891998-11-20 Gerd Moellmann <gerd@gnu.org>
9090
9091 * xmenu.c (xmenu_show): Add workaround for remaining button grab
9092 under LessTif Use the widget of the frame as parent for the
9093 menu, again.
9094
90951998-11-19 Gerd Moellmann <gerd@gnu.org>
9096
9097 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
9098 When EnterNotify, don't generate a mouse movement event if
9099 notification is from a busy-cursor child window.
9100
9101 * xterm.h (struct x_output): Add busy_window, remove cursor.
9102
9103 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
9104 Use a transparent window to display the busy-cursor.
9105 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
9106
91071998-11-17 Gerd Moellmann <gerd@gnu.org>
9108
9109 * xdisp.c (check_window_end): New, for debugging.
9110 (CHECK_WINDOW_END): New.
9111 (try_window_id): Use it.
9112
9113 * xterm.c (process_expose_from_menu): Return int.
9114
9115 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
9116 TOOLBAR_EVENT events in last_nonmenu_event.
9117
91181998-11-16 Gerd Moellmann <gerd@gnu.org>
9119
9120 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
9121 window end isn't reliable, so set window_end_valid to nil.
9122 (redisplay_internal): If overlay arrow has changed, set
9123 windows_or_buffers_changed to redisplay thoroughly.
9124
9125 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
9126 necessary.
9127
9128 * xfns.c (file_dialog_cb): New.
9129 (Fx_file_dialog): New.
9130 * fileio.c (Fread_file_name): Call it.
9131
9132 * xrdb.c (x_load_resources): Add default resoures for file
9133 selection dialog.
9134
91351998-11-14 Gerd Moellmann <gerd@gnu.org>
9136
9137 * xterm.c (note_mouse_highlight): Don't highlight when popup
9138 is active.
9139
26901792
DL
9140 * keyboard.c (timer_check): Inhibit busy cursor around calls to
9141 timer-event-handler. This busy cursor tends to be anoying if
9142 fontifying stealthily.
9143
9144 * dispnew.c (direct_output_for_insert): Give up if current row
9145 contains trailing whitespace.
9146
91471998-11-13 Gerd Moellmann <gerd@gnu.org>
9148
9149 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
9150
9151 * xdisp.c (handle_fontified_prop): New.
9152 (Vfontification_functions): New.
9153 (Qfontification_functions): New.
9154 (it_props): Add handle_fontified_prop.
9155
91561998-11-12 Gerd Moellmann <gerd@gnu.org>
9157
9158 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
9159 Otherwise, under LessTif, after the popup has gone, all button
9160 press events come in for the frame's widget, and release events
9161 come in for the edit_widget.
9162 * xterm.c (XTread_socket): Remove workaround for that problem.
9163 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
9164 XmScrollBarSetValues.
9165 (SET_SAVED_MENU_EVENT): Give it statement form.
9166
26901792
DL
9167 * xfaces.c (display_message): If waiting_for_input, don't display
9168 the message.
9169
9170 * window.c (scroll_command): If not acting on current_buffer,
9171 make redisplay consider all windows.
9172
9173 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
9174
9175 * xdisp.c (handle_glyph_prop): Set it->object for images to
9176 the object having the glyph property.
9177
9178 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
9179 invisible.
9180
91811998-11-11 Gerd Moellmann <gerd@gnu.org>
9182
9183 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
9184 (x_term_init): Create the gray pixmap.
9185 (x_setup_relief_color): Use it.
9186 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
9187 internal border at the top of a frame.
9188 (x_init_glyph_string): Likewise.
9189 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
9190 full-width lines.
9191 (XTflash): Don't flash the toolbar window.
9192
9193 * xterm.c (XTread_socket): Workaround for LessTif popup menus
9194 in case of ButtonPress events.
9195
91961998-11-10 Gerd Moellmann <gerd@gnu.org>
9197
9198 * xrdb.c (x_load_resources): Add grey background colors as
9199 defaults for menus, scroll bars, and dialogs.
9200
9201 * insdel.c (prepare_to_modify_buffer): Move setting
9202 windows_or_buffers_changed from modify_region here.
9203
9204 * xfns.c (Fx_show_tip): Inhibit redisplay.
9205 (Fx_hide_tip): Ditto.
9206 (Fx_image_header): New.
9207
92081998-11-09 Gerd Moellmann <gerd@gnu.org>
9209
9210 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
9211 when clearing current window matrices.
9212
92131998-11-08 Gerd Moellmann <gerd@gnu.org>
9214
9215 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
9216 position from a string position. Use the right end position
9217 if the property spans a whole overlay string.
9218
92191998-11-07 Gerd Moellmann <gerd@gnu.org>
9220
9221 * xmenu.c (menubar_selection_callback): Remove workaround for
9222 Lesstif not calling XmNpopdownCallback because it doesn't
9223 handle the case where users don't select any menu item.
9224
26901792
DL
9225 * insdel.c (modify_region): Set windows_or_buffers_changed.
9226
9227 * buffer.c (set_buffer_internal): Don't set
9228 windows_or_buffers_changed.
9229
26901792
DL
9230 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
9231
26901792
DL
9232 * xmenu.c (menubar_selection_callback): Add workaround for
9233 Lesstif not calling XmNpopdownCallback.
9234
9235 * xdisp.c (eval_mode_element): New.
9236 (eval_mode_handler): New.
9237 (display_mode_element): Use eval_mode_element.
9238
9239 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
9240 Remove code looking at text props of default value.
9241
9242 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
9243
26901792
DL
92441998-11-06 Gerd Moellmann <gerd@gnu.org>
9245
9246 * xmenu.c (single_submenu): Set button_type of menu to
9247 BUTTON_TYPE_NONE.
9248 (single_submenu): Likewise for panes and menu items.
9249 (set_frame_menubar): Set button_type of menu bar to none.
9250 (xmenu_show): Likewise.
9251 (single_submenu): Set widget values selected slot.
9252 (xmenu_show): Likewise.
9253
26901792
DL
9254 * xmenu.c (push_menu_item): Add parameters `type' and
9255 `selected'. Store it in menu_items.
9256 (MENU_ITEMS_ITEM_TYPE): New.
9257 (MENU_ITEMS_ITEM_SELECTED): New.
9258 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
9259
9260 * xfns.c (clear_image_cache): Get the current time, before
9261 doing anything.
9262 (cache_image): Set prev pointer of next image.
9263 (clear_image_cache): Clear current matrices if any image was
9264 freed.
9265
9266 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
9267
9268 * xfns.c (x_set_cursor): New.
9269 (Fx_display_busy_cursor): New.
9270 (Fx_undisplay_busy_cursor): New.
9271
9272 * xterm.h (struct x_output): Add busy_cursor.
9273
9274 * xfns.c (Vx_busy_pointer_shape): New.
9275 (x_set_mouse_color): Create busy cursor.
9276
9277 * process.c (wait_reading_process_input): Show and hide busy
9278 cursor.
9279
9280 * keyboard.c (command_loop_1): Display busy cursor.
9281
9282 * eval.c (Fsignal): Hide busy cursor.
9283
9284 * buffer.c (set_buffer_internal): Don't set
9285 windows_or_buffers_changed.
9286
9287 * xterm.c (redo_mouse_highlight): New.
9288
92891998-11-04 Gerd Moellmann <gerd@gnu.org>
9290
26901792
DL
9291 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
9292 (x_build_heuritic_mask): New.
9293 (lookup_image): Call it.
9294
9295 * xterm.c (note_toolbar_highlight): Always set up help_echo.
9296 (previous_help_echo): New.
9297 (XTread_socket): Generate help event with nil message when
9298 leaving a region with help-echo.
9299 (note_mouse_highlight): Handle `help-echo' over text.
9300 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
9301 CirculateRequest.
9302 (clear_mouse_face): Don't clear if tooltip is shown.
9303 (XTread_socket): Redo mouse-highlight after tooltip is gone.
9304 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
9305
9306 * keyboard.c (Vshow_help_function): New.
9307 (read_char): Use it.
9308
93091998-11-03 Gerd Moellmann <gerd@gnu.org>
9310
9311 * xfns.c (x_create_tip_frame): New.
9312 (Fx_show_tip): New.
9313 (Fx_hide_tip): New.
9314
9315 * xterm.c (x_destroy_window): Handle case that we don't have
9316 a widget.
9317
9318 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
9319 to full_width_p. Add internal_border_p.
9320
93211998-11-02 Gerd Moellmann <gerd@gnu.org>
9322
9323 * xterm.c (note_mode_line_highlight): Check the charpos of
9324 the glyph under the mouse pointer before accessing text
9325 properties at that position.
9326
93271998-11-01 Gerd Moellmann <gerd@gnu.org>
9328
9329 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
9330
9331 * xdisp.c (auto-raise-toolbar-buttons): New.
9332 (build_desired_toolbar_string): Handle the flag.
9333 (toolbar-button-margin): New.
9334 (toolbar-button-relief): New.
9335 (build_desired_toolbar_string): Use margin and relief.
9336
9337 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
9338 for FreeBSD.
9339 (note_mode_line_highlight): New.
9340 (note_mouse_highlight): Call it.
9341
93421998-10-31 Gerd Moellmann <gerd@gnu.org>
9343
9344 * s/freebsd.h (NARROWPROTO): New.
9345
9346 * xdisp.c (display_string): New parameter face_string.
9347 (display_mode_element): When displaying a symbol with a string
9348 value, use text properties from the symbol's default value, maybe.
9349
9350 * xrdb.c (x_load_resources): Add font defaults for menus and
9351 dialogs.
9352
93531998-10-30 Gerd Moellmann <gerd@gnu.org>
9354
9355 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
9356
93571998-10-29 Gerd Moellmann <gerd@gnu.org>
9358
9359 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
9360 produced for characters with codes < 32 under certain
9361 circumstances.
9362
9363 * xdisp.c (redisplay_window): Handle values of PT in front
9364 of invisible, intangible text.
9365 (try_window_id): Set overlay_arrow_seen to zero before
9366 displaying lines.
9367 (display_mode_element): Assign to glyphs written for a mode
9368 line spec `%x' as object the Lisp format string, as position
9369 the position of the `%' in that string.
9370 (display_string): If displaying a C string, optionally get
9371 the face to use from a Lisp string.
9372
9373 * xterm.c (expose_window_tree): Include mode line height.
9374
9375 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
9376
93771998-10-27 Gerd Moellmann <gerd@gnu.org>
9378
9379 * xterm.c (note_mouse_highlight): Change mouse pointer shape
9380 over mode line.
9381
93821998-10-26 Gerd Moellmann <gerd@gnu.org>
9383
9384 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
9385
9386 * xdisp.c (redisplay_window): If mode line height has changed,
9387 arrange for a thorough immediate redisplay using the correct mode
9388 line height.
9389 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
9390
9391 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
9392 (CURRENT_MODE_LINE_HEIGHT): New.
9393 (DESIRED_MODE_LINE_HEIGHT): New.
9394
9395 * keyboard.c (make_lispy_event): Add string and string position
9396 info to mouse-click events.
9397 (read_key_sequence): Handle `local-map' property of mode line
9398 strings.
9399
9400 * keyboard.h (POSN_STRING): New.
9401
94021998-10-25 Gerd Moellmann <gerd@gnu.org>
9403
9404 * dispnew.c (mode_line_string): Mew.
9405
9406 * xterm.c (xt_action_hook): New.
9407 (x_create_toolkit_scroll_bar): Add action hook.
9408 (xm_scroll_callback): Implement dragging.
9409
9410 * keyboard.c (Qend_scroll): New.
9411 (scroll_bar_parts): Add it.
9412
9413 * termhooks.h (scroll_bar_end_scroll): New.
9414
9415 * xterm.c (XTread_socket): Bug fix.
9416
94171998-10-24 Gerd Moellmann <gerd@gnu.org>
9418
9419 * xdisp.c (redisplay_window): Finish scroll bars after
9420 redisplaying toolbar.
9421
9422 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
9423 (syms_of_keyboard): Add Qbottom.
9424
9425 * termhooks.h (scroll_bar_to_top): New.
9426 (scroll_bar_to_bottom): New.
9427
9428 * xdisp.c (redisplay_window): Always resize toolbar window if
9429 auto_resize_toolbar_p is non-zero.
9430 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
9431 (window_box): New.
9432 (window_box_height): New.
9433 (window_box_width): New.
9434 (window_box_left): New.
9435 (window_box_right): New.
9436 (window_box_edges): New.
9437
94381998-10-23 Gerd Moellmann <gerd@gnu.org>
9439
9440 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
9441 XawScrollbarSetThumb in FreeBSD.
9442 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
9443 to true.
9444
9445 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
9446 is out of range.
9447
9448 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
9449 (x_term_init): Initialize it.
9450
9451 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
9452
9453 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
9454 cursor.
9455
94561998-10-22 Gerd Moellmann <gerd@gnu.org>
9457
9458 * keyboard.c (make_lispy_event): Handle scroll_bar_click
9459 differently when using toolkit scroll bars.
9460
9461 * xterm.c (x_send_scroll_bar_event): New.
9462 (x_scroll_bar_to_input_event): New.
9463 (xaw3d_scroll_callback): New.
9464 (xaw3d_jump_callback): New.
9465 (xm_scroll_callback): New.
9466 (x_toolkit_scroll_p): New.
9467 (XTread_socket): Handle scroll bar client message.
9468 (x_term_init): Initialize Xatom_Scrollbar.
9469 (x_scroll_bar_create): Set cursor.
9470 (xm_scroll_callback):
9471 (x_create_toolkit_scroll_bar): New.
9472 (x_set_toolkit_scroll_bar_thumb): New.
9473 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
9474 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
9475
9476 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
9477
94781998-10-21 Gerd Moellmann <gerd@gnu.org>
9479
9480 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
9481 (XTread_socket): Don't handle mouse button events for scroll bars
9482 if using toolkit scroll bars.
9483 (XTset_vertical_scroll_bar): Set thumb size and position for
9484 Athena scroll bar.
9485
9486 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
9487
9488 * xterm.c (XTread_socket): Dispatch expose event to widget
9489 if using toolkit scroll bars.
9490 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
9491 (x_scroll_bar_create): Create and show a scroll bar widget
9492 if using toolkit scroll bars.
9493 (x_scroll_bar_move): Handle tookit scroll bars.
9494
9495 * Makefile.in (LIBW): Use Xaw3d if present.
9496
9497 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
9498 (HAVE_XAW3D): New.
9499
9500 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
9501 (HAVE_XAW3D): New.
9502
9503 * xterm.c (XTset_vertical_scroll_bar): Correct position of
9504 right vertical scroll bar.
9505
95061998-10-20 Gerd Moellmann <gerd@gnu.org>
9507
9508 * xfns.c (xpm_load): Support reading XPM images from string
9509 buffers containing data in the same format as an XPM file.
9510 Support `:color-symbols'.
9511 (xpm_format): Add `:data'.
9512 (xpm_keyword_index): Add XPM_DATA.
9513 (syms_of_xfns): Add `:color-symbols'.
9514 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
9515 (xpm_valid_color_symbols_p): New.
9516 (xpm_image_p): Call it.
9517
9518 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
9519 attribute to the image if item is not enabled.
9520
9521 * xfns.c (x_laplace): New.
9522 (x_laplace_read_row): New.
9523 (x_laplace_write_row): New.
9524 (lookup_image): Handle common image attributes here. New
9525 attribute `:algorithm'.
9526
9527 * xfaces.c (clear_face_cache): Call clear_image_cache.
9528
9529 * xterm.c (x_inverted_image_mask): Removed.
9530 (x_draw_image_foreground_1): New.
9531 (x_draw_image_glyph_string): Draw images with mask to a temporary
9532 pixmap to reduce flickering.
9533
9534 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
9535 (display_toolbar_line): Remove parameter `margin'.
9536
95371998-10-19 Gerd Moellmann <gerd@gnu.org>
9538
9539 * xdisp.c (toolbar_lines_needed): New.
9540 (auto-resize-toolbars): New.
9541
9542 * xfns.c (cache_image): Correct call to xrealloc.
9543
9544 * dispnew.c (Fset_toolbar_height): Removed.
9545
9546 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
9547 FRAME_MENU_BAR_LINES.
9548
9549 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
9550 instead of FRAME_MENU_BAR_LINES.
9551 (check_frame_size): Ditto.
9552
9553 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
9554 instead of FRAME_MENU_BAR_LINES.
9555 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
9556 (build_frame_matrix): Ditto.
9557 (change_frame_size_1): Ditto.
9558
9559 * frame.h (FRAME_TOOLBAR_LINES): New.
9560 (FRAME_TOP_MARGIN): New.
9561
9562 * window.c (struct save_window_data): Add frame_toolbar_lines.
9563 (Fset_window_configuration): Handle toolbar lines.
9564 (Fcurrent_window_configuration): Save toolbar lines.
9565
9566 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
9567
9568 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
9569
9570 * frame.h (struct frame): Rename top_margin to toolbar_lines.
9571
9572 * xfns.c (x_frame_parms): Add `toolbar-lines'.
9573 (x_set_toolbar_lines): New.
9574
9575 * keyboard.c (cmd_error_internal): Bug fix.
9576
9577 * xterm.c: Remove double include of syssignal.h.
9578
95791998-10-18 Gerd Moellmann <gerd@gnu.org>
9580
9581 * xterm.c (x_toolbar_item): New.
9582 (x_handle_toolbar_click): Use it.
9583 (note_toolbar_highlight): Use it.
9584
9585 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
9586 and toolbar_items_vectors.
9587
9588 * xterm.c (help_echo): New.
9589 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
9590 (x_set_glyph_string_gc): Handle them.
9591 (x_after_update_window_line): Don't do anything in pseudo-windows.
9592 (x_produce_image_glyph): Take image margin and face relief into
9593 account.
9594 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
9595 (x_draw_glyph_string_background): Optimize case when face has
9596 relief.
9597 (x_setup_relief_color): Take frame instead of glyph string
9598 parameter.
9599 (x_draw_relief_rect): New.
9600 (x_draw_glyph_string_relief): Call it.
9601 (x_draw_image_glyph_string_foreground): Handle margin and image
9602 relief.
9603 (x_draw_image_glyph_string_background): Ditto.
9604 (expose_frame): Redraw toolbar window.
9605 (expose_window): Don't draw cursor for pseudo-windows.
9606 (x_y_to_hpos_vpos): Handle pseudo-windows.
9607 (frame_to_window_pixel_xy): New.
9608 (note_mouse_highlight): Call note_toolbar_highlight.
9609 (x_handle_toolbar_click): New.
9610 (note_toolbar_highlight): New.
9611 (show_mouse_face): Change int parameter `hl' to parameter of
9612 type enum draw_glyphs_face. Handle image highlighting.
9613 (XTread_socket): Return a HELP_EVENT input event if help_echo is
9614 non-nil. Use x_handle_toolbar_click.
9615
9616 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
9617
9618 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
9619 IMAGE_BOOL_VALUE.
9620 (parse_image_spec): Handle them.
9621 (image_spec_value): Additional parameter found.
9622 (free_image): Remove image from the vector `images' of the
9623 image cache.
9624 (clear_image_cache): Additional parameter force_p.
9625 (Fclear_image_cache): New.
9626 (x_find_image_file): New.
9627 (xbm_load): Handle `:margin' and `:relief'. Use
9628 x_find_image_file.
9629 (xpm_load): Likewise.
9630 (pbm_load): Likewise.
9631 (jpeg_load): Likewise.
9632 (tiff_load): Likewise.
9633 (gif_load): Likewise.
9634
9635 * keyboard.c (Qhelp_echo): New symbol.
9636 (read_char): Handle `toolbar' and `help_echo' events.
9637 (kbd_buffer_get_event): Handle HELP_ECHO input event.
9638 (make_lispy_event): Handle TOOLBAR_EVENT.
9639 (toolbar_items): New.
9640 (process_toolbar_item): New.
9641 (PROP): New.
9642 (init_toolbar_items): New.
9643 (append_toolbar_item): New.
9644 (read_char_x_menu_prompt): Handle `toolbar' event.
9645 (read_key_sequence): Ditto.
9646
9647 * xfaces.c (Qtoolbar): New.
9648 (realize_basic_faces): Realize `toolbar' face.
9649 (face_at_string_position): Remove parameter modeline_p, add
9650 base_face_id.
9651
9652 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
9653 to read data.
9654
96551998-10-17 Gerd Moellmann <gerd@gnu.org>
9656
9657 * xdisp.c (init_iterator): Replace parameter modeline_p with
9658 base_face_id.
9659 (next_element_from_string): Call get_next_display_element
9660 recursively after handling text properties.
9661 (prepare_menu_bars): Call update_toolbar.
9662 (update_toolbar): New.
9663 (build_desired_toolbar_string): New.
9664 (display_toolbar_line): New.
9665 (redisplay_toolbar): New.
9666 (toolbar_item_info): New.
9667 (redisplay_window): Call redisplay_toolbar.
9668 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
9669
9670 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
9671 window.
9672 (clear_desired_matrices): Ditto.
9673 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
9674 (free_glyphs): Free matrices of toolbar window.
9675 (update_frame): Update toolbar window.
9676 (change_frame_size_1): Take toolbar into account.
9677 (Fset_toolbar_height): New.
9678
9679 * dispextern.h (struct it): Remove member modeline_p, add
9680 base_face_id.
9681 (struct image): Add members relief and margin.
9682 (IMAGE_ASCENT): Include margin in height.
9683
96841998-10-14 Gerd Moellmann <gerd@gnu.org>
9685
9686 * xfns.c (Fclear_image_cache): New.
9687
9688 * xfaces.c (realize_basic_faces): Realize toolbar face.
9689 (face_at_string_position): Remove parameter modeline_p, add
9690 base_face_id.
9691
9692 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
9693
96941998-10-13 Gerd Moellmann <gerd@gnu.org>
9695
9696 * keyboard.c (syms_of_keyboard): Intern `:help'.
9697
96981998-10-12 Gerd Moellmann <gerd@gnu.org>
9699
9700 * xterm.c (note_toolbar_highlight): New.
9701 (note_mouse_highlight): Call it.
9702
9703 * window.c (window_from_coordinates): Additional parameter toolbar_p.
9704 (coordinates_in_window): Handle toolbar window.
9705
9706 * keyboard.c (toolbar_items): New.
9707 (process_toolbar_item): New.
9708 (parse_toolbar_item): New.
9709 (init_toolbar_items): New.
9710 (append_toolbar_item): New.
9711
9712 * dispextern.h (enum toolbar_item_idx): New.
9713 (enum toolbar_item_image): New.
9714
9715 * frame.h (struct frame): Add toolbar-related members.
9716
9717 * xfaces.c (face_at_string_position): Remove assertion that
9718 current_buffer == window's buffer. This is not the case when
9719 called for the toolbar window.
9720
9721 * frame.c (make_frame): Initialize toolbar members.
9722
9723 * alloc.c (mark_object): Mark toolbar data of frames.
9724
9725 * frame.h (struct frame): Add toolbar-related members
9726 toolbar_window, desired_toolbar_items, current_toolbar_items,
9727 desired_toolbar_string, current_toolbar_string,
9728 n_desired_toolbar_items, n_current_toolbar_items. Add
9729 window_height.
9730
9731 * xterm.c (x_after_update_window_line): Don't draw bitmap
9732 areas for pseudo-windows.
9733 (expose_frame): Handle toolbar window.
9734 (expose_window): Don't do cursor stuff for pseudo-windows.
9735
9736 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
9737
97381998-10-11 Gerd Moellmann <gerd@gnu.org>
9739
9740 * frame.c (make_frame): Initialize toolbar_window.
9741
9742 * alloc.c (mark_object): Make the toolbar window.
9743
9744 * dispnew.c (update_frame): Update frame's toolbar_window.
9745 (clear_current_matrices): Likewise.
9746 (clear_desired_matrices): Likewise.
9747 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
9748 (free_glyphs): Free the toolbar window and its matrices.
9749
9750 * frame.h (struct frame): Add toolbar_window.
9751
9752 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
9753 with relief.
9754
97551998-10-10 Gerd Moellmann <gerd@gnu.org>
9756
9757 * dispnew.c (buffer_posn_from_coords): Don't screw up if
9758 window start is not in the range BEGV..ZV.
9759
97601998-10-09 Gerd Moellmann <gerd@gnu.org>
9761
9762 * xdisp.c (try_scrolling): Experimentally handle the case
9763 that scroll-preserve-screen-position is set to `always'.
9764
9765 * window.c (Vscroll_preserve_screen_position): Replacement for
9766 scroll_preserve_screen_position.
9767
97681998-10-08 Gerd Moellmann <gerd@gnu.org>
9769
9770 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
9771 doesn't like it.
9772 * xdisp.c: Ditto.
9773
9774 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
9775
97761998-10-06 Gerd Moellmann <gerd@gnu.org>
9777
9778 * minibuf.c (Fminibuffer_complete_word): Fix computation of
9779 i_byte when prompts are inserted into minibuffers.
9780
9781 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
9782 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
9783 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
9784
97851998-10-04 Gerd Moellmann <gerd@gnu.org>
9786
9787 * xdisp.c (make_cursor_line_fully_visible): New.
9788 (try_scrolling): New.
9789 (redisplay_window): Move scrolling code to try_scrolling.
9790 (make_cursor_line_fully_visible): Handle case of window too small
9791 to show a single line.
9792 (redisplay_window): Case forced window start---use
9793 make_cursor_line_fully_visible.
9794 (redisplay_window): Case cursor movement via current matrix.
9795 If ending up on a partially visible line, make it fully visible
9796 instead of recentering.
9797 (try_scrolling): Additional parameter scroll_smoothly.
9798
9799 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
9800
98011998-09-28 Gerd Moellmann <gerd@gnu.org>
9802
9803 * window.c (window_scroll_pixel_based): Bug fix: vpos used
9804 instead of y-position for scroll-preserved-screen-position.
9805
98061998-09-07 Gerd Moellmann <gerd@gnu.org>
9807
9808 * dispnew.c (update_frame_line): If current row is not enabled,
9809 write the whole line.
9810
98111998-09-06 Gerd Moellmann <gerd@gnu.org>
9812
9813 * lisp.h (HAVE_FACES): Removed.
9814
9815 * dispextern.h (HAVE_FACES): Removed.
9816
9817 * config.in (HAVE_FACES): Removed.
9818
9819 * dispnew.c (HAVE_FACES): Removed.
9820
9821 * xdisp.c (HAVE_FACES): Removed.
9822
9823 * xfaces.c (HAVE_FACES): Removed.
9824
98251998-09-05 Gerd Moellmann <gerd@gnu.org>
9826
9827 * xdisp.c (init_iterator): If face_change_count is non-zero,
9828 free realized faces.
9829
9830 * xfaces.c (free_all_realized_faces): Make it externally visible.
9831 (Finternal_set_lisp_face_attribute): Increment
9832 windows_or_buffers_changed.
9833
9834 * dispnew.c (direct_output_for_insert): Give up if
9835 face_change_count is non-zero.
9836 (direct_output_forward_char): Ditto.
9837
9838 * xfaces.c (face_change_count): New.
9839
98401998-09-04 Gerd Moellmann <gerd@gnu.org>
9841
9842 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
9843 of range.
9844
98451998-09-03 Gerd Moellmann <gerd@gnu.org>
9846
9847 * term.c (Ftty_display_color_p): New.
9848
98491998-09-02 Gerd Moellmann <gerd@gnu.org>
9850
9851 * xfaces.c (Ftty_defined_colors): New.
9852
9853 * xterm.c (x_produce_glyphs): Fix computation of
9854 contains_overlapping_glyphs_p for ASCII.
9855
9856 * dispnew.c (Fshow_cursor): Don't change cursor state while
9857 redisplaying.
9858 (direct_output_for_insert): If a glyph with lbearing or rbearing
9859 is among the new glyphs, set row flag contains_overlapping_glyph_p.
9860
98611998-09-01 Gerd Moellmann <gerd@gnu.org>
9862
9863 * term.c (OUTPUT_IF): Make replacement text have statement form.
9864 (OUTPUT1_IF): Ditto.
9865 (TS_italic_mode, TS_end_italic_mode): Removed.
9866 (TS_bold_mode): Removed.
9867 (TS_underscore_mode, TS_end_underscore_mode): Removed.
9868 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
9869 (TS_enter_reverse_mode): New.
9870 (TS_enter_underline_mode, TS_exit_underline_mode): New.
9871 (TN_magic_cookie_glitch_ul): New.
9872 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
9873 (TS_exit_attribute_mode): New.
9874 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
9875 (TS_set_foreground, TS_set_background): New.
9876 (reset_terminal_modes): Switch colors back to default.
9877 (write_glyphs): Turn face on before writing text, turn it off
9878 afterwards.
9879 (insert_glyphs): Ditto.
9880 (term_init): Initialize new terminal capability variables.
9881 (turn_on_face): Turn a face on.
9882 (turn_off_face): Turn a face off.
9883
9884 * lisp.h (MAKE_GLYPH): Remove test for frame type.
9885 (GLYPH_CHAR): Ditto.
9886 (GLYPH_FACE): Ditto.
9887
9888 * xfaces.c (Vface_tty_color_alist): New.
9889 (face-register-tty-color): New.
9890 (face-clear-tty-colors): New.
9891
9892 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
9893 (struct it): Remove member faces_p since we now always have faces.
9894
98951998-08-31 Gerd Moellmann <gerd@gnu.org>
9896
9897 * dispextern.h (struct face): Add tty appearance flags.
9898
9899 * xdisp.c (init_iterator): Always handle faces.
9900 (extend_face_to_end_of_line): Handle tty frames.
9901
9902 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
9903 passed in.
9904
99051998-08-30 Gerd Moellmann <gerd@gnu.org>
9906
9907 * xfaces.c (realize_default_face): Use empty strings to indicate
9908 that the face should use the default foreground/background
9909 color of the terminal. Fill font-related attributes with
9910 appropriate values for tty frames.
9911
9912 * emacs.c (main): Call syms_of_xfaces before init_window_once.
9913
9914 * xfaces.c (realize_default_face): If face `default' is not
9915 yet known, create it.
9916
9917 * frame.c (make_terminal_frame): Call init_frame_faces
9918 unconditionally.
9919
9920 * xfaces.c (init_frame_faces): Make it work for tty frames.
9921 (free_frame_faces): Ditto.
9922 (clear_face_cache): Ditto.
9923 (recompute_basic_faces): Ditto.
9924 (Fframe_face_alist): Ditto.
9925 (free_realized_face): Ditto.
9926 (prepare_face_for_display): Ditto.
9927 (clear_face_gcs): Ditto.
9928 (lookup_face): Ditto.
9929 (smaller_face): Ditto.
9930 (realize_default_face): Ditto.
9931 (realize_face): Ditto.
9932 (realize_face): Dispatch to functions depending on the frame type.
9933 (realize_x_face): X way of realizing faces.
9934 (realize_tty_face): TTY way of realizing faces.
9935
99361998-08-29 Gerd Moellmann <gerd@gnu.org>
9937
9938 * xfaces.c (realize_face): Remove parameter unibyte_registry,
9939 compute it instead.
9940 (lookup_face): Remove local variable unibyte_registry.
9941
99421998-08-22 Gerd Moellmann <gerd@gnu.org>
9943
9944 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
9945 1 pixel longer.
9946
9947 * xdisp.c (face_before_or_after_it_pos): Fix computation
9948 of face in buffer.
9949
9950 * editfns.c (make_buffer_string_both): If prompt in buffer,
9951 prevent start > end.
9952
9953 * indent.c (Fvertical_motion): Set current_buffer to window's
9954 buffer if it isn't already.
9955
99561998-08-21 Gerd Moellmann <gerd@gnu.org>
9957
9958 * dispextern.h (GLYPH_DEBUG): Use default 0.
9959
9960 * xdisp.c (it_props): New member `smaller'.
9961 (init_iterator): Initialize it.
9962 (Qsmaller): New.
9963 (push_it): Save value of `smaller' value on the stack.
9964 (pop_it): Restore `smaller' from the stack.
9965 (handle_smaller_prop): New.
9966 (handle_face_prop): Use `smaller' text property to select a
9967 suitable face.
9968
9969 * dispextern.h (SMALLER_PROP_IDX): New.
9970 (struct it): Add member `smaller'.
9971
9972 * xfaces.c (smaller_face): New.
9973
9974 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
9975
9976 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
9977 total pixel width of window differently.
9978
9979 * xdisp.c (init_iterator): Compute width of mode line differently.
9980
9981 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
9982 of bitmap areas.
9983
9984 * window.c (Fsplit_window): Include width of bitmap areas in
9985 window width.
9986 (window_internal_width): Subtract width of bitmap areas from
9987 total width.
9988
99891998-08-18 Gerd Moellmann <gerd@gnu.org>
9990
9991 * xdisp.c: Functions reordered for better readability.
9992
9993 * dispnew.c (update_text_area): Handle glyphs with arbitrary
9994 lbearing.
9995 (update_window_tree): Parameter no_scrolling_p removed.
9996 (update_single_window): Ditto.
9997
9998 * xterm.c (x_get_char_font_and_encoding): Renamed to
9999 x_get_char_face_and_encoding.
10000
10001 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
10002 if end of current row reached.
10003
10004 * xterm.c (x_get_glyph_face_and_encoding): New.
10005 (x_get_glyph_overhangs): Call it.
10006
10007 * xdisp.c (Qshow_trailing_whitespace): New.
10008 (Qtrailing_whitespace): New.
10009 (enum prop_handled): New.
10010 (struct props, it_props): New.
10011 (next_overlay_change): New. Works like Fnext_overlay_change
10012 but doesn't use xmalloc.
10013 (handle_stop): Restructured.
10014 (face_before_or_after_it_pos): Case iteration over a string: fix
10015 handling of face before current position.
10016
100171998-08-16 Gerd Moellmann <gerd@gnu.org>
10018
10019 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
10020 reallocation matrix if fonts_changed_p.
10021 (update_text_area): Handle glyphs with lbearing.
10022
100231998-08-14 Gerd Moellmann <gerd@gnu.org>
10024
10025 * xdisp.c (struct props): New.
10026 (it_props): New.
10027 (compute_prop_info): New.
10028 (handle_stop): New.
10029
10030 * textprop.c (validate_interval_range): Make it externally
10031 visible.
10032
10033 * dispnew.c (direct_output_for_insert): Remove calls
10034 to compute_stop_pos.
10035
10036 * dispextern.h (struct it): Remove check_charpos,
10037 next_overlay_pos. Add what_changes.
10038
100391998-08-10 Gerd Moellmann <gerd@gnu.org>
10040
10041 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
10042
10043 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
10044 face_default_registry instead.
10045
10046 * syntax.c (scan_sexps_forward): Set up syntax table before
10047 jumping to initial state label.
10048
100491998-08-09 Gerd Moellmann <gerd@gnu.org>
10050
10051 * dispnew.c (check_matrix_invariants): Handle case of row end pos
10052 >= ZV specially.
10053
100541998-08-08 Gerd Moellmann <gerd@gnu.org>
10055
10056 * xdisp.c (redisplay_window): Case cursor movement---if cursor
10057 ends up in partially visible row, try to scroll. Case forced
10058 window start---handle windows not tall enough to show a single
10059 line.
10060
10061 * window.h (struct window): Member dy renamed vscroll.
10062
10063 * xterm.c (x_list_fonts): Re-activate suppression of scalable
10064 fonts.
10065 (x_draw_stretch_glyph_string): Set clipping if using GC that
10066 hasn't set it yet.
10067
10068 * xdisp.c (redisplay_window): Case forced window start -
10069 don't let cursor end on partially visible row. Use desired
10070 matrix to find a suitable PT if it doesn't appear.
10071 (decode_mode_spec): Merged with 20.2.97.
10072 (try_window_reusing_current_matrix): Give up if old or
10073 new display is vscrolled.
10074 (redisplay_window): Reset vscrolling if forced window start,
10075 or if recentering.
10076
100771998-08-06 Gerd Moellmann <gerd@gnu.org>
10078
10079 * xfaces.c (realize_default_face): Use the fontset name instead of
10080 the alias for the family attribute of the default face because we
10081 can't easily determine a good alias from fontset-alias-alist.
10082 (face_fontset): Use Fquery_fontset to find the fontset.
10083 (font_list): Additional pattern parameter.
10084 (try_font_list): Ditto.
10085 (set_lface_from_font_name): Set face family from font foundry
10086 and family.
10087 (font_list): If family contains a hyphen, build pattern differently.
10088
100891998-08-05 Gerd Moellmann <gerd@gnu.org>
10090
10091 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
10092 changed instead of setting the frame garbaged.
10093
10094 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
10095 all attribute values. This is wrong if values are unspecified,
10096 i.e. nil.
10097
10098 * xdisp.c (try_window_id): Give up if window start changed.
10099
10100 * xfaces.c (make_realized_face): Store registry as Lisp object.
10101 (load_face_font_or_fontset): Compute registry of a face
10102 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
10103 possible.
10104
10105 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
10106 differently.
10107
10108 * alloc.c (mark_face_cache): Mark the registry member of faces.
10109
10110 * dispextern.h (struct face): Make registry a Lisp string.
10111
101121998-08-04 Gerd Moellmann <gerd@gnu.org>
10113
10114 * xterm.c (x_get_char_font_and_encoding): Additional parameter
10115 multibyte_p. Handle unibyte text.
10116 (x_append_glyph): Set the multibyte_p flag of glyphs.
10117 (x_produce_image_glyph): Ditto.
10118 (x_append_stretch_glyph): Ditto.
10119 (x_produce_glyphs): Handle unibyte text like ASCII.
10120
10121 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
10122 stack.
10123 (pop_it): Restore it.
10124 (face_before_or_after_it_pos): Handle the case that the string or
10125 buffer is unibyte.
10126 (get_overlay_strings): Set the multibyte flag of the iterator if
10127 the new overlay string is multibyte.
10128 (get_glyph_property): Likewise.
10129 (get_next_display_element): Don't check for charset changes in
10130 unibyte text.
10131 (append_space): Compute face differently for unibyte text.
10132 (extend_face_to_end_of_line): Don't return quickly if face has
10133 stipple.
10134
10135 * xfaces.c (load_face_font_or_fontset): Store registry and
10136 encoding of the font in the registry member of the face.
10137 (make_realized_face): Additional parameter `registry'.
10138 (free_realized_face): Free the registry of a realized face.
10139 (face_suitable_for_charset_p): Function form of the macro
10140 with the same name in uppercase.
10141 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
10142 (choose_face_font): New parameter unibyte_registry.
10143 (choose_face_fontset_font): Ditto.
10144 (realize_default_face): Remember the registry and encoding of
10145 the specified frame font in Vx_unibyte_registry_and_encoding.
10146 (face_at_buffer_position): Handle unibyte.
10147 (face_at_string_position): Likewise.
10148 (realize_face): New parameter unibyte_registry.
10149 (compute_char_face): Handle the unibyte case.
10150
10151 * dispextern.h (struct glyph): Add bit multibyte_p.
10152 (struct face): New member registry holding the registry and
10153 encoding of the X font of the face.
10154 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
10155 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
10156 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
10157 text.
10158 (struct iterator_stack_entry): Add multibyte_p.
10159
10160 * xdisp.c (string_pos): Use string_char_to_byte.
10161 (char_charset): Removed.
10162
101631998-08-03 Gerd Moellmann <gerd@gnu.org>
10164
10165 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
10166 rectangle for a block cursor over an image without a mask.
10167 (x_stretch_block_cursor): Added. Non-zero means don't draw
10168 a block cursor over a stretch as wide as that stretch.
10169 (x_draw_stretch_glyph_string): Use it.
10170 (x_draw_hollow_cursor): Ditto.
10171
10172 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
10173 (read_minibuf): Add front-sticky text property for prompt.
10174
10175 * xdisp.c (char_charset): Return charset of a character,
10176 depending on whether or not multi-byte characters are enabled.
10177
10178 * xfaces.c (Fset_face_charset_registry): Removed.
10179 (x_charset_registry): Determine registry from charset plist.
10180
101811998-08-02 Gerd Moellmann <gerd@gnu.org>
10182
10183 * xdisp.c (get_next_display_element): Don't check for charset
10184 changes if multi-byte characters are not enabled.
10185
10186 * xdisp.c (echo_area_display): Use the flush function from the
10187 redisplay interface.
10188 * keyboard.c (detect_input_pending_run_timers): Likewise.
10189
10190 * dispextern.h (produce_*glyphs_hook): Removed.
10191 * term.c (produce_*glyphs): Ditto.
10192 (cursor_to): Remove pixel position parameters.
10193
10194 * dispnew.c: Remove hooks for window-based redisplay, introduce
10195 a redisplay interface structure.
10196
10197 * xterm.c (x_per_char_metric): Return default char metrics if per
10198 char metric exists but contains a zero width. Adobe Courier seems
10199 to contain such characters.
10200
10201 * xdisp.c (compute_line_metrics): Compute the width of rows
10202 without stopping at glyphs with zero width.
10203
102041998-08-01 Gerd Moellmann <gerd@gnu.org>
10205
10206 * xdisp.c (display_mode_line): If nothing was displayed at all,
10207 display a space.
10208 (hscroll_window_tree): Don't subtract 1 from target point if equal
10209 to ZV and window is not the selected window.
10210
10211 * dispnew.c (check_matrix_invariants): Remove check for window
10212 start at BEGV or after newline. This happens in rare cases
10213 intentionally.
10214
102151998-07-31 Gerd Moellmann <gerd@gnu.org>
10216
10217 * xfaces.c (x_charset_registry): Use STRING_BYTES.
10218 (syms_of_xfaces): Add Vface_default_registry.
10219 (x_charset_registry): Use it.
10220
10221 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
10222 (redisplay_window): Use it.
10223
10224 * dispnew.c (update_text_area): Handle lbearing of deleted text
10225 by backing up one character.
10226
102271998-07-30 Gerd Moellmann <gerd@gnu.org>
10228
10229 * dispnew.c (adjust_glyph_matrix): Use a different check to
10230 decide to do nothing.
10231
10232 * xfaces.c (face_at_string_position): Additional parameter
10233 mode_line_p. If non-zero, merge with the mode line face
10234 instead of the default face.
10235 * dispextern.h (struct it): Add mode_line_p.
10236 * xdisp.c (init_iterator): Set it.
10237 (compute_face_in_string): Use it.
10238 (face_before_or_after_it_pos): Handle strings.
10239 (get_next_display_element): Don't look for relief end in C strings.
10240 (next_element_from_string): Deliver string position instead of
10241 buffer position.
10242
10243 * xterm.c (x_flush): Flush X output buffer.
10244 (XTflash): Use it.
10245
10246 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
10247 Allow strings as face names.
10248
10249 * xfns.c (forall_images_in_image_cache): Check that frame is
10250 alive.
10251
10252 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
10253 it's also called from x_destroy_window. Since this function is
10254 called from X, freeing stuff allocated with xmalloc is dangerous
10255 here, anyway.
10256
10257 * xfaces.c (free_realized_faces): Don't clear current matrices
10258 of a frame being destroyed.
10259
10260 * frame.c (make_frame): Call set_window_buffer instead of
10261 Fset_window_buffer.
10262
10263 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
10264 with an additional argument specifying whether or not hooks may
10265 be called.
10266 (Fset_window_buffer): Call it.
10267
10268 * dispnew.c (clear_desired_matrices): Check that frame has
10269 a valid root window before clearing matrices in the window tree.
10270 (clear_current_matrices): Ditto.
10271 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
10272 vchild are valid windows if not nil.
10273
10274 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
10275 for :inverse-video.
10276 (Finternal_set_lisp_face_attribute): Ditto.
10277 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
10278 (Finternal_get_lisp_face_attribute): Ditto.
10279 (Finternal_lisp_face_attribute_values): Ditto.
10280 (syms_of_xfaces): Define the symbol `:reverse-video'.
10281
10282 * xdisp.c (get_glyph_property): Renamed from
10283 fill_iterator_from_glyph_property.
10284 (next_element_from_buffer): Handle case that no `glyph' property
10285 was found correctly.
10286 (display_line): Extend face to end of line only if we have faces.
10287
102881998-07-29 Gerd Moellmann <gerd@gnu.org>
10289
10290 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
10291 additional window argument.
10292
10293 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
10294 set_iterator_to_previous_visible_line_start.
10295 (reseat_at_next_visible_line_start): Likewise.
10296 (compute_stop_pos): Renamed from set_iterator_stop_pos.
10297 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
10298 (compute_face_in_buffer): Renamed from
10299 compute_face_at_iterator_position.
10300 (compute_face_in_string): Renamed from
10301 compute_face_at_iterator_string_position.
10302 (get_space_width): Renamed from get_iterator_space_width.
10303 (next_overlay_string): Renamed from
10304 set_iterator_to_next_overlay_string.
10305 (get_overlay_strings): Renamed from
10306 get_overlay_strings_at_iterator_position.
10307 (restore_overlay_strings): Renamed from
10308 setup_overlay_strings_from_glyph_pos.
10309 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
10310 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
10311 (init_to_row_start): Renamed from init_iterator_to_row_start.
10312 (init_to_row_end): Formerly init_iterator_to_next_row_start.
10313
10314 * xterm.c: Merge with 20.2.97.
10315 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
10316
10317 * dispextern.h (struct glyph): Replace text_pos position with
10318 simple charpos.
10319
10320 * xdisp.c (this_line_start_pos): Use struct text_pos.
10321 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
10322 (enum move_it_result): Renamed from move_iterator_result.
10323 (string_pos_nchars_ahead): Compute text_pos in a string from a
10324 known text_pos plus a character delta.
10325 (string_pos): Compute text_pos in string from charpos.
10326 (c_string_pos): Likewise for a C string.
10327 (number_of_chars): Return number of characters in a possibly
10328 multi-byte C string.
10329 (check_it): Renamed from check_iterator. Check that charpos and
10330 bytepos are in sync.
10331 (push_it): Renamed from save_iterator_settings.
10332 (pop_it): Renamed from restore_iterator_settings.
10333 (move_it_.*): Renamed from move_iterator_.*.
10334 (charset_at_position): Take charpos/bytepos into account.
10335 (back_to_previous_line_start): Set iterator to previous line start.
10336 (forward_to_next_line_start): Set iterator to next line start.
10337 (back_to_previous_visible_line_start): Renamed from
10338 move_iterator_previous_visible_line_start.
10339 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
10340 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
10341 Handle charpos/bytepos.
10342 (compute_face_at_iterator_position): Handle charpos/bytepos.
10343 (compute_face_at_iterator_string_position): Likewise.
10344 (get_iterator_space_width): Likewise.
10345 (load_overlay_strings): Likewise.
10346 (get_overlay_strings_at_iterator_position): Likewise.
10347 (reseat_iterator): Take a text_pos position argument.
10348 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
10349 bytepos.
10350 (init_iterator): Take additional bytepos parameter.
10351 (reseat_iterator_to_string): Handle charpos/bytepos.
10352 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
10353 (next_element_from_string): Handle charpos/bytepos.
10354 (next_element_from_c_string): Likewise.
10355 (fill_iterator_from_glyph_property): Likewise.
10356 (next_element_from_buffer): Likewise.
10357 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
10358 (move_iterator_in_display_line_to): Handle charpos/bytepos.
10359 (move_it_to): Likewise.
10360 (move_it_vertically_backward): Likewise.
10361 (move_it_vertically): Likewise.
10362 (move_it_by_lines): Likewise.
10363 (hscroll_window_tree): Likewise.
10364 (redisplay_internal): Likewise.
10365 (set_cursor_from_row): Likewise.
10366 (redisplay_window): Likewise.
10367 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
10368 (try_window_reusing_current_matrix): Handle charpos/bytepos.
10369 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
10370 (try_window_id): Handle charpos/bytepos.
10371 (Ftrace_redisplay_toggle): Return Qnil.
10372 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
10373 (insert_left_trunc_glyphs): Likewise.
10374
10375 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
10376 do a real merge).
10377 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
10378 (increment_glyph_row_buffer_positions): Ditto.
10379 (copy_glyph_row_contents): Ditto.
10380 (check_matrix_invariants): Add additional checks for charpos/
10381 bytepos consistency.
10382 (direct_output_for_insert): Changed for charpos/bytepos.
10383 (buffer_posn_from_coords): Likewise. Put code dealing with
10384 `direction-reversed' in #if 0.
10385
10386 * xterm.h: Merge with 20.2.97.
10387
10388 * frame.h: Merge with 20.2.97.
10389
10390 * window.h: Merge with 20.2.97. Add window_end_bytepos.
10391
10392 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
10393 start.
10394 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
10395 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
10396 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
10397 (struct it): Various members renamed from .*pos to .*charpos.
10398 (IT_CHARPOS): Access current buffer character position of an
10399 iterator.
10400 (IT_BYTEPOS): Access current buffer byte position of an iterator.
10401 (IT_STRING_CHARPOS): Access current string character position of
10402 an iterator.
10403 (IT_STRING_BYTEPOS): Access current string byte position of
10404 an iterator.
10405 (globally): Add function prototypes from 20.2.97.
10406
10407 * everywhere: Use P_ instead of PROTO for function prototypes
10408 because everyone else seems to use P_.
10409
10410 * dispextern.h (struct text_pos): Structure describing a charpos/
10411 bytepos position in text.
10412 (BYTEPOS): Access the byte position part of a text_pos.
10413 (CHARPOS): Likewise for the character position.
10414 (SET_TEXT_POS): Set a text_pos from a character and byte position.
10415 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
10416 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
10417 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
10418 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
10419 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
10420 for buffer and string positions.
10421 (struct glyph): Use text_pos.
10422 (struct it): Renamed from display_iterator. Use text_pos.
10423
104241998-07-23 Gerd Moellmann <gerd@gnu.org>
10425
10426 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
10427 pixmap.
10428
104291998-07-21 Gerd Moellmann <gerd@gnu.org>
10430
10431 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
10432 * xterm.c (x_draw_row_bitmaps): Use it.
10433 * dispnew.c (row_equal_p): Ditto.
10434 (update_window_line): Ditto.
10435
10436 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
10437 flag of images.
10438
10439 * dispextern.h (struct image): Removed member loading_failed_p.
10440 It's probably better to have the chance to try to load an image
10441 again.
10442
104431998-07-20 Gerd Moellmann <gerd@gnu.org>
10444
10445 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
10446 at ZV if `indicate-zv-lines' is non-nil.
10447 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
10448
10449 * dispnew.c (row_equal_p): Compare displays_text_p and
10450 ends_at_zv_p flags of rows.
10451 (update_window_line): Ditto.
10452
10453 * buffer.h (struct buffer): New member indicate_zv_lines.
10454
10455 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
10456 (init_buffer_once): New variable `default-indicate-zv-lines'.
10457 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
10458
10459 * xdisp.c (redisplay_window): Don't try moving the cursor
10460 if current glyph row w->last_cursor.vpos isn't enabled.
10461
10462 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
10463
10464 * window.c (Fset_window_vscroll): Allow only negative scroll
10465 values. Others don't seem to make sense, and this way it's easy
10466 to restore a vscroll of zero.
10467
10468 * xterm.c (x_inverted_image_mask): Check that pixmap could be
10469 allocated.
10470 (x_draw_image_glyph_string_background): Don't clip if pixmap
10471 could not be created.
10472
10473 * xfns.c (xbm_load_image_from_file): Check that pixmap could
10474 be created.
10475 (xbm_load): Ditto.
10476 (gs_load): Ditto.
10477
10478 * xterm.c (x_get_glyph_overhangs): Take image and stretch
10479 glyphs into account.
10480
10481 * xfaces.c (realize_default_face): Don't set font family of
10482 the default face from the fontset alias name for `fontset-startup'.
10483
10484 * xfns.c (gs_load): Pass frame's pixel foreground and background
10485 color to the Lisp loader.
10486
104871998-07-19 Gerd Moellmann <gerd@gnu.org>
10488
10489 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
10490 libtiff34.
10491
10492 * configure.in (--with-tiff, HAVE_TIFF): Added.
10493
10494 * config.in (HAVE_TIFF): Added.
10495
10496 * Makefile.in (LIBTIFF): Added.
10497
10498 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
10499
10500 * Makefile.in (LIBJPEG): Added.
10501
10502 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
10503 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
10504 jpeglib.h.
10505
10506 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
10507 where the library is installed in /usr/local/lib, e.g. FreeBSD,
10508 configure must be run with `--x-includes=/usr/X11R6/include:
10509 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
10510
105111998-07-18 Gerd Moellmann <gerd@gnu.org>
10512
10513 * config.in (HAVE_JPEG): Added.
10514
10515 * xfns.c (ct_init): Initialize color table used to map RGB colors
10516 from images to X pixel colors.
10517 (ct_free): Free color table.
10518 (ct_lookup): Look an RGB color up.
10519 (ct_allocated_colors): Get vector of allocated colors.
10520 (pbm_image_p): Test if image specification is a valid PPM
10521 image specification.
10522 (pbm_scan_number): Scan a decimal ASCII number from a file.
10523 (pbm_load): Load a PPM image.
10524
10525 * window.c (Fset_window_vscroll): Adjust glyph matrix if
10526 necessary. Take canonical character units as parameter.
10527 (Fwindow_vscroll): Return canonical character units.
10528
10529 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
10530 w->dy to display height for which glyph rows must be allocated.
10531
105321998-07-17 Gerd Moellmann <gerd@gnu.org>
10533
10534 * xfaces.c (face_at_string_position): Merge in region face
10535 so that it won't overwrite the font in the region.
10536 (face_at_buffer_position): Ditto.
10537 (realize_basic_faces): Don't realize region face.
10538
10539 * dispextern.h (enum face_id): REGION_FACE_ID removed.
10540
10541 * xterm.c (x_set_glyph_string_background_width): Don't let
10542 cursor face extend to end of line.
10543
10544 * xdisp.c (append_space): If adding space of default face,
10545 make sure glyph ist produced with right face.
10546
10547 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
10548 background color of a glyph string.
10549 (x_draw_glyph_string_background): Call it.
10550 (x_draw_glyph_string_bg_rect): Ditto.
10551 (x_draw_stretch_glyph_string): Ditto.
10552
105531998-07-15 Gerd Moellmann <gerd@gnu.org>
10554
10555 * xdisp.c (init_iterator): Initialize it->current_y to the
10556 window's vscroll w->dy.
10557
10558 * window.c (Fwindow_vscroll): Return number of pixels window
10559 is vscrolled smoothly.
10560 (Fset_window_vscroll): Set the number.
10561
10562 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
10563 to_pos in truncated part of a line.
10564
105651998-07-14 Gerd Moellmann <gerd@gnu.org>
10566
10567 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
10568 doesn't fit on the line, truncate it, despite truncate_lines nil.
10569 (display_line): Ditto.
10570
10571 * xfns.c: Experimental support for Ghostscript images.
10572
10573 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
10574 (XTread_socket): React on events from Ghostscript.
10575 (expose_frame): If width or height are zero, redraw entire frame.
10576 (XTread_socket): Call expose_frame after receiving event from
10577 Ghostscript.
10578
10579 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
10580 for Ghostscript support.
10581
10582 * xdisp.c (redisplay_internal): Return quickly if called
10583 recursively.
10584
10585 * alloc.c (NSTATICS): Increased to 1024.
10586
105871998-07-08 Gerd Moellmann <gerd@gnu.org>
10588
10589 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
10590 iterator's glyph row.
10591 (x_produce_stretch_glyph): Call it.
10592 (x_produce_glyphs): Handle `space-width' property; call
10593 x_append_stretch_glyph.
10594
10595 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
10596 property.
10597 (get_iterator_space_width): Determine value of `space-width'
10598 property at iterator's position.
10599 (reseat_iterator): Call it.
10600 (next_element_from_string): Ditto.
10601 (next_element_from_buffer): Ditto.
10602 (init_iterator): Initialize space_width of iterator.
10603 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
10604 moved, but cursor blinks.
10605 (redisplay_internal): Set w->last_cursor_off_p after update.
10606
10607 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
10608 (struct display_iterator): Add new member space_width.
10609
10610 * window.h (struct window): Add last_cursor_off_p.
10611
106121998-07-07 Gerd Moellmann <gerd@gnu.org>
10613
10614 * Saved.
10615
10616 * window.c (Fpos_visible_in_window_p): Case window not up to
10617 date---return nil if iterator hasn't reached position.
10618
106191998-07-06 Gerd Moellmann <gerd@gnu.org>
10620
10621 * xdisp.c (text_outside_line_unchanged_p): Fix case that
10622 overlays have changed.
10623 (redisplay_window): Case cursor movement. Don't try it if
10624 last_cursor.vpos is out of range.
10625
10626 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
10627 way, the display optimization for the line containing the cursor
10628 is used more frequently, esp. when we have a blinking cursor.
10629 (display_line): Don't set this_line_.* variables.
10630
10631 * xterm.c (x_redraw_cursor): Removed.
10632 (x_display_and_set_cursor): Set cursor type depending on
10633 cursor_off_p flag of window.
10634
10635 * dispnew.c (redraw_cursor_hook): Removed.
10636 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
10637 member of the selected window.
10638
10639 * xfaces.c (Fface_font): Added for compatibility with 20.2.
10640
10641 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
10642 Return glyph area under x/y.
10643 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
10644
10645 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
10646 after redisplaying.
10647
106481998-07-05 Gerd Moellmann <gerd@gnu.org>
10649
10650 * xdisp.c (text_outside_line_unchanged_p): Test if changes
10651 are all outside of a line of text.
10652 (redisplay_internal): Use it.
10653
106541998-06-30 Gerd Moellmann <gerd@gnu.org>
10655
10656 * xdisp.c (next_element_from_buffer): After skipping over
10657 invisible text, look for the `glyph' property.
10658 (set_iterator_stop_pos): Ignore check positions in front
10659 of an iterator's current position.
10660
10661 * xterm.c (show_mouse_face): Don't act on rows that don't exist
10662 anymore or which are marked as not having valid contents.
10663
10664 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
10665 realized faces if new attribute value is equal to old value.
10666
106671998-06-29 Gerd Moellmann <gerd@gnu.org>
10668
10669 * xfaces.c (Finternal_make_lisp_face): Increment
10670 lface_id_to_name_size when lface_id_to_name is reallocated.
10671
106721998-06-27 Gerd Moellmann <gerd@gnu.org>
10673
10674 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
10675 as minimum of endpos and overlay_pos.
10676 (load_overlay_strings): Set next_overlay_pos of iterator to
10677 -1 if we don't have to check for more overlay strings.
10678
106791998-05-09 Gerd Moellmann <gerd@gnu.org>
10680
10681 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
10682 do anything if iterator is at ZV because scan_buffer doesn't
10683 work otherwise.
10684
10685 * xterm.c (x_encode_char): Inline it.
10686 (x_get_char_font_and_encoding): Simplified.
10687 (x_per_char_metric): Inline it.
10688
10689 * xterm.c (x_draw_glyph_string_relief): Use clipping.
10690
10691 * xdisp.c (get_next_display_element): Check for end of relief
10692 face moved here from next_element_from_buffer.
10693
10694 * xterm.c (x_produce_image_glyph): Add relief thickness.
10695 (x_produce_stretch_glyph): Ditto.
10696
106971998-05-08 Gerd Moellmann <gerd@gnu.org>
10698
10699 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
10700 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
10701
10702 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
10703 from a glyph property.
10704 (x_produce_glyphs): Use it.
10705
10706 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
10707
10708 * xterm.c (x_produce_image_glyph): Add to current_x only if
10709 in text area.
10710 (x_produce_glyphs): Ditto.
10711
10712 * xdisp.c (display_line): Compute row height from glyphs in
10713 marginal areas.
10714
10715 * xterm.c (x_draw_image_glyph_string_background): Draw
10716 background of an image glyph string.
10717 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
10718 the background of a glyph string.
10719 (x_draw_image_glyph_string_foreground): Draw the foreground of
10720 an image glyph string.
10721 (x_inverted_image_mask): Return the inverted mask of an image.
10722
10723 * xfns.c (x_draw_image): Removed.
10724
10725 * dispextern.h (struct image_type): Remove drawing function.
10726
10727 * xfaces.c (load_face_colors): Swap colors if face is inverse.
10728
10729 * xdisp.c (get_next_display_element): In marginal areas, translate
10730 newlines, tabs, etc. like normal control characters.
10731
10732 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
10733 and color.
10734 (free_realized_faces): Set frame garbaged.
10735
10736 * xfaces.c (syms_of_xfaces): Add defsubr for
10737 internal-lisp-face-attribute-values.
10738
107391998-05-07 Gerd Moellmann <gerd@gnu.org>
10740
10741 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
10742 full.
10743 (x_produce_image_glyph): Set IT->nglyphs to 1.
10744 (x_draw_image_glyph_string): Use inverted mask to draw background.
10745
10746 * dispextern.h (struct image_type): Additional clipping rect
10747 parameters for drawing functions.
10748
10749 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
10750 a glyph string.
10751 (x_draw_image_glyph_string): Use it and pass the rect to the
10752 image drawing function.
10753
10754 * xdisp.c (fill_iterator_from_glyph_property): Use position of
10755 first character with `glyph' property as image position. Set
10756 iterator back to that position as long as the image hasn't been
10757 consumed with set_iterator_to_next.
10758 (set_cursor_from_row): Accept when glyph with given position is
10759 not found in the row. Set cursor x to end of line in that case,
10760 so that we can hscroll.
10761 (redisplay_internal): Correct computation of delta by which
10762 positions have changed in redisplay optimization for cursor
10763 row of selected window.
10764
10765 * xdisp.c (display_line): Remove start_pos.
10766 (display_line): Fix bug preventing display optimization for
10767 cursor line of selected window.
10768 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
10769 instead.
10770
10771 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
10772 (update_text_area): Take glyph pixel width into account
10773 when trying to find a resync point.
10774 (row_equal_p): Compare glyphs in all areas.
10775
107761998-05-06 Gerd Moellmann <gerd@gnu.org>
10777
10778 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
10779
10780 * dispextern.h (struct glyph_row): Use unsigned hash value.
10781
10782 * xdisp.c (display_line): Simplified and made faster by setting
10783 the cursor with set_cursor_from_row.
10784 (set_cursor_from_row): Handle rows of desired matrix.
10785
107861998-05-05 Gerd Moellmann <gerd@gnu.org>
10787
10788 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
10789 with type != CHAR_GLYPH.
10790 (fill_iterator_from_glyph_property): Return void. Set
10791 method to next_element_from_image.
10792 (next_element_from_image): Dummy function for delivering a
10793 single image id.
10794 (set_iterator_to_next): Add method next_element_from_image.
10795 (redisplay_window): When recentering, and cursor vpos is -1
10796 after display, assume middle of window is in first line displayed
10797 in window, and display again.
10798 (fill_iterator_from_glyph_property): Assign image glyph
10799 the position of the first character having the glyph property.
10800
10801 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
10802 * xfns.c (x_draw_image): Use it.
10803 * xterm.c (x_produce_image_glyph): Use it.
10804
10805 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
10806
10807 * Makefile.in: Extraneous #define of LIBXPM removed.
10808
10809 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
10810 (x_fill_stretch_glyph_string): Fill a glyph string from a
10811 stretch glyph.
10812 (x_compute_glyph_string_overhangs): Compute overhangs only
10813 for text glyph strings.
10814 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
10815 (x_draw_glyph_string): Call it.
10816
10817 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
10818 (struct glyph): Add sub-structure for stretchable glyphs.
10819 (GLYPH_EQUAL_P): Compare glyph type and u.val.
10820
10821 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
10822 #ifdef HAVE_FACES.
10823
10824 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
10825
10826 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
10827 setup_iterator_from_glyph_property. Don't do it for terminal
10828 frames.
10829
10830 * xterm.c (x_produce_image_glyph): Produce glyph for image
10831 that can't be loaded.
10832
10833 * xfns.c (lookup_image): If image can't be loaded, set its
10834 width and height so that we can draw a rectangle.
10835 (x_draw_image): Draw a rectangle for images that don't have
10836 a pixmap.
10837 (make_image): Set hash value.
10838 (image_spec_equal_p): Use image_spec_value.
10839
10840 * xterm.c (expose_frame): Don't try to redraw if basic faces
10841 haven't benn realized yet.
10842 (x_draw_image_glyph_string): Fill background only if image
10843 is not as tall as row.
10844
108451998-05-04 Gerd Moellmann <gerd@gnu.org>
10846
10847 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
10848 (LIBX)[HAVE_X11]: Add LIBXPM.
10849
10850 * xfns.c (xpm_image_p): Implementation of image type functions
10851 for XPM.
10852 (xpm_load): Ditto.
10853
10854 * dispextern.h (struct image): Add mask pixmap for XPM.
10855
10856 * xfns.c (x_draw_image): Handle images with masks.
10857
10858 * configure.in: --with-xpm added. Code detecting -lXpm added.
10859
10860 * config.in: Add HAVE_XPM.
10861
10862 * xfns.c (xbm_draw): Removed.
10863 (x_draw_image): Default implementation for drawing images.
10864 (xbm_keyword_index): Remove XBM_DEPTH.
10865 (xbm_format): Remove `:depth'.
10866 (xbm_image_spec_from_file): Removed to reduce consing.
10867 (xbm_load_image_from_file): Added for the same reason.
10868
10869 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
10870 glyph string.
10871 (x_draw_image_glyph_string): Pass ybase to image draw function.
10872
10873 * xfns.c (make_image): Set default baseline.
10874
10875 * xterm.c (x_produce_image_glyph): Compute ascent of image
10876 from its height and baseline percentage.
10877
10878 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
10879 (xbm_format): Add description for `:baseline'.
10880 (xbm_image_spec_from_file): Add keywords from original spec to
10881 result.
10882 (xbm_load): Set baseline of image.
10883 (xbm_image_p): Check range for baseline.
10884
10885 * dispextern.h (struct image): Add member baseline.
10886
10887 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
10888
10889 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
10890
10891 * xdisp.c (get_next_display_element): Do character translations
10892 only if delivering characters.
10893
108941998-05-03 Gerd Moellmann <gerd@gnu.org>
10895
10896 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
10897 DISP_CHARACTER.
10898
10899 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
10900 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
10901
109021998-05-02 Gerd Moellmann <gerd@gnu.org>
10903
10904 * xfns.c (prepare_image_for_display): Set image timestamp.
10905 (clear_image_cache): Clear images if image's timestamp +
10906 Vimage_eviction_seconds is > now.
10907 (syms_of_xfns): New variables image-eviction-seconds, and
10908 image-types.
10909 (add_image_format): Add to image-types.
10910 (xbm_load): Support new image spec format.
10911 (x_alloc_image_color): Allocate a color for an image.
10912
10913 * dispextern.h (struct image): Add timestamp.
10914
10915 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
10916 vectors of bool-vectors.
10917 (xbm_lisp_object_from_file): Build new format image spec.
10918
109191998-05-01 Gerd Moellmann <gerd@gnu.org>
10920
10921 * xfaces.c (init_frame_faces): Initialize image cache.
10922 (free_frame_faces): Free it.
10923
10924 * xterm.c (x_delete_display): Don't free image cache.
10925
10926 * emacs.c (main): Call init_xfns.
10927
109281998-04-30 Gerd Moellmann <gerd@gnu.org>
10929
10930 * alloc.c (mark_object): Mark objects in image cache.
10931
10932 * xfns.c (x_set_internal_border_width): Correct call to
10933 widget_store_internal_border_width.
10934
10935 * widget.c (widget_store_internal_border): Return void.
10936
10937 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
10938 void.
10939 (init_x_parm_symbols): Return void.
10940 (x_report_frame_params): Ditto.
10941 (x_set_border_pixel): Ditto.
10942 (syms_of_xfns): Ditto.
10943 (x_destroy_all_bitmaps): Use xfree instead of free.
10944
10945 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
10946
10947 * xterm.c (x_term_init): Initialize image_cache of display info.
10948 (x_delete_display): Free image cache.
10949
10950 * xterm.h (struct x_display_info): Add image_cache.
10951
10952 * xfns.c (make_image_cache): Allocate a new image cache.
10953 (free_image_cache): Free an image cache.
10954 (make_image): Allocate an image.
10955 (free_image): Free an image.
10956
10957 * dispextern.h (struct image): Structure describing an image.
10958 (struct image_cache): Structure describing an image cache.
10959
109601998-04-29 Gerd Moellmann <gerd@gnu.org>
10961
10962 * xdisp.c (check_iterator_glyph_property): Return int. Value is
10963 non-zero if iterator is filled with something to return.
10964 (next_element_from_buffer): Immediately return if
10965 setup_iterator_from_glyph_prop has filled iterator with pixmap.
10966 (next_element_from_string): Likewise.
10967
10968 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
10969
10970 * dispextern.h (struct glyph): Add pixmap_id.
10971 (display_element_type): Add DISP_PIXMAP.
10972
10973 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
10974 malloc/free.
10975
10976 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
10977 (clear_face_cache): Call it.
10978
10979 * xterm.c (x_query_font): Don't look at empty font table slots.
10980 (x_compute_min_glyph_bounds): Likewise.
10981 (x_term_init): Initialize font_table to null.
10982 (x_load_font): Change allocation of font_info structures so
10983 that it is possible to free fonts.
10984
10985 * xfns.c (Fx_close_connection): Use xfree instead of free.
10986 Only free fonts from filled font table entries.
10987
10988 * xfaces.c (best_matching_font): Support use of scalable fonts.
10989 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
10990
10991 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
10992 and resy.
10993 * xterm.c (x_term_init): Compute resx and resy.
10994
10995 * xfaces.c (split_font_name): Don't reject scalable fonts.
10996
10997 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
10998 in #if 0.
10999
11000 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
11001 point size cannot be determined.
11002
11003 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
11004 width over all fonts on a frame.
11005 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
11006 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
11007 macros.
11008
11009 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
11010 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
11011 (x_load_font): Use x_compute_min_char_bounds.
11012
11013 * xterm.h (struct x_display_info): New members smallest_char_width
11014 and smallest_font_height.
11015
110161998-04-28 Gerd Moellmann <gerd@gnu.org>
11017
11018 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
11019 the same name if GC of face is zero.
11020
11021 * dispextern.h (struct face): Member non_ascii_gc removed.
11022
11023 * xterm.c (x_get_char_font_and_encoding): Return face's font
11024 for characters < 0177 in default face. Prepare face for
11025 display before returning it.
11026 (x_produce_glyphs): Use it->charset.
11027 (x_get_char_font_and_encoding): Simplified.
11028 (x_encode_char): Remove parameter `font'.
11029
11030 * xfaces.c (choose_face_font): If registry from charset symbol
11031 doesn't contain a `-', make it a pattern by appending "*-*".
11032
11033 * xdisp.c (check_iterator_glyph_property): Adjust limit for
11034 glyph_check_pos computation to character boundary.
11035
110361998-04-27 Gerd Moellmann <gerd@gnu.org>
11037
11038 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
11039
11040 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
11041 ASCII face for a given Lisp face id.
11042
11043 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
11044 account.
11045 (reseat_iterator): Set glyph_check_pos. Handle case where
11046 new position is < original position.
11047 (check_iterator_glyph_property): Handle glyph property in strings.
11048 (next_element_from_string): Call above function.
11049 (next_element_from_display_vector): Handle faces in glyphs.
11050 (get_next_display_element): Set face_id of glyphs for
11051 control chars to zero.
11052
11053 * Makefile.in (term.o): Add dependency on dispextern.h.
11054
11055 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
11056 (display_line): Handle marginal areas.
11057 (move_iterator_in_display_line_to): Likewise.
11058
11059 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
11060
11061 * xfaces.c (face_at_buffer_position): Don't merge with nil
11062 text property.
11063 (face_at_string_position): Ditto.
11064
11065 * dispextern.h (struct display_iterator): Use a stack of saved
11066 values instead of saving check positions etc. individually.
11067
11068 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
11069 maybe pop the iterator's stack.
11070 (save_iterator_settings): Push a value on iterator's stack.
11071 (get_overlay_strings_at_iterator_position): Use it.
11072 (restore_iterator_settings): Pop the stack.
11073 (set_iterator_to_next_overlay_string): Use it.
11074
11075 * xfaces.c (try_font_list): Use alternative font families.
11076
110771998-04-26 Gerd Moellmann <gerd@gnu.org>
11078
11079 * xfaces.c (Fset_face_font_sort_order): Set the order in which
11080 font selection matches fonts.
11081 (Fface_font_sort_order): Return the font sort order.
11082 (best_matching_font): Find best matching font based on sort order.
11083 (cmp_font_names): Sort by given sort order.
11084
11085 * dispextern.h (struct display_iterator): New member faces_p.
11086 * xdisp.c (init_iterator): Initialize it->faces_p.
11087 (compute_face_at_iterator_string_position): Use it.
11088 (compute_face_at_iterator_position): Use it.
11089 (init_iterator): Use it.
11090 (display_mode_line): Ditto.
11091
11092 * xdisp.c (get_next_display_element): Put code choosing a face
11093 when the charset changes in #ifdef HAVE_FACES.
11094
11095 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
11096 lookup_face_for_charset.
11097
11098 * xfaces.c (free_font_names): Renamed from free_split_font_names.
11099 (free_all_realized_faces): Renamed from remove_all_realized_faces.
11100
111011998-04-25 Gerd Moellmann <gerd@gnu.org>
11102
11103 * xfaces.c (best_matching_font): Return the name of the best
11104 matching font in an array of font_name structures.
11105 (choose_face_font): Use it.
11106 (choose_face_fontset_font): Use it.
11107 (find_best_weight_font): If final font found has same weight as
11108 the font we started with, return the original font because it is a
11109 better match for the resolution of the display.
11110 (find_best_slant_font): Likewise.
11111 (merge_face_vector_with_property): Check more invalid attribute
11112 values.
11113 (lface_suitable_for_charset_p): Replaced by a macro with the same
11114 name in upper-case.
11115
111161998-04-24 Gerd Moellmann <gerd@gnu.org>
11117
11118 * dispextern.h (struct face): Member
11119 fontset_chosen_for_realization_p removed.
11120
11121 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
11122 end of the collision list, so that we find more specific faces
11123 first.
11124 (lookup_face_for_charset): Look up a new face if face->fontset >=
11125 0, and charset != CHARSET_COMPOSITION.
11126
11127 * xfaces.c (split_font_name): Return zero if point size of font
11128 couldn't be computed.
11129 (realize_default_face): Use ASCII font of a fontset to determine
11130 font-related attributes of the default face.
11131 (face_fontset): Return fontset id for face family.
11132 (font_list): Additional parameter font_pattern. If non-nil,
11133 return fonts matching that pattern.
11134
111351998-04-23 Gerd Moellmann <gerd@gnu.org>
11136
11137 * xfaces.c (choose_face_fontset): If new fontset cannot be
11138 constructed, or fontset name cannot be split, return the id of the
11139 standard fontset.
11140
11141 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
11142 When Emacs starts, it may be called for the initial frame which
11143 isn't an X frame.
11144
11145 * dispextern.h (struct face): New members foreground_defaulted_p,
11146 background_defaulted_p.
11147 (struct face): Members `mask' and `cache' removed.
11148
11149 * xfaces.c (load_color): Set them.
11150 (free_face_colors): Check them.
11151 (xlfd_point_size): Return -1 if resolution or point size of
11152 font unknown.
11153
11154 * xfaces.c (free_font): Removed.
11155 (load_face_font_or_fontset): Renamed from load_font.
11156 (load_face_font_or_fontset): Use message2 instead of signalling.
11157 (load_color): Likewise.
11158 (load_pixmap): Likewise.
11159
11160 * xterm.h (struct x_display_info): Add screen_dpi.
11161 * xterm.c (x_term_init): Initialize it.
11162 * xfaces.c (xlfd_point_size): Use it.
11163 (split_font_name): Compute numeric XLFD_RESY.
11164 (cmp_font_names): Make fonts with an y-resolution more
11165 similar to that of the frame appear first in the result.
11166
11167 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
11168 is set for the face to cache, add it to the end of the collision
11169 list.
11170 (try_font_list): If fonts for given family and registry cannot
11171 be found, first try to keep the registry, and choose a different
11172 family.
11173 (choose_face_font): Allow nfonts == 0.
11174 (try_font_list): Give up if no font matches given registry.
11175
111761998-04-22 Gerd Moellmann <gerd@gnu.org>
11177
11178 * xterm.c (x_get_char_font_and_encoding): Get font_info from
11179 font info id of the face.
11180
11181 * xfaces.c (load_font): Set font_info_id.
11182 (realize_face): Ditto.
11183
11184 * dispextern.h (struct face): Change member font_info to
11185 font_info_id.
11186
11187 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
11188 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
11189
11190 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
11191 isn't ASCII, get the ASCII face before adding a space.
11192 (append_space): Likewise.
11193 (insert_left_trunc_glyphs): Initialize truncate_it's charset
11194 to -1 so that it will compute the right face for the truncation
11195 glyphs.
11196
11197 * xfaces.c (realize_face): Set
11198 face->fontset_chosen_for_realization_p.
11199 (lookup_face_for_charset): If fontset wasn't specified originally
11200 and new charset != CHARSET_COMPOSITION, get a new face for that
11201 charset.
11202
11203 * dispextern.h (struct face): New member
11204 fontset_chosen_for_realization_p_specified_p. Set to 1 when
11205 realize_face has chosen a fontset to display composite characters
11206 for a Lisp face not specifying a fontset.
11207
11208 * xdisp.c (extend_face_to_end_of_line): Move tests for default
11209 face and line already filled here. Don't do anything if current
11210 face hasn't a relief or has a background equal to the frame
11211 background.
11212
11213 * xfaces.c (split_font_name): Additional parameter numeric_p.
11214 Don't compute numeric values if it is non-zero.
11215 (choose_face_fontset): Call split_font_name with numeric_p == 0.
11216 (choose_face_fontset): Print a message if fontset contains a
11217 font whose name cannot be split into fields.
11218
112191998-04-21 Gerd Moellmann <gerd@gnu.org>
11220
11221 * xfaces.c (try_font_list): Try to load a list of fonts,
11222 possibly using less restrictive patterns.
11223 (choose_face_font): Use it.
11224
11225 * xterm.c (x_get_char_font_and_encoding): For charset !=
11226 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
11227
11228 * dispextern.h (struct face): New member font_info.
11229
11230 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
11231 specifying a fontset as well as those not having a fontset.
11232 (free_font): Make it empty.
11233 (realize_face): Use changed load_font.
11234
11235 * xterm.c (x_get_char_font_and_encoding): If face doesn't
11236 fit for charset, get the right one.
11237
11238 * xfaces.c (load_font): Take frame and name parameter, return
11239 font.
11240 (free_font): Likewise.
11241 (split_font_name): Compute numeric values for height, swidth etc.
11242 (cmp_font_names): Use them.
11243 (find_best_width_font): Ditto.
11244 (find_best_height_font): Ditto.
11245 (find_best_weight_font): Ditto.
11246 (find_best_slant_font): Ditto.
11247 (lface_hash): Add weight, slant, swidth and relief to hash value.
11248 (lface_equal_p): Make it faster.
11249 (lface_from_symbol): Use assq_no_quit.
11250 (Fnote_default_face_changed): Removed.
11251 (cmp_font_names): Use strcmp instead of xstricmp.
11252 (face_charset_registries): Removed.
11253
112541998-04-20 Gerd Moellmann <gerd@gnu.org>
11255
11256 * frame.h (CHECK_FRAME): Give this macro a statement form.
11257 (CHECK_LIVE_FRAME): Ditto.
11258
11259 * xfaces.c (find_best_width_font): Find the best matching font
11260 for a given width.
11261 (find_best_height_font): Likewise for height.
11262 (find_best_weight_font): Likewise for weight.
11263 (find_best_slant_font): Likewise for slant.
11264 (choose_face_font): Use them.
11265 (get_lface_attributes): Always return frame-local face attrs.
11266 (Finternal_merge_in_global_face): Merge local face with
11267 global face attributes.
11268
11269 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
11270 Lisp face attributes.
11271
112721998-04-19 Gerd Moellmann <gerd@gnu.org>
11273
11274 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
11275 and :italic for compatibility.
11276 (Finternal_set_lisp_face_attribute_from_resource): Handle
11277 :bold and :italic. Handle boolean resource values for
11278 :underline and :italic.
11279
11280 * xfns.c (display_x_get_resource): Make it externally visible.
11281
11282 * xfaces.c (lface_from_symbol): Take a frame as parameter.
11283 If that frame is non-null, return the frame-local face.
11284 (Finternal_make_lisp_face): Additional frame argument.
11285 (lface_attributes): Get face attributes from global and frame-local
11286 definitions.
11287 (Finternal_lisp_face_equal_p): Additional frame argument.
11288 (merge_lisp_face_vector_with_property): Ditto.
11289 (Frealize_basic_faces): Removed.
11290 (Finternal_get_lisp_face_attribute): Additional frame argument.
11291 (Finternal_lisp_face_p): Ditto.
11292 (load_color) [MSDOS]: Removed because it isn't clear how
11293 to do this for MS-DOS.
11294
11295 * xfaces.c (lface_from_symbol): Get global face definition
11296 from face-global-alist.
11297
11298 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
11299 as values for :underline and :inverse-video.
11300 (Finternal_set_lisp_face_attribute): Allow nil values.
11301
113021998-04-17 Gerd Moellmann <gerd@gnu.org>
11303
11304 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
11305
11306 * xfaces.c (syms_of_xfaces): Add Vall_faces.
11307 (Finternal_make_lisp_face): Add new face to Vall_faces.
11308
11309 * xdisp.c (echo_area_display): Remove code recomputing faces.
11310 (redisplay_internal): Ditto.
11311 (init_iterator): Do it here.
11312
11313 * xfaces.c (choose_face_font): Check that swidth doesn't change
11314 for subusequent attributes.
11315 (xlfd_point_size): Return int.
11316
11317 * xdisp.c (redisplay_internal, echo_area-display): If realized
11318 faces have been cleared, call recompute_basic_faces.
11319
11320 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
11321 face_attributes_changed_p.
11322 (remove_all_realized_faces): Remove all realized faces on
11323 all frames.
11324 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
11325
11326 * xdisp.c (redisplay_internal): If face attributes have been
11327 changed since the last redisplay, recompute basic faces.
11328 (echo_area_display): Ditto.
11329
11330 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
11331
11332 * xfaces.c (min_char_bounds): If face cache not yet present,
11333 don't try to get font dimensions from faces.
11334
11335 * xterm.c (x_frame_mode_line_height): If face cache not present
11336 set, return default height.
11337
11338 * alloc.c (mark_face_cache): Check for null faces. Correct
11339 index bug.
11340
11341 * dispextern.h (struct face): Renamed from struct rface. Member
11342 underline renamed underline_p. Make it a bit-field.
11343
11344 * xfaces.c (init_frame_faces): Allocate face cache.
11345 (free_frame_faces): Free face cache.
11346 (recompute_basic_faces): Realize basic faces only if face cache is
11347 allocated, i.e. after init_frame_faces has been called.
11348
11349 * frame.c (make_frame): Initialze face cache with null.
11350
11351 * xfaces.c (same_size_fonts): Removed.
11352
11353 * xterm.c (x_set_glyph_string_gc): Add post-condition
11354 s->gc != 0.
11355 (x_set_mouse_face_gc): Ditto.
11356 (x_set_mode_line_face_gc): Ditto.
11357
11358 * xfaces.c (realize_default_face): Return int. Value is
11359 zero if frame params don't contain enough information to
11360 realize the default face.
11361 (realize_basic_faces): Ditto.
11362 (init_frame_faces): Realize basic faces.
11363
11364 * xfns.c (x_set_font): First store real font name in frame
11365 parameters, then call recompute_basic_faces.
11366
11367 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
11368
113691998-04-16 Gerd Moellmann <gerd@gnu.org>
11370
11371 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
11372
11373 * xfns.c (Fx_face_fixed_p): Removed.
11374 (Fx_list_fonts): Moved to xfaces.c.
11375
11376 * xfaces.c (compute_face_at_buffer_pos): Renamed to
11377 face_at_buffer_position. Parameter charset removed; always
11378 compute face for CHARSET_ASCII.
11379 (face_at_string_position): Renamed from
11380 compute_face_at_string_pos. Parameter charset removed; always
11381 compute for CHARSET_ASCII.
11382 (lookup_face_for_charset): Take frame parameter instead of
11383 face_cache.
11384 (lookup_face): Ditto.
11385 (compute_char_face): Renamed from compute_glyph_face.
11386
11387 * xdisp.c (init_iterator): Initialize charset member.
11388 (reseat_iterator_to_string): Ditto.
11389 (get_charset_at_buffer_position): Determine charset at
11390 buffer position in current_buffer.
11391 (reseat_iterator): Call above function.
11392 (compute_face_at_iterator_position): Call
11393 compute_face_at_buffer_pos.
11394 (compute_face_at_iterator_string_position): Call
11395 compute_face_at_string_pos.
11396 (get_face_from_id): Removed.
11397 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
11398 Call get_charset_at_buffer_position.
11399 (reseat_iterator): Determine face if charset at pos differs
11400 from iterator's charset.
11401 (reseat_iterator_to_glyph_pos): Removed.
11402
11403 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
11404 Determine charset from buffer position.
11405 (compute_string_char_face): Renamed to compute_face_at_string_pos.
11406 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
11407
11408 * dispextern.h (struct display_iterator): Add member charset.
11409
114101998-04-15 Gerd Moellmann <gerd@gnu.org>
11411
11412 * xfaces.c (compute_char_face): Removed.
11413
11414 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
11415 with new parameter list.
11416
11417 * xfaces.c (region_face): Removed.
11418 (allocate_face): Removed.
11419 (copy_face): Ditto.
11420 (face_eql): Removed.
11421 (intern_face): Removed.
11422 (clear_face_cache): Removed.
11423 (load_font): Ditto.
11424 (unload_font): Ditto.
11425 (load_color): Ditto.
11426 (unload_color): Ditto.
11427 (new_computed_face): Ditto.
11428 (intern_computed_face): Ditto.
11429 (ensure_face_ready): Ditto.
11430 (merge_faces): Ditto.
11431 (compute_base_face): Ditto.
11432 (merge_face_list): Ditto.
11433 (Fmake_face_internal): Removed.
11434 (Fset_face_attribute_internal): Ditto.
11435 (face_name_id_number): Removed.
11436 (Fframe_face_alist): Ditto.
11437 (Fset_frame_face_alist): Ditto.
11438 (Finternal_next_face_id): Ditto.
11439
11440 * xterm.h (struct x_output): Remove computed_faces, and
11441 param_faces. Remove macros accessing them.
11442
11443 * xfaces.c: Entirely new face implementation added.
11444
114451998-04-11 Gerd Moellmann <gerd@gnu.org>
11446
11447 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
11448 `charpos'.
11449
114501998-04-10 Gerd Moellmann <gerd@gnu.org>
11451
11452 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
11453 scroll bar window to reduce flickering. Clear entire height.
11454
11455 * xdisp.c (move_iterator_vertically_backward): Set iterator's
11456 current_x and hpos to zero after moving to previous line
11457 start.
11458
114591998-04-03 Gerd Moellmann <gerd@gnu.org>
11460
11461 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
11462
11463 * xfaces.c (xlfd_point_size): Compute relative point size of
11464 fonts from font and frame resolution.
11465 (sort_fonts): New function to sort fonts, temporarily setting
11466 font_frame to the frame in effect.
11467 (xlfd_point_size): Take additional frame parameter to be able
11468 to get at the display's resolution.
11469
11470 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
11471 BLACK_PIX_DEFAULT.
11472 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
11473 screen of display.
11474
114751998-03-31 Gerd Moellmann <gerd@gnu.org>
11476
11477 * xfaces.c (choose_face_fontset): Instantiate fontsets.
11478
11479 * fontset.h: Add external declarations for Vfontset_alias_alist
11480 and Vglobal_fontset_alist.
11481
11482 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
11483 (realize_default_face): If frame parameters contain an artificial
11484 font name naming a fontset, set the family of the default face to
11485 the fontset name given by the registry.
11486
11487 * Makefile.in (alloc.o): Add dependency to dispextern.h.
11488
114891998-03-22 Gerd Moellmann <gerd@gnu.org>
11490
11491 * alloc.c (mark_object): Add function prototype. Add cast to
11492 Lisp_Object pointer in call to mark_object for symbol names
11493 because this otherwise gives a warning from gcc 2.8.1.
11494 (mark_face_cache): Mark Lisp objects in realized faces.
11495
114961998-03-19 Gerd Moellmann <gerd@gnu.org>
11497
11498 * frame.h (struct frame): Add member face_cache.
11499
11500 * alloc.c (mark_object): Mark face cache.
11501 (mark_face_cache): Mark Lisp faces in face cache of frame.
11502
11503 * frame.c (make_frame): Initialize face_cache.
11504 (Fdelete_frame): Free it.
11505
115061998-03-18 Gerd Moellmann <gerd@gnu.org>
11507
11508 * xfaces.c: Very first skeleton of functions for face realization,
11509 face merging, face cache etc.
11510
11511 * dispextern.h (struct rface): Realized faces. Will replace
11512 struct face when tested.
11513 (struct face_cache): Realized face caches.
11514
11515 * xdisp.c (init_iterator): Initialize area member of display
11516 iterator.
11517
115181998-03-17 Gerd Moellmann <gerd@gnu.org>
11519
11520 * xterm.c (x_append_glyph): Use it->area to store glyphs.
11521
11522 * dispextern.h (struct display_iterator): New member area.
11523
11524 * xterm.c (note_overwritten_text_cursor): Note when the text
11525 cursor of a window is overwritten.
11526
11527 * xdisp.c (set_cursor_from_row): If PT is not found in the
11528 row, display the cursor at the start of the row.
11529
11530 * dispnew.c (direct_output_forward_char): Call
11531 set_cursor_from_row.
11532
11533 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
11534 position is not in an overlay string, set iterator's position and
11535 method explicitly so.
11536 (set_cursor_from_row): Correct cursor position calculation.
11537 Make it externally visible.
11538 (redisplay_window): Call set_cursor_from_row so that there is only
11539 one place where the cursor position is calculated from a current
11540 row.
11541
11542 * dispextern.h (struct display_iterator): New member
11543 overlay_strings_at_end_processed_p.
11544
11545 * xdisp.c (check_iterator): Perform sanity checks on
11546 display_iterators.
11547 (next_element_from_buffer): Check for overlay strings at ZV.
11548
115491998-03-16 Gerd Moellmann <gerd@gnu.org>
11550
11551 * buffer.c (init_buffer_once): Add left_margin_width and
11552 right_margin_width to buffer_local_flags.
11553
11554 * dispnew.c (margin_glyphs_to_reserve): Function computing
11555 number of glyphs to reserve for a marginal area.
11556 (adjust_glyph_matrix): Call it.
11557 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
11558 is not alive.
11559
11560 * window.c (Fset_window_margins): Allow floats.
11561
11562 * buffer.c (syms_of_buffer): Add buffer-local variables
11563 left-margin-width and right-margin-width. Add defaults
11564 default-left-margin-width and default-right-margin-width.
11565
11566 * buffer.h (struct buffer): New members left_margin_width
11567 and right_margin_width.
11568
11569 * window.c (Fset_window_margins): Make window the last and
11570 optional argument.
11571
11572 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
11573 flag no_marginal_areas_p differently.
11574 (x_clear_end_of_line): Ditto.
11575 (x_draw_glyph_string_relief): Compute width of relief differently
11576 for rows with flag no_marginal_areas_p.
11577
11578 * dispnew.c (update_window_line): Update marginal areas only
11579 for rows that don't have no_marginal_areas_p set.
11580
11581 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
11582 (display_menu_bar): Ditto.
11583
11584 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
11585
11586 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
11587 marginal areas in window-based redisplay.
11588
11589 * dispextern.h (struct glyph_matrix): New members
11590 left_margin_glyphs and right_margin_glyphs.
11591
115921998-03-15 Gerd Moellmann <gerd@gnu.org>
11593
11594 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
11595
11596 * charset.c (non_ascii_char_to_string): Use char type parameters
11597 because the function is used that way from outside. Use unsigned
11598 char internally.
11599
11600 * window.c (change_window_height): Return void.
11601 (make_dummy_parent): Return void.
11602 (init_window_once): Return void.
11603 (syms_of_window): Ditto.
11604 (keys_of_window): Ditto.
11605 (delete_window): Correct return with and without value.
11606
11607 * buffer.c (record_buffer): Return void.
11608
11609 * marker.c (unchain_marker): Return void.
11610
11611 * window.c (unshow_buffer): Return void.
11612 (replace_window): Ditto.
11613 (delete_window): Ditto.
11614
11615 * term.c (delete_glyphs_hook): Void return type.
11616 (ring_bell_hook): Ditto.
11617 (set_terminal_window_hook): Ditto.
11618
11619 * sysdep.c (init_sigio): Return void.
11620
11621 * xterm.c (x_set_window_size): Return void.
11622 (x_calc_absolute_position): Ditto.
11623 (x_set_offset): Ditto.
11624 (x_focus_on_frame): Ditto.
11625 (x_unfocus_frame): Ditto.
11626 (x_make_frame_visible): Ditto.
11627 (x_make_frame_invisible): Ditto.
11628 (x_iconify_frame): Ditto.
11629 (x_destroy_window): Ditto.
11630 (x_wm_set_window_state): Ditto.
11631 (x_wm_set_icon_pixmap): Ditto.
11632 (x_wm_set_icon_position): Ditto.
11633 (x_initialize): Ditto.
11634 (x_error_quitter): Ditto.
11635 (x_destroy_window): Use xfree instead of free.
11636
11637 * keyboard.c (clear_waiting_for_input): Return void.
11638
11639 * xterm.c (x_wm_set_size_hint): Return void.
11640 (x_raise_frame): Ditto.
11641 (refreshicon): Ditto.
11642 (x_error_catcher): Ditto.
11643 (x_clear_errors): Ditto.
11644
11645 * keyboard.c (record_asynch_buffer_change): Return void.
11646
11647