(del_range_1): Call update_compositions.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
0e85e4a3
KH
12000-02-11 Kenichi Handa <handa@etl.go.jp>
2
3 * insdel.c (del_range_1): Call update_compositions.
4 (del_range_both): Call update_compositions just once..
5
97fa0cc8
DL
62000-02-10 Dave Love <fx@gnu.org>
7
8 * xfns.c (create_frame_xic): Fix initialization of automatic
9 aggregates for pcc.
10
25566a3c
KH
112000-02-09 Kenichi Handa <handa@etl.go.jp>
12
13 * ccl.c (CCL_MAKE_CHAR): New macro.
14 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
15 registers by CCL_MAKE_CHAR before calling translate_char.
16 <CCL_TranslateCharacterConstTbl> Likewise.
17
69da54ba
DL
182000-02-08 Dave Love <fx@gnu.org>
19
20 * lread.c (__EXTENSIONS__): Define.
21
f7136ee8
GM
222000-02-08 Gerd Moellmann <gerd@gnu.org>
23
24 * puresize.h (BASE_PURESIZE): Increase to 650000.
25
7768790b
EZ
262000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
27
28 * msdos.c (XMenuActivate): Turn off the cursor after displaying
29 the help message.
30
38fd211b
EZ
312000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
32
33 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
34 md, mh, mb, mr, and me to the fake termcap entry.
35
66e4690f
KR
362000-02-06 Ken Raeburn <raeburn@gnu.org>
37
38 * sound.c (sound_cleanup): Don't call device close routine if the
39 function pointer is null.
40
a75dfea0
AI
412000-02-06 Andrew Innes <andrewi@gnu.org>
42
43 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
44 around image definitions and prototypes.
45 (gamma_correct) [WINDOWSNT]: New prototype.
46
47 * w32term.c (x_make_frame_visible): Replace call to
48 input_poll_signal with poll_for_input.
49
50 * window.c [WINDOWSNT]: Include w32term.h.
51
52 * xdisp.c [WINDOWSNT]: Include w32term.h.
53
54 * makefile.nt: Add dependencies on w32gui.h.
55 (OBJ1): Include atimer.obj.
56 ($(BLD)\atimer.obj): New dependency rule.
57
58 * w32.c (sigmask): New function (does nothing).
59 (sigunblock): Ditto.
60
61 * frame.c [WINDOWSNT]: Include w32term.h.
62
63 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
64
65 * lread.c (syms_of_lread): Fix literal newlines.
66
67 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
68 the string constant limit (2048 bytes) in MSVC.
69 (main): Ditto.
70
59ddecde
GM
712000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
72
73 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
74 area.
75 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
76 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
77 dispatch the event.
78
07590973
DL
792000-02-04 Dave Love <fx@gnu.org>
80
81 * fileio.c: Remove some unused vars.
82 (_GNU_SOURCE): Define (for euidaccess).
83
84 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
85
86 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
87 gcpro1, gcpro2.
88 (read_minibuf): Deal with allow_props correctly.
89
649351f9
EZ
902000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
91
92 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
93
66e4690f 942000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
95
96 * search.c (compile_pattern): If a cache entry has a nil regexp,
97 fill in that entry instead of clobbering a previously cached
98 string regexp.
99
66e4690f 1002000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
101
102 * puresize.h (BASE_PURESIZE): Increase to 610000.
103
d240a249
GM
1042000-02-02 Gerd Moellmann <gerd@gnu.org>
105
106 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
107 can GC.
108
ca91fb26
KH
1092000-02-02 Kenichi Handa <handa@etl.go.jp>
110
25660570
KH
111 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
112 instead of incrementing ic directly.
113 <CCL_WriteExprConst> Likewise.
114 <ccl_set_expr>: Set ic to jump_address.
115
ca91fb26
KH
116 * fileio.c (e_write): Fix the handling of
117 CODING_FINISH_INSUFFICIENT_SRC.
118
2ede9689
DL
1192000-02-01 Dave Love <fx@gnu.org>
120
121 * editfns.c (Fpropertize): Doc fix.
122
123 * process.c (Fstart_process): Doc fix.
124
125 * eval.c: Fix various doc strings not to duplicate information
126 from help-manyarg-func-alist.
127
128 * window.c (Fset_window_margins): Don't make interactive. Doc
129 fix.
130
131 * doc.c (Vhelp_manyarg_func_alist): New variable.
132 (Fdocumentation): Use it.
133 (syms_of_doc): Define it.
134
b6680a0e
GM
1352000-01-31 Gerd Moellmann <gerd@gnu.org>
136
2cb750ba
GM
137 * xterm.c (xim_open_dpy): Remove unused local variable.
138
74e9213b
GM
139 * emacs.c (USAGE): Use term `display options' instead of `X
140 options'.
141
142 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
143 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
144
b6680a0e
GM
145 * fns.c (sweep_weak_table): New function.
146 (sweep_weak_hash_tables): Use it. Keep on marking until there
147 is no more change.
148
994c5afe
GM
1492000-01-30 Gerd Moellmann <gerd@gnu.org>
150
151 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
152 that XTread_socket does not crash by trying to call XNoOp on a
153 closed display.
154
f00276e3
JR
1552000-01-30 Jason Rumney <jasonr@gnu.org>
156
157 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
158 Change selected_frame to SELECTED_FRAME ().
159 (w32_console_mouse_position): Remove #ifndef MULE from around
160 `insist' parameter.
161
162 * makefile.nt: Remove dosfns.obj.
163
164 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
165
166 * w32fns.c (w32_defined_color): Check for valid frame before
167 applying gamma correction. Eliminate dependency on frame elsewhere.
168 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
169 (w32_to_x_font): Use resx and resy not height_in and width_in.
170 (x_to_w32_font): Doc fix.
171 (xlfd_strip_height): New function to strip and return font height.
172 (w32_font_match): Compare height separately from rest of xlfd
173 spec, using xlfd_strip_height.
174
175 * w32term.c (w32_term_init): Swap resx and height_in, resy and
176 width_in. Use w32_defined_color in place of defined_color.
177
178 * w32faces.c: Merge more of DOS and X specifics in preparation for
179 merge with xfaces.c.
180 (defined_color): Remove FIXME comment.
181 (tty_color_name): Provide w32-specific function.
182 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
183
184 * w32console.c (turn_on_face, turn_off_face): Removed.
185 (w32_face_attributes): New function.
186 (Global_variables): Reduce scope where possible.
187 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
188 fill attribute.
189 (hl_mode): Don't modify text attributes.
190 (write_glyphs): Don't do anything if len <= 0. Use
191 w32_face_attributes to get attributes for drawing. Write
192 terminating codes using char_attr_normal.
193 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
194 (update_begin, update_end): Likewise.
195 (vga_stdcolor_name): New function.
196 (initialize_w32_display): Remove char_attr_reverse and char_attr.
197 (Fset_screen_color): Remove char_attr_reverse.
198
b08e8bb2
GM
1992000-01-29 Gerd Moellmann <gerd@gnu.org>
200
201 * xfns.c (xic_set_preeditarea): Take window parameter and
202 window-relative pixel-positions.
203
204 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
205 is its frame's selected window.
206 (xim_instantiate_callback): Likewise.
207
208 * xfns.c (x_create_im): Removed.
209 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
210 (supported_xim_styles): Renamed from supported_styles.
211 (best_xim_style): Renamed from best_style.
212 (create_frame_xic): Renamed from xic_create_frame.
213 (free_frame_xic): Renamed from xic_destroy_frame.
214
2152000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
216
217 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
218 our frames, call XFilterEvent with 2nd parameter `None'.
219 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
220 returning XBufferOverflow.
221 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
222 area.
223 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
224 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
225 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
226 (xim_initialize, xim_close)
227 [HAVE_X_I18N && HAVE_X11R6]: New functions.
228 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
229 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
230 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
231
232 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
233 and `xim_styles'.
234 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
235 `xic_style' and `xic_xfs'.
236 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
237 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
238 (FRAME_XIM): Removed.
239
240 * xfns.c (supported_styles): New variable.
241 (DEFAULT_STYLE, DEFAULT_FONT): New macros
242 (xic_create_xfontset, best_style, xic_create_frame)
243 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
244 (xic_set_xfontset): New functions.
245
142e109c
DL
2462000-01-28 Dave Love <fx@gnu.org>
247
248 * s/irix6-5.h: Revert last change after change to irix5-0.h.
249
250 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
251
b02786f9
GM
2522000-01-28 Gerd Moellmann <gerd@gnu.org>
253
d060bc9f
GM
254 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
255 for *scratch* if it already existed.
256
b02786f9
GM
257 * emacs.c (USAGE): New macro.
258 (main): Use it to display usage information.
259
2c52d7e4
EZ
2602000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
261
262 Support for the menu-help feature:
263
264 * msdos.h: Change prototypes of XMenuAddSelection and
265 XMenuActivate.
266
267 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
268 part of the line to the termscript file.
269 (IT_clear_to_end): Clear the entire line, not just its beginning.
270 (menu_help_message, prev_menu_help_message): New variables.
271 (IT_menu_make_room): Make room for the help_text member.
272 (IT_menu_display): New argument disp_help; all callers changed.
273 If disp_help is non-zero, store the help text of the active menu
274 item in menu_help_message.
275 (XMenuAddPane): Initialize the help_text member to NULL.
276 (XMenuAddSelection): New argument help_text. Store it in the
277 XMenu structure.
278 (XMenuActivate): New argument help_callback. If the value of
279 menu_help_message has changed since the last time, display the
280 menu help message text while waiting for the mouse to move. Clear
281 the echo area before exiting.
282 (XMenuDestroy): Free the help_text member.
283
ffe0bcd1
GM
2842000-01-27 Gerd Moellmann <gerd@gnu.org>
285
286 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
287 XMenuAddSelection. Pass help callback to XMenuActivate.
288 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
289
50dbd23f
EZ
2902000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
291
292 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
293 and EMACS_SET_USECS.
294
f5941bf8
GM
2952000-01-26 Dave Love <fx@gnu.org>
296
6c67ddee
DL
297 * editfns.c (Fchar_after, Fchar_before): Doc fix.
298
f5941bf8
GM
299 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
300 an error may be signalled.
301
9e49c990
GM
3022000-01-26 Gerd Moellmann <gerd@gnu.org>
303
fc3cb460
GM
304 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
305 LD_SWITCH_SYSTEM inherited from irix5-0.h.
306
9e49c990
GM
307 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
308
d0c037d8
GM
3092000-01-25 Gerd Moellmann <gerd@gnu.org>
310
311 * charset.c (Fstring): If there is a multibyte char among
312 the args, always return a multibyte string.
313
e12489f9
GM
3142000-01-25 Gerd Moellmann <gerd@gnu.org>
315
316 * sysdep.c (sys_select): Turn atimers off and on instead of
317 recording and restoring old alarm handler
318
319 * process.c (toplevel): Include atimer.h.
320 (create_process_1): Rewritten.
321 (create_process): Use atimers instead of alarm.
322 (wait_reading_process_input) [hpux]: Turn atimers off instead
323 of turning off SIGALRM.
324 (wait_reading_process_input): Turn off atimers instead off
325 calling stop_polling.
326
327 * emacs.c (main): Call init_atimer.
328
329 * keyboard.c (toplevel): Include systime.h and atimer.h.
330 (polling_for_input): Removed because unused.
331 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
332 (poll_timer): New variable.
333 (poll_for_input, poll_for_input_1): New functions.
334 (start_polling, stop_polling): Rewritten.
335
336 * keyboard.h (polling_for_input): Removed.
337
338 * atimer.h, atimer.c: New files.
339
340 * Makefile.in (obj): Add atimer.o.
341 (atimer.o): New target.
342
343 * blockinput.h (pending_atimers): Add extern declaration.
344 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
345
346 * lisp.h (popup_activated_flag): Add extern declaration.
347
348 * xmenu.c (popup_activated_flag): Make externally visible.
349 (popup_activate_callback) [USE_MOTIF]: Increment
350 popup_activated_flag.
351 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
352
353 * xterm.c (toplevel): Include atimer.h.
354 (toolkit_scroll_bar_interaction): New variable.
355 (Fxt_process_timeouts): Removed.
356 (x_process_timeouts): New function.
357 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
358 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
359 (x_make_frame_visible): Call poll_for_input_1 instead of
360 input_poll_signal. Don't call alarm.
361 (x_initialize): Install timer calling x_process_timeouts.
362
1e5279b9
DL
3632000-01-24 Dave Love <fx@gnu.org>
364
6c67ddee 365 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
366 Don't use -cckr -- apparently not now necessary.
367
edf6aeb8
EZ
3682000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
369
370 * msdos.c (IT_menu_display): Truncate long menu lines at the right
371 screen boundary.
372
9badad41
JR
3732000-01-23 Jason Rumney <jasonr@gnu.org>
374
375 * w32fns.c (w32_defined_color): Apply gamma correction before
376 trying to map to the palette.
377 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
378 to w32_clear_rect.
379
380 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
381 here. Callers changed to always pass real device context.
382 (w32_draw_bitmap): Likewise.
383 (w32_get_glyph_overhangs): Likewise.
384 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
385 one.
386 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
387 pfnSetScrollInfo and SetScrollRange.
388 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
389 back into MULE characters after decoding them.
390 (x_get_glyph_face_and_encoding): Likewise.
391 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
392 GetCharABCWidthsW fails, since this is defined on Windows 9x.
393 (x_produce_glyphs): Calculate per char metrics for a character
394 that we know exists in default font when font_not_found_p is true.
395
63bd786b
JR
3962000-01-22 Jason Rumney <jasonr@gnu.org>
397
398 * makefile.nt (intervals.obj, composite.obj): New modules.
399 (composite.h): Added as dependency where appropriate.
400
401 * w32gui.h (XGCValue): New struct for emulating X GCs.
402
403 * w32term.h (XCharStruct): New struct for emulating X.
404
405 * w32console.c (turn_on_face, turn_off_face): New functions.
406 (change_line_highlight): New prototype for new redisplay.
407 (write_glyphs): Support multibyte text. Support faces.
408
409 * w32faces.c: Complete rewrite for new redisplay based on new
410 xfaces.c.
411
412 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
413 throughout. struct frame * in place of FRAME_PTR.
414 Skeleton support for images, toolbars, tooltips from xfns.c.
415 (Fx_create_frame): Use system default for default scroll bar
416 width.
417 (w32_get_arg): Renamed from x_get_arg.
418 (Fx_file_dialog): New function.
419 (w32_list_fonts): Check cache before asking system.
420 (Vw32_enable_synthesized_fonts): New variable.
421 (Vw32_enable_italics): Obsolete, removed.
422
423 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
424 Use SELECTED_FRAME macro.
425
426 * w32menu.c: Add skeleton support for help strings on menus.
427 (add_menu_item): Native checkbox and radio support added, but not
428 yet enabled due to bugs.
429 (push_menu_item): Add parameters type, selection and help.
430 Callers updated.
431 Formatting changes to reduce unnecessary diffs with xmenu.c.
432
433 * w32select.c (Fw32_set_clipboard_data): Update call to
434 find_charset_in_str.
435
436 * w32term.c: Complete rewrite for new redisplay based on new
437 xterm.c with necessary sections merged back in from old w32term.c.
438
b50c9214
RS
4392000-01-21 Richard M. Stallman <rms@caffeine.ai.mit.edu>
440
441 * data.c (set_internal): Further fix in same criterion.
442
8cc95642
RS
4432000-01-20 Richard M. Stallman <rms@caffeine.ai.mit.edu>
444
445 * data.c (set_internal): Fix the criteria for whether
446 to swap out the old cached binding.
447
60af03f1
DL
4482000-01-19 Dave Love <fx@gnu.org>
449
450 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
451
f9be074f
KH
4522000-01-18 Kenichi Handa <handa@etl.go.jp>
453
454 * regex.c (re_compile_fastmap): While checking a range table for
455 `charset', skip flag bits for a character class correctly.
456
52b8dbf9
GM
4572000-01-17 Gerd Moellmann <gerd@gnu.org>
458
d36100c9
GM
459 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
460
52b8dbf9
GM
461 * xfns.c (x_window): Call lw_create_widget with new parameter
462 list.
463
464 * widget.c (EmacsFrameSetCharSize): Change size of children first
465 because of problems with main window geometry management under
466 Lesstif.
467
468 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
469 MENU_ITEMS_ITEM_.*.
470 (MENU_ITEMS_ITEM_HELP): New enumerator.
471 (push_menu_item): Add parameter HELP. Record help in menu_items.
472 (single_menu_item, single_submenu, list_of_items): Call
473 push_menu_item with new parameter.
474 (single_submenu): Set help string in widget value.
475 (menu_highlight_callback): New function.
476 (set_frame_menubar): Call lw_create_widget with new
477 parameter list.
478 (xmenu_show, xdialog_show): Ditto.
479
3139018f
GM
4802000-01-13 Gerd Moellmann <gerd@gnu.org>
481
482 * sound.c (Fplay_sound): Improve doc string.
483
83c8f461
RS
4842000-01-11 Richard M. Stallman <rms@gnu.org>
485
486 * lisp.h (set_internal): Enter the new arg.
487
488 * eval.c (specbind): Record buffer-local variables specially,
489 indicating which buffer's binding was saved.
490 (unbind_to): Restore buffer-local variables specially
491 in the proper buffer.
492
493 * data.c (set_internal): New arg BUF.
494
495 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
496 * data.c (Fset): Pass new arg to set_internal.
497 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
498
1fab1775
GM
4992000-01-11 Gerd Moellmann <gerd@gnu.org>
500
501 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
502 xprintsym.
503
83c8f461 5042000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
505
506 * minibuf.c (Ftry_completion): Doc fix.
507
7a85e4df
GM
5082000-01-11 Gerd Moellmann <gerd@gnu.org>
509
510 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
511 vector, too.
512
a970dae4
AS
5132000-01-11 Andreas Schwab <schwab@suse.de>
514
515 * coding.c (code_convert_region): Initialize total_skip.
516
c65d14ee
DL
5172000-01-08 Dave Love <fx@gnu.org>
518
519 * eval.c (Fuser_variable_p): Check customizability too.
520
834938d2
GM
5212000-01-07 Gerd Moellmann <gerd@gnu.org>
522
523 * minibuf.c (Fcompleting_read): Doc fix.
524
e0303cd6
GM
5252000-01-05 Gerd Moellmann <gerd@gnu.org>
526
8a26744b
GM
527 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
528 -L /usr/local/lib.
529
e0303cd6
GM
530 * xfns.c (x_create_im): New function to set IM and IC of a frame.
531 Check that input style is supported before trying to create an
532 IC for it.
533 (x_window): Call x_create_im.
534
2e471eb5
GM
5352000-01-04 Gerd Moellmann <gerd@gnu.org>
536
560a7bd2
GM
537 * xfns.c (current_gif_memory_src): New variable.
538 (gif_load): Record the address of the current memory source
539 in current_gif_memory_src.
540 (gif_read_from_memory): Use current_gif_memory_src.
541
f9ee84a3
GM
542 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
543 macros statement form.
544
d1299cde
GM
545 * sound.c (struct sound): Renamed from struct sound_file.
546 (struct sound): Add members `data' and `header_size'.
547 (enum sound_attr): Add SOUND_DATA.
548 (current_sound, current_sound_device): Variables renamed from
549 sound_file and sound_device.
550 (parse_sound): Parse :data.
551 (parse_sound): Handle sound data in strings.
552 (find_sound_type): Function renamed from find_sound_file_type.
553 (wav_init, au_init): Fail if sound's header_size is smaller than
554 needed header size.
555 (wav_play, au_play): Play sounds from string data.
556
2e471eb5
GM
557 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
558
559 * lisp.h: Add prototype for allocate_string_data.
560
561 * alloc.c (Fgarbage_collect): Return number of live and free
562 strings.
563
564 * alloc.c (mark_buffer): Remove code in #if 0.
565 (gc_sweep): Ditto.
566 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
567 (strings_consed): New variable.
568 (allocate_string): Set it.
569 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
570 (Fmemory_use_counts): Return strings_consed. Use Flist.
571
572 * alloc.c: General cleanup in comments etc. Remove conditional
573 compilation for `standalone'.
574
575 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
576
577 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
578 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
579 (DONT_COPY_FLAG): Removed.
580 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
581 (struct sdata, struct sblock): New
582 (struct string_block): Rewritten.
583 (STRINGS_IN_STRING_BLOCK): New macro.
584 (oldest_sblock, current_sblock, total_strings, total_free_strings)
585 (large_sblocks, string_blocks, string_free_list): New variables.
586 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
587 (init_strings): Rewritten.
588 (allocate_string, allocate_string_data, compact_small_strings)
589 (free_large_strings, sweep_strings): New functions.
590 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
591 (struct string_block_head, current_string_block)
592 (first_string_block, large_string_blocks, STRING_FULLSIZE)
593 (STRING_PAD): Removed.
594 (make_uninit_multibyte_string, make_pure_string): Rewritten.
595 (Fgarbage_collect): Don't set mark bit in large strings.
596 (mark_object): Mark strings differently. Mark symbol names
597 differently.
598 (survives_gc_p): Test marked strings differently.
599 (gc_sweep): Sweep strings differently, unmark strings in
600 symbol names.
601 (compact_strings): Removed.
602
42608ba8
EZ
6032000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
604
605 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
606 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
607
e0a09e1a
KH
6082000-01-04 Kenichi Handa <handa@etl.go.jp>
609
dd9f0750
KH
610 * fileio.c (Finsert_file_contents): Signal error if visiting file
611 in a non-empty buffer.
612
3c0f3b15 613 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 614
44cd3ae5
GM
6152000-01-03 Gerd Moellmann <gerd@gnu.org>
616
617 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
618 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
619
620 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
621
c182a70f
EZ
6222000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
623
624 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
625 need to test for MSDOS frames.
626
24480d5b
EZ
6272000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
628
629 * dosfns.c (unspecified_colors): Remove.
630 (msdos_stdcolor_idx): Use global variables unspecified_fg and
631 unspecified_bg.
632 (msdos_stdcolor_name): Return strings for unspecified fore- and
633 back-ground colors.
634
635 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
636 (syms_of_xfaces): Remove theit staticpro's.
637 (tty_color_name): Return Lisp strings for unspecified fore- and
638 back-ground colors.
639 (Finternal_set_lisp_face_attribute): Remove the special treatment
640 for Qunspecified_{f,b}g.
641 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
642 string.
643
047f434a
GM
6442000-01-03 Gerd Moellmann <gerd@gnu.org>
645
646 * xdisp.c (reseat_at_next_visible_line_start): Position before
647 newline only if ending up on a newline.
648 (next_element_from_ellipsis): Return success. Handle case of
649 displaying no ellipsis. Fix case of ellipsis defined in display
650 table.
651 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
652 returns 0.
653
d684c676
EZ
6542000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
655
656 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
657 (Fcolor_supported_p): Renamed from face-color-supported-p.
658
5fe1d139
EZ
6592000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
660
661 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
662 list of colors renamed to tty-defined-color-alist.
663 (tty_color_name): Pass the frame to tty-color-by-index.
664 (realize_tty_face): tty-color-alist is now a function which
665 accepts the frame as argument.
666
667 * term.c (Ftty_display_color_p): Accept an optional argument
668 FRAME.
669
816be8b8
EZ
6702000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
671
672 * term.c (insert_glyphs): Pass glyph, not &glyph, to
673 encode_terminal_code.
674
b635321e
EZ
6752000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
676
677 * dispnew.c (mode_line_string): Support termcap frames as well.
678
9b784e96
GM
6792000-01-01 Gerd Moellmann <gerd@gnu.org>
680
27189709
GM
681 * syntax.c (Fforward_word): Undo previous change.
682
683 * editfns.c (Fconstrain_to_field): Don't constrain if
684 inhibit-field-text-motion is non-nil.
685 (Fline_beginning_position): Undo previous change.
686 (Fline_end_position): Ditto.
687
688 * syntax.c (Fforward_word): Notice field boundaries only if
689 inhibit-field-text-motion is nil.
690
691 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
692
693 * editfns.c (Vinhibit_field_text_motion): New variable.
694 (inhibit-field-text-motion): New DEFVAR_LISP.
695 (Fline_beginning_position, Fline_end_position): Notice field
696 boundaries only if inhibit-field-text-motion is nil.
697
45158a91
GM
698 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
699 All calls adjusted.
700 (x_build_heuristic_mask): Likewise.
701 (xbm_load_image_from_file): Change error output.
702 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
703 (gif_load, gs_load, x_kill_gs_process): Ditto.
704
9b784e96
GM
705 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
706 color indices when accessing raster pixels.
63cec32f
GM
707 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
708 one of :file or :data.
709 (enum pbm_keyword_index): Add PBM_DATA.
710 (pbm_format): Add :data.
711 (pbm_image_p): Allow either :file or :data.
712 (pbm_read_file): New function.
713 (pbm_scan_number): Rewritten to read from string.
714 (pbm_load): Support :data.
9b784e96 715
5ad6a5fb
GM
7161999-12-31 Gerd Moellmann <gerd@gnu.org>
717
718 * xfns.c: New image functions adapted to Emacs conventions.
719 (png_load, tiff_load, jpeg_load, gif_load): Always GCPRO local
720 variable `file'.
721
63448a4d
WP
7221999-12-31 William M. Perry <wmperry@aventail.com>
723
724 * xfns.c (jpeg_format): Added the :data keyword
725 (jpeg_image_p): JPEG is valid with :file _or_ :data
726 (jpeg_memory_src): Defined new JPEG image source to read from a
727 memory buffer.
728 (jpeg_load): Pay attention to the :data keyword if specified.
729 Instantiates a jpeg_memory_src instead of jpeg_stdio_src if
730 found.
731 (png_format): Added the :data keyword
732 (png_image_p): PNG is valid with :file _or_ :data
733 (png_read_from_memory): New PNG read function to read from a
734 memory buffer.
735 (png_load): Pay attention to the :data keyword if specified. Uses
736 png_set_read_fn() instead of png_init_io() if specified.
737 (tiff_format): Added the :data keyword for TIFF images.
738 (tiff_image_p): TIFF is valid with :file _or_ :data
739 (tiff_read_from_memory): Defined new TIFF I/O functions to read
740 from a memory buffer.
741 (tiff_load): Pay attention to the :data keyword if specified.
742 Uses TIFFClientOpen() instead of TIFFOpen() if specified.
743 (gif_format): Added the :data keyword
744 (gif_image_p): GIF is valid with :file _or_ :data
745 (gif_read_from_memory): New GIF input function to read from a
746 memory buffer.
c65d14ee 747 (gif_load): Pay attention to the :data keyword. Uses DGifOpen()
63448a4d
WP
748 instead of DGifOpenFileName() if specified.
749
c880678e
GM
7501999-12-31 Gerd Moellmann <gerd@gnu.org>
751
752 * xdisp.c (next_element_from_buffer): Change assertion at the end
753 because it doesn't hold when there's an overlay string at the end
754 from which we deliver an image.
755
8ccb9a54
EZ
7561999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
757
758 * msdos.c (IT_update_begin): Don't dereference members of struct
759 window for deleted windows.
760
12ce2351
GM
7611999-12-30 Gerd Moellmann <gerd@gnu.org>
762
a915c648
GM
763 * abbrev.c (Fexpand_abbrev): If expanding an abbrev which has only
764 a hook, and the hook has a non-nil `no-self-insert' property, let
765 the return value of the hook specify whether an expansion took
766 place. If it returns nil, no expansion has been performed.
767
12ce2351
GM
768 * xterm.c (x_make_frame_visible): Wait for frame becoming visible
769 differently.
770
04ee4f45
EZ
7711999-12-30 Eli Zaretskii <eliz@is.elta.co.il>
772
773 * msdos.c (IT_write_glyphs): Track last changes to struct glyph.
774
7f4bc0c3
EZ
7751999-12-29 Eli Zaretskii <eliz@is.elta.co.il>
776
777 * dispnew.c (mode_line_string): Support MS-DOS frames.
778
dac204bc
GM
7791999-12-29 Gerd Moellmann <gerd@gnu.org>
780
781 * eval.c (syms_of_eval): Initialize debugger_may_continue.
782
7b712ad8
KH
7831999-12-29 Kenichi Handa <handa@etl.go.jp>
784
785 * process.c (read_process_output): Fix the args CHARPOS and LENINS
786 to signal_after_change.
787
adb9900f
EZ
7881999-12-28 Eli Zaretskii <eliz@is.elta.co.il>
789
41ad069b
EZ
790 * msdos.c (dos_set_window_size) [__DJGPP__ > 1]: If the frame
791 dimensions changed, invalidate the mouse highlight info.
792 (disable_mouse_highlight, help_echo, previous_help_echo): New
793 variables.
794 (IT_set_mouse_pointer, show_mouse_face, clear_mouse_face)
795 (fast_find_position, IT_note_mode_line_highlight)
796 (IT_note_mouse_highlight): New functions.
797 (IT_update_begin): If the redisplay affects the window where the
798 mouse highlight is, clear the highlight. If the frame where the
799 highlight was displayed was killed, invalidate the highlight
800 info.
801 (IT_update_end): Reset the highlight flag. Reset the mouse
802 highlight-defer flag.
803 (IT_frame_up_to_date): New function, if mouse highlight was
804 deferred due to GC, do it now.
805 (internal_terminal_init): Initialize mouse-highlight related
806 members of the_only_x_display. Assign IT_frame_up_to_date to
807 frame_up_to_date_hook.
808 (dos_rawgetc): If the mouse moved, update mouse highlight. If
809 help_echo changed value, generate a HELP_EVENT event.
810 (syms_of_msdos): Staticpro help_echo and previous_help_echo.
811
adb9900f
EZ
812 * msdos.h (struct display_info): New.
813 (struct x_output): Add the display_info member.
814 (FRAME_X_DISPLAY_INFO): New macro.
815
481b5054
GM
8161999-12-28 Gerd Moellmann <gerd@gnu.org>
817
818 * xdisp.c (try_window_id): Compute BEG_UNCHANGED and END_UNCHANGED
819 if MODIFF > 1.
6448a6b3 820 (dump_glyph_row): Adapt to changes in struct glyph.
481b5054
GM
821
822 * buffer.c (modify_overlay): Always compute unchanged info.
823
a2882b0d
KH
8241999-12-27 Kenichi Handa <handa@etl.go.jp>
825
826 * dispextern.h (FACE_FROM_ID): Cast the arg ID to `unsigned'.
827
89ba5b5f
KH
8281999-12-27 Kenichi Handa <handa@etl.go.jp>
829
830 The following changes are to use more bits for face IDs.
831
832 * lisp.h (GLYPH): Defined as `int', not `unsigned int'. Now the
833 lowest 8 bits are single byte character code, the bits above are
834 face ID.
481b5054 835 (GLYPH_MASK_FACE, GLYPH_MASK_CHAR): Adjusted for the change
89ba5b5f 836 above.
481b5054
GM
837 (FAST_MAKE_GLYPH, FSST_GLYPH_FACE): Likewise.
838 (GLYPH_MASK_REV_DIR, GLYPH_MASK_PADDING): Macros deleted.
89ba5b5f
KH
839
840 * charset.h (CHAR_BYTES): Use ((1 << CHARACTERBITS) - 1) instead
841 of GLYPH_MASK_CHAR.
842
843 * charset.c (char_bytes): Use ((1 << CHARACTERBITS) - 1) instead
844 of GLYPH_MASK_CHAR.
845
846 * dispextern.h (struct glyph): Make face_id and padding_p the top
847 level members. Change members in union `u'.
848 (GLYPH_EQUAL_P): Check also members face_id and padding_p.
849 (GLYPH_CHAR_AND_FACE_EQUAL_P): New macro.
850 (SET_CHAR_GLYPH): Adjusted for the change of struct glyph.
851 (CHAR_GLYPH_PADDING_P): Likewise.
852 (GLYPH_FROM_CHAR_GLYPH): Likewise. Always return -1 for multibyte
853 characters.
854
481b5054 855 * dispnew.c (line_hash_code, direct_output_for_insert): Adjusted
89ba5b5f
KH
856 for the change of struct glyph.
857 (line_draw_cost): Adjusted for the change of
858 GLYPH_FROM_CHAR_GLYPH.
859 (count_match): Use macro GLYPH_CHAR_AND_FACE_EQUAL_P.
860
861 * term.c (encode_terminal_code): Adjusted for the change of struct
862 glyph and GLYPH_FROM_CHAR_GLYPH.
481b5054 863 (write_glyphs, insert_glyphs, append_glyph): Adjusted for the
89ba5b5f
KH
864 change of struct glyph.
865
866 * xdisp.c: All codes adjusted for the change of struct glyph.
867
868 * xterm.c: All codes adjusted for the change of struct glyph.
869
5bcd116c
KH
8701999-12-27 Kenichi Handa <handa@etl.go.jp>
871
872 * composite.h (struct composition): Change the order of declaring
873 members to reduce the byte size of the structure.
874
f21b06b7
GM
8751999-12-25 Gerd Moellmann <gerd@gnu.org>
876
877 * search.c (looking_at_1): Reset immediate_quit before modifying
878 global data.
879
e36557c9
KH
8801999-12-24 Kenichi Handa <handa@etl.go.jp>
881
882 * process.c (read_process_output): Fix the arg FROM to
883 update_compositions.
884
83c8f461 8851999-12-22 Richard M. Stallman <rms@gnu.org>
f7c9e039
RS
886
887 * search.c (Freplace_match): For nonliteral replacement in buffer,
888 construct all the new text first, then insert all at once.
889
0b863bd9
DL
8901999-12-22 Dave Love <fx@gnu.org>
891
892 * xfns.c (Fx_show_tip): Gcpro `timeout' too.
893
6d8e8ef3
GM
8941999-12-22 Gerd Moellmann <gerd@gnu.org>
895
28d7281d
GM
896 * xfns.c (Fx_create_frame): Move x_default_parameter calls that
897 lead to size changes to after the X window has been created.
898
e22ef6eb 899 * xfaces.c (realize_x_face): Don't use uninitialized local
6d8e8ef3
GM
900 variable in xassert.
901
8affcced
KH
9021999-12-22 Kenichi Handa <handa@etl.go.jp>
903
904 * xfaces.c (face_color_supported_p): Check by tty_defined_color
6d8e8ef3 905 only when the frame is not for a window system.
8affcced 906
f2be1146
GM
9071999-12-22 Gerd Moellmann <gerd@gnu.org>
908
deca1348
GM
909 * buffer.c (Fset_buffer_multibyte): Arrange for a thorough
910 redisplay after changing the multibyteness of a buffer.
911
f2be1146
GM
912 * xterm.c (XTread_socket): At the beginning of the loop, pass the
913 frame's X window to XFilterEvent instead of None because that's
914 the X window for which the IC was created. This makes dead
915 accents work when the pointer is not in Emacs' frame.
916 (XTread_socket) <KeyPress>: Don't call XFilterEvent here.
917
a744a2ec
DL
9181999-12-20 Dave Love <fx@gnu.org>
919
920 * xfns.c (Fx_show_tip): Add missing UNGCPRO.
921
9e6985ed
GM
9221999-12-19 Gerd Moellmann <gerd@gnu.org>
923
924 * eval.c (debugger_may_continue): New variable.
925 (syms_of_eval): Add a DEFVAR_BOOL for it.
926 (call_debugger): Bind it.
927
3b620731
EZ
9281999-12-19 Eli Zaretskii <eliz@is.elta.co.il>
929
930 * msdos.c (IT_set_face): Don't swap face colors when highlight or
931 fp->tty_reverse_p is set, unless the computed colors are identical
932 to frame colors. Print both original and computed colors to
933 termscript file.
934 (IT_write_glyphs): Track the changes in handling of composite
935 characters.
936 (IT_set_frame_parameters): Don't set frame colors from
937 unspecified-fg and unspecified-bg pseudo-colors.
938
0f9a51c4
DL
9391999-12-17 Dave Love <fx@gnu.org>
940
941 * data.c (Fkeywordp): New function.
942 (syms_of_data): Install it.
943
363e4e42
EZ
9441999-12-16 Eli Zaretskii <eliz@is.elta.co.il>
945
946 * xfaces.c (tty_defined_color): Fix last change.
947
cfad01b4
GM
9481999-12-15 Gerd Moellmann <gerd@gnu.org>
949
950 * xdisp.c (redisplay_window) <optional new window start>: Check
951 that window start is in [BEGV..ZV].
952
f9d2fdc4
EZ
9531999-12-15 Eli Zaretskii <eliz@is.elta.co.il>
954
955 * dispextern.h (FACE_TTY_DEFAULT_FG_COLOR)
956 (FACE_TTY_DEFAULT_BG_COLOR): New macros.
957
958 * xfaces.c (Qunspecified_fg, Qunspecified_bg): New variables.
959 (syms_of_xfaces): Initialize and staticpro them.
960 (tty_defined_color): If the color name is unspecified-fg or
961 unspecified-bg, return FACE_TTY_DEFAULT_FG_COLOR and
962 FACE_TTY_DEFAULT_BG_COLOR, respectively, as the pixel value.
963 (tty_color_name): If the color pixel value is either
964 FACE_TTY_DEFAULT_FG_COLOR or FACE_TTY_DEFAULT_BG_COLOR, return
965 Qunspecified_fg or Qunspecified_bg, respectively.
966 (Finternal_set_lisp_face_attribute): Allow values Qunspecified_fg
967 and Qunspecified_bg for foreground and background colors.
968 (realize_default_face): If the foreground and background colors
969 are not specified, default to Qunspecified_fg and Qunspecified_bg.
970 (realize_tty_face): By default, set the face colors to
971 FACE_TTY_DEFAULT_FG_COLOR and FACE_TTY_DEFAULT_BG_COLOR.
972 [MSDOS]: Handle FACE_TTY_DEFAULT_FG_COLOR and
973 FACE_TTY_DEFAULT_BG_COLOR when face colors are not defined.
974 Reverse the colors if the default colors were reversed.
975
976 * dispnew.c (init_display): Initialize the frame pixels of the
977 initial frame to FACE_TTY_DEFAULT_FG_COLOR and
978 FACE_TTY_DEFAULT_BG_COLOR.
979
980 * term.c (turn_on_face): If the default fore- and background
981 colors are reversed, enter inverse video mode. Don't send color
982 escape sequences for unspecified foreground and background colors.
983 (turn_off_face): Handle unspecified-fg and unspecified-bg colors.
984
985 * dosfns.c (unspecified_colors): New variable.
986 (msdos_stdcolor_idx): Handle unspecified-fg and unspecified-bg
987 color names, return FACE_TTY_DEFAULT_FG_COLOR and
988 FACE_TTY_DEFAULT_BG_COLOR, respectively.
989 (msdos_stdcolor_name): Handle FACE_TTY_DEFAULT_FG_COLOR and
990 FACE_TTY_DEFAULT_BG_COLOR, return Qunspecified_fg and
991 Qunspecified_bg, respectively.
992
993 * msdos.c (IT_set_face): Support FACE_TTY_DEFAULT_FG_COLOR and
994 FACE_TTY_DEFAULT_BG_COLOR as pixel values.
995
e19539f1
KH
9961999-12-15 Kenichi Handa <handa@etl.go.jp>
997
998 * coding.c (code_convert_region): Fix the secoding arg to
999 update_compositions.
1000
5ec14d3c
KH
10011999-12-15 Kenichi Handa <handa@etl.go.jp>
1002
1003 The following changes are for the new composition mechanism. We
1004 have deleted `composition' charset and composite characters,
1005 instead introduced a special text property `composition'.
1006
1007 * Makefile.in (INTERVAL_SRC): Include composite.h.
1008 (INTERVAL_OBJ): Include composite.o.
1009 (SOME_MACHINE_OBJECTS): Include composite.o.
1010 (casefiddle.o) (dispnew.o) (indent.o) (process.o) (search.o)
1011 (syntax.o) (window.o) (xdisp.o) (xfaces.o) (xterm.o) (print.o):
1012 Depend on composite.h.
1013 (doc.o): Depend on charset.h.
1014 (keyboard.o) (textprop.o) (intervals.o): Depend on INTERVAL_SRC.
1015 (composite.o): New target.
1016
1017 * alloc.c (Fmake_string): Adjusted for the change of CHAR_STRING.
1018
1019 * callproc.c (Fcall_process): Call code_convert_string to encode
1020 arguments. Use CODING_REQUIRE_DECODING to check if the process
1021 output should be decoded.
1022
1023 * casefiddle.c: Include composite.h.
1024 (casify_object): Use MAX_MULTIBYTE_LENGTH to allocate memory for a
1025 multibyte character. Adjusted for the change of CHAR_STRING.
1026 (casify_region): Likewise. Call update_compositions.
1027
1028 * category.h (CATEGORY_SET): Delete codes for a composite
1029 character.
1030
1031 * category.c (word_boundary_p): Delete codes for a composite
1032 character.
1033 (Fmake_category_table): New function.
1034 (syms_of_category): Defsubr it.
1035
1036 * ccl.c (CCL_WRITE_CHAR): Adjusted for the change of CHAR_STRING.
1037 (ccl_driver): Delete codes for a composite character.
1038
1039 * charset.h: In this entry, just `Modified' means that codes for a
1040 composite character is deleted.
1041 (LEADING_CODE_COMPOSITION) (CHARSET_COMPOSITION)
1042 (charset_composition) (MIN_CHAR_COMPOSITION)
1043 (MAX_CHAR_COMPOSITION) (GENERIC_COMPOSITION_CHAR)
1044 (COMPOSITE_CHAR_P) (MAKE_COMPOSITE_CHAR) (COMPOSITE_CHAR_ID)
1045 (PARSE_COMPOSITE_SEQ) (PARSE_CHARACTER_SEQ): Deleted.
1046 (MAX_CHAR) (CHARSET_VALID_P) (CHARSET_DEFINED_P) (CHARSET_AT)
1047 (FIRST_CHARSET_AT) (SAME_CHARSET_P) (MAKE_NON_ASCII_CHAR)
1048 (PARSE_MULTIBYTE_SEQ) (SPLIT_NON_ASCII_CHAR) (CHAR_PRINTABLE_P):
1049 Modified.
1050 (SPLIT_STRING): Call split_string, not split_non_ascii_string.
1051 (CHAR_STRING): Delete WORKBUF argument. Call char_string, not
1052 non_ascii_char_to_string.
1053 (STRING_CHAR): Call string_to_char, not string_to_non_ascii_char.
1054 (STRING_CHAR_AND_LENGTH): Likewise.
1055 (FETCH_CHAR_ADVANCE): New macro.
1056 (MAX_COMPONENT_COUNT) (struct cmpchar_info): Deleted.
1057 (MAX_MULTIBYTE_LENGTH): New macro.
1058 (MAX_LENGTH_OF_MULTI_BYTE_FORM): Deleted.
1059 (find_charset_in_str): Argument adjusted.
1060 (CHAR_LEN): Modified.
1061
1062 * charset.c: In this entry, just `Modified' means that codes for a
1063 composite character is deleted.
1064 (Qcomposition) (leading_code_composition)
1065 (charset_composition) (min_composite_char) (cmpchar_table)
1066 (cmpchar_table_size) (n_cmpchars): Deleted.
1067 (SPLIT_COMPOSITE_SEQ): Deleted.
1068 (SPLIT_MULTIBYTE_SEQ): Modified.
1069 (char_to_string): Renamed from non_ascii_char_to_string.
1070 Modified.
1071 (string_to_char): Renamed from string_to_non_ascii_char.
1072 (split_string): Renamed from split_non_ascii_string.
1073 (char_printable_p) (Fsplit_char)
1074 (Ffind_charset_region) (Ffind_charset_string) (char_valid_p)
1075 (char_bytes) (Fchar_width) (strwidth): Modified.
1076 (find_charset_in_str): Argument CMPCHARP deleted. Modified.
1077 (Fstring): Adjusted for the change of CHAR_STRING. Modified.
1078 (hash_string) (CMPCHAR_HASH_TABLE_SIZE) (cmpchar_hash_table)
1079 (CMPCHAR_HASH_SIZE) (CMPCHAR_HASH_USED) (CMPCHAR_HASH_CMPCHAR_ID)
1080 (str_cmpchar_id) (cmpchar_component) (Fcmpcharp)
1081 (Fcmpchar_component) (Fcmpchar_cmp_rule) (Fcmpchar_cmp_rule_p)
1082 (Fcmpchar_cmp_count): Deleted.
1083 (Fcompose_string): Implemented by Emacs Lisp in composite.el.
1084 (init_charset_once): Modified.
1085 (syms_of_charset): Modified.
1086
1087 * cmds.c (internal_self_insert): Adjusted for the change of
1088 CHAR_STRING.
1089
1090 * coding.h (emacs_code_class_type): Delete the member
1091 EMACS_leading_code_composition.
1092 (COMPOSING_NO) (COMPOSING_WITH_RULE_HEAD) (COMPOSING_NO_RULE_HEAD)
1093 (COMPOSING_WITH_RULE_TAIL) (COMPOSING_NO_RULE_TAIL)
1094 (COMPOSING_WITH_RULE_RULE) (COMPOSING_HEAD_P)
1095 (COMPOSING_WITH_RULE_P): Macros deleted.
1096 (COMPOSITION_DATA_SIZE) (COMPOSITION_DATA_MAX_BUNCH_LENGTH): New
1097 macros.
1098 (struct composition_data): New structure.
1099 (CODING_FINISH_INSUFFICIENT_CMP): New macro.
1100 (struct coding_system): New members composition_rule_follows,
1101 cmp_data, cmp_data_start, cmp_data_index.
1102 (coding_save_composition) (coding_free_composition_data)
1103 (coding_adjust_composition_offset): Extern them.
1104
1105 * coding.c: Include composite.h.
1106 (DECODE_CHARACTER_ASCII): Don't handle composition here.
1107 (DECODE_CHARACTER_DIMENSION1): Likewise. Don't check the validity
1108 of multibyte code here.
1109 (DECODE_CHARACTER_DIMENSION2): Likewise.
1110 (detect_coding_emacs_mule): Change the case label from
1111 EMACS_leading_code_composition to 0x80.
1112 (detect_coding_iso2022): Handle new composition sequence.
1113 (DECODE_ISO_CHARACTER): Likewise.
1114 (check_composing_code): Deleted.
1115 (coding_allocate_composition_data): New function.
1116 (CODING_ADD_COMPOSITION_START) (CODING_ADD_COMPOSITION_END)
1117 (CODING_ADD_COMPOSITION_COMPONENT) (DECODE_COMPOSITION_START)
1118 (DECODE_COMPOSITION_END) (DECODE_COMPOSITION_RULE): New macros.
1119 (decode_coding_iso2022): Handle new composition sequence.
1120 (ENCODE_ISO_CHARACTER): Don't check composition here.
1121 (ENCODE_COMPOSITION_RULE) (ENCODE_COMPOSITION_START): New macros.
1122 (ENCODE_COMPOSITION_NO_RULE_START)
1123 (ENCODE_COMPOSITION_WITH_RULE_START): Deleted.
1124 (ENCODE_COMPOSITION_END): Handle new composition sequence.
1125 (ENCODE_COMPOSITION_FAKE_START): New macro.
1126 (encode_coding_iso2022): Handle new composition sequence.
1127 (ENCODE_SJIS_BIG5_CHARACTER): Delete superfluous `;' at the tail.
1128 (encode_coding_sjis_big5): Ignore composition.
1129 (setup_coding_system): Initialize new members of struct
1130 coding_system. Enable composition only when the coding system has
1131 `composition' property t.
1132 (coding_free_composition_data) (coding_adjust_composition_offset)
1133 (coding_save_composition) (coding_restore_composition): New
1134 functions.
1135 (code_convert_region): Call coding_save_composition for encoding
1136 and coding_allocate_composition_data for decoding. Don't skip
1137 ASCII characters if we handle composition on encoding. Call
1138 signal_after_change with Check_BORDER.
1139 (code_convert_string): Call coding_save_composition for encoding
1140 and coding_allocate_composition_data for decoding. Don't skip
1141 ASCII characters if we handle composition on encoding.
1142 (code_convert_string1): Set Vlast_coding_system_used after calling
1143 code_convert_string.
1144 (code_convert_string_norecord): Disable composition.
1145 (Fset_terminal_coding_system_internal): Likewise.
1146 (Fset_safe_terminal_coding_system_internal): Likewise.
1147 (Fset_keyboard_coding_system_internal): Likewise.
1148 (init_coding_once): Set emacs_code_class[0x80] to
1149 EMACS_invalid_code.
1150
1151 * composite.h: New file.
1152
1153 * composite.c: New file.
1154
1155 * data.c (Faref): Delete codes for a composite character..
1156 (Faset): Likewise. Adjusted for the change of CHAR_STRING.
1157
1158 * dispextern.h (enum glyph_type): New member COMPOSITE_GLYPH.
1159 (struct glyph): Add new sub-structure cmp to the union `u'.
1160 (enum display_element_type): New member IT_COMPOSITION.
1161 (enum prop_idx): New member COMPOSITION_PROP_IDX.
1162 (struct it): New members cmp_id, cmp_len.
1163
1164 * dispnew.c (direct_output_forward_char): Check point moving into
1165 or out of a composition. If so, give up direct method.
1166
1167 * doprnt.c (doprnt1): Adjusted for the change of CHAR_STRING.
1168
1169 * editfns.c (Fchar_to_string): Adjusted for the change of
1170 CHAR_STRING.
1171 (general_insert_function): Likewise.
1172 (Finsert_char): Likewise.
1173 (Fsubst_char_in_region): Likewise. Call update_compositions.
1174 (Ftranslate_region): Call update_compositions.
1175 (Ftranspose_regions): Call update_compositions.
1176
1177 * emacs.c (main): Call syms_of_composite.
1178
1179 * fileio.c (Fsubstitute_in_file_name): Adjusted for the change of
1180 CHAR_STRING.
1181 (Finsert_file_contents): Set Vlast_coding_system_used before
1182 calling signal_after_change. Call update_compositions if some
1183 texts are inserted..
1184 (Fwrite_region): Adjusted for the change of a_write and e_write.
1185 (a_write): Argument changed. Work based on character position,
1186 not byte position.
1187 (e_write): Argument changed. Handle new way of composition.
1188
1189 * fns.c (Flength): The length of char-table is MAX_CHAR.
1190 (concat): Adjusted for the change of CHAR_STRING.
1191 (Ffillarray): Adjusted for the change of CHAR_STRING.
1192 (Fset_char_table_default): Delete codes for a composite character.
1193 (hash_put): Return hash index.
1194
1195 * fontset.h (struct font_info): New member vertical_centering.
1196 (Vvertical_centering_font_regexp): Extern it.
1197
1198 * fontset.c (Vvertical_centering_font_regexp): New variable.
1199 (syms_of_fontset): Declare it as a Lisp variable and initialize.
1200 Set Vignore_relative_composition to nil.
1201 (fs_load_font): Initialize `vertical_centering' of struct
1202 font_info.
1203
1204 * indent.c (check_composition): New function.
1205 (MULTIBYTE_BYTES_WIDTH): Call STRING_CHAR_AND_LENGTH with
1206 MAX_MULTIBYTE_LENGTH, not MAX_LENGTH_OF_MULTI_BYTE_FORM.
1207 (current_column_1): Handle new way of composition.
1208 (Fmove_to_column): Likewise.
1209 (compute_motion): Likewise.
1210
1211 * insdel.c (copy_text): Adjusted for the change of CHAR_STRING.
1212 (insert_char): Likewise.
1213 (insert): Call update_compositions.
1214 (insert_and_inherit): Likewise.
1215 (insert_before_markers): Likewise.
1216 (insert_before_markers_and_inherit): Likewise.
1217 (insert_from_string): Likewise.
1218 (insert_from_string_before_markers): Likewise.
1219 (insert_from_buffer): Likewise.
1220 (replace_range): Likewise.
1221 (count_combining_composition): Deleted.
1222 (count_combining_before): Delete codes for a composite character.
1223 (count_combining_after): Likewise.
1224 (del_range_1): Call update_compositions.
1225 (del_range_byte): Likewise.
1226 (del_range_both): Likewise.
1227 (Fcombine_after_change_execute): Likewise.
1228
1229 * intervals.h: Include composite.h.
1230 (get_property_and_range): Extern it.
1231 (Vtext_property_default_nonsticky): Extern it.
1232
1233 * intervals.c (adjust_intervals_for_insertion): To check stickines
1234 of properties, pay attention to text-property-default-nonsticky.
1235 (merge_properties_sticky): Likewise.
1236 (get_property_and_range): New function.
1237
1238 * keyboard.c (Vdisable_point_adjustment): New variable.
1239 (Vglobal_disable_point_adjustment): New variable.
1240 (syms_of_keyboard): Declare them as Lisp variables.
1241 (command_loop_1): Check them and call adjust_point_for_property if
1242 necessary.
1243 (adjust_point_for_property): New function.
1244
1245 * keymap.c (push_key_description): Adjusted for the change of
1246 CHAR_STRING.
1247 (Ftext_char_description): Likewise.
1248
1249 * lisp.h (QCtest, QCweakness, Qequal): Extern them.
1250 (hash_put): Adjusted for the change of the definition.
1251 (signal_after_change): Likewise.
1252 (check_point_in_composition): Extern it.
1253
1254 * lread.c (readchar): Adjusted for the change of CHAR_STRING.
1255 Delete a code that handles an invalid too-long multibyte sequence
1256 because we are now sure that we never encounter with such a
1257 sequence.
1258 (read_multibyte): Use macro MAX_MULTIBYTE_LENGTH, not
1259 MAX_LENGTH_OF_MULTI_BYTE_FORM.
1260 (init_obarray): Likewise.
1261 (read1): Likewise. Adjusted for the change of CHAR_STRING.
1262
1263 * print.c (printchar): Adjusted for the change of CHAR_STRING.
1264
1265 * process.c: Include composite.h.
1266 (read_process_output): Call update_compositions.
1267
1268 * regex.c (regex_compile): Adjusted for the change of CHAR_STRING.
1269
1270 * search.c (search_buffer): Adjusted for the change of CHAR_STRING.
1271
1272 * syntax.h (SYNTAX_ENTRY_INT): Delete codes for a composite
1273 character.
1274
1275 * term.c (encode_terminal_code): Delete codes for a composite
1276 character. Adjusted for the change of CHAR_STRING.
1277 (produce_glyphs): When called, it->what can be IT_COMPOSITION.
1278 Delete codes for a composite character.
1279
1280 * textprop.c (Vtext_property_default_nonsticky): New variable
1281 (syms_of_textprop): Declare it as a Lisp variable.
1282
1283 * window.c (Frecenter): Clear all caches of compositions.
1284
1285 * xdisp.c (it_props): Add an entry for composition.
1286 (face_before_or_after_it_pos): For composition, check face of a
1287 character after the composition.
1288 (handle_composition_prop): New function.
1289 (get_next_display_element): Adjusted for the change of
1290 CHAR_STRING.
1291 (set_iterator_to_next): Handle the case that it->method ==
1292 next_element_from_composition.
1293 (next_element_from_composition): New function.
1294 (message_dolog): Adjusted for the change of CHAR_STRING.
1295 (set_message_1): Likewise.
1296 (check_point_in_composition): New function.
1297 (reconsider_clip_changes): If point moved into or out of
1298 composition, set b->clip_changed to 1 to force updating of the
1299 screen.
1300 (disp_char_vector): Delete codes for a composite character.
1301 (decode_mode_spec_coding): Adjusted for the change of CHAR_STRING.
1302
1303 * xfaces.c (choose_face_fontset_font): Delete codes for a
1304 composite character.
1305 (realize_x_face): Likewise. Change a place to set local variable
1306 `f' to avoid a bug of GCC 2.8.1 on Solaris.
1307
1308 * xfns.c: Include intervals.h.
1309 (syms_of_xfns): Make `display' property nonsticky by default.
1310
1311 * xselect.c (lisp_data_to_selection_data): Adjusted for the change
1312 for find_charset_in_str.
1313
1314 * xterm.h (struct x_output): Change member font_baseline to
1315 baseline_offset.
1316
1317 * xterm.c (x_append_glyph): Setup members of struct glyph properly
1318 for composition.
1319 (x_append_composite_glyph): New function.
1320 (VCENTER_BASELINE_OFFSET): New macro.
1321 (x_produce_glyphs): If it->what == IT_COMPOSITION, setup members
1322 of struct it for the composition. Cache pixel offsets in the
1323 struct composition. Delete codes for a composite character.
1324 Handle Vignore_relative_composition in composition code.
1325 (struct glyph_string): Delete member cmpcharp, add new member cmp.
1326 (x_set_cursor_gc): Check s->cmp, not s->cmpcharp.
1327 (x_compute_glyph_string_overhangs): Likewise.
1328 (x_get_glyph_overhangs): Delete codes for a composite character.
1329 (x_right_overwritten): Check s->cmp, not s->cmpcharp.
1330 (x_draw_glyph_string_background): Likewise. Delete codes for
1331 checking s->gidx for a composition.
1332 (x_draw_glyph_string_foreground): Delete code for a composite
1333 character.
1334 (x_draw_composite_glyph_string_foreground): New function.
1335 (x_draw_glyph_string_box): Check s->cmp, not s->cmpcharp.
1336 (x_draw_glyph_string): Handle the case of COMPOSITE_GLYPH.
1337 (struct work): Deleted.
1338 (x_fill_composite_glyph_string): Argument changed. Mostly
1339 rewritten for that.
1340 (x_fill_glyph_string): Don't check CHARSET_COMPOSITION.
1341 (BUILD_CHAR_GLYPH_STRINGS): Don't handle composition here.
1342 (BUILD_COMPOSITE_GLYPH_STRING): New macro.
1343 (BUILD_GLYPH_STRINGS): For composition, call
1344 BUILD_COMPOSITE_GLYPH_STRING.
1345 (x_new_font): Initialize f->output_data.x->baseline_offset, not
1346 f->output_data.x->font_baseline.
1347
c3c60f13
GM
13481999-12-14 Gerd Moellmann <gerd@gnu.org>
1349
1350 * xterm.c (show_mouse_face): Don't use updated_area, use
1351 TEXT_AREA.
1352
83c8f461 13531999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
1354
1355 * minibuf.c (Fall_completions): Doc fix.
1356
83c8f461 13571999-12-12 Richard M. Stallman <rms@gnu.org>
c838eb57
RS
1358
1359 * macros.c (Fstart_kbd_macro): Handle case where last-kbd-macro
1360 has been changed by the Lisp code.
1361
d8eccf12
GM
13621999-12-12 Gerd Moellmann <gerd@gnu.org>
1363
1364 * xfns.c: Indentation fixes.
1365
ae56feae
SM
13661999-12-10 Stefan Monnier <monnier@cs.yale.edu>
1367
1368 * xterm.c (x_initialize): Only setup xaw3d_* if they've been declared.
1369
dfa1c6ae
GM
13701999-12-10 Gerd Moellmann <gerd@gnu.org>
1371
1372 * frame.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
1373 [!MSDOS && !WINDOWSNT && !macintosh]: Moved here from xterm.h.
1374
1375 * xterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL): Moved
1376 to frame.h.
1377
ec18280f
SM
13781999-12-09 Stefan Monnier <monnier@cs.yale.edu>
1379
1380 * keyboard.c (Qratio): New symbol.
1381 (scroll_bar_parts): Add `Qratio' to it.
1382 (syms_of_keyboard): Init `Qratio'.
1383 * termhooks.h (scroll_bar_part): Add `scroll_bar_move_ratio'.
1384 * xterm.c (#includes): Allow compilation with only Xaw.
1385 (xaw3d_arrow_scroll, xaw3d_pick_top): New variables.
1386 (xt_action_hook): Replace XAW3D by XAW.
1387 (xaw3d_jump_callback): Renamed to xaw_jump_callback.
1388 (xaw_jump_callback): Renamed from xaw3d_jump_callback.
1389 Determine epsilon dynamically and don't try to be too clever.
1390 (xaw3d_scroll_callback): Renamed to xaw_scroll_callback.
1391 (xaw_scroll_callback): Renamed from xaw3d_scroll_callback.
1392 Handle both Xaw3d with arrow-scrollbars and with Xaw-style
1393 scrollbar (using `ratio').
1394 (x_create_toolkit_scroll_bar): Try to detect which style of Xaw3d
1395 scrollbar we have so as to set it up more optimally and to fix
1396 xaw3d_arrow_scroll and xaw3d_pick_top.
1397 (x_set_toolkit_scroll_bar_thumb): Try to maintain 2 spare pixels at the
1398 bottom of the Xaw3d scrollbar, to work around its tendency to refuse
1399 shrinking the thumb. Also make sure that `XawScrollbarSetThumb'
1400 is not ignored, using a major gross hack.
1401 (x_initialize): Init default values for xaw3d_arrow_scroll and
1402 xaw3d_pick_top.
1403
83b6d970
DL
14041999-12-09 Dave Love <fx@gnu.org>
1405
1406 * frame.h: (PIX_TYPE) [! HAVE_X_WINDOWS]: Define PIX_TYPE.
1407
3648c842
GM
14081999-12-08 Gerd Moellmann <gerd@gnu.org>
1409
1410 * eval.c: Remove conditional compilation on `standalone'.
1411 (call_debugger): When entering the debugger while redisplaying,
1412 reset redisplaying_p, and go back to the top-level if the debugger
1413 returns.
1414
05e71564
GM
14151999-12-07 Gerd Moellmann <gerd@gnu.org>
1416
1417 * xfaces.c (x_set_menu_resources_from_menu_face): Make sure
1418 basic faces are realized before trying to use face `menu'.
1419
1420 * window.c (delete_window): Block input for the time window
1421 matrices are being changed.
1422
b46cd536
DL
14231999-12-07 Dave Love <fx@gnu.org>
1424
1425 * lread.c (Fintern_soft): Fix newlines in doc string.
1426
96acb1f7
GM
14271999-12-07 Alexandre Oliva <oliva@dcc.unicamp.br>
1428
1429 * unexelf.c: Include <syms.h>, not <sym.h> on IRIX. Removed
1430 duplicate definition of ElfW.
1431 (find_section): Copied from unexsgi.c.
1432 (unexec): Use find_section. Adjust whitespace. Initialize
1433 new_data2_offset based on old_data, not sbss (this fixes a bug on
1434 IRIX6). Change #ifdef __mips to __sgi, since it's IRIX-specific.
1435 Adjust test for presence of .mdebug section to the new return
1436 value of find_section.
1437
14381999-12-07 Gerd Moellmann <gerd@gnu.org>
1439
1440 * unexelf.c: Merge changes from 20.5.
1441 (unexec): Handle .lit4 and .lit8 unconditionally.
1442
1443 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexelf.o instead of
1444 unexsgi.o again.
1445
1446 * m/iris5d.h (UNEXEC): Likewise.
1447
7dae4502
SM
14481999-12-06 Stefan Monnier <monnier@cs.yale.edu>
1449
1450 * editfns.c (Fdelete_and_extract_region): New function.
05e71564
GM
1451 (syms_of_editfns): Register it.
1452 * insdel.c (del_range): Update del_range_1 call.
7dae4502
SM
1453 (del_range_1, del_range_2): Add a ret_string argument to
1454 request that the deleted text be returned.
1455 (del_range_byte, del_range_both): Update del_range_2 call.
05e71564 1456 * lisp.h (del_range_1, del_range_2): Change prototype
7dae4502
SM
1457 * casefiddle.c (casify_region): Update del_range_1 call.
1458 * coding.c (code_convert_region): Update del_range_2 call.
1459 * fileio.c (Finsert_file_contents): Update del_range_2 call.
1460
397e4fae
GM
14611999-12-06 Gerd Moellmann <gerd@gnu.org>
1462
1463 * xfaces.c (set_lface_from_font_name): Fix incomplete merge.
1464
3d973f71
GM
14651999-12-04 Hrvoje Niksic <hniksic@iskon.hr>
1466
1467 * lread.c (Fintern_soft): Accept a symbol argument.
1468
740e985f
EZ
14691999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1470
1471 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 40000.
809f3d51
EZ
1472
1473 * insdel.c (adjust_markers_for_delete): Fix last change.
1474
2d764c78
EZ
14751999-12-06 Eli Zaretskii <eliz@is.elta.co.il>
1476
1477 Changes for automatic remapping of X colors on terminal frames:
1478
1479 * xfaces.c (XColor) [!HAVE_X_WINDOWS]: Provide a typedef for non-X
1480 frames.
1481 (Vface_tty_color_alist): Remove.
1482 (tty_defined_color): New function.
1483 (defined_color): Rewrite to support any type of frame.
1484 (tty_color_name): New function.
1485 (face_color_supported_p, Fface_color_gray_p,
1486 Fface_color_supported_p): Support non-X frames.
1487 (load_color): Enclose the color name in quotes, in the log
1488 messages. Remove DOS-specific version of load_color.
1489 (realize_tty_face): Take the supported colors from
1490 tty-color-alist. Support translation of X colors to the closest
1491 tty color, for both MSDOS and tty frames.
1492 [MSDOS]: Don't invert face colors if they were taken from the
1493 frame colors.
1494 (Fface_register_tty_color, Fface_clear_tty_colors): Remove.
1495
1496 * frame.h (struct x_output) [!MSDOS, !WINDOWSNT, !HAVE_X_WINDOWS]:
1497 Define a mostly empty surrogate.
1498 (tty_display): Declare.
1499
1500 * frame.c (make_terminal_frame) [!macintosh]: Don't use
1501 tty_display.
1502 (Fframe_parameters): Don't invert colors of non-FRAME_WINDOW_P
1503 frames when the frame's param_alist includes 'reverse.
1504 (tty_display): Define.
1505 (make_terminal_frame) [!MSDOS]: Assign &tty_display to the
1506 output_data.x member.
1507 (Fframe_parameters): Return foreground and background color names
1508 on tty frames as well, in addition to MSDOS frames.
1509
1510 * msdos.h (DisplayWidth, DisplayHeight): Changes for Lisp_Object
1511 selected_frame.
1512 (struct x_output): Remove unused members; document who uses each
1513 member.
1514 (FRAME_PARAM_FACES, FRAME_N_PARAM_FACES, FRAME_DEFAULT_PARAM_FACE,
1515 FRAME_MODE_LINE_PARAM_FACE, FRAME_COMPUTED_FACES,
1516 FRAME_N_COMPUTED_FACES, FRAME_SIZE_COMPUTED_FACES,
1517 FRAME_DEFAULT_FACE, FRAME_MODE_LINE_FACE, unload_color): Remove
1518 unused macro definintions.
1519
1520 * msdos.c (IT_set_frame_parameters): Don't call
1521 recompute_basic_faces, the next redisplay will, anyway.
1522 (x_current_display): Remove unused variable.
1523 Many functions: changes for Lisp_object selected_frame.
1524 (IT_set_face): If the tty_reverse_p flag is set for the face,
1525 reverse the foreground and background colors.
1526 (Fmsdos_remember_default_colors): New function.
1527 (syms_of_msdos): Defsubr it.
1528 (IT_set_frame_parameters): Use initial_screen_colors[] when
1529 creating a new frame. If the frame parameters include 'reverse,
1530 swap the foreground and background colors.
1531 (internal_terminal_init): Initialize initial_screen_colors to -1.
1532 (syms_of_msdos): Add DEFVAR_BOOL for x-stretch-cursor, to shut up
1533 cus-start.el.
1534
1535 * Makefile.in (lisp, shortlisp): Add lisp/term/tty-colors.elc.
1536
1537 * xfns.c (x_defined_color): Rename from defined_color. All
1538 callers changed.
1539 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1540 all callers changed.
1541 (Fxw_color_values): Renamed from Fx_color_values; all callers
1542 changed.
1543 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1544 callers changed.
1545 (x_window_to_frame, x_any_window_to_frame,
1546 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
1547 x_top_window_to_frame): Use !FRAME_X_P instead of
1548 f->output_data.nothing.
1549 * xterm.h (x_defined_color): Rename from defined_color.
1550
1551 * w32fns.c (x_window_to_frame): Use FRAME_W32_P instead of
1552 f->output_data.nothing.
1553 (Fxw_color_defined_p): Renamed from Fx_color_defined_p;
1554 all callers changed.
1555 (Fxw_color_values): Renamed from Fx_color_values; all callers
1556 changed.
1557 (Fxw_display_color_p): Renamed from Fx_display_color_p; all
1558 callers changed.
1559
1560 * dispextern.h (tty_color_name): Add prototype.
1561
1562 * xmenu.c (menubar_id_to_frame): Use FRAME_WINDOW_P instead of
1563 f->output_data.nothing.
1564 * w32menu.c (menubar_id_to_frame): Likewise.
1565 * w32term.h (w32_output): Declare.
1566
1567 * dosfns.c (Qmsdos_color_translate): Remove.
1568 (msdos_stdcolor_name): Now returns a Lisp_Object.
1569 * dosfns.h (Qmsdos_color_translate): Remove.
1570
1571 * s/msdos.h (INTERNAL_TERMINAL): Add entries for color support.
1572
b3e5232e
KH
15731999-12-06 Kenichi Handa <handa@etl.go.jp>
1574
1575 * fileio.c (decide_coding_unwind): Renamed from
1576 set_auto_coding_unwind.
1577 (Finsert_file_contents): Make single unwind protect to call both
1578 Vset_auto_coding_function and Ffind_operation_coding_system.
1579
1580 * insdel.c (adjust_markers_for_delete): Make it non-static.
1581
db0e466c
SM
15821999-12-04 Stefan Monnier <monnier@cs.yale.edu>
1583
1584 * regex.c (regex_compile): Recognize *?, +? and ?? as non-greedy
1585 operators and handle them properly.
1586 * regex.h (RE_ALL_GREEDY): New option.
1587 (RE_UNMATCHED_RIGHT_PAREN_ORD): Moved to the end where alphabetic
1588 sorting would put it.
1589 (RE_SYNTAX_AWK, RE_SYNTAX_GREP, RE_SYNTAX_EGREP)
1590 (_RE_SYNTAX_POSIX_COMMON): Use the new option to keep old behavior.
1591
22afa6e8
DL
15921999-12-04 Dave Love <d.love@dl.ac.uk>
1593
1594 * m/arm.h: New file.
1595
40afb967
DL
15961999-12-03 Dave Love <fx@gnu.org>
1597
1598 * editfns.c (Fmessage_or_box): Use use_dialog_box.
1599
ddf8eff5
GM
16001999-12-02 Gerd Moellmann <gerd@gnu.org>
1601
1602 * s/usg5-4.h (LIBS_SYSTEM): Add -lgen because that's needed
1603 for building with Motif.
1604
1605 * m/iris4d.h (UNEXEC) [USG5_4]: Use unexsgi.o instead of
1606 unexelf.o.
1607
1608 * m/iris5d.h (UNEXEC): Use unexsgi.o instead of unexelf.o.
1609
fa09a82d
DL
16101999-12-01 Dave Love <fx@gnu.org>
1611
1612 * emacs.c (main): Set LANG=C iff AX3_2 defined.
1613
ddf8eff5
GM
16141999-11-28 Gerd Moellmann <gerd@gnu.org>
1615
1616 * systime.h (EMACS_TIME_CMP, EMACS_TIME_EQ, EMACS_TIME_NE)
1617 (EMACS_TIME_GT, EMACS_TIME_GE, EMACS_TIME_LT,EMACS_TIME_LE): New
1618 macros.
1619
1620 * config.in (HAVE_SETITIMER, HAVE_UALARM): New.
1621
fa09a82d
DL
16221999-11-28 eliz <eliz@dlpx1>
1623
1624 * emacs.c (synchronize_locale): Avoid compiler warnings about
1625 pointer type mismatch.
1626
f9632fc8
GM
16271999-11-28 Gerd Moellmann <gerd@gnu.org>
1628
717d0121
GM
1629 * window.c (Fwindow_end): Don't call temp_set_pt_both with
1630 out of range position.
1631
f9632fc8
GM
1632 * xterm.c (XTread_socket) <ClientMessage, Xatom_Scrollbar>:
1633 Switch off busy-cursor by setting inhibit_busy_cursor to 2.
1634
59c65f1e
EZ
16351999-11-28 Eli Zaretskii <eliz@is.elta.co.il>
1636
613a8346
EZ
1637 * charset.c (Fmake_char_internal): Print the charset ID when
1638 signalling an error.
1639
59c65f1e
EZ
1640 * emacs.c (synchronize_locale): Avoid compiler warnings about
1641 pointer type mismatch.
1642
83c8f461 16431999-11-26 Richard M. Stallman <rms@gnu.org>
d01f3570
RS
1644
1645 * editfns.c (Fdelete_field): Make it noninteractive. Return nil.
1646
18df9369
GM
16471999-11-26 Gerd Moellmann <gerd@gnu.org>
1648
65a3ccf7
GM
1649 * puresize.h (BASE_PURESIZE): Increase to 550000.
1650
b3b98592
GM
1651 * textprop.c (set_text_properties): New function. Like
1652 Fset_text_properties, but with additional parameter
1653 SIGNAL_AFTER_CHANGE_P. If that is nil, don't signal after
1654 changes.
1655 (Fset_text_properties): Use it.
1656
1657 * insdel.c (insert_1_both): Call set_text_properties with last
1658 parameter nil so that no after changes will be signaled.
1659
1660 * lisp.h: Add prototype for set_text_properties.
1661
18df9369
GM
1662 * xfaces.c (set_lface_from_font_name): Fix previous change.
1663 (recompute_basic_faces): Change assert to abort.
1664
71a8e74b
DL
16651999-11-25 Dave Love <fx@gnu.org>
1666
1667 * fns.c (Fnthcdr, Fnreverse): Inline cdr.
1668 (Fmember, Fdelq, Fdelete): Inline car.
1669 (Fy_or_n_p): Doc fix.
1670
bc6a5782
GM
16711999-11-25 Gerd Moellmann <gerd@gnu.org>
1672
3221576b 1673 * xfaces.c (set_lface_from_font_name): New parameter may_fail_p.
18df9369 1674 Callers changed. If specified font name is bogus, and may_fail_p
3221576b
GM
1675 is not set, try to use a reasonable default.
1676
bc6a5782
GM
1677 * dispnew.c (direct_output_for_insert): Set glyph row's
1678 displays_text_p flag. Correct window's window_end_vpos if
1679 necessary.
1680
0c8559bb
PE
16811999-11-25 Paul Eggert <eggert@twinsun.com>
1682
1683 * emacs.c (fixup_locale): Don't bother to record initial locale.
1684 (synchronize_locale): If the desired locale is nil,
1685 treat it as if it were the empty string,
1686 so that we set the locale from the environment.
1687
35737351
KH
16881999-11-25 Kenichi Handa <handa@etl.go.jp>
1689
1690 * fileio.c (Finsert_file_contents): Set buffer-file-coding-system
1691 of the current buffer via Fset.
1692
5562b47f
DL
16931999-11-24 Dave Love <fx@gnu.org>
1694
1695 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
1696
1697 * xfaces.c: Don't duplicate Qmode_line definition done elsewhere.
1698
1699 * xfns.c: Don't duplicate Qdisplay definition done elsewhere.
1700
00da0e4a
GM
17011999-11-24 Gerd Moellmann <gerd@gnu.org>
1702
1703 * lisp.h (enum pvec_type): Put PVEC_FLAG in #if 0.
1704
1705 * emacs.c (PVEC_FLAG): New variable.
1706
b1775dc1
GM
17071999-11-23 Gerd Moellmann <gerd@gnu.org>
1708
1709 * unexaix.c (unexec): Use unsigned instead of uintptr_t because
1710 that fails on IBM PowerPC, AIX 4.2.
1711
08de6200
EZ
17121999-11-22 Eli Zaretskii <eliz@is.elta.co.il>
1713
1714 * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc
1715 string of mode-line-format. Remove the obsolete %t.
1716
02fda8ff
GM
17171999-11-22 Gerd Moellmann <gerd@gnu.org>
1718
f2fa858f
GM
1719 * dispnew.c (direct_output_for_insert): Increment glyph positions
1720 for glyphs from buffer text only.
1721
02fda8ff
GM
1722 * emacs.c (gdb_valbits, gdb_gctypebits, gdb_emacs_intbits)
1723 (gdb_data_seg_bits): New variables.
1724
1725 * lisp.h (enum gdb_lisp_params): Put in #if 0, since it doesn't
1726 work on systems not allowing enumerators > INT_MAX, and it
1727 won't work if EMACS_INT is long long.
1728
1b0d24e7
PE
17291999-11-22 Paul Eggert <eggert@twinsun.com>
1730
1731 Port to SunOS 4.1.x again. Help out with Alpha port.
1732 Rename messages-locale to system-messages-locale,
1733 and likewise for time-locale.
1734
1735 * callproc.c (strerror): Remove decl.
1736 * fileio.c (strerror): Likewise.
1737 * process.c (strerror): Likewise.
1738 * emacs.c (strerror): Likewise.
1739 (Vsystem_messages_locale): Renamed from Vmessages_locale.
1740 All uses changed.
1741 (Vprevious_system_messages_locale): Likewise, from
1742 Vprevious_messages_locale.
1743 (Vsystem_time_locale): Likewise, from Vtime_locale.
1744 (Vprevious_system_time_locale): Likewise, from Vprevious_time_locale.
1745 (ABORT_RETURN_TYPE): New macro.
1746 (abort): Return type is now ABORT_RETURN_TYPE.
1747 (main): Always invoke init_signals, even if POSIX_SIGNALS is not
1748 defined.
1749 (syms_of_emacs): messages-locale -> system-messages-locale,
1750 previous-messages-locale -> previous-system-messages-locale,
1751 time-locale -> system-time-locale,
1752 previous-time-locale -> previous-system-time-locale.
1753
1754 * gmalloc.c (PP, __ptr_t): Assume ANSI C if STDC_HEADERS is defined.
1755 (const): Do not define; that's config.h's job.
1756 (<limits.h>): Include if HAVE_LIMITS_H is defined.
1757 (CHAR_BIT): Move test for definedness outside of limits.h condition.
1758 (<stddef.h>): Include if STDC_HEADERS is defined.
1759 (FREE_RETURN_TYPE): New macro.
1760 (free): Return type is now FREE_RETURN_TYPE.
1761
1762 * lisp.h (synchronize_system_time_locale): Renamed from
1763 synchronize_time_locale. All uses changed.
1764 (synchronize_system_messages_locale): Likewise, from
1765 synchronize_messages_locale.
1766
1767 * m/alpha.h (malloc, realloc, calloc): Remove decls;
1768 stdlib.h now does this.
1769
1770 * process.c (sys_siglist): Remove.
1771
1772 * s/sunos4-0.h (ABORT_RETURN_TYPE, FREE_RETURN_TYPE):
1773 New macros.
1774
1775 * syntax.c (scan_sexps_forward): Use abort, not assert.
1776
1777 * sysdep.c (my_sys_siglist): New var.
1778 (sys_siglist): New macro. Remove old initialized vars of same name.
1779 (init_signals): Initialize sys_siglist.
1780
1781 * xfns.c (abort): Remove decl; stdlib.h now does this.
1782
0dcd5b54
DL
17831999-11-18 Dave Love <fx@gnu.org>
1784
946173ad
DL
1785 * filelock.c: Add forward declaration for get_boot_time_1.
1786
0dcd5b54
DL
1787 * dispnew.c (Finternal_show_cursor_p): Fix doc string.
1788
71447e8f
GM
17891999-11-18 Gerd Moellmann <gerd@gnu.org>
1790
1791 * buffer.h (struct buffer_text): Add comment about moving
1792 buffer text if REL_ALLOC is defined.
1793
eeedff63
KH
17941999-11-18 Kenichi Handa <handa@etl.go.jp>
1795
1796 * lisp.h (KEY_DESCRIPTION_SIZE): New macro.
1797
1798 * keyboard.c (echo_char): Use KEY_DESCRIPTION_SIZE to check free
1799 memory for push_key_description.
1800
1801 * keymap.c (Fsingle_key_description): Use KEY_DESCRIPTION_SIZE to
1802 allocate memory for push_key_description.
1803 (describe_buffer_bindings): Likewise.
1804
5d7e4a2c
GM
18051999-11-17 Gerd Moellmann <gerd@gnu.org>
1806
1807 * xfns.c (Fx_show_busy_cursor): Doc-fix.
1808 (Fx_hide_busy_cursor): Ditto.
1809
18101999-11-17 Marco Walther <walther@siemens-pyramid.com>
1811
1812 * unexsni.c (unexec): Handle .rel.dyn section.
1813
b5b41e02
DL
18141999-11-16 Dave Love <fx@gnu.org>
1815
1816 * doc.c (Fdocumentation): Remove gcpro here too.
1817
e35b6123
GM
18181999-11-16 Gerd Moellmann <gerd@gnu.org>
1819
1820 * keyboard.c (command_loop_1): Remove no_redisplay.
1821
83c8f461 18221999-11-16 Richard M. Stallman <rms@gnu.org>
0a14b9bb
GM
1823
1824 * print.c (PRINTPREPARE): Don't call setup_echo_area_for_printing
1825 in noninteractive.
1826
b05d3bee
GM
18271999-11-14 Gerd Moellmann <gerd@gnu.org>
1828
5bcfeb49
GM
1829 * xdisp.c (ensure_echo_area_buffers): New.
1830 (with_echo_area_buffer): Use it.
1831 (setup_echo_area_for_printing): Ditto.
1832
b05d3bee
GM
1833 * buffer.c (indicate-empty-lines): Doc-fix.
1834
9b2e6e4c
GM
18351999-11-12 Gerd Moellmann <gerd@gnu.org>
1836
e7f90eab
GM
1837 * term.c (term_init): If "op" isn't available, don't support color
1838 because we can't switch back to the default foreground and
1839 background.
1840
9b2e6e4c
GM
1841 * doc.c (Fdocumentation_property): Remove GCPRO because
1842 Fsubstitute_command_keys gcpro's the string.
1843
1bf21027
KH
18441999-11-12 Kenichi Handa <handa@etl.go.jp>
1845
1846 * editfns.c (Ftranslate_region): Check the buffer multibyteness.
1847
3bc6df53
GM
18481999-11-11 Gerd Moellmann <gerd@gnu.org>
1849
1850 * print.c, keymap.c, indent.c, insdel.c, keyboard.c, intervals.c,
1851 lread.c, textprop.c, undo.c, emacs.c, lisp.h, intervals.h,
1852 buffer.h, config.in, Makefile.in: Remove USE_TEXT_PROPERTIES.
1853
35a5514b
GM
18541999-11-10 Gerd Moellmann <gerd@gnu.org>
1855
1856 * xfns.c (QCuser_data): Removed.
1857 (syms_of_xfns): Initialization of QCuser_data removed.
1858 (parse_image_spec): Don't handle :user-data specially. Allow
1859 unknown keys. Remove parameter ALLOW_OTHER_KEYS.
1860 (xbm_image_p, xbm_load, xpm_image_p, pbm_image_p, png_image_p)
1861 (tiff_image_p, jpeg_image_p, gif_image_p, gs_image_p): Call
1862 parse_image_spec accordingly.
1863
83c8f461 18641999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
1865
1866 * cmds.c (Fbeginning_of_line): Doc fix.
1867 (Fend_of_line): Doc fix.
1868
1869 * editfns.c (Fline_beginning_position): If N is not 1,
1870 pass t to Fconstrain_to_field for ESCAPE-FROM-EDGE.
1871
1872 * syntax.c (Fforward_word): Handle fields even if would have hit
1873 an edge of the buffer. Return nil if affected by fields.
1874
83c8f461 18751999-11-09 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
1876
1877 * editfns.c (preceding_pos): Function deleted.
1878 (text_property_stickiness): Decrement POS directly.
1879 Fix a confusion that used PT instead of POS.
1880
1881 * editfns.c (find_field): Properly handle the case
1882 of a field boundary where `field' inherits from neither side.
1883
1884 * editfns.c (Ffield_beginning, Ffield_end): Doc fixes.
1885 (Ferase_field, Ffield_string, Ffield_string_no_properties): Doc fixes.
1886
fa9aabf6
GM
18871999-11-08 Gerd Moellmann <gerd@gnu.org>
1888
1889 * bytecode.c (Fbyte_code) <BinsertN, Bcall>: Do the
1890 BEFORE_POTENTIAL_GC before DISCARD.
1891
4015b3c0
GM
18921999-11-07 Gerd Moellmann <gerd@gnu.org>
1893
033a5fa3
GM
1894 * alloc.c (Fgarbage_collect): Call unmark_byte_stack.
1895
1896 * lisp.h: Add prototype for unmark_byte_stack.
1897
1898 * bytecode.c (mark_byte_stack): Use XMARKBIT and XMARK.
1899 (unmark_byte_stack): Renamed from relocate_byte_pcs. Use
1900 XUNMARK.
1901
55b064bd
GM
1902 * xdisp.c (resize_mini_window): Fix computation of needed
1903 mini-window height.
1904
1905 * alloc.c, buffer.c, editfns.c, xdisp.c: Remove conditional
1906 compilation on USE_TEXT_PROPERTIES.
01e9b9df 1907
4015b3c0 1908 * Fbyte_code: Use block statements in cases and declare v1 and v2
60af03f1 1909 locally there. Rearrange case statements so that those most
4015b3c0
GM
1910 frequently executed come first. Avoid goto's in frequently
1911 executed cases.
1912
fe512f27
GM
19131999-11-05 Gerd Moellmann <gerd@gnu.org>
1914
dd59e217
GM
1915 * bytecode.c (Fbyte_code): Use BEFORE_POTENTIAL_GC and
1916 AFTER_POTENTIAL_GC around internal_catch.
1917
bcf28080
GM
1918 * alloc.c (Fgarbage_collect): Call mark_byte_stack and
1919 relocate_byte_pcs.
1920 (init_alloc_once, init_alloc): Set byte_stack_list to null.
1921
1922 * eval.c (struct catchtag): Add member byte_stack.
1923 (internal_catch, Fcondition_case, internal_condition_case)
dd59e217 1924 (internal_condition_case_1): Save value of byte_stack_list in
bcf28080
GM
1925 catchtag.
1926 (unwind_to_catch): Restore byte_stack_list from catchtag.
1927
1928 * lisp.h: Add prototypes for new functions in bytecode.c.
1929 Add extern declaration for byte_stack_list.
1930
1931 * bytecode.c (struct byte_stack): New.
1932 (byte_stack_list, mark_byte_stack, relocate_byte_pcs): New
1933 (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): New.
1934 (FETCH, PUSH, POP, DISCARD, TOP, MAYBE_GC): Rewritten.
1935 (HANDLE_RELOCATION): Removed.
1936 (Fbyte_code): Use byte_stack structures.
1937
4d59c34c
GM
1938 * filelock.c (Ffile_locked_p): Make FILENAME a required argument.
1939
fe512f27
GM
1940 * buffer.c (syms_of_buffer): Extend documentation of
1941 mode-line-format.
1942
60b64cd6
GM
19431999-11-04 Gerd Moellmann <gerd@gnu.org>
1944
1945 * editfns.c (Fdelete_field): Renamed from Ferase_field.
1946
1947 * minibuf.c (do_completion, Fminibuffer_complete_word): Use
1948 Ferase_field instead of Fdelete_field.
1949
b51b619b
GM
19501999-11-03 Gerd Moellmann <gerd@gnu.org>
1951
1952 * dispnew.c (Finternal_show_cursor): Change it to set the
1953 cursor on/off, not toggle its state.
1954 (Finternal_show_cursor_p): New.
1955 (syms_of_display): Defsubr Sinternal_show_cursor_p.
1956
5865af0d
DL
19571999-11-03 Dave Love <fx@gnu.org>
1958
1959 * charset.c (split_non_ascii_string): Define return value.
1960
82a700f3
GM
19611999-11-03 Gerd Moellmann <gerd@gnu.org>
1962
edfef199
GM
1963 * minibuf.c (string_to_object): New.
1964 (read_minibuf_noninteractive): New.
1965 (read_minibuf): Call read_minibuf_noninteractive if
1966 noninteractive. Use string_to_object.
1967
82a700f3
GM
1968 * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO.
1969
b5540f0d
DL
19701999-11-02 Dave Love <fx@gnu.org>
1971
e69dcd60
DL
1972 * gnu-linux.h: Use SIGCHLD, not SIGCLD (not in glibc 2.1).
1973
827a1788
DL
1974 * process.c: Define _GNU_SOURCE before config.h to get strsignal
1975 declared with glibc2.
b5540f0d 1976
a69a6e61
GM
19771999-11-02 Gerd Moellmann <gerd@gnu.org>
1978
1979 * lisp.h (QUIT): Give it statement form.
1980
87e21fbd
DL
19811999-11-02 Dave Love <fx@gnu.org>
1982
1983 * eval.c (init_eval): Conditionalize declaration of gcpro_level.
1984
1b335865
GM
19851999-11-02 Gerd Moellmann <gerd@gnu.org>
1986
9fb5e03d
GM
1987 * xfns.c (QCuser_data): New.
1988 (syms_of_xfns): Initialize QCuser_data.
1989 (parse_image_spec): Ignore :user-data DATA properties.
1990
1b335865
GM
1991 * xdisp.c (display_line): Set charpos of first glyph in blank
1992 lines not corresponding to any text to -1, even if no glyphs are
1993 filled in in that line.
1994
e76f1c44
GM
19951999-11-01 Gerd Moellmann <gerd@gnu.org>
1996
36fcd3d9
GM
1997 * xfns.c (png_load) [PNG_READ_sRGB_SUPPORTED]: Put code using
1998 png_get_sRGB in #ifdef.
1999
111259b4
GM
2000 * dispnew.c (Finternal_show_cursor): Renamed from Fshow_cursor.
2001 (syms_of_display): Use the new name.
2002
dd5c96e8
GM
2003 * textprop.c (verify_interval_modification): Signal text-read-only
2004 instead of calling error.
2005
db8878fb
GM
2006 * data.c (Qtext_read_only): New built-in error.
2007 (syms_of_data): Initialize it.
2008
2009 * lisp.h: Add extern declaration for Qtext_read_only.
2010
e76f1c44
GM
2011 * syntax.c: Remove whitespace after open or in front of closing
2012 parentheses.
2013
83c8f461 20141999-11-01 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
2015
2016 * Makefile.in (w16select.o, sound.o): Don't depend on lisp.h.
2017
7843e09c
GM
20181999-10-31 Gerd Moellmann <gerd@gnu.org>
2019
575ed805
GM
2020 * xdisp.c (resize_mini_window): Compute needed height differently.
2021
7843e09c
GM
2022 * fns.c (Flength): Unroll loop over lists.
2023
2024 * xdisp.c (append_space): Return non-zero if space was appended.
2025 (display_line): Set charpos of first glyph to -1 only if that
2026 glyph is the space added by append_glyph.
2027
83c8f461 20281999-10-30 Richard M. Stallman <rms@gnu.org>
cb3a6c48
GM
2029
2030 * print.c (strout): Consider `noninteractive' and use stdout
2031 only when PRINTCHARFUN is t.
2032
2033 * lisp.h (struct gcpro) [DEBUG_GCPRO]: New field `level'.
2034 (gcpro_level): Declare it extern.
2035 [DEBUG_GCPRO] (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
2036 Alternate definitions that set `level' and increment `gcpro_level'.
2037 [DEBUG_GCPRO] (UNGCPRO): Alternate definition that checks gcpro_level.
2038
2039 * eval.c [DEBUG_GCPRO] (gcpro_level): New variable.
2040 (init_eval) [DEBUG_GCPRO]: Initialize it.
2041 (unwind_to_catch) [DEBUG_GCPRO]: Set gcpro_level
2042 from remaining gcprolist.
2043
3636f7a3
KH
20441999-10-29 Kenichi Handa <handa@etl.go.jp>
2045
2046 * coding.c (code_convert_region): Update `dst' correctly.
2047
a2ad7096
GM
20481999-10-28 Gerd Moellmann <gerd@gnu.org>
2049
2050 * fns.c (Fmemq, Fassq, Frassq, assq_no_quit, Fassoc)
2051 (Frassoc): Rewritten.
2052
1e3196e8
GM
20531999-10-27 Noah Friedman <friedman@splode.com>
2054
2055 * s/gnu-linux.h [HAVE_DEV_PTMX]: Redefine FIRST_PTY_LETTER to 'z'.
2056 Define PTY_NAME_SPRINTF.
2057 Redefine PTY_TTY_NAME_SPRINTF.
2058 * config.in: Add undef for HAVE_DEV_PTMX.
2059
83c8f461 20601999-10-26 Richard M. Stallman <rms@gnu.org>
4ea68fcc
RS
2061
2062 * regex.c (POP_FAILURE_POINT): Use failure_id.integer
2063 as arg to DEBUG_POP and DEBUG_PRINT.
2064
83c8f461 20651999-10-27 Richard M. Stallman <rms@gnu.org>
17dbfaad
GM
2066
2067 * data.c (Qad_activate_internal): Renamed from Qad_activate.
2068 (Ffset): Call Qad_activate_internal.
2069 (syms_of_data): Initialize Qad_activate_internal.
2070
26922151
GM
20711999-10-27 Gerd Moellmann <gerd@gnu.org>
2072
2073 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing if
2074 Vterminal_frame is selected and Vwindow_system is non-nil.
2075
67a5596f
GM
20761999-10-26 Gerd Moellmann <gerd@gnu.org>
2077
2bea706b
GM
2078 * xdisp.c (echo_area_display): Put previous change in #if 0.
2079
67a5596f
GM
2080 * emacs.c (standard_args): Add `file' as synonym for `visit',
2081 `execute' as synonym for `eval'.
2082 (main): Add new options to usage message.
2083
81dc5de5
GM
20841999-10-25 Gerd Moellmann <gerd@gnu.org>
2085
2086 * data.c (Qhash_table): New.
2087 (Ftype_of): Return it for hash tables.
2088 (syms_of_data): Initialize Qhash_table.
2089
83c8f461 20901999-10-25 Richard M. Stallman <rms@gnu.org>
bd3c545d
GM
2091
2092 * regex.c (POP_FAILURE_POINT): Extract failure_id as an integer.
2093
66e4690f 20941999-10-24 Ken Raeburn <raeburn@gnu.org>
3a7093d8 2095
7539e11f
KR
2096 * alloc.c: Undef HIDE_LISP_IMPLEMENTATION before including
2097 lisp.h.
2098
2099 * buffer.c (Fbuffer_list, Fget_file_buffer, get_truename_buffer,
2100 Fbuffer_local_variables, Fother_buffer, record_buffer,
2101 set_buffer_internal_1, Fbury_buffer, Fkill_all_local_variables,
2102 swap_out_buffer_local_variables, overlays_at, overlays_in,
2103 overlay_touches_p, overlay_strings, recenter_overlay_lists,
2104 fix_overlays_in_range, fix_overlays_before, Foverlay_get,
2105 Foverlay_put, report_overlay_modification, evaporate_overlays):
2106 Use XCAR, XCDR, and XFLOAT_DATA instead of explicit member
2107 references.
2108 * data.c (Fcar, Fcar_safe, Fcdr, Fcdr_safe, Fsetcar, Fsetcdr,
2109 swap_in_symval_forwarding, set_internal, default_value,
2110 Fset_default, Fmake_variable_buffer_local, Fmake_local_variable,
2111 Fmake_variable_frame_local, Flocal_variable_p,
2112 Flocal_variable_if_set_p, arithcompare, Fzerop, cons_to_long,
2113 Fnumber_to_string, float_arith_driver, Fadd1, Fsub1): Likewise.
2114 * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
2115 * emacs.c (main): Likewise.
2116 * fontset.c (fs_load_font, fs_register_fontset,
2117 CACHED_FONTSET_NAME, CACHED_FONTSET_REGEX, Fquery_fontset,
2118 Fnew_fontset, Fset_fontset_font): Likewise.
2119 * frame.c (do_switch_frame, next_frame, prev_frame,
2120 other_visible_frames, Fdelete_frame, Fvisible_frame_list):
2121 Likewise.
2122 * keyboard.c (read_char, help_char_p, event_to_kboard,
2123 kbd_buffer_get_event, timer_start_idle, timer_check,
2124 make_lispy_event, apply_modifiers, reorder_modifiers,
2125 Fevent_convert_list, lucid_event_type_list_p, menu_bar_items,
2126 menu_bar_one_keymap, menu_item_eval_property_1, parse_menu_item,
2127 tool_bar_items, read_char_x_menu_prompt, read_key_sequence,
2128 Fcommand_execute, Fexecute_extended_command): Likewise.
2129 * minibuf.c (read_minibuf, get_minibuffer, Ftry_completion,
2130 Fall_completions): Likewise.
2131 * window.c (Fset_window_margins): Likewise.
2132
2133 * callint.c (quotify_args): Don't explicitly use struct
2134 Lisp_Cons, use Lisp_Object and XCAR/XCDR instead.
2135
3a7093d8
KR
2136 * s/netbsd.h (HAVE_GETLOADAVG): Define as 1.
2137 (UNEXEC, START_FILES, LIB_STANDARD, LIB_GCC): Define ELF versions,
2138 if __ELF__ is defined.
2139
2a3d7146
GM
21401999-10-24 Gerd Moellmann <gerd@gnu.org>
2141
2142 * window.c (Fnext_window): Add a QUIT in the loop.
2143
8ac52782
GM
21441999-10-23 Gerd Moellmann <gerd@gnu.org>
2145
2146 * Makefile.in (bootstrap, bootstrap-emacs, bootstrap-temacs):
2147 New targets.
2148
05f0d15a
DL
21491999-10-22 Dave Love <fx@gnu.org>
2150
2151 * emacs.c (main): Enable profiling conditional on __linux also.
2152
882fb0e6
GM
21531999-10-20 Gerd Moellmann <gerd@gnu.org>
2154
2155 * xrdb.c (x_load_resources): Set default resources for resource
2156 classes instead of for the specific Emacs.
2157
b5f5bc31
GM
21581999-10-19 Gerd Moellmann <gerd@gnu.org>
2159
66f4dd69
GM
2160 * s/freebsd.h (HAVE_GETLOADAVG): Define as 1 because config.h
2161 defines it that way.
2162
b5f5bc31
GM
2163 * xdisp.c (echo_area_display) [HAVE_X_WINDOWS]: Do nothing
2164 if selected_frame is equal to Vterminal_frame.
2165
68c45bf0
PE
21661999-10-19 Paul Eggert <eggert@twinsun.com>
2167
2168 Add support for large files, 64-bit Solaris, system locale codings.
2169
2170 * Makefile.in (emacs): Set the LC_ALL environment variable to "C"
2171 when dumping, so that the dumped Emacs doesn't have stray locale info.
2172 (dired.o): Depend on systime.h.
2173 (editfns.o): Depend on coding.h.
2174
2175 * alloc.c, buffer.c, callproc.c, ccl.c, charset.c, coding.c, data.c,
2176 dispnew.c, editfns.c, emacs.c, filelock.c, floatfns.c, hftctl.c,
2177 keyboard.c, process.c, sysdep.c, unexelf.c, unexhp9k800.c,
2178 unexsunos4.c, vmsfns.c, vmsgmalloc.c, w32faces.c, w32menu.c, w32term.c,
2179 w32xfns.c, xfaces.c, xfns.c, xmenu.c, xterm.c:
2180 Include <config.h> before any system include files.
2181
2182 * alloc.c, buffer.c, ccl.c, data.c, editfns.c, emacs.c, eval.c,
2183 fileio.c, filelock.c, frame.c, insdel.c, keymap.c, lread.c,
2184 m/alpha.h, print.c, search.c, sysdep.c, xdisp.c, xfaces.c, xfns.c,
2185 xmenu.c, xterm.c:
2186 Do not include <stdlib.h>, as <config.h> does this now.
2187
2188 * callproc.c (Fcall_process):
2189 Synchronize messages locale before invoking strerror.
2190 Decode resulting string with locale-coding-system.
2191
2192 * coding.c (Vlocale_coding_system): New var.
2193 (syms_of_coding): Adjust to above change.
2194 (emacs_strerror): New function.
2195
2196 * coding.h (emacs_strerror, Vlocale_coding_system): New decls.
2197
2198 * config.in (HAVE_STDIO_EXT_H, HAVE_TM_GMTOFF, HAVE___FPENDING,
2199 HAVE_FTELLO, HAVE_GETLOADAVG, HAVE_MBLEN, HAVE_MBRLEN,
2200 HAVE_STRSIGNAL): New macros.
2201 (BITS_PER_LONG): Default to 64 if _LP64 is defined.
2202 <stdlib.h>: Include if HAVE_STDLIB_H is defined and NOT_C_CODE isn't.
2203
2204 * dired.c: Include "systime.h".
2205 (Ffile_attributes): Do not cast s.st_size to int; this loses
2206 information if int is 32 bits but st_size and EMACS_INT are larger.
2207 Treat large device numbers like large inode numbers.
2208
2209 * dispnew.c (PENDING_OUTPUT_COUNT): Use __fpending if available.
2210
2211 * editfns.c: Include coding.h.
2212 (emacs_strftime): Remove decl.
2213 (emacs_strftimeu): New decl.
2214 (emacs_memftimeu): Renamed from emacs_memftime; new arg UT.
2215 Use emacs_strftimeu instead of emacs_strftime.
2216 (Fformat_time_string): Convert format string using
2217 Vlocale_coding_system, and convert result back. Synchronize time
2218 locale before invoking lower level function. Invoke
2219 emacs_memftimeu, passing ut, instead of emacs_memftime.
2220
2221 * emacs.c: Include <locale.h> if HAVE_SETLOCALE is defined.
2222 (Vmessages_locale, Vprevious_messages_locale, Vtime_locale,
2223 Vprevious_time_locale): New variables.
2224 (main): Invoke setlocale early, so that initial error messages are
2225 localized properly. But skip locale-setting if LC_ALL is "C".
2226 Fix up locale when it's safe to do so.
2227 (fixup_locale): Moved here from xterm.c.
2228 (synchronize_locale, synchronize_time_locale,
2229 synchronize_messages_locale): New functions.
2230 (syms_of_emacs): Accommodate above changes.
2231
2232 * fileio.c (report_file_error): Convert strerror output according
2233 to Vlocale_coding_system.
2234 (Finsert_file_contents): Check for arithmetic overflow in
2235 computations that depend on file size. Report IO errors
2236 with emacs_strerror, not strerror.
2237
2238 * fns.c (Fgethash): Declare dflt parameter.
2239
2240 * gmalloc.c: Do not define const to nothing if HAVE_CONFIG_H
2241 is defined; that's config.h's job.
2242
2243 * lisp.h (EMACS_INT, BITS_PER_EMACS_INT, EMACS_UINT): If _LP64,
2244 default these values to long, BITS_PER_LONG, and unsigned long.
2245 (VALBITS, MARKBIT, XINT): Do not assume 32-bit EMACS_INT.
2246 (PNTR_COMPARISON_TYPE): Default to EMACS_UINT, not to unsigned int.
2247 (code_convert_string_norecord, fixup_locale,
2248 synchronize_messages_locale, synchronize_time_locale,
2249 emacs_open, emacs_close, emacs_read, emacs_write): New decls.
2250 All Emacs callers of open, close, read, write changed to use
2251 emacs_open, emacs_close, emacs_read, emacs_write.
2252
2253 * lread.c (file_offset, file_tell): New macros. All uses of ftell
2254 changed to file_tell.
2255 (saved_doc_string_position, prev_saved_doc_string_position): Now
2256 of type file_offset.
2257 (init_lread): Do not fix locale here; fixup_locale now does this.
2258
2259 * m/amdahl.h, s/usg5-4.h:
2260 (NSIG): Remove.
2261 (NSIG_MINIMUM): New macro.
2262
2263 * m/cydra5.h, m/dpx2.h, m/mips.h, m/pfa50.h, m/sps7.h, m/stride.h,
2264 m/ustation.h, s/gnu-linux.h, s/hpux.h, s/iris3-5.h, s/iris3-6.h,
2265 s/umips.h, s/usg5-4.h:
2266 (SIGIO): Do not undef.
2267 (BROKEN_SIGIO): New macro.
2268
2269 * m/ustation.h:
2270 (SIGTSTP): Do not undef.
2271 (BROKEN_SIGTSTP): New macro.
2272
2273 * s/gnu-linux.h:
2274 (SIGPOLL, SIGURG): Do not undef.
2275 (BROKEN_SIGPOLL, BROKEN_SIGURG): New macros.
2276
2277 * s/ptx4.h:
2278 (SIGINFO): Do not undef.
2279 (BROKEN_SIGINFO): New macros.
2280
2281 * m/delta.h, s/ptx.h, s/template.h: Doc fix.
2282
2283 * mktime.c, strftime.c: Update to glibc 2.1.2 version, with
2284 some Emacs-related changes merged.
2285
2286 * print.c (float_to_string): Prepend "-" to representation of a
2287 NaN if the NaN is negative.
2288
2289 * process.c (sys_siglist): Omit if HAVE_STRSIGNAL.
2290 (wait_reading_process_input): Use emacs_strerror, not strerror.
2291
2292 * process.c (status_message, sigchld_handler): Synchronize locale,
2293 then use strsignal istead of sys_siglist.
2294 * w32proc.c (sys_wait): Likewise.
2295
2296 * s/aix3-1.h, s/bsd4-1.h, s/dgux.h, s/gnu-linux.h, s/hiuxmpp.h,
2297 s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/osf1.h, s/rtu.h,
2298 s/sunos4-1.h, s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h,
2299 s/usg5-2.h, s/usg5-3.h, s/xenix.h:
2300 (open, close, read, write, INTERRUPTIBLE_OPEN,
2301 INTERRUPTIBLE_CLOSE, INTERRUPTIBLE_IO): Remove.
2302
2303 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): New macros.
2304
2305 * sysdep.c (sys_read, sys_write, read, write, sys_close, close,
2306 sys_open, open): Remove.
2307 (emacs_open, emacs_close, emacs_read, emacs_write): Always define;
2308 the old INTERRUPTIBLE_OPEN, INTERRUPTIBLE_CLOSE, and INTERRUPTIBLE_IO
2309 macros are no longer used.
2310 (emacs_open): Renamed from sys_open. Merge BSD4_1 version.
2311 (emacs_close): Renamed from sys_close.
2312 (emacs_read): Renamed from sys_read.
2313 (emacs_write): Renamed from sys_write.
2314 (sys_siglist): Do not declare if HAVE_STRSIGNAL.
2315 (dup2): Do not print error on failure; the real dup2 doesn't.
2316 (strsignal): New function, defined if !HAVE_STRSIGNAL.
2317
2318 * syssignal.h (SIGINFO): Undef if defined and if BROKEN_SIGINFO
2319 is defined.
2320 (SIGIO, SIGPOLL, SIGTSTP, SIGURG): Likewise.
2321 (NSIG): If less than NSIG_MINIMUM, define to NSIG_MINIMUM.
2322 (strsignal): Declare if !HAVE_STRSIGNAL.
2323
2324 * unexelf.c (ElfBitsW, ELFSIZE, ElfExpandBitsW): New macros.
2325 (ElfW): Define in terms of ElfExpandBitsW.
2326
2327 * w32proc.c (sys_siglist): Remove decl.
2328
2329 * xdisp.c (decode_mode_spec): 3rd arg is int, not char, to comply
2330 with ANSI C.
2331 (display_string): Declare face_string_pos arg.
2332
2333 * xfns.c (Fx_show_tip): Declare timeout param.
2334
2335 * xterm.c: No need to include locale.h.
2336 (x_alloc_lighter_color, x_setup_relief_color):
2337 Pass arg as double, not float, for compatibility with ANSI C.
2338 (fixup_locale): Move to emacs.c.
2339 (x_term_init): Do not setlocale or fixup locale; the main program
2340 does this now.
2341
2f0b74ea
DL
23421999-10-18 Dave Love <fx@gnu.org>
2343
2344 * doc.c (Fdocumentation_property): Gcpro `tem'.
2345
471aa4a0
KH
23461999-10-18 Kenichi Handa <handa@etl.go.jp>
2347
2348 * lread.c (Fload): Calculate bytes of filename correctly.
2349 (openp): Likewise.
2350
aca2020b
KH
23511999-10-18 Keisuke Nishida <kxn30@po.cwru.edu>
2352
2353 * print.c (print_preprocess): In case print-circle is nil,
2354 add OBJ to Vprint_number_table only when OBJ is a symbol.
2355
1f5fe392 23561999-10-18 Kenichi Handa <handa@etl.go.jp>
b843d1ae
KH
2357
2358 * coding.c (code_convert_string): Add record_unwind_protect to
2359 assure setting inhibit_pre_post_conversion back to zero. Take
2360 care of the multibyteness of the working buffer.
2361
2362 * coding.c (inhibit_pre_post_conversion): New variable.
2363 (setup_coding_system): If inhibit_pre_post_conversion is nonzero,
2364 ignore post-read-conversion and pre-write-conversion property of
2365 the coding system.
2366 (code_convert_region_unwind): New function.
2367 (code_convert_region): Set inhibit_pre_post_conversion to 1 while
2368 running pre-write-conversion and post-read-conversion.
2369 (code_convert_string): Likewise.
2370
cd876a91
GM
23711999-10-17 Miles Bader <miles@gnu.org>
2372
2373 * editfns.c: Doc fix.
2374
23751999-10-17 Miles Bader <miles@gnu.org>
2376
2377 * editfns.c (Fconstrain_to_field): Make sure we don't violate the
2378 argument preconditions of find_before_next_newline in the case
2379 where both ONLY_IN_LINE and ESCAPE_FROM_EDGE are set and OLD_POS
2380 was indeed at the edge.
2381
23821999-10-17 Miles Bader <miles@gnu.org>
2383
2384 * minibuf.c (Fminibuffer_complete_and_exit): Supply value for new
2385 ESCAPE_FROM_EDGE parameter to Ffield_beginning.
2386
2387 * editfns.c (text_property_eq, text_property_stickiness): Don't
2388 use initializers for auto variables of type Lisp_Object.
2389 (find_field): Likewise. Use braces around nested ifs.
2390 (Fline_end_position): Store the raw eol in a variable, so that the
2391 final expression doesn't look so ugly.
2392 (Fconstrain_to_field): Doc fix.
2393 (preceding_pos): Renamed from `preceeding_pos'.
2394 (text_property_stickiness, find_field): Call preceding_pos,
2395 not preceeding_pos.
2396
23971999-10-17 Miles Bader <miles@gnu.org>
2398
2399 * editfns.c (Ffield_string_no_properties): New function.
2400 (text_property_stickiness, preceeding_pos): New functions.
2401 (Ffield_string): Remove PROPS parameter.
2402 (find_field): Add MERGE_AT_BOUNDARY parameter.
2403 Rewrite to use stickiness of `field' property to resolve
2404 ambiguous cases.
2405 (Ffield_beginning, Ffield_end): Add ESCAPE_FROM_EDGE parameter.
2406 (Fconstrain_to_field): Likewise.
2407 (syms_of_editfns): Init Sfield_string_no_properties.
2408 (Ffield_string, Ferase_field, Ffield_end):
2409 Supply new MERGE_AT_BOUNDARY argument to find_field.
2410 (Fline_beginning_position, Fline_end_position): Supply new
2411 ESCAPE_FROM_EDGE parameter to Fconstrain_to_field.
2412 Pass a value of Qt for the ONLY_IN_LINE argument to
2413 Fconstrain_to_field (only matters if N != 1).
2414 * syntax.c (Fforward_word): Supply new ESCAPE_FROM_EDGE parameter
2415 to Fconstrain_to_field.
2416
2417 * minibuf.c (Fminibuffer_complete_word): Use
2418 Ffield_beginning to find the prompt end.
2419
24201999-10-17 Miles Bader <miles@gnu.org>
2421
2422 * editfns.c (Fconstrain_to_field): Add get/set-current-point
2423 behavior when NEW_POS is nil.
2424 (find_field): Use XSETFASTINT instead of make_number.
2425 * minibuf.c (Fminibuffer_complete_and_exit): Test for an empty
2426 input string by seeing where the field begins, instead of
2427 looking at text-properties.
2428
24291999-10-17 Miles Bader <miles@gnu.org>
2430
2431 * editfns.c (Qfield): New variable.
2432 (find_field, Ferase_field, Ffield_string,
2433 Ffield_beginning, Ffield_end, Fconstrain_to_field): New functions.
2434 (Fline_beginning_position, Fline_end_position): Constrain to any field.
2435 (make_buffer_string_both): Remove minibuffer-prompt hack.
2436 (syms_of_editfns): Initialize Qfield, and subr entries for
2437 field functions above.
2438 * minibuf.c (read_minibuf): Don't save minibuffer prompt length on
2439 minibuf_save_list.
2440 Don't initialize minibuffer prompt length.
2441 Wrap prompt text-properties around the entire prompt.
2442 Add 'prompt text-property to prompt.
2443 Get final value with Ffield_string instead of make_buffer_string.
2444 (read_minibuf_unwind): Don't restore minibuffer prompt length from
2445 minibuf_save_list.
2446 (do_completion): Get minibuffer input with Ffield_string
2447 instead of Fbuffer_string.
2448 Erase minibuffer input with Ferase_field instead of erase_buffer.
2449 (Fminibuffer_complete_and_exit): Likewise.
2450 Test whether buffer is empty by looking for the 'prompt text
2451 property at the end.
2452 Set prompt length by looking for the end of the prompt text property,
2453 and save prompt length for later use (since there is no longer a
2454 buffer variable to get it from).
2455 (Fminibuffer_prompt_width, Fminibuffer_prompt_end): Functions removed.
2456 (syms_of_minibuf): Remove initializations of
2457 Sminibuffer_prompt_width and Sminibuffer_prompt_end.
2458 * buffer.h (struct buffer): Remove prompt_end_charpos field.
2459 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer, Fkill_buffer):
2460 Don't initialize prompt_end_charpos field.
2461 * syntax.c (Fforward_word): Likewise.
2462 Constrain to any field.
2463
3f6f7508
GM
24641999-10-16 Gerd Moellmann <gerd@gnu.org>
2465
2466 * window.c (enum save_restore_action): New.
2467 (save_restore_orig_size): Change parameter list. Add
2468 functionality to check for valid orig_top and orig_height members
2469 in a window tree.
2470 (grow_mini_window): Call save_restore_orig_size with new parameter
2471 list.
2472 (shrink_mini_window): Restore old window sizes only if old
2473 size information is valid in all windows in a window tree.
2474
06482119
GM
24751999-10-15 Gerd Moellmann <gerd@gnu.org>
2476
2710454d
GM
2477 * xmenu.c (set_frame_menubar): Don't call
2478 x_set_menu_resources_from_menu_face here.
2479 (update_frame_menubar): Call x_set_menu_resources_from_menu_face.
2480
06482119
GM
2481 * xfns.c (gif_load): Fix handling of interlaced GIFs.
2482
17fa2837
DL
24831999-10-14 Dave Love <fx@gnu.org>
2484
2485 * xdisp.c (handle_fontified_prop): GCPRO `pos'.
2486
45f93416
GM
24871999-10-14 Gerd Moellmann <gerd@gnu.org>
2488
2489 * process.c (Fopen_network_stream): Don't loop if gethostbyname
2490 fails and h_errno is TRY_AGAIN.
2491
c765b723
DL
24921999-10-13 Dave Love <fx@gnu.org>
2493
2494 * filelock.c (lock_file): Move gcpro of `fn'.
2495
dace7f4e
GM
24961999-10-10 Gerd Moellmann <gerd@gnu.org>
2497
2498 * keyboard.c (auto-save-interval): Fix documentation.
2499
83c8f461 25001999-10-09 Richard M. Stallman <rms@gnu.org>
73fb36f1
RS
2501
2502 * print.c (print): When removing objects from Vprint_number_table,
2503 only scan the newly added objects.
2504 (print_preprocess): If OBJ is a gensym, and print-continuous-numbering,
2505 unconditionally force it to stay in the table.
2506
85177c86
GM
25071999-10-09 Gerd Moellmann <gerd@gnu.org>
2508
2509 * xfns.c (prepare_image_for_display): Don't try to load image if
2510 loading it failed before.
2511 (lookup_image, prepare_image_for_display): Remember if loading the
2512 image failed.
2513 (xpm_load): Add missing UNBLOCK_INPUT.
2514
2515 * dispextern.h (struct image): New member load_failed_p.
2516
11e4de5d
SM
25171999-10-08 Stefan Monnier <monnier@cs.yale.edu>
2518
f28eba7b 2519 * fileio.c (Fmake_temp_name): Add a reference to `make-temp-file'
11e4de5d
SM
2520 in the docstring.
2521
f1da8f06
GM
25221999-10-08 Gerd Moellmann <gerd@gnu.org>
2523
2524 * xterm.c (XTread_socket) <ClientMessage, WM_TAKE_FOCUS>:
2525 Don't call XSetInputFocus because that can generate additional
2526 FocusIn events.
2527
c37bbd4f
GM
25281999-10-07 Jeffrey C Honig <jch@bsdi.com>
2529
2530 * bsdos4.h [HAVE_LIBNCURSES]: Define TERMINFO and LIBS_TERMCAP.
2531
83c8f461 25321999-10-07 Richard M. Stallman <rms@gnu.org>
78cc5c64
GM
2533
2534 * process.c (wait_reading_process_input): When trying to suck
2535 input from one process, for accept-process-output,
2536 exit that loop if we get EAGAIN or EWOULDBLOCK.
2537
577d9e2f
GM
25381999-10-07 Gerd Moellmann <gerd@gnu.org>
2539
2540 * xfaces.c (Qbitmap_spec_p): Replaces Qpixmap_spec_p.
2541 (Fbitmap_spec_p): Replaces Fpixmap_spec_p.
2542 (load_pixmap): Use Fbitmap_spec_p and Qbitmap_spec_p instead of
2543 Fpixmap_spec_p and Qpixmap_spec_p.
2544 (load_face_colors, check_lface_attrs,
2545 merge_face_vector_with_property,
2546 Finternal_set_lisp_face_attribute): Use Fbitmap_spec_p.
2547 (syms_of_xfaces): Initialize Qbitmap_spec_p, defsubr
2548 Fbitmap_spec_p.
2549
f5737ad2
GM
25501999-10-07 Gerd Moellmann <gerd@gnu.org>
2551
2552 * xdisp.c (display_menu_bar): Use MENU_FACE_ID instead of
2553 MODE_LINE_FACE_ID.
2554
2555 * xfaces.c (toplevel) [USE_MOTIF]: Include some Motif headers.
2556 (struct x_resources) [USE_X_TOOLKIT]: New.
2557 (xm_apply_resources, xm_set_menu_resources_from_menu_face)
2558 [USE_MOTIF]: New.
2559 (xl_apply_resources, xl_set_menu_resources_from_menu_face)
2560 [USE_LUCID]: New.
2561 (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]: New.
2562 (Qmenu): New.
2563 (syms_of_xfaces): Initialize Qmenu.
2564 (realize_basic_faces): Realize face `menu'.
2565 (resolve_face_name): New.
2566 (lface_from_face_name): Use it.
2567 (Finternal_set_lisp_face_attribute): Ditto.
2568 (Fpixmap_spec_p): Rewritten. Extend doc string.
2569
2570 * xmenu.c (set_frame_menubar, xmenu_show): Call
2571 x_set_menu_resources_from_menu_face.
2572
2573 * dispextern.h (enum face_id): Add MENU_FACE_ID.
2574 (toplevel): Include X11/Intrinsic.h.
2575
6a1aa823
DL
25761999-10-03 Ken'ichi Handa <handa@gnu.org>
2577
2578 * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR
2579 correctly.
2580
26901792
DL
25811999-09-30 Kenichi Handa <handa@etl.go.jp>
2582
2583 * category.c (modify_lower_category_set): Set default value of
2584 TABLE correctly.
2585
2586 * minibuf.c (Fminibuffer_complete_word): Calculate string byte
2587 size correctly.
2588
25891999-09-29 Gerd Moellmann <gerd@gnu.org>
2590
2591 * editfns.c (Fpropertize): Renamed from Fproperties.
2592
25931999-09-29 Gerd Moellmann <gerd@gnu.org>
2594
2595 * xdisp.c (resize_mini_window): Do nothing if frame is an X
2596 frame that hasn't been initialized yet.
2597
83c8f461 25981999-09-28 Richard M. Stallman <rms@gnu.org>
a04f1a93
PR
2599
2600 * keymap.c (Fsingle_key_description): Make tem big enough.
2601 (describe_buffer_bindings): Make buf big enough.
2602
83c8f461 26031999-09-27 Richard M. Stallman <rms@gnu.org>
d177c583
PR
2604
2605 * intervals.c (get_local_map): Use indirect_function,
2606 not Findirect_function.
2607
26901792
DL
26081999-09-27 Dave Love <fx@gnu.org>
2609
2610 * cm.h: Remove unneeded declaration of ospeed.
2611
26121999-09-26 Gerd Moellmann <gerd@gnu.org>
2613
2614 * lisp.h (toplevel): Add prototype for
2615 next_single_char_property_change.
2616
2617 * textprop.c (next_single_char_property_change): New.
2618
2619 * xdisp.c (display_prop_end, invisible_text_between_p): Use
2620 next_single_char_property_change.
2621
26221999-09-25 Gerd Moellmann <gerd@gnu.org>
2623
2624 * editfns.c (Fproperties): New.
2625 (syms_of_editfns): Defsubr it.
2626
2627 * xfns.c (lookup_image): Set image's timestamp because it's
2628 used when we look it up.
2629
26301999-09-23 Gerd Moellmann <gerd@gnu.org>
2631
2632 * window.c (enlarge_window): Add window parameter instead of using
2633 selected_window.
2634 (Fdisplay_buffer): Call it with window parameter instead of
2635 setting selected_window.
2636 (Fenlarge_window, Fshrink_window): Ditto.
2637 (shrink_mini_window): If there is no recorded height and position
2638 info, resize mini-window to height 1.
2639
2640 * xfns.c (image_error): Use add_to_log.
2641
2642 * xfaces.c (load_pixmap): Call add_to_log without frame parameter.
2643 (load_face_font_or_fontset, load_color,
2644 merge_face_vector_with_property): Ditto.
2645
2646 * dispextern.h: Add prototype for add_to_log.
2647
2648 * xfaces.c (add_to_log): Move to xdisp.c.
2649
2650 * xdisp.c (add_to_log): Moved from xfaces.c. Remove frame
2651 parameter.
2652
26531999-09-23 Gerd Moellmann <gerd@gnu.org>
2654
2655 * xterm.c (XTread_socket) <MotionNotify>: Change #ifdef
2656 USE_X_TOOLKIT to #ifdef USE_TOOLKIT_SCROLL_BARS.
2657
2658 * xdisp.c (resize_mini_window): Use grow_mini_window and
2659 shrink_mini_window.
2660
2661 * window.c (window_min_size): Add parameter ignore_fixed_p.
2662 (change_window_height): Call window_min_size with new parameter.
2663 (shrink_window_lowest_first, save_restore_orig_size,
2664 grow_mini_window, shrink_mini_window): New.
2665 (make_window, replace_window): Initialize orig_top and
2666 orig_height.
2667 (enlarge_window): Renamed from change_window_height. Make it
2668 static.
2669 (Fdisplay_buffer, Fenlage_window, Fshrink_window): Call
2670 enlarge_window instead of change_window_height.
2671
2672 * window.h (struct window): New members orig_top, orig_height.
2673 (toplevel): Add prototypes for grow_mini_window and
2674 shrink_mini_window. Remove prototype for change_window_height.
2675
26761999-09-21 Eli Zaretskii <eliz@gnu.org>
2677
2678 * frame.c (frame_name_fnn_p): Fix previous change.
2679
26801999-09-20 Gerd Moellmann <gerd@gnu.org>
2681
2682 * minibuf.c (toplevel): Move include of stdio.h to other includes.
2683
2684 * dispnew.c (direct_output_for_insert): Cast arguments to
2685 safe_bcopy to char *.
2686
2687 * lread.c (readchar): Remove unused variables.
2688 (read_filtered_event, read1, Fmapatoms): Ditto.
2689 (toplevel): Include intervals.h.
2690
2691 * eval.c (Fsignal): Remove unused variables.
2692 (Fcommandp, do_autoload): Ditto.
2693
2694 * lisp.h: Add prototype for safe_bcopy, fatal.
2695
2696 * editfns.c (init_editfns): Remove unused variables.
2697 (Fgoto_char, Fchar_after, Fformat): Ditto.
2698 (message_text, message_length): Put in #ifndef HAVE_MENUS.
2699
2700 * data.c (find_symbol_value): Remove unused variables.
2701 (Faref, Fstring_to_number): Ditto.
2702 (toplevel): Include stdio.h.
2703 (Fnumber_to_string): Cast XINT to long for %ld.
2704
2705 * casefiddle.c (casify_object): Remove unused variables.
2706 (casify_region): Ditto.
2707
2708 * filelock.c (get_boot_time): Put local variable used in
2709 conditinally compiled section in #ifdef.
2710 (toplevel): Include stdio.h.
2711
2712 * keymap.c (Flookup_key, Faccessible_keymaps, describe_vector,
2713 keys_of_keymap, syms_of_keymap): Remove unused variables.
2714
27151999-09-20 Gerd Moellmann <gerd@gnu.org>
2716
2717 * xdisp.c (sync_frame_with_window_matrix_rows): Disable frame rows
2718 whose corresponding window rows have been disabled in
2719 try_window_id.
2720
27211999-09-20 Gerd Moellmann <gerd@gnu.org>
2722
2723 * xdisp.c (compute_window_start_on_continuation_line): Handle case
2724 that window start is out of range.
2725 (handle_display_prop, handle_single_display_prop): Replace
2726 marginal area specifications like `left-margin' with `(margin
2727 left-margin)'.
2728 (Qmargin): New.
2729 (syms_of_xdisp): Initialize Qmargin.
2730
27311999-09-19 Gerd Moellmann <gerd@gnu.org>
2732
2733 * syntax.c (update_syntax_table, find_defun_start, back_comment,
2734 describe_syntax, skip_chars): Remove unused variables.
2735 (back_comment, forw_comment): Add braces to if-statement with
2736 if-else as dependent statement.
2737
2738 * process.c (list_processes_1): Remove unused variables.
2739 (Fopen_network_stream, create_process): Add parentheses to
2740 conditional expressions.
2741 (create_process): Put declaration of sigchld in #if 0.
2742 (Fopen_network_stream): Removed unused variables.
2743 (Fopen_network_stream, wait_reading_process_input,
2744 wait_reading_process_input, send_process, send_process): Ditto.
2745 (toplevel): Add prototypes for set_waiting_for_input and
2746 keyboard_bit_set.
2747
2748 * abbrev.c (Fexpand_abbrev): Remove unused variables.
2749
2750 * textprop.c (Fset_text_properties): Remove unused variables.
2751 (text_property_list, verify_interval_modification,
2752 interval_has_all_properties): Ditto.
2753
2754 * callproc.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2755 (Fcall_process): Remove unused variable.
2756
2757 * keyboard.c (Frecursive_edit): Remove unused variable.
2758 (command_loop_1, safe_run_hooks, kbd_buffer_get_event,
2759 timer_check, make_lispy_event, menu_bar_items,
2760 menu_bar_one_keymap, menu_bar_item, parse_menu_item,
2761 parse_tool_bar_item, read_char_x_menu_prompt, read_key_sequence,
2762 kbd_buffer_get_event, make_lispy_event, read_char_x_menu_prompt,
2763 read_key_sequence): Ditto. Fread_key_sequence,
2764 Fread_key_sequence_vector, Fsuspend_emacs): Ditto.
2765 (read_key_sequence) [GOBBLE_FIRST_EVENT]: Put local variables only
2766 used when GOBBLE_FIRST_EVENT is defined in #ifdef
2767 (Fexecute_extended_command): Cast XINT to long for %ld.
2768 (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2769 (toplevel): Include sys/types.h.
2770
2771 * lisp.h (RETURN_UNGCPRO): Use do-while (0) idiom.
2772 (toplevel): Add prototypes for stuff_char, and
2773 code_convert_string_norecord.
2774
27751999-09-19 Gerd Moellmann <gerd@gnu.org>
2776
2777 * buffer.h: Add prototype for r_re_alloc.
2778
2779 * insdel.c (copy_text): Removed unused variables.
2780 (count_combining_after, count_combining_after, insert_1_both,
2781 insert_from_string_1, insert_from_buffer_1, check_markers): Ditto.
2782 (adjust_after_replace, replace_range): Add parentheses to logical
2783 expressions. Remove unused variables.
2784 (CHECK_BYTE_COMBINING_FOR_INSERT): Add parentheses to logical
2785 expression.
2786
2787 * alloc.c (Fgarbage_collect): Remove unused variable.
2788 (compact_strings): Add parentheses around assignments in
2789 conditional context.
2790 (toplevel): Put declaration of unused function clear_marks
2791 in #if 0 like its definition.
2792
2793 * lisp.h: Add prototype for shrink_regexp_cache,
2794 sweep_weak_hash_tables.
2795
27961999-09-19 Dave Love <fx@gnu.org>
2797
2798 * process.c (Fopen_network_stream): Use strerror, not gai_strerror.
2799
2800 * doc.c (read_bytecode_char): Declare arg.
2801
2802 * lisp.h: Declare Fcurrent_message, Fmake_temp_name,
2803 read_bytecode_char, Fx_hide_busy_cursor, getloadavg.
2804
28051999-09-18 Richard Stallman <rms@gnu.org>
2806
2807 * xdisp.c (echo_area_display): Turn off code that returned
2808 without doing anything when using a terminal frame.
2809
83c8f461 28101999-09-17 Richard M. Stallman <rms@gnu.org>
27271329
PR
2811
2812 * unexelf.c (unexec): Don't get confused by a short section
2813 just before the bss section.
2814
26901792
DL
28151999-09-16 Gerd Moellmann <gerd@gnu.org>
2816
2817 * emacs.c (main): Remove unused variables.
2818 (sort_args, Fkill_emacs, Fkill_emacs): Ditto.
2819
2820 * lisp.h: Add prototype for uninterrupt_malloc, memory_warnings,
2821 init_fileio_once, syms_of_sound, init_xfns, init_fns
2822 init_sound, check_message_stack.
2823
2824 * emacs.c (toplevel) [HAVE_UNISTD_H]: Include unistd.h.
2825
2826 * intervals.c (rotate_right, rotate_left): Add braces to avoid
2827 ambiguous else warning.
2828 (split_interval_left): Remove unused variables.
2829 (previous_interval, adjust_intervals_for_deletion,
2830 set_point_both, set_point_both, set_intervals_multibyte_1): Ditto.
2831 (icount, idepth, zero_length): Move into #if 0 section below
2832 original position where these are used.
2833
2834 * buffer.h [REL_ALLOC]: Add prototypes for r_alloc and r_alloc_free.
2835
2836 * buffer.c (Fkill_buffer): Remove unused variables.
2837 (Fkill_buffer, overlays_at, overlays_in, recenter_overlay_lists,
2838 fix_overlays_in_range, Fmove_overlay, Fprevious_overlay_change,
2839 init_buffer_once, (syms_of_buffer): Ditto.
2840
2841 * xrdb.c (get_fallback): Remove unused variable.
2842 (x_load_resources): Ditto. Put local variable used for Motif only
2843 in #ifdef USE_MOTIF.
2844
28451999-09-16 Gerd Moellmann <gerd@gnu.org>
2846
2847 * minibuf.c (read_minibuf): Remove unused variables.
2848 (read_minibuf, Fread_buffer, scmp, Fcompleting_read): Ditto.
2849 (do_completion): Move assignment out of conditional context.
2850 (Fdisplay_completion_list): Add parentheses to conditional expression.
2851
2852 * cm.c (toplevel) [HAVE_TERMCAP_H]: Include termcap.h.
2853
2854 * lisp.h: Add prototype for no_switch_window.
2855
2856 * window.c (Fset_window_buffer): Remove unused variables.
2857 (Fset_window_margins): Ditto.
2858
2859 * xdisp.c (resize_mini_window): Temporarily set the selected
2860 window's or Vminibuf_scroll_window's height to "fixed" around
2861 the call the change_window_height.
2862
2863 * window.c (window_fixed_size_p): Check window's height_fixed_p
2864 flag.
2865
2866 * window.h (struct window): New member height_fixed_p.
2867
2868 * dispnew.c (direct_output_forward_char): Don't use this method
2869 if showing a message or a message was just cleared because we
2870 might need to resize the mini-window.
2871
28721999-09-16 Gerd Moellmann <gerd@gnu.org>
2873
2874 * frame.c (Fdelete_frame): Correct local variable pointing to
2875 selected frame after selecting new frame.
2876
28771999-09-15 Richard Stallman <rms@gnu.org>
2878
2879 * puresize.h (BASE_PURESIZE): Increase to 525000.
2880
2881 * filelock.c (Vtemporary_file_directory): New variable.
2882 (syms_of_filelock): Set up Lisp variable.
2883
28841999-09-15 Gerd Moellmann <gerd@gnu.org>
2885
2886 * term.c (OUTPUT_IF, OUTPUT1_IF): Use do-while.
2887 (encode_terminal_code): Remove unused variables.
2888 (turn_off_face): Ditto.
2889 (toplevel): Include termcap.h if HAVE_TERMCAP_H.
2890
2891 * dispnew.c (update_frame_line): If writing whole desired line,
2892 don't clear to end of line if already at the end.
2893
28941999-09-15 Gerd Moellmann <gerd@gnu.org>
2895
2896 * xdisp.c (resize_mini_window): Don't report changed window
2897 height if it actually hasn't changed.
2898
2899 * widget.c (set_frame_size, EmacsFrameSetCharSize): Remove
2900 unused variables.
2901 (mark_shell_size_user_specified): Put in #if 0 because not used.
2902 (create_frame_gcs): Put in #if 0 because currently unused.
2903 (first_frame_p): Ditto.
2904
2905 * xmenu.c (single_menu_item, Fx_popup_menu, Fx_popup_menu,
2906 single_submenu, update_frame_menubar, set_frame_menubar,
2907 free_frame_menubar, xmenu_show, xdialog_show): Remove unused
2908 variables.
2909
2910 * print.c (PRINTFULLP): Removed because it is no longer used and
2911 is misleading.
2912 (Ferror_message_string): Remove unused variables.
2913 (print_object): Cast argument of sprintf to long for `%ld'
2914 specifier. Remove unused variable.
2915
29161999-09-14 Gerd Moellmann <gerd@gnu.org>
2917
2918 * sound.c (Fplay_sound): Remove usused variables.
2919 (be2hs): Put in #if 0 because it's currently not used.
2920
29211999-09-14 Ken Raeburn <raeburn@gnu.org>
2922
2923 * print.c (Ferror_message_string, print_error_message,
2924 print_object): Use XCAR, XCDR and XFLOAT_DATA instead of explicit
2925 member access.
2926
29271999-09-14 Gerd Moellmann <gerd@gnu.org>
2928
2929 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Put code in do-while.
2930
2931 * frame.c (Fnext_frame): Remove unused variable(s).
2932 (Fprevious_frame, Fmouse_pixel_position, frame_name_fnn_p): Ditto.
2933 (store_frame_param): Add parentheses to conditional expression.
2934 (Fmodify_frame_parameters): Remove unused variables.
2935 (Fmodify_frame_parameters, Fset_frame_size, Fset_frame_position):
2936 Ditto.
2937
2938 * xfns.c (x_set_background_color): Remove unused variable(s).
2939 (x_set_border_pixel): Ditto.
2940 (x_set_menu_bar_lines): Put local variable used only for
2941 non-toolkit case in #ifdef/#endif.
2942 (x_figure_window_size): Remove unused variable(s).
2943 (x_figure_window_size, x_window, lookup_image,
2944 xbm_read_bitmap_file_data, x_build_heuristic_mask, pbm_load,
2945 png_load, jpeg_load, gif_load, x_create_tip_frame,
2946 x_create_tip_frame, Fx_show_tip, x_set_border_pixel): Ditto.
2947
2948 * xterm.c (x_scroll_bar_handle_click): Compile only if
2949 not USE_TOOLKIT_SCROLL_BARS.
2950 (x_scroll_bar_set_handle, x_scroll_bar_note_movement): Ditto.
2951
2952 * dispextern.h: Add prototypes for gamma_correct and
2953 x_kill_gs_process.
2954
2955 * xterm.c (x_produce_glyphs): Remove unused variable(s).
2956 (x_alloc_nearest_color_for_widget, note_tool_bar_highlight,
2957 x_set_toolkit_scroll_bar_thumb): Ditto.
2958 (x_scroll_bar_create): Move local variable to the
2959 conditionally compiled section of code where it is used.
2960 (x_scroll_bar_create): Remove unused variable(s).
2961 (x_scroll_bar_remove, XTread_socket): Ditto.
2962 (XTread_socket) <ConfigureNotify>: Move variables used for
2963 non-toolkit case into conditionally compiled section of code.
2964
2965 * window.h (freeze_window_starts): Fix typo in prototype.
2966
2967 * xdisp.c (display_echo_area_1, try_window_id): Remove unused
2968 variable(s).
2969
2970 * lisp.h: Add prototype for debug_print.
2971
2972 * dispextern.h (xassert) [GLYPH_DEBUG]: Change definition
2973 to use do-while.
2974
2975 * fns.c (SXHASH_COMBINE): Add missing parentheses.
2976 (Fchar_table_range, Fset_char_table_default, mapcar1,
2977 Fyes_or_no_p, sweep_weak_hash_tables): Remove unused variable(s).
2978
2979 * lisp.h: Add prototype for getloadavg.
2980
29811999-09-14 Andreas Schwab <schwab@gnu.org>
2982
2983 * process.c (Fopen_network_stream): Avoid socket decriptor leak.
2984
2985 * lisp.h: Declare close_file_unwind.
2986
29871999-09-14 Richard Stallman <rms@gnu.org>
2988
2989 * filelock.c (get_boot_time): Make the temp name in the proper dir.
2990
29911999-09-13 Gerd Moellmann <gerd@gnu.org>
2992
2993 * xdisp.c (redisplay_window): Make sure start_at_line_beg
2994 is always set correctly.
2995
29961999-09-13 Dave Love <fx@gnu.org>
2997
2998 * xdisp.c (move_it_in_display_line_to): Make type consistent with
2999 declaration.
3000
30011999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3002
3003 * xdisp.c (QCfile): Move here from xfns.c.
3004 (syms_of_xdisp): Initialize it.
3005 (message2_nolog): Change for Lisp_Object selected_frame.
3006 (message3_nolog, message_with_string, message,
3007 setup_echo_area_for_printing, truncate_echo_area,
3008 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
3009
30101999-09-13 Dave Love <fx@gnu.org>
3011
3012 * xterm.c: Don't continue #define args for benefit of old cc.
3013 (xt_action_hook): Indent #error for benefit of K&R cc.
3014
30151999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3016
3017 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
3018 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
3019 (XRINGBELL): Removed.
3020
30211999-09-13 Dave Love <fx@gnu.org>
3022
3023 * xfns.c (x_put_x_image): Make type consistent with declaration.
3024
3025 * fns.c (Fmake_hash_table): Fix string continuation.
3026
30271999-09-13 Gerd Moellmann <gerd@delysid.gnu.org>
3028
3029 * xfns.c (QCfile): Moved to xdisp.c.
3030 (syms_of_xfns): Don't initialize QCfile.
3031 (check_x_frame): Change for Lisp_Object selected_frame.
3032 (check_x_display_info, x_get_resource_string): Ditto.
3033
30341999-09-13 Gerd Moellmann <gerd@gnu.org>
3035
3036 * minibuf.c (choose_minibuf_frame): Don't try to set the
3037 mini-buffer window's buffer, if the buffer is invalid.
3038
3039 * xfns.c (QCfile): Moved to xdisp.c.
3040 (syms_of_xfns): Don't initialize QCfile.
3041
3042 * xdisp.c (QCfile): Move here from xfns.c.
3043 (syms_of_xdisp): Initialize it.
3044
3045 * lisp.h (selected_frame): Add external declaration.
3046
3047 * xselect.c (x_own_selection): Change for Lisp_Object selected_frame.
3048 (Fx_store_cut_buffer_internal): Ditto.
3049 (Fx_rotate_cut_buffers_internal): Ditto.
3050
3051 * xfaces.c (frame_or_selected_frame): Change for Lisp_Object
3052 selected_frame.
3053 (Finternal_set_lisp_face_attribute): Ditto.
3054 (Finternal_get_lisp_face_attribute): Ditto.
3055 (Finternal_lisp_face_empty_p): Ditto.
3056 (Fdump_face): Ditto.
3057
3058 * term.c (OUTPUT): Change for Lisp_Object selected_frame.
3059 (OUTPUT_IF, ring_bell, set_terminal_modes, reset_terminal_modes,
3060 set_terminal_window, set_scroll_region, reassert_line_highlight,
3061 change_line_highlight, cursor_to, raw_cursor_to, clear_to_end,
3062 clear_end_of_line, clear_end_of_line_raw, clear_end_of_line_raw,
3063 encode_terminal_code, write_glyphs, term_init): Ditto.
3064
3065 * sysdep.c (reset_sys_modes): Change for Lisp_Object selected_frame.
3066 (kbd_input_ast, read_input_waiting): Ditto.
3067
3068 * minibuf.c (choose_minibuf_frame): Change for Lisp_Object
3069 selected_frame.
3070 (read_minibuf): Ditto.
3071
3072 * keyboard.c (command_loop_1): Change for Lisp_Object
3073 selected_frame.
3074 (cmd_error_internal, command_loop_1, read_char,
3075 kbd_buffer_get_event, read_avail_input,
3076 read_char_minibuf_menu_prompt, read_key_sequence, Fsuspend_emacs,
3077 interrupt_signal, quit_throw_to_read_char): Ditto.
3078
3079 * fontset.c (Ffont_info): Change for Lisp_Object selected_frame.
3080 (Ffontset_info): DItto.
3081
3082 * emacs.c (handle_USR1_signal): Change for Lisp_Object selected_frame.
3083
3084 * dispnew.c (selected_frame): Make it a Lisp_Object.
3085 (adjust_frame_glyphs_initially): Change for Lisp_Object selected_frame.
3086 (direct_output_for_insert, direct_output_forward_char,
3087 init_display): Ditto.
3088
3089 * data.c (swap_in_symval_forwarding): Change for Lisp_Object
3090 selected_frame.
3091 (set_internal): Ditto.
3092
3093 * buffer.c (Fother_buffer): Change for Lisp_Object selected_frame.
3094 (record_buffer): Ditto.
3095
3096 * frame.c (Fmake_terminal_frame): Use SELECTED_FRAME.
3097 (do_switch_frame): Change for Lisp_Object selected_frame.
3098 (Fselected_frame): Ditto.
3099 (Fframe_first_window): Use SELECTED_FRAME.
3100 (Fframe_root_window): Change for Lisp_Object selected_frame.
3101 (Fframe_selected_window, Fset_frame_selected_window, Fnext_frame,
3102 Fprevious_frame, other_visible_frames, Fdelete_frame,
3103 Fmouse_position, Fmouse_pixel_position, Fmake_frame_visible,
3104 Fmake_frame_invisible, Ficonify_frame, Fraise_frame, Flower_frame,
3105 Fframe_parameters, Fmodify_frame_parameters, Fframe_char_height,
3106 Fframe_char_width, Fframe_pixel_height, Fframe_pixel_width,
3107 Fset_frame_height, Fset_frame_width): Ditto.
3108
31091999-09-13 Gerd Moellmann <gerd@gnu.org>
3110
3111 * xdisp.c (message2_nolog): Change for Lisp_Object selected_frame.
3112 (message3_nolog, message_with_string, message,
3113 setup_echo_area_for_printing, truncate_echo_area,
3114 prepare_menu_bars, redisplay_internal, Fdump_tool_bar_row): Ditto.
3115
3116 * xmenu.c (Fx_popup_menu): Change for Lisp_Object selected_frame.
3117 (Fx_popup_dialog): Ditto.
3118
3119 * xfns.c (check_x_frame): Change for Lisp_Object selected_frame.
3120 (check_x_display_info, x_get_resource_string): Ditto.
3121
3122 * xterm.c (XTcursor_to): Change for Lisp_Object selected_frame.
3123 (x_clear_frame, XTring_bell, XTmouse_position, XTread_socket): Ditto.
3124 (XRINGBELL): Removed.
3125
3126 * window.c (Fminibuffer_window): Change for Lisp_Object
3127 selected_frame.
3128 (Fwindow_at, Fprevious_window, window_loop, select_window_1,
3129 display_buffer_1, Fdisplay_buffer, temp_output_buffer_show,
3130 Fcurrent_window_configuration, init_window_once): Ditto.
3131
3132 * frame.h (SELECTED_FRAME): New.
3133
31341999-09-12 Ken Raeburn <raeburn@gnu.org>
3135
3136 * category.c (word_boundary_p): Use XCAR and XCDR.
3137 * ccl.c (ccl_driver, resolve_symbol_ccl_program,
3138 Fregister_code_conversion_map): Likewise.
3139 * coding.c (setup_coding_system, detect_coding_system,
3140 Ffind_operation_coding_system, Fset_coding_priority_internal):
3141 Likewise.
3142 * doc.c (get_doc_string, Fdocumentation,
3143 store_function_docstring): Likewise.
3144 * editfns.c (save_restriction_restore): Likewise.
3145 * eval.c (Fcond, Fmacroexpand, Fcondition_case, wants_debugger,
3146 skip_debugger, find_handler_clause, Fautoload, Fapply,
3147 run_hook_with_args, run_hook_list_with_args, Ffetch_bytecode):
3148 Likewise.
3149 * fileio.c (Ffind_file_name_handler, Finsert_file_contents,
3150 Fwrite_region, do_auto_save_unwind, Fdo_auto_save,
3151 Fread_file_name): Likewise.
3152 * filelock.c (unlock_all_files): Likewise.
3153 * insdel.c (Fcombine_after_change_execute): Likewise.
3154 * intervals.c (adjust_intervals_for_insertion): Likewise.
3155 * keymap.c (get_keymap_1, Fkeymap_parent, Fset_keymap_parent,
3156 Fset_keymap_parent, fix_submap_inheritance, access_keymap,
3157 store_in_keymap, Fcopy_keymap, define_as_prefix,
3158 current_minor_maps, Faccessible_keymaps,
3159 accessible_keymaps_char_table, Fkey_description,
3160 Fwhere_is_internal, where_is_internal_2, where_is_internal_1,
3161 describe_buffer_bindings, describe_map_tree, shadow_lookup,
3162 describe_map): Likewise.
3163 * lread.c (Fload, load_unwind, close_load_descs, read_vector,
3164 read_list, init_lread): Likewise.
3165 * search.c (Fmatch_data): Likewise.
3166 * sunfns.c (Fsun_menu_internal): Likewise.
3167 * syntax.c (describe_syntax): Likewise.
3168 * undo.c (record_insert, record_delete, Fundo_boundary,
3169 truncate_undo_list): Likewise.
3170 * vmsproc.c (child_sig): Likewise.
3171
3172 * editfns.c (Fformat): Use XFLOAT_DATA.
3173
31741999-09-12 Gerd Moellmann <gerd@gnu.org>
3175
3176 * keyboard.c (command_loop_1): Resize mini-window to the
3177 exact size of a message displayed, if any.
3178
3179 * xdisp.c (resize_mini_window): Add parameter exact_p. Resize
3180 to exact size if exact_p is non-zero.
3181 (display_echo_area_1): Call resize_mini_window with
3182 new parameter.
3183 (redisplay_internal): Ditto.
3184 (resize_echo_area_axactly): New.
3185
3186 * minibuf.c (read_minibuf_unwind): Call resize_mini_window with
3187 new parameter.
3188
3189 * dispextern.h: Change prototype of resize_mini_window.
3190 Add prototype for resize_echo_area_axactly.
3191
3192 * xfaces.c (Fx_family_fonts): Replaces Fx_font_list.
3193 (syms_of_xfaces): Defsubr accordingly.
3194
3195 * xdisp.c (hscroll_window_tree): Choose cursor row from
3196 desired or current matrix.
3197 (redisplay_internal): Hscroll before updating.
3198
31991999-09-12 Gerd Moellmann <gerd@gnu.org>
3200
3201 * syntax.c (Fforward_word): Use prompt_end_charpos instead
3202 of minibuffer_prompt_length.
3203
3204 * minibuf.c (read_minibuf): Use prompt_end_charpos instead
3205 of minibuffer_prompt_length.
3206 (read_minibuf_unwind): Ditto.
3207 (Fminibuffer_complete_and_exit): Ditto.
3208 (Fminibuffer_complete_word): Ditto.
3209 (Fminibuffer_prompt_end): Ditto.
3210
3211 * editfns.c (Fbuffer_string): Use prompt_end_charpos instead
3212 of minibuffer_prompt_length.
3213 (Fline_beginning_position): Ditto.
3214
3215 * buffer.c (Fget_buffer_create): Use prompt_end_charpos instead
3216 of minibuffer_prompt_length.
3217 (Fmake_indirect_buffer): Ditto.
3218 (Fkill_buffer): Ditto.
3219 (Ferase_buffer): Ditto.
3220
3221 * buffer.h (prompt_end_charpos): Replaces
3222 minibuffer_prompt_length.
3223
3224 * minibuf.c (read_minibuf): Return mini-buffer contents
3225 without the prompt.
3226
3227 * editfns.c (make_buffer_string_both): Take out the code
3228 to handle mini-buffer prompts.
3229 (Fbuffer_string): Handle the prompt here, instead.
3230
3231 * xfaces.c (lface_from_face_name): Resolve face aliases.
3232 (Qmode_line): Replaces Qmodeline.
3233 (realize_basic_faces): Use Qmode_line.
3234 (syms_of_xfaces): Initialize Qmode_line.
3235
32361999-09-12 Gerd Moellmann <gerd@gnu.org>
3237
3238 * minibuf.c (read_minibuf): Set minibuf_prompt_width to the
3239 current column after inserting prompt.
3240 (Fminibuffer_prompt_width): Return minibuf_prompt_width.
3241
3242 * xfaces.c (Qframe_update_face_colors): New.
3243 (syms_of_xfaces): Initialize call.
3244 (update_face_from_frame_parameter): Call that function when
3245 the frame's background changes.
3246
32471999-09-12 Richard Stallman <rms@gnu.org>
3248
3249 * insdel.c (del_range_1): Don't treat minibuffer prompt specially.
3250
32511999-09-12 Ken Raeburn <raeburn@gnu.org>
3252
3253 * alloc.c (Fcons, pure_cons, Fpurecopy, Fgarbage_collect,
3254 mark_object, mark_buffer): Use XCAR and XCDR.
3255 * bytecode.c (Fbyte_code): Likewise.
3256 * callint.c (Fcall_interactively, Fprefix_numeric_value):
3257 Likewise.
3258 * callproc.c (Fcall_process, Fcall_process_region, child_setup,
3259 getenv_internal): Likewise.
3260 * dired.c (file_name_completion): Likewise.
3261 * fns.c (Fsafe_length, concat, Fcopy_alist, Fmember, Fmemq, Fassq,
3262 assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq, Fdelete, Freverse,
3263 Fplist_get, Fplist_put, internal_equal, mapcar1): Likewise.
3264 * indent.c (Fcompute_motion): Likewise.
3265 * process.c (decode_status, Fprocess_status, Fprocess_exit_status,
3266 list_processes_1, Fstart_process, Fopen_network_stream,
3267 wait_reading_process_input, read_process_output_call,
3268 kill_buffer_processes, sigchld_handler, exec_sentinel_unwind,
3269 status_notify, wait_reading_process_input): Likewise.
3270 * textprop.c (PLIST_ELT_P, property_value, set_properties,
3271 extend_property_ranges): Likewise.
3272 * w32faces.c (Fpixmap_spec_p, merge_face_list): Likewise.
3273 * w32fns.c (x_window_to_frame, x_set_frame_parameters,
3274 x_report_frame_params, x_set_cursor_type, x_icon_type,
3275 x_figure_window_size, Fx_create_frame, w32_load_system_font,
3276 w32_load_font, enum_font_cb2, w32_list_bdf_fonts, w32_list_fonts,
3277 w32_list_synthesized_fonts, w32_find_ccl_program, Fx_list_fonts,
3278 Fw32_find_bdf_fonts, w32_find_bdf_fonts_in_dir,
3279 x_display_info_for_name, Fx_display_list): Likewise.
3280 * w32menu.c (menubar_id_to_frame, single_keymap_panes,
3281 Fx_popup_menu, Fx_popup_dialog): Likewise.
3282 * w32proc.c (Fw32_set_keyboard_layout): Likewise.
3283 * w32term.c (x_window_to_scroll_bar, w32_read_socket,
3284 w32_term_init, x_delete_display): Likewise.
3285 * xfns.c (x_window_to_frame, x_any_window_to_frame,
3286 x_non_menubar_window_to_frame, x_menubar_window_to_frame,
3287 x_top_window_to_frame, x_set_frame_parameters,
3288 x_report_frame_params, x_set_cursor_type, x_icon_type,
3289 x_figure_window_size, Fx_create_frame, x_display_info_for_name,
3290 Fx_display_list, x_create_tip_frame): Likewise.
3291 * xmenu.c (menubar_id_to_frame, single_keymap_panes,
3292 Fx_popup_menu, Fx_popup_dialog): Likewise.
3293 * xselect.c (x_own_selection, x_get_local_selection,
3294 x_handle_selection_request, x_handle_selection_clear,
3295 x_clear_frame_selections, wait_for_property_change_unwind,
3296 wait_for_property_change, x_handle_property_notify,
3297 copy_multiple_data, x_get_foreign_selection,
3298 lisp_data_to_selection_data, clean_local_selection_data,
3299 x_handle_selection_notify, Fx_get_selection_internal,
3300 x_disown_buffer_selections): Likewise.
3301 * xterm.c (x_window_to_scroll_bar, XTread_socket, x_list_fonts,
3302 x_load_font, x_find_ccl_program, x_term_init, x_delete_display):
3303 Likewise.
3304
3305 * alloc.c (make_float, make_pure_float, Fpurecopy): Use
3306 XFLOAT_DATA.
3307 * bytecode.c (Fbyte_code): Likewise.
3308 * floatfns.c (extract_float, Fexpt, Fabs, rounding_driver,
3309 fmod_float): Likewise.
3310
33111999-09-11 Richard Stallman <rms@gnu.org>
3312
3313 * xdisp.c (run_window_scroll_functions): If hook functions switch
3314 buffers, switch back after.
3315
33161999-09-11 Ken Raeburn <raeburn@gnu.org>
3317
3318 * charset.h (GET_TRANSLATION_TABLE): Use XCDR.
3319 * frame.h (FOR_EACH_FRAME): Use XCAR and XCDR.
3320 (PIXEL_X_FROM_CANON_X, PIXEL_Y_FROM_CANON_Y): Use XFLOAT_DATA.
3321 * keyboard.h (EVENT_HEAD, EVENT_START, EVENT_END, POSN_WINDOW,
3322 POSN_BUFFER_POSN, POSN_WINDOW_POSN, POSN_TIMESTAMP): Use XCAR and
3323 XCDR.
3324 * syntax.h (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Use XCAR and
3325 XCDR.
3326
33271999-09-10 Richard Stallman <rms@gnu.org>
3328
3329 * xterm.c (XTread_socket): In XSetInputFocus, use RevertToParent,
3330 not RevertToPointerRoot.
3331 (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3332 Fix the code to clear around the scroll bar.
3333
33341999-09-10 Keisuke Nishida <kxn30@po.cwru.edu>
3335
3336 * print.c: Support print-circle and related features.
3337 (Vprint_gensym_alist): Removed.
3338 (Vprint_circle, Vprint_continuous_numbering, print_number_index
3339 Vprint_number_table): New variables.
3340 (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): New macros.
3341 (PRINTPREPARE, PRINTFINISH): Don't set Vprint_gensym_alist.
3342 (print, print_preprocess, print_preprocess_string, print_object):
3343 New/modified functions with print-circle feature. Use
3344 Vprint_number_table instead of Vprint_gensym_alist for print-gensym.
3345 (syms_of_print): Defined new Lisp variables `print-circle',
3346 `print-continuous-numbering', `print-number-table'.
3347
33481999-09-10 Gerd Moellmann <gerd@gnu.org>
3349
3350 * xfns.c (x_build_heuristic_mask): Accept a list `(R G B)'
3351 as background color specification instead of an integer.
3352 (image-cache-eviction-delay): Replaces image-eviction-seconds.
3353 (Vimage_cache_eviction_delay): Replaces Vimage_eviction_seconds.
3354 (clear_image_cache, syms_of_xfns): Use it.
3355 (Qpostscript): Replaces Qghostscript.
3356 (gs_type): Use it.
3357 (gs_image_p): Ditto.
3358 (syms_of_xfns): Initialize Qpostscript.
3359
33601999-09-10 Richard Stallman <rms@gnu.org>
3361
3362 * buffer.c (Ferase_buffer): Don't erase the minibuffer prompt.
3363
33641999-09-09 Richard Stallman <rms@gnu.org>
3365
3366 * editfns.c (Fline_beginning_position): Handle minibuffer prompt here.
3367
3368 * cmds.c (Fbeginning_of_line): Don't handle minibuffer prompt here.
3369
33701999-09-09 Gerd Moellmann <gerd@gnu.org>
3371
3372 * fns.c (Fmakehash): Accept just one optional argument TEST.
3373
3374 * xfns.c (QCindex): New.
3375 (syms_of_xfns): Initialize QCindex.
3376 (gif_load): Use it instead of `:image'.
3377
33781999-09-09 Richard Stallman <rms@gnu.org>
3379
3380 * fileio.c (Fwrite_region): Finish renaming CONFIRM to MUSTBENEW.
3381 (Fwrite_region) [DOS_NT]: Handle `excl' here too.
3382
33831999-09-08 Gerd Moellmann <gerd@gnu.org>
3384
3385 * xdisp.c (Qwhen): Replaces QCwhen.
3386 (syms_of_xdisp): Initialized it instead of QCwhen.
3387 (handle_single_display_prop): Use it instead of QCwhen.
3388
33891999-09-08 Ken'ichi Handa <handa@gnu.org>
3390
3391 * charset.c (translate_char): Reset MSBs of arguments of
3392 MAKE_CHAR.
3393 (CHAR_COMPONENTS_VALID_P): Fix for ASCII.
3394
33951999-09-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
3396
3397 * editfns.c (Fbufsize): Accept an extra BUFFER parameter.
3398
3399 * fns.c (Fbase64_decode_region): Don't place point outside of the
3400 current accessible portion.
3401
34021999-09-07 Richard Stallman <rms@gnu.org>
3403
3404 * keymap.c (fix_submap_inheritance): Do nothing if the proper
3405 parent is an ancestor of SUBMAP; otherwise, add it as the
3406 ultimate ancestor.
3407
34081999-09-07 Gerd Moellmann <gerd@gnu.org>
3409
3410 * xdisp.c (handle_single_display_prop): Change conditional
3411 display property to `:when FORM . VALUE'.
3412
34131999-09-07 Richard Stallman <rms@gnu.org>
3414
3415 * fileio.c (Fwrite_region): Doc fix.
3416
34171999-09-07 Stefan Monnier <monnier@cs.yale.edu>
3418
3419 * fileio.c (Qexcl): New variable.
3420 (report_file_error): Handle EEXIST specially.
3421 (Fwrite_region): Special handling for CONFIRM = `excl'.
3422 (syms_of_fileio): Initialize Qexcl.
3423
34241999-09-07 Gerd Moellmann <gerd@gnu.org>
3425
3426 * xfns.c (x_set_foreground_color): Call
3427 update_face_from_frame_parameter.
3428 (x_set_background_color): Ditto.
3429 (x_set_mouse_color): Ditto.
3430 (x_set_cursor_color): Ditto.
3431 (x_set_border_color): Ditto.
3432 (x_set_scroll_bar_foreground): Ditto.
3433 (x_set_scroll_bar_background): Ditto.
3434
3435 * xfaces.c (recompute_basic_faces): Clear face cache.
3436 (Finternal_set_lisp_face_attribute): Modify frame parameters
3437 if attributes of certain faces are changed.
3438 (update_face_from_frame_parameter): New.
3439
3440 * xfaces.c (realize_basic_faces): Realize new basic faces.
3441
3442 * dispextern.h (SCROLL_BAR_FACE_ID, BORDER_FACE_ID,
3443 CURSOR_FACE_ID, MOUSE_FACE_ID): New.
3444
3445 * xfaces.c (Qscroll_bar, Qcursor, Qborder, Qmouse): New.
3446 (syms_of_xfaces): Intialize new symbols.
3447
3448 * fns.c (Fmakehash): Take one argument, test, make all the
3449 rest keyword arguments.
3450
3451 * window.c (Fset_window_margins): Make window the first argument.
3452 (set_window_buffer): Call Fset_window_margins with window as first
3453 argument.
3454
34551999-09-07 Gerd Moellmann <gerd@gnu.org>
3456
3457 * xfaces.c (Qfringe): Replaces Qmargin.
3458
34591999-09-07 Kenichi Handa <handa@etl.go.jp>
3460
3461 * charset.h: Lots of comments fixed.
3462 (PARSE_MULTIBYTE_SEQ): Make it work also for ASCII string.
3463 (STRING_CHAR_AND_CHAR_LENGTH): This macro removed.
3464
3465 * charset.c : Lots of comments fixed.
3466 (SPLIT_MULTIBYTE_SEQ): Make it work also for ASCII string.
3467 (CHAR_COMPONENTS_VALID_P): Name changed from
3468 CHAR_COMPONENT_VALID_P. Caller changed.
3469
34701999-09-06 Richard Stallman <rms@gnu.org>
3471
3472 * insdel.c (syms_of_insdel): Define Lisp variable
3473 inhibit-modification-hooks.
3474
34751999-09-06 Michael Sperber [Mr. Preprocessor] <sperber@informatik.uni-tuebingen.de>
3476
3477 * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new
3478 unexaix.c.
3479
3480 * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c.
3481
34821999-09-06 Dave Love <fx@gnu.org>
3483
3484 * unexaix.c: New version incorporating Michael Sperber's changes
3485 from XEmacs. Should solve problems on AIX 4.3.
3486
3487 * lread.c (Vbyte_boolean_vars): New variable.
3488 (defvar_bool, syms_of_lread): Use it.
3489
34901999-09-05 Richard Stallman <rms@gnu.org>
3491
3492 * minibuf.c (read_minibuf): Put all three properties on the
3493 same range, the whole prompt.
3494
34951999-09-05 Gerd Moellmann <gerd@gnu.org>
3496
3497 * sound.c (Qplay_sound_functions): Replaces Qplay_sound_hook.
3498 (Fplay_sound, syms_of_sound): Use it.
3499 (parse_sound): Allow float volume values in the range [0, 1].
3500 (Fplay_sound): Ditto.
3501
3502 * window.c (Fset_window_vscroll): Make window the first argument,
3503 amount to scroll the second. Take non-negative vscroll as
3504 argument.
3505 (Fwindow_vscroll): Return non-negative vscroll.
3506
3507 * xfns.c (Fx_show_tip): Improve documentation.
3508
35091999-09-05 Gerd Moellmann <gerd@gnu.org>
3510
3511 * buffer.c, buffer.h, dispextern.h, dispnew.c, keyboard.c,
3512 window.c, xdisp.c, xfaces.c, xterm.c, keyboard.h: Change
3513 `top-line' and `top_line' to `header-line' and `header_line'.
3514 Likewise for similar spellings.
3515
35161999-09-05 Gerd Moellmann <gerd@gnu.org>
3517
3518 * xdisp.c (row_containing_pos): New.
3519 (try_window_id): Use it.
3520
3521 * alloc.c, dispextern.h, dispnew.c, frame.c, frame.h, keyboard.c,
3522 lisp.h, termhooks.h, window.c xdisp.c, xfaces.c, xfns.c, xterm.c:
3523 Change spelling of `toolbar' to `tool_bar' or `tool-bar'.
3524 Likewise for upper-case etc.
3525
35261999-09-05 Gerd Moellmann <gerd@gnu.org>
3527
3528 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3529 Fix reference to renamed variable.
3530
35311999-09-04 Gerd Moellmann <gerd@gnu.org>
3532
3533 * window.c (Qwindow_size_fixed): Replaces Qfixed_window_size.
3534 (window_fixed_size_p): Use Qwindow_size_fixed instead of
3535 Qfixed_window_size.
3536 (syms_of_window): Ditto.
3537
3538 * fns.c (Fmakehash): Exchange optional test and size arguments.
3539
35401999-09-03 Gerd Moellmann <gerd@gnu.org>
3541
3542 * xterm.c (XTset_vertical_scroll_bar): Block input when clearing
3543 under newly created scroll bar.
3544 (expose_window): If window is not yet fully initialized, do
3545 nothing. This can happen when toolkit scroll bars are used and a
3546 window is split. Reconfiguring the scroll bars will generate an
3547 expose for a newly created window.
3548
3549 * frame.h (struct frame): New member `gamma'.
3550
3551 * xfns.c: Include math.h. Add extern declaration for atof in case
3552 we don't see one.
3553 (Qscreen_gamma): New.
3554 (struct x_frame_parm_table): Add prototypes, add
3555 x_set_screen_gamma.
3556 (gamma_correct): New function.
3557 (defined_color): Call it.
3558 (x_set_screen_gamma): New.
3559 (x_set_title): Add parameter old_value.
3560 (RES_TYPE_FLOAT): New.
3561 (x_get_arg): Handle RES_TYPE_FLOAT.
3562 (Fx_create_frame): Call x_default_parameter for `screen-gamma'.
3563 (lookup_pixel_color): Change call to x_alloc_nearest_color to
3564 new prototype.
3565 (lookup_rgb_color): Ditto.
3566 (syms_of_xfns): Initialize Qscreen_gamma.
3567
3568 * xterm.c (x_alloc_nearest_color_for_widget) [USE_X_TOOLKIT]:
3569 New. Allocate color for lwlib widgets.
3570 (x_alloc_nearest_color): Change parameter list include the
3571 frame on which to allocate colors. Gamma-correct colors.
3572 (x_alloc_lighter_color): Call x_alloc_lighter_color with new
3573 parameter list.
3574
3575 * xterm.h: Change protorype of x_alloc_nearest_color.
3576
35771999-09-03 Richard Stallman <rms@gnu.org>
3578
3579 * callproc.c: Delete the system-independent include of stdlib.h
3580 (leaving only the one in the WINDOWSNT conditional).
3581
35821999-09-03 Andrew Choi <choi@cs.hku.hk>
3583
3584 * callproc.c (call-process) [macintosh]: Call mac_run_command in
3585 sysdep.c. The Mac code is modeled after the DOS code.
3586
3587 * dispextern.h [macintosh]: Include macterm.h to define substitute X
3588 Window types and macros.
3589
3590 * frame.h: Do nothing if included a second time.
3591 (enum output_method): Add mac_output frame type.
3592 (union output_data): Add new alternative `mac'.
3593 (FRAME_MAC_P): New macro.
3594
3595 * frame.c (Fframep) [macintosh]: Handle mac frame type.
3596 (syms_of_frame_1): Initialize Qmac.
3597 (make_terminal_frame) [macintosh]: Initialize output_data.mac fields.
3598 (Fmake_terminal_frame) [macintosh]: Add an alternate error check.
3599 (Fmodify_frame_parameters) [macintosh]: Call
3600 mac_set_frame_parameter in macterm.c.
3601
3602 * keyboard.c [macintosh]: Set KBD_BUFFER_SIZE to a smaller value
3603 (512) because Mac compilers limit local data of a function to 32K.
3604
3605 * make-docfiles.c: Correctly handle input files with Mac-style
3606 eol's.
3607
3608 * sysdep.c: Define numerous routines to emulate Unix system calls.
3609
3610 * xfaces.c: on MacOS, define the set of colors listed in rgb.txt
3611 file of an X Window environment.
3612
3613 * xfaces.c: on MacOS, define the Lisp functions x-display-color-p,
3614 x-display-grayscale, x-color-defined-p, and x-color-values.
3615
3616 * sysdep.c [macintosh] (stat, fstat, mkdir, rmdir, utime, access)
3617 (open, creat, unlink, read, write, rename, fopen, pause, alarm)
3618 (signal, sleep, gmtime, localtime, ctime, time, index, mktemp)
3619 (getpwuid, getpwnam, dup, dup2, isatty, getgid, getegid, getuid)
3620 (geteuid, getpid, getenv, uname, opendir, closedir, readdir, getwd.):
3621 New functions, replacing POSIX features.
3622
3623 * sysdep.c [macintosh] (Mac2UnixPathname, Unix2MacPathname, CheckAlarm)
3624 (InitMyPasswd, GetTempDirName, mystrchr, mystrtok, mystrcpy):
3625 (InitEmacsPasswdDir, run_mac_command): New subroutines.
3626
3627 * sysdep.c [macintosh] (targetTicks, alarm_signal_func, myPasswdName)
3628 (myPasswd, emacsPasswdDir, emacsPasswd, myPasswdInited, mask)
3629 (myPasswdDir, TempDirName, sys_siglist): New variables.
3630
3631 * sysdep.c [macintosh] (execvp, wait, croak, fork, kill, sigsetmask)
3632 (sigblock, request_sigio, unrequest_sigio, setpgrp, pipe, symlink)
3633 (link, lstat, readlink, umask, chmod, sbrk, fsync, ioctl):
3634 Define empty stubs so Emacs will link.
3635
36361999-09-03 Gerd Moellmann <gerd@gnu.org>
3637
3638 * xdisp.c: Use XCAR and XCDR instead of XCONS.
3639
3640 * window.h: New member frozen_window_start_p.
3641
3642 * window.c (foreach_window, foreach_window_1): New.
3643 (freeze_window_start, freeze_window_starts): New.
3644 (make_window): Initialize frozen_window_start_p.
3645 (replace_window): Ditto.
3646 (Fset_window_point): Remove references to deleted variables.
3647 (Fset_window_start): Ditto.
3648
3649 * xdisp.c (Vresize_mini_config, resize_mini_frame,
3650 resize_mini_initial_height): Removed.
3651 (syms_of_xdisp): Remove references to these variables.
3652 (resize_mini_window): Don't save window configuration, freeze
3653 window starts instead. Enlarge window until displaying an empty
3654 buffer, then shrink it. Make the function externally visible.
3655 (redisplay_window): Treat frozen window start like forced start,
3656 but accept point outside of the window.
3657
3658 * dispextern.h: Add function prototype for resize_mini_window.
3659
3660 * minibuf.c (read_minibuf_unwind): Resize mini-window when
3661 reaching minibuf_level 0.
3662
3663 * lisp.h: Remove extern declarations for variables deleted from
3664 xdisp.c.
3665
3666 * dispnew.c (adjust_frame_glyphs): Remove reference to
3667 Vresize_mini_config.
3668
36691999-09-03 Gerd Moellmann <gerd@gnu.org>
3670
3671 * xfns.c (x_set_scroll_bar_width): Change conditional compilation
3672 to USE_TOOLKIT_SCROLL_BARS.
3673
3674 * xterm.c (x_scroll_bar_create): Don't clear under scroll bar
3675 here.
3676 (XTset_vertical_scroll_bar): Clarify position computations. Clear
3677 under newly created scroll bar. Put toolkit scroll bars in the
3678 middle of the area reserved for the scroll bar.
3679
36801999-09-03 Kenichi Handa <handa@etl.go.jp>
3681
3682 The following changes are for the new handling of mulitbyte
3683 sequence. Now, except for a composite character, no multibyte
3684 character in string/buffer has trailing garbage bytes. For
3685 instance, the length of string "\201\300\300" is now 2, the first
3686 character is Latin-1 A-grave, the second is raw \300.
3687
3688 * charset.h (MAKE_NON_ASCII_CHAR): Handle the case that C1 or C2
3689 are negative.
3690 (MAKE_CHAR): Don't set MSBs of C1 and C2 to 0.
3691 (VALID_MULTIBYTE_CHAR_P): This macro deleted.
3692 (PARSE_COMPOSITE_SEQ): New macro.
3693 (PARSE_CHARACTER_SEQ): New macro.
3694 (PARSE_MULTIBYTE_SEQ): New macro.
3695 (CHAR_PRINTABLE_P): New macro.
3696 (STRING_CHAR): Adjusted for the change of string_to_non_ascii_char.
3697 (STRING_CHAR_AND_LENGTH): Likewise.
3698 (STRING_CHAR_AND_CHAR_LENGTH): Define it as STRING_CHAR_AND_LENGTH.
3699 (INC_POS): Use the macro PARSE_MULTIBYTE_SEQ.
3700 (DEC_POS, BUF_INC_POS, BUF_DEC_POS): Likewise,
3701
3702 * charset.c (SPLIT_COMPOSITE_SEQ): New macro.
3703 (SPLIT_CHARACTER_SEQ): New macro.
3704 (SPLIT_MULTIBYTE_SEQ): New macro.
3705 (CHAR_COMPONENT_VALID_P): New macro.
3706 (non_ascii_char_to_string): Generate a multibyte sequence as far
3707 as possible.
3708 (string_to_non_ascii_char): The 4th arg exclude_tail_garbage is
3709 deleted. Caller changed. Use the macro SPLIT_MULTIBYTE_SEQ.
3710 (split_non_ascii_string): Likewise.
3711 (multibyte_form_length): Use the macro PARSE_MULTIBYTE_SEQ.
3712 (char_printable_p): New function.
3713 (translate_char): Check character by NATNUMP instead of INTEGERP.
3714 (unibyte_char_to_multibyte): Call char_valid_p instead of
3715 VALID_MULTIBYTE_CHAR_P.
3716 (Fmake_char_internal): Check the arguments more rigidly.
3717 (Fcharset_after): Use the macro SPLIT_MULTIBYTE_SEQ.
3718 (char_valid_p): Check the validity by CHAR_COMPONENT_VALID_P.
3719 (Fmultibyte_char_to_unibyte): Check the validity of character by
3720 CHAR_VALID_P.
3721 (chars_in_text): Call multibyte_chars_in_text.
3722 (multibyte_chars_in_text): Use the macro PARSE_MULTIBYTE_SEQ.
3723 (Fcompose_string): Use the macro STRING_CHAR_AND_LENGTH instead of
3724 STRING_CHAR_AND_CHAR_LENGTH (which is obsolete now).
3725
3726 * data.c (Faset): Adjust the way to check byte-combining
3727 possibility for the new handling of multibyte sequence.
3728
3729 * editfns.c (Fsubst_char_in_region): Likewise.
3730
3731 * fns.c (count_combining): Use the macro PARSE_MULTIBYTE_SEQ.
3732 (string_char_to_byte): Likewise.
3733 (string_byte_to_char): Likewise.
3734
3735 * indent.c (MULTIBYTE_BYTES_WIDTH): Delete the 2nd arg C. Use the
3736 macro STRING_CHAR_AND_LENGTH. Caller changed.
3737
3738 * insdel.c (count_combining_composition): New function.
3739 (count_combining_before): Adjust the way to check byte-combining
3740 possibility for the new handling of multibyte sequence. Call
3741 count_combining_composition for a composite character.
3742 (count_combining_after): Likewise.
3743
3744 * print.c (print_string): Use the macro STRING_CHAR_AND_LENGTH.
3745 (print): Likewise.
3746
3747 * dispextern.h (struct it): Change the size of the member
3748 `ctl_chars'.
3749
3750 * xdisp.c (get_next_display_element): Display incomplete multibyte
3751 sequence (e.g. \222\300) by octal form.
3752
37531999-09-02 Gerd Moellmann <gerd@gnu.org>
3754
3755 * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Change from 2 to 0.
3756
3757 * fns.c (Fhash_table_weakness): Replaces Fhash_table_weak.
3758 (cmpfn_eql, sxhash): Use XFLOAT_DATA.
3759
37601999-09-02 Gerd Moellmann <gerd@gnu.org>
3761
3762 * buffer.c (set_buffer_internal): Never set
3763 windows_or_buffers_changed.
3764
3765 * xdisp.c (try_window_id): Reset first_unchanged_at_end_row
3766 if we have displayed to the bottom of the window.
3767
3768 * syntax.c (Fforward_word): Stop at a mini-buffer prompt end
3769 in both directions. Extend documentation.
3770
37711999-09-01 Gerd Moellmann <gerd@gnu.org>
3772
3773 * minibuf.c (read_minibuf): Flush display after setting cursor to
3774 column 0.
3775
37761999-08-31 Gerd Moellmann <gerd@gnu.org>
3777
3778 * s/freebsd.h (__FreeBSD_version): Don't define it if it is
3779 already defined. This avoids a warning from buffer.c.
3780
37811999-08-30 Gerd Moellmann <gerd@gnu.org>
3782
3783 * xterm.h (FRAME_X_FLAGS_AREA_COLS): Define it as the total width
3784 of both margins.
3785 (FRAME_X_FLAGS_AREA_WIDTH): Likewise.
3786 (FRAME_X_LEFT_FLAGS_AREA_WIDTH): New.
3787 (FRAME_X_RIGHT_FLAGS_AREA_WIDTH): New.
3788
3789 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add in FRAME_FLAGS_AREA_COLS
3790 once instead of twice.
3791 (FRAME_LEFT_FLAGS_AREA_WIDTH): New.
3792
3793 * xterm.c: Remove unused bitmaps.
3794 (continued_bits, continuation_bits, overlay_bits): Change images.
3795 (x_draw_vertical_border): Use FRAME_X_RIGHT_FLAGS_AREA_WIDTH
3796 instead of FRAME_X_FLAGS_AREA_WIDTH.
3797 (x_after_update_window_line): Ditto.
3798 (x_draw_bitmap): Likewise.
3799 (x_draw_row_bitmaps): Likewise.
3800 (x_draw_glyph_string_box): Likewise.
3801 (x_draw_glyphs): Likewise.
3802 (x_scroll_run): Likewise.
3803 (expose_window_tree): Likewise.
3804 (note_mode_line_highlight): Likewise.
3805 (XTset_vertical_scroll_bar): Likewise.
3806 (x_clip_to_row): Likewise.
3807 (x_set_window_size): Likewise.
3808
3809 * xfns.c (x_figure_window_size): Use FRAME_FLAGS_AREA_COLS instead
3810 of 2 * that value.
3811
3812 * xdisp.c (window_box_width): Use FRAME_FLAGS_AREA_COLS instead of
3813 2 * that value.
3814 (window_box_left): Use FRAME_LEFT_FLAGS_AREA_WIDTH instead of
3815 FRAME_FLAGS_AREA_WIDTH.
3816
3817 * window.c (coordinates_in_window): Use
3818 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
3819 (window_internal_width): Subtract FRAME_FLAGS_AREA_WIDTH once
3820 instead of twice.
3821
3822 * widget.c (set_frame_size): Set flags_area_extra to
3823 FRAME_FLAGS_AREA_WIDTH instead of 2 * that width.
3824 (EmacsFrameSetCharSize): Ditto.
3825
3826 * dispnew.c (mode_line_string): Add FRAME_LEFT_FLAGS_AREA_WIDTH
3827 instead of FRAME_FLAGS_AREA_WIDTH.
3828
3829 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract
3830 FRAME_FLAGS_AREA_COLS once.
3831 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Add
3832 FRAME_LEFT_FLAGS_AREA_WIDTH instead of FRAME_FLAGS_AREA_WIDTH.
3833
38341999-08-30 Gerd Moellmann <gerd@gnu.org>
3835
3836 * freebsd.h (C_SWITCH_SYSTEM): Added to let configure find headers
3837 in /usr/X11R6/include which are checked for with AC_CHECK_HEADER.
3838
38391999-08-30 Gerd Moellmann <gerd@gnu.org>
3840
3841 * fns.c (QCweakness): Replaces QCweak.
3842 (Fmake_hash_table): Ditto.
3843 (Fmakehash): Ditto.
3844 (syms_of_fns): Ditto.
3845
38461999-08-29 Richard Stallman <rms@gnu.org>
3847
3848 * search.c (compile_pattern_1): Enable RE_CHAR_CLASSES for regexp.
3849
3850 * sysdep.c (read_input_waiting): Pass read_socket_hook just 4 args.
3851
3852 * syntax.h (SYNTAX_COMMENT_NESTED, SYNTAX_FLAGS_COMMENT_NESTED):
3853 Add support for nested comments.
3854
863476d1
SM
3855 * syntax.c (Fforward_comment, scan_lists, scan_sexps_forward):
3856 Consolidate the forward comment code into the new `forw_comment'.
3857 (forw_comment): New subroutine. Added support for nested comments.
3858 (lisp_parse_state, back_comment, Fmodify_syntax_entry)
3859 (Fparse_partial_sexp): Add support for nested comments.
26901792
DL
3860
38611999-08-28 Ken Raeburn <raeburn@gnu.org>
3862
3863 * lisp.h (struct Lisp_Cons, XCAR, XCDR, struct Lisp_Float): Change
3864 names of structure elements if HIDE_LISP_IMPLEMENTATION is
3865 defined, to help detect code that uses knowledge of the Lisp
3866 internals that it shouldn't have.
3867 (XFLOAT_DATA): New macro.
3868
38691999-08-25 Gerd Moellmann <gerd@gnu.org>
3870
3871 * syntax.c (Fforward_word): If in a mini-buffer and moving
3872 backwards, stop in front of the prompt to prevent accidentially
3873 moving into the read-only prompt.
3874
3875 * window.c (Frecenter): Clear frame if called with nil or no arg.
3876
3877 * xdisp.c (resize_mini_window): Don't resize if
3878 Vmax_mini_window_height is nil. Otherwise, use a default if
3879 Vmax_mini_window_height is not ot a number.
3880 (syms_of_xdisp): Extend documentation of Vmax_mini_window_height.
3881
38821999-08-25 Alexandre Oliva <oliva@dcc.unicamp.br>
3883
3884 * unexelf.c: Merge IRIX debugging info patch from unexsgi.c
3885 * m/iris4d.h: Use unexelf for IRIX 5.*.
3886 * m/iris5d.h: Use unexelf for IRIX 6.*.
3887 * unexsgi.c: Deleted.
3888
3889 * unexelf.c: Auto-detect .sbss section.
3890 (round_up): Make it static.
3891 (unexec): Declare alignment as Elf Word. Skip ``Program
3892 segment above .bss'' test on MIPS without .sbss.
3893 Copy sections .got and .sdata1 sections. Adjust offsets in
3894 sections .sdata, .lit4, .lit8, .got and .sdata1.
3895
38961999-08-25 Gerd Moellmann <gerd@gnu.org>
3897
3898 * xdisp.c (try_window_id): Remove typo.
3899
39001999-08-24 Gerd Moellmann <gerd@gnu.org>
3901
3902 * xdisp.c (try_window_id): Recognize case that PT == ZV and in
3903 unchanged text at the bottom when computing the cursor position.
3904 (message3_nolog): Raise frame only if minibuffer_auto_raise is
3905 set.
3906
3907 * lisp.h (PVEC_TYPE_MASK): Add the bit for hash tables.
3908
39091999-08-24 Gerd Moellmann <gerd@gnu.org>
3910
3911 * xfaces.c (Qmargin): Replacement for Qbitmap_area.
3912 (realize_basic_faces): Replace Qmargin for Qbitmap_area.
3913 (syms_of_xfaces): Ditto.
3914
3915 * window.c (Fset_window_point): Reset Vresize_mini_config.
3916 (Fset_window_start): Ditto.
3917 (set_window_buffer): Ditto.
3918
3919 * dispnew.c (adjust_frame_glyphs): Reset Vresize_mini_config.
3920
3921 * xdisp.c (redisplay_window): Don't ever test just_this_one_p
3922 before calling try_window.
3923 (echo_area_display): If height has changed, update other windows.
3924 (resize_mini_frame, resize_mini_initial_height): New.
3925 (resize_mini_window): Save/restore window configuration
3926 differently.
3927
3928 * lisp.h (Vresize_mini_config, resize_mini_frame,
3929 resize_mini_initial_height): Add extern declarations.
3930
3931 * xterm.c (expose_window_tree): Fix typo CANON_Y_UNIT to
3932 CANON_X_UNIT.
3933
3934 * xfns.c [HAVE_JPEG]: Work around a warning about HAVE_STDLIB_H
3935 being redefined in jconfig.h.
3936
39371999-08-23 Ken'ichi Handa <handa@gnu.org>
3938
3939 * coding.h: Include "ccl.h" instead of "../src/ccl.h".
3940
39411999-08-22 Gerd Moellmann <gerd@gnu.org>
3942
3943 * alloc.c (mark_glyph_matrix): Mark strings only.
3944
3945 * xdisp.c (redisplay_internal): Clear garbaged frames after
3946 resizing mini-window.
3947
39481999-08-22 Gerd Moellmann <gerd@gnu.org>
3949
3950 * xdisp.c (unwind_with_echo_area_buffer): Use
3951 set_buffer_internal_1 instead of set_buffer_internal.
3952 (with_echo_area_buffer): Ditto.
3953
3954 * buffer.c (set_buffer_internal): Set windows_or_buffers_changed
3955 only if buffer is displayed somewhere.
3956
3957 * buffer.h (BUF_COMPUTE_UNCHANGED): New.
3958
3959 * insdel.c (gap_left): Use BUF_COMPUTE_UNCHANGED.
3960 (gap_right): Ditto.
3961 (modify_region): Ditto.
3962
3963 * buffer.c (modify_overlay): Use BUF_COMPUTE_UNCHANGED.
3964
3965 * xdisp.c (Vresize_mini_config): New.
3966 (resize_mini_window): Use it to save restore original window
3967 configuration
3968 (syms_of_xdisp): Initialize it.
3969
3970 * buffer.h (struct buffer): Add prevent_redisplay_optimizations_p.
3971
3972 * dispextern.h (struct glyph_matrix): Add buffer, begv, and zv.
3973
3974 * xdisp.c (reconsider_clip_changes): New.
3975 (redisplay_internal, redisplay_window): Call it.
3976 (mark_window_display_accurate, redisplay_internal): Set current
3977 matrix' buffer, begv, zv.
3978
3979 * window.c (Fset_window_hscroll): Set
3980 prevent_redisplay_optimizations_p instead of clip_changed.
3981 (Fset_window_hscroll): Ditto.
3982 (temp_output_buffer_show): Ditto.
3983 (Fset_window_vscroll): Ditto.
3984
3985 * buffer.c (reset_buffer): Set clip_changed to 0 and
3986 prevent_redisplay_optimizations_p to 1.
3987 (Fget_buffer_create): Set prevent_redisplay_optimizations_p to 1.
3988
3989 * buffer.h (BUF_UNCHANGED_MODIFIED, UNCHANGED_MODIFIED,
3990 BUF_OVERLAY_UNCHANGED_MODIFIED, OVERLAY_UNCHANGED_MODIFIED,
3991 BUF_BEG_UNCHANGED, BEG_UNCHANGED, BUF_END_UNCHANGED,
3992 END_UNCHANGED): New.
3993 (struct buffer_text): Add beg_unchanged, end_unchanged,
3994 unchanged_modified, overlay_unchanged_modified.
3995
3996 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
3997 overlay_unchanged_modified): Removed.
3998 (with_echo_area_unwind_data): Don't save beg/end_unchanged.
3999 (unwind_with_echo_area_buffer): Don't restore them.
4000 (debug_beg_unchanged, debug_end_unchanged) [GLYPH_DEBUG]: Removed.
4001 (text_outside_line_unchanged_p, redisplay_internal,
4002 try_scrolling): Use/set buffer-specific beg/end_unchanged.
4003 (redisplay_window): Let try_window_id be called if more than one
4004 window is displayed. Use/set buffer-specific beg/end_unchanged.
4005 (get_last_unchanged_at_beg_row, get_first_unchanged_at_end_row,
4006 try_window_id):
4007 Use buffer-specific beg/end_unchanged.
4008
4009 * window.h (beg_unchanged, end_unchanged, unchanged_modified,
4010 overlay_unchanged_modified): Remove extern declarations.
4011
4012 * keyboard.c (command_loop_1): Set beg/end_unchanged per
4013 buffer.
4014
4015 * insdel.c (gap_left): Compute beg/end_unchanged per buffer.
4016 (gap_right): Ditto.
4017 (adjust_after_replace): Likewise.
4018 (replace_range, del_range_2, modify_region): Likewise.
4019
4020 * dispnew.c (direct_output_for_insert): Set beg_unchanged
4021 and unchanged_modified per buffer.
4022
4023 * coding.c (code_convert_region): Compute beg/end_unchanged per
4024 buffer.
4025
4026 * buffer.c (modify_overlay): Compute beg/end_unchanged
4027 per buffer.
4028 (Fget_buffer_create): Initialize new members of the buffer
4029 structure.
4030
40311999-08-22 Gerd Moellmann <gerd@gnu.org>
4032
4033 * lisp.h: Add prototype for copy_hash_table and Fcopy_hash_table.
4034
4035 * fns.c (Qkey, Qvalue): Renamed from Qkey_weak, and Qvalue_weak.
4036 (Qkey_value_weak): Removed.
4037 (make_hash_table): Use nil, `key', `value', t for weakness.
4038 (Fmake_hash_table): Ditto.
4039 (copy_hash_table): New.
4040 (Fcopy_hash_table): New.
4041
40421999-08-22 Gerd Moellmann <gerd@gnu.org>
4043
4044 * xfns.c: Call change_frame_size and do_pending_window_change with
4045 new parameter.
4046
40471999-08-21 Gerd Moellmann <gerd@gnu.org>
4048
4049 * xdisp.c (resize_mini_window): Do it for truncate-lines t as
4050 well.
4051 (redisplay_internal): Resize mini-window only if text might
4052 have changed.
4053 (display_echo_area): Reset displayed echo_area_buffer to nil
4054 at the end if we're displaying a nil message.
4055
40561999-08-21 Gerd Moellmann <gerd@gnu.org>
4057
4058 * fns.c (hash_lookup): Test with EQ before calling key comparion
4059 function.
4060 (hash_remove): Ditto.
4061 (cmpfn_eq): Removed.
4062 (cmpfn_eql): Don't test with EQ.
4063 (cmpfn_equal): Ditto.
4064 (make_hash_table): Set comparison function for `eq' to null.
4065
4066 * buffer.c, cmds.c, editfns.c, indent.c, insdel.c, buffer.h:
4067 Remove conditional compilation on NO_PROMPT_IN_BUFFER.
4068
4069 * dispextern.h (NO_PROMPT_IN_BUFFER): Removed.
4070
4071 * window.c, widget.c, process.c, keyboard.c, frame.c, xdisp.c,
4072 xterm.c: Call change_frame_size and do_pending_window_change with
4073 new parameter.
4074
4075 * dispnew.c (do_pending_window_change): Add parameter `safe'.
4076 (change_frame_size): Ditto.
4077 (change_frame_size_1): Ditto. Deley size changes if redisplaying
4078 and not called from a safe place.
4079 (window_change_signal): Call change_frame_size with new parameter.
4080
4081 * dispextern.h: Change prototypes for do_pending_window_change
4082 and change_frame_size.
4083
4084 * xfaces.c (face_at_buffer_position): Don't xassert that
4085 window's buffers equals current_buffer; this is not the
4086 case during echo area display.
4087
40881999-08-21 Gerd Moellmann <gerd@gnu.org>
4089
4090 * xdisp.c, minibuf.c: Remove conditional compilation on
4091 NO_PROMPT_IN_BUFFER.
4092
4093 * minibuf.c (Fminibuffer_prompt_end): New.
4094 (syms_of_minibuf): Defsubr it. Remove
4095 minibuffer-prompt-in-buffer.
4096 (Fminibuffer_prompt_width): Return 0 if not in mini-buffer.
4097 Extend documentation.
4098
4099 * xdisp.c (get_next_display_element): Display \r as ^M.
4100
4101 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Clear
4102 under scroll bar widget.
4103
41041999-08-21 Gerd Moellmann <gerd@gnu.org>
4105
4106 * xdisp.c (minibuffer_scroll_overlap): Removed because not used
4107 anywhere.
4108 (unwind_redisplay): Return nil.
4109 (clear_garbaged_frames): New.
4110 (redisplay_internal): Use it.
4111 (echo_area_display): Ditto.
4112 (resize_mini_window): Mew.
4113 (display_echo_area_1): Use it to resize echo area window.
4114 (redisplay_internal): Use it to resize active mini-window.
4115
4116 * dispextern.h, lisp.h: Add function prototypes.
4117
4118 * dispnew.c (set_window_cursor_after_update): Do the
4119 cursor_in_echo_area case only for a mini-window showing
4120 a message. Don't let cursor end up after the end of a row.
4121
4122 * xdisp.c (echo_area_glyphs, echo_area_message,
4123 echo_area_glyphs_length, previous_echo_glyphs,
4124 previous_echo_area_message, previous_echo_area_glyphs_length):
4125 Removed.
4126 (Vmessage_stack, echo_area_buffer, echo_buffer,
4127 display_last_displayed_message_p, Vwith_echo_area_save_vector): New.
4128 (message2_nolog): Use set_message and clear_message.
4129 (message3): Rename parameter len to nbytes to make clear what
4130 it is.
4131 (message3_nolog): Ditto. Use set_message and clear_message.
4132 (update_echo_area): Rewritten.
4133 (with_echo_area_buffer): New.
4134 (with_echo_area_buffer_unwind_data, unwind_with_area_buffer): New.
4135 (setup_echo_area_for_printing): New.
4136 (display_echo_area, display_echo_area_1): New.
4137
4138 (current_message, current_message_1): New.
4139 (push_message, restore_message, pop_message,
4140 check_message_stack): New.
4141 (truncate_echo_area): Rewritten.
4142 (truncate_message_1): New.
4143 (set_message, set_message_1, clear_message): New.
4144 (echo_area_display): Rewritten.
4145 (redisplay_internal): Check for needed echo area update
4146 differently.
4147 (redisplay_preserve_echo_area): Rewritten.
4148 (redisplay_window): Check for mini-window displaying echo area
4149 message differently.
4150 (syms_of_xdisp): Initialize Vmessage_stack and echo area buffers.
4151 Remove initialzation of removed variables.
4152 (init_xdisp): Remove references to removed variables.
4153
4154 * dispnew.c (adjust_frame_message_buffer): Removed references
4155 to echo_area_glyphs and previous_echo_glyphs.
4156 (direct_output_for_insert): Check for mini-window displaying
4157 echo area message differently.
4158 (update_frame): Likewise.
4159 (set_window_cursor_after_update): Likewise. In echo area,
4160 don't try to set cursor on rows that aren't enabled.
4161
4162 * print.c: Remove conditional compilation on `standalone'.
4163 (glyph_len, str_to_glyph_cpy, str_to_glyph_ncpy,
4164 glyph_to_str_cpy): Remove that section because GLYPHs are no
4165 longer used in that way.
4166 (PRINTDECLARE): Add multibyte.
4167 (PRINTPREPARE, PRINTFINISH): Handle printcharfun t differently.
4168 (printbufidx): Removed.
4169 (printchar, strout): Rewritten.
4170
4171 * keyboard.c (ok_to_echo_at_next_pause): Make it a pointer to
4172 a struct kboard.
4173 (echo_kboard): New.
4174 (echo_now): Set echo_kboard to the current kboard.
4175 (cancel_echoing): Set echo_kboard to null.
4176 (cmd_error_internal): Use clear_message, remove references
4177 to echo_area_glyphs and echo_area_message.
4178 (command_loop_1): Check for echo area messages differently.
4179 (read_char): Likewise.
4180 (record_menu_key): Use clear_message.
4181 (Fexecute_extended_command): Check for echo area messages
4182 differently. Use push_message, restore_message, pop_message.
4183
4184 * alloc.c (Fgarbage_collect): Use push_message, restore_message,
4185 pop_message.
4186
4187 * emacs.c (shut_down_emacs): Call check_message_stack.
4188
4189 * lisp.h: Add function prototypes and extern declarations for
4190 new functions and variables.
4191
4192 * fileio.c (Fdo_auto_save): Use push_message, restore_message,
4193 pop_message.
4194
4195 * minibuf.c (read_minibuf): Use clear_message instead of
4196 setting echo_area_glyphs.
4197 (Fminibuffer_completion_help): Ditto.
4198
4199 * editfns.c (Fcurrent_message): Rewritten.
4200
4201 * frame.c, window.h: Remove references to echo_area_glyphs
4202 and previous_echo_glyphs.
4203
42041999-08-21 Dave Love <fx@gnu.org>
4205
4206 * aix3-2-5.h (C_DEBUG_SWITCH): Use -g -O.
4207 * aix4-1.h: Likewise.
4208
4209 * irix6-5.h (C_DEBUG_SWITCH): Set for debug and optimize.
4210
42111999-08-20 Gerd Moellmann <gerd@gnu.org>
4212
4213 * xfns.c: Remove tiff34 prefix from include.
4214
42151999-08-20 Dave Love <fx@gnu.org>
4216
4217 * cm.c: Revert previous change.
4218
42191999-08-19 Gerd Moellmann <gerd@gnu.org>
4220
4221 * xterm.c (XTset_vertical_scroll_bar): Fix previous change. Clear
4222 under scroll bar with width FRAME_SCROLL_BAR_COLS.
4223
42241999-08-18 Dave Love <fx@gnu.org>
4225
4226 * callproc.c, filelock.c, insdel.c, sysdep.c, xmenu.c: Use
4227 stdlib.h.
4228
4229 * doprnt.c: Use stdlib.h, unistd.h.
4230
4231 * config.in: Add HAVE_TERMCAP_H.
4232
4233 * cm.c: Use termcap.h.
4234
42351999-08-18 Gerd Moellmann <gerd@gnu.org>
4236
4237 * xfns.c (x_window) [USE_X_TOOLKIT]: Remove test for
4238 FRAME_X_WINDOW (f) being null at the of the function. If widgets
4239 cannot be created we will already have crashed earlier. Call
4240 lw_set_main_areas with a null menu-bar widget, so that we have
4241 a reasonable default.
4242 (Fx_create_frame): Rearranged so that Lisp errors during frame
4243 initialization cause less damage. Initialize menu bar widget
4244 here.
4245
42461999-08-18 Gerd Moellmann <gerd@gnu.org>
4247
4248 * dispnew.c (update_frame_line): Fix previous change. If writing
4249 whole line clear to end of frame.
4250
42511999-08-17 Gerd Moellmann <gerd@gnu.org>
4252
4253 * window.c (Fcoordinates_in_window_p): Return `left-bitmap-area'
4254 and `right-bitmap-area' if position is in the bitmap areas. This
4255 avoids an error when clicking on the bitmap areas. Instead, they
4256 are currently treated like clicks inside the window.
4257 (coordinates_in_window): Return 5 and 6 for bitmap areas.
4258 (Qleft_bitmap_area, Qright_bitmap_area): New.
4259 (syms_of_window): Initialize new symbols.
4260
4261 * dispnew.c (update_frame_line): If writing whole line,
4262 don't write trailing spaces unless we must.
4263
4264 * xdisp.c (unwind_redisplay): New. Resets flag redisplaying_p.
4265 (redisplay_internal): Register unwind_redisplay with
4266 register_unwind_protect.
4267 (try_window_reusing_current_matrix): If new start > old start,
4268 give up if start pos of first reusable row is not equal to new
4269 start.
4270
4271 * eval.c (Fsignal): Don't reset redisplaying_p here.
4272
4273 * xterm.c (expose_area): If row extends face to end of line,
4274 write the whole line.
4275
42761999-08-16 Gerd Moellmann <gerd@gnu.org>
4277
4278 * dispextern.h (struct it): Remove member
4279 show_trailing_whitespace_p.
4280
4281 * dispnew.c (direct_output_for_insert): Use
4282 Vshow_trailing_whitespace instead of former iterator member
4283 show_trailing_whitespace_p.
4284 (direct_output_forward_char): Don't do it if hightlighting
4285 trailing whitespace.
4286
4287 * xdisp.c (Qshow_trailing_whitespace): Removed.
4288 (Vshow_trailing_whitespace): Added.
4289 (init_iterator): Remove initialization code for
4290 show_trailing_whitespace_p.
4291 (redisplay_internal): Don't try cursor movement in this_line
4292 if showing trailing whitespace.
4293 (redisplay_window): Likewise for cursor movement in current
4294 matrix and try_window_id.
4295 (try_window_reusing_current_matrix): Likewise.
4296 (trailing_whitespace_p): Return 0 if trailing whitespace is
4297 in front of point.
4298 (display_line): Use Vshow_trailing_whitespace instead of
4299 former iterator member show_trailing_whitespace_p.
4300 (syms_of_xdisp): Add DEFVAR_LISP for show-trailing-whitespace.
4301
43021999-08-16 Gerd Moellmann <gerd@gnu.org>
4303
4304 * window.c (Fpos_visible_in_window_p): Rewritten.
4305
4306 * xfaces.c (add_to_log): Renamed from display_message.
4307 Don't display messages in echo area.
4308
4309 * xterm.c (x_draw_glyph_string_box): Use the background width
4310 of the glyph string for the width of the box.
4311
43121999-08-16 Stefan Monnier <monnier@cs.yale.edu>
4313
4314 * syntax.c (Fforward_comment): Set comstyle for Scomment_fence.
4315
43161999-08-16 Geoff Voelker <voelker@cs.washington.edu>
4317
4318 * xfns.c, w32fns.c (x_set_frame_parameters): Set foreground and
4319 background first, and then set other parameters that might
4320 depend upon their new values.
4321
43221999-08-15 Gerd Moellmann <gerd@gnu.org>
4323
4324 * xfaces.c (Vfont_list_limit): New.
4325 (syms_of_xfaces): Make it a user-variable.
4326 (DEFAULT_FONT_LIST_LIMIT): New.
4327 (sorted_font_list): If Vfont_list_limit is an integer > 0, list
4328 maximally that number of fonts, otherwise use
4329 DEFAULT_FONT_LIST_LIMIT.
4330 (Fx_font_family_list): Bind `font-list-limit' to higher values
4331 until we have all fonts.
4332 (Fxfont_list): Additionally return the full names of fonts and
4333 their registry and encoding.
4334
4335 * xterm.c (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
4336 Simplify clearing "under" scroll bar.
4337
4338 * window.c (Qfixed_window_size): New.
4339 (syms_of_window): Initialiaze it.
4340 (check_all_windows): Add return type void.
4341 (window_fixed_size_p): New. Return non-zero if window
4342 is fixed-size.
4343 (window_min_size_1): New.
4344 (window_min_size): Handle fixed-size windows.
4345 (size_window): New. Rewritten combination of set_window_height and
4346 set_window_width that handles fixed-size windows.
4347 (set_window_height): Call it.
4348 (set_window_width): Call it.
4349 (Fsplit_window): Give an error on attempt to split a fixed-size
4350 window.
4351 (change_window_height): Partly rewritten to handle fixed-size
4352 windows.
4353
43541999-08-13 Wolfgang Rupprecht <wolfgang@wsrcc.com>
4355
4356 * process.c (Fopen_network_stream): Fix previous change.
4357
43581999-08-13 Karl Heuer <kwzh@gnu.org>
4359
4360 * xdisp.c (line_number_display_limit_width): New var.
4361 (decode_mode_spec): Use it instead of hardcoded value.
4362 (syms_of_xdisp): Defvar it.
4363
43641999-08-13 Richard M. Stallman <rms@gnu.org>
4365
4366 * eval.c (run_hook_list_with_args): Gcpro `globals'.
4367 (run_hook_with_args): Likewise.
4368
4369 * window.h (struct window): New field too_small_ok.
4370
4371 * window.c (set_window_height, set_window_width):
4372 If window starts out "too small", set its too_small_ok flag.
4373 If window's too_small_ok flag is set, don't delete it
4374 unless it is so small it would cause a crash.
4375
43761999-08-13 Gerd Moellmann <gerd@gnu.org>
4377
4378 * window.c (MINSIZE): Removed.
4379 (window_min_size): New.
4380 (set_window_height): Use window_min_size.
4381 (change_window_height): Ditto.
4382
43831999-08-12 Gerd Moellmann <gerd@gnu.org>
4384
4385 * indent.c (vmotion): Don't add in mini-buffer prompt width
4386 if prompts are inserted into mini-buffer.
4387
43881999-08-12 Wolfgang Rupprecht <wolfgang@wsrcc.com>
4389
4390 * config.in: Add HAVE_GETADDRINFO.
4391 * process.c (Fopen_network_stream): Use getaddrinfo.
4392
43931999-08-11 Gerd Moellmann <gerd@gnu.org>
4394
4395 * xdisp.c (get_overlay_arrow_glyph_row): Set the charpos of
4396 glyphs to -1.
4397
4398 * xdisp.c (face_before_or_after_it_pos): If position after
4399 or before iterator's current position in the buffer is out
4400 of bounds, return the iterator's original face id.
4401
4402 * dispnew.c (mirror_make_current): If desired row isn't enabled,
4403 just swap glyphs pointers between current and desired row.
4404 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Copy
4405 desired matrix method string to current matrix.
4406
44071999-08-11 Kenichi Handa <handa@etl.go.jp>
4408
4409 * lisp.h (CHAR_MODIFIER_MASK): New macro.
4410
4411 * lread.c (read_escape): For Control modifier, pay attention to
4412 multibyte character.
4413 (read1): Likewise. Singal error or a multibyte character which
4414 has a modifer bit. Check validity of Shift modifer.
4415
4416 * charset.c (non_ascii_char_to_string): Handle modifier bits as
4417 the same as Lisp reader.
4418
44191999-08-10 Richard M. Stallman <rms@gnu.org>
4420
4421 * charset.h (BCOPY_SHORT): Fix typo `unsigined'.
4422
44231999-08-10 Alexandre Oliva <oliva@dcc.unicamp.br>
4424
4425 * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define.
4426
44271999-08-10 Eli Zaretskii <eliz@gnu.org>
4428
4429 * msdos.c (IT_set_face): Abort if the default face is not realized
4430 and cached.
4431 (IT_write_glyphs): Reset the screen face to the default face
4432 before writing glyphs.
4433
4434 * xfaces.c (realize_default_face) [MSDOS]: Don't take default
4435 colors from the frame here.
4436 (realize_tty_face) [MSDOS]: Do it here. Update the face
4437 attributes with the actual name of the color taken from the
4438 frame.
4439
4440 * dosfns.c (msdos_stdcolor_name): Remove const from return value.
4441 * dosfns.h (msdos_stdcolor_name): Ditto for the prototype.
4442
4443 * frame.c (Fframe_parameters): Swap foreground and background
4444 colors returned in frame parameters if the frame has reverse in
4445 its parameter alist.
4446 (Fmake_terminal_frame): Make a unique copy of face_alist for
4447 each frame.
4448
44491999-08-07 Richard Stallman <rms@gnu.org>
4450
4451 * buffer.c (Fprevious_overlay_change): Just return
4452 the answer obtained from overlays_at.
4453
4454 * xfns.c (xpm_load) [!XpmAllocCloseColors]:
4455 Use XpmCloseness and attrs.closeness instead.
4456
44571999-08-06 Richard Stallman <rms@gnu.org>
4458
4459 * lread.c (Feval_buffer): New arg DO_ALLOW_PRINT.
4460
44611999-08-06 Geoff Voelker <voelker@cs.washington.edu>
4462
4463 * dired.c (directory_files_internal, Fdirectory_files_and_attributes,
4464 Ffile_attributes_lessp): New functions.
4465 (Fdirectory_files): Use directory_files_internal.
4466 (syms_of_dired): Initialize Fdirectory_files_and_attributes,
4467 Ffile_attributes_lessp.
4468
4469 * w32.c (stat): Check for directory ending in separator when
4470 doing readdir fast path.
4471
4472 * w32fns.c (x_set_icon_type): Support setting frame icons.
4473 * w32term.c (x_bitmap_icon): New function.
4474 (x_make_frame_visible, x_iconify_frame): Invoke x_bitmap_icon.
4475
44761999-08-06 Gerd Moellmann <gerd@gnu.org>
4477
4478 * xdisp.c (set_iterator_to_next): After delivering a character
4479 from a display vector, restore face and charset to what they were
4480 before the display vector was processed.
4481
44821999-08-06 Gerd Moellmann <gerd@gnu.org>
4483
4484 * xdisp.c (reseat_at_next_visible_line_start): New parameter
4485 on_newline_p.
4486 (set_iterator_to_next): After delivering last char
4487 from display vector, reseat on next visible line start if
4488 dpvec_char_len < 0.
4489 (next_element_from_buffer): Set dpvec_char_len to -1 for
4490 selective display.
4491
44921999-08-06 Gerd Moellmann <gerd@gnu.org>
4493
4494 * xdisp.c (compute_line_metrics): If first line's physical ascent
4495 is larger than its logical ascent, use the physical ascent, and
4496 make the row taller. Set row's overlapping_p flag.
4497
4498 * dispnew.c (redraw_overlapping_rows): Use flag overlapping_p.
4499 (direct_output_for_insert): Ditto.
4500
4501 * dispextern.h (struct glyph_row): Add overlapping_p.
4502
4503 * xterm.c (x_draw_phys_cursor_glyph): Redraw overlaps.
4504
4505 * dispextern.h (MATRIX_ROW_OVERLAPS_PRED_P): New.
4506 (MATRIX_ROW_OVERLAPS_SUCC_P): New.
4507
4508 * dispnew.c (direct_output_for_insert): Don't use this method if
4509 row is overlapped by others.
4510 (update_text_area): Write full line if current line is overlapped.
4511 (redraw_overlapped_rows): New.
4512 (update_window): Call it.
4513 (redraw_overlapping_rows): New.
4514 (update_window): Call it.
4515 (scrolling_window): Make sure overlapped_p flag in current rows is
4516 unchanged.
4517 (row_equal_p): Take rows overlapped_p flag into account.
4518
4519 * dispextern.h (struct glyph_row): Add flag overlapped_p.
4520
4521 * xterm.c (x_fix_overlapping_area): New.
4522 (x_redisplay_interface): Add x_fix_overlapping_area.
4523
4524 * dispnew.c (adjust_glyphs): Block input while adjusting matrices.
4525
45261999-08-06 Gerd Moellmann <gerd@gnu.org>
4527
4528 * xterm.c (x_draw_glyphs): Add parameter overlaps_p.
4529 (struct glyph_string): Add member for_overlaps_p.
4530 (x_get_glyph_string_clip_rect): If glyph string draws foreground
4531 of overlapping rows, clip to window bottom.
4532 (x_fill_glyph_string): Add parameter overlaps_p.
4533 (x_fill_composite_glyph_string): Ditto.
4534 (BUILD_GLYPH_STRINGS): Ditto.
4535 (BUILD_CHAR_GLYPH_STRINGS): Ditto.
4536 (x_draw_glyph_string): Don't draw anything but the foreground
4537 if glyph string draws row overlaps.
4538
4539 * dispnew.c (direct_output_for_insert): Don't use this
4540 optimization for rows that overlap others.
4541 (update_window_line): Return non-zero if display has changed.
4542 (update_text_area): Ditto.
4543 (update_window): Record if display has been changed.
4544
4545 * dispextern.h (MATRIX_ROW_OVERLAPPING_P): New.
4546
4547 * dispextern.h (struct redisplay_interface): Add
4548 fix_overlapping_area.
4549
4550 * xterm.c (x_append_glyph): Set glyph flag overlaps_vertically_p.
4551
4552 * dispextern.h (struct glyph): Add overlaps_vertically_p.
4553
4554 * xterm.c (x_produce_image_glyph): Compute iterator's physical
4555 ascent and descent.
4556 (x_produce_stretch_glyph): Ditto.
4557 (x_produce_glyphs): Ditto.
4558
4559 * xdisp.c (init_iterator): Reset physical line height info
4560 after producing special glyphs.
4561 (display_toolbar_line): Set physical line height info.
4562 (compute_line_metrics): Ditto.
4563 (display_line): Ditto.
4564 (display_string): Ditto.
4565
4566 * term.c (produce_glyphs): Set iterator's physical height
4567 information.
4568
4569 * dispnew.c (blank_row): Compute glyph row's physical height.
4570 (row_equal_p): Take physical row heights into account.
4571 (direct_output_for_insert): Ditto.
4572 (update_text_area): Ditto.
4573
4574 * dispextern.h (struct glyph_row): Add phys_ascent and
4575 phys_height.
4576 (struct it): Add phys_ascent, phys_descent, max_phys_ascent,
4577 max_phys_descent.
4578
45791999-08-04 Stefan Monnier <monnier@cs.yale.edu>
4580
4581 * buffer.c (switch_to_buffer_1): New subroutine, taken out from
4582 Fswitch_to_buffer.
4583 (no_switch_buffer): New function.
4584 (Fswitch_to_buffer): Call them. Don't get confused
4585 by "same-window" buffers in a dedicated frame.
4586
4587 * window.c (display-buffer): Don't get confused
4588 by "same-window" buffers in a dedicated frame.
4589
45901999-08-04 Andreas Schwab <schwab@gnu.org>
4591
4592 * insdel.c (insert_from_string_1): Check gap size against number
4593 of outgoing bytes, not incoming bytes.
4594
45951999-08-03 Tom Breton <tob@world.std.com>
4596
4597 * lread.c (read1): Added circular reading code to #N=.
4598 (SUBSTITUTE): New macro.
4599 (seen_list): New variable.
4600 (substitute_object_in_subtree): New function.
4601 (substitute_object_recurse): New function.
4602 (substitute_in_interval): New function.
4603
46041999-08-02 Eli Zaretskii <eliz@gnu.org>
4605
4606 * Makefile.in (frame.o, sysdep.o, xfaces.o): Depend on dosfns.h.
4607
4608 * frame.c (make_terminal_frame): Don't call init_frame_faces if
4609 noninteractive, for termcap frames as well.
4610
4611 * sysdep.c (init_sys_modes): Call init_frame_faces for termcap
4612 frames.
4613
46141999-08-01 Richard Stallman <rms@gnu.org>
4615
4616 * fns.c (internal_equal): Correct overlay comparison.
4617
83c8f461 46181999-07-31 Richard M. Stallman <rms@gnu.org>
26901792
DL
4619
4620 * xfns.c (x_set_internal_border_width):
4621 Call do_pending_window_change. Don't block input, don't call XFlush.
4622 (x_set_vertical_scroll_bars): Call do_pending_window_change.
4623 (x_set_scroll_bar_width, x_set_font): Likewise.
4624
4625 * frame.c (Fset_frame_height): Call do_pending_window_change.
4626 (Fset_frame_width, Fset_frame_size): Likewise.
4627
4628 * xterm.c (x_set_window_size): When calling change_frame_size,
4629 specify 1 for DELAY.
4630
4631 * widget.c (EmacsFrameSetCharSize): Don't call
4632 do_pending_window_change here.
4633
46341999-07-30 Dave Love <fx@gnu.org>
4635
4636 * config.in: Add HAVE_STDLIB_H.
4637
46381999-07-30 Richard M. Stallman <rms@gnu.org>
4639
4640 * process.c (create_process): Detect failure of `pipe'.
4641
46421999-07-30 Keisuke Nishida <kei@psn.net>
4643
4644 * alloc.c (allocate_vectorlike): Add missing increment.
4645
4646 * data.c (Fdefalias): Call Ffset instead of duplicating code.
4647
4648 * keymap.c (get_keymap_1, get_keyelt): Check the type of OBJECT
4649 before calling indirect_function.
4650
46511999-07-30 Eli Zaretskii <eliz@gnu.org>
4652
4653 * dispextern.h (load_color, lookup_derived_face): Declare
4654 prototypes.
4655
4656 * dispnew.c (init_display) [MSDOS]: Don't initialize frame faces,
4657 it will be done later.
4658
4659 * frame.c (make_terminal_frame) [MSDOS]: Don't call
4660 init_frame_faces if non-interactive.
4661 (Fframe_parameters) [MSDOS]: Replace indexing into colornames[]
4662 array with a call to msdos_stdcolor_name. The font name is now
4663 "ms-dos", consistent with realize_tty_face.
4664
4665 * keyboard.c (cmd_error_internal): Don't kill Emacs if this is an
4666 MSDOS frame.
4667
4668 * window.c (Fset_window_configuration) [MSDOS]: Don't call
4669 x_set_toolbar_lines.
4670
4671 * xfaces.c (load_color): Remove static from definition and remove
4672 prototype.
4673 [MSDOS]: Add a DOS-specific version of load_color.
4674 (lookup_face): Replace FRAME_TERMCAP_P with !FRAME_WINDOW_P.
4675 (lookup_derived_face): New function.
4676 (realize_default_face): Support MSDOS frames.
4677 [MSDOS]: If fore/background colors are unspecified, inherit them
4678 from the frame.
4679 (realize_face): Support MSDOS frames.
4680 (realize_tty_face): Support MSDOS frames.
4681 [MSDOS]: If the face color is not in Vface_tty_color_alist, call
4682 load_color to try to find a suitable approximation. If the face
4683 is inverse-video, swap the foreground and background colors.
4684
4685 * dosfns.c (msdos_stdcolor_name, msdos_stdcolor_idx): New
4686 functions.
4687
4688 * dosfns.h (msdos_stdcolor_name, msdos_stdcolor_idx): Declare.
4689
4690 * msdos.h: Remove redundant declarations (most of them are now in
4691 dispextern.h).
4692
4693 * msdos.c (IT_set_face): Rewritten for the new redisplay engine.
4694 Use default frame colors if the face doesn't specify them; invert
4695 the colors if highlight is ON.
4696 (IT_write_glyphs): Rewritten for the new redisplay engine.
4697 (IT_change_line_highlight): Add (unused) parameter Y, since that's
4698 how the hook is called by term.c.
4699 (IT_copy_glyphs): New function, copies an area of the display in
4700 video RAM.
4701 (IT_insert_glyphs): Rewritten to DTRT instead of aborting, since
4702 redisplay now calls it even if char_ins_del_ok is zero.
4703 (IT_set_frame_parameters): Prototype changed. Calls the new
4704 load_color. Puts the new fore/background colors into the default
4705 face on current frame.
4706 (IT_menu_display): Rewritten to handle the new struct glyph
4707 instead of a char array.
4708 (XMenuActivate): Call lookup_derived_face to create and use
4709 special faces for the pop-up and drop-down menus.
4710
47111999-07-29 Gerd Moellmann <gerd@gnu.org>
4712
4713 * xterm.c (x_set_toolkit_scroll_bar_thumb): Don't call
4714 XawScrollbarSetThumb if thumb parameters haven't changed because
4715 that function apparently isn't optimized for this case.
4716
47171999-07-29 Eli Zaretskii <eliz@gnu.org>
4718
4719 * msdos.c (getdefdir): Don't return failure indication when
4720 _fixpath sets errno to ENOSYS.
4721
47221999-07-28 Gerd Moellmann <gerd@gnu.org>
4723
4724 * xdisp.c (string_char_and_length): New. Use it everywhere
4725 instead of STRING_CHAR_AND_LENGTH in xdisp.c.
4726
47271999-07-28 Kenichi Handa <handa@etl.go.jp>
4728
4729 * fns.c (count_combining): New function.
4730 (struct textprop_rec): New structure.
4731 (concat): Copy text properties correctly when byte combining
4732 occurs.
4733
47341999-07-28 Gerd Moellmann <gerd@gnu.org>
4735
4736 * xterm.c (x_setup_relief_color): Don't try smart color allocation
4737 if display is mono.
4738 (x_draw_row_bitmaps): If face has stipple, don't switch
4739 to foreground color for clearing areas, and set the fill style.
4740
4741 * xfaces.c (load_face_colors): Load background color if setting
4742 stipple, too.
4743 (prepare_face_for_display): Use FillOpaqueStippled instead of
4744 FillStippled.
4745
47461999-07-26 Ken'ichi Handa <handa@gnu.org>
4747
4748 * xterm.c (x_find_ccl_program): Add casting.
4749
4750 * w32fns.c (w32_find_ccl_program): Add casting.
4751
47521999-07-27 Gerd Moellmann <gerd@gnu.org>
4753
4754 * dispextern.h (struct glyph_row): Flag internal_border_p removed.
4755
4756 * xfns.c (x_create_tip_frame): Don't set bitmapIcon resource
4757 because this will try to access a nonexisting widget.
4758
47591999-07-26 Markus Rost <rost@gnu.org>
4760
4761 * fns.c (Fgethash): Fix order of variables (patch by gerd).
4762 (Fputhash): Ditto.
4763 (Fremhash): Ditto.
4764
47651999-07-26 Gerd Moellmann <gerd@gnu.org>
4766
4767 * widget.c (EmacsFrameSetCharSize): Don't add XtNborderWidth
4768 value to frame width and height.
4769
4770 * xterm.c (x_get_glyph_string_clip_rect): Take internal border
4771 into account for full-width windows. Don't add scroll bar width
4772 to width of clip rect.
4773 (x_draw_glyph_string_box): Add 1 to right x of full width lines.
4774 (x_set_glyph_string_background_width): Add 1 to background width.
4775 (x_draw_glyphs): Take internal border into account for full-width
4776 lines.
4777
47781999-07-26 Richard M. Stallman <rms@gnu.org>
4779
4780 * xfns.c (x_set_mouse_color): Always unload the old color.
4781 Don't allow nil as color value.
4782 (x_set_cursor_color, x_set_background_color, x_set_foreground_color):
4783 Always unload the old color.
4784
4785 * indent.c (Fmove_to_column): Extend end of line only if FORCE is t.
4786
47871999-07-26 Karl Heuer <kwzh@gnu.org>
4788
4789 * fns.c (Fy_or_n_p): Doc fix.
4790
47911999-07-26 Kenichi Handa <handa@etl.go.jp>
4792
4793 * ccl.h (setup_ccl_program): The type is changed to `int'.
4794
4795 * ccl.c (ccl_driver) <CCL_Call>: Now CCL program ID to call may be
4796 stored in the following CCL code. Adjusted for the change of
4797 Vccl_program_table.
4798 (resolve_symbol_ccl_program): Adjusted for the new style of
4799 embedded symbols (SYMBOL . PROP) in CCL compiled code. Return Qt
4800 is resolving failed.
4801 (ccl_get_compiled_code): New function.
4802 (setup_ccl_program): Function type changed from `void' to `int'.
4803 Resolve symbols in CCL_PROG.
4804 (Fccl_program_p): New function.
4805 (Fccl_execute): Get compiled CCL code by just calling
4806 setup_ccl_program.
4807 (Fccl_execute_on_string): Likewise.
4808 (Fregister_ccl_program): Adjusted for the change of
4809 Vccl_program_table.
4810
4811 * coding.c (setup_coding_system): Get compiled CCL code by just
4812 calling setup_ccl_program.
4813
4814 * xterm.c (x_find_ccl_program): Get compiled CCL code by just
4815 calling setup_ccl_program.
4816
4817 * w32fns.c (w32_find_ccl_program): Get compiled CCL code by just
4818 calling setup_ccl_program.
4819
48201999-07-23 Gerd Moellmann <gerd@gnu.org>
4821
4822 * xfaces.c (frame_update_line_height): Just use the height of the
4823 frame's fontset or font, instead of taking face fonts into
4824 account.
4825
4826 * xdisp.c (get_next_display_element): Display DEL as `^?'.
4827
48281999-07-23 Richard M. Stallman <rms@gnu.org>
4829
4830 * window.c (Fsplit_window): For default size, round up for left window.
4831
48321999-07-21 Joe Ramey <ramey@ti.com>
4833
4834 * filelock.c (lock_if_free): Return -1 if check_lock_owner
4835 has returned -1 (lockfile exists but is not a symlink?).
4836
48371999-07-20 Gerd Moellmann <gerd@gnu.org>
4838
4839 * xterm.c (x_draw_bar_cursor): Use scratch_cursor_gc to
4840 because of a change in cursor_gc made in 20.4.
4841
48421999-07-19 Gerd Moellmann <gerd@gnu.org>
4843
4844 * xterm.c (x_calc_absolute_position): Subtract menu bar height
4845 for YNegative, if using X toolkit.
4846
4847 * xfns.c (x_real_positions): Don't subtract window borders
4848 from positions returned.
4849
48501999-07-17 Gerd Moellmann <gerd@gnu.org>
4851
4852 * xrdb.c (x_load_resources): Set double-click time defaults
4853 for Motif list boxes from double-click-time.
4854
4855 * fns.c (Vhash_table_tests): Remvoed.
4856 (Qhash_table_test): New.
4857 (syms_of_fns): Initialize Qhash_table_test.
4858 (Fmake_hash_table): Look up user-defined tests in symbol prop
4859 `hash-table-test'.
4860 (Fdefine_hash_table_test): Store test and hash function as
4861 symbol prop `hash-table-test'.
4862 (make_hash_table): Add parameters user_test and user_hash.
4863
4864 * window.c (set_window_buffer): Set window margins for tty
4865 frames, too.
4866 (Fset_window_margins): Ditto.
4867
4868 * term.c (append_glyph): Use glyph area of iterator instead of
4869 always TEXT_AREA.
4870
4871 * dispnew.c (update_frame_1): Add left margin width to cursor
4872 hpos.
4873 (direct_output_for_insert): Ditto.
4874 (direct_output_forward_char): Ditto.
4875
4876 * dispnew.c (adjust_glyph_matrix): Set glyph matrix' top_line_p.
4877
4878 * dispextern.h (struct glyph_matrix): Add top_line_p.
4879
48801999-07-16 Gerd Moellmann <gerd@gnu.org>
4881
4882 * frame.h (FRAME_WINDOW_REDISPLAY_P): Removed. Use FRAME_WINDOW_P
4883 instead.
4884
4885 * fns.c (cmpfn_eq): Add hash code parameters.
4886 (cmpfn_eql): Ditto.
4887 (cmpfn_equal): Ditto, and compare hash codes before calling Fequal.
4888 (cmpfn_user_defined): Likewise.
4889
48901999-07-15 Gerd Moellmann <gerd@gnu.org>
4891
4892 * lisp.h (DEFAULT_REHASH_THRESHOLD): Changed to 0.8.
4893
4894 * fns.c (maybe_resize_hash_table): Correct computation of
4895 index vector size.
4896 (make_hash_table): Ditto.
4897 (Fmakehash): New.
4898
4899 * xdisp.c (echo_area_display): Don't call redraw_garbaged_frames.
4900
4901 * alloc.c (gc_sweep): Call sweep_weak_hash_tables.
4902 (survives_gc_p): Make it externally visible.
4903 (mark_object): Ditto.
4904
4905 * fns.c (remove_hash_entry): Removed.
4906 (sweep_weak_hash_tables): New.
4907
4908 * print.c (print): Print more information about hash tables.
4909
4910 * xfns.c (image_spec_hash): Removed.
4911 (lookup_image): Use sxhash instead of image_spec_hash.
4912 (image_spec_equal_p): Removed.
4913 (lookup_image): Use Fequal instead of image_spec_equal_p.
4914
49151999-07-14 Gerd Moellmann <gerd@gnu.org>
4916
4917 * lisp.h (P_): Moved to top of file.
4918
4919 * fns.c (make_hash_table): Set new members.
4920
4921 * alloc.c (mark_object): Mark hash table's user_hash_function.
4922 Mark index vector for weak hash tables.
4923
4924 * lisp.h (struct Lisp_Hash_Table): Add user_cmp_function,
4925 user_hash_function, cmpfn, and hashfn.
4926
4927 * fns.c (build_hash): Removed.
4928 (hash_test): Removed.
4929 (cmpfn_eq, cmpfn_eql, cmpfn_equal, cmpfn_user_defined): New.
4930 (hashfn_eq, hashfn_eql, hashfn_equal, hashfn_user_defined): New.
4931
49321999-07-13 Gerd Moellmann <gerd@gnu.org>
4933
4934 * alloc.c (survives_gc_p): New.
4935
4936 * print.c (print): Add hash table handling.
4937
4938 * alloc.c (mark_object): Add code to mark hash tables.
4939
4940 * lisp.h (GC_HASH_TABLE_P): New.
4941
4942 * emacs.c (main): Call init_fns.
4943
4944 * fns.c (init_fns): New.
4945
4946 * fns.c: Add hash table implementation.
4947
4948 * lisp.h (PVEC_HASH_TABLE): New.
4949 (struct Lisp_Hash_Table): New.
4950 (XHASH_TABLE): New.
4951 (XSET_HASH_TABLE): New.
4952 (HASH_TABLE_P): New.
4953 (CHECK_HASH_TABLE): New.
4954 (DEFAULT_HASH_SIZE): New.
4955 (DEFAULT_REHASH_THRESHOLD): New.
4956 (DEFAULT_REHASH_SIZE): New.
4957
4958 * xterm.c (x_draw_glyphs): Add parameters real_start and real_end.
4959 (x_write_glyphs): Compute overwritten cursor using real start
4960 and end positions of display.
4961 (x_insert_glyphs): Ditto.
4962
49631999-07-10 Gerd Moellmann <gerd@gnu.org>
4964
4965 * keyboard.c (read_char): Use message3_nolog to show help-echo.
4966
4967 * dispnew.c (blank_row): Add y-position as parameter. Compute
4968 visible height.
4969
4970 * xdisp.c (next_element_from_string): Give padding spaces
4971 a position of -1.
4972
4973 * dispnew.c (adjust_glyph_matrix): Some work to support
4974 marginals areas on tty frames in a future version.
4975 (allocate_matrices_for_frame_redisplay): Ditto.
4976
4977 * xdisp.c (display_line): At ZV, set glyph row's displays_text_p
4978 to zero if number of glyphs in the row is <= 1.
4979
49801999-07-09 Gerd Moellmann <gerd@gnu.org>
4981
4982 * dispnew.c (buffer_posn_from_coords): Take left marginal area
4983 into account.
4984
4985 * xdisp.c (handle_display_prop): Don't reset area if handing
4986 a property from a string that came from a `display' property.
4987 (handle_single_display_prop): Don't handle recursive `display'
4988 properties.
4989 (handle_single_display_prop): Handle some display property
4990 forms for terminal frames.
4991 (Qimage): Moved here from xfns.c.
4992
4993 * dispextern.h (struct it): New field string_from_display_prop_p.
4994
4995 * xterm.c (x_clip_to_row): Don't let clip_rect include top
4996 line.
4997
49981999-07-08 Gerd Moellmann <gerd@gnu.org>
4999
5000 * xdisp.c (handle_single_display_prop): Handle `:when FORM'.
5001
5002 * window.c (set_window_buffer): Set window's vscroll to zero.
5003
5004 * xdisp.c (QCwhen): New.
5005 (display_prop_end): New.
5006 (handle_single_display_prop): Use it.
5007 (debug_method_add): Print buffer name if tracing.
5008 (try_window_reusing_current_matrix): Compute visible height
5009 of reused rows. Fix cursor position calculation in case of
5010 top-line.
5011
5012 * dispextern.h (struct redisplay_interface): Add parameter
5013 cursor_on_p to update_window_end_hook.
5014
5015 * xterm.c (x_update_window_end): Add parameter cursor_on_p.
5016
50171999-07-07 Gerd Moellmann <gerd@gnu.org>
5018
5019 * xdisp.c (redisplay_internal): Ensure that redisplayinp_p
5020 doesn't become negative when decrementing it.
5021
5022 * eval.c (Fsignal): Reset redisplaying_p to zero.
5023
5024 * xdisp.c (try_window_reusing_current_matrix): Call hooks
5025 for window update.
5026 (try_window_id): Ditto.
5027
5028 * xterm.c (x_clear_end_of_line): Handle top-line correctly.
5029 (x_scroll_run): Ditto.
5030 (any_help_event_p): New.
5031 (x_initialize): Set it to zero.
5032 (XTread_socket): Clear help echo only if any_help_event_p.
5033
5034 * xdisp.c (init_iterator): Set top_line_p.
5035 (start_display): Use correct initial y if top-line is present.
5036 (make_cursor_line_fully_visible): Bug fixes for top-line.
5037 (try_scrolling): Ditto.
5038 (try_window_reusing_current_matrix): Ditto.
5039
5040 * dispextern.h (struct it): Add top_line_p.
5041
5042 * dispnew.c (shift_glyph_matrix): Move some computations out
5043 of the loop.
5044
5045 * dispnew.c (margin_glyphs_to_reserve): Use NUMBERP and
5046 XFLOATINT.
5047
50481999-07-06 Gerd Moellmann <gerd@gnu.org>
5049
5050 * dispnew.c (update_frame_1): When setting cursor in echo area,
5051 skip only over padding spaces at the end.
5052
5053 * xfaces.c (realize_tty_face): Set face's font_name field to
5054 "tty".
5055
5056 * term.c (update_end): Turn cursor on only if selected window's
5057 cursor_off_p flag is not set.
5058
50591999-07-05 Gerd Moellmann <gerd@gnu.org>
5060
5061 * term.c (TS_cursor_visible): Renamed from TS_visual_mode.
5062 (TS_cursor_normal): Renamed from TS_end_visual_mode.
5063 (TS_cursor_invisible): New.
5064 (term_init): Initialize TS_cursor_invisible.
5065 (tty_hide_cursor): New.
5066 (tty_show_cursor): New.
5067 (update_end): Show tty cursor.
5068 (update_begin): Hide tty cursor to prevent cursor flickering
5069 during redisplays triggered by timers (stealth fontification).
5070
5071 * keyboard.c (make_lispy_event) <TOOLBAR_EVENT>: Apply modifiers.
5072
5073 * xterm.c (XTread_socket) [USE_MOTIF] <KeyPress>: Catch events
5074 in scroll bars.
5075 (x_handle_toolbar_click): Set modifier bits.
5076
50771999-07-04 Gerd Moellmann <gerd@gnu.org>
5078
5079 * keyboard.c (kbd_store_ptr): Declare it as a volatile pointer
5080 instead of a pointer to a volatile input_event.
5081 (kbd_buffer_store_event): Remove volatile modifier from
5082 declaration of local variable `sp'.
5083 (Fdiscard_input): Don't cast when assigning kbd_store_ptr
5084 to kbd_fetch_ptr.
5085
50861999-07-03 Gerd Moellmann <gerd@gnu.org>
5087
5088 * xdisp.c (try_window_id): Set beg_unchanged and end_unchanged
5089 only if buffer is modified. Return quickly if changes are
5090 above window start.
5091
50921999-07-02 Gerd Moellmann <gerd@gnu.org>
5093
5094 * dispextern.h (HSCROLL_WINDOWS): Removed.
5095
5096 * xdisp.c (mark_window_display_accurate): Don't set
5097 w->region_showing.
5098 (redisplay_internal): Don't call redraw_garbaged_frames.
5099
51001999-07-01 Gerd Moellmann <gerd@gnu.org>
5101
5102 * xdisp.c (echo_area_display): Don't display truncation marks
5103 for messages because 20.4 doesn't do it either.
5104 (redisplay_window): Case same window start. Instead of giving
5105 up when cursor is partially visible, make it fully visible.
5106 (mark_window_display_accurate): Some cleanup. Record window's
5107 last cursor information.
5108 (debug_method_add): Improved.
5109 (redisplay_internal): Record last cursor info only if not
5110 consider_all_windows_p.
5111
5112 * dispnew.c (update_window): Update top line after scrolling.
5113 (blank_row): Renamed from make_empty_enabled_row.
5114 (increment_glyph_row_buffer_positions): Increment positions
5115 in buffers, only.
5116
5117 * window.c (Fcoordinates_in_window_p): Add top-line to doc
5118 string.
5119
51201999-06-30 Gerd Moellmann <gerd@gnu.org>
5121
5122 * dispnew.c (update_window): Check that updated row is visible.
5123
5124 * xterm.c (x_draw_row_bitmaps): Check for invisible rows at
5125 top of window differently.
5126
5127 * xdisp.c (try_window_reusing_current_matrix): Don't do it
5128 if region is showing.
5129
5130 * dispnew.c (adjust_glyph_matrix): Check w->vscroll when
5131 avoiding matrix reallocation. Set window_vscroll in matrix.
5132
5133 * dispextern.h (struct glyph_matrix): Add member window_vscroll.
5134
26901792
DL
5135 * xdisp.c (debug_method_add): New.
5136 (debug_redisplay_method): Removed.
5137 (try_window_reusing_current_matrix): Handle case where old
5138 window start is the same as new window start.
5139
5140 * dispextern.h (struct glyph_matrix) [GLYPH_DEBUG]: Make `method'
5141 an array instead of a pointer.
5142
26901792
DL
5143 * xfns.c (Fx_show_tip): Undo previous change.
5144
5145 * xterm.c (x_append_glyph): Clear glyph->u.val.
5146
5147 * dispextern.h (struct glyph): Increase size of face_id bit-field
5148 for CHAR_GLYPH to 12.
5149
51501999-06-29 Gerd Moellmann <gerd@gnu.org>
5151
5152 * xfaces.c (x_charset_registry): Make it externally visible.
5153
51541999-06-28 Gerd Moellmann <gerd@gnu.org>
5155
5156 * dispnew.c (update_window): Use mode_line_p flag of rows
5157 instead of WINDOW_WANTS_MODELINE_P.
5158
5159 * xterm.c (clear_mouse_face): Make externally visible.
5160
5161 * xfns.c (Fx_show_tip): Clear mouse face before showing tip.
5162
5163 * xterm.c (expose_line): Handle exposure of top-lines.
5164
5165 * xterm.c (XTframe_up_to_date): Don't call note_mouse_highlight
5166 if mouse_face_mouse_frame is null.
5167
5168 * xdisp.c (redisplay_window): If window is echo_area_window,
5169 and update_mode_line is set, update menubar and toolbar.
5170
5171 * dispnew.c (space_glyph): Set its charpos to -1.
5172 (update_frame_1): Ignore trailing padding spaces.
5173
5174 * xdisp.c (next_element_from_c_string): Set position of padding
5175 glyphs to -1.
5176
51771999-06-27 Gerd Moellmann <gerd@gnu.org>
5178
5179 * xfns.c (x_laplace_read_row): Use XQueryColors instead of
5180 XQueryColor.
5181
5182 * xdisp.c (display_menu_bar): Remove unwarranted assertion.
5183 (set_cursor_from_row): Skip over glyphs having a null object at
5184 the start of rows.
5185 (insert_left_trunc_glyphs): Use charpos < 0 to indicate truncation
5186 glyphs.
5187 (handle_invisible_prop): Compute next change only when needed.
5188 (handle_face_prop): Don't correct DEFAULT_FACE_ID if in the mode
5189 line.
5190
51911999-06-26 Gerd Moellmann <gerd@gnu.org>
5192
5193 * xrdb.c (x_load_resources): Don't set resource for double-click
5194 time.
5195
5196 * xdisp.c (try_window_id): Return quickly if all changes are
5197 below the window's current matrix end.
5198
5199 * dispextern.h (MATRIX_ROW_PARTIALLY_VISIBLE_P): Remove window
5200 parameter.
5201
5202 * xdisp.c (try_window_reusing_current_matrix): Set no_scrolling_p
5203 in desired not in current matrix.
5204 (try_window_reusing_current_matrix): Rotate matrices starting
5205 at start_vpos instead of 0.
5206
5207 * xterm.c (expose_window): Use window_text_bottom_y.
5208 (fast_find_position): Ditto.
5209
5210 * xdisp.c (redisplay_window): Use window_text_bottom_y.
5211 (try_window_reusing_current_matrix): Ditto.
5212 (get_last_unchanged_at_beg_row): Ditto.
5213 (init_iterator): Ditto.
5214
5215 * dispnew.c (allocate_matrices_for_window_redisplay): Allocate one
5216 more row.
5217 (check_matrix_invariants): Use window_text_bottom_y.
5218 (update_window): Ditto.
5219 (scrolling_window): Ditto.
5220
5221 * xdisp.c (window_text_bottom_y): New.
5222
52231999-06-25 Gerd Moellmann <gerd@gnu.org>
5224
5225 * xterm.c (XTread_socket): Set mouse_face_frame to zero after
5226 clearing mouse face.
5227 (XTread_socket) <EnterNotify> [LESSTIF_VERSION]: If
5228 event.xcrossing.focus is not set, and focus is in the menu bar,
5229 set focus frame as if event.xcrossing.focus were set.
5230
52311999-06-24 Gerd Moellmann <gerd@gnu.org>
5232
5233 * keyboard.c (make_lispy_event): Handle mouse on top lines.
5234 * keyboard.c (make_lispy_movement): Ditto.
5235
5236 * window.c (coordinates_in_window): Return 4 if on top line.
5237 (Fcoordinates_in_window_p): Return `top-line' if on top line.
5238
5239 * xdisp.c (window_box_height): Subtract top line height.
5240 (window_box): Add top line height to top y position if top line
5241 exists.
5242 (init_iterator): If base_face_id is TOP_LINE_FACE_ID, set row to
5243 the top line row of the window. Set initial y-position to
5244 window's top line height plus delta.
5245 (start_display): Choose start glyph row depending on whether
5246 window has a top line.
5247 (try_scrolling): Take top line height into account for aggressive
5248 scrolling.
5249 (compute_window_start_on_continuation_line): Take top line into
5250 account.
5251 (redisplay_window): Ditto. If top line height has changed,
5252 trigger a new redisplay.
5253 (try_window_reusing_current_matrix): Take top line into account.
5254 (find_last_row_displaying_text): Ditto.
5255 (get_last_unchanged_at_beg_row): DItto.
5256 (try_window_id): Ditto.
5257 (compute_line_metrics): Ditto.
5258
5259 * dispnew.c (shift_glyph_matrix): Compute visible row height
5260 taking top line of window into account.
5261 (update_window): Update top line. If scrolling_window detects
5262 that all rows are equal, only set cursor.
5263 (update_window_line): Call after_update_window_line_hook if
5264 mode_line_p flag of rows has changed.
5265 (scrolling_window): Add parameter top_line_p. Return -1 if
5266 all rows are equal.
5267 (mode_line_string): Add parameter mode_line_p. Handle strings
5268 in top lines.
5269
5270 * dispextern.h (MATRIX_TOP_LINE_ROW): New.
5271 (MATRIX_FIRST_TEXT_ROW): New.
5272 (MATRIX_ROW_PARTIALLY_VISIBLE_P): Use row's visible_height.
5273 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P): New.
5274 (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): New.
5275 (MATRIX_TOP_LINE_HEIGHT): New.
5276 (CURRENT_MODE_LINE_HEIGHT): Use estimate_mode_line_height.
5277 (CURRENT_TOP_LINE_HEIGHT): New.
5278 (DESIRED_TOP_LINE_HEIGHT): New.
5279 (WINDOW_DISPLAY_TOP_LINE_HEIGHT): New.
5280 (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE): Replaces
5281 WINDOW_DISPLAY_TEXT_AREA_PIXEL_HEIGHT.
5282 (WINDOW_DISPLAY_TEXT_HEIGHT): New.
5283
5284 * xterm.c (x_after_update_window_line): Don't draw bitmaps for top
5285 lines.
5286 (x_draw_row_bitmaps): Take top line into account when clearing
5287 bitmap area.
5288 (x_estimate_mode_line_height): Replacement for
5289 x_frame_mode_line_height.
5290 (x_get_glyph_string_clip_rect): Take top line into account.
5291 (x_clear_end_of_line): Ditto.
5292 (note_mode_line_highlight): Add parameter mode_line_p. Handle
5293 top lines.
5294 (note_mouse_highlight): Call note_mode_line_highlight for top lines.
5295 (x_erase_phys_cursor): Take top line into account.
5296
5297 * xdisp.c (window_box_height): Subtract top line height if
5298 window wants a top line.
5299 (display_mode_lines): New.
5300 (redisplay_window): Call it.
5301 (display_mode_line): Add parameters face_id and format.
5302
5303 * dispextern.h (CURRENT_TOP_LINE_HEIGHT): New.
5304 (MATRIX_TOP_LINE_HEIGHT): New.
5305
5306 * xterm.c (x_frame_mode_line_height): Add parameter face_id.
5307
5308 * term.c (estimate_mode_line_height): Renamed from
5309 frame_mode_line_height. Add parameter face_id.
5310 (estimate_mode_line_height_hook): Renamed from
5311 frame_mode_line_height_hook.
5312 (produce_special_glyphs_hook): Removed.
5313 (produce_glyphs_hook): Removed.
5314
53151999-06-23 Gerd Moellmann <gerd@gnu.org>
5316
5317 * dispextern.h (WINDOW_WANTS_TOP_LINE_P): New.
5318 (struct glyph_row): Add mode_line_p.
5319
5320 * xfaces.c (realize_basic_faces): Realize face `top-line'.
5321 (Qtop_line): New.
5322 (syms_of_xfaces): Initialize Qtop_line.
5323
5324 * dispextern.h (TOP_LINE_FACE_ID): New.
5325
5326 * buffer.c (init_buffer_once): Set default for
5327 top_line_format to nil.
5328 (init_buffer_once): Init top_line_format.
5329 (default-top-line-format): New.
5330 (top-line-format): New buffer-local variable.
5331
5332 * buffer.h: Add top_line_format.
5333
5334 * xdisp.c (overlay_arrow_changed_p): Removed because not used.
5335
53361999-06-17 Dave Love <fx@gnu.org>
5337
5338 * xfns.c: Move the PNG section before the JPEG one to avoid
5339 problems surrounding setjmp.h/png.h on GNU/Linux.
5340
53411999-06-17 Gerd Moellmann <gerd@gnu.org>
5342
5343 * xfns.c (x_kill_gs_process): Don't free colors.
5344
53451999-06-17 Dave Love <fx@gnu.org>
5346
5347 * s/gnu-linux.h: Zap spurious ~.
5348
53491999-06-16 Gerd Moellmann <gerd@gnu.org>
5350
5351 * xfns.c (gif_load): Improve multi-image support.
5352
53531999-06-15 Gerd Moellmann <gerd@gnu.org>
5354
5355 * xfns.c (gif_load): Support multi-image files.
5356
5357 * Makefile.in (LIBGIF): Use libungif.
5358
5359 * configure.in (HAVE_GIF): Use libungif instead of libgif
5360 because the former doesn't contain patented compression code.
5361
5362 * xdisp.c (compute_window_start_on_continuation_line): Don't
5363 do it if line start is too far away from window start.
5364
53651999-06-14 Gerd Moellmann <gerd@gnu.org>
5366
5367 * buffer.c (init_buffer_once): Set buffer_local_flags for
5368 scroll_*_aggressively.
5369 (syms_of_buffer): Add DEFVAR_PER_BUFFER for scroll-*-aggressively.
5370 (init_buffer_once): Set defaults for these variables.
5371 (syms_of_buffer): Add default-scroll-*-aggressively.
5372
5373 * buffer.h (scroll_up_aggressively): New.
5374 (scroll_down_aggressively): New.
5375
5376 * Makefile.in (LIBPNG): Add -lz -lm in case we're linking with
5377 a static PNG library.
5378
5379 * configure.in (HAVE_PNG): Add -lz -lm when checking for PNG lib
5380 in case it's a static library.
5381
5382 * Makefile.in (ctagsfiles): Split so that files starting
5383 with an `x' are found before files starting with `w32'.
5384 (ctagsfiles1): New.
5385 (ctagsfiles2): New.
5386 (TAGS): Use ctagsfiles[12] instead of ctagsfiles.
5387
5388 * xdisp.c (compute_window_start_on_continuation_line): New.
5389 (redisplay_window): Use it.
5390 (INFINITY): New.
5391 (reseat_to_string): Use it.
5392 (hscroll_window_tree): Ditto.
5393 (compute_window_start_on_continuation_line): Ditto.
5394 (redisplay_window): Don't force display with a new window start.
5395
53961999-06-06 Gerd Moellmann <gerd@gnu.org>
5397
5398 * xfns.c (x_report_frame_params): Don't report `outer-window-id'
5399 if widget not present.
5400
5401 * xdisp.c (prepare_menu_bars): Ignore tooltip frame.
5402
54031999-06-04 Gerd Moellmann <gerd@gnu.org>
5404
5405 * xfaces.c (recompute_basic_faces)[GLYPH_DEBUG]: Check return
5406 value of realize_basic_faces.
5407 (load_face_font_or_fontset): Store full font name in face.
5408 (realize_default_face): Use full font name.
5409
26901792
DL
5410 * xterm.c (x_produce_glyphs): Set member char_to_display.
5411 (x_append_glyph): Store char_to_display in glyphs.
5412
5413 * dispextern.h (struct it): Add char_to_display.
5414
5415 * xfns.c (x_set_font): Don't call face-set-after-frame-default
5416 if faces haven't been initialized.
5417 (Fx_create_frame): Call face-set-after-frame-default after
5418 faces have been initialized, and widget has been created.
5419
5420 * puresize.h (BASE_PURESIZE): Increased.
5421
54221999-06-01 Gerd Moellmann <gerd@gnu.org>
5423
5424 * xfaces.c (set_lface_from_font_name): Add parameter force_p.
5425 (Finternal_set_lisp_face_attribute): If frame is t when
5426 :font attribute is set, use the selected frame.
5427 (clear_face_cache): Add parameter clear_fonts_p.
5428 (Fclear_face_cache): Add optional parameter thorougly.
5429
5430 * xfaces.c (face_numeric_value): Return -1 if symbol is not
5431 in table.
5432 (Fclear_face_cache): New.
5433 (choose_face_fontset_font): If fontset doesn't contain font
5434 pattern for the given charset, use CHARSET_ASCII.
5435 (Finternal_set_lisp_face_attribute): Fix handling of nil
5436 stipple attribute.
5437 (Finternal_set_lisp_face_attribute): Fix handling of changing
5438 font-related face attributes of the default face.
5439 (set_lface_from_font_name): Set only attributes that aren't
5440 specified.
5441
54421999-05-31 Gerd Moellmann <gerd@gnu.org>
5443
5444 * xfaces.c (SCALABLE_FONTS): Define this to enable scalable
5445 font support.
5446 (Vscalable_fonts_allowed) [SCALABLE_FONTS]: New.
5447 (x_face_list_fonts): Add parameter scalable_fonts_p. Handle
5448 scalable fonts depending on the setting of SCALABLE_FONTS.
5449 (first_font_matching): List more than one font to find the
5450 first non-scalable matching font.
5451 (sorted_font_list): Let x_face_list_fonts return scalable fonts
5452 depending on SCALABLE_FONTS.
5453 (better_font_p): New parameter compare_pt_p. If zero, don't
5454 compare point sizes of fonts.
5455 (exact_face_match_p) [SCALABLE_FONTS]: New.
5456 (build_scalable_font_name) [SCALABLE_FONTS]: New.
5457 (may_use_scalable_font_p) [SCALABLE_FONTS]: New.
5458 (best_matching_font) [SCALABLE_FONTS]: Handle scalable fonts.
5459 (syms_of_xfaces): Add scalable-fonts-allowed.
5460
54611999-05-26 Gerd Moellmann <gerd@gnu.org>
5462
5463 * xfns.c (png_load): Let PNG lib handle gamma. Construct
5464 mask only if image contains simple transparency information.
5465 Otherwise, combine image with frame background color.
5466
5467 * configure.in (--with-png, HAVE_PNG): New.
5468
5469 * config.in (HAVE_PNG): New.
5470
5471 * Makefile.in: Add PNG library.
5472
5473 * xfns.c: Add PNG support.
5474
54751999-05-25 Gerd Moellmann <gerd@gnu.org>
5476
5477 * xdisp.c (init_xdisp): Initialize echo_area_message and
5478 previous_echo_area_message to nil.
5479
5480 * keyboard.c (read_char): Rename local variable echo_area_message
5481 because it shadows the global one.
5482
54831999-05-05 Gerd Moellmann <gerd@gnu.org>
5484
5485 * xterm.c (note_mode_line_highlight): Restructured.
5486
5487 * window.c (coordinates_in_window): Handle windows that don't have
5488 a mode line because their buffer's mode-line-format is nil.
5489 Recognize the mode line under x positions that correspond to
5490 flags areas and left scroll bar.
5491
54921999-05-02 Dave Love <fx@gnu.org>
5493
5494 * xterm.c (note_mouse_highlight): Separate help-echo processing
5495 from check on mouse-face so that it works generally.
5496
54971999-04-21 Gerd Moellmann <gerd@gnu.org>
5498
5499 * sound.c (Fplay_sound): Run hook play-sound-hook.
5500 (Qplay_sound_hook): New.
5501
55021999-04-20 Gerd Moellmann <gerd@gnu.org>
5503
5504 * xdisp.c (update_echo_area): Handle echo_area_message.
5505
55061999-04-19 Gerd Moellmann <gerd@gnu.org>
5507
5508 * editfns.c (Fmessage): Use message3.
5509
5510 * print.c (printchar): Set echo_area_message to nil.
5511 (strout): Ditto.
5512
5513 * minibuf.c (read_minibuf): Reset echo message strings to nil.
5514 (Fminibuffer_completion_help): Ditto.
5515
5516 * keyboard.c (cmd_error_internal): Set echo_areA_message.
5517 (command_loop_1): Test echo_areA_message.
5518 (read_char): Ditto.
5519 (record_menu_key): Set echo_area_message to nil.
5520 (Fexecute_extended_command): Test echo_area_message.
5521 (Fexecute_extended_command): Handle echo_area_message.
5522
5523 * fileio.c (Fdo_auto_save): Handle the case that echo_area_message
5524 is set.
5525
5526 * editfns.c (Fcurrent_message): If echo_area_message is set,
5527 return a substring of that string.
5528
5529 * dispnew.c (direct_output_for_insert): Test echo_area_message
5530 in addition to echo_area_glyphs.
5531 (set_window_cursor_after_update): Ditto.
5532 (update_frame_1): Ditto.
5533
5534 * alloc.c (Fgarbage_collect): Use message3_nolog to display
5535 old Lisp message string.
5536
5537 * xdisp.c (echo_area_message): New.
5538 (previous_echo_area_message): New.
5539 (syms_of_xdisp): Initialize and staticpro new variables.
5540 (echo_area_display): Display echo_area_message if set.
5541 (message2_nolog): Set echo_area_message and
5542 previous_echo_area_message.
5543 (echo_area_display): Set previous_echo_area_message.
5544 (redisplay_internal): Display echo area if echo_area_message
5545 or previous_echo_area_message are set.
5546 (redisplay_preserve_echo_area): Test/set echo_area_message and
5547 previous_echo_area_message.
5548 (redisplay_window): Test echo_area_message.
5549 (message3_nolog): New.
5550 (message3): New.
5551
5552 * editfns.c (Fformat): Add text properties to the result string
5553 from properties of the format string and properties of string
5554 arguments.
5555
5556 * textprop.c (text_property_list): New.
5557 (add_text_properties_from_list): New.
5558 (extend_property_ranges): New.
5559
55601999-03-29 Gerd Moellmann <gerd@gnu.org>
5561
5562 * xfaces.c (Qraised, Qsunken, QCshadow): Removed.
5563 (QCline_width, QCstyle, Qpressed_button, Qreleased_button): New.
5564 Use these symbols for the box face attribute instead of the
5565 removed ones.
5566
55671999-03-12 Gerd Moellmann <gerd@gnu.org>
5568
5569 * xfaces.c (realize_tty_face): Don't set alt_char_p of face.
5570 Correct wrong test for slant.
5571
55721999-03-10 Gerd Moellmann <gerd@gnu.org>
5573
5574 * xfaces.c: Use `unspecified' for unspecified face attributes,
5575 use t and nil for on/off.
5576
55771999-03-06 Gerd Moellmann <gerd@gnu.org>
5578
5579 * buffer.c (syms_of_buffer): Extend doc string of
5580 mode-line-format.
5581
5582 * xfaces.c (x_face_list_fonts): New parameter try_alternatives_p.
5583 (first_font_matching): New.
5584 (set_lface_from_font_name): Use it if font name is a pattern.
5585 (font_field_wildcard_p): Removed.
5586
5587 * dispnew.c (shift_glyph_matrix): Add `window' parameter.
5588 Recompute visible height of rows.
5589
5590 * xterm.c (note_mouse_highlight): Reorder code for help-echo.
5591 Don't accept non-strings for help-echo from overlays.
5592
55931999-03-04 Dave Love <fx@gnu.org>
5594
5595 * xterm.c (note_mouse_highlight): Check overlays for help-text
5596 property.
5597 (XTread_socket): Fix compiler warning.
5598
55991999-03-05 Gerd Moellmann <gerd@gnu.org>
5600
5601 * xterm.c (note_mouse_highlight): Don't restrict number of
5602 overlay to 10. Call overlays_at so that it doesn't try to
5603 extend the vector.
5604
5605 * xdisp.c (compute_line_metrics): Compute glyph row's visible
5606 height.
5607
5608 * dispnew.c (row_equal_p): Compare visible row height, only.
5609 (update_text_area): Draw whole line if visible heights of
5610 rows differ.
5611 (update_window_line): Call after_update_window_line_hook
5612 if visible row height has changed.
5613
5614 * dispextern.h (MATRIX_ROW_VISIBLE_HEIGHT): Removed.
5615 (struct glyph_row): New member visible_height.
5616
5617 * xfaces.c (font_field_wildcard_p): New.
5618 (set_lface_from_font_name): Remove parameter force_p. Accept
5619 font names containing wildcards.
5620
56211999-03-04 Gerd Moellmann <gerd@gnu.org>
5622
5623 * xterm.c (x_after_update_window_line): Clear internal border
5624 when windows_or_buffers_changed.
5625
5626 * dispextern.h (WINDOW_WANTS_MODELINE_P): Return zero if window's
5627 buffer has a nil mode_line_format.
5628
56291999-03-03 Gerd Moellmann <gerd@gnu.org>
5630
5631 * xterm.c (x_setup_relief_colors): Use either background color
5632 or specified color.
5633
5634 * xfaces.c (realize_x_face): Set face->use_box_color_for_shadows_p.
5635
5636 * dispextern.h (struct face): Add use_box_color_for_shadows_p.
5637
5638 * xterm.c (x_draw_box_rect): New.
5639 (x_draw_glyph_string_box): Renamed from
5640 x_draw_glyph_string_relief. Call x_draw_box_rect.
5641
5642 * xfns.c (QCrelief): New.
5643 (syms_of_xfns): Initialize it.
5644
5645 * dispextern.h (struct glyph): Rename left_shadow_p to
5646 left_box_line_p, right_shadow_p to right_box_line_p.
5647 (MAX_RELIEF_THICKNESS): Removed.
5648 (struct it): Rename members having `relief' in their names
5649 to contain `box' instead.
5650
5651 * xfaces.c (realize_x_face): Handle new box attribute values.
5652 (QCrelief, Qbox): Removed.
5653 (QCshadow, QCcolor, Qraised, Qsunken): New.
5654 (syms_of_xfaces): Initialize new symbols.
5655
56561999-03-02 Gerd Moellmann <gerd@gnu.org>
5657
5658 * dispextern.h (LFACE_RELIEF_INDEX): Removed.
5659
5660 * xfaces.c (LFACE_RELIEF): Removed.
5661 (merge_face_vector_with_property): Remove handling of `:relief'.
5662 (Finternal_set_lisp_face_attribute): Ditto.
5663 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
5664 (Finternal_get_lisp_face_attribute): Ditto.
5665 (realize_default_face): Ditto.
5666 (lface_hash): Don't compute hash from relief.
5667
5668 * dispextern.h (struct face): Replace member `relief' by
5669 `box_line_width'. Add member `box'.
5670 (face_box_type): New.
5671
5672 * xterm.c (x_produce_glyphs): If face has overline, add overline
5673 thickness + 1 to ascent.
5674
56751999-03-01 Gerd Moellmann <gerd@gnu.org>
5676
5677 * xterm.c (x_draw_glyph_string): Draw underline, overline,
5678 strike-through, and boxes.
5679 (x_draw_glyph_string_underline): Removed.
5680
5681 * xfaces.c (QCoverline, QCstrike_through, QCbox): New.
5682 (Qoverline, Qstrike_through, Qbox): New.
5683 (syms_of_xfaces): Define these symbols.
5684 (check_lface_attrs): Add checks for overline, strike-through,
5685 and box.
5686 (Finternal_set_lisp_face_attribute): Set new attributes.
5687 (LFACE_OVERLINE, LFACE_STRIKE_THROUGH, LFACE_BOX): New.
5688 (load_color): Handle new attributes.
5689 (realize_x_face): Ditto.
5690 (merge_face_vector_with_property): Ditto.
5691 (free_face_colors): Ditto.
5692 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
5693 (Finternal_get_lisp_face_attribute): Ditto.
5694 (Finternal_lisp_face_attribute_values): Ditto.
5695
5696 * dispextern.h (lface_attribute_index): Add enumerators for
5697 overstrike, strike-through, and box.
5698 (struct face): Add members for overline, strike-through, and
5699 box.
5700
57011999-02-17 Dave Love <fx@gnu.org>
5702
5703 * s/gnu-linux.h s/gnu.h s/irix5-0.h s/netbsd.h s/sco4.h s/sco5.h
5704 s/template.h (NARROWPROTO): Define on the basis of relevant X cf
5705 files.
5706
57071999-02-16 Gerd Moellmann <gerd@gnu.org>
5708
5709 * keyboard.c (toolbar_items): Call access_keymap with third
5710 parameter 1, so that we don't get inherited toolbar item
5711 definitions.
5712
5713 * xdisp.c (redisplay_internal): In optimization 1, don't decrement
5714 the window end vpos when in empty first line of window.
5715
57161999-02-15 Gerd Moellmann <gerd@gnu.org>
5717
5718 * xfaces.c (set_font_frame_param): New.
5719 (Finternal_set_lisp_face_attribute): Call it.
5720
5721Sun Feb 14 10:54:02 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5722
5723 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
5724 Accept specifications of color for underline.
5725
57261999-02-13 Gerd Moellmann <gerd@gnu.org>
5727
5728 * xfaces.c (Finternal_set_lisp_face_attribute): If parameter
5729 `frame' is t, operate on face defaults for new frames. If it
5730 is nil, operate on the selected frame.
5731
57321999-02-12 Gerd Moellmann <gerd@gnu.org>
5733
5734 * dispnew.c (check_matrix_invariants): Put it in #if 0.
5735 (update_window): Put the call to check_matrix_invariants in #if 0.
5736
5737Sun Feb 7 09:58:49 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5738
5739 * dispextern.h: Remove all else block of UNDERLINE_COLOR.
5740 Remove definition of UNDERLINE_COLOR.
5741
5742Mon Jan 4 04:43:41 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5743
5744 * xfaces.c (free_face_colors): Free the color for underline.
5745
5746 * xterm.c (x_draw_glyph_string_underline): Set the color for underline
5747 to the GC.
5748
5749Sun Jan 3 08:41:10 1999 Masatake Yamato <masata-y@is.aist-nara.ac.jp>
5750
5751 * dispextern.h (UNDERLINE_COLOR): Defined.
5752 (struct face): Added two new members.
5753 underline_color, underline_defaulted_p.
5754
5755 * xfaces.c (merge_face_vector_with_property):
5756 (check_lface_attrs): Accept the string value for underline.
5757 (Finternal_set_lisp_face_attribute): Likewise.
5758
5759 * xfaces.c (load_color): Change the last argument type to enum
5760 lface_attribute_index from int. And addec code for underling coloring.
5761 (load_face_colors): Pass LFACE_*_INDEX to load_color.
5762
57631999-02-12 Gerd Moellmann <gerd@gnu.org>
5764
5765 * xfns.c (Fx_image_header): Removed.
5766
57671999-02-07 Gerd Moellmann <gerd@gnu.org>
5768
5769 * xterm.c: Don't include <bitmaps/gray>.
5770 (x_term_init): Use gray_bitmap_width and gray_bitmap_height.
5771
5772 * xfns.c (Fx_image_header): Add missing `\n\'.
5773 (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits): New.
5774
57751999-02-01 Gerd Moellmann <gerd@gnu.org>
5776
5777 * xterm.c (x_scroll_bar_create): Set background pixel from
5778 specified scroll bar color.
5779 (x_scroll_bar_set_handle): Use scroll bar foreground color.
5780
5781 * xfns.c (x_set_scroll_bar_foreground): Remove all scroll bars.
5782 (x_set_scroll_bar_background): Ditto.
5783
5784 * xterm.c (x_create_toolkit_scroll_bar): Set scroll bar colors.
5785
5786 * xfns.c (x_default_scroll_bar_color_parameter): New.
5787 (Fx_create_frame): Call it.
5788
57891999-01-31 Gerd Moellmann <gerd@gnu.org>
5790
5791 * xfns.c (Fx_create_frame): Initialize scroll bar pixel color
5792 values in x_output structure.
5793 (Qscroll_bar_foreground, Qscroll_bar_background): New.
5794 (syms_of_xfns): Initialize these symbols.
5795
5796 * xterm.h (struct x_output): Add scroll bar pixel colors.
5797
5798 * xfns.c (x_frame_parms): Add entries for scroll bar colors.
5799 (x_set_scroll_bar_foreground): New.
5800 (x_set_scroll_bar_background): New.
5801
26901792
DL
58021999-01-12 Gerd Moellmann <gerd@gnu.org>
5803
5804 * xdisp.c (handle_single_display_prop): New.
5805 (handle_display_prop): Call it.
5806 (handle_raise_prop): Removed.
5807 (handle_height_prop): Removed.
5808 (handle_space_width_prop): Removed.
5809 (handle_face_prop): Remove handling of raised text.
5810 (handle_display_prop): Do it here.
5811
5812 * dispextern.h (DISPLAY_PROP_IDX): Replaces GLYPH_PROP_IDX.
5813 (RAISE_PROP_IDX): Removed.
5814 (HEIGHT_PROP_IDX): Removed.
5815 (SPACE_WIDTH_PROP_IDX): Removed.
5816
5817 * xdisp.c (Qdisplay): Replaces Qglyph.
5818 (handle_display_prop): Formerly handle_glyph_prop.
5819
58201999-01-11 Gerd Moellmann <gerd@gnu.org>
5821
5822 * xdisp.c (reseat_to_string): Set position in display vector to -1.
5823 (handle_stop): Set position in display vector to -1. Don't
5824 check overlay strings when set up to deliver characters from a
5825 display vector.
5826 (set_iterator_to_next): At the end of a run of characters from a
5827 display vector, check whether the display vector display replaces
5828 the display of a character.
5829
58301999-01-05 Gerd Moellmann <gerd@gnu.org>
5831
5832 * xfaces.c (init_frame_faces): Don't realize faces if frame's
5833 X window hasn't been created yet.
5834
58351998-12-06 Gerd Moellmann <gerd@gnu.org>
5836
5837 * sound.c: New.
5838
58391998-12-04 Gerd Moellmann <gerd@gnu.org>
5840
5841 * config.in (HAVE_SOUND): New.
5842
5843 * emacs.c (main): Call syms_of_sound and init_sound.
5844
5845 * Makefile.in (obj): Add sound.o.
5846
5847 * configure.in: Add checks for machine/soundcard.h and sys/soundcard.h.
5848
5849 * config.in (HAVE_MACHINE_SOUNDCARD_H): New.
5850 (HAVE_SYS_SOUNDCARD_H): New.
5851
58521998-12-03 Gerd Moellmann <gerd@gnu.org>
5853
5854 * buffer.h (struct buffer): indicate_empty_lines renamed from
5855 indicate_zv_lines.
5856
5857 * buffer.c (indicate-empty-lines): Renamed from indicate_zv_lines.
5858 (default-indicate-zv-lines): Likewise.
5859
5860 * dispextern.h (struct glyph_row): Rename indicate_zv_line_p
5861 to indicate_empty_line_p.
5862
5863 * xdisp.c (reseat_at_next_visible_line_start): Reset method
5864 to next_element_from_buffer.
5865
5866 * frame.c (make_frame): Set n_current_toolbar_items to 0.
5867
5868 * xdisp.c (handle_face_prop): Allow symbols of the form `N+'
5869 and `N-'.
5870
5871 * xfns.c (xbm_scan): New.
5872 (xbm_read_hexint): Removed.
5873 (xbm_read_bitmap_file_data): Use xbm_scan.
5874
5875 * fileio.c (Finsert_file_contents): Prevent redisplay optimizations.
5876
58771998-12-02 Gerd Moellmann <gerd@gnu.org>
5878
5879 * xfns.c (xbm_read_hexint): New.
5880 (xbm_read_bitmap_file_data): New.
5881 (xbm_load_image_from_file): Call xbm_read_bitmap_file_data
5882 instead of XReadBitmapFileData.
5883
5884 * xdisp.c (handle_raise_prop): Compute voffset from current font.
5885
5886 * xfaces.c (face_with_height): New.
5887
5888 * xdisp.c (eval_handler): Renamed from eval_mode_handler.
5889 (eval_form): Renamed from eval_mode_element.
5890 (handle_face_prop): Use it.
5891 (Qheight): Replaces Qsmaller.
5892 (handle_height_prop): Replaces handle_smaller_prop.
5893 (handle_face_prop): If iterator's font_height is not an
5894 integer, evaluate it to get the font height to use.
5895
5896 * dispextern.h (HEIGHT_PROP_IDX): Replaces SMALLER_PROP_IDX.
5897 (struct it): Use `font_height' instead of `smaller'.
5898
58991998-12-01 Gerd Moellmann <gerd@gnu.org>
5900
5901 * xdisp.c (reseat_1): New.
5902 (reseat): Call it.
5903 (move_it_vertically_backward): Ditto.
5904 (redisplay_window): Don't abort when cursor not found in recenter.
5905
59061998-11-30 Gerd Moellmann <gerd@gnu.org>
5907
5908 * xdisp.c (reseat_at_next_visible_line_start): When not
5909 currently delivering display elements from the current buffer,
5910 restore buffer position first.
5911 (init_from_display_pos): Don't set IT's position from the
5912 position passed to this function.
5913
59141998-11-28 Gerd Moellmann <gerd@gnu.org>
5915
5916 * config.in (PROTO): Removed.
5917
5918 * xterm.h: Change PROTO to P_.
5919
59201998-11-26 Gerd Moellmann <gerd@gnu.org>
5921
5922 * xterm.c (take_vertical_position_into_account): New.
5923 (x_produce_image_glyph): Call it.
5924 (x_produce_stretch_glyph): Ditto.
5925 (x_produce_glyphs): Ditto.
5926 (x_fill_glyph_string): Adjust base line for glyph's voffset.
5927 (x_fill_composite_glyph_string): Ditto.
5928 (x_fill_image_glyph_string): Ditto.
5929 (x_fill_stretch_glyph_string): Ditto.
5930
5931 * xdisp.c (display_line): Always compute row height from
5932 max_ascent and max_descent.
5933
5934 * dispextern.h (struct glyph): Add voffset.
5935 (struct it): Replace height by descent, max_height by max_descent.
5936
5937 * xterm.c (x_append_glyph): Set voffset
5938 (x_append_stretch_glyph): Ditto.
5939 (x_produce_image_glyph): Ditto.
5940 (x_produce_glyphs): Take voffset into account.
5941 (x_produce_image_glyph): Ditto.
5942 (x_produce_stretch_glyph): Ditto.
5943
5944 * dispextern.h (struct it): Add voffset.
5945 * xdisp.c (push_it): Save voffset.
5946 (pop_it): Restore it.
5947
5948 * xdisp.c (it_props): Add entry for `raise'.
5949 (handle_raise_prop): New.
5950
5951 * dispextern.h (RAISE_PROP_IDX): New.
5952
5953 * xdisp.c (Qraise): New.
5954 (syms_of_xdisp): Define Qraised.
5955
5956 * xterm.c (x_scroll_bar_move): Clear to the left and right
5957 of toolkit scroll bars differently.
5958 (x_scroll_bar_move): Removed.
5959 (XTset_vertical_scroll_bar): Move code from x_scroll_bar_move here.
5960
5961 * dispextern.h: Make it compilable --with-x=no.
5962 * alloc.c: Ditto.
5963 * emacs.c: Ditto.
5964 * dispnew.c: Ditto.
5965 * keyboard.c: Ditto.
5966 * term.c: Ditto.
5967 * xdisp.c: Ditto.
5968 * xfaces.c: Ditto.
5969 * xfns.c: Ditto.
5970 * xmenu.c: Ditto.
5971
59721998-11-25 Gerd Moellmann <gerd@gnu.org>
5973
5974 * xterm.c (XTread_socket): Cancel help-echo when leaving frame.
5975
59761998-11-24 Gerd Moellmann <gerd@gnu.org>
5977
5978 * xterm.c (x_set_toolkit_scroll_bar_thumb): When dragging,
5979 update slider size, only.
5980 (xm_scroll_callback): Set dragging member of the scroll bar.
5981 (xt_action_hook): Reset last_scroll_bar_part.
5982 (XTredeem_scroll_bar): Reset bar->dragging to nil.
5983
26901792
DL
5984 * xfns.c (Fx_hide_busy_cursor): Don't try to hide busy cursor
5985 window on newly created frames that don't have one.
5986
59871998-11-23 Gerd Moellmann <gerd@gnu.org>
5988
5989 * xdisp.c (restore_overlay_strings): Removed.
5990 (restore_dpvec): Removed.
5991 (init_from_display_pos): Inline both functions above.
5992
5993 * xfns.c (IMAGE_NON_NEGATIVE_INTEGER_VALUE): New.
5994 (parse_image_spec): Handle it.
5995 (xbm_format): Use it.
5996 (xpm_format): Ditto.
5997 (pbm_format): Ditto.
5998 (jpeg_format): Ditto.
5999 (tiff_format): Ditto.
6000 (gif_format): Ditto.
6001 (gs_format): Ditto.
6002
6003 * xdisp.c (set_window_cursor): Removed.
6004 (redisplay_internal): Case cursor motion in cursor line of
6005 selected window; use set_cursor_from_row.
6006
60071998-11-22 Gerd Moellmann <gerd@gnu.org>
6008
6009 * widget.c (EmacsFrameSetCharSize): Take widget's border width
6010 into account.
6011
60121998-11-21 Gerd Moellmann <gerd@gnu.org>
6013
6014 * xterm.c (expose_frame): Redraw menu bar window.
6015
6016 * xdisp.c (display_menu_bar): Record hpos instead of x-position
6017 in menu item.
6018
6019 * dispnew.c (change_frame_size_1): Use FRAME_TOP_MARGIN instead
6020 of FRAME_TOOLBAR_LINES. Use `f' instead of `frame'.
6021
6022 * widget.c (set_frame_size): Use FRAME_SCROLL_BAR_COLS
6023 to determine vertical_scroll_bar_extra.
6024 (EmacsFrameSetCharSize): Ditto.
6025 * xfns.c (x_figure_window_size): Ditto.
6026
6027 * xterm.c (x_draw_row_bitmaps): Draw in `bitmap-area' face.
6028 (x_draw_bitmap): Ditto.
6029
6030 * dispextern.h (face_id): New id BITMAP_AREA_FACE_ID.
6031 * xfaces.c (realize_basic_faces): Realize it.
6032
60331998-11-20 Gerd Moellmann <gerd@gnu.org>
6034
6035 * xmenu.c (xmenu_show): Add workaround for remaining button grab
6036 under LessTif Use the widget of the frame as parent for the
6037 menu, again.
6038
60391998-11-19 Gerd Moellmann <gerd@gnu.org>
6040
6041 * xterm.c (XTread_socket): Inhibit busy cursor for EnterNotify.
6042 When EnterNotify, don't generate a mouse movement event if
6043 notification is from a busy-cursor child window.
6044
6045 * xterm.h (struct x_output): Add busy_window, remove cursor.
6046
6047 * xfns.c (Fx_show_busy_cursor): Formerly Fx_display_busy_cursor.
6048 Use a transparent window to display the busy-cursor.
6049 (Fx_hide_busy_cursor): Formerly Fx_undisplay_busy_cursor.
6050
60511998-11-17 Gerd Moellmann <gerd@gnu.org>
6052
6053 * xdisp.c (check_window_end): New, for debugging.
6054 (CHECK_WINDOW_END): New.
6055 (try_window_id): Use it.
6056
6057 * xterm.c (process_expose_from_menu): Return int.
6058
6059 * keyboard.c (kbd_buffer_get_event): Set flag to prevent recording
6060 TOOLBAR_EVENT events in last_nonmenu_event.
6061
60621998-11-16 Gerd Moellmann <gerd@gnu.org>
6063
6064 * xdisp.c (redisplay_window): If windows_or_buffers_changed,
6065 window end isn't reliable, so set window_end_valid to nil.
6066 (redisplay_internal): If overlay arrow has changed, set
6067 windows_or_buffers_changed to redisplay thoroughly.
6068
6069 * dispnew.c (adjust_glyph_matrix): Invalidate window end, if
6070 necessary.
6071
6072 * xfns.c (file_dialog_cb): New.
6073 (Fx_file_dialog): New.
6074 * fileio.c (Fread_file_name): Call it.
6075
6076 * xrdb.c (x_load_resources): Add default resoures for file
6077 selection dialog.
6078
60791998-11-14 Gerd Moellmann <gerd@gnu.org>
6080
6081 * xterm.c (note_mouse_highlight): Don't highlight when popup
6082 is active.
6083
26901792
DL
6084 * keyboard.c (timer_check): Inhibit busy cursor around calls to
6085 timer-event-handler. This busy cursor tends to be anoying if
6086 fontifying stealthily.
6087
6088 * dispnew.c (direct_output_for_insert): Give up if current row
6089 contains trailing whitespace.
6090
60911998-11-13 Gerd Moellmann <gerd@gnu.org>
6092
6093 * dispextern.h (prop_idx): Add FONTIFIED_PROP_IDX.
6094
6095 * xdisp.c (handle_fontified_prop): New.
6096 (Vfontification_functions): New.
6097 (Qfontification_functions): New.
6098 (it_props): Add handle_fontified_prop.
6099
61001998-11-12 Gerd Moellmann <gerd@gnu.org>
6101
6102 * xmenu.c (xmenu_show): Use the frame's edit_widget as parent.
6103 Otherwise, under LessTif, after the popup has gone, all button
6104 press events come in for the frame's widget, and release events
6105 come in for the edit_widget.
6106 * xterm.c (XTread_socket): Remove workaround for that problem.
6107 (x_set_toolkit_scroll_bar_thumb): Add workaround for LessTif
6108 XmScrollBarSetValues.
6109 (SET_SAVED_MENU_EVENT): Give it statement form.
6110
26901792
DL
6111 * xfaces.c (display_message): If waiting_for_input, don't display
6112 the message.
6113
6114 * window.c (scroll_command): If not acting on current_buffer,
6115 make redisplay consider all windows.
6116
6117 * xfns.c (Fx_hide_tip): Return t if tooltip was open.
6118
6119 * xdisp.c (handle_glyph_prop): Set it->object for images to
6120 the object having the glyph property.
6121
6122 * xterm.c (x_draw_row_bitmaps): Don't draw if row is completely
6123 invisible.
6124
61251998-11-11 Gerd Moellmann <gerd@gnu.org>
6126
6127 * xterm.h (struct x_display_info): Add gray pixmap. * xterm.c
6128 (x_term_init): Create the gray pixmap.
6129 (x_setup_relief_color): Use it.
6130 (x_get_glyph_string_clip_rect): Draw a toolbar window over the
6131 internal border at the top of a frame.
6132 (x_init_glyph_string): Likewise.
6133 (x_draw_glyph_string_relief): Correct right x by 1 pixel for
6134 full-width lines.
6135 (XTflash): Don't flash the toolbar window.
6136
6137 * xterm.c (XTread_socket): Workaround for LessTif popup menus
6138 in case of ButtonPress events.
6139
61401998-11-10 Gerd Moellmann <gerd@gnu.org>
6141
6142 * xrdb.c (x_load_resources): Add grey background colors as
6143 defaults for menus, scroll bars, and dialogs.
6144
6145 * insdel.c (prepare_to_modify_buffer): Move setting
6146 windows_or_buffers_changed from modify_region here.
6147
6148 * xfns.c (Fx_show_tip): Inhibit redisplay.
6149 (Fx_hide_tip): Ditto.
6150 (Fx_image_header): New.
6151
61521998-11-09 Gerd Moellmann <gerd@gnu.org>
6153
6154 * dispnew.c (clear_window_matrices): Set window_end_valid to nil
6155 when clearing current window matrices.
6156
61571998-11-08 Gerd Moellmann <gerd@gnu.org>
6158
6159 * xdisp.c (handle_glyph_prop): Don't set an iterator's buffer
6160 position from a string position. Use the right end position
6161 if the property spans a whole overlay string.
6162
61631998-11-07 Gerd Moellmann <gerd@gnu.org>
6164
6165 * xmenu.c (menubar_selection_callback): Remove workaround for
6166 Lesstif not calling XmNpopdownCallback because it doesn't
6167 handle the case where users don't select any menu item.
6168
26901792
DL
6169 * insdel.c (modify_region): Set windows_or_buffers_changed.
6170
6171 * buffer.c (set_buffer_internal): Don't set
6172 windows_or_buffers_changed.
6173
26901792
DL
6174 * xmenu.c (HAVE_BOXES): Define if USE_X_TOOLKIT.
6175
26901792
DL
6176 * xmenu.c (menubar_selection_callback): Add workaround for
6177 Lesstif not calling XmNpopdownCallback.
6178
6179 * xdisp.c (eval_mode_element): New.
6180 (eval_mode_handler): New.
6181 (display_mode_element): Use eval_mode_element.
6182
6183 * xdisp.c (display_mode_element): Allow `(:eval FORM)'.
6184 Remove code looking at text props of default value.
6185
6186 * xmenu.c (HAVE_BOXES): Define if using Lucid menus.
6187
26901792
DL
61881998-11-06 Gerd Moellmann <gerd@gnu.org>
6189
6190 * xmenu.c (single_submenu): Set button_type of menu to
6191 BUTTON_TYPE_NONE.
6192 (single_submenu): Likewise for panes and menu items.
6193 (set_frame_menubar): Set button_type of menu bar to none.
6194 (xmenu_show): Likewise.
6195 (single_submenu): Set widget values selected slot.
6196 (xmenu_show): Likewise.
6197
26901792
DL
6198 * xmenu.c (push_menu_item): Add parameters `type' and
6199 `selected'. Store it in menu_items.
6200 (MENU_ITEMS_ITEM_TYPE): New.
6201 (MENU_ITEMS_ITEM_SELECTED): New.
6202 (MENU_ITEMS_ITEM_LENGTH): Increase by two.
6203
6204 * xfns.c (clear_image_cache): Get the current time, before
6205 doing anything.
6206 (cache_image): Set prev pointer of next image.
6207 (clear_image_cache): Clear current matrices if any image was
6208 freed.
6209
6210 * xterm.c (XTread_socket): Set inhibit_busy_cursor.
6211
6212 * xfns.c (x_set_cursor): New.
6213 (Fx_display_busy_cursor): New.
6214 (Fx_undisplay_busy_cursor): New.
6215
6216 * xterm.h (struct x_output): Add busy_cursor.
6217
6218 * xfns.c (Vx_busy_pointer_shape): New.
6219 (x_set_mouse_color): Create busy cursor.
6220
6221 * process.c (wait_reading_process_input): Show and hide busy
6222 cursor.
6223
6224 * keyboard.c (command_loop_1): Display busy cursor.
6225
6226 * eval.c (Fsignal): Hide busy cursor.
6227
6228 * buffer.c (set_buffer_internal): Don't set
6229 windows_or_buffers_changed.
6230
6231 * xterm.c (redo_mouse_highlight): New.
6232
62331998-11-04 Gerd Moellmann <gerd@gnu.org>
6234
26901792
DL
6235 * xfns.c (x_create_x_image_and_pixmap): Add depth parameter.
6236 (x_build_heuritic_mask): New.
6237 (lookup_image): Call it.
6238
6239 * xterm.c (note_toolbar_highlight): Always set up help_echo.
6240 (previous_help_echo): New.
6241 (XTread_socket): Generate help event with nil message when
6242 leaving a region with help-echo.
6243 (note_mouse_highlight): Handle `help-echo' over text.
6244 (XTread_socket): Dispatch VisibilityNotify, CirculateNotify,
6245 CirculateRequest.
6246 (clear_mouse_face): Don't clear if tooltip is shown.
6247 (XTread_socket): Redo mouse-highlight after tooltip is gone.
6248 Avoid SET_FRAME_GARBAGED when tooltip is mapped.
6249
6250 * keyboard.c (Vshow_help_function): New.
6251 (read_char): Use it.
6252
62531998-11-03 Gerd Moellmann <gerd@gnu.org>
6254
6255 * xfns.c (x_create_tip_frame): New.
6256 (Fx_show_tip): New.
6257 (Fx_hide_tip): New.
6258
6259 * xterm.c (x_destroy_window): Handle case that we don't have
6260 a widget.
6261
6262 * dispextern.h (struct glyph_row): Rename no_marginal_areas_p
6263 to full_width_p. Add internal_border_p.
6264
62651998-11-02 Gerd Moellmann <gerd@gnu.org>
6266
6267 * xterm.c (note_mode_line_highlight): Check the charpos of
6268 the glyph under the mouse pointer before accessing text
6269 properties at that position.
6270
62711998-11-01 Gerd Moellmann <gerd@gnu.org>
6272
6273 * xterm.c (x_draw_image_relief): Handle toolbar_button_relief.
6274
6275 * xdisp.c (auto-raise-toolbar-buttons): New.
6276 (build_desired_toolbar_string): Handle the flag.
6277 (toolbar-button-margin): New.
6278 (toolbar-button-relief): New.
6279 (build_desired_toolbar_string): Use margin and relief.
6280
6281 * xterm.c (x_set_toolkit_scroll_bar_thumb): Remove workaround
6282 for FreeBSD.
6283 (note_mode_line_highlight): New.
6284 (note_mouse_highlight): Call it.
6285
62861998-10-31 Gerd Moellmann <gerd@gnu.org>
6287
6288 * s/freebsd.h (NARROWPROTO): New.
6289
6290 * xdisp.c (display_string): New parameter face_string.
6291 (display_mode_element): When displaying a symbol with a string
6292 value, use text properties from the symbol's default value, maybe.
6293
6294 * xrdb.c (x_load_resources): Add font defaults for menus and
6295 dialogs.
6296
62971998-10-30 Gerd Moellmann <gerd@gnu.org>
6298
6299 * xfns.c (Fx_create_frame): Try 12pt Courier font first.
6300
63011998-10-29 Gerd Moellmann <gerd@gnu.org>
6302
6303 * xterm.c (x_produce_glyphs): Fix bug causing glyphs to be
6304 produced for characters with codes < 32 under certain
6305 circumstances.
6306
6307 * xdisp.c (redisplay_window): Handle values of PT in front
6308 of invisible, intangible text.
6309 (try_window_id): Set overlay_arrow_seen to zero before
6310 displaying lines.
6311 (display_mode_element): Assign to glyphs written for a mode
6312 line spec `%x' as object the Lisp format string, as position
6313 the position of the `%' in that string.
6314 (display_string): If displaying a C string, optionally get
6315 the face to use from a Lisp string.
6316
6317 * xterm.c (expose_window_tree): Include mode line height.
6318
6319 * xfns.c (Fx_create_frame): Add toolbar height to frame height.
6320
63211998-10-27 Gerd Moellmann <gerd@gnu.org>
6322
6323 * xterm.c (note_mouse_highlight): Change mouse pointer shape
6324 over mode line.
6325
63261998-10-26 Gerd Moellmann <gerd@gnu.org>
6327
6328 * window.c (coordinates_in_window): Use CURRENT_MODE_LINE_HEIGHT.
6329
6330 * xdisp.c (redisplay_window): If mode line height has changed,
6331 arrange for a thorough immediate redisplay using the correct mode
6332 line height.
6333 (window_box_height): Use CURRENT_MODE_LINE_HEIGHT.
6334
6335 * dispextern.h (MATRIX_MODE_LINE_HEIGHT): New.
6336 (CURRENT_MODE_LINE_HEIGHT): New.
6337 (DESIRED_MODE_LINE_HEIGHT): New.
6338
6339 * keyboard.c (make_lispy_event): Add string and string position
6340 info to mouse-click events.
6341 (read_key_sequence): Handle `local-map' property of mode line
6342 strings.
6343
6344 * keyboard.h (POSN_STRING): New.
6345
63461998-10-25 Gerd Moellmann <gerd@gnu.org>
6347
6348 * dispnew.c (mode_line_string): Mew.
6349
6350 * xterm.c (xt_action_hook): New.
6351 (x_create_toolkit_scroll_bar): Add action hook.
6352 (xm_scroll_callback): Implement dragging.
6353
6354 * keyboard.c (Qend_scroll): New.
6355 (scroll_bar_parts): Add it.
6356
6357 * termhooks.h (scroll_bar_end_scroll): New.
6358
6359 * xterm.c (XTread_socket): Bug fix.
6360
63611998-10-24 Gerd Moellmann <gerd@gnu.org>
6362
6363 * xdisp.c (redisplay_window): Finish scroll bars after
6364 redisplaying toolbar.
6365
6366 * keyboard.c (scroll_bar_parts): Add Qtop and Qbottom.
6367 (syms_of_keyboard): Add Qbottom.
6368
6369 * termhooks.h (scroll_bar_to_top): New.
6370 (scroll_bar_to_bottom): New.
6371
6372 * xdisp.c (redisplay_window): Always resize toolbar window if
6373 auto_resize_toolbar_p is non-zero.
6374 (auto_resize_toolbar_p): Renamed from auto_resize_toolbar.
6375 (window_box): New.
6376 (window_box_height): New.
6377 (window_box_width): New.
6378 (window_box_left): New.
6379 (window_box_right): New.
6380 (window_box_edges): New.
6381
63821998-10-23 Gerd Moellmann <gerd@gnu.org>
6383
6384 * xterm.c (x_set_toolkit_scroll_bar_thumb): Kluge for call to
6385 XawScrollbarSetThumb in FreeBSD.
6386 (x_create_toolkit_scroll_bar): Set resource "beNiceToColormap"
6387 to true.
6388
6389 * window.c (get_phys_cursor_glyph): Return null if cursor vpos
6390 is out of range.
6391
6392 * xterm.c (x_create_toolkit_scroll_bar): Set scroll_bar_pixel.
6393 (x_term_init): Initialize it.
6394
6395 * xterm.h (struct x_display_info): Add scroll_bar_pixel.
6396
6397 * xterm.c (x_create_toolkit_scroll_bar): Set LessTif scroll bar's
6398 cursor.
6399
64001998-10-22 Gerd Moellmann <gerd@gnu.org>
6401
6402 * keyboard.c (make_lispy_event): Handle scroll_bar_click
6403 differently when using toolkit scroll bars.
6404
6405 * xterm.c (x_send_scroll_bar_event): New.
6406 (x_scroll_bar_to_input_event): New.
6407 (xaw3d_scroll_callback): New.
6408 (xaw3d_jump_callback): New.
6409 (xm_scroll_callback): New.
6410 (x_toolkit_scroll_p): New.
6411 (XTread_socket): Handle scroll bar client message.
6412 (x_term_init): Initialize Xatom_Scrollbar.
6413 (x_scroll_bar_create): Set cursor.
6414 (xm_scroll_callback):
6415 (x_create_toolkit_scroll_bar): New.
6416 (x_set_toolkit_scroll_bar_thumb): New.
6417 (x_scroll_bar_create): Call x_create_toolkit_scroll_bar.
6418 (XTset_vertical_scroll_bar): Call x_set_toolkit_scroll_bar_thumb.
6419
6420 * xterm.h (struct x_display_info): Add Xatom_Scrollbar.
6421
64221998-10-21 Gerd Moellmann <gerd@gnu.org>
6423
6424 * xterm.c (x_scroll_bar_remove): Handle toolkit scroll bars.
6425 (XTread_socket): Don't handle mouse button events for scroll bars
6426 if using toolkit scroll bars.
6427 (XTset_vertical_scroll_bar): Set thumb size and position for
6428 Athena scroll bar.
6429
6430 * xterm.h (scroll_bar): Add x_widget_low and x_widget_high.
6431
6432 * xterm.c (XTread_socket): Dispatch expose event to widget
6433 if using toolkit scroll bars.
6434 (x_scroll_bar_expose): Make no-op for toolkit scroll bars.
6435 (x_scroll_bar_create): Create and show a scroll bar widget
6436 if using toolkit scroll bars.
6437 (x_scroll_bar_move): Handle tookit scroll bars.
6438
6439 * Makefile.in (LIBW): Use Xaw3d if present.
6440
6441 * configure.in (USE_TOOLKIT_SCROLL_BARS): New.
6442 (HAVE_XAW3D): New.
6443
6444 * config.in (USE_TOOLKIT_SCROLL_BARS): New.
6445 (HAVE_XAW3D): New.
6446
6447 * xterm.c (XTset_vertical_scroll_bar): Correct position of
6448 right vertical scroll bar.
6449
64501998-10-20 Gerd Moellmann <gerd@gnu.org>
6451
6452 * xfns.c (xpm_load): Support reading XPM images from string
6453 buffers containing data in the same format as an XPM file.
6454 Support `:color-symbols'.
6455 (xpm_format): Add `:data'.
6456 (xpm_keyword_index): Add XPM_DATA.
6457 (syms_of_xfns): Add `:color-symbols'.
6458 (xpm_keyword_index): Add XPM_COLOR_SYMBOLS.
6459 (xpm_valid_color_symbols_p): New.
6460 (xpm_image_p): Call it.
6461
6462 * xdisp.c (build_desired_toolbar_string): Add `:algorithm'
6463 attribute to the image if item is not enabled.
6464
6465 * xfns.c (x_laplace): New.
6466 (x_laplace_read_row): New.
6467 (x_laplace_write_row): New.
6468 (lookup_image): Handle common image attributes here. New
6469 attribute `:algorithm'.
6470
6471 * xfaces.c (clear_face_cache): Call clear_image_cache.
6472
6473 * xterm.c (x_inverted_image_mask): Removed.
6474 (x_draw_image_foreground_1): New.
6475 (x_draw_image_glyph_string): Draw images with mask to a temporary
6476 pixmap to reduce flickering.
6477
6478 * xdisp.c (redisplay_toolbar): Handle auto-resize-toolbars.
6479 (display_toolbar_line): Remove parameter `margin'.
6480
64811998-10-19 Gerd Moellmann <gerd@gnu.org>
6482
6483 * xdisp.c (toolbar_lines_needed): New.
6484 (auto-resize-toolbars): New.
6485
6486 * xfns.c (cache_image): Correct call to xrealloc.
6487
6488 * dispnew.c (Fset_toolbar_height): Removed.
6489
6490 * xdisp.c (init_xdisp): Use FRAME_TOP_MARGIN instead of
6491 FRAME_MENU_BAR_LINES.
6492
6493 * window.c (Fdelete_other_windows): Use FRAME_TOP_MARGIN
6494 instead of FRAME_MENU_BAR_LINES.
6495 (check_frame_size): Ditto.
6496
6497 * dispnew.c (adjust_frame_glyphs_initially): Use FRAME_TOP_MARGIN
6498 instead of FRAME_MENU_BAR_LINES.
6499 (adjust_frame_glyphs_for_frame_redisplay): Ditto.
6500 (build_frame_matrix): Ditto.
6501 (change_frame_size_1): Ditto.
6502
6503 * frame.h (FRAME_TOOLBAR_LINES): New.
6504 (FRAME_TOP_MARGIN): New.
6505
6506 * window.c (struct save_window_data): Add frame_toolbar_lines.
6507 (Fset_window_configuration): Handle toolbar lines.
6508 (Fcurrent_window_configuration): Save toolbar lines.
6509
6510 * frame.c (syms_of_frame_1): Add Qtoolbar_lines.
6511
6512 * xfns.c (Fx_create_frame): Add default parameter for toolbar.
6513
6514 * frame.h (struct frame): Rename top_margin to toolbar_lines.
6515
6516 * xfns.c (x_frame_parms): Add `toolbar-lines'.
6517 (x_set_toolbar_lines): New.
6518
6519 * keyboard.c (cmd_error_internal): Bug fix.
6520
6521 * xterm.c: Remove double include of syssignal.h.
6522
65231998-10-18 Gerd Moellmann <gerd@gnu.org>
6524
6525 * xterm.c (x_toolbar_item): New.
6526 (x_handle_toolbar_click): Use it.
6527 (note_toolbar_highlight): Use it.
6528
6529 * keyboard.c (syms_of_keyboard): Staticpro toolbar_item_properties
6530 and toolbar_items_vectors.
6531
6532 * xterm.c (help_echo): New.
6533 (draw_glyphs_face): Add DRAW_IMAGE_RAISED and DRAW_IMAGE_SUNKEN.
6534 (x_set_glyph_string_gc): Handle them.
6535 (x_after_update_window_line): Don't do anything in pseudo-windows.
6536 (x_produce_image_glyph): Take image margin and face relief into
6537 account.
6538 (x_get_glyph_string_clip_rect): Handle pseudo-windows.
6539 (x_draw_glyph_string_background): Optimize case when face has
6540 relief.
6541 (x_setup_relief_color): Take frame instead of glyph string
6542 parameter.
6543 (x_draw_relief_rect): New.
6544 (x_draw_glyph_string_relief): Call it.
6545 (x_draw_image_glyph_string_foreground): Handle margin and image
6546 relief.
6547 (x_draw_image_glyph_string_background): Ditto.
6548 (expose_frame): Redraw toolbar window.
6549 (expose_window): Don't draw cursor for pseudo-windows.
6550 (x_y_to_hpos_vpos): Handle pseudo-windows.
6551 (frame_to_window_pixel_xy): New.
6552 (note_mouse_highlight): Call note_toolbar_highlight.
6553 (x_handle_toolbar_click): New.
6554 (note_toolbar_highlight): New.
6555 (show_mouse_face): Change int parameter `hl' to parameter of
6556 type enum draw_glyphs_face. Handle image highlighting.
6557 (XTread_socket): Return a HELP_EVENT input event if help_echo is
6558 non-nil. Use x_handle_toolbar_click.
6559
6560 * termhooks.h (event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
6561
6562 * xfns.c (image_value_type): Add IMAGE_INTEGER_VALUE,
6563 IMAGE_BOOL_VALUE.
6564 (parse_image_spec): Handle them.
6565 (image_spec_value): Additional parameter found.
6566 (free_image): Remove image from the vector `images' of the
6567 image cache.
6568 (clear_image_cache): Additional parameter force_p.
6569 (Fclear_image_cache): New.
6570 (x_find_image_file): New.
6571 (xbm_load): Handle `:margin' and `:relief'. Use
6572 x_find_image_file.
6573 (xpm_load): Likewise.
6574 (pbm_load): Likewise.
6575 (jpeg_load): Likewise.
6576 (tiff_load): Likewise.
6577 (gif_load): Likewise.
6578
6579 * keyboard.c (Qhelp_echo): New symbol.
6580 (read_char): Handle `toolbar' and `help_echo' events.
6581 (kbd_buffer_get_event): Handle HELP_ECHO input event.
6582 (make_lispy_event): Handle TOOLBAR_EVENT.
6583 (toolbar_items): New.
6584 (process_toolbar_item): New.
6585 (PROP): New.
6586 (init_toolbar_items): New.
6587 (append_toolbar_item): New.
6588 (read_char_x_menu_prompt): Handle `toolbar' event.
6589 (read_key_sequence): Ditto.
6590
6591 * xfaces.c (Qtoolbar): New.
6592 (realize_basic_faces): Realize `toolbar' face.
6593 (face_at_string_position): Remove parameter modeline_p, add
6594 base_face_id.
6595
6596 * xfns.c (xbm_load_image_from_file): Don't use Xmu function
6597 to read data.
6598
65991998-10-17 Gerd Moellmann <gerd@gnu.org>
6600
6601 * xdisp.c (init_iterator): Replace parameter modeline_p with
6602 base_face_id.
6603 (next_element_from_string): Call get_next_display_element
6604 recursively after handling text properties.
6605 (prepare_menu_bars): Call update_toolbar.
6606 (update_toolbar): New.
6607 (build_desired_toolbar_string): New.
6608 (display_toolbar_line): New.
6609 (redisplay_toolbar): New.
6610 (toolbar_item_info): New.
6611 (redisplay_window): Call redisplay_toolbar.
6612 (Fdump_toolbar_row): New. Defined if compiled with GLYPH_DEBUG.
6613
6614 * dispnew.c (clear_current_matrices): Clear matrices of toolbar
6615 window.
6616 (clear_desired_matrices): Ditto.
6617 (adjust_frame_glyphs_for_window_redisplay): Make toolbar window.
6618 (free_glyphs): Free matrices of toolbar window.
6619 (update_frame): Update toolbar window.
6620 (change_frame_size_1): Take toolbar into account.
6621 (Fset_toolbar_height): New.
6622
6623 * dispextern.h (struct it): Remove member modeline_p, add
6624 base_face_id.
6625 (struct image): Add members relief and margin.
6626 (IMAGE_ASCENT): Include margin in height.
6627
66281998-10-14 Gerd Moellmann <gerd@gnu.org>
6629
6630 * xfns.c (Fclear_image_cache): New.
6631
6632 * xfaces.c (realize_basic_faces): Realize toolbar face.
6633 (face_at_string_position): Remove parameter modeline_p, add
6634 base_face_id.
6635
6636 * dispextern.h (enum face_id): Add TOOLBAR_FACE_ID.
6637
66381998-10-13 Gerd Moellmann <gerd@gnu.org>
6639
6640 * keyboard.c (syms_of_keyboard): Intern `:help'.
6641
66421998-10-12 Gerd Moellmann <gerd@gnu.org>
6643
6644 * xterm.c (note_toolbar_highlight): New.
6645 (note_mouse_highlight): Call it.
6646
6647 * window.c (window_from_coordinates): Additional parameter toolbar_p.
6648 (coordinates_in_window): Handle toolbar window.
6649
6650 * keyboard.c (toolbar_items): New.
6651 (process_toolbar_item): New.
6652 (parse_toolbar_item): New.
6653 (init_toolbar_items): New.
6654 (append_toolbar_item): New.
6655
6656 * dispextern.h (enum toolbar_item_idx): New.
6657 (enum toolbar_item_image): New.
6658
6659 * frame.h (struct frame): Add toolbar-related members.
6660
6661 * xfaces.c (face_at_string_position): Remove assertion that
6662 current_buffer == window's buffer. This is not the case when
6663 called for the toolbar window.
6664
6665 * frame.c (make_frame): Initialize toolbar members.
6666
6667 * alloc.c (mark_object): Mark toolbar data of frames.
6668
6669 * frame.h (struct frame): Add toolbar-related members
6670 toolbar_window, desired_toolbar_items, current_toolbar_items,
6671 desired_toolbar_string, current_toolbar_string,
6672 n_desired_toolbar_items, n_current_toolbar_items. Add
6673 window_height.
6674
6675 * xterm.c (x_after_update_window_line): Don't draw bitmap
6676 areas for pseudo-windows.
6677 (expose_frame): Handle toolbar window.
6678 (expose_window): Don't do cursor stuff for pseudo-windows.
6679
6680 * xdisp.c (display_menu_bar): Correct calls to init_iterator.
6681
66821998-10-11 Gerd Moellmann <gerd@gnu.org>
6683
6684 * frame.c (make_frame): Initialize toolbar_window.
6685
6686 * alloc.c (mark_object): Make the toolbar window.
6687
6688 * dispnew.c (update_frame): Update frame's toolbar_window.
6689 (clear_current_matrices): Likewise.
6690 (clear_desired_matrices): Likewise.
6691 (adjust_frame_glyphs_for_window_redisplay): Make toolbar_window.
6692 (free_glyphs): Free the toolbar window and its matrices.
6693
6694 * frame.h (struct frame): Add toolbar_window.
6695
6696 * xterm.c (x_draw_glyph_string_relief): Handle mouse-face
6697 with relief.
6698
66991998-10-10 Gerd Moellmann <gerd@gnu.org>
6700
6701 * dispnew.c (buffer_posn_from_coords): Don't screw up if
6702 window start is not in the range BEGV..ZV.
6703
67041998-10-09 Gerd Moellmann <gerd@gnu.org>
6705
6706 * xdisp.c (try_scrolling): Experimentally handle the case
6707 that scroll-preserve-screen-position is set to `always'.
6708
6709 * window.c (Vscroll_preserve_screen_position): Replacement for
6710 scroll_preserve_screen_position.
6711
67121998-10-08 Gerd Moellmann <gerd@gnu.org>
6713
6714 * dispnew.c: Don't initialize auto structs; the HP/UX compiler
6715 doesn't like it.
6716 * xdisp.c: Ditto.
6717
6718 * xdisp.c (make_cursor_line_fully_visible): Adjust this_line_y.
6719
67201998-10-06 Gerd Moellmann <gerd@gnu.org>
6721
6722 * minibuf.c (Fminibuffer_complete_word): Fix computation of
6723 i_byte when prompts are inserted into minibuffers.
6724
6725 * dispextern.h (FRAME_INTERNAL_BORDER_WIDTH_SAFE): New.
6726 (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X): Use it.
6727 (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y): Ditto.
6728
67291998-10-04 Gerd Moellmann <gerd@gnu.org>
6730
6731 * xdisp.c (make_cursor_line_fully_visible): New.
6732 (try_scrolling): New.
6733 (redisplay_window): Move scrolling code to try_scrolling.
6734 (make_cursor_line_fully_visible): Handle case of window too small
6735 to show a single line.
6736 (redisplay_window): Case forced window start---use
6737 make_cursor_line_fully_visible.
6738 (redisplay_window): Case cursor movement via current matrix.
6739 If ending up on a partially visible line, make it fully visible
6740 instead of recentering.
6741 (try_scrolling): Additional parameter scroll_smoothly.
6742
6743 * xterm.c (x_draw_bitmap): Don't XClearArea under the pixmap.
6744
67451998-09-28 Gerd Moellmann <gerd@gnu.org>
6746
6747 * window.c (window_scroll_pixel_based): Bug fix: vpos used
6748 instead of y-position for scroll-preserved-screen-position.
6749
67501998-09-07 Gerd Moellmann <gerd@gnu.org>
6751
6752 * dispnew.c (update_frame_line): If current row is not enabled,
6753 write the whole line.
6754
67551998-09-06 Gerd Moellmann <gerd@gnu.org>
6756
6757 * lisp.h (HAVE_FACES): Removed.
6758
6759 * dispextern.h (HAVE_FACES): Removed.
6760
6761 * config.in (HAVE_FACES): Removed.
6762
6763 * dispnew.c (HAVE_FACES): Removed.
6764
6765 * xdisp.c (HAVE_FACES): Removed.
6766
6767 * xfaces.c (HAVE_FACES): Removed.
6768
67691998-09-05 Gerd Moellmann <gerd@gnu.org>
6770
6771 * xdisp.c (init_iterator): If face_change_count is non-zero,
6772 free realized faces.
6773
6774 * xfaces.c (free_all_realized_faces): Make it externally visible.
6775 (Finternal_set_lisp_face_attribute): Increment
6776 windows_or_buffers_changed.
6777
6778 * dispnew.c (direct_output_for_insert): Give up if
6779 face_change_count is non-zero.
6780 (direct_output_forward_char): Ditto.
6781
6782 * xfaces.c (face_change_count): New.
6783
67841998-09-04 Gerd Moellmann <gerd@gnu.org>
6785
6786 * xterm.c (x_draw_bar_cursor): Don't draw if cursor hpos is out
6787 of range.
6788
67891998-09-03 Gerd Moellmann <gerd@gnu.org>
6790
6791 * term.c (Ftty_display_color_p): New.
6792
67931998-09-02 Gerd Moellmann <gerd@gnu.org>
6794
6795 * xfaces.c (Ftty_defined_colors): New.
6796
6797 * xterm.c (x_produce_glyphs): Fix computation of
6798 contains_overlapping_glyphs_p for ASCII.
6799
6800 * dispnew.c (Fshow_cursor): Don't change cursor state while
6801 redisplaying.
6802 (direct_output_for_insert): If a glyph with lbearing or rbearing
6803 is among the new glyphs, set row flag contains_overlapping_glyph_p.
6804
68051998-09-01 Gerd Moellmann <gerd@gnu.org>
6806
6807 * term.c (OUTPUT_IF): Make replacement text have statement form.
6808 (OUTPUT1_IF): Ditto.
6809 (TS_italic_mode, TS_end_italic_mode): Removed.
6810 (TS_bold_mode): Removed.
6811 (TS_underscore_mode, TS_end_underscore_mode): Removed.
6812 (TS_enter_bold_mode, TS_enter_dim_mode, TS_enter_blink_mode): New.
6813 (TS_enter_reverse_mode): New.
6814 (TS_enter_underline_mode, TS_exit_underline_mode): New.
6815 (TN_magic_cookie_glitch_ul): New.
6816 (TS_enter_alt_charset_mode, TS_exit_alt_charset_mode): New.
6817 (TS_exit_attribute_mode): New.
6818 (TN_max_colors, TN_max_pairs, TS_orig_pairs): New.
6819 (TS_set_foreground, TS_set_background): New.
6820 (reset_terminal_modes): Switch colors back to default.
6821 (write_glyphs): Turn face on before writing text, turn it off
6822 afterwards.
6823 (insert_glyphs): Ditto.
6824 (term_init): Initialize new terminal capability variables.
6825 (turn_on_face): Turn a face on.
6826 (turn_off_face): Turn a face off.
6827
6828 * lisp.h (MAKE_GLYPH): Remove test for frame type.
6829 (GLYPH_CHAR): Ditto.
6830 (GLYPH_FACE): Ditto.
6831
6832 * xfaces.c (Vface_tty_color_alist): New.
6833 (face-register-tty-color): New.
6834 (face-clear-tty-colors): New.
6835
6836 * dispextern.h (FACE_TTY_DEFAULT_COLOR): New.
6837 (struct it): Remove member faces_p since we now always have faces.
6838
68391998-08-31 Gerd Moellmann <gerd@gnu.org>
6840
6841 * dispextern.h (struct face): Add tty appearance flags.
6842
6843 * xdisp.c (init_iterator): Always handle faces.
6844 (extend_face_to_end_of_line): Handle tty frames.
6845
6846 * dispnew.c (clear_glyph_matrix): Allow a null matrix to be
6847 passed in.
6848
68491998-08-30 Gerd Moellmann <gerd@gnu.org>
6850
6851 * xfaces.c (realize_default_face): Use empty strings to indicate
6852 that the face should use the default foreground/background
6853 color of the terminal. Fill font-related attributes with
6854 appropriate values for tty frames.
6855
6856 * emacs.c (main): Call syms_of_xfaces before init_window_once.
6857
6858 * xfaces.c (realize_default_face): If face `default' is not
6859 yet known, create it.
6860
6861 * frame.c (make_terminal_frame): Call init_frame_faces
6862 unconditionally.
6863
6864 * xfaces.c (init_frame_faces): Make it work for tty frames.
6865 (free_frame_faces): Ditto.
6866 (clear_face_cache): Ditto.
6867 (recompute_basic_faces): Ditto.
6868 (Fframe_face_alist): Ditto.
6869 (free_realized_face): Ditto.
6870 (prepare_face_for_display): Ditto.
6871 (clear_face_gcs): Ditto.
6872 (lookup_face): Ditto.
6873 (smaller_face): Ditto.
6874 (realize_default_face): Ditto.
6875 (realize_face): Ditto.
6876 (realize_face): Dispatch to functions depending on the frame type.
6877 (realize_x_face): X way of realizing faces.
6878 (realize_tty_face): TTY way of realizing faces.
6879
68801998-08-29 Gerd Moellmann <gerd@gnu.org>
6881
6882 * xfaces.c (realize_face): Remove parameter unibyte_registry,
6883 compute it instead.
6884 (lookup_face): Remove local variable unibyte_registry.
6885
68861998-08-22 Gerd Moellmann <gerd@gnu.org>
6887
6888 * xterm.c (x_draw_glyph_string_relief): Draw top and bottom lines
6889 1 pixel longer.
6890
6891 * xdisp.c (face_before_or_after_it_pos): Fix computation
6892 of face in buffer.
6893
6894 * editfns.c (make_buffer_string_both): If prompt in buffer,
6895 prevent start > end.
6896
6897 * indent.c (Fvertical_motion): Set current_buffer to window's
6898 buffer if it isn't already.
6899
69001998-08-21 Gerd Moellmann <gerd@gnu.org>
6901
6902 * dispextern.h (GLYPH_DEBUG): Use default 0.
6903
6904 * xdisp.c (it_props): New member `smaller'.
6905 (init_iterator): Initialize it.
6906 (Qsmaller): New.
6907 (push_it): Save value of `smaller' value on the stack.
6908 (pop_it): Restore `smaller' from the stack.
6909 (handle_smaller_prop): New.
6910 (handle_face_prop): Use `smaller' text property to select a
6911 suitable face.
6912
6913 * dispextern.h (SMALLER_PROP_IDX): New.
6914 (struct it): Add member `smaller'.
6915
6916 * xfaces.c (smaller_face): New.
6917
6918 * frame.h (FRAME_WINDOW_WIDTH_ARG): Add bitmap area widths.
6919
6920 * dispnew.c (allocate_matrices_for_window_redisplay): Compute
6921 total pixel width of window differently.
6922
6923 * xdisp.c (init_iterator): Compute width of mode line differently.
6924
6925 * dispextern.h (WINDOW_DISPLAY_PIXEL_WIDTH): Subtract width
6926 of bitmap areas.
6927
6928 * window.c (Fsplit_window): Include width of bitmap areas in
6929 window width.
6930 (window_internal_width): Subtract width of bitmap areas from
6931 total width.
6932
69331998-08-18 Gerd Moellmann <gerd@gnu.org>
6934
6935 * xdisp.c: Functions reordered for better readability.
6936
6937 * dispnew.c (update_text_area): Handle glyphs with arbitrary
6938 lbearing.
6939 (update_window_tree): Parameter no_scrolling_p removed.
6940 (update_single_window): Ditto.
6941
6942 * xterm.c (x_get_char_font_and_encoding): Renamed to
6943 x_get_char_face_and_encoding.
6944
6945 * dispnew.c (update_text_area): Don't call get_glyph_overhangs
6946 if end of current row reached.
6947
6948 * xterm.c (x_get_glyph_face_and_encoding): New.
6949 (x_get_glyph_overhangs): Call it.
6950
6951 * xdisp.c (Qshow_trailing_whitespace): New.
6952 (Qtrailing_whitespace): New.
6953 (enum prop_handled): New.
6954 (struct props, it_props): New.
6955 (next_overlay_change): New. Works like Fnext_overlay_change
6956 but doesn't use xmalloc.
6957 (handle_stop): Restructured.
6958 (face_before_or_after_it_pos): Case iteration over a string: fix
6959 handling of face before current position.
6960
69611998-08-16 Gerd Moellmann <gerd@gnu.org>
6962
6963 * dispnew.c (adjust_glyph_matrix): Don't optimize matrix
6964 reallocation matrix if fonts_changed_p.
6965 (update_text_area): Handle glyphs with lbearing.
6966
69671998-08-14 Gerd Moellmann <gerd@gnu.org>
6968
6969 * xdisp.c (struct props): New.
6970 (it_props): New.
6971 (compute_prop_info): New.
6972 (handle_stop): New.
6973
6974 * textprop.c (validate_interval_range): Make it externally
6975 visible.
6976
6977 * dispnew.c (direct_output_for_insert): Remove calls
6978 to compute_stop_pos.
6979
6980 * dispextern.h (struct it): Remove check_charpos,
6981 next_overlay_pos. Add what_changes.
6982
69831998-08-10 Gerd Moellmann <gerd@gnu.org>
6984
6985 * xterm.c (note_mouse_highlight): Set BEGV_BYTE, ZV_BYTE.
6986
6987 * xfaces.c (Vx_unibyte_registry_and_encoding): Removed. Use
6988 face_default_registry instead.
6989
6990 * syntax.c (scan_sexps_forward): Set up syntax table before
6991 jumping to initial state label.
6992
69931998-08-09 Gerd Moellmann <gerd@gnu.org>
6994
6995 * dispnew.c (check_matrix_invariants): Handle case of row end pos
6996 >= ZV specially.
6997
69981998-08-08 Gerd Moellmann <gerd@gnu.org>
6999
7000 * xdisp.c (redisplay_window): Case cursor movement---if cursor
7001 ends up in partially visible row, try to scroll. Case forced
7002 window start---handle windows not tall enough to show a single
7003 line.
7004
7005 * window.h (struct window): Member dy renamed vscroll.
7006
7007 * xterm.c (x_list_fonts): Re-activate suppression of scalable
7008 fonts.
7009 (x_draw_stretch_glyph_string): Set clipping if using GC that
7010 hasn't set it yet.
7011
7012 * xdisp.c (redisplay_window): Case forced window start -
7013 don't let cursor end on partially visible row. Use desired
7014 matrix to find a suitable PT if it doesn't appear.
7015 (decode_mode_spec): Merged with 20.2.97.
7016 (try_window_reusing_current_matrix): Give up if old or
7017 new display is vscrolled.
7018 (redisplay_window): Reset vscrolling if forced window start,
7019 or if recentering.
7020
70211998-08-06 Gerd Moellmann <gerd@gnu.org>
7022
7023 * xfaces.c (realize_default_face): Use the fontset name instead of
7024 the alias for the family attribute of the default face because we
7025 can't easily determine a good alias from fontset-alias-alist.
7026 (face_fontset): Use Fquery_fontset to find the fontset.
7027 (font_list): Additional pattern parameter.
7028 (try_font_list): Ditto.
7029 (set_lface_from_font_name): Set face family from font foundry
7030 and family.
7031 (font_list): If family contains a hyphen, build pattern differently.
7032
70331998-08-05 Gerd Moellmann <gerd@gnu.org>
7034
7035 * xfaces.c (free_realized_faces): Increment windows_or_buffers_-
7036 changed instead of setting the frame garbaged.
7037
7038 * xfaces.c (lface_equal_p): Don't assume equal Lisp types for
7039 all attribute values. This is wrong if values are unspecified,
7040 i.e. nil.
7041
7042 * xdisp.c (try_window_id): Give up if window start changed.
7043
7044 * xfaces.c (make_realized_face): Store registry as Lisp object.
7045 (load_face_font_or_fontset): Compute registry of a face
7046 differently. Make it `eq' to Vx_unibyte_registry_and_encoding if
7047 possible.
7048
7049 * dispextern.h (FACE_SUITABLE_FOR_CHARSET_P): Compare registries
7050 differently.
7051
7052 * alloc.c (mark_face_cache): Mark the registry member of faces.
7053
7054 * dispextern.h (struct face): Make registry a Lisp string.
7055
70561998-08-04 Gerd Moellmann <gerd@gnu.org>
7057
7058 * xterm.c (x_get_char_font_and_encoding): Additional parameter
7059 multibyte_p. Handle unibyte text.
7060 (x_append_glyph): Set the multibyte_p flag of glyphs.
7061 (x_produce_image_glyph): Ditto.
7062 (x_append_stretch_glyph): Ditto.
7063 (x_produce_glyphs): Handle unibyte text like ASCII.
7064
7065 * xdisp.c (push_it): Save the multibyte flag of an iterator on the
7066 stack.
7067 (pop_it): Restore it.
7068 (face_before_or_after_it_pos): Handle the case that the string or
7069 buffer is unibyte.
7070 (get_overlay_strings): Set the multibyte flag of the iterator if
7071 the new overlay string is multibyte.
7072 (get_glyph_property): Likewise.
7073 (get_next_display_element): Don't check for charset changes in
7074 unibyte text.
7075 (append_space): Compute face differently for unibyte text.
7076 (extend_face_to_end_of_line): Don't return quickly if face has
7077 stipple.
7078
7079 * xfaces.c (load_face_font_or_fontset): Store registry and
7080 encoding of the font in the registry member of the face.
7081 (make_realized_face): Additional parameter `registry'.
7082 (free_realized_face): Free the registry of a realized face.
7083 (face_suitable_for_charset_p): Function form of the macro
7084 with the same name in uppercase.
7085 (lookup_face): Use Vx_unibyte_registry_and_encoding if charset < 0.
7086 (choose_face_font): New parameter unibyte_registry.
7087 (choose_face_fontset_font): Ditto.
7088 (realize_default_face): Remember the registry and encoding of
7089 the specified frame font in Vx_unibyte_registry_and_encoding.
7090 (face_at_buffer_position): Handle unibyte.
7091 (face_at_string_position): Likewise.
7092 (realize_face): New parameter unibyte_registry.
7093 (compute_char_face): Handle the unibyte case.
7094
7095 * dispextern.h (struct glyph): Add bit multibyte_p.
7096 (struct face): New member registry holding the registry and
7097 encoding of the X font of the face.
7098 (FACE_UNIBYTE_P): Value is non-zero if face is for unibye text.
7099 (enum face_id): Add BASIC_FACE_ID_SENTINEL.
7100 (FACE_SUITABLE_FOR_CHARSET_P): Handle charset < 0 meansing unibyte
7101 text.
7102 (struct iterator_stack_entry): Add multibyte_p.
7103
7104 * xdisp.c (string_pos): Use string_char_to_byte.
7105 (char_charset): Removed.
7106
71071998-08-03 Gerd Moellmann <gerd@gnu.org>
7108
7109 * xterm.c (x_draw_image_glyph_string_foreground): Draw a
7110 rectangle for a block cursor over an image without a mask.
7111 (x_stretch_block_cursor): Added. Non-zero means don't draw
7112 a block cursor over a stretch as wide as that stretch.
7113 (x_draw_stretch_glyph_string): Use it.
7114 (x_draw_hollow_cursor): Ditto.
7115
7116 * minibuf.c (read_minibuf): Use minibuf_prompt instead of prompt.
7117 (read_minibuf): Add front-sticky text property for prompt.
7118
7119 * xdisp.c (char_charset): Return charset of a character,
7120 depending on whether or not multi-byte characters are enabled.
7121
7122 * xfaces.c (Fset_face_charset_registry): Removed.
7123 (x_charset_registry): Determine registry from charset plist.
7124
71251998-08-02 Gerd Moellmann <gerd@gnu.org>
7126
7127 * xdisp.c (get_next_display_element): Don't check for charset
7128 changes if multi-byte characters are not enabled.
7129
7130 * xdisp.c (echo_area_display): Use the flush function from the
7131 redisplay interface.
7132 * keyboard.c (detect_input_pending_run_timers): Likewise.
7133
7134 * dispextern.h (produce_*glyphs_hook): Removed.
7135 * term.c (produce_*glyphs): Ditto.
7136 (cursor_to): Remove pixel position parameters.
7137
7138 * dispnew.c: Remove hooks for window-based redisplay, introduce
7139 a redisplay interface structure.
7140
7141 * xterm.c (x_per_char_metric): Return default char metrics if per
7142 char metric exists but contains a zero width. Adobe Courier seems
7143 to contain such characters.
7144
7145 * xdisp.c (compute_line_metrics): Compute the width of rows
7146 without stopping at glyphs with zero width.
7147
71481998-08-01 Gerd Moellmann <gerd@gnu.org>
7149
7150 * xdisp.c (display_mode_line): If nothing was displayed at all,
7151 display a space.
7152 (hscroll_window_tree): Don't subtract 1 from target point if equal
7153 to ZV and window is not the selected window.
7154
7155 * dispnew.c (check_matrix_invariants): Remove check for window
7156 start at BEGV or after newline. This happens in rare cases
7157 intentionally.
7158
71591998-07-31 Gerd Moellmann <gerd@gnu.org>
7160
7161 * xfaces.c (x_charset_registry): Use STRING_BYTES.
7162 (syms_of_xfaces): Add Vface_default_registry.
7163 (x_charset_registry): Use it.
7164
7165 * xdisp.c (run_window_scroll_functions): Run window scroll functions.
7166 (redisplay_window): Use it.
7167
7168 * dispnew.c (update_text_area): Handle lbearing of deleted text
7169 by backing up one character.
7170
71711998-07-30 Gerd Moellmann <gerd@gnu.org>
7172
7173 * dispnew.c (adjust_glyph_matrix): Use a different check to
7174 decide to do nothing.
7175
7176 * xfaces.c (face_at_string_position): Additional parameter
7177 mode_line_p. If non-zero, merge with the mode line face
7178 instead of the default face.
7179 * dispextern.h (struct it): Add mode_line_p.
7180 * xdisp.c (init_iterator): Set it.
7181 (compute_face_in_string): Use it.
7182 (face_before_or_after_it_pos): Handle strings.
7183 (get_next_display_element): Don't look for relief end in C strings.
7184 (next_element_from_string): Deliver string position instead of
7185 buffer position.
7186
7187 * xterm.c (x_flush): Flush X output buffer.
7188 (XTflash): Use it.
7189
7190 * xfaces.c (lface_from_face_name): Renamed from lface_from_symbol.
7191 Allow strings as face names.
7192
7193 * xfns.c (forall_images_in_image_cache): Check that frame is
7194 alive.
7195
7196 * widget.c (EmacsFrameDestroy): Remove call to free_frame_faces;
7197 it's also called from x_destroy_window. Since this function is
7198 called from X, freeing stuff allocated with xmalloc is dangerous
7199 here, anyway.
7200
7201 * xfaces.c (free_realized_faces): Don't clear current matrices
7202 of a frame being destroyed.
7203
7204 * frame.c (make_frame): Call set_window_buffer instead of
7205 Fset_window_buffer.
7206
7207 * window.c (set_window_buffer): Extracted from Fset_window_buffer,
7208 with an additional argument specifying whether or not hooks may
7209 be called.
7210 (Fset_window_buffer): Call it.
7211
7212 * dispnew.c (clear_desired_matrices): Check that frame has
7213 a valid root window before clearing matrices in the window tree.
7214 (clear_current_matrices): Ditto.
7215 (clear_window_matrices): If GLYPH_DEBUG, check that hchild and
7216 vchild are valid windows if not nil.
7217
7218 * xfaces.c (merge_face_vector_with_property): Allow :reverse-video
7219 for :inverse-video.
7220 (Finternal_set_lisp_face_attribute): Ditto.
7221 (Finternal_set_lisp_face_attribute_from_resource): Ditto.
7222 (Finternal_get_lisp_face_attribute): Ditto.
7223 (Finternal_lisp_face_attribute_values): Ditto.
7224 (syms_of_xfaces): Define the symbol `:reverse-video'.
7225
7226 * xdisp.c (get_glyph_property): Renamed from
7227 fill_iterator_from_glyph_property.
7228 (next_element_from_buffer): Handle case that no `glyph' property
7229 was found correctly.
7230 (display_line): Extend face to end of line only if we have faces.
7231
72321998-07-29 Gerd Moellmann <gerd@gnu.org>
7233
7234 * dispnew.c (Fshow_cursor): Renamed from blink_cursor. Take
7235 additional window argument.
7236
7237 * xdisp.c (reseat_at_previous_visible_line_start): Renamed from
7238 set_iterator_to_previous_visible_line_start.
7239 (reseat_at_next_visible_line_start): Likewise.
7240 (compute_stop_pos): Renamed from set_iterator_stop_pos.
7241 (face_before_or_after_it_pos): Renamed from get_face_at_it_pos.
7242 (compute_face_in_buffer): Renamed from
7243 compute_face_at_iterator_position.
7244 (compute_face_in_string): Renamed from
7245 compute_face_at_iterator_string_position.
7246 (get_space_width): Renamed from get_iterator_space_width.
7247 (next_overlay_string): Renamed from
7248 set_iterator_to_next_overlay_string.
7249 (get_overlay_strings): Renamed from
7250 get_overlay_strings_at_iterator_position.
7251 (restore_overlay_strings): Renamed from
7252 setup_overlay_strings_from_glyph_pos.
7253 (restore_dpvec): Renamed from setup_iterator_dpvec_from_glyph_pos.
7254 (init_from_display_pos): Renamed from init_iterator_from_glyph_pos.
7255 (init_to_row_start): Renamed from init_iterator_to_row_start.
7256 (init_to_row_end): Formerly init_iterator_to_next_row_start.
7257
7258 * xterm.c: Merge with 20.2.97.
7259 (x_produce_glyphs): Use x_append_stretch_glyph for tabs.
7260
7261 * dispextern.h (struct glyph): Replace text_pos position with
7262 simple charpos.
7263
7264 * xdisp.c (this_line_start_pos): Use struct text_pos.
7265 (this_line_end_pos): Renamed from .*endpos; use struct text_pos.
7266 (enum move_it_result): Renamed from move_iterator_result.
7267 (string_pos_nchars_ahead): Compute text_pos in a string from a
7268 known text_pos plus a character delta.
7269 (string_pos): Compute text_pos in string from charpos.
7270 (c_string_pos): Likewise for a C string.
7271 (number_of_chars): Return number of characters in a possibly
7272 multi-byte C string.
7273 (check_it): Renamed from check_iterator. Check that charpos and
7274 bytepos are in sync.
7275 (push_it): Renamed from save_iterator_settings.
7276 (pop_it): Renamed from restore_iterator_settings.
7277 (move_it_.*): Renamed from move_iterator_.*.
7278 (charset_at_position): Take charpos/bytepos into account.
7279 (back_to_previous_line_start): Set iterator to previous line start.
7280 (forward_to_next_line_start): Set iterator to next line start.
7281 (back_to_previous_visible_line_start): Renamed from
7282 move_iterator_previous_visible_line_start.
7283 (set_iterator_to_next_visible_line_start): Handle charpos/bytepos.
7284 (get_face_at_it_pos): Renamed from get_face_from_cursor_pos.
7285 Handle charpos/bytepos.
7286 (compute_face_at_iterator_position): Handle charpos/bytepos.
7287 (compute_face_at_iterator_string_position): Likewise.
7288 (get_iterator_space_width): Likewise.
7289 (load_overlay_strings): Likewise.
7290 (get_overlay_strings_at_iterator_position): Likewise.
7291 (reseat_iterator): Take a text_pos position argument.
7292 (setup_iterator_overlay_strings_from_glyph_pos): Handle charpos/
7293 bytepos.
7294 (init_iterator): Take additional bytepos parameter.
7295 (reseat_iterator_to_string): Handle charpos/bytepos.
7296 (start_display): Take a text_pos parameter. Handle charpos/bytepos.
7297 (next_element_from_string): Handle charpos/bytepos.
7298 (next_element_from_c_string): Likewise.
7299 (fill_iterator_from_glyph_property): Likewise.
7300 (next_element_from_buffer): Likewise.
7301 (set_iterator_to_next): Increment charpos and bytepos of an iterator.
7302 (move_iterator_in_display_line_to): Handle charpos/bytepos.
7303 (move_it_to): Likewise.
7304 (move_it_vertically_backward): Likewise.
7305 (move_it_vertically): Likewise.
7306 (move_it_by_lines): Likewise.
7307 (hscroll_window_tree): Likewise.
7308 (redisplay_internal): Likewise.
7309 (set_cursor_from_row): Likewise.
7310 (redisplay_window): Likewise.
7311 (try_window): Take a text_pos parameter. Handle charpos/bytepos.
7312 (try_window_reusing_current_matrix): Handle charpos/bytepos.
7313 (get_first_unchanged_at_end_row): Compute and return delta_bytes.
7314 (try_window_id): Handle charpos/bytepos.
7315 (Ftrace_redisplay_toggle): Return Qnil.
7316 (get_overlay_arrow_glyph_row): Handle charpos/bytepos.
7317 (insert_left_trunc_glyphs): Likewise.
7318
7319 * dispnew.c: `Merge' with 20.2.97 (it's really too different to
7320 do a real merge).
7321 (increment_glyph_matrix_buffer_positions): Add parameter delta_bytes.
7322 (increment_glyph_row_buffer_positions): Ditto.
7323 (copy_glyph_row_contents): Ditto.
7324 (check_matrix_invariants): Add additional checks for charpos/
7325 bytepos consistency.
7326 (direct_output_for_insert): Changed for charpos/bytepos.
7327 (buffer_posn_from_coords): Likewise. Put code dealing with
7328 `direction-reversed' in #if 0.
7329
7330 * xterm.h: Merge with 20.2.97.
7331
7332 * frame.h: Merge with 20.2.97.
7333
7334 * window.h: Merge with 20.2.97. Add window_end_bytepos.
7335
7336 * dispextern.h (MATRIX_ROW_START_CHARPOS): Get charpos of a row
7337 start.
7338 (MATRIX_ROW_START_BYTEPOS): Likewise for the byte position.
7339 (MATRIX_ROW_END_CHARPOS): Likewise for the row end.
7340 (MATRIX_ROW_END_BYTEPOS): Likewise for the row end byte position.
7341 (struct it): Various members renamed from .*pos to .*charpos.
7342 (IT_CHARPOS): Access current buffer character position of an
7343 iterator.
7344 (IT_BYTEPOS): Access current buffer byte position of an iterator.
7345 (IT_STRING_CHARPOS): Access current string character position of
7346 an iterator.
7347 (IT_STRING_BYTEPOS): Access current string byte position of
7348 an iterator.
7349 (globally): Add function prototypes from 20.2.97.
7350
7351 * everywhere: Use P_ instead of PROTO for function prototypes
7352 because everyone else seems to use P_.
7353
7354 * dispextern.h (struct text_pos): Structure describing a charpos/
7355 bytepos position in text.
7356 (BYTEPOS): Access the byte position part of a text_pos.
7357 (CHARPOS): Likewise for the character position.
7358 (SET_TEXT_POS): Set a text_pos from a character and byte position.
7359 (INC_TEXT_POS, DEC_TEXT_POS): Increment/decrement a text position.
7360 (SET_TEXT_POS_FROM_MARKER): Set a text_pos from a marker.
7361 (SET_MARKER_FROM_TEXT_POS): Set a marker from a text_pos.
7362 (TEXT_POS_EQUAL_P): Compare two text_pos structures for equality.
7363 (struct display_pos): Renamed from glyph_pos. Use struct text_pos
7364 for buffer and string positions.
7365 (struct glyph): Use text_pos.
7366 (struct it): Renamed from display_iterator. Use text_pos.
7367
73681998-07-23 Gerd Moellmann <gerd@gnu.org>
7369
7370 * xfns.c (x_kill_gs_process): Get image colors from XImage of a
7371 pixmap.
7372
73731998-07-21 Gerd Moellmann <gerd@gnu.org>
7374
7375 * dispextern.h (struct glyph_row): New flag indicate_zv_line_p.
7376 * xterm.c (x_draw_row_bitmaps): Use it.
7377 * dispnew.c (row_equal_p): Ditto.
7378 (update_window_line): Ditto.
7379
7380 * xfns.c (prepare_image_for_display): Don't set loading_failed_p
7381 flag of images.
7382
7383 * dispextern.h (struct image): Removed member loading_failed_p.
7384 It's probably better to have the chance to try to load an image
7385 again.
7386
73871998-07-20 Gerd Moellmann <gerd@gnu.org>
7388
7389 * xterm.c (x_draw_bitmap): Draw bitmap for empty lines ending
7390 at ZV if `indicate-zv-lines' is non-nil.
7391 (x_draw_row_bitmaps): Compute bitmap for `indicate-zv-lines'.
7392
7393 * dispnew.c (row_equal_p): Compare displays_text_p and
7394 ends_at_zv_p flags of rows.
7395 (update_window_line): Ditto.
7396
7397 * buffer.h (struct buffer): New member indicate_zv_lines.
7398
7399 * buffer.c (init_buffer_once): Add default for `indicate-zv-lines'.
7400 (init_buffer_once): New variable `default-indicate-zv-lines'.
7401 (syms_of_buffer): New buffer-local varianle `indicate-zv-lines'.
7402
7403 * xdisp.c (redisplay_window): Don't try moving the cursor
7404 if current glyph row w->last_cursor.vpos isn't enabled.
7405
7406 * xterm.c (bitmap_type): Add ZV_LINE_BITMAP.
7407
7408 * window.c (Fset_window_vscroll): Allow only negative scroll
7409 values. Others don't seem to make sense, and this way it's easy
7410 to restore a vscroll of zero.
7411
7412 * xterm.c (x_inverted_image_mask): Check that pixmap could be
7413 allocated.
7414 (x_draw_image_glyph_string_background): Don't clip if pixmap
7415 could not be created.
7416
7417 * xfns.c (xbm_load_image_from_file): Check that pixmap could
7418 be created.
7419 (xbm_load): Ditto.
7420 (gs_load): Ditto.
7421
7422 * xterm.c (x_get_glyph_overhangs): Take image and stretch
7423 glyphs into account.
7424
7425 * xfaces.c (realize_default_face): Don't set font family of
7426 the default face from the fontset alias name for `fontset-startup'.
7427
7428 * xfns.c (gs_load): Pass frame's pixel foreground and background
7429 color to the Lisp loader.
7430
74311998-07-19 Gerd Moellmann <gerd@gnu.org>
7432
7433 * xfns.c (tiff_image_p, tiff_load): Support TIFF images via
7434 libtiff34.
7435
7436 * configure.in (--with-tiff, HAVE_TIFF): Added.
7437
7438 * config.in (HAVE_TIFF): Added.
7439
7440 * Makefile.in (LIBTIFF): Added.
7441
7442 * xfns.c (jpeg_image_p, jpeg_load): Support JPEG images.
7443
7444 * Makefile.in (LIBJPEG): Added.
7445
7446 * xfns.c (resource_types): Enumerators renamed to RES_TYPE_NUMBER,
7447 RES_TYPE_BOOLEAN etc. because of conflict of `boolean' with
7448 jpeglib.h.
7449
7450 * configure.in (HAVE_JPEG, --with-jpeg): Added. On systems
7451 where the library is installed in /usr/local/lib, e.g. FreeBSD,
7452 configure must be run with `--x-includes=/usr/X11R6/include:
7453 /usr/local/include --x-libraries=/usr/X11R6/lib:/usr/local/lib'.
7454
74551998-07-18 Gerd Moellmann <gerd@gnu.org>
7456
7457 * config.in (HAVE_JPEG): Added.
7458
7459 * xfns.c (ct_init): Initialize color table used to map RGB colors
7460 from images to X pixel colors.
7461 (ct_free): Free color table.
7462 (ct_lookup): Look an RGB color up.
7463 (ct_allocated_colors): Get vector of allocated colors.
7464 (pbm_image_p): Test if image specification is a valid PPM
7465 image specification.
7466 (pbm_scan_number): Scan a decimal ASCII number from a file.
7467 (pbm_load): Load a PPM image.
7468
7469 * window.c (Fset_window_vscroll): Adjust glyph matrix if
7470 necessary. Take canonical character units as parameter.
7471 (Fwindow_vscroll): Return canonical character units.
7472
7473 * dispnew.c (allocate_matrices_for_window_redisplay): Add negative
7474 w->dy to display height for which glyph rows must be allocated.
7475
74761998-07-17 Gerd Moellmann <gerd@gnu.org>
7477
7478 * xfaces.c (face_at_string_position): Merge in region face
7479 so that it won't overwrite the font in the region.
7480 (face_at_buffer_position): Ditto.
7481 (realize_basic_faces): Don't realize region face.
7482
7483 * dispextern.h (enum face_id): REGION_FACE_ID removed.
7484
7485 * xterm.c (x_set_glyph_string_background_width): Don't let
7486 cursor face extend to end of line.
7487
7488 * xdisp.c (append_space): If adding space of default face,
7489 make sure glyph ist produced with right face.
7490
7491 * xterm.c (x_clear_glyph_string_rect): Draw a rectangle in the
7492 background color of a glyph string.
7493 (x_draw_glyph_string_background): Call it.
7494 (x_draw_glyph_string_bg_rect): Ditto.
7495 (x_draw_stretch_glyph_string): Ditto.
7496
74971998-07-15 Gerd Moellmann <gerd@gnu.org>
7498
7499 * xdisp.c (init_iterator): Initialize it->current_y to the
7500 window's vscroll w->dy.
7501
7502 * window.c (Fwindow_vscroll): Return number of pixels window
7503 is vscrolled smoothly.
7504 (Fset_window_vscroll): Set the number.
7505
7506 * xdisp.c (move_iterator_to): Recognize case MOVE_TO_POS and
7507 to_pos in truncated part of a line.
7508
75091998-07-14 Gerd Moellmann <gerd@gnu.org>
7510
7511 * xdisp.c (move_iterator_in_display_line_to): If very first glyph
7512 doesn't fit on the line, truncate it, despite truncate_lines nil.
7513 (display_line): Ditto.
7514
7515 * xfns.c: Experimental support for Ghostscript images.
7516
7517 * xterm.c (x_term_init): Initialize new atoms DONE and PAGE.
7518 (XTread_socket): React on events from Ghostscript.
7519 (expose_frame): If width or height are zero, redraw entire frame.
7520 (XTread_socket): Call expose_frame after receiving event from
7521 Ghostscript.
7522
7523 * xterm.h (struct x_display_info): Add atoms DONE and PAGE
7524 for Ghostscript support.
7525
7526 * xdisp.c (redisplay_internal): Return quickly if called
7527 recursively.
7528
7529 * alloc.c (NSTATICS): Increased to 1024.
7530
75311998-07-08 Gerd Moellmann <gerd@gnu.org>
7532
7533 * xterm.c (x_append_stretch_glyph): Append a stretch glyph to an
7534 iterator's glyph row.
7535 (x_produce_stretch_glyph): Call it.
7536 (x_produce_glyphs): Handle `space-width' property; call
7537 x_append_stretch_glyph.
7538
7539 * xdisp.c (syms_of_xdisp): Add symbol `space-width' used as a text
7540 property.
7541 (get_iterator_space_width): Determine value of `space-width'
7542 property at iterator's position.
7543 (reseat_iterator): Call it.
7544 (next_element_from_string): Ditto.
7545 (next_element_from_buffer): Ditto.
7546 (init_iterator): Initialize space_width of iterator.
7547 (redisplay_internal): Don't goto end_of_redisplay if PT hasn't
7548 moved, but cursor blinks.
7549 (redisplay_internal): Set w->last_cursor_off_p after update.
7550
7551 * dispextern.h (enum iterator_prop_idx): Add SPACE_WIDTH_PROP_IDX.
7552 (struct display_iterator): Add new member space_width.
7553
7554 * window.h (struct window): Add last_cursor_off_p.
7555
75561998-07-07 Gerd Moellmann <gerd@gnu.org>
7557
7558 * Saved.
7559
7560 * window.c (Fpos_visible_in_window_p): Case window not up to
7561 date---return nil if iterator hasn't reached position.
7562
75631998-07-06 Gerd Moellmann <gerd@gnu.org>
7564
7565 * xdisp.c (text_outside_line_unchanged_p): Fix case that
7566 overlays have changed.
7567 (redisplay_window): Case cursor movement. Don't try it if
7568 last_cursor.vpos is out of range.
7569
7570 * xdisp.c (set_cursor_from_row): Set this_line_.* variables. This
7571 way, the display optimization for the line containing the cursor
7572 is used more frequently, esp. when we have a blinking cursor.
7573 (display_line): Don't set this_line_.* variables.
7574
7575 * xterm.c (x_redraw_cursor): Removed.
7576 (x_display_and_set_cursor): Set cursor type depending on
7577 cursor_off_p flag of window.
7578
7579 * dispnew.c (redraw_cursor_hook): Removed.
7580 (Fblink_cursor): Additional parameter on_p to set the cursor_off_p
7581 member of the selected window.
7582
7583 * xfaces.c (Fface_font): Added for compatibility with 20.2.
7584
7585 * xterm.c (x_y_to_hpos_vpos): Return null if not over text.
7586 Return glyph area under x/y.
7587 (note_mouse_highlight): Use x_y_to_hpos_vpos in its new form.
7588
7589 * keyboard.c (detect_input_pending_run_timers): Call gobble_input
7590 after redisplaying.
7591
75921998-07-05 Gerd Moellmann <gerd@gnu.org>
7593
7594 * xdisp.c (text_outside_line_unchanged_p): Test if changes
7595 are all outside of a line of text.
7596 (redisplay_internal): Use it.
7597
75981998-06-30 Gerd Moellmann <gerd@gnu.org>
7599
7600 * xdisp.c (next_element_from_buffer): After skipping over
7601 invisible text, look for the `glyph' property.
7602 (set_iterator_stop_pos): Ignore check positions in front
7603 of an iterator's current position.
7604
7605 * xterm.c (show_mouse_face): Don't act on rows that don't exist
7606 anymore or which are marked as not having valid contents.
7607
7608 * xfaces.c (Finternal_set_lisp_face_attribute): Don't free
7609 realized faces if new attribute value is equal to old value.
7610
76111998-06-29 Gerd Moellmann <gerd@gnu.org>
7612
7613 * xfaces.c (Finternal_make_lisp_face): Increment
7614 lface_id_to_name_size when lface_id_to_name is reallocated.
7615
76161998-06-27 Gerd Moellmann <gerd@gnu.org>
7617
7618 * xdisp.c (set_iterator_stop_pos): Compute initial stop_pos
7619 as minimum of endpos and overlay_pos.
7620 (load_overlay_strings): Set next_overlay_pos of iterator to
7621 -1 if we don't have to check for more overlay strings.
7622
76231998-05-09 Gerd Moellmann <gerd@gnu.org>
7624
7625 * xdisp.c (set_iterator_to_next_visible_line_start): Don't
7626 do anything if iterator is at ZV because scan_buffer doesn't
7627 work otherwise.
7628
7629 * xterm.c (x_encode_char): Inline it.
7630 (x_get_char_font_and_encoding): Simplified.
7631 (x_per_char_metric): Inline it.
7632
7633 * xterm.c (x_draw_glyph_string_relief): Use clipping.
7634
7635 * xdisp.c (get_next_display_element): Check for end of relief
7636 face moved here from next_element_from_buffer.
7637
7638 * xterm.c (x_produce_image_glyph): Add relief thickness.
7639 (x_produce_stretch_glyph): Ditto.
7640
76411998-05-08 Gerd Moellmann <gerd@gnu.org>
7642
7643 * xdisp.c (fill_iterator_from_glyph_property): Handle glyph
7644 property value (space :width WIDTH :height HEIGHT :ascent ASCENT).
7645
7646 * xterm.c (x_produce_stretch_glyph): Produce a stretch glyph
7647 from a glyph property.
7648 (x_produce_glyphs): Use it.
7649
7650 * xdisp.c (set_iterator_to_next): Handle next_element_from_stretch.
7651
7652 * xterm.c (x_produce_image_glyph): Add to current_x only if
7653 in text area.
7654 (x_produce_glyphs): Ditto.
7655
7656 * xdisp.c (display_line): Compute row height from glyphs in
7657 marginal areas.
7658
7659 * xterm.c (x_draw_image_glyph_string_background): Draw
7660 background of an image glyph string.
7661 (x_draw_glyph_string_bg_rect): Draw a rectangular region of
7662 the background of a glyph string.
7663 (x_draw_image_glyph_string_foreground): Draw the foreground of
7664 an image glyph string.
7665 (x_inverted_image_mask): Return the inverted mask of an image.
7666
7667 * xfns.c (x_draw_image): Removed.
7668
7669 * dispextern.h (struct image_type): Remove drawing function.
7670
7671 * xfaces.c (load_face_colors): Swap colors if face is inverse.
7672
7673 * xdisp.c (get_next_display_element): In marginal areas, translate
7674 newlines, tabs, etc. like normal control characters.
7675
7676 * xfaces.c (Fface_color_supported_p): Transpose parameters frame
7677 and color.
7678 (free_realized_faces): Set frame garbaged.
7679
7680 * xfaces.c (syms_of_xfaces): Add defsubr for
7681 internal-lisp-face-attribute-values.
7682
76831998-05-07 Gerd Moellmann <gerd@gnu.org>
7684
7685 * xterm.c (x_produce_image_glyph): Don't add glyph if area is
7686 full.
7687 (x_produce_image_glyph): Set IT->nglyphs to 1.
7688 (x_draw_image_glyph_string): Use inverted mask to draw background.
7689
7690 * dispextern.h (struct image_type): Additional clipping rect
7691 parameters for drawing functions.
7692
7693 * xterm.c (x_get_glyph_string_clip_rect): Get clip rect for
7694 a glyph string.
7695 (x_draw_image_glyph_string): Use it and pass the rect to the
7696 image drawing function.
7697
7698 * xdisp.c (fill_iterator_from_glyph_property): Use position of
7699 first character with `glyph' property as image position. Set
7700 iterator back to that position as long as the image hasn't been
7701 consumed with set_iterator_to_next.
7702 (set_cursor_from_row): Accept when glyph with given position is
7703 not found in the row. Set cursor x to end of line in that case,
7704 so that we can hscroll.
7705 (redisplay_internal): Correct computation of delta by which
7706 positions have changed in redisplay optimization for cursor
7707 row of selected window.
7708
7709 * xdisp.c (display_line): Remove start_pos.
7710 (display_line): Fix bug preventing display optimization for
7711 cursor line of selected window.
7712 (next_element_from_buffer): Avoid XSETBUFFER, use it->w->buffer
7713 instead.
7714
7715 * dispnew.c (update_text_area): Use GLYPH_EQUAL_P.
7716 (update_text_area): Take glyph pixel width into account
7717 when trying to find a resync point.
7718 (row_equal_p): Compare glyphs in all areas.
7719
77201998-05-06 Gerd Moellmann <gerd@gnu.org>
7721
7722 * xterm.c (x_produce_glyphs): Don't add glyph if area is full.
7723
7724 * dispextern.h (struct glyph_row): Use unsigned hash value.
7725
7726 * xdisp.c (display_line): Simplified and made faster by setting
7727 the cursor with set_cursor_from_row.
7728 (set_cursor_from_row): Handle rows of desired matrix.
7729
77301998-05-05 Gerd Moellmann <gerd@gnu.org>
7731
7732 * xdisp.c (set_cursor_from_row): Don't put cursor on glyphs
7733 with type != CHAR_GLYPH.
7734 (fill_iterator_from_glyph_property): Return void. Set
7735 method to next_element_from_image.
7736 (next_element_from_image): Dummy function for delivering a
7737 single image id.
7738 (set_iterator_to_next): Add method next_element_from_image.
7739 (redisplay_window): When recentering, and cursor vpos is -1
7740 after display, assume middle of window is in first line displayed
7741 in window, and display again.
7742 (fill_iterator_from_glyph_property): Assign image glyph
7743 the position of the first character having the glyph property.
7744
7745 * dispextern.h (IMAGE_ASCENT): Compute ascent of image.
7746 * xfns.c (x_draw_image): Use it.
7747 * xterm.c (x_produce_image_glyph): Use it.
7748
7749 * xterm.c (x_produce_image_glyph): Set iterator's pixel_width.
7750
7751 * Makefile.in: Extraneous #define of LIBXPM removed.
7752
7753 * xterm.c (x_produce_glyphs): Produce a STRETCH_GLYPH for tabs.
7754 (x_fill_stretch_glyph_string): Fill a glyph string from a
7755 stretch glyph.
7756 (x_compute_glyph_string_overhangs): Compute overhangs only
7757 for text glyph strings.
7758 (x_draw_stretch_glyph_string): Draw a stretch glyph string.
7759 (x_draw_glyph_string): Call it.
7760
7761 * dispextern.h (glyph_type): Add STRETCH_GLYPH.
7762 (struct glyph): Add sub-structure for stretchable glyphs.
7763 (GLYPH_EQUAL_P): Compare glyph type and u.val.
7764
7765 * xdisp.c (get_overlay_arrow_glyph_row): Put face code into
7766 #ifdef HAVE_FACES.
7767
7768 * xterm.c (x_produce_glyphs): Use ASCII face for spaces of a TAB.
7769
7770 * xdisp.c (fill_iterator_from_glyph_property): Renamed from
7771 setup_iterator_from_glyph_property. Don't do it for terminal
7772 frames.
7773
7774 * xterm.c (x_produce_image_glyph): Produce glyph for image
7775 that can't be loaded.
7776
7777 * xfns.c (lookup_image): If image can't be loaded, set its
7778 width and height so that we can draw a rectangle.
7779 (x_draw_image): Draw a rectangle for images that don't have
7780 a pixmap.
7781 (make_image): Set hash value.
7782 (image_spec_equal_p): Use image_spec_value.
7783
7784 * xterm.c (expose_frame): Don't try to redraw if basic faces
7785 haven't benn realized yet.
7786 (x_draw_image_glyph_string): Fill background only if image
7787 is not as tall as row.
7788
77891998-05-04 Gerd Moellmann <gerd@gnu.org>
7790
7791 * Makefile.in (LIBXPM): If not already defined, define to -lXpm.
7792 (LIBX)[HAVE_X11]: Add LIBXPM.
7793
7794 * xfns.c (xpm_image_p): Implementation of image type functions
7795 for XPM.
7796 (xpm_load): Ditto.
7797
7798 * dispextern.h (struct image): Add mask pixmap for XPM.
7799
7800 * xfns.c (x_draw_image): Handle images with masks.
7801
7802 * configure.in: --with-xpm added. Code detecting -lXpm added.
7803
7804 * config.in: Add HAVE_XPM.
7805
7806 * xfns.c (xbm_draw): Removed.
7807 (x_draw_image): Default implementation for drawing images.
7808 (xbm_keyword_index): Remove XBM_DEPTH.
7809 (xbm_format): Remove `:depth'.
7810 (xbm_image_spec_from_file): Removed to reduce consing.
7811 (xbm_load_image_from_file): Added for the same reason.
7812
7813 * xterm.c (x_fill_image_glyph_string): Don't set ybase of
7814 glyph string.
7815 (x_draw_image_glyph_string): Pass ybase to image draw function.
7816
7817 * xfns.c (make_image): Set default baseline.
7818
7819 * xterm.c (x_produce_image_glyph): Compute ascent of image
7820 from its height and baseline percentage.
7821
7822 * xfns.c (xbm_keyword_index): Add XBM_BASELINE.
7823 (xbm_format): Add description for `:baseline'.
7824 (xbm_image_spec_from_file): Add keywords from original spec to
7825 result.
7826 (xbm_load): Set baseline of image.
7827 (xbm_image_p): Check range for baseline.
7828
7829 * dispextern.h (struct image): Add member baseline.
7830
7831 * xdisp.c (dump_glyph_matrix): Handle image glyphs.
7832
7833 * term.c (produce_glyphs): Change assertion to allow DISP_IMAGE.
7834
7835 * xdisp.c (get_next_display_element): Do character translations
7836 only if delivering characters.
7837
78381998-05-03 Gerd Moellmann <gerd@gnu.org>
7839
7840 * dispextern.h (ITERATOR_AT_END_OF_LINE_P): Test for
7841 DISP_CHARACTER.
7842
7843 * xterm.c (x_produce_image_glyph): Poduce image glyphs.
7844 (x_produce_glyphs): Call x_produce_glyphs for DISP_IMAGE.
7845
78461998-05-02 Gerd Moellmann <gerd@gnu.org>
7847
7848 * xfns.c (prepare_image_for_display): Set image timestamp.
7849 (clear_image_cache): Clear images if image's timestamp +
7850 Vimage_eviction_seconds is > now.
7851 (syms_of_xfns): New variables image-eviction-seconds, and
7852 image-types.
7853 (add_image_format): Add to image-types.
7854 (xbm_load): Support new image spec format.
7855 (x_alloc_image_color): Allocate a color for an image.
7856
7857 * dispextern.h (struct image): Add timestamp.
7858
7859 * xfns.c (xbm_image_p): Allow bool-vectors, vectors of strings and
7860 vectors of bool-vectors.
7861 (xbm_lisp_object_from_file): Build new format image spec.
7862
78631998-05-01 Gerd Moellmann <gerd@gnu.org>
7864
7865 * xfaces.c (init_frame_faces): Initialize image cache.
7866 (free_frame_faces): Free it.
7867
7868 * xterm.c (x_delete_display): Don't free image cache.
7869
7870 * emacs.c (main): Call init_xfns.
7871
78721998-04-30 Gerd Moellmann <gerd@gnu.org>
7873
7874 * alloc.c (mark_object): Mark objects in image cache.
7875
7876 * xfns.c (x_set_internal_border_width): Correct call to
7877 widget_store_internal_border_width.
7878
7879 * widget.c (widget_store_internal_border): Return void.
7880
7881 * xfns.c (x_destroy_bitmap): Use xfree instead of free. Return
7882 void.
7883 (init_x_parm_symbols): Return void.
7884 (x_report_frame_params): Ditto.
7885 (x_set_border_pixel): Ditto.
7886 (syms_of_xfns): Ditto.
7887 (x_destroy_all_bitmaps): Use xfree instead of free.
7888
7889 * xterm.h (FRAME_X_IMAGE_CACHE): Access the image cache of a frame.
7890
7891 * xterm.c (x_term_init): Initialize image_cache of display info.
7892 (x_delete_display): Free image cache.
7893
7894 * xterm.h (struct x_display_info): Add image_cache.
7895
7896 * xfns.c (make_image_cache): Allocate a new image cache.
7897 (free_image_cache): Free an image cache.
7898 (make_image): Allocate an image.
7899 (free_image): Free an image.
7900
7901 * dispextern.h (struct image): Structure describing an image.
7902 (struct image_cache): Structure describing an image cache.
7903
79041998-04-29 Gerd Moellmann <gerd@gnu.org>
7905
7906 * xdisp.c (check_iterator_glyph_property): Return int. Value is
7907 non-zero if iterator is filled with something to return.
7908 (next_element_from_buffer): Immediately return if
7909 setup_iterator_from_glyph_prop has filled iterator with pixmap.
7910 (next_element_from_string): Likewise.
7911
7912 * xfaces.c (load_pixmap): Allow to pass null for W_PTR and H_PTR.
7913
7914 * dispextern.h (struct glyph): Add pixmap_id.
7915 (display_element_type): Add DISP_PIXMAP.
7916
7917 * xmenu.c (popup_get_selection): Use xmalloc/xfree instead of
7918 malloc/free.
7919
7920 * xfaces.c (clear_font_table): Free fonts not used by fontsets.
7921 (clear_face_cache): Call it.
7922
7923 * xterm.c (x_query_font): Don't look at empty font table slots.
7924 (x_compute_min_glyph_bounds): Likewise.
7925 (x_term_init): Initialize font_table to null.
7926 (x_load_font): Change allocation of font_info structures so
7927 that it is possible to free fonts.
7928
7929 * xfns.c (Fx_close_connection): Use xfree instead of free.
7930 Only free fonts from filled font table entries.
7931
7932 * xfaces.c (best_matching_font): Support use of scalable fonts.
7933 (Fface_scalable_fonts_mode): Toggle use of scalable fonts.
7934
7935 * xterm.h (struct x_display_info): Remove screen_dpi, add resx
7936 and resy.
7937 * xterm.c (x_term_init): Compute resx and resy.
7938
7939 * xfaces.c (split_font_name): Don't reject scalable fonts.
7940
7941 * xterm.c (x_list_fonts): Set code exclusing scalable fonts
7942 in #if 0.
7943
7944 * xfaces.c (xlfd_point_size): Return 0 for fonts whose real
7945 point size cannot be determined.
7946
7947 * xterm.h (FRAME_SMALLEST_CHAR_WIDTH): Return smallest character
7948 width over all fonts on a frame.
7949 (FRAME_SMALLEST_FONT_HEIGHT): Likewise for font height.
7950 * dispnew.c (adjust_frame_glyphs_for_window_redisplay): Use these
7951 macros.
7952
7953 * xterm.c (x_font_min_bounds): Moved here from xfaces.c.
7954 (x_compute_min_char_bounds): Formerly min_char_bounds in xfaces.c.
7955 (x_load_font): Use x_compute_min_char_bounds.
7956
7957 * xterm.h (struct x_display_info): New members smallest_char_width
7958 and smallest_font_height.
7959
79601998-04-28 Gerd Moellmann <gerd@gnu.org>
7961
7962 * dispextern.h (PREPARE_FACE_FOR_DISPLAY): Call function with
7963 the same name if GC of face is zero.
7964
7965 * dispextern.h (struct face): Member non_ascii_gc removed.
7966
7967 * xterm.c (x_get_char_font_and_encoding): Return face's font
7968 for characters < 0177 in default face. Prepare face for
7969 display before returning it.
7970 (x_produce_glyphs): Use it->charset.
7971 (x_get_char_font_and_encoding): Simplified.
7972 (x_encode_char): Remove parameter `font'.
7973
7974 * xfaces.c (choose_face_font): If registry from charset symbol
7975 doesn't contain a `-', make it a pattern by appending "*-*".
7976
7977 * xdisp.c (check_iterator_glyph_property): Adjust limit for
7978 glyph_check_pos computation to character boundary.
7979
79801998-04-27 Gerd Moellmann <gerd@gnu.org>
7981
7982 * fontset.h (FONT_INFO_FROM_ID): Return null if ID is invalid.
7983
7984 * xfaces.c (ascii_face_of_lisp_face): Get the id of the realized
7985 ASCII face for a given Lisp face id.
7986
7987 * xdisp.c (set_iterator_stop_pos): Take glyph_check_pos into
7988 account.
7989 (reseat_iterator): Set glyph_check_pos. Handle case where
7990 new position is < original position.
7991 (check_iterator_glyph_property): Handle glyph property in strings.
7992 (next_element_from_string): Call above function.
7993 (next_element_from_display_vector): Handle faces in glyphs.
7994 (get_next_display_element): Set face_id of glyphs for
7995 control chars to zero.
7996
7997 * Makefile.in (term.o): Add dependency on dispextern.h.
7998
7999 * xdisp.c (syms_of_xdisp): Add symbol `glyph'.
8000 (display_line): Handle marginal areas.
8001 (move_iterator_in_display_line_to): Likewise.
8002
8003 * xfaces.c (Finternal_make_lisp_face): Assign Lisp faces an id.
8004
8005 * xfaces.c (face_at_buffer_position): Don't merge with nil
8006 text property.
8007 (face_at_string_position): Ditto.
8008
8009 * dispextern.h (struct display_iterator): Use a stack of saved
8010 values instead of saving check positions etc. individually.
8011
8012 * xdisp.c (set_iterator_to_next): If end of Lisp string reached,
8013 maybe pop the iterator's stack.
8014 (save_iterator_settings): Push a value on iterator's stack.
8015 (get_overlay_strings_at_iterator_position): Use it.
8016 (restore_iterator_settings): Pop the stack.
8017 (set_iterator_to_next_overlay_string): Use it.
8018
8019 * xfaces.c (try_font_list): Use alternative font families.
8020
80211998-04-26 Gerd Moellmann <gerd@gnu.org>
8022
8023 * xfaces.c (Fset_face_font_sort_order): Set the order in which
8024 font selection matches fonts.
8025 (Fface_font_sort_order): Return the font sort order.
8026 (best_matching_font): Find best matching font based on sort order.
8027 (cmp_font_names): Sort by given sort order.
8028
8029 * dispextern.h (struct display_iterator): New member faces_p.
8030 * xdisp.c (init_iterator): Initialize it->faces_p.
8031 (compute_face_at_iterator_string_position): Use it.
8032 (compute_face_at_iterator_position): Use it.
8033 (init_iterator): Use it.
8034 (display_mode_line): Ditto.
8035
8036 * xdisp.c (get_next_display_element): Put code choosing a face
8037 when the charset changes in #ifdef HAVE_FACES.
8038
8039 * dispextern.h (FACE_FOR_CHARSET): Replacement for function
8040 lookup_face_for_charset.
8041
8042 * xfaces.c (free_font_names): Renamed from free_split_font_names.
8043 (free_all_realized_faces): Renamed from remove_all_realized_faces.
8044
80451998-04-25 Gerd Moellmann <gerd@gnu.org>
8046
8047 * xfaces.c (best_matching_font): Return the name of the best
8048 matching font in an array of font_name structures.
8049 (choose_face_font): Use it.
8050 (choose_face_fontset_font): Use it.
8051 (find_best_weight_font): If final font found has same weight as
8052 the font we started with, return the original font because it is a
8053 better match for the resolution of the display.
8054 (find_best_slant_font): Likewise.
8055 (merge_face_vector_with_property): Check more invalid attribute
8056 values.
8057 (lface_suitable_for_charset_p): Replaced by a macro with the same
8058 name in upper-case.
8059
80601998-04-24 Gerd Moellmann <gerd@gnu.org>
8061
8062 * dispextern.h (struct face): Member
8063 fontset_chosen_for_realization_p removed.
8064
8065 * xfaces.c (cache_face): If face->fontset >= 0, add face to the
8066 end of the collision list, so that we find more specific faces
8067 first.
8068 (lookup_face_for_charset): Look up a new face if face->fontset >=
8069 0, and charset != CHARSET_COMPOSITION.
8070
8071 * xfaces.c (split_font_name): Return zero if point size of font
8072 couldn't be computed.
8073 (realize_default_face): Use ASCII font of a fontset to determine
8074 font-related attributes of the default face.
8075 (face_fontset): Return fontset id for face family.
8076 (font_list): Additional parameter font_pattern. If non-nil,
8077 return fonts matching that pattern.
8078
80791998-04-23 Gerd Moellmann <gerd@gnu.org>
8080
8081 * xfaces.c (choose_face_fontset): If new fontset cannot be
8082 constructed, or fontset name cannot be split, return the id of the
8083 standard fontset.
8084
8085 * xterm.c (XTframe_up_to_date): Check that frame is an X frame.
8086 When Emacs starts, it may be called for the initial frame which
8087 isn't an X frame.
8088
8089 * dispextern.h (struct face): New members foreground_defaulted_p,
8090 background_defaulted_p.
8091 (struct face): Members `mask' and `cache' removed.
8092
8093 * xfaces.c (load_color): Set them.
8094 (free_face_colors): Check them.
8095 (xlfd_point_size): Return -1 if resolution or point size of
8096 font unknown.
8097
8098 * xfaces.c (free_font): Removed.
8099 (load_face_font_or_fontset): Renamed from load_font.
8100 (load_face_font_or_fontset): Use message2 instead of signalling.
8101 (load_color): Likewise.
8102 (load_pixmap): Likewise.
8103
8104 * xterm.h (struct x_display_info): Add screen_dpi.
8105 * xterm.c (x_term_init): Initialize it.
8106 * xfaces.c (xlfd_point_size): Use it.
8107 (split_font_name): Compute numeric XLFD_RESY.
8108 (cmp_font_names): Make fonts with an y-resolution more
8109 similar to that of the frame appear first in the result.
8110
8111 * xfaces.c (cache_face): If fontset_chosen_for_realization_p
8112 is set for the face to cache, add it to the end of the collision
8113 list.
8114 (try_font_list): If fonts for given family and registry cannot
8115 be found, first try to keep the registry, and choose a different
8116 family.
8117 (choose_face_font): Allow nfonts == 0.
8118 (try_font_list): Give up if no font matches given registry.
8119
81201998-04-22 Gerd Moellmann <gerd@gnu.org>
8121
8122 * xterm.c (x_get_char_font_and_encoding): Get font_info from
8123 font info id of the face.
8124
8125 * xfaces.c (load_font): Set font_info_id.
8126 (realize_face): Ditto.
8127
8128 * dispextern.h (struct face): Change member font_info to
8129 font_info_id.
8130
8131 * fontset.h (FONT_INFO_ID): Build an ID from a font_info pointer.
8132 (FONT_INFO_FROM_ID): Get a font_info pointer from an ID.
8133
8134 * xdisp.c (extend_face_to_end_of_line): If IT's current charset
8135 isn't ASCII, get the ASCII face before adding a space.
8136 (append_space): Likewise.
8137 (insert_left_trunc_glyphs): Initialize truncate_it's charset
8138 to -1 so that it will compute the right face for the truncation
8139 glyphs.
8140
8141 * xfaces.c (realize_face): Set
8142 face->fontset_chosen_for_realization_p.
8143 (lookup_face_for_charset): If fontset wasn't specified originally
8144 and new charset != CHARSET_COMPOSITION, get a new face for that
8145 charset.
8146
8147 * dispextern.h (struct face): New member
8148 fontset_chosen_for_realization_p_specified_p. Set to 1 when
8149 realize_face has chosen a fontset to display composite characters
8150 for a Lisp face not specifying a fontset.
8151
8152 * xdisp.c (extend_face_to_end_of_line): Move tests for default
8153 face and line already filled here. Don't do anything if current
8154 face hasn't a relief or has a background equal to the frame
8155 background.
8156
8157 * xfaces.c (split_font_name): Additional parameter numeric_p.
8158 Don't compute numeric values if it is non-zero.
8159 (choose_face_fontset): Call split_font_name with numeric_p == 0.
8160 (choose_face_fontset): Print a message if fontset contains a
8161 font whose name cannot be split into fields.
8162
81631998-04-21 Gerd Moellmann <gerd@gnu.org>
8164
8165 * xfaces.c (try_font_list): Try to load a list of fonts,
8166 possibly using less restrictive patterns.
8167 (choose_face_font): Use it.
8168
8169 * xterm.c (x_get_char_font_and_encoding): For charset !=
8170 CHARSET_ASCII use font_info of face if face hasn't a fontset set.
8171
8172 * dispextern.h (struct face): New member font_info.
8173
8174 * xfaces.c (load_font): Use FS_LOAD_FONT to load fonts for faces
8175 specifying a fontset as well as those not having a fontset.
8176 (free_font): Make it empty.
8177 (realize_face): Use changed load_font.
8178
8179 * xterm.c (x_get_char_font_and_encoding): If face doesn't
8180 fit for charset, get the right one.
8181
8182 * xfaces.c (load_font): Take frame and name parameter, return
8183 font.
8184 (free_font): Likewise.
8185 (split_font_name): Compute numeric values for height, swidth etc.
8186 (cmp_font_names): Use them.
8187 (find_best_width_font): Ditto.
8188 (find_best_height_font): Ditto.
8189 (find_best_weight_font): Ditto.
8190 (find_best_slant_font): Ditto.
8191 (lface_hash): Add weight, slant, swidth and relief to hash value.
8192 (lface_equal_p): Make it faster.
8193 (lface_from_symbol): Use assq_no_quit.
8194 (Fnote_default_face_changed): Removed.
8195 (cmp_font_names): Use strcmp instead of xstricmp.
8196 (face_charset_registries): Removed.
8197
81981998-04-20 Gerd Moellmann <gerd@gnu.org>
8199
8200 * frame.h (CHECK_FRAME): Give this macro a statement form.
8201 (CHECK_LIVE_FRAME): Ditto.
8202
8203 * xfaces.c (find_best_width_font): Find the best matching font
8204 for a given width.
8205 (find_best_height_font): Likewise for height.
8206 (find_best_weight_font): Likewise for weight.
8207 (find_best_slant_font): Likewise for slant.
8208 (choose_face_font): Use them.
8209 (get_lface_attributes): Always return frame-local face attrs.
8210 (Finternal_merge_in_global_face): Merge local face with
8211 global face attributes.
8212
8213 * xfaces.c (check_lface_attrs, check_lface): Check consistency of
8214 Lisp face attributes.
8215
82161998-04-19 Gerd Moellmann <gerd@gnu.org>
8217
8218 * xfaces.c (Finternal_set_lisp_face_attribute): Add :bold
8219 and :italic for compatibility.
8220 (Finternal_set_lisp_face_attribute_from_resource): Handle
8221 :bold and :italic. Handle boolean resource values for
8222 :underline and :italic.
8223
8224 * xfns.c (display_x_get_resource): Make it externally visible.
8225
8226 * xfaces.c (lface_from_symbol): Take a frame as parameter.
8227 If that frame is non-null, return the frame-local face.
8228 (Finternal_make_lisp_face): Additional frame argument.
8229 (lface_attributes): Get face attributes from global and frame-local
8230 definitions.
8231 (Finternal_lisp_face_equal_p): Additional frame argument.
8232 (merge_lisp_face_vector_with_property): Ditto.
8233 (Frealize_basic_faces): Removed.
8234 (Finternal_get_lisp_face_attribute): Additional frame argument.
8235 (Finternal_lisp_face_p): Ditto.
8236 (load_color) [MSDOS]: Removed because it isn't clear how
8237 to do this for MS-DOS.
8238
8239 * xfaces.c (lface_from_symbol): Get global face definition
8240 from face-global-alist.
8241
8242 * xfaces.c (Finternal_set_lisp_face_attribute): Allow `t'
8243 as values for :underline and :inverse-video.
8244 (Finternal_set_lisp_face_attribute): Allow nil values.
8245
82461998-04-17 Gerd Moellmann <gerd@gnu.org>
8247
8248 * xfaces.c (Finternal_make_lisp_face): Return Lisp face vector.
8249
8250 * xfaces.c (syms_of_xfaces): Add Vall_faces.
8251 (Finternal_make_lisp_face): Add new face to Vall_faces.
8252
8253 * xdisp.c (echo_area_display): Remove code recomputing faces.
8254 (redisplay_internal): Ditto.
8255 (init_iterator): Do it here.
8256
8257 * xfaces.c (choose_face_font): Check that swidth doesn't change
8258 for subusequent attributes.
8259 (xlfd_point_size): Return int.
8260
8261 * xdisp.c (redisplay_internal, echo_area-display): If realized
8262 faces have been cleared, call recompute_basic_faces.
8263
8264 * xfaces.c (recompute_basic_faces): Free realized faces. Reset
8265 face_attributes_changed_p.
8266 (remove_all_realized_faces): Remove all realized faces on
8267 all frames.
8268 (Finternal_set_lisp_face_attribute): Call remove_all_realized_faces.
8269
8270 * xdisp.c (redisplay_internal): If face attributes have been
8271 changed since the last redisplay, recompute basic faces.
8272 (echo_area_display): Ditto.
8273
8274 * xfaces.c (clear_face_gcs): Renamed from clear_realized_face_cache.
8275
8276 * xfaces.c (min_char_bounds): If face cache not yet present,
8277 don't try to get font dimensions from faces.
8278
8279 * xterm.c (x_frame_mode_line_height): If face cache not present
8280 set, return default height.
8281
8282 * alloc.c (mark_face_cache): Check for null faces. Correct
8283 index bug.
8284
8285 * dispextern.h (struct face): Renamed from struct rface. Member
8286 underline renamed underline_p. Make it a bit-field.
8287
8288 * xfaces.c (init_frame_faces): Allocate face cache.
8289 (free_frame_faces): Free face cache.
8290 (recompute_basic_faces): Realize basic faces only if face cache is
8291 allocated, i.e. after init_frame_faces has been called.
8292
8293 * frame.c (make_frame): Initialze face cache with null.
8294
8295 * xfaces.c (same_size_fonts): Removed.
8296
8297 * xterm.c (x_set_glyph_string_gc): Add post-condition
8298 s->gc != 0.
8299 (x_set_mouse_face_gc): Ditto.
8300 (x_set_mode_line_face_gc): Ditto.
8301
8302 * xfaces.c (realize_default_face): Return int. Value is
8303 zero if frame params don't contain enough information to
8304 realize the default face.
8305 (realize_basic_faces): Ditto.
8306 (init_frame_faces): Realize basic faces.
8307
8308 * xfns.c (x_set_font): First store real font name in frame
8309 parameters, then call recompute_basic_faces.
8310
8311 * xfaces.c (recompute_basic_faces): Call realize_basic_faces.
8312
83131998-04-16 Gerd Moellmann <gerd@gnu.org>
8314
8315 * xfaces.c (syms_of_xfaces): Correct calls to defsubr.
8316
8317 * xfns.c (Fx_face_fixed_p): Removed.
8318 (Fx_list_fonts): Moved to xfaces.c.
8319
8320 * xfaces.c (compute_face_at_buffer_pos): Renamed to
8321 face_at_buffer_position. Parameter charset removed; always
8322 compute face for CHARSET_ASCII.
8323 (face_at_string_position): Renamed from
8324 compute_face_at_string_pos. Parameter charset removed; always
8325 compute for CHARSET_ASCII.
8326 (lookup_face_for_charset): Take frame parameter instead of
8327 face_cache.
8328 (lookup_face): Ditto.
8329 (compute_char_face): Renamed from compute_glyph_face.
8330
8331 * xdisp.c (init_iterator): Initialize charset member.
8332 (reseat_iterator_to_string): Ditto.
8333 (get_charset_at_buffer_position): Determine charset at
8334 buffer position in current_buffer.
8335 (reseat_iterator): Call above function.
8336 (compute_face_at_iterator_position): Call
8337 compute_face_at_buffer_pos.
8338 (compute_face_at_iterator_string_position): Call
8339 compute_face_at_string_pos.
8340 (get_face_from_id): Removed.
8341 (get_face_from_cursor_pos): Call compute_face_at_buffer_pos.
8342 Call get_charset_at_buffer_position.
8343 (reseat_iterator): Determine face if charset at pos differs
8344 from iterator's charset.
8345 (reseat_iterator_to_glyph_pos): Removed.
8346
8347 * xfaces.c (compute_face_at_bufpos): Remove parameter charset.
8348 Determine charset from buffer position.
8349 (compute_string_char_face): Renamed to compute_face_at_string_pos.
8350 (compute_face_at_bufpos): Renamed to compute_face_at_buffer_pos.
8351
8352 * dispextern.h (struct display_iterator): Add member charset.
8353
83541998-04-15 Gerd Moellmann <gerd@gnu.org>
8355
8356 * xfaces.c (compute_char_face): Removed.
8357
8358 * xdisp.c (get_overlay_arrow_glyph_row): Use compute_glyph_face
8359 with new parameter list.
8360
8361 * xfaces.c (region_face): Removed.
8362 (allocate_face): Removed.
8363 (copy_face): Ditto.
8364 (face_eql): Removed.
8365 (intern_face): Removed.
8366 (clear_face_cache): Removed.
8367 (load_font): Ditto.
8368 (unload_font): Ditto.
8369 (load_color): Ditto.
8370 (unload_color): Ditto.
8371 (new_computed_face): Ditto.
8372 (intern_computed_face): Ditto.
8373 (ensure_face_ready): Ditto.
8374 (merge_faces): Ditto.
8375 (compute_base_face): Ditto.
8376 (merge_face_list): Ditto.
8377 (Fmake_face_internal): Removed.
8378 (Fset_face_attribute_internal): Ditto.
8379 (face_name_id_number): Removed.
8380 (Fframe_face_alist): Ditto.
8381 (Fset_frame_face_alist): Ditto.
8382 (Finternal_next_face_id): Ditto.
8383
8384 * xterm.h (struct x_output): Remove computed_faces, and
8385 param_faces. Remove macros accessing them.
8386
8387 * xfaces.c: Entirely new face implementation added.
8388
83891998-04-11 Gerd Moellmann <gerd@gnu.org>
8390
8391 * dispextern.h (struct glyph_pos): Member `bufpos' renamed
8392 `charpos'.
8393
83941998-04-10 Gerd Moellmann <gerd@gnu.org>
8395
8396 * xterm.c (x_scroll_bar_move): Clear only regions not covered by
8397 scroll bar window to reduce flickering. Clear entire height.
8398
8399 * xdisp.c (move_iterator_vertically_backward): Set iterator's
8400 current_x and hpos to zero after moving to previous line
8401 start.
8402
84031998-04-03 Gerd Moellmann <gerd@gnu.org>
8404
8405 * frame.h (FRAME_FACE_CACHE): Access to a frame's face cache.
8406
8407 * xfaces.c (xlfd_point_size): Compute relative point size of
8408 fonts from font and frame resolution.
8409 (sort_fonts): New function to sort fonts, temporarily setting
8410 font_frame to the frame in effect.
8411 (xlfd_point_size): Take additional frame parameter to be able
8412 to get at the display's resolution.
8413
8414 * xterm.c (x_setup_relief_colors): Use WHITE_PIX_DEFAULT and
8415 BLACK_PIX_DEFAULT.
8416 (x_setup_relief_color): Use FRAME_X_SCREEN instead of default
8417 screen of display.
8418
84191998-03-31 Gerd Moellmann <gerd@gnu.org>
8420
8421 * xfaces.c (choose_face_fontset): Instantiate fontsets.
8422
8423 * fontset.h: Add external declarations for Vfontset_alias_alist
8424 and Vglobal_fontset_alist.
8425
8426 * xfaces.c (merge_lisp_face_vector_with_property): Simplified.
8427 (realize_default_face): If frame parameters contain an artificial
8428 font name naming a fontset, set the family of the default face to
8429 the fontset name given by the registry.
8430
8431 * Makefile.in (alloc.o): Add dependency to dispextern.h.
8432
84331998-03-22 Gerd Moellmann <gerd@gnu.org>
8434
8435 * alloc.c (mark_object): Add function prototype. Add cast to
8436 Lisp_Object pointer in call to mark_object for symbol names
8437 because this otherwise gives a warning from gcc 2.8.1.
8438 (mark_face_cache): Mark Lisp objects in realized faces.
8439
84401998-03-19 Gerd Moellmann <gerd@gnu.org>
8441
8442 * frame.h (struct frame): Add member face_cache.
8443
8444 * alloc.c (mark_object): Mark face cache.
8445 (mark_face_cache): Mark Lisp faces in face cache of frame.
8446
8447 * frame.c (make_frame): Initialize face_cache.
8448 (Fdelete_frame): Free it.
8449
84501998-03-18 Gerd Moellmann <gerd@gnu.org>
8451
8452 * xfaces.c: Very first skeleton of functions for face realization,
8453 face merging, face cache etc.
8454
8455 * dispextern.h (struct rface): Realized faces. Will replace
8456 struct face when tested.
8457 (struct face_cache): Realized face caches.
8458
8459 * xdisp.c (init_iterator): Initialize area member of display
8460 iterator.
8461
84621998-03-17 Gerd Moellmann <gerd@gnu.org>
8463
8464 * xterm.c (x_append_glyph): Use it->area to store glyphs.
8465
8466 * dispextern.h (struct display_iterator): New member area.
8467
8468 * xterm.c (note_overwritten_text_cursor): Note when the text
8469 cursor of a window is overwritten.
8470
8471 * xdisp.c (set_cursor_from_row): If PT is not found in the
8472 row, display the cursor at the start of the row.
8473
8474 * dispnew.c (direct_output_forward_char): Call
8475 set_cursor_from_row.
8476
8477 * xdisp.c (setup_iterator_overlay_strings_from_glyph_pos): If
8478 position is not in an overlay string, set iterator's position and
8479 method explicitly so.
8480 (set_cursor_from_row): Correct cursor position calculation.
8481 Make it externally visible.
8482 (redisplay_window): Call set_cursor_from_row so that there is only
8483 one place where the cursor position is calculated from a current
8484 row.
8485
8486 * dispextern.h (struct display_iterator): New member
8487 overlay_strings_at_end_processed_p.
8488
8489 * xdisp.c (check_iterator): Perform sanity checks on
8490 display_iterators.
8491 (next_element_from_buffer): Check for overlay strings at ZV.
8492
84931998-03-16 Gerd Moellmann <gerd@gnu.org>
8494
8495 * buffer.c (init_buffer_once): Add left_margin_width and
8496 right_margin_width to buffer_local_flags.
8497
8498 * dispnew.c (margin_glyphs_to_reserve): Function computing
8499 number of glyphs to reserve for a marginal area.
8500 (adjust_glyph_matrix): Call it.
8501 (adjust_frame_glyphs_for_frame_redisplay): Return if frame
8502 is not alive.
8503
8504 * window.c (Fset_window_margins): Allow floats.
8505
8506 * buffer.c (syms_of_buffer): Add buffer-local variables
8507 left-margin-width and right-margin-width. Add defaults
8508 default-left-margin-width and default-right-margin-width.
8509
8510 * buffer.h (struct buffer): New members left_margin_width
8511 and right_margin_width.
8512
8513 * window.c (Fset_window_margins): Make window the last and
8514 optional argument.
8515
8516 * xterm.c (x_draw_glyphs): Compute x-positions for rows with
8517 flag no_marginal_areas_p differently.
8518 (x_clear_end_of_line): Ditto.
8519 (x_draw_glyph_string_relief): Compute width of relief differently
8520 for rows with flag no_marginal_areas_p.
8521
8522 * dispnew.c (update_window_line): Update marginal areas only
8523 for rows that don't have no_marginal_areas_p set.
8524
8525 * xdisp.c (display_mode_line): Set row's flag no_marginal_areas_p.
8526 (display_menu_bar): Ditto.
8527
8528 * dispextern.h (struct glyph_row): New member no_marginal_areas_p.
8529
8530 * dispnew.c (adjust_glyph_matrix): Compute glyph pointers for
8531 marginal areas in window-based redisplay.
8532
8533 * dispextern.h (struct glyph_matrix): New members
8534 left_margin_glyphs and right_margin_glyphs.
8535
85361998-03-15 Gerd Moellmann <gerd@gnu.org>
8537
8538 * minibuf.c (read_minibuf_unwind): Return Lisp_Object.
8539
8540 * charset.c (non_ascii_char_to_string): Use char type parameters
8541 because the function is used that way from outside. Use unsigned
8542 char internally.
8543
8544 * window.c (change_window_height): Return void.
8545 (make_dummy_parent): Return void.
8546 (init_window_once): Return void.
8547 (syms_of_window): Ditto.
8548 (keys_of_window): Ditto.
8549 (delete_window): Correct return with and without value.
8550
8551 * buffer.c (record_buffer): Return void.
8552
8553 * marker.c (unchain_marker): Return void.
8554
8555 * window.c (unshow_buffer): Return void.
8556 (replace_window): Ditto.
8557 (delete_window): Ditto.
8558
8559 * term.c (delete_glyphs_hook): Void return type.
8560 (ring_bell_hook): Ditto.
8561 (set_terminal_window_hook): Ditto.
8562
8563 * sysdep.c (init_sigio): Return void.
8564
8565 * xterm.c (x_set_window_size): Return void.
8566 (x_calc_absolute_position): Ditto.
8567 (x_set_offset): Ditto.
8568 (x_focus_on_frame): Ditto.
8569 (x_unfocus_frame): Ditto.
8570 (x_make_frame_visible): Ditto.
8571 (x_make_frame_invisible): Ditto.
8572 (x_iconify_frame): Ditto.
8573 (x_destroy_window): Ditto.
8574 (x_wm_set_window_state): Ditto.
8575 (x_wm_set_icon_pixmap): Ditto.
8576 (x_wm_set_icon_position): Ditto.
8577 (x_initialize): Ditto.
8578 (x_error_quitter): Ditto.
8579 (x_destroy_window): Use xfree instead of free.
8580
8581 * keyboard.c (clear_waiting_for_input): Return void.
8582
8583 * xterm.c (x_wm_set_size_hint): Return void.
8584 (x_raise_frame): Ditto.
8585 (refreshicon): Ditto.
8586 (x_error_catcher): Ditto.
8587 (x_clear_errors): Ditto.
8588
8589 * keyboard.c (record_asynch_buffer_change): Return void.
8590
8591