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