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