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