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