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