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