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