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