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