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