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