(Faces): Document that changing the colors of the `default' face
[bpt/emacs.git] / src / ChangeLog
CommitLineData
fbc7f2a6
GM
12001-08-02 Gerd Moellmann <gerd@gnu.org>
2
3 * xdisp.c (redisplay_internal): Take message_cleared_p into
4 account only if minibuf_level == 0.
5
81b1a79d
GM
62001-08-01 Gerd Moellmann <gerd@gnu.org>
7
e5c60873
GM
8 * xdisp.c (redisplay_internal): Add a check for the last
9 displayed message.
10
6e019995
GM
11 * xdisp.c (message_cleared_p): New variable.
12 (clear_message): Set message_cleared_p when clearing the current
13 message.
14 (redisplay_internal): Look at message_cleared_p to capture
15 the case that the echo area should be cleared.
16
308a74d8
GM
17 * keyboard.c (command_loop_1): Fix spelling of
18 resize_echo_area_exactly.
19
20 * dispextern.h (resize_echo_area_exactly): Fix typo in function
21 name.
22
23 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
24
81b1a79d
GM
25 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
26 current matrix when the window gets smaller.
27
ada329e6
EZ
282001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
29
30 * print.c (strout): Cast the character passed to insert_char to
31 unsigned char, to avoid sign extension when it is promoted to int.
32
ed86208c
GM
332001-07-31 Gerd Moellmann <gerd@gnu.org>
34
35 * fileio.c (Finsert_file_contents): Don't treat a return value
36 of 0 from emacs_read as an IO error.
37
6594ac22
GM
382001-07-30 Gerd Moellmann <gerd@gnu.org>
39
cef68af5
GM
40 * keyboard.c (abs): New macro.
41 (double_click_fuzz): New variable.
42 (make_lispy_event): Use it to determine what makes a double-click.
43 (syms_of_keyboard): DEFVAR_INT it.
44
6594ac22
GM
45 * xmenu.c (set_frame_menubar): Take into account that
46 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
47 <raeburn@gnu.org>.
48
75c5350a
GM
492001-07-27 Gerd Moellmann <gerd@gnu.org>
50
51 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
52
53 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
54 of row's visible height.
55
56 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
57 deal with the first overlay string having an image `display'
58 property.
59 (try_window_reusing_current_matrix, compute_line_metrics): Fix
60 computation of row's visible height for the case that part of the
61 row is invisible above and part of the row is at the same time
62 invisible below the window.
63
ac49effe
GM
642001-07-26 Gerd Moellmann <gerd@gnu.org>
65
66 * xfns.c (x-show-tip): Doc fix.
67
68 * xfns.c (Vx_max_tooltip_size): New variable.
69 (syms_of_xfns): DEFVAR_LISP it.
70 (Fx_show_tip): Set frame's window_width to the width of the
71 window. Use a maximum tooltip size specified by
72 Vx_max_tooltip_size, if that has valid contents.
73 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
74
8c3b00cb
AI
752001-07-26 Andrew Innes <andrewi@gnu.org>
76
77 * w32term.c (x_display_list): New variable.
78 (w32_term_init): Set it.
79
80 * w32term.h (x_display_list): New extern.
81
16098288
GM
822001-07-26 Gerd Moellmann <gerd@gnu.org>
83
84 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
85 is non-nil, instead of when redisplaying_p is non-zero. See
86 comment there.
87 (mark_window_display_accurate_1): Add an assertion.
88
64c5be50
GM
892001-07-25 Gerd Moellmann <gerd@gnu.org>
90
e743f599
GM
91 * dispextern.h (struct it): Increase size of ctl_chars to 16.
92
563b384d
GM
93 * xfns.c (Fx_file_dialog): Block/unblock input while processing
94 events so that we get a chance of processing expose events.
95
64c5be50
GM
96 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
97
296808a5
GM
982001-07-24 Gerd Moellmann <gerd@gnu.org>
99
100 * xfns.c (valid_image_p): Protect better against invalid image
101 specifications. Previous code could signal an error.
102
5247262a
GM
1032001-07-23 Gerd Moellmann <gerd@gnu.org>
104
f1004faf
GM
105 * indent.c (current_column): Fix column computation in the
106 presence of display table entries.
107 (current_column_1, Fmove_to_column, compute_motion): Likewise.
108
dd42b31a
GM
109 * dispnew.c (adjust_glyph_matrix): In the optimization for
110 windows whose height has changed, use the new window height
111 to compute which rows to invalidate.
112
9e5a7f2a
GM
113 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
114 (MAX_10_EXP): New macro.
115 (Fformat): Use it.
116
5247262a
GM
117 * coding.c (code_convert_region): Handle the multibyte case if
118 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
119
177ab8ce
GM
1202001-07-20 Gerd Moellmann <gerd@gnu.org>
121
6e07c0a5
GM
122 * dispextern.h (struct face): Change type of `stipple' to
123 int; it's an ID.
124
177ab8ce
GM
125 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
126
b5b80599
GM
1272001-07-19 Gerd Moellmann <gerd@gnu.org>
128
4e2a256b
GM
129 * dispnew.c (update_window): Don't set the cursor at the end
130 of the update if display update has been paused.
131
b5b80599
GM
132 * composite.h (syms_of_composite): Renamed from
133 syms_of_composition.
134
c1fd9232
KR
1352001-07-18 Ken Raeburn <raeburn@gnu.org>
136
137 * fns.c (Fset_char_table_default): Check that a charset is defined
138 before checking its dimension.
139
928a85c1
KR
1402001-07-17 Ken Raeburn <raeburn@gnu.org>
141
142 * coding.c (setup_coding_system): Don't do any designation based
143 on reg_bits if charset is not yet defined.
144
232e274c
KR
145 * lisp.h (XVECTOR): Verify correct object type before returning a
146 pointer, using eassert.
147
de11c1ea
GM
1482001-07-17 Gerd Moellmann <gerd@gnu.org>
149
150 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]: Increase
151 to 4096 because of paste problems reported on GNU/Linux.
152
467f1209
GM
1532001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
154
155 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
156
c3d6be34
GM
1572001-07-16 Gerd Moellmann <gerd@gnu.org>
158
c1d61a7d
GM
159 * fileio.c (unwind_read): Function removed.
160 (read_non_regular, read_non_regular_quit): New functions.
161 (Finsert_file_contents): When reading from non-regular files,
162 arrange to catch a `quit' and terminate the loop. Rearrange
163 code so that a `quit' when reading from a regular file doesn't
164 insert text in the buffer.
165
c3d6be34
GM
166 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
167 Clear faces afterwards.
168 (clear_font_table): Take a x_display_info parameter. Don't free
169 fonts being the default font of any frame on the given display.
170
e06aa1f9
GM
1712001-07-13 Gerd Moellmann <gerd@gnu.org>
172
173 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
174 instead of CHAR_STRING which can signal an error.
175
176 * charset.c (char_to_string_1): Extracted from char_to_string.
177 Return -1 instead of signaling an error.
178 (char_to_string): Use it.
179
180 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
181
176c92e6
SM
1822001-07-12 Stefan Monnier <monnier@cs.yale.edu>
183
184 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
185 is t, don't try to append anything to it.
186
1c56232f
EZ
1872001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
188
189 * dired.c (file_name_completion): Pass dp->d_name to
190 Fstring_match, not elt, which is always nil here.
191
1d2b2268
GM
1922001-07-12 Gerd Moellmann <gerd@gnu.org>
193
194 * xselect.c (x_decline_selection_request): Handle errors
195 caused by receivers that have vanished.
196
197 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
198 ignoring events on foreign windows in #if 0. Always dispatch
199 the event after checking it with x_handle_property_notify.
200
201 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
176c92e6
SM
202 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
203 TRACE macros to facilitate debugging. Add additional trace statements.
1d2b2268
GM
204 (toplevel): Add prototypes for file-local functions.
205 (x_atom_to_symbol): Remove DPYINFO parameter.
206
fe5a0162
SM
2072001-07-11 Stefan Monnier <monnier@cs.yale.edu>
208
209 * w32menu.c (menubar_selection_callback, w32_menu_show):
210 Initialize `entry' to nil.
211 (w32_dialog_show): Remove unused `save_wv' variable.
212 (name_is_separator): Recognize "--:foo" and "--foo-bar".
213
a777242c
GM
2142001-07-11 Gerd Moellmann <gerd@gnu.org>
215
8ee5b6a3
GM
216 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
217
d0e2444e
GM
218 * fileio.c (unwind_read): Print a message when discarding inserted
219 text or switching the buffer to unibyte. Change parameter.
220 (Finsert_file_contents): Don't pass VISIT to unwind_read.
fe5a0162 221
a777242c
GM
222 * fileio.c (unwind_read): New function.
223 (Finsert_file_contents): Record it as unwind-function for
224 the case that reading is interrupted by C-g.
225
ae794295
GM
2262001-07-10 Gerd Moellmann <gerd@gnu.org>
227
fe5a0162 228 * dispnew.c (update_window): Don't skip the header-line
58f8612a
GM
229 update when scrolling_window returns 0.
230
6b05fae3
GM
231 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
232
233 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
58f8612a 234 for the case that x_decode_color signals an error.
6b05fae3 235
ae794295
GM
236 * xdisp.c (add_to_log): Do nothing if called asynchronously.
237
bb6e8cee
GM
2382001-07-09 Gerd Moellmann <gerd@gnu.org>
239
240 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
241 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
242 around ioctls.
243
36b40a8a
EZ
2442001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
245
24b97d4b
EZ
246 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
247 doc string line for dos-timezone-offset.
248
36b40a8a
EZ
249 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
250 inline assembly, to avoid compiler warnings.
24b97d4b
EZ
251 (syms_of_msdos): Add \n\ at the end of a line in the doc string
252 line for dos-unsupported-char-glyph.
36b40a8a
EZ
253
254 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
255
0967b4b0
GM
2562001-07-05 Gerd Moellmann <gerd@gnu.org>
257
f25cfe53
GM
258 * sound.c: Include Emacs' header files with #include "...".
259
0967b4b0
GM
260 * eval.c (specbind): Additionally record the buffer that was
261 current when a buffer-local or frame-local variable was bound.
262
c347a1c3
GM
2632001-07-04 Gerd Moellmann <gerd@gnu.org>
264
265 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
266 to unibyte characters in unibyte buffers.
267
6332ca8a
GM
2682001-07-03 Gerd Moellmann <gerd@gnu.org>
269
38472d44
GM
270 * eval.c (specbind): If SYMBOL has a frame-local binding, record
271 the frame on the binding stack. Change format of entries for
272 local bindings on the binding stack to '(SYMBOL . WHERE)'.
273 (unbind_to): Handle unbinding a frame-local variable.
274
6332ca8a 275 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
fe5a0162 276 glyphs and truncation glyphs at the end of a row from its pixel width.
6332ca8a
GM
277 (dump_glyph_row): Print row's continuation_lines_width.
278 (try_window_id): Take the shortcut if ZV is visible in the
279 window, but there are actually no changes at ZV.
280
63d1b174
GM
2812001-07-02 Gerd Moellmann <gerd@gnu.org>
282
4c175203
GM
283 * xterm.h (x_free_dpy_colors): Add prototype.
284
285 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
286 right number of arguments.
287
0b54ce28
GM
288 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
289 ($(lwlibdir)TAGS): New target.
4c175203 290 (TAGS): Fix dependency list.
0b54ce28 291
63d1b174
GM
292 * xterm.c (x_list_fonts): Make sure XFreeFont is called
293 with input blocked.
294
d827466c
GM
2952001-06-30 Gerd Moellmann <gerd@gnu.org>
296
297 * emacs.c (main): Remove extern declaration for sys_nerr, which
298 isn't used and causes a compilation error with GCC 3.0 on
299 FreeBSD 4.3.
300
b5cb1ada
GM
3012001-06-27 Gerd Moellmann <gerd@gnu.org>
302
a5d3ec3f
GM
303 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
304 SIGIO around the code where Xt might wait for a
305 ConfigureNotifyEvent.
306 (toplevel): Include <signal.h> and syssignal.h.
307
b5cb1ada
GM
308 * sound.c (vox_configure, vox_close): Turn off atimers
309 around ioctls.
310
d9bad487
GM
3112001-06-26 Gerd Moellmann <gerd@gnu.org>
312
fdbb67fe
GM
313 * keyboard.c (read_char) <non_reread>: Record the previous idle
314 start time before calling timer_stop_idle.
315 (read_char) <reread_first>: After processing a help-echo event,
316 restore the previous idle start time.
317
d9bad487
GM
318 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
319 the start of invisible text.
320 (setup_for_ellipsis): New function.
321 (next_overlay_string): After all overlay strings have been
322 processed, display an ellipsis if necessary.
323 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
324 (push_it): Initialize display_ellipsis_p on the iterator's stack.
325
326 * dispextern.h (struct iterator_stack_entry): Add member
327 display_ellipsis_p.
328
2b9c25e0
GM
3292001-06-25 Gerd Moellmann <gerd@gnu.org>
330
80de57df
GM
331 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
332 on the value of the wait-for-wm frame parameter.
333
334 * xterm.h (struct x_output): Add member wait_for_wm.
335
336 * xfns.c (Qwait_for_wm): New variable.
337 (x_frame_parms): Add entry for `wait-for-wm".
338 (x_set_wait_for_wm): New function.
339 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
340 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
341
2b9c25e0
GM
342 * xdisp.c (try_window_id) <all changes below window end>: Don't
343 take this shortcut if ZV is visible in the window.
344 (try_window_id): When checking for window start being in changed
345 text, don't check that the buffer's size has changed.
346
f772775c
RS
3472001-06-23 Richard M. Stallman <rms@gnu.org>
348
349 * minibuf.c (Fcompleting_read): Doc fix.
350
fa9090b8
GM
3512001-06-19 Gerd Moellmann <gerd@gnu.org>
352
353 * composite.c (Ffind_composition_internal): Accept ZV
354 and a string's end position as POS.
355
f6f1beba
GM
3562001-06-18 Gerd Moellmann <gerd@gnu.org>
357
358 * composite.c (Ffind_composition_internal): Check POS
359 for validity.
360
0ae83348
EZ
3612001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
362
363 * editfns.c (Fmessage_box): If the frame is not under a window
364 system, output the message in the echo area.
365
e4cdc335
RS
3662001-06-14 Richard M. Stallman <rms@gnu.org>
367
368 * xdisp.c (try_window_id): When EOB is visible, don't treat
369 insertion at EOB as if it were "off the bottom of the screen."
370
a55a5f3c
AI
3712001-06-11 Andrew Innes <andrewi@gnu.org>
372
373 * w32proc.c (create_child): Add new parameter is_gui_app.
374 (w32_executable_type): Add new parameter is_gui_app.
375 (sys_spawnve): Use it.
376 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
377 SIGQUIT. This matches better how the signals are interpreted by
378 MSVC compiled programs.
379 (syms_of_ntproc): Update docstring.
380
1b85dc1c
SM
3812001-06-02 Stefan Monnier <monnier@cs.yale.edu>
382
383 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
384 well otherwise note_mouse_highlight might optimize away highlighting
385 if we pass over that same overlay again.
386
b75f8eab
EZ
3872001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
388
389 * lread.c (Fload): Document that the argument is run via
390 substitute-in-file-name.
391
94843cc1
GM
3922001-05-31 Gerd Moellmann <gerd@gnu.org>
393
b14659e6
GM
394 * Makefile.in (bootstrap-doc): New target.
395 (bootstrap-emacs): Depend on it.
396
0894672f
GM
397 * fileio.c (Fdo_auto_save): Don't try to create the directory of
398 auto-save-list-file-name when shutting down Emacs, because
399 creating the directory might signal an error, and leaves
400 Emacs in a strange state.
401
94843cc1
GM
402 * term.c: (tty_cursor_hidden): New variable.
403 (update_begin): Don't call tty_hide_cursor. Clean up.
404 (update_end, set_terminal_window, set_scroll_region): Clean up.
405 (ring_bell, reset_terminal_modes): Clean up.
406 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
407 on tty_cursor_hidden.
408 (write_glyphs): Call tty_hide_cursor.
409
db3a49a6
SM
4102001-05-30 Stefan Monnier <monnier@cs.yale.edu>
411
412 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
413
8bd189fb
GM
4142001-05-30 Gerd Moellmann <gerd@gnu.org>
415
6f1be3b9
GM
416 * xfns.c (enum image_value_type): New enumerator
417 IMAGE_STRING_OR_NIL_VALUE.
418 (parse_image_spec): Handle it.
419 (xbm_format, pbm_format): Use it for :foreground and :background.
420 (xbm_load, pbm_load): Check for nil color names.
421
8bd189fb
GM
422 * xterm.c (note_mouse_highlight): If an overlapping overlay
423 exists, but we find that we highlight the same overlay as before,
424 don't do the highlighting again.
425
7bdba03c
GM
4262001-05-29 Gerd Moellmann <gerd@gnu.org>
427
4c329aa8
GM
428 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
429 Protect unibyte strings created by replacing their multibyte
430 equivalents in menu_items.
431
e15e2828
GM
432 * keymap.c (Fsingle_key_description): NUL-terminate the string
433 buffer before calling build_string.
434
7bdba03c
GM
435 * callproc.c (Fcall_process): Deal with decode_coding returning
436 CODING_FINISH_INCONSISTENT_EOL.
437
89c8dc6c
GM
4382001-05-28 Gerd Moellmann <gerd@gnu.org>
439
db3a49a6 440 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
3d9d7a9b
GM
441 an item's name with its key description in case the description
442 is a multibyte string.
443
444 * keymap.c (Fsingle_key_description): Create a multibyte string
445 only if necessary.
446
eb04d6cd
GM
447 * macros.c (Fstart_kbd_macro): Doc fix.
448
8bd6307f
GM
449 * xterm.c (cursor_in_mouse_face_p): New function.
450 (x_draw_stretch_glyph_string): Use it to choose a different GC
451 when drawing a cursor within highlighted text.
452
e26c4089
GM
453 * editfns.c (char_property_eq): Put in #if 0.
454
455 * indent.c (string_display_width): Put in #if 0.
456
457 * lread.c (Fload): Remove unused label.
458
89c8dc6c
GM
459 * termcap.c (speeds): Put in #if 0.
460
9a1211f2
GM
4612001-05-18 Gerd Moellmann <gerd@gnu.org>
462
29148a3f
GM
463 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
464
9a1211f2
GM
465 * xfaces.c (xlfd_point_size): Don't divide pixel size from
466 transformation matrix by 10.
467
09393d07
GM
4682001-05-16 Gerd Moellmann <gerd@gnu.org>
469
470 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
471 only if it's equal to the former foreground pixel color.
db3a49a6 472 (x_set_foreground_color, x_set_background_color)
09393d07
GM
473 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
474
460e6bae
GM
4752001-05-16 Dave Love <fx@gnu.org>
476
477 * insdel.c (signal_before_change, signal_after_change): Consider a
478 local change hook which changes the buffer.
99c78ce8
GM
479
480 * process.c (read_process_output): Don't call signal_after_change
481 and update_compositions after insert_from_string_before_markers.
482
dbcf3c03
GM
4832001-05-16 Gerd Moellmann <gerd@gnu.org>
484
a90b3d3c
GM
485 * xfaces.c (split_font_name): Use the right field when
486 checking for `[...]' syntax.
487
1b7818b4
GM
488 * buffer.c (copy_overlays): New function.
489 (clone_per_buffer_values): Use it.
490
491 * buffer.h (OVERLAY_PLIST): New macro.
492
9bae8781
GM
493 * keymap.c (Fsingle_key_description): Replace a build_string with
494 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
495
dbcf3c03
GM
496 * fontset.c (Ffontset_info): Check that face is non-null
497 before accessing its fields.
498
8a1ae4dd
GM
4992001-05-15 Gerd Moellmann <gerd@gnu.org>
500
18a0a39e
GM
501 * keyboard.c (read_key_sequence): Prevent generating a fake
502 prefix key twice.
503
e335b66a
GM
504 * xfaces.c (split_font_name): Handle `[...]' for the right
505 font name fields.
506
8a1ae4dd
GM
507 * ccl.c (ccl_driver): Don't copy remaining bytes in case
508 of CCL_STAT_INVALID_CMD.
509
3cf80731
SM
5102001-05-14 Stefan Monnier <monnier@cs.yale.edu>
511
33568849
SM
512 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
513 in <var> has no default value yet.
514
3cf80731
SM
515 * xfaces.c (try_alternative_families): First try the FAMILY.
516 And if nothing is found in the end, try again with scalable fonts.
517 (try_font_list): Let try_alternative_families do a bit more of
518 the work. Only use FAMILY if it is not nil.
519 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
520
933b0249
GM
5212001-05-14 Gerd Moellmann <gerd@gnu.org>
522
58e5af83
GM
523 * xterm.c (note_mouse_highlight): Avoid changing the mouse
524 pointer shape when show_mouse_face has already done it.
33568849 525
58e5af83 526 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
557f7c34
GM
527 full-width rows.
528
7b16a6bf
GM
529 * xfaces.c (split_font_name): Make sure to leave the loop
530 with the right value of `i'.
3cf80731 531
933b0249
GM
532 * xfaces.c (split_font_name): Handle matrix transformations
533 in the pixel and point size fields of XLFD font names.
534 (xlfd_point_size): Likewise.
535
dddcbf00
EZ
5362001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
537
3cf80731 538 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
c7501041
EZ
539 (x_to_w32_font): Add prototype.
540
7689ef0b
EZ
541 * regex.c (malloc, realloc, free) [emacs]: Undefine before
542 redefining, to avoid compiler warnings.
543
e7c15bba
EZ
544 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
545
dddcbf00
EZ
546 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
547 (w32_get_bdf_glyph): Cast between unsigned char and char when
548 passing arguments to subroutines, to shut up compiler warnings.
549 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
550 GET_HEX_VAL.
551
552 * xfaces.c: Include keyboard.h before frame.h, not after it.
553
554 * widget.c: Include keyboard.h before frame.h.
555
556 * w32term.h (struct image, struct face): Forward declaration, to
557 avoid compiler warnings.
558
7bd2d083
GM
5592001-05-11 Gerd Moellmann <gerd@gnu.org>
560
47e72862
GM
561 * keyboard.c (read_key_sequence): Don't modify events when
562 generating fake prefix keys (mode-line, scroll-bar, ...) since
563 this prevents proper processing of such events when pushed back
564 into unread-command-events.
565
dd5f324b
GM
566 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
567 actually redrawn. Make the function static.
568 (note_mouse_highlight): Fix a case where the mouse cursor
569 was changed back to the text cursor.
570
571 * xterm.h (clear_mouse_face): Remove prototype.
572
d88a79d4
GM
573 * xdisp.c (try_window_id): Fix the fix and set the right
574 window_end_vpos.
575
576 * xdisp.c (try_window_id): Fix computation of window end in the
577 case that lines were deleted at the end of the window. Add some
578 more debug_method_adds.
0416532f 579
7bd2d083
GM
580 * xfaces.c (try_alternative_families): New function.
581 (try_font_list): Use it. If ATTRS specifies a family, check
582 fonts from that family first.
583 (choose_face_font): Remove code setting the family part of
584 the pattern to nil.
585
23fca891
GM
5862001-05-10 Gerd Moellmann <gerd@gnu.org>
587
ff9aa2ca
GM
588 * xdisp.c (try_window_id): Fix case of all changes before
589 the window start.
7b2654b5 590
23fca891
GM
591 * xdisp.c (try_window_id): Add some xasserts.
592
e9726794
GM
5932001-05-09 Gerd Moellmann <gerd@gnu.org>
594
595 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
596
9e53a675
GM
5972001-05-09 Dave Love <fx@gnu.org>
598
599 * xdisp.c (GIVE_UP): Fix for K&R C.
600
0d487c52
GM
6012001-05-09 Gerd Moellmann <gerd@gnu.org>
602
fe88d421
GM
603 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
604
0d487c52
GM
605 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
606 back to the text cursor shape without need.
607
1e9fc92e
GM
6082001-05-07 Gerd Moellmann <gerd@gnu.org>
609
a2a6232e
GM
610 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
611
612 * dispextern.h (inverse_video): Declare extern.
613
1e9fc92e
GM
614 * keyboard.c (delete_kboard): Handle the case that selected_frame
615 has been deleted in the course of x_connection_closed.
616
12949a7f
EZ
6172001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
618
7b2654b5
SM
619 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
620 Fix the change from 2001-04-30.
12949a7f 621
2fa2f461
GM
6222001-05-03 Gerd Moellmann <gerd@gnu.org>
623
a779d213
GM
624 * xfns.c (file_dialog_unmap_cb): New function.
625 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
626 where a dialog is closed via the window manager.
627
7b2654b5 628 * xdisp.c (try_window_id): Cases of changes all in front of
2fa2f461
GM
629 the window start or all below the window end mostly rewritten.
630 (redisplay_window): Move the tests if try_window_id is
631 applicable to try_window_id.
632 (GIVE_UP): New macro.
633
3356df63
GM
6342001-05-02 Gerd Moellmann <gerd@gnu.org>
635
a39202f6 636 * xterm.c (expose_window): Return int. If W is the window
7b2654b5
SM
637 currently being updated, mark the frame garbaged.
638 Fix computation of rows intersecting the exposed rectangle.
a39202f6 639 (expose_window_tree): Stop when expose_window returns 0.
7b2654b5 640
3356df63
GM
641 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
642 again if it has already been drawn.
643
a9d2fd1d
SM
6442001-05-01 Stefan Monnier <monnier@cs.yale.edu>
645
646 * syntax.c (update_syntax_table): Check that oldi has the same
647 properties as old_prop before deciding not to invalidate.
648
c95fc5f1
GM
6492001-04-30 Gerd Moellmann <gerd@gnu.org>
650
a9793e45
GM
651 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
652 read-only text that is so because of text properties.
653
c95fc5f1 654 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
a9d2fd1d 655 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
c95fc5f1
GM
656 windows that are components of a Lucid menu bar.
657
5a5d9185
GM
6582001-04-27 Gerd Moellmann <gerd@gnu.org>
659
660 * term.c (turn_on_face): Fix reverse video handling on terminals
661 that don't support colors.
662
ba973f7a
GM
6632001-04-26 Gerd Moellmann <gerd@gnu.org>
664
665 * editfns.c (save_excursion_restore): Don't use XBUFFER on
666 a non-buffer.
667
8c56a983
GM
6682001-04-25 Gerd Moellmann <gerd@gnu.org>
669
a728644c
GM
670 * term.c (toggle_highlight): New function.
671 (turn_on_face): Change handling of reverse video.
672
7b2654b5
SM
673 * process.c (wait_reading_process_input):
674 Call record_asynch_buffer_change only if a timer really changed buffers.
c88164fe 675
bfd8410f
GM
676 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
677 of the number of overlays to check.
678
be2488ca
GM
679 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
680
8c56a983
GM
681 * xdisp.c (try_window_id): Fix a case where window_end_pos
682 and window_end_bytepos were not adjusted.
683
522d42f7
GM
6842001-04-23 Gerd Moellmann <gerd@gnu.org>
685
686 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
687 zero instead of -1.
688
78c1afb6
EZ
6892001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
690
a9d2fd1d
SM
691 * process.c (wait_reading_process_input) [!subprocesses]:
692 Don't reference waiting_for_user_input_p, it's not defined in the
693 branch without async subprocesses support.
78c1afb6 694
a2fab450
GM
6952001-04-19 Gerd Moellmann <gerd@gnu.org>
696
a122a38e
GM
697 * keyboard.c (delete_kboard): Prevent a dangling reference
698 from current_kboard to KB, which is freed.
699
a9d2fd1d
SM
700 * process.c (wait_reading_process_input):
701 Call record_asynch_buffer_change after running timers, to make
a2fab450
GM
702 read_key_sequence aware of buffer changes from under it.
703
0f8d6dc7
GM
7042001-04-18 Gerd Moellmann <gerd@gnu.org>
705
eeffb293
GM
706 * xfaces.c (Qscalable_fonts_allowed): New variable.
707 (realizing_basic_faces_p): Removed.
2fa2f461
GM
708 (x_face_list_fonts): Special handling for realizing_basic_faces_p
709 removed.
eeffb293 710 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
7b2654b5
SM
711 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
712 for scalable-fonts-allowed to t.
eeffb293 713
0f8d6dc7
GM
714 * fileio.c (Finsert_file_contents): If the file size returned from
715 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
a9d2fd1d 716 read from files on a procfs whose contents are generated dynamically.
0f8d6dc7 717
eec2d1de
EZ
7182001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
719
720 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
721 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
722 (__memalign_hook): Make the two prototypes consistent.
723
f4f480bd
GM
7242001-04-17 Gerd Moellmann <gerd@gnu.org>
725
726 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
727 matrix of mini-windows.
728
52283633
SM
7292001-04-12 Stefan Monnier <monnier@cs.yale.edu>
730
731 * intervals.c (find_interval): Don't rebalance during signal handling.
732
ec2423c9
GM
7332001-04-11 Gerd Moellmann <gerd@gnu.org>
734
30cb0001 735 * fns.c: Include blockinput.h.
52283633 736
ec2423c9
GM
737 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
738
719d83ad
GM
7392001-04-10 Gerd Moellmann <gerd@gnu.org>
740
60f8d735
GM
741 * fns.c (Fcompare_strings): Fix return values.
742
afffeb57
GM
743 * window.c (window_scroll): Change the meaning of N to mean
744 N screen-fulls or N lines.
745 (window_scroll_pixel_based, window_scroll_line_based)
746 (scroll_command, Fscroll_other_window): Change accordingly.
747
52283633
SM
748 * window.c (window_scroll_pixel_based, Frecenter):
749 Call window_box_height instead of using it.last_visible_y for the
afffeb57
GM
750 height of the window.
751
752 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
753 instead of using it.last_visible_y for the height of the window.
52283633 754
719d83ad 755 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
8ddf3ee1 756 From Dan Holmsand <dan@eyebee.com>.
719d83ad
GM
757
758 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
8ddf3ee1
GM
759 able to write to hidden and system files. From Dan Holmsand
760 <dan@eyebee.com>.
719d83ad 761
8ddf3ee1
GM
762 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
763 Holmsand <dan@eyebee.com>.
719d83ad 764
522ed7fb
GM
7652001-04-09 Gerd Moellmann <gerd@gnu.org>
766
9170e5d4
GM
767 * fns.c (Fplist_get, Fplist_put): Add QUITs.
768
522ed7fb
GM
769 * window.c (window_internal_height): Return 1 less if the
770 window has a header line.
771
772 * xdisp.c (try_window_id): When scrolling on a terminal, take
773 the change of window_internal_height into account.
774
ceeb3d7d
EZ
7752001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
776
777 * gmalloc.c (align): If the argument SIZE would overflow
778 __malloc_ptrdiff_t, fail right away.
779
63685b9d
GM
7802001-04-06 Gerd Moellmann <gerd@gnu.org>
781
782 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
783 Make sure the tooltip is completely visible.
784 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
785
786 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
787
788 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
789
3ffb33bb
DL
7902001-04-06 Dave Love <fx@gnu.org>
791
52283633
SM
792 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
793 Fix test of `from'.
3ffb33bb 794
869fb12c
GM
7952001-04-06 Gerd Moellmann <gerd@gnu.org>
796
52283633 797 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
afa3935f 798
869fb12c
GM
799 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
800
441bf856
GM
8012001-04-05 Gerd Moellmann <gerd@gnu.org>
802
4d664b04
GM
803 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
804
52283633 805 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
a55e4e68 806
30ca89f5
GM
807 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
808 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
809
810 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
811 shell widget's position only if it is non-null.
812
52283633
SM
813 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
814 Set f->output_data.x->widget to null after destroying it.
30ca89f5 815
81a81c0f
GM
816 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
817 FILENAME to bring it in synch with the documentation.
818
441bf856
GM
819 * xfaces.c (realizing_basic_faces_p): Renamed from
820 realize_default_face_p.
821 (realize_basic_faces): Set/clear realizing_basic_faces_p.
822 (realize_default_face): Don't set the flag.
823
702a1e8e
GM
8242001-04-04 Gerd Moellmann <gerd@gnu.org>
825
1013f4e3
GM
826 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
827
52283633
SM
828 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
829
1013f4e3
GM
830 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
831 the buffer that was used for echoing.
832
702a1e8e
GM
833 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
834 (first_font_matching): Removed unused function.
835 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
836 (may_use_scalable_font_p): Remove parameter FONT; rename
837 parameter NAME to FONT.
838 (x_face_list_fonts): Fix missing bounds check.
839 (realizing_default_face_p): New variable.
840 (realize_default_face): Set and clear that flag.
841 (x_face_list_fonts): When called during the realization of the
842 default face, and no matching fonts are found when ignoring
843 scalable fonts and fonts matching a regexp from
844 face-ignored-fonts, try without ignoring fonts.
845
f9dbcda4
GM
8462001-04-03 Gerd Moellmann <gerd@gnu.org>
847
ad18ffb1
GM
848 * xfns.c (postprocess_image): New function.
849 (lookup_image): Call it for all image types except PostScript.
850 (x_kill_gs_process): Call postprocess_image.
851
f9dbcda4
GM
852 * xterm.c (x_use_underline_position_properties): New variable.
853 (x_draw_glyph_string): Use it.
854 (syms_of_xterm): DEFVAR_BOOL it.
855
651f03b6
GM
8562001-04-02 Gerd Moellmann <gerd@gnu.org>
857
858 * xterm.c (x_alloc_nearest_color_1): New function.
859 (x_alloc_nearest_color): Use it.
860 (x_color_cells): Take a Display as argument, instead of a frame.
861 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
862 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
863 (x_initialize): Register cvt_string_to_pixel as resource converter
864 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
865
73d75a62
GM
8662001-03-30 Gerd Moellmann <gerd@gnu.org>
867
b2046df8
GM
868 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
869 (set_iterator_to_next): If a string from a display property ends,
870 consider the case that this might also be the end of an
871 overlay string having the display property.
872
52283633 873 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
b2046df8 874
87d8eba4
GM
875 * xdisp.c (reseat_to_string): Undo last change.
876
73d75a62
GM
877 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
878 matrix of a window when the header line changes, when
879 new rows are allocated, or when the width changes.
880
911a2406
EZ
8812001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
882
52283633 883 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
911a2406 884
aea51abe
EZ
8852001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
886
887 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
888 deprecated.
889
176bc847
GM
8902001-03-29 Gerd Moellmann <gerd@gnu.org>
891
ed31fabf
GM
892 * data.c (Fsubr_interactive_form): New function.
893 (syms_of_data): Defsubr it.
894
176bc847
GM
895 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
896 (live_float_p, live_misc_p): Return 1 only if the offset of the
897 pointer in its block is >= 0.
898
e59d0e9d
GM
8992001-03-28 Paul Eggert <eggert@twinsun.com>
900
901 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
902 microseconds calcuation. Avoid double-rounding problem.
903 In doc string, warn that the result is approximate.
904
f827b862
GM
9052001-03-28 Gerd Moellmann <gerd@gnu.org>
906
30a3f61c
GM
907 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
908 bind `inhibit-eval-during-redisplay' to t.
909
910 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
911
912 * xdisp.c (inhibit_eval_during_redisplay)
913 (Qinhibit_eval_during_redisplay): New variables.
914 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
915 don't eval, return nil instead.
916 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
917 Initialize Qinhibit_eval_during_redisplay.
918
e719f5ae
GM
919 * xdisp.c (reseat_to_string): If STRING is multibyte, set
920 the iterator's multibyte_p flag.
921
deb2613a
GM
922 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
923 instead of setting it to zero; it's incremented for each frame
924 where the menu face is changed.
925
52283633
SM
926 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
927 change bottom shadow accordingly.
928
929 * xterm.c (expose_window_tree, expose_frame): Don't compute
a02f1be0
GM
930 intersections here.
931 (expose_window): Do it here instead.
52283633 932 (x_draw_glyph_string): Fix a computation of the underline position.
a02f1be0 933
f827b862
GM
934 * bytecode.c (BYTE_CODE_QUIT): New macro.
935 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
936
4bde0ebb
GM
9372001-03-27 Gerd Moellmann <gerd@gnu.org>
938
607ec83c
GM
939 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
940 Give up if matrix starts in an ellipsis.
941 (init_from_display_pos): Do nothing if POS doesn't specify
942 a dpvec_index but the iterator has such a position.
943
0245398f
GM
944 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
945
aba25348
GM
946 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
947 x/y position is (0, 0) after destroying the menu bar, restore
948 its original position.
949
4bde0ebb
GM
950 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
951 (init_from_display_pos): Use it.
952 (try_window_reusing_current_matrix): Don't use cursor_row_p.
953
8cdb267e
GM
9542001-03-26 Gerd Moellmann <gerd@gnu.org>
955
956 * xdisp.c (try_window_id): Undo last change.
957
9948db79
EZ
9582001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
959
960 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
961
962 * buffer.c (syms_of_buffer): Doc fix.
963
2eddf899
GM
9642001-03-26 Gerd Moellmann <gerd@gnu.org>
965
966 * xfaces.c (x_update_menu_appearance): Use local variable
967 popup_path for setting font resources.
968
6c145d35
EZ
9692001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
970
6a65b1b5
EZ
971 * frame.c (Fframe_list): Don't reference tip_frame if
972 HAVE_WINDOW_SYSTEM is not defined.
973
6c145d35
EZ
974 * emacs.c (main): Update the copyright year. From Werner LEMBERG
975 <wl@gnu.org>.
976
d74c1900
GM
9772001-03-25 Gerd Moellmann <gerd@gnu.org>
978
20fbd925
GM
979 * xdisp.c (init_from_display_pos): Test invisible property
980 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
52283633 981
927c5b3b
GM
982 * xdisp.c (redisplay_internal) <update one window>: Make sure
983 last_arrow_position and last_arrow_string are set.
984
d74c1900
GM
985 * frame.c (Fframe_list): Don't return a tooltip frame.
986
091f8878
GM
9872001-03-23 Gerd Moellmann <gerd@gnu.org>
988
52283633
SM
989 * xdisp.c (mark_window_display_accurate_1): New function,
990 extracted from mark_window_display_accurate.
991 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
43c09969
GM
992 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
993 (mark_window_display_accurate): Use it.
994 (redisplay_internal): Use it for the selected window.
995 (redisplay_internal): Avoid duplicate mark_window_display_accurate
996 for the selected frame.
997
ac90c44f
GM
998 * xdisp.c Use make_number, for readability.
999 (try_window_id): Disable rows below the window end.
1000 (try_window_reusing_current_matrix): Use cursor_row_p.
1001 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
1002 of rows.
1003 (init_from_display_pos): If POS specifies a position in a display
1004 vector, maybe get the iterator set up for that ellipsis.
43c09969 1005
091f8878
GM
1006 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
1007
991786dd
EZ
10082001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
1009
1010 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
1011
6c29b43c
GM
10122001-03-23 Gerd Moellmann <gerd@gnu.org>
1013
1014 * xfaces.c (x_update_menu_appearance): Use a different path
1015 for Lucid popup menus.
1016
d8731202
SM
10172001-03-22 Stefan Monnier <monnier@cs.yale.edu>
1018
1019 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
1020
1021 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
1022 (string_buffer_position): Use `make_number'.
1023
f61a541b
GM
10242001-03-22 Gerd Moellmann <gerd@gnu.org>
1025
3c9e997b
GM
1026 * xfaces.c (x_update_menu_appearance): Renamed from
1027 x_set_menu_face_resources. Use different resources for popups.
1028
1029 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
1030 (GC_CHECK_STRING_BYTES): Don't define.
1031
364cd450
GM
1032 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
1033 Removed, together with subroutines.
1034 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
d8731202 1035 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
364cd450 1036
d8731202
SM
1037 * dispextern.h (x_set_menu_resources_from_menu_face):
1038 Remove prototype.
364cd450 1039
d8731202 1040 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
364cd450
GM
1041 Remove calls to x_set_menu_resources_from_menu_face.
1042
d8731202
SM
1043 * xfaces.c (xm_set_menu_resources_from_menu_face):
1044 Remove #ifndef LESSTIF_VERSION.
f61a541b
GM
1045
1046 * xmenu.c: Include widget.h.
1047 (single_submenu): Return int. Some cleanup.
1048 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
1049
140330de
GM
10502001-03-21 Gerd Moellmann <gerd@gnu.org>
1051
1052 * xterm.c (x_update_window_end): Handle overwritten mouse face
1053 also for tool bar windows.
1054 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
1055 DRAW is DRAW_IMAGE_RAISED.
1056
1741905c
GM
10572001-03-20 Gerd Moellmann <gerd@gnu.org>
1058
fa88947e
GM
1059 * print.c (syms_of_print): Doc fixes.
1060
1741905c
GM
1061 * fns.c (Fmd5): Doc fix.
1062
ade0bee1
GM
10632001-03-19 Gerd Moellmann <gerd@gnu.org>
1064
357e7376
GM
1065 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1066 Clear area of the frame not occupied by the scroll bar.
1067
c2c097cc
GM
1068 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
1069 tip frame's root window buffer to *tip* right after creating
1070 the frame.
1071
ade0bee1
GM
1072 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
1073 is an integer don't have to be for space characters.
1074
88c6e37e
GM
10752001-03-16 Gerd Moellmann <gerd@gnu.org>
1076
52283633
SM
1077 * indent.c (current_column, current_column_1, Fmove_to_column)
1078 (compute_motion): Handle characters from display vectors differently.
88c6e37e 1079
c62eed76
KH
10802001-03-15 Kenichi Handa <handa@etl.go.jp>
1081
1082 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
1083 drawing glyph string.
1084
c899e7e6
GM
10852001-03-15 Gerd Moellmann <gerd@gnu.org>
1086
d0bbfc99
GM
1087 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
1088 (command_loop_1): Undo last change.
1089
03d1a189
GM
1090 * xterm.c (fast_find_position): Return the correct vpos.
1091
c899e7e6 1092 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
52283633 1093 non-null, set a per-buffer value in BUF instead of the current buffer.
c899e7e6
GM
1094 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
1095 Call store_symval_forwarding with BUF null.
1096 (set_internal): Call store_symval_forwarding with the BUF
1097 parameter passed to set_internal. Formerly, the value was always
1098 set in the current buffer; the buffer recorded in specbind for
1099 this case wasn't used.
1100 (arith_driver): Reindent.
1101
52283633
SM
1102 * buffer.c (swap_out_buffer_local_variables):
1103 Call store_symval_forwarding with BUF null.
c899e7e6
GM
1104
1105 * lisp.h (store_symval_forwarding): Change prototype.
1106
1107 * eval.c (specbind): Call store_symval_forwarding with BUF null.
1108
57ac7c81
GM
11092001-03-14 Gerd Moellmann <gerd@gnu.org>
1110
697617d9
GM
1111 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
1112 FOR_DELETION. Avoid resizing the mini-window of the selected
1113 frame if FOR_DELETION is set.
1114 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
1115 (Fmake_frame_invisible): Change calls to do_switch_frame for new
1116 signature.
1117
1118 * window.c (Fset_window_configuration): Change call to
1119 do_switch_frame to new format.
1120
1121 * keyboard.c (quit_throw_to_read_char): Change call to
1122 do_switch_frame to new format.
1123
1124 * lisp.h (do_switch_frame): Change prototype.
1125
819dce0f
GM
1126 * frame.c (Fframe_parameters): In the `buffer-list' frame
1127 parameter, store the buffer list of FRAME, not the list of the
1128 selected frame.
1129
57ac7c81
GM
1130 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
1131 box just because the glyph row's full_width_p flag is set.
1132
65008712
GM
11332001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
1134
1135 * xdisp.c (highlight_trailing_whitespace): On character terminals,
1136 skip the padding blanks inserted in extend_face_to_end_of_line,
1137 before checking for trailing whitespace.
1138
159cf431
GM
11392001-03-13 Gerd Moellmann <gerd@gnu.org>
1140
52283633 1141 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
19b2bb80
GM
1142 Remove special handling for LessTif/Motif.
1143 (toplevel): Don't include Xm/Xm.h.
1144
52283633
SM
1145 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
1146 Remove workaround code for LessTif; it doesn't work anymore.
1147
2564ea1b 1148 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
57ac7c81 1149 Xm/ScrollBarP.h.
afcdc0a1 1150
52283633
SM
1151 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
1152 Don't access private scroll bar data; it's no longer necessary with
23442ae4
GM
1153 contemporary LessTif.
1154
52283633
SM
1155 * xfaces.c (xm_set_menu_resources_from_menu_face):
1156 Change #if 0 to #ifndef LESSTIF_VERSION.
9faaaa52 1157
159cf431
GM
1158 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
1159 removing button grabs.
1160
c6f7429a
KH
11612001-03-13 Kenichi Handa <handa@etl.go.jp>
1162
cb82d767
KH
1163 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
1164 and clip-large-size-font as obsolete.
1165
c6f7429a
KH
1166 * lread.c (read_multibyte): Check the validity of multibyte
1167 sequence. If invalid, return the first byte.
1168
760cefb5
GM
11692001-03-12 Gerd Moellmann <gerd@gnu.org>
1170
1171 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
1172 before running the command; timer functions or process
1173 filters may have set it.
1174
5141f9d0
EZ
11752001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
1176
1177 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
1178 Doc fix.
1179
b6a15240
GM
11802001-03-12 Gerd Moellmann <gerd@gnu.org>
1181
1182 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
1183 to sprintf.
1184
95522746
GM
11852001-03-09 Gerd Moellmann <gerd@gnu.org>
1186
db14cfc5
GM
1187 * dispextern.h (string_buffer_position): Add prototype.
1188
52283633 1189 * xdisp.c (string_buffer_position, display_prop_string_p)
db14cfc5
GM
1190 (single_display_prop_string_p): New functions.
1191
1192 * xterm.c (note_mouse_highlight): If there's no help-echo on
1193 a string, look at the buffer text ``under'' it.
1194
1195 * keyboard.c (make_lispy_event): Add string info to the event,
1196 analogous to what's done on mode lines.
1197 (read_key_sequence): For a click on a string, consider `local-map'
1198 and `keymap' of that string.
1199
52283633
SM
1200 * keyboard.c (make_lispy_event, make_lispy_movement):
1201 Adjust calls to buffer_posn_from_coords to new format.
3cfd8357
GM
1202
1203 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
1204
1205 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
1206 POS; return void.
1207
95522746
GM
1208 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
1209 flags argument to emacs_open; it seems to conflict with O_EXCL.
1210
898a399d
KH
12112001-03-09 Kenichi Handa <handa@etl.go.jp>
1212
28cd4910
KH
1213 * composite.h (struct composition): Change types of members;
1214 glyph_len to unsigned, width to unsigned short.
898a399d 1215
4cdf6a6c
AI
12162001-03-08 Andrew Innes <andrewi@gnu.org>
1217
1218 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
1219 menu titles.
1220
129004d3
GM
12212001-03-08 Gerd Moellmann <gerd@gnu.org>
1222
221dd3e7
GM
1223 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
1224 instead of nil.
1225
52283633 1226 * xterm.c (note_mouse_highlight): Handle mouse-face and
5de7c6f2
GM
1227 help-echo in strings.
1228 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
1229 (fast_find_string_pos): New function.
1230
52283633
SM
1231 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
1232 (display_string): Call face_at_string_position with new parameter.
5de7c6f2
GM
1233
1234 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
1235 Handle `mouse-face'.
1236
1237 * dispextern.h (face_at_string_position): Change prototype.
1238
52283633 1239 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
e1fbabaf 1240
129004d3
GM
1241 * keyboard.c (make_lispy_event): Avoid generating drag events
1242 if the mouse hasn't actually moved to another buffer position.
52283633 1243
80c8ab8c
DL
12442001-03-08 Dave Love <fx@gnu.org>
1245
129004d3 1246 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
80c8ab8c 1247
989521fd
GM
12482001-03-08 Gerd Moellmann <gerd@gnu.org>
1249
1250 * process.c (Fset_process_window_size): Fix a typo.
1251
bb5c338d
KH
12522001-03-08 Kenichi Handa <handa@etl.go.jp>
1253
1254 * coding.c (detect_coding_sjis): Do more rigid check.
1255 (detect_coding_big5): Likewise.
1256 (decode_coding_sjis_big5): Likewise.
1257 (Fdetect_coding_region): Call detect_coding_system with tailing
1258 anchor byte `\0' for more rigid detection.
52283633 1259 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
bb5c338d
KH
1260 (Fdetect_coding_string): Likewise.
1261
8b8f9197
SM
12622001-03-07 Stefan Monnier <monnier@cs.yale.edu>
1263
1264 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
1265 a string before extracting its data.
1266
3bdf2660
GM
12672001-03-07 Gerd Moellmann <gerd@gnu.org>
1268
1269 * window.c (Frecenter): Rewrite code handling negative values
1270 of ARG on graphical frames.
1271
12722001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
1273
1274 * window.c (displayed_window_lines): If W->start is outside the
1275 accessible portion of the buffer, call start_display with BEGV or
1276 ZV instead of W->start.
1277
471f86b9
GM
12782001-03-07 Gerd Moellmann <gerd@gnu.org>
1279
2ab62c6c
GM
1280 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
1281
471f86b9
GM
1282 * process.c (Fset_process_filter): Don't crash if the input
1283 file descriptor of PROCESS is closed.
1284 (Fset_process_window_size): Likewise.
1285
101922c3
GM
12862001-03-06 Kenichi Handa <handa@etl.go.jp>
1287
1288 * xterm.c (XTflash): Make the timeout of select shorter, and call
1289 select repeatedly until the desired time expires.
1290
45d051a7
GM
12912001-03-06 Gerd Moellmann <gerd@gnu.org>
1292
1293 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
1294
1295 * xfns.c (Fx_create_frame): Clear Vwindow_list.
1296
1297 * lisp.h (Vwindow_list): Declare extern.
1298
8f372c46
EZ
12992001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
1300
1301 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
1302
f16a7aa5
GM
13032001-03-06 Gerd Moellmann <gerd@gnu.org>
1304
157ae273
GM
1305 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
1306 to detect a case where we have to highlight a different region
1307 despite not having left the currently highlighted region.
1308 Set mouse_face_overlay in the x_display_info.
45d051a7 1309 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
157ae273
GM
1310
1311 * xterm.h (struct x_display_info): Add mouse_face_overlay.
1312
1313 * buffer.c (mouse_face_overlay_overlaps): New function.
1314
1315 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
1316 (Qmouse_face): Declare extern.
1317
f16a7aa5
GM
1318 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
1319 if face_change_count is non-zero.
1320
827afcac
KH
13212001-03-06 Kenichi Handa <handa@etl.go.jp>
1322
1323 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
1324 that the source is unibyte.
1325
14c7242e
DL
13262001-03-05 Dave Love <fx@gnu.org>
1327
827afcac 1328 * xterm.c (XTmouse_position): Fix typo.
14c7242e 1329
c28b847b
GM
13302001-03-05 Gerd Moellmann <gerd@gnu.org>
1331
1332 * minibuf.c (read_minibuf): Clean up the binding stack if
1333 called noninteractively.
1334
b86644f2
KH
13352001-03-05 Kenichi Handa <handa@etl.go.jp>
1336
1337 * coding.c (syms_of_coding): Docstring modified.
1338
203682cc 13392001-03-05 Kenichi Handa <handa@etl.go.jp>
b86644f2
KH
1340
1341 * charset.c (char_to_string): If a single byte char has modifier
1342 bits that can't be reflected to the character code, ignore them
45d051a7 1343 instead of signaling an error.
b86644f2 1344
e30bd7b7
EZ
13452001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
1346
1347 * s/msdos.h: Update copyright notice.
1348
1349 * dosfns.h: Update copyright notice.
1350
1351 * dosfns.c: Update copyright notice.
1352
1353 * msdos.c: Update copyright notice.
1354
b52b65bd
GM
13552001-03-02 Gerd Moellmann <gerd@gnu.org>
1356
1357 * xterm.c (glyph_rect): New function.
1358 (XTmouse_position): Use it to raise the threshold for mouse
1359 movement event generation.
1360
53c4b1e6
EZ
13612001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
1362
1363 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
1364 specifies (reverse . t), reverse the initial screen colors.
1365 (IT_set_frame_parameters): If the property is foreground-color,
52283633
SM
1366 but we are reversing the colors, set bg_set, not fg_set.
1367 Likewise for setting background-color and reversing: set fg_set.
1368 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
53c4b1e6
EZ
1369 in effect.
1370
1371 * xfaces.c (Finternal_set_lisp_face_attribute)
1372 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
1373 parameters alist.
1374
f964b4d7
GM
13752001-03-02 Gerd Moellmann <gerd@gnu.org>
1376
ef53d75e
GM
1377 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
1378 to a single slash in the middle of file names.
1379
52283633 1380 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
cda0f4da
GM
1381 Accept only alphanumeric time zone names.
1382
f964b4d7
GM
1383 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
1384 or width area.
1385 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
1386 a widget to zero height.
52283633 1387
c3c45f65
GM
13882001-03-01 Gerd Moellmann <gerd@gnu.org>
1389
1390 * window.c (Fwindow_end): Call move_it_past_eol only if
1391 ending up on a partially visible line.
1392
028d739a
DL
13932001-03-01 Dave Love <fx@gnu.org>
1394
1395 * ccl.c (Fccl_execute): Doc fix.
1396
57c5889c
GM
13972001-03-01 Gerd Moellmann <gerd@gnu.org>
1398
35f59f6b
GM
1399 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
1400 of the tool bar before calling x_figure_window_size.
1401
f84ff02c
GM
1402 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
1403 NULL after destroying it, otherwise XTread_socket can access a
1404 destroyed widget when input is unblocked.
1405
8b8f9197 1406 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
52283633 1407
57c5889c
GM
1408 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
1409 same name as before, although there was a change in fontsets.
1410
224227d1
KR
14112001-02-28 Ken Raeburn <raeburn@gnu.org>
1412
4560730a
KR
1413 * lisp.h (Fframe_parameter): Declare.
1414
224227d1 1415 * window.c (set_window_buffer): Field vscroll is an int, not a
57c5889c 1416 Lisp_Object.
224227d1 1417
ece93c02
GM
14182001-02-28 Gerd Moellmann <gerd@gnu.org>
1419
11ef99b9
GM
1420 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
1421 NULL instead.
1422
1423 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
1424 NULL instead.
1425
ece93c02
GM
1426 * alloc.c (toplevel): Include process.h.
1427 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
1428 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
1429 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
52283633
SM
1430 (allocate_vector, allocate_hash_table, allocate_window)
1431 (allocate_frame, allocate_process, allocate_other_vector):
1432 New functions.
ece93c02
GM
1433 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
1434 (mark_maybe_pointer): New function.
52283633 1435 (mark_memory): Also mark Lisp data to which only pointers
ece93c02
GM
1436 remain and not Lisp_Objects.
1437 (min_heap_address, max_heap_address): New variables.
1438 (mem_find): Return MEM_NIL if START is below min_heap_address or
1439 above max_heap_address.
1440 (mem_insert): Compute min_heap_address and max_heap_address.
1441
1442 * process.c (make_process): Use allocate_process.
1443
1444 * frame.c (make_frame): Use allocate_frame.
1445
1446 * window.c (make_window, make_dummy_parent): Use allocate_window.
1447 (Fcurrent_window_configuration): Use allocate_other_vector.
1448
1449 * lisp.h (allocate_vectorlike): Remove prototype.
1450 (allocate_vector, allocate_other_vector, allocate_frame)
1451 (allocate_window, allocate_process, allocate_hash_table):
1452 Add prototypes.
1453
1454 * fns.c (Fdelete, larger_vector): Use allocate_vector.
1455 (make_hash_table, copy_hash_table): Use allocate_hash_table.
1456
063af457
KH
14572001-02-27 Kenichi Handa <handa@etl.go.jp>
1458
1459 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
1460 treat the produced bytes as a valid multibyte sequence.
1461
1462 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
52283633
SM
1463 (ccl_driver) <CCL_WriteMultibyteChar2>:
1464 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
063af457
KH
1465 <ccl_finish>: Set ccl->eight_bit_control properly.
1466
1467 * ccl.h (struct ccl_program): New member eight_bit_control.
1468
f58c6494
SM
14692001-02-26 Stefan Monnier <monnier@cs.yale.edu>
1470
1471 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
1472 accessible_keymaps_char_table.
1473 (accessible_keymaps_char_table): Obey `is_metized'.
1474 (where_is_internal, Fwhere_is_internal): Don't confuse int and
1475 Lisp_Object.
1476
c596c392
GM
14772001-02-26 Gerd Moellmann <gerd@gnu.org>
1478
1479 * dispnew.c: Check HAVE_TERM_H before including term.h.
1480
425de386
AI
14812001-02-24 Andrew Innes <andrewi@gnu.org>
1482
1483 * makefile.w32-in: Update copyright notice.
1484
2ba11bbd
SM
14852001-02-24 Stefan Monnier <monnier@cs.yale.edu>
1486
1487 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
1488
66c56ed1
KH
14892001-02-24 Kenichi Handa <handa@etl.go.jp>
1490
4c1593ce
KH
1491 * Makefile.in (lisp): Add international/utf-8.elc.
1492
66c56ed1
KH
1493 * fontset.c (Fnew_fontset): Fix handling of the case that an
1494 element of FONTLIST is a cons of family and registry.
1495
796ead7e
JR
14962001-02-23 Jason Rumney <jasonr@gnu.org>
1497
1498 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
1499 to height unconditionally.
1500
1501 * w32term.c (x_set_glyph_string_background_width): Extend the
52283633 1502 background face to the end of the drawing area in the text area, only.
796ead7e
JR
1503 (x_insert_glyphs): Call window_box_left to obtain the left
1504 x-coordinate of the area to shift.
1505
1506 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
1507 safe_run_hooks.
1508
f6839838
AI
15092001-02-22 Andrew Innes <andrewi@gnu.org>
1510
52283633 1511 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
f6839838
AI
1512 ($(BLD)\dispnew.obj):
1513 ($(BLD)\editfns.obj):
1514 ($(BLD)\fileio.obj):
1515 ($(BLD)\filelock.obj):
1516 ($(BLD)\keyboard.obj):
1517 ($(BLD)\w32proc.obj):
1518 ($(BLD)\process.obj):
1519 ($(BLD)\sysdep.obj): Ditto.
1520
1521 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
1522 header files.
52283633
SM
1523 ($(BLD)/dispnew.$(O)):
1524 ($(BLD)/editfns.$(O)):
1525 ($(BLD)/fileio.$(O)):
1526 ($(BLD)/filelock.$(O)):
1527 ($(BLD)/keyboard.$(O)):
1528 ($(BLD)/w32proc.$(O)):
1529 ($(BLD)/process.$(O)):
f6839838
AI
1530 ($(BLD)/sysdep.$(O)): Ditto.
1531
c224f70b
GM
15322001-02-22 Gerd Moellmann <gerd@gnu.org>
1533
51695746
GM
1534 * xdisp.c (forward_to_next_line_start): When taking the shortcut
1535 at the start of the function, check that the \n in it->c is
1536 from the iterator's current position.
52283633 1537
a61b7058
GM
1538 * xdisp.c (handle_single_display_prop): Add parameter
1539 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
1540 properties which replace the display of text with something else.
1541 (handle_display_prop): Call handle_single_display_prop with
1542 additional argument saying if we already replaced text display
1543 with something else. Use AREF.
52283633 1544 (with_echo_area_buffer_unwind_data, display_menu_bar)
a61b7058
GM
1545 (decode_mode_spec_coding): Use AREF and ASIZE.
1546
3473f362
GM
1547 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
1548 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
1549 * vmstime.h: Files removed.
52283633 1550
2bb58df3
GM
1551 * unexencap.c, unexfx2800.c: Files removed.
1552
c224f70b
GM
1553 * dispnew.c (direct_output_for_insert): Give up if we are showing
1554 a message or just cleared the message because we might need to
1555 resize the echo area window or display an empty echo area.
1556
ffc9ff0c
GM
15572001-02-21 Gerd Moellmann <gerd@gnu.org>
1558
0528abe1
GM
1559 * xdisp.c (redisplay_internal): Do the
1560 mark_window_display_accurate after all windows have been
1561 redisplayed because this call resets flags in buffers which are
1562 needed for proper redisplay.
1563
52283633
SM
1564 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
1565 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
ffc9ff0c
GM
1566 the old names.
1567
52283633
SM
1568 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1569 busy_window to hourglass_window, busy_p to hourglass_p.
ffc9ff0c
GM
1570
1571 * msdos.h (struct x_output): Rename busy_window to
1572 hourglass_window, busy_p to hourglass_p.
1573
52283633
SM
1574 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
1575 busy_window to hourglass_window, busy_p to hourglass_p.
ffc9ff0c
GM
1576
1577 * xfns.c: Rename everything containing *busy_cursor* and similar
1578 to *hourglass*.
1579 (syms_of_w32fns): Rename x-busy-pointer-shape to
1580 x-hourglass-pointer-shape, display-busy-cursor to
1581 display-hourglass, busy-cursor-delay to hourglass-delay.
1582
1583 * w32fns.c: Rename everything containing *busy_cursor* and similar
1584 to *hourglass*.
1585 (syms_of_w32fns): Rename x-busy-pointer-shape to
1586 x-hourglass-pointer-shape, display-busy-cursor to
1587 display-hourglass, busy-cursor-delay to hourglass-delay.
1588
1589 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
1590 of its busy_p flag.
1591
1592 * dispextern.h (start_hourglass, cancel_hourglass)
1593 (display_hourglass_p): Renamed from *busy_cursor*.
1594
ab2c5f0a
GM
15952001-02-20 Gerd Moellmann <gerd@gnu.org>
1596
d17e49a8
GM
1597 * keyboard.c (read_char): When an event from unread-command-events
1598 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
1599
fa97adf6
GM
1600 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
1601 equal to the current buffer.
1602
ab2c5f0a
GM
1603 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
1604 nil, otherwise we're left with truncate_lines t when a message
1605 is printed with message-truncate-lines bound to t.
1606
aeac019e
GM
16072001-02-19 Gerd Moellmann <gerd@gnu.org>
1608
c8bc6f65
GM
1609 * window.c (Fmove_to_window_line): Undo last change.
1610 (displayed_window_lines): Call line_bottom_y to determine
1611 the line's bottom position.
1612
1613 * dispextern.h (line_bottom_y): Add prototype.
1614
52283633 1615 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
c8bc6f65
GM
1616 (pos_visible_p): Use it.
1617
980a2d69
GM
1618 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
1619 set redisplaying_p to 0 here instead of in Frecursive_edit.
1620 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
1621 set redisplaying_p.
1622
52283633 1623 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
184d2372
GM
1624 New variables.
1625 (syms_of_xdisp): Initialize new variables.
1626 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
1627 Specbind `inhibit-menubar-update' when updating the menu bar.
1628
65048e97
GM
1629 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
1630 safe_run_hooks.
1631
1632 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
1633 safe_run_hooks.
1634
a57c4026
GM
1635 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
1636 is null.
1637
aeac019e
GM
1638 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
1639 to the start of the file.
1640
76846b31
GM
16412001-02-16 Gerd Moellmann <gerd@gnu.org>
1642
f3f053f3 1643 * window.c (set_window_buffer): Fix last change.
52283633 1644
f3f053f3
GM
1645 * window.c (set_window_buffer): Set window's vscroll to 0.
1646
dad75588
GM
1647 * window.c (coordinates_in_window): Increase width of area
1648 where the vertical line can be dragged.
1649
c220b753
GM
1650 * xterm.c (x_set_glyph_string_background_width): Extend the
1651 background face to the end of the drawing area in the text
1652 area, only.
1653
c56b1c1b
GM
1654 * xdisp.c (handle_single_display_prop): Set iterator's position
1655 to where the `display' property starts, like for images.
1656 (dump_glyph): New function.
1657 (dump_glyph_row): Use it. Dump info about marginal areas.
1658
1659 * dispnew.c (direct_output_for_insert): Recognize more cases where
1660 glyphs can be written instead of being inserted.
1661
1662 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
1663 the left x-coordinate of the area to shift.
1664
76846b31
GM
1665 * dired.c (directory_files_internal): Set result list to nil
1666 before retrying.
1667
0fc71a77
KH
16682001-02-15 Kenichi Handa <handa@etl.go.jp>
1669
1670 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
1671 invalid multibyte sequence, treat *SRC as a character of
1672 eight-bit-graphic.
1673
25078b54
EZ
16742001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
1675
1676 * textprop.c (Fset_text_properties): Doc fix.
1677
8399f8a0
GM
16782001-02-15 Gerd Moellmann <gerd@gnu.org>
1679
1680 * dispnew.c (update_text_area): Undo change of 2001-01-12.
1681
9a2a6f73
DL
16822001-02-14 Dave Love <fx@gnu.org>
1683
1684 * coding.c: Doc and message fixes.
1685
bf853fee
AI
16862001-02-14 Andrew Innes <andrewi@gnu.org>
1687
1688 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
1689 Emacs frame above the screen size.
1690
78c663d8
GM
16912001-02-14 Gerd Moellmann <gerd@gnu.org>
1692
1693 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
1694
7cc9f69f
GM
16952001-02-13 Gerd Moellmann <gerd@gnu.org>
1696
0a411995
GM
1697 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
1698 case that TO ends up beyond ZV after running before-change-functions.
1699
5ddc1b75
GM
1700 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
1701 the selected window if it is showing the buffer in question.
1702
7cc9f69f
GM
1703 * dired.c (directory_files_internal): Initialize errno.
1704 (toplevel): Include errno.h.
1705
2e6621ca
GM
17062001-02-13 Kenichi Handa <handa@etl.go.jp>
1707
1708 * xfaces.c (best_matching_font): New parameter width_ratio.
1709 Multiply avgwidth by width_ratio.
1710 (choose_face_font): Call best_matching_font with width_ratio
1711 calculated from the column width of C.
1712
60222d69
AI
17132001-02-12 Andrew Innes <andrewi@gnu.org>
1714
1715 The following changes are to draw box lines inside characters area
1716 if line-width is negative.
52283633 1717
60222d69
AI
1718 * w32term.c (x_produce_image_glyph): Pay attention to the case that
1719 face->box_line_width is negative.
1720 (x_produce_stretch_glyph): Likewise.
1721 (x_produce_glyphs): Likewise.
1722 (x_estimate_mode_line_height): Likewise.
1723 (x_draw_glyph_string_background): Likewise.
1724 (x_draw_glyph_string_foreground): Likewise.
1725 (x_draw_composite_glyph_string_foreground): Likewise.
1726 (x_draw_glyph_string_box): Likewise.
1727 (x_draw_image_foreground): Likewise.
1728 (x_draw_image_relief): Likewise.
1729 (x_draw_image_foreground_1): Likewise.
1730 (x_draw_image_glyph_string): Likewise.
1731
9804b846
KH
17322001-02-09 Kenichi Handa <handa@etl.go.jp>
1733
1734 The following changes are to draw box lines inside characters area
1735 if line-width is negative.
52283633 1736
9804b846
KH
1737 * xterm.c (x_produce_image_glyph): Pay attention to the case that
1738 face->box_line_width is negative.
1739 (x_produce_stretch_glyph): Likewise.
1740 (x_produce_glyphs): Likewise.
1741 (x_estimate_mode_line_height): Likewise.
1742 (x_draw_glyph_string_background): Likewise.
1743 (x_draw_glyph_string_foreground): Likewise.
1744 (x_draw_composite_glyph_string_foreground): Likewise.
1745 (x_draw_glyph_string_box): Likewise.
1746 (x_draw_image_foreground): Likewise.
1747 (x_draw_image_relief): Likewise.
1748 (x_draw_image_foreground_1): Likewise.
1749 (x_draw_image_glyph_string): Likewise.
1750
1751 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
1752 and :line-width can be negative.
52283633 1753 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
9804b846 1754
49be9f70
JR
17552001-02-09 Jason Rumney <jasonr@gnu.org>
1756
1757 * w32term.c (w32_encode_char): Treat eight bit graphic and control
1758 characters the same as ASCII and latin-1.
1759 (x_display_and_set_cursor): Check for the focus frame's selected
1760 window instead of selected_window.
1761 (x_after_update_window_line): Don't clear if frame's internal
1762 border width is zero.
1763 (x_new_font): Don't change a tooltip's size.
1764 (w32_initialize): Set char_ins_del_ok to 1.
1765
1766 * w32fns.c (Fx_show_tip): Fix calls to make_number.
1767 (x_set_font): If font hasn't changed, avoid recomputing
1768 faces and other things.
52283633
SM
1769 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
1770 (Fx_create_frame): Add the tool bar height to the frame height.
49be9f70
JR
1771 (x_create_tip_frame): Prevent changing the tooltip's
1772 background color by specifying a color for the default font
1773 in .Xdefaults.
1774 (Qcancel_timer): New variable.
1775 (syms_of_w32fns): Initialize and staticpro it.
1776 (Fx_hide_tip, Fx_show_tip): Use it.
1777 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
1778 the timer.
1779 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
1780
1781 * w32.c (init_environment): Duplicate local string before putenv.
1782
555e35d2
SZ
17832001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
1784
1785 * charset.c (Fstring): A typo.
1786
19c92c94
KH
17872001-02-09 Kenichi Handa <handa@etl.go.jp>
1788
e47a1c33
KH
1789 * charset.c (Fstring): If all arguments are less than 256, return
1790 a unibyte string.
1791
1792 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
1793 return a unibyte string.
1794
19c92c94
KH
1795 * coding.c (code_convert_region): After detecting a coding, if
1796 nothing found, set coding->composing to COMPOSITION_NO.
1797 (decode_coding_string): Likewise.
1798
d8e675f5
SM
17992001-02-08 Stefan Monnier <monnier@cs.yale.edu>
1800
1801 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
1802 to avoid overflow.
1803
bd503487
KH
18042001-02-07 Kenichi Handa <handa@etl.go.jp>
1805
1806 * charset.c (parse_str_to_multibyte): New function.
1807
1808 * charset.h (parse_str_to_multibyte): Extern it.
1809
1810 * print.c (print_string): If we are going to print a unibyte
1811 string into a multibyte buffer, convert the string to multibyte by
1812 str_to_multibyte.
1813
a8370d72
AI
18142001-02-06 Andrew Innes <andrewi@gnu.org>
1815
1816 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
1817 been created. It seems we can get sent window messages such as
1818 WM_ERASEBKGND before we properly update a frame.
1819
c363a1d6
GM
18202001-02-06 Gerd Moellmann <gerd@gnu.org>
1821
1822 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
1823 Avoid some unnecessary cursor positioning.
1824
a08332c0
GM
18252001-02-05 Gerd Moellmann <gerd@gnu.org>
1826
52283633 1827 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
a08332c0
GM
1828 (LFACE_AVGWIDTH): New macro.
1829 (LFACEP): Use AREF.
1830 (check_lface_attrs): Check LFACE_AVGWIDTH.
1831 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
1832 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
1833 (merge_face_vectors): Check LFACE_AVGWIDTH.
1834 (Finternal_make_lisp_face): Use AREF.
1835 (xm_set_menu_resources_from_menu_face)
1836 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
1837 (Finternal_lisp_face_empty_p): Use AREF.
1838 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
1839 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
1840 Compare average widths..
1841 (best_matching_font): Arrange for comparing average widths.
1842
52283633
SM
1843 * dispextern.h (enum lface_attribute_index):
1844 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
1845
5cb3c8d4
DL
18462001-02-05 Dave Love <fx@gnu.org>
1847
1848 * puresize.h: Revert last change following loadup.el change.
1849
193fba87
AI
18502001-02-05 Andrew Innes <andrewi@gnu.org>
1851
1852 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
1853 invocation of temacs, to work with Windows 2000.
1854 (bootstrap-emacs): Ditto.
1855
e16f52ce
GM
18562001-02-05 Gerd Moellmann <gerd@gnu.org>
1857
7a58ab59
GM
1858 * xterm.c (x_display_and_set_cursor): Check for the focus
1859 frame's selected window instead of selected_window.
1860
e89aaabd
GM
1861 * xdisp.c (try_scrolling): If point is in the line below the
1862 window, make sure to move the iterator at least a canonical
1863 char height down.
1864
52283633 1865 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
e16f52ce 1866
789ce875
KH
18672001-02-05 Kenichi Handa <handa@etl.go.jp>
1868
52283633
SM
1869 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
1870 If invalid, execute CCL_INVALID_CMD.
789ce875
KH
1871 (ccl_driver): If the CCL program is terminated because of
1872 CCL_STAT_INVALID_CMD, copy the remaining source data to the
1873 destination instead of throwing them away.
1874
20b28f82
GM
18752001-02-02 Gerd Moellmann <gerd@gnu.org>
1876
79fb38c0
GM
1877 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
1878 faces and other things.
1879
20b28f82
GM
1880 * xdisp.c (get_next_display_element): Fix case of empty
1881 display table entry.
1882
5a72551e
EZ
18832001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
1884
eb24d0bf
EZ
1885 * editfns.c (Fconstrain_to_field): Doc fix.
1886
6a3f48c7
EZ
1887 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
1888 into `thoroughly', to make it consistent with the doc string.
1889
5a72551e
EZ
1890 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
1891
01acdb05
GM
18922001-02-01 Gerd Moellmann <gerd@gnu.org>
1893
0353b28f
GM
1894 * search.c (search_buffer): Call set_search_regs with a byte
1895 position, not a character position.
1896
01acdb05
GM
1897 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
1898 minibuffer-only,
1899
e86b5133
EZ
19002001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
1901
1902 * frame.c (Fmodify_frame_parameters): Doc fix.
1903
7442878f
GM
19042001-01-31 Gerd Moellmann <gerd@gnu.org>
1905
01acdb05
GM
1906 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
1907 identifier which is not reserved by Standard C.
52283633 1908
7442878f
GM
1909 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
1910
1911 * window.c (enum window_part): New enumeration.
1912 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
1913 Qright_bitmap_area.
1914 (coordinates_in_window): Return an enumerator from enum
1915 window_part. Fix handling of right scroll bar.
1916 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
1917 `right-fringe' instead of `left-bitmap-area' and
1918 `right-bitmap-area'. Use enumerators from enum window_part
1919 instead of hard-coded integers.
52283633
SM
1920 (check_window_containing, window_from_coordinates):
1921 Use enumerators from enum window_part instead of hard-coded integers.
7442878f
GM
1922 (syms_of_window): Replace Qleft_bitmap_area and
1923 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
1924
7c132cba
EZ
19252001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
1926
1927 * editfns.c (Fformat_time_string): Doc fix.
1928
c359dd9e
SM
19292001-01-31 Stefan Monnier <monnier@cs.yale.edu>
1930
1931 * keymap.c (Fwhere_is_internal): Use the first valid binding
1932 if no ascii binding is found (when firstonly is t).
1933
ce070307
GM
19342001-01-31 Gerd Moellmann <gerd@gnu.org>
1935
b4f30ec5
GM
1936 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
1937 instead of Finteractive_p.
1938
1939 * lisp.h (interactive_p): Add prototype.
1940
1941 * eval.c (interactive_p): New function.
1942 (Finteractive_p): Use it.
1943
ce070307
GM
1944 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
1945
f57b6e64
DL
19462001-01-31 Dave Love <fx@gnu.org>
1947
d61c7afe
DL
1948 * .gdbinit (hook-run): Define to run xreload.
1949
f57b6e64
DL
1950 * textprop.c (Fset_text_properties): Fix newline in doc string.
1951
eef93f99
GM
19522001-01-30 Gerd Moellmann <gerd@gnu.org>
1953
52283633
SM
1954 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
1955 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
eef93f99
GM
1956
1957 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
52283633 1958 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
eef93f99
GM
1959 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
1960
1961 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
1962 height.
1963
d9c1f6f9
DL
19642001-01-30 Dave Love <fx@gnu.org>
1965
1966 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
1967 AFTER_POTENTIAL_GC.
1968
e8f044a0
GM
19692001-01-29 Gerd Moellmann <gerd@gnu.org>
1970
52283633
SM
1971 * bytecode.c (Fbyte_code) <Bcurrent_column>:
1972 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
e8f044a0 1973
8e1db7b3
EZ
19742001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
1975
1976 * textprop.c (Fset_text_properties): Doc fix.
1977
4eefd9d2
GM
19782001-01-29 Gerd Moellmann <gerd@gnu.org>
1979
1980 * xdisp.c (forward_to_next_line_start): Remove xassert.
1981
fccb8288
EZ
19822001-01-29 Jason Rumney <jasonr@gnu.org>
1983
4eefd9d2 1984 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
fccb8288
EZ
1985 returning without releasing it.
1986
76581eab
KH
19872001-01-29 Kenichi Handa <handa@etl.go.jp>
1988
1989 * w32fns.c (w32_font_match): Allocate three more bytes to regex
1990 for '^', '$', and '\0'.
1991
83a96b4d
AC
19922001-01-28 Andrew Choi <akochoi@i-cable.com>
1993
5604ec34
AC
1994 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
1995 regex for '^', '$', and '\0'.
1996
83a96b4d
AC
1997 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
1998 only if current_sblock has been initialized.
1999
2000 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
2001 terminal frame even if it is the only visible frame.
2002
c09a6440
KH
20032001-01-28 Kenichi Handa <handa@etl.go.jp>
2004
2005 * fontset.c (font_family_registry): Even if FONTNAME conform to
2006 XLFD, if it specifies other fields than family and registry,
52283633 2007 return FONTANME. New argument FORCE if nonzero cancel that feature.
c09a6440 2008 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
52283633
SM
2009 a signle byte character. Don't set FAMILY part to nil here.
2010 It is handled by the caller choose_face_font.
c09a6440
KH
2011 (Fnew_fontset): Call font_family_registry with FORCE 0.
2012 (Fset_fontset_font): Likewise.
2013
4dcd74e6
GM
20142001-01-27 Gerd Moellmann <gerd@gnu.org>
2015
2016 * xdisp.c (display_line): Don't treat a newline as fitting
2017 on the line.
2018
d2906bf8
GM
20192001-01-26 Gerd Moellmann <gerd@gnu.org>
2020
0130fe1a
GM
2021 * window.c (size_window): Set the window's orig_top to nil when
2022 changing heights, so that a future shrink_mini_window won't
2023 restore a bogus height.
2024
550f0e6a
GM
2025 * frame.c (do_switch_frame): If selected frame has a mini-window,
2026 resize that to exact size.
2027
b7b20fbd
GM
2028 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
2029
a47b7816
GM
2030 * xdisp.c (display_line): Simplify check for glyphs fitting
2031 entirely in the line.
2032
d2906bf8
GM
2033 * xfns.c (xic_style): New variable.
2034 (create_frame_xic): Move static variable to global scope for
550f0e6a 2035 the case that `static' gets defined away.
d2906bf8 2036
73df2b1e
KH
20372001-01-26 Kenichi Handa <handa@etl.go.jp>
2038
2039 * coding.c (decode_coding): Set a flag for inhibiting
2040 inconsistent eol.
2041 (code_convert_region): Always set saved_coding_symbol.
2042 (decode_coding_string): Likewise. Update coding->symbol when we
52283633 2043 encounter a inconsistent eol by the same way as code_convert_region.
73df2b1e 2044
6613cfc4
GM
20452001-01-25 Gerd Moellmann <gerd@gnu.org>
2046
c5e6e06b
GM
2047 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
2048 XClearArea.
2049
2050 * xterm.c (x_after_update_window_line): Don't clear if frame's
2051 internal border width is zero.
2052 (x_clear_area): New function.
2053 (x_after_update_window_line, x_clear_end_of_line)
2054 (x_scroll_bar_create, x_scroll_bar_set_handle)
2055 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
2056 instead of XClearArea.
2057
2058 * xterm.h (x_clear_area): Add prototype.
2059
6613cfc4
GM
2060 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
2061 which doesn't seem necessary anymore with Lesstif 0.92.
2062
650cc6cc
DL
20632001-01-25 Dave Love <fx@gnu.org>
2064
34ac3367
DL
2065 * puresize.h (BASE_PURESIZE): Up to 720000.
2066
650cc6cc
DL
2067 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
2068
5e37dc22
GM
20692001-01-25 Gerd Moellmann <gerd@gnu.org>
2070
e1e441f9
GM
2071 * xdisp.c (echo_area_display): Don't call redisplay_internal
2072 when Emacs is shutting down. We can't run hooks etc. that
2073 would be necessary to do a redisplay.
2074
5e37dc22
GM
2075 * lread.c (read_integer): Use type EMACS_INT instead of int.
2076
0fb94c7f
EZ
20772001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
2078
2079 * ccl.c (ccl_driver): Fix last change.
2080
e3778624
KH
20812001-01-25 Kenichi Handa <handa@etl.go.jp>
2082
2083 * ccl.h (sturct ccl_program): New member suppress_error.
2084
bb264518 2085 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
2086 insert error message to the output.
2087 (setup_ccl_program): Initialize ccl->suppress_error to 0.
2088
2089 * coding.h (struct coding_system): New member suppress_error.
2090
2091 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
2092 (Fset_terminal_coding_system_internal): Set the member
2093 suppress_error to 1.
2094 (Fset_safe_terminal_coding_system_internal): Likewise.
2095
245ed2b1
SM
20962001-01-24 Stefan Monnier <monnier@cs.yale.edu>
2097
2098 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
2099 as if it was a `charset'.
2100
f9aaedb6
GM
21012001-01-24 Gerd Moellmann <gerd@gnu.org>
2102
2103 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
2104 value in where_is_cache; the next lookup in the cache returns
2105 something bogus if we do.
2106
c3902c3e
EZ
21072001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
2108
2109 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
2110 if HAVE_WINDOW_SYSTEM isn't defined.
2111
3497f73e
GM
21122001-01-24 Gerd Moellmann <gerd@gnu.org>
2113
e7e41584
GM
2114 * fns.c (sweep_weak_table): Fix code taking items out of
2115 the hash collision chain. Some cleanup.
2116
3497f73e
GM
2117 * xterm.c (x_new_font): Don't change a tooltip's size.
2118
2119 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
2120 background color by specifying a color for the default font
2121 in .Xdefaults.
2122
3d48e687
KH
21232001-01-24 Kenichi Handa <handa@etl.go.jp>
2124
96531b20
KH
2125 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
2126 a workaround for SunOS 4's cc.
2127 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
2128 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
2129 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
2130 statement.
3d48e687 2131
a30629d2
GM
21322001-01-23 Gerd Moellmann <gerd@gnu.org>
2133
2134 * xterm.c (x_set_window_size_1): New function extracted from
2135 x_set_window_size.
2136 (x_set_window_size): Use it.
2137 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
2138 doesn't have a widget, like tooltips.
2139
5a43decf
EZ
21402001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
2141
52283633 2142 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
5a43decf 2143
b0e98867
KH
21442001-01-23 Kenichi Handa <handa@etl.go.jp>
2145
2146 * fns.c (Fset_char_table_default): Fix to make sub char-table
2147 correctly.
2148
50606b4c
GM
21492001-01-22 Gerd Moellmann <gerd@gnu.org>
2150
cb2ddc53 2151 * xdisp.c (build_desired_tool_bar_string): Make sure we have
52283633
SM
2152 a desired tool bar string, even if there are no tool bar items.
2153
57c28064
GM
2154 * xdisp.c (Ftool_bar_lines_needed): New function.
2155 (syms_of_xdisp): Defsubr it.
2156
50606b4c
GM
2157 * editfns.c (Fformat): Don't extend text properties from arguments
2158 to padding chars in the result.
2159
2f169c38
EZ
21602001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
2161
2162 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
2163
0f32f023
AI
21642001-01-20 Andrew Innes <andrewi@gnu.org>
2165
52283633 2166 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
0f32f023
AI
2167 (w32_initialize): Don't set term hooks that aren't actually needed
2168 in windowed mode.
2169
2170 * xfaces.c (realize_default_face):
2171 (realize_face):
2172 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
2173
2174 * xdisp.c (handle_single_display_prop): Remove references to
2175 FRAME_W32_CONSOLE_P.
2176
52283633 2177 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
0f32f023
AI
2178
2179 * frame.h (output_method): Remove output_w32_console method.
2180 (FRAME_W32_CONSOLE_P): Remove macro.
2181
2182 * frame.c (Qw32_console): Remove variable.
2183 (Fframep): Remove references to it.
2184 (syms_of_frame): Ditto.
2185 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
2186
2187 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
2188 redefinition.
2189
7173eada
KH
21902001-01-20 Kenichi Handa <handa@etl.go.jp>
2191
2192 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
2193
755b45ce
AI
21942001-01-19 Andrew Innes <andrewi@gnu.org>
2195
2196 * w32.c (init_environment): Add a version-independent site-lisp
2197 directory to EMACSLOADPATH, after the version dependent one.
2198
0a949811
GM
21992001-01-19 Gerd Moellmann <gerd@gnu.org>
2200
8501998a
GM
2201 * editfns.c (Fbuffer_substring): Doc fix.
2202
52283633
SM
2203 * xdisp.c (message_dolog, message2, message2_nolog):
2204 Rename parameter LEN to NBYTES.
0a949811 2205
e6ebcbbe
KH
22062001-01-19 Kenichi Handa <handa@etl.go.jp>
2207
200ecca2
KH
2208 * charset.c (strwidth): Use c_string_width.
2209 (c_string_width): New function.
2210 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
2211 Caller changed.
2212
2213 * charset.h (c_string_width, lisp_string_width): Extern them.
2214
52283633 2215 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
200ecca2 2216
e6ebcbbe
KH
2217 * indent.c (check_composition): Check validity of composition.
2218
200ecca2
KH
2219 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
2220 characters by calling c_string_width.
2221 (x_consider_frame_title): Get byte length of frame tile string
2222 correctly.
2223 (display_mode_element): Pay attention to width of non-ASCII
2224 characters by calling strwidth.
2225
8692ca92
GM
22262001-01-18 Gerd Moellmann <gerd@gnu.org>
2227
8962e303
GM
2228 * xfns.c (Qcancel_timer): New variable.
2229 (syms_of_xfns): Initialize and staticpro it.
2230 (Fx_hide_tip, Fx_show_tip): Use it.
2231 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2232 the timer.
2233 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
2234
91523be9
GM
2235 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
2236
2237 * window.h (WINDOW_LIVE_P): New macro.
2238
b0b7ed0e
GM
2239 * window.c (window_size_fixed): New variable.
2240 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
2241 the doc string.
2242
06bccf8e
GM
2243 * eval.c (specbind): If binding a per-buffer variable which
2244 doesn't have a buffer-local value in the current buffer, change
2245 the global value by changing the value of the symbol bound in all
2246 buffers not having their own value, to make it consistent with
2247 what happens with other buffer-local variables.
2248
8692ca92
GM
2249 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
2250
2251 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
2252 when searching for a newline.
2253
bb3a3b50
KH
22542001-01-18 Kenichi Handa <handa@etl.go.jp>
2255
2256 * xdisp.c (display_string): Fix previous change.
2257
c2cc16fa
JR
22582001-01-18 Jason Rumney <jasonr@gnu.org>
2259
2260 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
2261 GLYPH_DEBUG is defined.
2262 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
2263 true for images with `:ascent 100'.
2264 (x_set_mouse_face_gc): If the last used mouse face has gone in the
2265 meantime, use face MOUSE_FACE_ID.
2266 If first glyph isn't a character glyph, use the ASCII NUL
2267 character to determine the face.
2268 (expose_area): Do not treat left margin specially.
2269 (note_mode_line_highlight): If no local_map, check global keymap.
2270 (note_mouse_highlight): Initialize overlay.
52283633 2271 (clear_mouse_face): Don't return if tip_frame is non-nil.
c2cc16fa
JR
2272 (show_scroll_bars): Remove unused function.
2273 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
2274 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
2275 Clip to row.
52283633 2276 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
c2cc16fa
JR
2277 (x_free_frame_resources): Unload relief colors.
2278
9c11f79e
GM
22792001-01-17 Gerd Moellmann <gerd@gnu.org>
2280
3aec8722 2281 * xdisp.c (forward_to_next_line_start): Avoid calling
52283633
SM
2282 get_next_display_element when the newline is already found.
2283 This may change the iterator's position, when its current position is
3aec8722
GM
2284 equal to the iterator's stop_charpos.
2285
f3ffc2c3
GM
2286 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
2287 zero, use this method only at the end of a line.
2288
52283633 2289 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
a86110a8
GM
2290 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
2291 if SCALABLE_FONTS_P is set.
52283633 2292
d26d6fd9
GM
2293 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
2294 so that scalable fonts are included.
2295
9c11f79e
GM
2296 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
2297 In the cache, use a key containing the information if scalable
2298 fonts are included.
2299 (x_load_font): Adapt to change of keys in the font cache.
2300
23012001-01-17 Kim F. Storm <storm@filanet.dk>
52283633 2302
d26d6fd9
GM
2303 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
2304 XListFonts to take advantage of font caching.
2305
9c11f79e
GM
2306 * xterm.c (x_list_fonts): Ensure caching font information when
2307 called for a null frame, which is the case frequently when Emacs
2308 starts.
2309
51446987
GM
23102001-01-17 Gerd Moellmann <gerd@gnu.org>
2311
f864120f
GM
2312 * xfns.c (QCconversion): Replaces QCalgorithm.
2313
2314 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
2315
2316 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
2317 of :algorithm.
52283633 2318
e37d1417
GM
2319 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
2320 not everything could be displayed.
2321
51446987
GM
2322 * line.h, x-list-font.c: Files removed because unused.
2323
9ad4f3e5
AI
23242001-01-17 Andrew Innes <andrewi@gnu.org>
2325
2326 * dired.c (directory_files_internal): Convert result from readdir
2327 to a unibyte string initially, to avoid possible misinterpretation
2328 of some bytes as the internal form of Emacs characters.
2329
2eda09b5
KH
23302001-01-17 Kenichi Handa <handa@etl.go.jp>
2331
2332 * fns.c (concat): Be sure to avoid putting the same `composition'
2333 property on the adjacent regions.
2334
826f3788
GM
23352001-01-16 Gerd Moellmann <gerd@gnu.org>
2336
52283633 2337 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
f251459d
GM
2338 (Fscroll_right, Fscroll_left): Set it here instead, if called
2339 interactively.
2340
d57b83b3
GM
2341 * buffer.c (Fset_buffer_modified_p): Set buffer's
2342 prevent_redisplay_optimizations_p flag.
2343
826f3788 2344 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
52283633
SM
2345 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
2346 with additional arg.
2347
2348 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
2349 Change prototype.
826f3788 2350
826f3788
GM
2351 * xdisp.c (redisplay_preserve_echo_area): Add parameter
2352 FROM_WHERE, for debugging.
2353
261d788b
KH
23542001-01-16 Kenichi Handa <handa@etl.go.jp>
2355
2356 * ccl.c (Fregister_ccl_program): Handle the return value of
2357 resolve_symbol_ccl_program correctly.
52283633 2358 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
261d788b 2359
bccee4f2
GM
23602001-01-15 Gerd Moellmann <gerd@gnu.org>
2361
e4ded23c
GM
2362 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
2363 has gone in the meantime, use face MOUSE_FACE_ID.
52283633
SM
2364
2365 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
2366 If x_display_info_for_display returns null, don't try to close
ae24cb3b
GM
2367 the display; we didn't open it.
2368
bccee4f2
GM
2369 * dispnew.c (save_or_restore_current_matrices): Function removed.
2370 (save_current_matrix, restore_current_matrix): New functions.
2371 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
2372 restore the frame's current matrix. Due to the glyph pointer
2373 setup done in adjust_glyph_matrix, there is no easy way to make
2374 saving the current matrix in the desired matrix generally correct,
2375 so don't try it.
2376
ebeccffa
KH
23772001-01-15 Kenichi Handa <handa@etl.go.jp>
2378
2379 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
2380 truncation glyphs.
2381 (display_line): Optimize for wide characters.
e4ded23c 2382 (display_string): Don't try to display a multi-column character
ebeccffa
KH
2383 partially. On ttys, produce more than one truncation glyph for
2384 multi-column characters that don't fit on the line.
2385
64388126
KH
23862001-01-13 Kenichi Handa <handa@etl.go.jp>
2387
52283633
SM
2388 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
2389 Define it instead of WORDS_BIGENDIAN. Caller changed.
64388126 2390
8edb0a6f
JR
23912001-01-13 Jason Rumney <jasonr@gnu.org>
2392
2393 * w32fns.c (Fimage_size, image_ascent, lookup_image)
2394 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
52283633
SM
2395 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2396 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
8edb0a6f 2397
52283633
SM
2398 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
2399 (x_draw_image_relief, x_draw_image_foreground_1)
8edb0a6f
JR
2400 (x_draw_image_glyph_string): Adapt to change of image margins.
2401
2402 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
2403 variables.
2404
2405 * w32bdf.c (search_file_line, get_cached_font_char)
2406 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
2407
2408 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
2409
2410 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
2411 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
2412 (Fw32_send_sys_command): Remove unused variables.
2413 (w32_msg_pump): Add parentheses.
2414
2415 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
2416 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
2417 Add parentheses.
2418
4956d1ef
GM
24192001-01-12 Gerd Moellmann <gerd@gnu.org>
2420
b30623be
GM
2421 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
2422 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
2423 being a pair of margins.
2424 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
2425 to DEFVAR_LISP. Extend doc.
2426
2427 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
2428 margins.
2429 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
2430 pair of integers `(X . Y)', use X for the horizontal and Y for the
2431 vertical margin.
2432 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
2433 (parse_image_spec): Check it.
52283633
SM
2434 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2435 (tiff_format, gif_format, gs_format):
2436 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
b30623be 2437
52283633
SM
2438 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2439 (x_draw_image_relief, x_draw_image_foreground_1)
b30623be
GM
2440 (x_draw_image_glyph_string): Adapt to the change of image margins.
2441
2442 * dispextern.h (struct image): Replace member `margin' with
2443 `hmargin' and `vmargin'.
2444
4554cc79
GM
2445 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
2446 and GLYPHS.
2447
2448 * dispnew.c (update_text_area): Put code which decrements the
2449 stop position when the row's face extends to the end of the
3bffc665 2450 line in #if 0.
4554cc79 2451
3cccce8d
GM
2452 * xfns.c (x_set_mouse_color): Fix color allocation.
2453
4956d1ef
GM
2454 * keyboard.c: Call get_local_map with new argument list.
2455
2456 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
2457
2458 * intervals.h (enum map_property): Removed.
2459 (get_local_map): Change prototype.
2460
2461 * keymap.c: Call get_local_map with new argument list.
2462 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
2463
2c2ff7f2
GM
24642001-01-11 Gerd Moellmann <gerd@gnu.org>
2465
a23887b9
GM
2466 * xdisp.c (build_desired_tool_bar_string): Correct the computation
2467 of the size needed for the tool bar string. For the last image,
2468 use a `display' property that reaches to the end of the string.
2469
a7ee2d2e
GM
2470 * xselect.c (selection_request_dpyinfo): New variable.
2471 (x_handle_selection_request): Set it.
2472 (x_selection_request_lisp_error): Don't call
2473 x_decline_selection_request if selection request's display has
2474 been closed.
2475
52283633
SM
2476 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
2477 Do the unregister_colors before calling XFreeColors.
2c2ff7f2 2478
457b792c
GM
24792001-01-10 Dave Love <fx@gnu.org>
2480
2481 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
2482 ${SOME_MACHINE_LISP}, not ${lisp}.
2483
c1efd260
GM
24842001-01-10 Gerd Moellmann <gerd@gnu.org>
2485
52283633
SM
2486 * xdisp.c (display_line): On ttys, produce more than one truncation
2487 glyph for multi-column characters that don't fit on the line.
a98b5ed9 2488
ac95a621
GM
2489 * xselect.c (x_reply_selection_request): Add a comment.
2490
c1efd260
GM
2491 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
2492 XkbGetNames instead of XkbGetKeyboard.
2493
1bfb1345
DL
24942001-01-10 Dave Love <fx@gnu.org>
2495
2496 * sysdep.c (random): Revert the declaration.
2497
38119822
GM
24982001-01-09 Gerd Moellmann <gerd@gnu.org>
2499
52283633
SM
2500 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
2501 Call function string_bytes.
35f464a7
GM
2502 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
2503
2504 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
2505 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
2506 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
2507 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
2508 the current sblock.
2509 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
2510 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
2511 after sweeping strings, and at the end.
2512 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
2513
38119822
GM
2514 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
2515 ensure that pop_message is called.
2516
2517 * keyboard.c (Fexecute_extended_command): Use a
2518 record_unwind_protect to ensure that pop_message is called.
2519
2520 * lisp.h (push_message_unwind): Add prototype.
2521
2522 * xdisp.c (push_message_unwind): New function.
2523
2524 * fileio.c (do_auto_save_unwind): Do the pop_message here
2525 instead of in Fdo_auto_save.
2526 (Fdo_auto_save): Don't call pop_message.
2527
f47a9ec4
KR
25282001-01-08 Ken Raeburn <raeburn@gnu.org>
2529
2530 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
2531 in inner block.
2532
a758f97d
GM
25332001-01-08 Gerd Moellmann <gerd@gnu.org>
2534
6d0afc03
GM
2535 * window.c (window_scroll_pixel_based): Adjust glyph matrices
2536 when increasing window's vscroll.
2537
a758f97d
GM
2538 * macros.c (Qkbd_macro_termination_hook): New variable.
2539 (syms_of_macros): Initialize and staticpro it.
2540 (pop_kbd_macro): Run kbd-macro-termination-hook.
2541
2542 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
2543
1bfb1345 25442001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
2545
2546 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
2547 arglist, for documentation's sake.
2548
0dac6924
AI
25492001-01-06 Andrew Innes <andrewi@gnu.org>
2550
2551 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
2552 of *.pdb.
2553
8182406a
AI
25542001-01-05 Andrew Innes <andrewi@gnu.org>
2555
2556 * term.c (update_end): Don't check updating_frame; for some reason
2557 this can be 0 sometimes, such as after dismissing a popup menu,
2558 and isn't necessary given the explicit frame argument.
2559
3828218c
GM
25602001-01-05 Gerd Moellmann <gerd@gnu.org>
2561
2562 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
2563 on some systems, and an unsigned long on others, like FreeBSD 4.1.
2564
2f5ded21
GM
25652001-01-04 Gerd Moellmann <gerd@gnu.org>
2566
52283633 2567 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
2f5ded21
GM
2568
2569 * xfns.c (x_create_tip_frame): Preserve the value of
2570 face_change_count around the creation of the tip frame.
52283633 2571
2f5ded21
GM
2572 * xfns.c (last_show_tip_args): New variable.
2573 (compute_tip_xy): New function.
2574 (Fx_show_tip): Reuse an existing tip frame, if possible.
2575 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
2576
dfad65fa
DL
25772001-01-04 Dave Love <fx@gnu.org>
2578
64d4ec0f
DL
2579 * editfns.c (Fformat): Doc fix.
2580
dfad65fa
DL
2581 * systime.h (set_file_times): Prototype.
2582
2583 * widget.h (EmacsFrameSetCharSize_): Prototype.
2584
2585 * sysdep.c (random, srandom): Declare explicitly.
2586
2587 * dispextern.h (move_it_vertically_backward): Declare.
2588
85fe3b5e
GM
25892001-01-04 Gerd Moellmann <gerd@gnu.org>
2590
0f2ac578
GM
2591 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
2592 like in Fx_create_frame.
2593
482cca61
GM
2594 * xfaces.c (set_font_frame_param): Don't do anything for
2595 non-graphical frames.
2596
85fe3b5e
GM
2597 * window.c (Fdelete_other_windows): Set window's window_end_valid
2598 to nil when changing the window's start. Don't change the
2599 window's start when its top position hasn't changed. If we do,
2600 this will set the window's optional_new_start, which act's like a
2601 force_start during redisplay with C-x 1 M-> under particular
2602 circumstances (see report from Per Starback to emacs-pretest-bug
2603 from 2000-12-13.).
2604
3e99d3b4
GM
26052001-01-03 Gerd Moellmann <gerd@gnu.org>
2606
a77dc1ec
GM
2607 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
2608 short cut at the start of the function. Add an assertion.
2609 (reseat_at_next_visible_line_start): Add an assertion.
2610
2f3cad6c
GM
2611 * window.c (Frecenter): When changing the window start, set the
2612 window's window_end_valid to nil.
2613 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
2614
2615 * dispextern.h (move_it_past_eol): Add prototype.
2616
2617 * xdisp.c (move_it_past_eol): New function.
2618
3e99d3b4
GM
2619 * window.c (Fwindow_end): Doc fix.
2620
26212001-01-03 Dave Love <fx@gnu.org>
2622
52283633 2623 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3e99d3b4 2624
bafb434c
GM
26252001-01-03 Gerd Moellmann <gerd@gnu.org>
2626
2627 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
2628 the enabled_p flag of the glyph row at window_end_vpos to 0.
2629 (handle_single_display_prop): Fix last change.
2630
5297fb00
RS
26312001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2632
2633 * window.c (Frecenter): Doc fix.
2634
13d6a61c
AI
26352001-01-02 Andrew Innes <andrewi@gnu.org>
2636
2637 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
2638
2639 * frame.h (output_method): Add output_w32_console method.
2640 (FRAME_W32_CONSOLE_P): New macro.
2641
2642 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
2643 use output_w32_console method.
2644 (Qw32_console): New Lisp_Object.
2645 (Fframep): Return it.
2646 (syms_of_frame): Init it.
52283633 2647 (Fframe_parameters): Report w32console as font for w32_console frames.
13d6a61c
AI
2648
2649 * xfaces.c (realize_default_face): Set face foreground and
2650 background to unspecified for w32_console frames.
2651 (realize_face): Realize face cache for w32_console frames.
2652 (realize_tty_face): Accept w32_console frames.
2653
52283633 2654 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
13d6a61c
AI
2655 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
2656 necessary, even if running interactively.
2657
2658 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
2659 w32_console frames.
2660
52283633
SM
2661 * w32term.c (x_update_begin):
2662 (x_update_end):
2663 (x_clear_frame):
2664 (x_ins_del_lines):
2665 (x_change_line_highlight):
2666 (x_delete_glyphs):
2667 (w32_ring_bell):
2668 (x_update_begin):
2669 (x_update_end):
2670 (w32_reassert_line_highlight):
2671 (w32_frame_rehighlight):
13d6a61c
AI
2672 (w32_frame_raise_lower): Do nothing if not w32 frame.
2673
2674 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
2675
2676 * w32fns.c (Fx_display_color_cells): Determine correct value, when
2677 system doesn't tell us directly.
2678 (Fx_display_visual_class): Implement properly.
2679
d6bb0c0d
GM
26802001-01-02 Gerd Moellmann <gerd@gnu.org>
2681
2682 * window.c (Frecenter): Handle centering in graphical frames
2683 specially. Centering on the basis of line counts doesn't work
2684 reliably with variable-height lines.
52283633 2685
315f5865
EZ
26862001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
2687
2688 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
2689 and al[].
2690
52283633 2691 * composite.c (run_composition_function): Remove unused var `val'.
315f5865
EZ
2692 (update_compositions): Remove unused variable `hook'.
2693
2694 * intervals.c (get_local_map): Remove unused variable `tem'.
2695
2696 * doprnt.c (doprnt1): Remove unused variable `size'.
2697
2698 * fns.c (Flength): Remove unused variable `tail'.
2699 (Fdelete): Remove unused variable `size'.
2700
2701 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
2702 and `gcpro2'.
2703
52283633 2704 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
315f5865
EZ
2705
2706 * data.c (find_symbol_value): Remove extra 3rd argument in the
2707 call to swap_in_symval_forwarding.
2708
52283633 2709 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
315f5865
EZ
2710
2711 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
2712 (trivial_regexp_p): Remove unused variable `c'.
2713 (boyer_moore): Remove unused variable `k'.
2714
2715 * indent.c (current_column): Remove unused variable `stopchar'.
2716 (Fcompute_motion): Remove unused variable `contin'.
2717
2718 * casefiddle.c (casify_object): Remove unused variable `tolen'.
2719
2720 * dired.c (directory_files_internal): Fix a typo in a comment.
2721 Remove an unused variable `handler'.
52283633 2722 (file_name_completion): Remove unused function-scope variable `dp'.
315f5865
EZ
2723 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
2724 on BSD4_2.
2725
52283633 2726 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
315f5865
EZ
2727
2728 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
2729 and `buf'.
2730 (Fmarker_insertion_type): Remove unused variable `buf'.
2731
2732 * insdel.c (make_gap): Remove unused variable `result'.
2733
52283633 2734 * keyboard.c (record_char): Remove unused function-scope var `help'.
315f5865
EZ
2735 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
2736 (menu_bar_items): Remove unused function-scope variable `tem'.
2737
2738 * fontset.c (fontset_ref): Remove unused variable `i'.
2739 (fontset_set): Remove unused variables `j' and `tmp'.
52283633 2740 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
315f5865
EZ
2741 (make_fontset_for_ascii_face): Remove unused variable `name'.
2742 (fs_load_font): Remove unused variable `font_idx'.
52283633 2743 (fs_query_fontset): Remove unused function-local variable `fontset'.
315f5865
EZ
2744 (list_fontsets): Remove unused variable `tail'.
2745 (Fnew_fontset): Remove unused variables `family' and `registry'.
2746 (accumulate_font_info): Remove unused variable `tmp'.
2747 (Ffontset_font): Remove unused variable `id'.
2748 (syms_of_fontset): Remove unused variable `i'.
2749
2750 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
2751 to x_term_init.
2752 (lookup_image): Remove unused variable `file'.
2753 (xbm_load): Remove unused variables `bitmap_data', `height', and
2754 `width'. Remove function-local variable `i', leave the
2755 block-local one.
2756 (gif_load): Remove unused variable `inc'.
2757
52283633 2758 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
315f5865
EZ
2759 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
2760 leave only the one in the inner block.
2761
2762 * xfaces.c (face_fontset, realize_default_face): Remove unused
2763 variable `fontset'.
2764 (face_at_buffer_position): Remove unused variable `multibyte_p'.
2765
2766 * term.c (encode_terminal_code): Remove unused variable `c'.
2767
2768 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
2769 char *' instead of `char *'.
2770
2771 * category.c (Fcategory_docstring): Remove unused variable `doc'.
52283633 2772 (Fget_unused_category): Remove unused variable `docstring_vector'.
315f5865
EZ
2773 (Fchar_category_set): Remove unused variables `val', `charset',
2774 `c1' and `c2'.
2775
52283633
SM
2776 * coding.c (detect_coding_iso2022, setup_coding_system):
2777 Remove unused variable `i'.
315f5865
EZ
2778 (detect_coding_mask): Remove unused variable `idx'.
2779 (detect_coding): Remove unused variable `i'.
2780 (ccl_coding_driver): Remove unused variable `result'.
2781 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
52283633 2782 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
315f5865
EZ
2783 (encode_coding_string): Remove unused variables `gcpro1' and
2784 `saved_coding_symbol'.
2785 (Ffind_coding_systems_region_internal): Remove function-local
2786 variable args[], leave only the block-local one.
2787 (code_convert_region1): Remove unused variable `len'.
2788
2789 * charset.c (char_printable_p): Remove unused variable `chars'.
2790 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
2791 (str_to_multibyte): Remove unused variable `c'.
2792
2793 * window.c (size_window): Remove block-local variable `min_size'.
2794
2795 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
2796 `header_line_height'.
2797 (append_space, extend_face_to_end_of_line): Declare `saved_what'
2798 enum display_element_type.
2799
1a8a9daf
GM
28002001-01-02 Gerd Moellmann <gerd@gnu.org>
2801
6dde6abc 2802 * xterm.c (x_connection_closed): Catch X errors around all
52283633
SM
2803 statements that call X. Save away the error message in a local copy.
2804
1883b2c6
GM
2805 * xterm.c (x_connection_closed): Set handling_signal to 0 at
2806 the start.
2807
a13be207
GM
2808 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
2809 in or at the start of invisible text.
2810
1a8a9daf
GM
2811 * dispnew.c (update_window): Don't check_current_matrix_flags.
2812
3608c0f9
JR
28132001-01-01 Jason Rumney <jasonr@gnu.org>
2814
2815 * w32fns.c (x_figure_window_size): Do not allow new_height and
2816 new_width of frame to override specified values.
2817
abb1acc4
KH
28182000-12-30 Kenichi Handa <handa@etl.go.jp>
2819
52283633 2820 * composite.c (find_composition): Fix a code for searching backward.
abb1acc4 2821
762a68ec
GM
28222000-12-29 Gerd Moellmann <gerd@gnu.org>
2823
52283633 2824 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
9c8b8382
GM
2825 (update_window) [GLYPH_DEBUG]: Call it.
2826 (scrolling_window): Prevent including current rows which are below
2827 what's displayed in the window.
2828
2829 * xdisp.c (try_window_reusing_current_matrix)
2830 <new start <= old start>: Disable rows in the current matrix
2831 which are below the window after scrolling.
52283633 2832
762a68ec
GM
2833 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
2834 is zero. It's not worth the complexity.
2835 (invisible_text_between_p): Put in #if 0 because unused.
2836
2d5912c1
GM
28372000-12-28 Gerd Moellmann <gerd@gnu.org>
2838
46f6a258
GM
2839 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
2840 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
2841
89f93679
GM
2842 * keyboard.c (echo_char): If C is an integer, always call
2843 push_key_description. Former code could signal an invalid
2844 character error.
2845
2846 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
2847 If set, print multibyte text.
2848 (Fsingle_key_description): Call push_key_description with
2849 FORCE_MULTIBYTE set.
2850 (describe_buffer_bindings): Likewise.
2851
2852 * lisp.h (push_key_description): Add prototype.
2853
c06017fb
GM
2854 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
2855 around the call to redisplay_internal.
2856
f1d2ce7f
GM
2857 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2858
2d5912c1
GM
2859 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
2860
9371f831
KH
28612000-12-28 Kenichi Handa <handa@etl.go.jp>
2862
2863 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
2864 (ccl_driver): New local variable `extra_bytes'.
2865
2866 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
2867
52283633
SM
2868 * coding.c (setup_coding_system):
2869 Initialize coding->spec.ccl.eight_bit_carryover.
9371f831
KH
2870 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
2871
0c80628a
KH
28722000-12-28 Kenichi Handa <handa@etl.go.jp>
2873
2874 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
2875 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
2876 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
2877 (decode_composition_emacs_mule): New function.
2878 (decode_coding_emacs_mule): Decode composition sequence by calling
2879 decode_composition_emacs_mule.
2880 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
52283633
SM
2881 (encode_coding_emacs_mule): Changed from macro to function.
2882 If a text contains compositions, encode them correctly.
0c80628a
KH
2883 (setup_coding_system): Set coding->commong_flags for emacs-mule so
2884 that decoding and encoding are required.
2885
3e32cc27
GM
28862000-12-27 Gerd Moellmann <gerd@gnu.org>
2887
5e25feee
GM
2888 * xfaces.c (PT_PER_INCH): New macro.
2889 (xlfd_point_size): Compute real point size from font's pixel size.
2890 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
2891 instead of 72.
2892
892d8fcd
GM
2893 * .gdbinit: Comment out the line pointing to the Lesstif source
2894 directory.
2895
12c8b416
GM
2896 * window.c (Frecenter): Use displayed_window_lines instead
2897 of window_internal_height.
2898
6061fbf0
GM
2899 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2900 instead of x-toolkit-scroll-bars-p.
2901 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
2902
2903 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
2904 instead of x-toolkit-scroll-bars-p.
2905 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
52283633 2906
3e32cc27
GM
2907 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
2908 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
52283633
SM
2909 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
2910 New variables.
2911 (add_window_display_history, add_frame_display_history)
3e32cc27
GM
2912 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
2913 (build_frame_matrix_from_leaf_window): Remove unused code.
2914 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
2915 redisplay history.
2916 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
2917 (update_window) [GLYPH_DEBUG]: Likewise.
2918 (syms_of_display): Defsubr dump-redisplay-history.
2919
31798cfe
GM
29202000-12-23 Gerd Moellmann <gerd@gnu.org>
2921
f717c2ba
GM
2922 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
2923 the end of the prompt. Set echo_after_prompt to the offset
2924 of echoptr in echobuf.
2925
aeb2b8fc
GM
2926 * xdisp.c (init_from_display_pos): Pop until the iterator's
2927 stack is empty; there may be frames for stretch or images
2928 on the stack.
2929
31798cfe
GM
2930 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
2931 (save_or_restore_current_matrix): New function for the same
2932 purpose, but more efficient.
2933 (adjust_frame_glyphs_for_frame_redisplay): Use it.
2934
f8156156
EZ
29352000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
2936
2937 * xdisp.c (syms_of_xdisp): Fix last change.
2938
bdd6d4e8
GM
29392000-12-23 Gerd Moellmann <gerd@gnu.org>
2940
2941 * xdisp.c (syms_of_xdisp): Doc fix.
2942
2943 * xdisp.c (redisplay_window): Remove label restore_buffers;
2944 use finish_scroll_bars instead to make sure that scroll bars
2945 are redeemed. If we don't do this, flickering can result from
2946 scroll bars being destroyed and recreated.
2947
9436cdf9
JR
29482000-12-22 Jason Rumney <jasonr@gnu.org>
2949
2950 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
2951 in the wrong colors when the foreground is not black.
2952 (expose_window): Don't redraw the window that's currently being
2953 updated.
2954
951f9df5
GM
29552000-12-22 Gerd Moellmann <gerd@gnu.org>
2956
856ff7a7
GM
2957 * window.c (size_window): When setting the window's too_small_ok
2958 flag, compare old size with minimum size depending on WIDTH_P,
2959 don't compare with window_min_width.
52283633 2960
951f9df5
GM
2961 * window.c (delete_window): Simplify somewhat.
2962 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
2963 freeing window matrices. The flag windows_or_buffers_changed is
2964 set, so the next redisplay will consider all windows; this should
2965 suffice.
2966
886bc933
KH
29672000-12-22 Kenichi Handa <handa@etl.go.jp>
2968
2969 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
2970
2971 * ccl.h (struct ccl_program): New member cr_consumed.
2972
2973 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
2974 (CCL_READ_CHAR): Handle EOL conversion here.
2975 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
2976
177f4e88
GM
29772000-12-21 Gerd Moellmann <gerd@gnu.org>
2978
52283633 2979 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
6ba384dc
GM
2980
2981 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
2982 otherwise tabs of different size compare equal.
2983
2984 * callint.c (Fcall_interactively): Prevent a compiler warning.
2985
2986 * print.c (print_unwind): Return nil.
2987 (PRINTDECLARE): Initialize all local variables.
2988 (print_preprocess): Add a default case.
2989
8e15274f
GM
2990 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
2991
2992 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
2993
52283633 2994 * window.c (delete_window, Fsplit_window)
177f4e88
GM
2995 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
2996
2997 * dispextern.h (ensure_frame_matrix): Function declaration removed.
2998
2999 * dispnew.c (ensure_frame_matrix): Removed.
3000 (save_frame_matrix, restore_frame_matrix): New functions.
3001 (adjust_frame_glyphs_for_frame_redisplay): Use them.
3002
3003 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
3004 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
3005
99012074
AI
30062000-12-21 Andrew Innes <andrewi@gnu.org>
3007
3008 * w32term.c (x_update_begin): Regenerate the palette here, rather
3009 than for each window.
3010
3011 * w32xfns.c (select_palette): Avoid calling SelectPalette if
3012 palette is NULL, since this corrupts memory! Also get
3013 display_info reference from frame.
3014
29ef7d2d
JR
30152000-12-21 Jason Rumney <jasonr@gnu.org>
3016
3017 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
3018
3019 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
3020 to avoid returning without releasing it.
3e27fa1f 3021
3f9d67a6
KH
30222000-12-21 Kenichi Handa <handa@etl.go.jp>
3023
587fc3f9
KH
3024 * keymap.c (push_key_description): Don't convert eight-bit-control
3025 and eight-bit-graphic to multibyte character.
3026
3f9d67a6
KH
3027 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
3028 generic character and CODE1 is nil, return the smallest character
3029 in CHARSET.
3030
774ba8c9
DL
30312000-12-20 Dave Love <fx@gnu.org>
3032
3033 * s/osf5-0.h (NSIG): Don't redefine.
3034
88416888
SM
30352000-12-20 Stefan Monnier <monnier@cs.yale.edu>
3036
3037 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
3038 excluding menu-bar and tool-bar.
3039 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
3040 (menu_item_p): Remove.
3041 (where_is_internal_1): Don't ignore menu-items.
3042
a6426c6f
GM
30432000-12-20 Gerd Moellmann <gerd@gnu.org>
3044
03ff8aab
GM
3045 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
3046 into account.
3047
3048 * window.c (make_window): Initialize window's min_hscroll.
3049 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
3050 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
3051 to zero.
3052 (struct saved_window): New member min_hscroll.
3053 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
3054 (Fset_window_configuration): Set window's min_hscroll.
3055 (save_window_save): Save window's min_hscroll.
3056 (compare_window_configurations): Compare min_hscroll values.
3057
3058 * window.h (struct window): New member min_hscroll.
3059
3060 * keyboard.c (echo_prompt): Prevent a compiler warning.
3061
8de4aaf8
GM
3062 * xdisp.c (try_cursor_movement): Fix last change. The real
3063 condition is that PT is at the end of the row, and should
3064 be displayed at the start of the next row.
52283633 3065
3f7e3031
GM
3066 * xdisp.c (try_cursor_movement): If we end on a partially
3067 visible line, end we already decided to scroll, return -1.
3068
a6426c6f
GM
3069 * dispextern.h (ensure_frame_matrix): Add prototype.
3070
3071 * window.c (delete_window, Fsplit_window)
3072 (Fset_window_configuration): Call ensure_frame_matrix.
3073
52283633
SM
3074 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
3075 New functions.
a6426c6f
GM
3076 (adjust_frame_glyphs_for_frame_redisplay): If display has been
3077 completed, call fake_current_matrices instead of marking frame
3078 garbaged.
3079
57fa2774
JR
30802000-12-20 Jason Rumney <jasonr@gnu.org>
3081
3082 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
3083
d925df90
EZ
30842000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
3085
3086 * fns.c (Frequire): Doc fix.
3087
7b93a85b
GM
30882000-12-19 Gerd Moellmann <gerd@gnu.org>
3089
52283633 3090 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
71d4497a 3091
c74e645b
GM
3092 * dispnew.c (direct_output_for_insert): Fix check for mini-window
3093 currently displaying a message.
3094
7b93a85b
GM
3095 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
3096 xterm.h.
3097 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
3098
90d97e64
AI
30992000-12-18 Andrew Innes <andrewi@gnu.org>
3100
3101 * w32.c (w32_strerror): New function.
3102
3103 * w32.h (w32_strerror): New extern.
3104
3105 * w32fns.c (Fw32_shell_execute): Use it.
3106
91c9e6ce
GM
31072000-12-18 Gerd Moellmann <gerd@gnu.org>
3108
3109 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
3110
6f4745e2
EZ
31112000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
3112
3113 * msdos.c (IT_set_face): Obey inverse_video.
3114
c9e088ce
KH
31152000-12-18 Kenichi Handa <handa@etl.go.jp>
3116
3117 * dired.c (directory_files_internal): Always return decoded filenames.
3118
c3695f5f
GM
31192000-12-18 Gerd Moellmann <gerd@gnu.org>
3120
52d8e4ff
GM
3121 * xterm.c (x_connection_closed): Prevent being called recursively
3122 because of an error condition in XtCloseDisplay.
52283633 3123
62be9979
GM
3124 * xdisp.c (init_iterator): If noninteractive, and the frame's
3125 face cache is null, make one.
3126
52283633 3127 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
5f7a1890 3128
c3695f5f
GM
3129 * process.c (wait_reading_process_input): Check for pending
3130 input when running timers.
3131
78555fbe
EZ
31322000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
3133
52283633 3134 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
78555fbe 3135
b2b36264
KH
31362000-12-18 Kenichi Handa <handa@etl.go.jp>
3137
3138 * process.c (read_process_output): Don't run a filter if the code
3139 decoder produces nothing but carryover.
3140
9c543fbf
AI
31412000-12-17 Andrew Innes <andrewi@gnu.org>
3142
3143 * w32.c (sys_rename): Only check errno against EEXIST, and not
3144 EACCES, when determining whether rename failed because the target
3145 exists. This was resulting in indefinite looping on Windows 9x if
3146 the source file was locked by another process.
3147
3148 * w32fns.c (Ffile_system_info): New function.
3149 (syms_of_w32fns): Defsubr it.
3150
10c2b5a8
GM
31512000-12-17 Gerd Moellmann <gerd@gnu.org>
3152
b0228ace
GM
3153 * window.c (coordinates_in_window): Fix computation for
3154 position on vertical line between mode lines.
3155
10c2b5a8
GM
3156 * xfns.c (unwind_create_frame): Return t if frame was deleted.
3157 Don't alter tip_frame or tip_window.
3158 (unwind_create_tip_frame): Set tip_frame to nil only if frame
3159 was deleted.
3160
c844a81a
GM
3161 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
3162 Don't alter tip_frame or tip_window.
3163 (unwind_create_tip_frame): Set tip_frame to nil only if frame
3164 was deleted.
3165
6c825f8e
EZ
31662000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
3167
3168 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
3169 be consistent with the doc string. Reported by NAKAJIMA Mikio
3170 <minakaji@osaka.email.ne.jp>.
3171
af4bb4c8
KH
31722000-12-16 Kenichi Handa <handa@etl.go.jp>
3173
3174 * xfaces.c (Vface_ignored_fonts): New variable.
3175 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
3176 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
3177
8062e53a
GM
31782000-12-15 Gerd Moellmann <gerd@gnu.org>
3179
e87b8809
GM
3180 * dispnew.c (update_window): Detect pending input every nth line
3181 updated, i.e. do it depending on real work done, and not on the
3182 vpos of the line.
3183
3184 * xterm.c (expose_window): Don't redraw the window that's
3185 currently being updated.
3186
a6768cc5
GM
3187 * window.c (Fset_window_point): Remove test for
3188 cursor_in_non_selected_windows.
3189
4ea7fdca
GM
3190 * lread.c (read1): Recognize end of file after `\\'.
3191
8062e53a
GM
3192 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
3193 not unwind_create_frame.
3194
bb7959c1
GM
31952000-12-15 Dave Love <fx@gnu.org>
3196
3197 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
3198 bcopy & al.
3199
3200 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
3201
ced04c42
KH
32022000-12-15 Kenichi Handa <handa@etl.go.jp>
3203
c5443913
KH
3204 * coding.c (setup_coding_system): Clear all members of the struct
3205 coding_system at first.
bc137305
KH
3206 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
3207 argument.
3208 (code_convert_region): Don't override coding->src_multibyte and
3209 coding->dst_multibyte.
c5443913 3210
ced04c42
KH
3211 * fns.c (Fmd5): Docstring improved.
3212
c2d7f289
MB
32132000-12-15 Miles Bader <miles@gnu.org>
3214
3215 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
3216 are actually marked as mode-lines; otherwise use
3217 estimate_mode_line_height.
3218
9d7d9263
GM
32192000-12-14 Gerd Moellmann <gerd@gnu.org>
3220
3221 * editfns.c (Fformat): Prevent a buffer overrun when the format
3222 specifies a precision.
3223
7cf0153a
EZ
32242000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
3225
3226 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
3227 argument is outside the range [2..3].
3228
1de0f662
AI
32292000-12-14 Andrew Innes <andrewi@gnu.org>
3230
3231 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
3232 nothing to do. Bind inhibit-quit.
3233 (tip_frame): Make it a Lisp_Object.
3234 (x_create_tip_frame): Set tip_frame after it has been added to
3235 Vframe_list.
3236 (Fx_show_tip): Don't set tip_frame here.
52283633 3237 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
1de0f662
AI
3238 (unwind_create_frame, unwind_create_tip_frame): New functions.
3239 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3240 while a frame is only partially constructed.
3241
3242 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3243 (x_free_frame_resources): New function.
3244 (x_destroy_window): Use it.
3245
02387dcc
GM
32462000-12-14 Gerd Moellmann <gerd@gnu.org>
3247
3248 * xfns.c (Fx_backspace_delete_keys_p): New function.
3249 (syms_of_xfns): Defsubr it.
3250
3251 * config.in (HAVE_XKBGETKEYBOARD): Add.
3252
0544ef49
KH
32532000-12-14 Kenichi Handa <handa@etl.go.jp>
3254
98d62747
KH
3255 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
3256 Always store string in multibyte representation in echobuf.
3257 (echo_char): Always store string in multibyte representation in
3258 echobuf.
3259 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
3260 (read_key_sequence): Adjusted for the change of echo_prompt.
3261
a20193cd
KH
3262 * fns.c (Fmd5): Docstring improved.
3263
191b83b6
KH
3264 * lisp.h (detect_coding_system): Prototype adjusted.
3265
0544ef49
KH
3266 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
3267 (detect_coding_emacs_mule, detect_coding_iso2022,)
3268 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
52283633
SM
3269 (detect_coding_utf_16, detect_coding_ccl): Make them static.
3270 New argument MULTIBYTEP. Callers changed.
0544ef49
KH
3271 (detect_coding_mask, detect_coding_system): New argument
3272 MULTIBYTEP. Callers changed.
1da1bb05
KH
3273 (decode_coding_string): Set coding->src_multibyte and
3274 coding->dst_multibyte before calling detect_coding and detect_eol.
3275 Update them after some coding system is detected.
52283633 3276
d5b3eb1b
SM
32772000-12-13 Stefan Monnier <monnier@cs.yale.edu>
3278
3279 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
3280
3281 * keyboard.c (menu_bar_items, tool_bar_items):
3282 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
3283
f7f8bb69
GM
32842000-12-13 Gerd Moellmann <gerd@gnu.org>
3285
52283633 3286 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
19f71add
GM
3287 New variables.
3288 (unwind_create_frame, unwind_create_tip_frame): New functions.
3289 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3290 while a frame is only partially constructed.
3291
3292 * xterm.h (x_free_frame_resources): Declare.
3293
3294 * xterm.c (x_free_frame_resources): New function.
3295 (x_destroy_window): Use it.
3296
e10da507
GM
3297 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
3298 don't interrupt the update for pending input initially, i.e.
3299 update at least some lines.
3300
3301 * keyboard.c (do_mouse_tracking): Make externally visible.
52283633 3302
d5b3eb1b 3303 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
3304
3305 * xfns.c (gray_bitmap_bits): Declare `char *'.
3306
90aa2856
GM
33072000-12-12 Gerd Moellmann <gerd@gnu.org>
3308
3309 * xdisp.c (display_tool_bar_line): Make sure that tool bar
3310 lines start with a relief line.
3311
a308c9cd
DL
33122000-12-12 Dave Love <fx@gnu.org>
3313
3314 * window.c (Fdisplay_buffer): Doc fix.
3315 (Fwindow_list): Remove unused var.
3316
3317 * buffer.h (mmap_set_vars): Declare.
3318
3319 * window.h (Fset_window_point): Declare.
3320
d575011f
EZ
33212000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
3322
bf6282d2 3323 * msdos.c (fast_find_position): Don't overstep the last window row.
52283633
SM
3324 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
3325 variable `area'. When looking for a row under (X,Y), give up if some
3326 of the previous rows is not enabled.
d575011f 3327
ecf4d726
GM
33282000-12-12 Gerd Moellmann <gerd@gnu.org>
3329
2ebf6139
GM
3330 * window.c (Fset_window_point): If displaying cursors in windows
3331 other than the selected window, make sure redisplay updates
3332 other windows to show the new value of point in the window.
3333
3334 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
3335
bfdb75ee
GM
3336 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
3337 the buffer is the sole visible buffer when in the mini-buffer.
3338
52283633 3339 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4fdbd809
GM
3340 Bind `inhibit-read-only' to t.
3341 (unwind_with_echo_area_buffer): Use AREF.
3342
c0006262
GM
3343 * xfns.c (Fx_hide_tip): Simplified.
3344
52283633
SM
3345 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
3346 instead of `1'.
e9a59cad 3347
ecf4d726
GM
3348 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
3349
e5959a9a
GM
33502000-12-11 Gerd Moellmann <gerd@gnu.org>
3351
a3642e49 3352 * xfns.c (Fx_hide_tip): Fix last change.
52283633 3353
44b5a125
GM
3354 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
3355 nothing to do. Bind inhibit-quit.
3356 (tip_frame): Make it a Lisp_Object.
3357 (x_create_tip_frame): Set tip_frame after it has been added to
3358 Vframe_list.
3359 (Fx_show_tip): Don't set tip_frame here.
3360
3361 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3362
3363 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
3364 Lisp_Object.
3365
3366 * dispextern.h: Change external declaration of tip_frame.
3367
d990421f
GM
3368 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
3369 return an empty string.
3370
4db87380
GM
3371 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
3372 of the window's update_mode_line flag, since the former is set by
3373 force-mode-line-update, not the latter. This makes
3374 column-number-mode slightly faster.
52283633 3375
e5959a9a
GM
3376 * xdisp.c (try_window_id) <all changes above window start>:
3377 Set the cursor.
3378
169fe44e
GM
33792000-12-11 Paul Eggert <eggert@twinsun.com>
3380
3381 * config.in (HAVE_FTELLO): Remove.
3382 (HAVE_FSEEKO): Add.
3383 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
3384 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
3385 HAVE_FTELLO.
3386 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
3387 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
52283633 3388
59ec59ae
MB
33892000-12-11 Miles Bader <miles@gnu.org>
3390
3391 * window.c (displayed_window_lines): Don't round up when
3392 converting empty space at bottom to lines.
ff904dd6
MB
3393 Handle non-newline-terminated final lines properly.
3394 (Fwindow_text_height): New function (used to be in lisp).
3395 (syms_of_window): Initialize it.
59ec59ae 3396
42ebfa31
SM
33972000-12-09 Stefan Monnier <monnier@cs.yale.edu>
3398
3399 * syntax.c (scan_lists): Check that the right quote char has the
3400 right Sstring syntax when jumping over strings.
3401 (init_syntax_once): Use Smax rather than 13.
3402
5cdb3cf3
MB
34032000-12-09 Miles Bader <miles@gnu.org>
3404
3405 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
3406 with PARTIALLY, inverting the sense.
3407 (window_scroll_pixel_based): Scroll partially visible lines into
3408 place if we hit the beginning or end of the buffer.
a12167c5
MB
3409 (displayed_window_lines): Don't include partially visible lines.
3410 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 3411
842b2a94
GM
34122000-12-08 Gerd Moellmann <gerd@gnu.org>
3413
3414 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
3415
3416 * tparam.c (tparam1): Change the way buffers are reallocated to be
3417 portable and less obfuscated.
3418
3419 * termcap.c (tgetent): Change the way buffers are reallocated to
3420 be portable and less obfuscated.
3421
3422 * macros.c (store_kbd_macro_char): Change the way buffers are
3423 reallocated to be portable and less obfuscated.
3424
3425 * lread.c (read1): Change the way buffers are reallocated to be
3426 portable and less obfuscated.
3427
3428 * doc.c (Fsubstitute_command_keys): Change the way buffers
3429 are reallocated so that it is portable.
3430
137cad7c
EZ
34312000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
3432
3433 * dosfns.c (Ffile_system_info): New function.
3434 (syms_of_dosfns): Defsubr it.
3435
5c7f629c
SM
34362000-12-07 Stefan Monnier <monnier@cs.yale.edu>
3437
3438 * alloc.c (gc_sweep): Add comment.
3439
959e647d
GM
34402000-12-07 Gerd Moellmann <gerd@gnu.org>
3441
52283633
SM
3442 * sound.c (vox_configure): Change order of ioctls.
3443 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
28fcb7dc
GM
3444 Ignore errors when changing volume.
3445 (vox_close): Don't reset the device.
3446
926b7e5e
GM
3447 * process.c (read_process_output): Make sure the process marker's
3448 position is valid when the process buffer is changed in
3449 after-change functions. W3 does that.
52283633 3450
959e647d
GM
3451 * xfns.c (x_free_gcs): New function.
3452
3453 * xterm.h (x_free_gcs): Add prototype.
3454
3455 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
3456 freeing GCs here.
3457
3458 * xterm.c (x_destroy_window): Call x_free_gcs so that
3459 resources of non-toolkit X windows will be freed.
3460
478ea067
AI
34612000-12-07 Andrew Innes <andrewi@gnu.org>
3462
3463 * w32fns.c (xlfd_charset_of_font): Fix last change.
3464
fbee3231
DL
34652000-12-06 Dave Love <fx@gnu.org>
3466
67292061
DL
3467 * md5.h (__P): Don't define -- it comes from config.h.
3468
fbee3231
DL
3469 * strftime.c: Change some #if foo to #ifdef foo.
3470
4ee87dbb
AI
34712000-12-06 Andrew Innes <andrewi@gnu.org>
3472
3473 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
3474
52283633 3475 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4ee87dbb 3476 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
52283633 3477 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4ee87dbb 3478
9765b4a4
GM
34792000-12-06 Gerd Moellmann <gerd@gnu.org>
3480
d285b373
GM
3481 * alloc.c (gc_sweep): Prevent symbols read during loadup
3482 from being freed.
3483
384333ee
GM
3484 * xdisp.c (underlying_face_id): New function.
3485 (handle_face_prop, face_before_or_after_it_pos): Use it
3486 to determine the face ``under'' a string. Let strings inherit
3487 the face of the buffer under them.
3488
3489 * xfaces.c (face_at_string_position): Update function comment.
52283633 3490
d4b72d58
GM
3491 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
3492 matrix if the window's left position has changed; we need to
3493 redraw it in this case.
3494
3495 * dispextern.h (struct glyph_matrix): Add member window_left_x.
3496
e1d05387
GM
3497 * window.c (coordinates_in_window): Check mouse on mode-line or
3498 header-line first.
3499
eb1b0c74
GM
3500 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
3501 advertized by the function documentation.
3502
d94d636f
GM
3503 * window.c (syms_of_window): Doc fix.
3504
3887b449
GM
3505 * sound.c (vox_configure): Set volume for left and right channel.
3506 (sound_cleanup): Return nil.
3507
efc8f57a
GM
3508 * xdisp.c (move_it_by_lines): Fix paren typo.
3509
9765b4a4
GM
3510 * xterm.c (x_load_font): Don't use the font's max_bounds for
3511 computing the height of the font. If max_bounds' ascent or
3512 descent are greater than the font's ascent or descent, this means
3513 glyphs overlap, which should be handled now by redisplay.
3514
6529ed87
GM
3515 * window.c (Veven_window_heights): New variable.
3516 (syms_of_window): DEFVAR_LISP it.
3517 (Fdisplay_buffer): Check Veven_window_heights before evening the
3518 window heights.
52283633 3519
0eb2ecde
MB
35202000-12-06 Miles Bader <miles@gnu.org>
3521
3522 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
3523 update `default-frame-alist' instead of setting no frame parameters.
3524
03d7a167
KH
35252000-12-06 Kenichi Handa <handa@etl.go.jp>
3526
3527 * composite.c (update_compositions): Fix typo (use the correct
3528 variable).
3529
5f8803c2
JR
35302000-12-05 Jason Rumney <jasonr@gnu.org>
3531
3532 * md5.h: Remove underscores from function declarations.
3533 (__attribute__, __alignof__) [!__GNUC__]: Define.
3534
3535 * md5.c: Delay include of md5.h until after namespace cleaning.
3536
c28a075b
JR
3537 * makefile.w32-in (fns.o): Depend on md5.h
3538 (md5.o): New target.
3539 (sunfns.o): Remove.
3540
3541 * makefile.nt: Likewise.
3542
ff3c7056
JR
35432000-12-05 Jason Rumney <jasonr@altavista.net>
3544
3545 * w32term.c (expose_area): Complete last change.
3546
0c21eeeb
KR
35472000-12-05 Ken Raeburn <raeburn@gnu.org>
3548
3549 * minibuf.c: Include intervals.h.
3550
f201d732
JR
35512000-12-05 Jason Rumney <jasonr@gnu.org>
3552
3553 * w32term.c (x_produce_glyphs): If a font for a component of
3554 a composition is not found, use 1 pixel dot ascent and 0 dot
3555 descent value to avoid displaying terribly tall empty boxes.
3556 (expose_area): Pass x-coordinate relative to the exposed
3557 area to x_draw_glyphs instead of a window-relative coordinate.
3558
21999ab9
GM
35592000-12-05 Gerd Moellmann <gerd@gnu.org>
3560
4d2036e4
GM
3561 * xdisp.c (next_element_from_ellipsis): Save face before selective
3562 display in saved_face_id, and set face_before_selective_p.
3563 (reseat_1): Reset face_before_selective_p.
3564 (append_space, extend_face_to_end_of_line): If iterator's
3565 face_before_selective_p is set, use the face from saved_face_id.
3566 (extend_face_to_end_of_line): For tty frames, make sure to
3567 use the right face id when producing spaces at the end of
3568 the line.
3569
3570 * dispextern.h (struct it): Add face_before_selective_p.
3571
52be17cc
GM
3572 * keyboard.c (record_char): Don't record identical help-echo
3573 events in recent_keys.
3574
8a4f36cc
GM
3575 * xterm.c [USE_X_TOOLKIT]: Close the display.
3576 (xim_close_dpy): Handle case that the display has been closed.
3577
57d6e381
GM
3578 * xterm.c (x_destroy_window): Reset the frame's X window after
3579 destroying it.
3580
21999ab9
GM
3581 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
3582 variable window_width.
3583 (line_draw_cost): Fix code skipping over spaces at the end of the
3584 line when must_write_spaces is not set.
3585 (scrolling_window): Fix code inserting runs in list of all runs.
3586
91372bb7
KH
35872000-12-05 Kenichi Handa <handa@etl.go.jp>
3588
3589 * coding.c (setup_coding_system): Be sure to initialize
3590 coding->category_idx.
3591
6c083b4c
GM
35922000-12-04 Gerd Moellmann <gerd@gnu.org>
3593
0c68ce6f 3594 * xterm.c (PER_CHAR_METRIC): Removed because not used.
52283633 3595
6452929e
GM
3596 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
3597 area to x_draw_glyphs instead of a window-relative coordinate.
3598
d7f31e22
GM
3599 * fileio.c (auto_save_error): Add parameter ERROR. Show the
3600 error in the message.
3601
ae18aa3b
GM
3602 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
3603 timer after having read a key. It's not good for code reading
3604 several keys in a loop, like an input method.
3605
caa15ef7
GM
3606 * fileio.c (Finsert_file_contents): When VISIT is t, don't
3607 record undo information for format-decode.
3608
3609 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
3610 current buffer is read-only, not if it isn't.
3611
6c083b4c
GM
3612 * keyboard.c (record_char): Record `help-echo' input events
3613 in recent_keys only if they display some help. Don't record
3614 `help-echo' events as macro char.
3615
caa15ef7
GM
36162000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3617
3618 * editfns.c (save_excursion_restore): Don't move point
3619 in another window if it is showing the wrong buffer.
3620 Avoid the call to Fwindow_live_p, for speed.
3621
5a13529b
KH
36222000-12-04 Kenichi Handa <handa@etl.go.jp>
3623
e225faa7
KH
3624 * xfaces.c (struct font_name): New member registry_priority.
3625 (split_font_name): Initialize the above member to zero.
3626 (concat_font_list): New function.
3627 (font_list): Include fonts of all alternative registries.
3628 (FONT_POINT_SIZE_QUANTUM): New macro.
3629 (better_font_p): Ignore point size difference less than
3630 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
3631
e89648b4
KH
3632 * xterm.c (x_produce_glyphs): If a font for a component of
3633 a composition is not found, use 1 pixel dot ascent and 0 dot
3634 descent value to avoid displaying terribly tall empty boxes.
3635
5a13529b
KH
3636 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
3637
d7935eb6
KR
36382000-12-03 Ken Raeburn <raeburn@gnu.org>
3639
3640 * coding.h (code_convert_string1): Declare.
3641
3642 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
3643
52283633 3644 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
d7935eb6 3645
0dd5e255
JR
36462000-12-02 Jason Rumney <jasonr@gnu.org>
3647
3648 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
3649 correctly for single byte character case.
3650 (w32_per_char_metric): Do not try to make any assumptions about
3651 the metrics of BDF fonts.
250cfece 3652 (x_estimate_mode_line_height): If `mode-line' face
52283633 3653 hasn't a font, use that of the frame, as drawing glyphs does.
250cfece
JR
3654 (note_mouse_highlight): Change the cursor shape on the vertical
3655 border between windows [not enabled].
3656
3657 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
3658
3659 * w32fns.c (Fx_create_frame): Reintroduce the call to
3660 face-set-after-frame-defaults.
3661 (Vx_window_horizontal_drag_shape): New variable.
3662 (syms_of_xfns): DEFVAR_LISP it.
3663 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
3664 enabled].
0dd5e255 3665
b5d8d2ca
GM
36662000-12-02 Simon Josefsson <simon@josefsson.org>
3667
3668 * fns.c (Fmd5): Use a different logic to decide the coding system
3669 to use.
3670
3671 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
3672
fbb87147
EZ
36732000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
3674
52283633 3675 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
fbb87147 3676
447e9da0
GM
36772000-12-01 Gerd Moellmann <gerd@gnu.org>
3678
7708ced0
GM
3679 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
3680 height for YNegative.
3681 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
3682 height; also see comment there.
3683
447e9da0
GM
3684 * window.c (coordinates_in_window): Handle computations for
3685 positions on the vertical bar and fringes differently for
3686 window-system frames. Consider some pixels near the vertical bar
3687 as on the bar if the frame doesn't have vertical scroll bars.
3688 Associate positions between mode or header lines with the
3689 right window, the left one.
3690
86d1db20
JR
36912000-12-01 Jason Rumney <jasonr@gnu.org>
3692
3693 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
3694
3695 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
3696 invalid frame.
3697
a1d58e5b
GM
36982000-12-01 Gerd Moellmann <gerd@gnu.org>
3699
52283633 3700 * window.c (struct saved_window): Add members orig_top and orig_height.
a1d58e5b
GM
3701 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
3702 (save_window_save, Fset_window_configuration): Save/restore
3703 window's orig_top and orig_height.
3704
89c609af
JR
37052000-12-01 Jason Rumney <jasonr@gnu.org>
3706
4d177746 3707 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 3708
89c609af
JR
3709 * w32fns.c (x_set_cursor_color): Fix last change.
3710
eccc05db
GM
37112000-11-30 Gerd Moellmann <gerd@gnu.org>
3712
31b6671b
GM
3713 * xdisp.c (echo_area_display): If cursor is in the echo area, make
3714 sure that the next redisplay displays the minibuffer, so that
3715 the cursor will be replaced with what the minibuffer wants.
3716
eccc05db
GM
3717 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
3718 #ifndef instead of using #if.
3719 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
3720 USE_TOOLKIT_SCROLL_BARS is defined.
3721
162de750
JR
37222000-11-30 Jason Rumney <jasonr@gnu.org>
3723
3724 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
3725 x_display_cursor.
3726
693c4692
GM
37272000-11-30 Gerd Moellmann <gerd@gnu.org>
3728
3729 * fns.c (Fmd5): Doc fix.
3730
b5d8d2ca 37312000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
3732
3733 * fns.c (Fmd5): New function.
3734 (syms_of_fns): Defsubr md5.
3735
3736 * Makefile.in (obj): Add md5.o
3737
b02cd40b
GM
37382000-11-30 Gerd Moellmann <gerd@gnu.org>
3739
edfb795e
GM
3740 * md5.h, md5.c: New files, taken from glibc.
3741
df3aedcf
GM
3742 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
3743
b02cd40b 3744 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
52283633 3745 hasn't a font, use that of the frame, as drawing glyphs does.
b02cd40b 3746
8b5176cd
SM
37472000-11-29 Stefan Monnier <monnier@cs.yale.edu>
3748
3749 * eval.c (Frun_hooks): Allow 0 arguments.
3750
346598f1
GM
37512000-11-29 Gerd Moellmann <gerd@gnu.org>
3752
f9396e03
GM
3753 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
3754 is over the menu bar widget, say it's not on the frame.
3755
4a967a9b
GM
3756 * xfns.c (Fx_create_frame): Reintroduce the call to
3757 face-set-after-frame-defaults.
3758
346598f1
GM
3759 * eval.c (Fsignal): Reset handling_signal.
3760
222456a1
JR
37612000-11-28 Jason Rumney <jasonr@gnu.org>
3762
3763 * w32menu.c (add_menu_item): Reset menu item text when changing
3764 type to radio button.
3765
8049ddc0
GM
37662000-11-28 Gerd Moellmann <gerd@gnu.org>
3767
346598f1 3768 * xselect.c: Update copyright.
f4f4ee4d 3769
bebe4a2c
GM
3770 * window.c (coordinates_in_window): If on a mode or header line,
3771 but sufficiently close to its start, return ``on vertical
3772 border''. This gives us a way to drag windows horizontally when
3773 using toolkit scroll bars.
3774
3775 * xterm.c (note_mouse_highlight): Change the cursor shape
3776 on the vertical border between windows.
3777
3778 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
3779
3780 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
3781 (syms_of_xfns): DEFVAR_LISP it.
3782 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
3783
8d2c2642
GM
3784 * textprop.c (text_read_only): New function.
3785 (verify_interval_modification): Use it instead of signaling
3786 `text-read-only'. This makes it easier to catch this error
52283633 3787 with a breakpoint.:
8d2c2642 3788
52283633 3789 * xdisp.c (forward_to_next_line_start): Check for newlines,
8049ddc0
GM
3790 not end of line, which includes CR.
3791
5a2bae6c
KH
37922000-11-28 Kenichi Handa <handa@etl.go.jp>
3793
3794 * coding.c (Ffind_coding_systems_region_internal): Be sure to
3795 include no-conversion.
3796
ae31f84d
JR
37972000-11-27 Jason Rumney <jasonr@gnu.org>
3798
3799 * w32fns.c (w32_load_system_font): Always mark font as double byte
3800 if codepage is unicode.
3801
67f1cf4c
GM
38022000-11-27 Gerd Moellmann <gerd@gnu.org>
3803
4a74d071 3804 * xdisp.c (forward_to_next_line_start): If already on a newline,
52283633 3805 just consume it to avoid unintended skipping over invisible text below.
4a74d071 3806
902ae620
GM
3807 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
3808 `vertical-line', `mode-line' and `header-line' events.
3809
3810 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
3811 of a character, a TAB for instance. This is easier than to set
3812 up the iterator exactly, and it's not a frequent case, so the
3813 additional effort wouldn't really pay off.
3814
c1e279c2
AC
38152000-11-26 Andrew Choi <akochoi@i-cable.com>
3816
67f1cf4c 3817 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
3818 init_window_once.
3819
a609568a
JR
38202000-11-25 Jason Rumney <jasonr@gnu.org>
3821
52283633
SM
3822 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
3823 Args to window_from_coordinates should be pixel coordinates.
48b21762 3824
a609568a
JR
3825 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
3826 redisplay handles them properly.
3827
a658d039
MB
38282000-11-25 Miles Bader <miles@gnu.org>
3829
3830 * indent.c (compute_motion): Keep pos_byte in sync with pos.
3831
d3416cca
JR
38322000-11-24 Jason Rumney <jasonr@gnu.org>
3833
3834 * w32.c (init_environment): Set LANG environment variable based on
3835 locale settings, if not set.
3836
3837 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
3838 making tool bar smaller. When clearing the frame, also
3839 clear current matrices. Clear frame when tool bar disappears.
3840 Don't use more lines for the tool-bar than is available.
3841 (x_change_window_heights): New function.
3842
ba193890
GM
38432000-11-24 Gerd Moellmann <gerd@gnu.org>
3844
2be8f184
GM
3845 * xdisp.c (init_from_display_pos): If POS says we're already after
3846 an overlay string ending at POS, make sure to pop the iterator
3847 because it will be in front of that overlay string. When POS is
3848 ZV, we've thereby also ``processed'' overlay strings at ZV.
3849
ba193890
GM
3850 * xfaces.c (lface_from_face_name): Function comment fix.
3851
1862a24e
MB
38522000-11-24 Miles Bader <miles@gnu.org>
3853
3854 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
3855 apply `mode-line-inverse-video' -- zero means force display using
3856 the default face, non-zero means display using the specialized face.
3857 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
3858
f07fa1b8
KH
38592000-11-23 Kenichi Handa <handa@etl.go.jp>
3860
3861 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
3862 hard coded `4'.
3863
2bcdf662
EZ
38642000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
3865
3866 * coding.c (decode_coding_emacs_mule): Fix the case of
3867 CODING_EOL_LF, which used uninitialized value of c.
3868
ba8299ff
SM
38692000-11-23 Stefan Monnier <monnier@cs.yale.edu>
3870
3871 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
3872
f4117c4d
GM
38732000-11-22 Gerd Moellmann <gerd@gnu.org>
3874
03e757c1
GM
3875 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
3876 buffer object.
3877
f4117c4d
GM
3878 * frame.h (struct frame): Replace desired_tool_bar_items,
3879 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 3880 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
3881
3882 * frame.c (make_frame): Change initialization of tool bar
3883 items accordingly.
3884
3885 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 3886 Change references to members deleted from struct frame to use the
f4117c4d
GM
3887 new ones.
3888
3889 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
52283633 3890 references to members deleted from struct frame to use the new ones.
f4117c4d 3891
52283633 3892 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
f4117c4d
GM
3893
3894 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
3895
3896 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 3897 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
3898 from struct frame to use the new ones.
3899
f8e2f3f2
MB
39002000-11-23 Miles Bader <miles@gnu.org>
3901
3902 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
3903 the face's inverse-video attribute, rather than overriding it.
3904
60e8e0a5
GM
39052000-11-22 Gerd Moellmann <gerd@gnu.org>
3906
3907 * xfns.c (x_set_tool_bar_lines): Clear internal border when
3908 making tool bar smaller.
3909
92dd1b29
DL
39102000-11-22 Dave Love <fx@gnu.org>
3911
3912 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
3913
e672fdce
MB
39142000-11-22 Miles Bader <miles@gnu.org>
3915
3a17d6cc
MB
3916 * keyboard.c (Vminibuffer_message_timeout): New variable.
3917 (command_loop_1): Use it to determine message timeout.
3918 (syms_of_keyboard): Initialize it.
3919
60e8e0a5 3920 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 3921
e9655d81
KH
39222000-11-22 Kenichi Handa <handa@etl.go.jp>
3923
3924 * sysdep.c: Move the code for declaring h_errno after #include
3925 <netdb.h>.
3926
77270fac
GM
39272000-11-21 Gerd Moellmann <gerd@gnu.org>
3928
cd913aae
GM
3929 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
3930 the menu bar when the tooltip is unmapped.
3931
77270fac
GM
3932 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
3933 sole visible buffer when we're currently in the mini-buffer, and
3934 give up if so.
52283633 3935
556635d6
JR
39362000-11-21 Jason Rumney <jasonr@gnu.org>
3937
3938 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
3939 put on the clipboard.
3940 (Fw32_get_clipboard_data): Compare data on clipboard with saved
3941 copy of what Emacs last put there. If they are the same, do not
52283633 3942 use the clipboard copy to avoid losing data due to coding conversions.
556635d6 3943
5b7bde64
MB
39442000-11-22 Miles Bader <miles@gnu.org>
3945
3946 * minibuf.c (Vminibuffer_prompt_properties): New variable.
3947 (syms_of_minibuf): Initialize it.
3948 (read_minibuf): Add properties from Vminibuffer_prompt_properties
3949 to prompt, don't make read-only.
3950
ff23e1dd
GM
39512000-11-21 Gerd Moellmann <gerd@gnu.org>
3952
52283633
SM
3953 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
3954 Add BEFORE/AFTER_POTENTIAL_GC.
3c64f287 3955
7aaf4388
GM
3956 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
3957
f5f47add 3958 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 3959
ff23e1dd
GM
3960 * term.c, cm.c: Don't try to include termcap.h; see comment there.
3961
37c35586
KH
39622000-11-21 Kenichi Handa <handa@etl.go.jp>
3963
3964 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
3965 ... #endif scope.
3966
ff9ab414
GM
39672000-11-20 Gerd Moellmann <gerd@gnu.org>
3968
52283633 3969 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
c51d2b5e
GM
3970 screen supports it.
3971
29a01b72
GM
3972 * s/gnu-linux.h: Don't use `#cpu'.
3973
09dfdf85
GM
3974 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
3975 not defined in mman.h.
3976
52283633 3977 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
ff9ab414
GM
3978 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
3979 and store an index in the XClientMessageEvent. Storing a
3980 Lisp_Object or pointer can fail on a 64 bit system, since X only
3981 transfers 32 bits.
52283633
SM
3982 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
3983
81459ac9
DL
39842000-11-20 Dave Love <fx@gnu.org>
3985
3986 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
3987
56c13ae6
GM
39882000-11-20 Gerd Moellmann <gerd@gnu.org>
3989
3990 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
3991
495a6df3
KH
39922000-11-20 Kenichi Handa <handa@etl.go.jp>
3993
2bcf3714
KH
3994 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
3995 by WIDTH.
3996
495a6df3
KH
3997 * alloc.c (make_string): Fix previous change. Be sure to make
3998 unibyte string correctly.
3999
6d950f4c
GM
40002000-11-19 Gerd Moellmann <gerd@gnu.org>
4001
39b39373
GM
4002 * window.c (Fwindow_list): Change parameter list to be XEmacs
4003 compatible.
4004 (window_list_1): New function.
4005 (window_loop): Use it instead of Fwindow_list.
4006
b95b34e5
GM
4007 * sysdep.c (emacs_ospeed): New variable.
4008 (toplevel): Don't declare ospeed extern.
4009 (init_baud_rate): Use emacs_ospeed instead of ospeed.
4010
4011 * termcap.c (ospeed): Remove.
4012 (tputs) [!emacs]: Remove unused code.
4013 (tgetent): Avoid a compiler warning.
4014
e83dc917
GM
4015 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
4016 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 4017 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
4018
4019 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
4020 removed.
4021 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
4022 Take the X display as additional argument.
4023 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
4024 `Widget' is a pointer type that's not easily stored in Lisp_Object
4025 form in a portable way.
52283633 4026
6d950f4c
GM
4027 * dispnew.c (update_text_area): Fix last change.
4028
e47306e6
GM
40292000-11-18 Gerd Moellmann <gerd@gnu.org>
4030
fb3cd89b
GM
4031 * xdisp.c: Use BINDING_STACK_SIZE throughout.
4032
4033 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
4034 clear current matrices.
4035
edaa9aed
GM
4036 * buffer.c (mmap_enlarge): Don't print a message on stderr
4037 if mapping new memory at the end of the existing region fails.
4038
e47306e6
GM
4039 * dispnew.c (update_text_area): Don't skip over equal glyphs
4040 when the last current glyph overlaps the glyph to its right.
4041
509633e3
MB
40422000-11-18 Miles Bader <miles@gnu.org>
4043
4044 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
4045 lines that *end* with "..." too (that's the most common case!).
4046
d392e9c5
GM
40472000-11-18 Gerd Moellmann <gerd@gnu.org>
4048
67988445
GM
4049 * xdisp.c (resize_mini_window): Temporarily change to the
4050 mini-window's buffer if necessary.
1bfdbe43 4051
d392e9c5
GM
4052 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
4053 the tooltip obscures less text under it.
4054
40552000-11-17 Gerd Moellmann <gerd@gnu.org>
4056
4057 * puresize.h (BASE_PURESIZE): Increase to 700000.
4058
92bb977f
JR
40592000-11-18 Jason Rumney <jasonr@gnu.org>
4060
4061 * w32term.c (w32_draw_bitmap): Use face to set colors.
4062
26fbf20b
DL
40632000-11-17 Dave Love <fx@gnu.org>
4064
4065 * lread.c (Fload): Fix #ifdef for pcc.
4066
100b593b
GM
40672000-11-17 Gerd Moellmann <gerd@gnu.org>
4068
4069 * xdisp.c (pos_visible_p): Compute the default character height
4070 differently.
4071
a288d0d1
GM
40722000-11-16 Gerd Moellmann <gerd@gnu.org>
4073
cac94de6 4074 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
52283633 4075 knowing the line's height; use the default font's height in that case.
cac94de6 4076
a288d0d1
GM
4077 * xfaces.c (weight_table): Add `demi' with the same meaning as
4078 `demibold'.
4079
981fb6f6
KH
40802000-11-16 Kenichi Handa <handa@etl.go.jp>
4081
2cca872d 4082 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
4083 (clear_glyph_row): Delete local static variable null_row.
4084
e5fa381b
JR
40852000-11-15 Jason Rumney <jasonr@gnu.org>
4086
4087 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
4088 (w32_alloc_lighter_color): Use new brightness calculations from
4089 xterm.c. Scale delta to be in the range expected by W32.
4090 (w32_draw_relief_rect): Use frame relief colors.
4091
8e42f043
GM
40922000-11-15 Gerd Moellmann <gerd@gnu.org>
4093
6d133d1f
GM
4094 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
4095 (Qinhibit_default_face_x_resources): New variable.
4096 (syms_of_frame): Initialize it.
4097 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
4098
4099 * xdisp.c (pos_visible_p): Improve function comment.
4100
4101 * lisp.h (BINDING_STACK_SIZE): New macro.
4102
8e42f043
GM
4103 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
4104 reading the directory if readdir returns null and errno is EAGAIN
4105 or EINTR.
4106
e8c87124
SM
41072000-11-14 Stefan Monnier <monnier@cs.yale.edu>
4108
4109 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
4110 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
4111 Set amount_to_scroll to max of dx and scroll_step so that
4112 scroll-conservatively doesn't defeat scroll-step>1.
4113 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
4114 scroll-conservatively for line-at-a-time scrolling.
4115
5f0c971d
GM
41162000-11-14 Gerd Moellmann <gerd@gnu.org>
4117
4118 * window.c (Fpos_visible_in_window_p): Call pos_visible with
4119 extra argument.
4120
4121 * xdisp.c (current_mode_line_height, current_header_line_height):
4122 New variables.
4123 (init_xdisp): Initialize them.
4124 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
4125 and use exact mode line heights if it is set.
4126
4127 * lisp.h (pos_visible_p): Change prototype.
4128
4129 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
4130 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
4131 and current_header_line_height first.
52283633
SM
4132 (current_mode_line_height, current_header_line_height):
4133 Declare extern.
5f0c971d 4134
d7361edf
MB
41352000-11-14 Miles Bader <miles@lsi.nec.co.jp>
4136
4137 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
4138 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
4139 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
4140
ee5e440a
MB
41412000-11-14 Miles Bader <miles@gnu.org>
4142
4143 * xterm.c (x_alloc_lighter_color): Include an additive component
4144 too for dark colors, because FACTOR isn't enough.
4145 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
4146 New macros.
4147
5ca020fc
GM
41482000-11-13 Gerd Moellmann <gerd@gnu.org>
4149
4150 * keyboard.c (show_help_echo): Call message3_nolog with number of
4151 bytes in the help string as 2nd parameter, instead of the number
4152 of characters.
4153
9d348294
MB
41542000-11-13 Miles Bader <miles@gnu.org>
4155
4156 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
4157 (Fload): Use new openp return protocol.
4158 Don't try to use Vload_source_file_function to load .elc files.
4159 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
4160 openp return protocol.
4161 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
4162
1729bb9a
KH
41632000-11-11 Kenichi Handa <handa@etl.go.jp>
4164
4e677396
KH
4165 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
4166
4167 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
4168 Defined these macros.
4169 (NLIST_STRUCT): Avoid re-defining it.
4170
1729bb9a
KH
4171 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
4172 -I/usr/contrib/X11R6/include.
4173 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
4174
a82fe213
JR
41752000-11-10 Jason Rumney <jasonr@gnu.org>
4176
4177 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
4178
4179 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
4180 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
4181
4182 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
4183 (Qw32_charset_vietnamese): New symbol.
4184 (xlfd_charset_of_font): New function.
4185 (w32_load_system_font): Use it.
4186 (x_to_w32_charset): Use Fassoc to find charset info. Special case
4187 when Vw32_charset_info_alist is nil to ensure default face always
4188 has font. Use Fcar and Fcdr for safety.
4189 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
4190 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
4191 pseudo-codepages for special cases.
4192 (w32_to_x_font): New parameter to allow charset portion to be
4193 specified where there is many to one mapping. Callers changed.
4194 (w32_list_fonts): Avoid listing fonts that won't display.
4195
52d89894
GM
41962000-11-10 Gerd Moellmann <gerd@gnu.org>
4197
4198 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
4199 (font_list_1): Renamed from font_list.
4200 (font_list): New function, trying alternative registries from
4201 Vface_alternative_font_registry_alist.
4202 (Finternal_set_alternative_font_registry_alist): New function.
4203 (syms_of_xfaces): Initialize and Staticpro
52283633
SM
4204 Vface_alternative_font_registry_alist.
4205 Defsubr Finternal_set_alternative_font_registry_alist.
52d89894 4206
651cd3da
KR
42072000-11-09 Ken Raeburn <raeburn@gnu.org>
4208
4209 * lisp.h (Flooking_at): Declare.
4210
388ac098
GM
42112000-11-09 Gerd Moellmann <gerd@gnu.org>
4212
778fbc46 4213 * dired.c (directory_files_internal): Fix a braino.
52283633 4214
388ac098
GM
4215 * dired.c (directory_files_internal): Add missing GCPRO's.
4216 Some cleanup.
4217
ecaedde1
GM
42182000-11-08 Gerd Moellmann <gerd@gnu.org>
4219
f7eb32aa
GM
4220 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
4221 (resize_mini_window): Return quickly if Vresize_mini_window is
4222 nil. Don't return if Vmax_mini_window_height is nil.
4223
4224 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
4225 (syms_of_xdisp): Initialize them.
4226 (resize_mini_window): Act according to the setting of
4227 Vresize_mini_window.
4228 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
4229
ecaedde1
GM
4230 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
4231 scroll bar widget after configuring it, so that it will appear at
4232 the right position from the start.
4233 (XTredeem_scroll_bar): Cleaned up.
4234
3747ef2c
KH
42352000-11-08 Kenichi Handa <handa@etl.go.jp>
4236
4237 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 4238 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
4239 division by two.
4240
4241 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
4242
03391420
DL
42432000-11-07 Dave Love <fx@gnu.org>
4244
7758f1c1 4245 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
4246
4247 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
4248
b5de343d
GM
42492000-11-07 Gerd Moellmann <gerd@gnu.org>
4250
acad3c0b
GM
4251 * window.c (Fset_window_configuration): Don't try to preserve
4252 point in the current buffer, if that buffer is displayed in more
4253 than one window.
4254
b5de343d
GM
4255 * xfaces.c (lookup_named_face): If default face isn't realized,
4256 try to realize it. Return -1 if not successful.
4257 (Fx_list_fonts): Handle case that face cannot be determined.
4258 (Fface_font): Likewise.
4259
cdb1fe49
GM
42602000-11-06 Gerd Moellmann <gerd@gnu.org>
4261
4262 * window.c (displayed_window_lines): Detect partially
4263 visible lines at the bottom correctly.
4264
d3a67486
SM
42652000-11-06 Stefan Monnier <monnier@cs.yale.edu>
4266
4267 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
4268 when ensuring we don't do visit in indirect buffer.
4269
ff8dd5d5
KH
42702000-11-06 Kenichi Handa <handa@etl.go.jp>
4271
4272 * composite.h (compose_chars_in_text): Add prototype.
4273
4274 * composite.c (Vcomposition_function_table): New variable.
4275 (Qcomposition_function_table): New variable.
4276 (run_composition_function): Call
4277 Vcompose_chars_after_function with three arguments.
4278 (compose_chars_in_text): New function.
4279 (syms_of_composite): Modified the doc-string of
4280 Vcompose_chars_after_function. Declare composition-function-table
4281 as a lisp variable, and initialize it.
4282
4283 * xfns.c (x_encode_text): Suppress producing escape sequences for
4284 composition.
4285
4286 * xselect.c: Include composite.h.
4287 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
4288
d1145f85
AI
42892000-11-05 Andrew Innes <andrewi@gnu.org>
4290
4291 * w32term.c (x_produce_glyphs): Fix typo in enum name.
4292
4293 * sysdep.c (read_input_waiting): Remove extraneous argument to
4294 read_socket_hook.
4295
4296 * w32fns.c (Fx_server_version): Include w32_build_number in the
4297 return list.
4298
4299 * w32heap.c (w32_build_number): New variable.
4300 (cache_system_info): Set it.
4301
4302 * w32heap.h (w32_build_number): Add extern.
4303
4304 * emacs.c (syms_of_emacs): Update docstring for
4305 system-configuration, to reflect the actual usage on MS-Windows.
4306
e85ee976
GM
43072000-10-31 Gerd Moellmann <gerd@gnu.org>
4308
26dcb81b
GM
4309 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
4310 process idle timers while waiting for another event.
4311
52283633 4312 * dispnew.c (update_frame_line): Handle case where spaces in
0a894bad
GM
4313 the default face are colored.
4314
e85ee976
GM
4315 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
4316 window height hasn't changed.
4317
01b220b6
JR
43182000-10-31 Jason Rumney <jasonr@gnu.org>
4319
4320 * w32term.c (x_produce_glyphs): Handle composite characters.
4321 (x_draw_glyph_string_foreground)
4322 (x_draw_composite_glyph_string_foreground): Restore old font.
4323
4e6b7204
MB
43242000-10-31 Miles Bader <miles@lsi.nec.co.jp>
4325
4326 * minibuf.c (read_minibuf): Reset the undo history just before
4327 starting the recursive-edit.
4328
d4358b37
GM
43292000-10-30 Gerd Moellmann <gerd@gnu.org>
4330
563f68f1
GM
4331 * xfaces.c (menu_face_change_count): New variable.
4332 (Finternal_set_lisp_face_attribute): Increment it for changes
4333 of the `menu' face.
4334 (realize_basic_faces): Reflect changes in the `menu' faces
4335 in menu bars.
4336
82e274d1
GM
4337 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
4338 dy obtained from the iterator's y-position after moving from
4339 scroll_margin_pos to PT; see comment there.
52283633 4340
0dbf9fd2
GM
4341 * xdisp.c (safe_eval_handler): Call add_to_log.
4342
906b3b14
GM
4343 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
4344 is not a symbol or string.
4345
d4358b37
GM
4346 * xdisp.c (echo_area_display): Don't perform a display update from
4347 inside redisplay. The update will happen anyway at the end of
4348 redisplay, and it can confuse redisplay (GC messages while
4349 redisplaying, for instance.)
4350
70c825df
SM
43512000-10-30 Stefan Monnier <monnier@cs.yale.edu>
4352
cf9b4b0b
SM
4353 * xrdb.c (x_load_resources): Use the class name in the defaults.
4354
70c825df
SM
4355 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
4356 (regex_compile): Catch bogus \(\1\).
4357
a1d34b1e
GM
43582000-10-30 Gerd Moellmann <gerd@gnu.org>
4359
cae71efe
GM
4360 * xterm.c (x_alloc_nearest_color): Fix last change to compare
4361 RGB values.
52283633 4362
35efe0a1
GM
4363 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
4364 we have a color cache, check that the cached color equals the
4365 allocated color. If not, clear the color cache.
4366
1d3baf74
GM
4367 * window.c (displayed_window_lines): Change buffers if necessary.
4368 Fix computation of displayed lines.
4369
a1d34b1e
GM
4370 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
4371 update_menu_bindings to DEFVAR_BOOL.
4372
70737ea9
KH
43732000-10-30 Kenichi Handa <handa@etl.go.jp>
4374
70c825df 4375 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 4376
fa0cb51d
KH
4377 * puresize.h (BASE_PURESIZE): Increase to 680000.
4378
70737ea9
KH
4379 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
4380
0e4c08e8
JR
43812000-10-29 Jason Rumney <jasonr@gnu.org>
4382
4383 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
4384
4385 * w32term.c (w32_bdf_per_char_metric): Negate descent.
4386 (w32_cache_char_metrics): Handle possibility that 'x' does not
4387 exist in a BDF font.
4388 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
4389
4390 * w32bdf.h (bdffont): Add nchars.
4391
4392 * w32bdf.c (set_bdf_font_info): Set it.
4393 (w32_BDF_TextOut): Swap byte order of double byte characters.
4394 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
4395
45b84006
EZ
43962000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
4397
4398 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
4399 don't override the colors in frame's param_alist, unless they are
4400 unspecified.
4401
4402 * term.c (reassert_line_highlight): If inverse_video is non-zero,
4403 reverse the effect of the highlight flag.
4404
caf9deee
KR
44052000-10-27 Ken Raeburn <raeburn@gnu.org>
4406
4407 * window.h (Fwindow_live_p): Declare.
4408
ae0b9b46
KR
4409 * undo.c (record_delete): Check that last_undo_buffer is really a
4410 buffer before applying XBUFFER to it.
4411
4412 * keymap.c (where_is_internal): Pass lisp object, not integer, to
4413 Faref.
4414
02067692
SM
44152000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4416
4417 * lisp.h (KEYMAPP): New macro.
4418 (get_keymap): Remove.
4419 (get_keymap_1): Rename get_keymap.
4420
4421 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
4422
4423 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
4424
4425 * xmenu.c (single_submenu): Use KEYMAPP.
4426 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4427 Use KEYMAPP rather than Fkeymapp.
4428
4429 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
4430
4431 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
4432 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
4433 Use KEYMAPP rather than Fkeymapp.
4434 (single_submenu): Use KEYMAPP.
4435 (w32_menu_show, w32_dialog_show): Use TRUE.
4436
4437 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
4438
4439 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
4440 (Fkeymapp): Use KEYMAPP.
4441 (get_keymap): Rename from get_keymap_1. Remove old def.
4442 Return t when autoload=0 and error=0 and the keymap needs autoloading.
4443 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
4444 (Fminor_mode_key_binding): Don't raise an error if the binding
4445 is not a keymap.
4446 (Fuse_global_map, Fuse_local_map): Allow autoloading.
4447 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
4448
4449 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
4450 Allow Vspecial_event_map to be autoloaded.
4451 (menu_bar_items): Fetch the keymap rather than using keymapp.
4452 (menu_bar_one_keymap): No need to follow func-indirect any more.
4453 (parse_menu_item): get_keymap_1 -> get_keymap.
4454 (tool_bar_items): Fetch the keymap rather than using keymapp.
4455 (read_key_sequence): Use KEYMAPP.
4456
4457 * intervals.c (get_local_map): Use get_keymap rather than following
4458 function-indirections explicitly.
4459
4460 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
4461
f9d80af3
JR
44622000-10-27 Jason Rumney <jasonr@gnu.org>
4463
4464 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
4465 point, as Windows has oversized fonts.
4466
4467 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
4468
a3ba27da
GM
44692000-10-27 Gerd Moellmann <gerd@gnu.org>
4470
4471 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
4472 (freehook, reallochook): Handle null pointer arguments.
4473 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
4474
aa3b80cc
SM
44752000-10-27 Stefan Monnier <monnier@cs.yale.edu>
4476
4477 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
4478 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
4479 Giving in to popular pressure to shut up the compiler with casts.
4480
e24e84cc
GM
44812000-10-27 Gerd Moellmann <gerd@gnu.org>
4482
4483 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
4484 signed value, and use a default value computed from the font's
4485 maximum descent.
4486
05ea7ef2
MB
44872000-10-27 Miles Bader <miles@lsi.nec.co.jp>
4488
4489 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
4490 that specify a negative underline position can still use underlines.
4491
4492 * window.c (Fpos_visible_in_window_p): Make POS default to
4493 WINDOW's point, not the current buffer's point.
4494
0b95284b
DL
44952000-10-26 Dave Love <fx@gnu.org>
4496
4497 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
4498 when it's necessary.
4499
6c5b90af
GM
45002000-10-26 Gerd Moellmann <gerd@gnu.org>
4501
8b6d9dc9
GM
4502 * window.c (size_window): Compute size difference from sum of old
4503 child window sizes instead of from parent's size.
4504
6bc92b2e
GM
4505 * xdisp.c (pos_visible_p): Change current buffer if necessary.
4506 Handle obscured lines at the top of the window.
4507
4508 * frame.c (Fdelete_frame): Doc fix. Move running the hook
4509 down after the last error condition check.
4510
6c5b90af
GM
4511 * frame.c (Fdelete_frame): Run delete-frame-hook.
4512
42f92d4d
KH
45132000-10-26 Kenichi Handa <handa@etl.go.jp>
4514
4515 * coding.c (decode_coding): Fix previous change (check also
4516 CODING_MODE_LAST_BLOCK).
4517
d97151cb
SM
45182000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4519
e7efc503
SM
4520 * regex.c: More `unsigned char' -> `re_char' changes.
4521 Also change several `int' into `re_wchar_t'.
4522 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
4523 (PUSH_FAILURE_POINTER): Don't cast any more.
4524 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
4525 We want GCC to complain, since this piece of code makes
4526 re_match non-reentrant, which *should* be fixed.
4527 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
4528 (EXTEND_BUFFER): Use RETALLOC.
4529 (SET_LIST_BIT): Don't cast.
4530 (re_wchar_t): New type.
4531 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
4532 that those two functions will always properly return.
4533 (IMMEDIATE_QUIT_CHECK): Cast to void.
4534 (analyse_first): Use recursion rather than an explicit stack.
4535 (re_compile_fastmap): Can't fail anymore.
4536 (re_search_2): Don't check re_compile_fastmap for failure.
4537 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
4538 Now also sets the new value (passed in a new argument).
4539 (re_match_2_internal): Use it.
4540 Also, use a new var `reg' of type size_t when looping through regs
4541 rather than reuse the inappropriate `mcnt'.
4542
d97151cb
SM
4543 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
4544 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
4545 (where_is_internal): Renamed from Fwhere_is_internal.
4546 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
4547 (Fwhere_is_internal): New function wrapping where_is_internal.
4548 (where_is_internal_1): Handle the case where we're filling the cache.
4549 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
4550
d5789b65
MB
45512000-10-25 Miles Bader <miles@gnu.org>
4552
4553 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4554
4ecda532
GM
45552000-10-25 Gerd Moellmann <gerd@gnu.org>
4556
4557 * window.c (pos_fully_visible_p): Removed.
4558 (Fpos_visible_in_window_p): Use pos_visible_p to determine
4559 if position is visible and/or fully visible.
4560
4561 * lisp.h (pos_visible_p): Add prototype.
4562
4563 * xdisp.c (pos_visible_p): New function.
4564
68c3a137
KH
45652000-10-25 Kenichi Handa <handa@etl.go.jp>
4566
4567 * process.c (send_process): If OBJECT is t, it means that the data
4568 is from C string, but we should encode it. Before calling
4569 setup_raw_text_coding_system, be sure to flush out data by the
4570 previous coding system.
4571
7ae1c032
MB
45722000-10-25 Miles Bader <miles@lsi.nec.co.jp>
4573
ff4dcd4b
MB
4574 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
4575 assignment of startpos to prev when startpos == pos.
4576
7ae1c032
MB
4577 * editfns.c (find_field): Set the field stickiness correctly from
4578 overlay fields. Use renamed `text_property_stickiness'.
4579 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 4580 Only check text properties, not overlays.
7ae1c032
MB
4581 * textprop.c (get_char_property_and_overlay): New function.
4582 (Fget_char_property): Use it.
4583 * intervals.h (get_char_property_and_overlay): Add declaration.
4584
49801145
SM
45852000-10-25 Stefan Monnier <monnier@cs.yale.edu>
4586
4587 * keymap.c: Use AREF, ASET and ASIZE macros.
4588 (Fmake_sparse_keymap): Docstring fix.
4589 (synkey): Remove.
4590 (shadow_lookup): Move up.
4591 Handle the case where lookup-key returns an integer.
4592 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
4593 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
4594 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
4595 Simplify/rewrite the keymap-finding code.
4596 Add check for command shadowing, using shadow_lookup.
4597
39e776cd
SM
45982000-10-24 Stefan Monnier <monnier@cs.yale.edu>
4599
4600 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
4601 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
4602 a symbol.
4603
2488aba5
AI
46042000-10-24 Andrew Innes <andrewi@gnu.org>
4605
4606 * dired.c (directory_files_internal_unwind): New function.
4607 (directory_files_internal): Use it to ensure closedir is called
4608 even if expand-file-name or file-attributes throw, eg. because of
4609 a user interrupt. Also enable immediate_quit while calling
4610 re_search, so that matching can be interrupted as well.
4611
b94fdf61
AI
46122000-10-24 Andrew Innes <andrewi@gnu.org>
4613
4614 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
4615 NT-Emacs only.
4616 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
4617 so that re_search functions only quit when callers expect them to.
4618
46192000-10-24 Kenichi Handa <handa@etl.go.jp>
4620
4621 * regex.c (regex_compile): Change the way of handling a range from
4622 a char less than 256 to a char not less than 256.
4623
1946f901
GM
46242000-10-24 Gerd Moellmann <gerd@gnu.org>
4625
7ae2f10f
GM
4626 * window.c (size_window): Prevent setting window's width or
4627 height to a negative value (esp. with XSETFASTINT).
4628
5dcab13e
GM
4629 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
4630 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
4631 (protect_malloc_state) [GC_MALLOC_CHECK &&
4632 GC_PROTECT_MALLOC_STATE]: New function.
4633 (PROTECT_MALLOC_STATE): New macro.
4634 (__malloc_initialize, morecore, _malloc_internal)
4635 (_free_internal) _realloc_internal): Use it to make _heapinfo
4636 read-only outside of gmalloc.
4637
63e1b552
GM
4638 * keymap.c: Update copyright.
4639
1946f901
GM
4640 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
4641 a symbol.
4642
4fa09beb
GM
46432000-10-24 Colin Walters <walters@cis.ohio-state.edu>
4644
4645 * filelock.c (unlock_all_files): Use unlock_file to expand each
4646 buffer's file_truename before trying remove its lock file.
4647
23afac01
EZ
46482000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
4649
4650 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
4651 or CRLF, decode EOLs.
4652
04448b95
KH
46532000-10-24 Kenichi Handa <handa@etl.go.jp>
4654
4655 * window.c (Fdisplay_buffer): Fix doc.
4656
3090a5a5
JR
46572000-10-23 Jason Rumney <jasonr@gnu.org>
4658
4659 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
4660 ASCII font of default fontset on Windows.
4661
4662 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
4663 xterm.c comment below).
4664
4665 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
4666
a83fee2c
GM
46672000-10-23 Gerd Moellmann <gerd@gnu.org>
4668
4669 * xterm.c (x_connection_closed): Reset handling_signal.
4670
52283633 4671 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
a83fee2c 4672
6ffdb539
MB
46732000-10-23 Miles Bader <miles@gnu.org>
4674
4675 * window.c (window_scroll_pixel_based, window_scroll_line_based):
4676 Pass nil for FULLY argument to Fpos_visible_in_window_p to
4677 maintain old behavior.
4678 * minibuf.c (Fminibuffer_complete): Likewise.
4679
7f1c969b
MB
46802000-10-23 Miles Bader <miles@lsi.nec.co.jp>
4681
4682 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
4683 that when a font can't be exactly centered, it errs up rather than
4684 down.
4685
23afac01 46862000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd 4687
52283633 4688 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
8ec118cd 4689
1a578e9b
AC
46902000-10-23 Andrew Choi <akochoi@i-cable.com>
4691
4692 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
4693
4694 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 4695 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
4696
4697 * emacs.c (main) [macintosh]: Call syms_of_textprop,
4698 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
4699 syms_of_search, x_term_init, and init_keyboard before calling
4700 init_window_once. Also, call syms_of_xmenu.
4701
4702 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
4703 default fontset to Monaco.
4704
4705 * frame.c [macintosh]: Include macterm.h. Remove declarations of
4706 NewMacWindow and DisposeMacWindow.
4707 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
4708 instead of calling NewMacWindow and setting fields of
4709 f->output_data.mac directly. Call init_frame_faces.
4710 (Fdelete_frame) [macintosh]: Remove unused code.
4711 (Fmodify_frame_parameters) [macintosh]: Call
4712 x_set_frame_parameters instead of mac_set_frame_parameters.
4713
4714 * frame.h [macintosh]: Define menu_bar_lines field in struct
4715 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
4716
4717 * keyboard.c [macintosh]: Include macterm.h.
4718 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
4719 and menu_bar_activate_event type events as for X and NT.
4720 (make_lispy_event) [macintosh]: Construct lisp events of type
4721 MENU_BAR_EVENT as for X and NT.
4722
4723 * sysdep.c [macintosh]: Remove declaration for sys_signal.
4724 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
4725 (sys_subshell) [macintosh]: Remove definition entirely.
4726 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
4727 Vwindow_system_version here. Remove initialization of
4728 Vx_bitmap_file_path.
4729 (read_input_waiting): Correct the number of parameters passed to
4730 read_socket_hook.
4731 Move all Macintosh functions to mac/mac.c.
4732
4733 * term.c [macintosh]: Include macterm.h.
4734
4735 * window.c [macintosh]: Include macterm.h.
4736
4737 * xdisp.c [macintosh]: Include macterm.h. Declare
4738 set_frame_menubar and pending_menu_activation.
4739 (echo_area_display) [macintosh]: Do not return if terminal frame
4740 is the selected frame.
4741 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
4742 Allow only the selected frame to set menu bar.
4743 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
4744 calling FRAME_EXTERNAL_MENU_BAR (f).
4745 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
4746
4747 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
4748 and check_x. Declare XCreateGC. Define x_create_gc and
4749 x_free_gc. Initialize font_sort_order.
4750 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
4751 but call x_list_fonts instead of w32_list_fonts.
4752 (Finternal_face_x_get_resource) [macintosh]: Do not call
4753 display_x_get_resource.
4754 (prepare_face_for_display) [macintosh]: Set xgcv.font.
4755 (realize_x_face) [macintosh]: Load the font if it is specified in
4756 ATTRS.
52283633 4757 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
1a578e9b 4758
1ffbabe3
SM
47592000-10-22 Stefan Monnier <monnier@cs.yale.edu>
4760
4761 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
4762 is nil: since we go to the end of submap anyway, we'd end up
4763 setting nil to nil.
4764 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
4765 doesn't obey autoload.
4766
bed43f1d
EZ
47672000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4768
1ffbabe3 4769 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 4770
ea4233a7
JR
47712000-10-21 Jason Rumney <jasonr@gnu.org>
4772
4773 * w32term.c (w32_cache_char_metrics): Double check that font is
4774 really fixed pitch before trusting tmPitchAndFamily.
4775
f3d3c491
AI
47762000-10-21 Andrew Innes <andrewi@gnu.org>
4777
4778 * w32gui.h (w32_char_font_type): Move enum from w32term.c
4779
4780 * w32term.h: Extern decl for w32_cache_char_metrics.
4781
4782 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
4783
4784 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
4785 (w32_unload_font): Free per_char array if present.
4786
4787 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
4788 cached information in emulated XFontStruct to handle common cases
4789 quickly. Do not allocate XCharStruct for return.
4790 (w32_native_per_char_metric): New function.
4791 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
4792 allocating one.
4793 (x_produce_glyphs): Don't get an HDC. Change calls to
4794 w32_per_char_metric to match arg change above. Remove calls to
4795 free results.
4796 (w32_get_glyph_overhangs): Ditto.
4797 (w32_cache_char_metrics): New function.
4798
4799 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
4800 ($(BLD)/casefiddle.$(O)): Remove compile command.
4801 ($(BLD)/gmalloc.$(O)): Remove compile command.
52283633
SM
4802 ($(BLD)/dispnew.obj):
4803 ($(BLD)/keyboard.obj):
4804 ($(BLD)/w32inevt.obj):
4805 ($(BLD)/w32bdf.obj):
4806 ($(BLD)/alloc.obj):
4807 ($(BLD)/buffer.obj):
4808 ($(BLD)/editfns.obj):
4809 ($(BLD)/emacs.obj):
4810 ($(BLD)/fileio.obj):
4811 ($(BLD)/fns.obj):
4812 ($(BLD)/indent.obj):
4813 ($(BLD)/insdel.obj):
4814 ($(BLD)/intervals.obj):
4815 ($(BLD)/minibuf.obj):
4816 ($(BLD)/print.obj):
4817 ($(BLD)/scroll.obj):
4818 ($(BLD)/sysdep.obj):
4819 ($(BLD)/textprop.obj):
4820 ($(BLD)/widget.obj):
f3d3c491
AI
4821 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
4822 ($(BLD)/term.obj): Add dependency on dispextern.h.
4823
52283633
SM
4824 * makefile.nt ($(BLD)\dispnew.obj):
4825 ($(BLD)\keyboard.obj):
4826 ($(BLD)\w32inevt.obj):
4827 ($(BLD)\w32bdf.obj):
4828 ($(BLD)\alloc.obj):
4829 ($(BLD)\buffer.obj):
4830 ($(BLD)\editfns.obj):
4831 ($(BLD)\emacs.obj):
4832 ($(BLD)\fileio.obj):
4833 ($(BLD)\fns.obj):
4834 ($(BLD)\indent.obj):
4835 ($(BLD)\insdel.obj):
4836 ($(BLD)\intervals.obj):
4837 ($(BLD)\minibuf.obj):
4838 ($(BLD)\print.obj):
4839 ($(BLD)\scroll.obj):
4840 ($(BLD)\sysdep.obj):
4841 ($(BLD)\textprop.obj):
4842 ($(BLD)\widget.obj):
f3d3c491
AI
4843 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
4844 ($(BLD)\term.obj): Add dependency on dispextern.h
4845
18ad4821
EZ
48462000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
4847
4848 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
4849 with an additional argument of Qt.
4850
de54681a
MB
48512000-10-21 Miles Bader <miles@gnu.org>
4852
4853 * window.c (pos_fully_visible_in_window_p): New function.
4854 (Fpos_visible_in_window_p): Add FULLY argument.
4855 Use pos_fully_visible_in_window_p.
4856 (window_scroll_pixel_based, window_scroll_line_based): Update
4857 calls to Fpos_visible_in_window_p.
4858 * lisp.h (Fpos_visible_in_window_p): Update prototype
4859
13c844fb
GM
48602000-10-20 Gerd Moellmann <gerd@gnu.org>
4861
4862 * alloc.c (toplevel): Conditionalize compilation of mem_*
4863 functions differently.
52283633 4864
d9506268
JR
48652000-10-20 Jason Rumney <jasonr@gnu.org>
4866
4867 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
4868 mem_init where it used to be. mem_z etc not defined otherwise.
4869
8094989b
GM
48702000-10-20 Gerd Moellmann <gerd@gnu.org>
4871
4872 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
4873 GC_MALLOC_CHECK.
4874 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
4875 structure definition and related variabled to the top of the file.
4876 Include this code when GC_MALLOC_CHECK is defined.
4877 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
4878 register/unregister allocated region.
4879 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
4880 which isn't allocated.
4881 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
4882 something which is already in use.
4883 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
4884 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
4885 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
4886 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
4887
4888 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
4889 _malloc_internal instead of malloc.
4890 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
4891 of free.
4892
ea456eb4
AI
48932000-10-20 Andrew Innes <andrewi@gnu.org>
4894
4895 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4896 Windows.
4897 (my_strftime) <macro>: Don't use macro arg list when redefining as
4898 _strftime_copytm.
4899 (my_strftime) <function>: Supply 0 as ut argument.
4900
e64c3a75
JR
49012000-10-19 Jason Rumney <jasonr@altavista.net>
4902
4903 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
4904 including dispextern.h, as it stops faces from working.
4905
4906 * w32fns.c (Fx_create_frame): Don't bother calling
4907 face-set-after-frame-default since the caller does it for us
4908 anyway. Clean up calls to x_get_arg to be consistent with X.
4909
4910 * w32term.c (x_produce_glyphs): Handle
4911 unibyte_display_via_language_environment correctly.
4912 (w32_draw_box_rect): Fix the calculation of width and height.
4913
4914 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
4915 as it has stopped working.
4916 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
4917 menu-bar.
4918
17401c97
GM
49192000-10-19 Gerd Moellmann <gerd@gnu.org>
4920
4921 * eval.c (skip_debugger): Prevent a compiler warning.
4922 (Fcondition_case): Likewise.
4923 (Fbacktrace_frame): Use a null interactive spec.
4924
773272d8
KH
49252000-10-19 Kenichi Handa <handa@etl.go.jp>
4926
4927 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
4928
a42943e9
GM
49292000-10-18 Gerd Moellmann <gerd@gnu.org>
4930
e50517d9
GM
4931 * strftime.c: Sync with glibc, file version 1.78.
4932 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
4933 should no longer be used according to ISO 8601.
4934
9035a35a
GM
4935 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
4936 no map for meta_prefix_char, don't try to use it as a keymap.
4937 Instead, if T_OK is non-zero, look up a default binding, if any,
4938 otherwise, if T_OK is zero, return nil.
4939
a42943e9
GM
4940 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
4941 (x_to_xcolors, png_load): Use x_query_color.
4942
52283633
SM
4943 * xterm.c (x_color_cells, x_query_colors, x_query_color):
4944 New functions.
a42943e9
GM
4945 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
4946 which can be slow.
4947 (x_copy_color, x_alloc_lighter_color): Likewise.
4948
4949 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
4950 (x_query_color, x_query_colors): Add prototype.
4951
4952 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
4953 check_string_bytes only if not noninteractive, increase count to 50.
4954
00de2987
MB
49552000-10-18 Miles Bader <miles@lsi.nec.co.jp>
4956
4957 * insdel.c (adjust_markers_for_delete): Handle before-insertion
4958 markers correctly.
4959
54918e2b
GM
49602000-10-17 Gerd Moellmann <gerd@gnu.org>
4961
1f0b3fd2
GM
4962 * alloc.c (pure_bytes_used): Renamed from pureptr.
4963 (ALIGN): New macro.
4964 (pure_alloc): New function.
4965 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
4966 Use it.
4967 (Fpurecopy): Use PURE_POINTER_P.
4968
68c5d1db
GM
4969 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
4970 PT has moved backward.
52283633 4971
9a038881
GM
4972 * xdisp.c (cursor_row_p): Take continued lines into account.
4973
361b097f
GM
4974 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
4975 string's size_byte.
4976 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
4977 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
4978 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
4979 string allocated.
4980
54918e2b
GM
4981 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
4982 of selective display off while searching for the next line start.
4983
03ed0806
KH
49842000-10-17 Kenichi Handa <handa@etl.go.jp>
4985
4986 * Makefile.in (term.o): Depend on dispextern.h.
4987
7e05cdaf
SM
49882000-10-16 Stefan Monnier <monnier@cs.yale.edu>
4989
4990 * keymap.c (keymap_memberp): Ensure that nil is not a member.
4991
a6801fd1
GM
49922000-10-16 Gerd Moellmann <gerd@gnu.org>
4993
483de32b
GM
4994 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
4995 the iterator at the beginning, so that they can be set later on,
4996 for instance in reseat_at_next_visible_line_start, without being
4997 overwritten.
4998
a6801fd1
GM
4999 * xfns.c (pbm_format): Add :foreground and :background keywords.
5000 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
52283633 5001 (xbm_load): Recognize foreground and background color specifications.
a6801fd1 5002
dbf1fcc1
EZ
50032000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
5004
5005 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
5006
52283633 5007 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
dbf1fcc1
EZ
5008
5009 * msdos.c (IT_set_face): Compare highlighted face with the default
5010 face, and invert colors if these faces' colors are identical.
5011 (Fmsdos_remember_default_colors): Don't swap foreground and
5012 background colors in initial_colors[].
5013 (IT_set_frame_parameters): Don't swap frame's foreground and
5014 background pixels. If ALIST includes "(reverse . t)", swap
5015 foreground-color and background-color properties in frame's
5016 param_alist. If the original frame's param_alist doesn't specify
5017 the colors, store unspecified-fg and unspecified-bg, reversed if
5018 required.
5019
5020 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
5021 the colors are unspecified and reversed, reverse fore- and back-
5022 ground in the returned value.
5023 (Fframe_parameter): Ditto.
5024
b41fe2c3 50252000-10-16 Gerd Moellmann <gerd@gnu.org>
52283633 5026
3a6b59d9
GM
5027 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
5028 get_last_unchanged_at_beg_row.
5029 (find_first_unchanged_at_end_row): Renamed from
5030 get_first_unchanged_at_end_row.
5031 (find_first_unchanged_at_end_row): Convert assertions to
5032 unconditional tests which abort. When looking for a row in
5033 unchanged text, don't go further back than first_text_row.
5034
b41fe2c3
GM
5035 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
5036 Don't add in the last line's height when deciding if the new
5037 position is below the scroll margin.
9d1af64f 5038
b41fe2c3 50392000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
5040
5041 * editfns.c (Fconstrain_to_field): Check carefully for field
5042 boundaries if either OLD_POS or NEW_POS has a non-nil field
5043 property, even if they're the same.
5044
c412cb7b
KH
50452000-10-16 Kenichi Handa <handa@etl.go.jp>
5046
5047 * xterm.c (x_draw_box_rect): Fix the calculation of width and
5048 height for XFillRectangle.
5049
5586f3eb
SM
50502000-10-15 Stefan Monnier <monnier@cs.yale.edu>
5051
5052 * syntax.c (Fstring_to_syntax): New function extracted from
5053 Fmodify_syntax_entry.
5054 (Fmodify_syntax_entry): Use it and document the ! and | fences.
5055 (skip_chars, Fforward_comment): Remove unused variables.
5056 (syms_of_syntax): Add defsubr for string-to-syntax.
5057 (describe_syntax): Add code for comment and string fences.
5058
db785038
SM
50592000-10-14 Stefan Monnier <monnier@cs.yale.edu>
5060
5061 * keymap.c (access_keymap): Add AUTOLOAD parameter.
5062 Do the meta->esc mapping. Call get_keyelt before returning.
5063 Start scanning from the second element (the first is always `keymap')
5064 to make it easier to detect when we reach a parent map.
5065 Handle the case of inheriting from a symbol whose function is a map.
5066 (Fkeymap_parent): Also handle the `inherit from symbol' case.
5067 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
5068 (get_keyelt, Flookup_key): Update call to access_keymap.
5069 Remove the meta->esc mappings.
5070 (define_as_prefix): Delete old disabled code.
5071 (menu_item_p): New function.
5072 (where_is_internal_1): Skip over the few remaining menu items.
5073 * lisp.h (access_keymap): Update prototype.
5074 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
5075 Update call to access_keymap.
5076 (follow_key, read_key_sequence): Update calls to access_keymap.
5077 Remove the meta->esc mappings.
5078
cafafe0b
GM
50792000-10-13 Gerd Moellmann <gerd@gnu.org>
5080
a2e2a7f6
GM
5081 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
5082 with additional argument.
5083
cafafe0b
GM
5084 * xdisp.c (cursor_row_p): New function.
5085 (try_cursor_movement, display_line): Use it.
52283633 5086
cafafe0b
GM
5087 * xdisp.c (append_space): Also save/restore iterator's current
5088 character and its length.
5089
5090 * xdisp.c (init_from_display_pos): Add an assertion.
5091 (handle_stop): Don't set iterator's add_overlay_start.
5092 (handle_invisible_prop): Likewise.
5093 (load_overlay_strings): If text under an overlay is invisible,
5094 take both before- and after-strings into account when the iterator
5095 is positioned either at the start or at the end of the overlay.
5096 (forward_to_next_line_start): Rewritten.
5097 (reseat_at_next_visible_line_start): Rewritten.
5098 (set_iterator_to_next): Add parameter RESEAT_P.
5099
5100 * dispextern.h (struct it): Remove member add_overlay_start.
5101 (set_iterator_to_next): Change prototype.
5102
c744452b
KH
51032000-10-13 Kenichi Handa <handa@etl.go.jp>
5104
5105 * coding.c (code_convert_region): Be sure to initialize
5106 coding->category_idx.
e4a3f4e1
KH
5107 (decode_coding_string): Set coding->src_multibyte and
5108 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
5109 (encode_coding_string): Set coding->src_multibyte and
5110 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 5111
321fd26f
SM
51122000-10-12 Stefan Monnier <monnier@cs.yale.edu>
5113
5114 * xfns.c (Fx_create_frame): Don't bother calling
5115 face-set-after-frame-default since the caller does it for us anyway.
5116
76832439
EZ
51172000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
5118
5119 * window.c (coordinates_in_window): Fix detection of vertical line
5120 on character terminals.
5121
2483cf58
GM
51222000-10-12 Gerd Moellmann <gerd@gnu.org>
5123
5124 * editfns.c (save_excursion_save): Additionally record the
5125 selected window.
5126 (save_excursion_restore): If buffer was visible in a window, and a
5127 different window was selected, and the old selected window is
5128 still live, restore point in that window.
5129
eb991b25
KH
51302000-10-12 Kenichi Handa <handa@etl.go.jp>
5131
8a0eba09
KH
5132 * xterm.c (x_produce_glyphs): Handle
5133 unibyte_display_via_language_environment correctly.
5134
20401fcc
KH
5135 * regex.c (regex_compile): Change the way of handling a range from
5136 unibyte char to multibyte char.
5137
5138 * syntax.c (skip_chars): Change the way of handling a range from
5139 unibyte char to multibyte char.
5140
eb991b25
KH
5141 * process.c (read_process_output): Cancel previous change.
5142
365dd325
EZ
51432000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
5144
c1b096cb
EZ
5145 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
5146
365dd325
EZ
5147 * charset.c (Ffind_charset_string): Doc fix.
5148 (Ffind_charset_region): Doc fix.
5149
eb483c2b
KH
51502000-10-11 Kenichi Handa <handa@mule.m17n.org>
5151
5152 * process.c (read_process_output): Fix previous change. Adjust
5153 multibyteness of text to insert in a buffer by
52283633 5154 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
eb483c2b 5155
b40bfb99
AS
51562000-10-10 Andreas Schwab <schwab@suse.de>
5157
5158 * alloc.c (mark_object): Remove all workarounds installed on
5159 1993-08-08.
5160
caff31d4
KH
51612000-10-10 Kenichi Handa <handa@etl.go.jp>
5162
52283633 5163 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
caff31d4
KH
5164 (base64_encode_1): Make it work for a text of multibyte form.
5165 (Fbase64_decode_region): Allocate sufficient memory for multibyte
5166 case. Don't call str_to_multibyte because base64_decode_1
5167 produces correct multibyte form for eight-bit codes.
52283633 5168 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
caff31d4
KH
5169 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
5170 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
5171 codes.
5172
5173 * charset.h (CHAR_STRING): Optimized for single byte characters.
5174
cba026ef
AS
51752000-10-09 Andreas Schwab <schwab@suse.de>
5176
5177 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
5178 -1 after socket is closed, to fall through to error processing.
5179
1e21fe48
EZ
51802000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
5181
5182 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 5183 variables. If ALIST includes foreground-color or
1e21fe48
EZ
5184 background-color, change also the colors of the default face for
5185 this frame.
5186
a640322e
EZ
51872000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
5188
5189 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
5190 them extern (they are defined on xfaces.c).
5191 (syms_of_msdos): Don't intern and don't staticpro
5192 Qbackground_color and Qforeground_color.
5193
a115794c
EZ
51942000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
5195
5196 * frame.c (Fframe_parameter): For non-windowed frames, if
5197 f->param_alist says foreground or background color is unspecified,
5198 call tty_color_name to return the color name computed from the
5199 frame's current colors.
5200
f5533b63
DL
52012000-10-06 Dave Love <fx@gnu.org>
5202
5203 * terminfo.c (ospeed): Don't declare.
5204
5205 * sysdep.c: Don't include string.h.
5206 (h_errno): Declare conditional also on TRY_AGAIN.
5207
5208 * charset.c (Ffind_charset_string): Doc fix.
5209
52283633 5210 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
f5533b63
DL
5211 (Fbase64_decode_region, Fbase64_decode_string): More explicit
5212 error messages.
5213
2b06561a
DL
52142000-10-05 Dave Love <fx@gnu.org>
5215
5216 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
5217 position like menu-bar.
5218
ca839c85
GM
52192000-10-05 Gerd Moellmann <gerd@gnu.org>
5220
5221 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
5222
5223 * xdisp.c (handle_single_display_prop): Use safe_call1.
5224 (safe_call): Renamed from call_function.
5225 (safe_call1): New function.
5226 (handle_fontified_prop): Use safe_call1 instead of call1.
5227 (safe_eval): Renamed from eval_form.
5228 (safe_eval_handler): Renamed from eval_handler.
5229 (handle_single_display_prop, display_mode_element): Use safe_eval
5230 instead of eval_form.
5231
5232 * xfaces.c (merge_face_heights): Use safe_call instead of
5233 call_function.
5234
5235 * keyboard.c (show_help_echo): Use safe_call instead of
5236 call_function; use safe_eval instead of eval_form.
5237
5238 * lisp.h (safe_call): Renamed from call_function.
5239 (safe_eval): Renamed from eval_form.
5240 (safe_call1): Add prototype.
5241
a3489ece
MB
52422000-10-05 Miles Bader <miles@lsi.nec.co.jp>
5243
5244 * xfns.c (image_ascent): Rearrange ascent calculation for the
5245 has-a-font case.
5246
35810b6f
SM
52472000-10-04 Stefan Monnier <monnier@cs.yale.edu>
5248
5249 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
5250 (where_is_internal_1): Don't bother ignoring menu-items any more.
5251
3dc78168
GM
52522000-10-04 Gerd Moellmann <gerd@gnu.org>
5253
5254 * keyboard.c (update_menu_bindings): New variable.
5255 (parse_menu_item): Use AREF. If update_menu_bindings
5256 is 0, don't update menu bindings.
5257 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
5258
1efc2bb9
EZ
52592000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
5260
5261 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
5262 to `mark_object'.
5263
3f679f55
SM
52642000-10-02 Stefan Monnier <monnier@cs.yale.edu>
5265
5266 * syntax.c (forw_comment): Match nestedness of ender/starter.
5267 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
5268 (prev_char_comstart_first): Remove.
5269 (back_comment): Check two-char comment markers more carefully
5270 to better handle overlapping cases like *//* or /* */* */ ...
5271 Match nestedness of ender/starter.
5272
2021ab61
DL
52732000-10-02 Dave Love <fx@gnu.org>
5274
5275 * config.in (HAVE_GAI_STRERROR): Add undef.
5276
5277 * process.c (Fopen_network_stream): Use it.
5278
5279 * m/alpha.h (NO_REMAP): Don't define.
5280
64e6cc18
GM
52812000-10-02 Gerd Moellmann <gerd@gnu.org>
5282
5283 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
5284 return with a string converted to an integer or vice versa when
5285 Vmocklisp_arguments is t.
5286 (Fsignal): Likewise. The function can return for `quit'.
5287 (struct gcpro): Declare member `var' to point to a volatile
5288 Lisp_Object.
5289
5290 * eval.c (error): Prevent compiler warning.
5291
b1904cd9
SM
52922000-09-30 Stefan Monnier <monnier@cs.yale.edu>
5293
5294 * keymap.c (keymap_memberp): New function.
5295 (Fset_keymap_parent): Use it.
5296 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
5297 Use keymap_memberp to avoid creating cycles.
5298 (access_keymap): Use KEYMAPP.
5299
71c9ec51
GM
53002000-09-30 Gerd Moellmann <gerd@gnu.org>
5301
5302 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
5303 gai_strerror. Make sure xerrno is set if connect fails. Improve
5304 error recovery.
71c9ec51 5305
c70c6b58
JR
53062000-09-29 Jason Rumney <jasonr@gnu.org>
5307
5308 * w32term.c (w32_char_font_type, w32_encode_char)
5309 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
5310 (w32_bdf_per_char_metric): New function.
5311 (w32_per_char_metric): Use it.
5312 (x_draw_glyph_string_background): Always draw background for BDF
5313 glyphs.
5314
5315 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
5316 GDI object which is a scarce resource.
5317
5318 * w32bdf.c (search_file_line): Fix skipping of whitespace.
5319 (get_quoted_string): Fix limit on memchr search.
5320 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
5321 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
5322 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
5323 (get_cached_font_char, cache_char_offset): Use macro
5324 BDF_CODEPOINT_RANGE_COVER_P.
5325 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
5326 (clear_cached_bitmap_slots): New function.
5327 (GET_HEX_VALUE): G-Z, g-z are not hex.
5328 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
5329 (get_bitmap_with_cache): Use new cache implementation.
5330 (create_offscreen_bitmap): New function.
5331 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
5332
5333 * w32term.c (x_produce_glyphs): If the distance from the current
5334 position to the next tab stop is less than a canonical character
5335 width, use the tab stop after that.
5336 (x_draw_glyphs): Handle case START and END are out of bounds more
5337 carefully.
5338 (x_clear_mouse_face): Block/unblock input.
5339 (x_display_and_set_cursor): Don't show a hollow box cursor for
5340 buffers whose cursor_type is nil.
5341
fe01239f
GM
53422000-09-29 Gerd Moellmann <gerd@gnu.org>
5343
52283633 5344 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
fe01239f
GM
5345
5346 * dispextern.h (updating_frame): Declare extern.
5347
e7c52f1f
AS
53482000-09-29 Andreas Schwab <schwab@suse.de>
5349
5350 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
5351
de6e1f7c
GM
53522000-09-29 Gerd Moellmann <gerd@gnu.org>
5353
25126faa
GM
5354 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
5355 use its function definition.
5356 (tool_bar_items): Likewise.
5357
de6e1f7c 5358 * lisp.h (fatal): Declare NO_RETURN.
52283633 5359
454ee39b
KH
53602000-09-29 Kenichi Handa <handa@etl.go.jp>
5361
5362 * keymap.c: Remove the line "#undef NULL".
5363
96301c5f
GM
53642000-09-28 Gerd Moellmann <gerd@gnu.org>
5365
52283633 5366 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
96301c5f 5367
efffeeb4
DL
53682000-09-28 Dave Love <fx@gnu.org>
5369
ecb8b666
DL
5370 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
5371
dc3cd20f
DL
5372 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
5373
5374 * .gdbinit (xreload): Note its need on GNU/Linux.
5375
efffeeb4
DL
5376 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
5377 r_alloc, r_alloc_free.
5378
8610d903
KH
53792000-09-28 Kenichi Handa <handa@etl.go.jp>
5380
5381 * syntax.c (skip_chars): Handle negation correctly.
5382
8901d1ac
GM
53832000-09-27 Gerd Moellmann <gerd@gnu.org>
5384
6f22f1ad
GM
5385 * xfaces.c (realize_default_face): Call set_lface_from_font_name
5386 with non-zero FORCE_P argument.
5387
52283633 5388 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
8901d1ac
GM
5389 Add assertions.
5390
5391 * xdisp.c (window_box_height): Add an assertion.
5392
5393 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
5394 tool-bar than is available.
5395 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
5396
36f1966f
DL
53972000-09-27 Dave Love <fx@gnu.org>
5398
efffeeb4 5399 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 5400
31d929e5
GM
54012000-09-26 Gerd Moellmann <gerd@gnu.org>
5402
c98863bf
GM
5403 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
5404 instead of BITS_PER_INT.
5405 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
5406 EMACS_UINT, respectively.
5407 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
5408
5409 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
5410
5411 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
5412
77072ab1
GM
5413 * window.c (freeze_window_starts): Construct last argument for
5414 foreach_window differently.
5415
5416 * xfns.c (x_decode_color): Don't return a Lisp_Object.
5417
5418 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
5419 EMACS_UINT instead of `int' and `unsigned int'.
5420 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
5421
5422 * frame.h (struct frame): Make the `nothing' member of union
5423 output_data an EMACS_INT.
5424
52283633 5425 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
31d929e5
GM
5426 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
5427 size in the sdata structure.
5428 (SDATA_NBYTES, SDATA_DATA): New macros.
5429 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
5430 differently for the different layout of the sdata structure.
5431 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
5432 in sdata.
5433 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
5434 Check that size recorded in the string size and size recorded in
5435 the sdata structure agree.
5436
3e60b029
DL
54372000-09-25 Dave Love <fx@gnu.org>
5438
5439 * buffer.c: Include stdio.h.
5440
5441 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
52283633 5442
3e60b029
DL
5443 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
5444
5445 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
52283633 5446 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
3e60b029
DL
5447 (__malloc_extra_blocks): Declare as __malloc_size_t.
5448
8ff16b4e
GM
54492000-09-25 Gerd Moellmann <gerd@gnu.org>
5450
755a2ccd
GM
5451 * alloc.c (mark_image): Use GC_NILP instead of NILP.
5452
d8b4516f
GM
5453 * keyboard.c (show_help_echo): Set help_echo_showing_p.
5454 (read_char): If help-echo is showing, preserve the echo area
5455 when redisplaying.
5456
5457 * xdisp.c (help_echo_showing_p): New variable.
5458 (set_message): Reset it to 0.
5459 (init_xdisp): Initialize help_echo_showing_p.
5460
5461 * dispextern.h (help_echo_showing_p): Declare extern.
5462
5463 * config.in: Fix typo in __GNUC_MINOR__.
5464
5465 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
5466
b11af2dd
GM
5467 * s/freebsd.h (POSIX_SIGNALS): Define.
5468
8ff16b4e
GM
5469 * xterm.c (x_clear_mouse_face): Block/unblock input.
5470
844eb643
DL
54712000-09-24 Dave Love <fx@gnu.org>
5472
5473 * fns.c (base64_encode_1): Fix last change.
5474
b30ab1b3
GM
54752000-09-22 Gerd Moellmann <gerd@gnu.org>
5476
5477 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
5478
5479 * xdisp.c (try_window_reusing_current_matrix): More fixes
5480 for the case window has a header-line.
5481
c6cbe5f0
DL
54822000-09-22 Dave Love <fx@gnu.org>
5483
4c7c1f3f
DL
5484 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
5485 a doc string.
5486
5487 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
5488
c6cbe5f0
DL
5489 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
5490
550a625e
GM
54912000-09-21 Gerd Moellmann <gerd@gnu.org>
5492
4c7c1f3f 5493 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
5494 for GCC >= 2.5.
5495
52283633
SM
5496 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
5497 Declare NO_RETURN.
fca99116 5498
80d26f99
GM
5499 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
5500 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
5501 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
5502 warnings.
52283633 5503
80d26f99
GM
5504 * marker.c (byte_char_debug_check): Return void.
5505
623a0aae
GM
5506 * xfns.c (Fx_create_frame): Set default frame parameter value
5507 for tool-bar-lines to 1.
5508
5509 * dispnew.c (scrolling_window): Compare y-positions of rows
5510 equal at the start. Some simplification.
5511
5512 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
5513 reused rows' y-position in the case window has a header-line, and
5514 new window start is greater than old window start.
5515
42ac0ae5
GM
5516 * process.c (process_sent_to): New variable.
5517 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
5518 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
5519 Declare more parameters volatile.
5520
550a625e
GM
5521 * lread.c (Vrecursive_load_depth_limit): New variable.
5522 (Fload): Check recursive loads whose recursion depth exceeds
5523 Vrecursive_load_depth_limit.
5524 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
5525
8320414c
GM
55262000-09-20 Gerd Moellmann <gerd@gnu.org>
5527
f46c275e
GM
5528 * fileio.c (Fread_file_name): Doc fix.
5529
5530 * editfns.c (Fmessage_or_box): Doc fix.
5531
5532 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
5533
b7e11c5b 5534 * xfns.c (xbm_scan): Allow C-style comments.
52283633 5535
8320414c
GM
5536 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
5537 symbols are specified, add color translations to the cache.
52283633 5538 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
8320414c
GM
5539 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
5540 xpm_cache_color.
5541 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
5542 structures to xpm_init_color_cache.
5543
da1608d9
GM
55442000-09-19 Gerd Moellmann <gerd@gnu.org>
5545
52283633 5546 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
da1608d9 5547
6badfa25
AI
55482000-09-19 Andrew Innes <andrewi@gnu.org>
5549
5550 * makefile.nt (bootstrap-emacs): Don't change directory.
5551
3a5f42bb
KH
55522000-09-19 Kenichi Handa <handa@etl.go.jp>
5553
1b7649bd
KH
5554 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
5555
3a5f42bb
KH
5556 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
5557 If output buffer is too small, signal an appropriated error.
5558
9f83cf0b
DL
55592000-09-18 Dave Love <fx@gnu.org>
5560
52283633 5561 * keyboard.c (menu_bar_items, tool_bar_items)
9f83cf0b
DL
5562 (current_active_maps): Remove redundant get_local_map call.
5563
28c7826c
GM
55642000-09-18 Gerd Moellmann <gerd@gnu.org>
5565
5cefa566
GM
5566 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
5567 cursor for buffers whose cursor_type is nil.
52283633 5568
6fed3546
GM
5569 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
5570 a feature to implement that is already implemented.
5571 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
5572 warnings.
5573
5574 * xfns.c (x_clear_image_1): New function.
5575 (x_clear_image): Use it.
52283633 5576 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6fed3546 5577
05b1f851
GM
5578 * dispnew.c (update_window): Move test for invisible lines
5579 at the top to update_window_line.
5580 (update_window_line): Handle invisible lines here.
5581
f4779de9
GM
5582 * xfns.c (clear_image_cache): Clear current matrices of all
5583 frames sharing an image cache. Block input while freeing
5584 images. Fix timestamp comparison.
5585 (x_clear_image): Also free the mask.
5586
28c7826c
GM
5587 * xfns.c (lookup_image): Block input while loading the image so
5588 that we won't get interrupted in a state where the image isn't yet
5589 set up completely.
5590 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
5591 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
5592 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
52283633 5593 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
28c7826c 5594
b7412313
GM
55952000-09-16 Gerd Moellmann <gerd@gnu.org>
5596
5597 * dispnew.c (update_window): Make sure to make desired rows
5598 current even if they are completely invisible at the top
5599 of a window.
5600
47e351a3
GM
56012000-09-15 Gerd Moellmann <gerd@gnu.org>
5602
7f8f1edc
GM
5603 * xfns.c (lookup_image): Build mask before applying an algorithm.
5604 Recognize algorithm `disabled'.
5605 (cross_disabled_images): New variable.
5606 (COLOR_INTENSITY): New macro.
5607 (x_detect_edges): Use COLOR_INTENSITY.
5608 (x_disable_image): New function.
5609 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
5610
5611 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
5612 disabled state, don't apply an image transformation algorithm if
5613 the user specified an image for the disabled state. Use
28c7826c 5614 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
5615 user hasn't specified an image.
5616
ebb8f116
GM
5617 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
5618 allocation functions with the XPM lib.
5619 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
5620 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
5621 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
5622 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
52283633 5623 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
ebb8f116
GM
5624 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
5625 functions, if possible, because these handle color allocation
5626 failure more gracefully.
5627 (Fimage_mask_p): New function.
5628
47e351a3
GM
5629 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
5630 (Qedge_detection, Qheuristic): New symbols.
5631 (syms_of_xfns): Initialize new symbols.
5632 (lookup_image): Handle `:mask X', `:algorithm emboss', and
5633 `algorithm (edge-detection ...)'.
5634 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
5635 (tiff_format, gif_format, gs_format): Add `:mask'.
5636 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
5637 (GIF_MASK, GS_MASK): New enumerators.
5638 (x_laplace_read_row, x_laplace_write_row): Functions removed.
5639 (emboss_matrix, laplace_matrix): New variables.
5640 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
5641 (x_edge_detection): New functions.
5642 (x_laplace): Rewritten in terms of x_detect_edges.
5643 (x_build_heuristic_mask): If image has a mask, free it.
5644
fe83b953
AI
56452000-09-14 Andrew Innes <andrewi@gnu.org>
5646
5647 * makefile.w32-in: Revert to Unix line endings.
5648
3021e816
AI
56492000-09-14 Andrew Innes <andrewi@gnu.org>
5650
5651 * makefile.w32-in: Standardize indentation somewhat.
5652 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
5653 cater for differences between shells.
5654
5655 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
5656
2a32b5ea
GM
56572000-09-14 Gerd Moellmann <gerd@gnu.org>
5658
5659 * xterm.c (x_produce_glyphs): If the distance from the current
5660 position to the next tab stop is less than a canonical character
5661 width, use the tab stop after that.
5662
b4331e96
DL
56632000-09-14 Dave Love <fx@gnu.org>
5664
5665 * buffer.c (alloc_buffer_text): Fix xmalloc call.
5666
ef9e4345
GM
56672000-09-14 Gerd Moellmann <gerd@gnu.org>
5668
085536c2
GM
5669 * xdisp.c (handle_fontified_prop): While running fontification
5670 functions, bind `fontification-functions' and
5671 `after-change-functions' to nil.
5672
ef9e4345
GM
5673 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
5674 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
5675
5676 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
5677
5678 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
5679 USE_MMAP_FOR_BUFFERS.
5680
5681 * insdel.c (make_gap): Use enlarge_buffer_text.
5682
5683 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
5684 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
5685 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
5686 from former r_alloc_* functions in ralloc.c.
52283633 5687 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
ef9e4345
GM
5688 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
5689 (mmap_init) [REL_ALLOC_MMAP]: New function.
5690 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
5691 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
5692 BUFFER_FREE.
5693
5694 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
5695 (enlarge_buffer_text): Add prototype.
5696
5697 * ralloc.c: Remove everything having to do with the use of mmap.
5698
f8608968
GM
56992000-09-13 Gerd Moellmann <gerd@gnu.org>
5700
2a494b2d
GM
5701 * sound.c (Fplay_sound): Doc fix.
5702
8c907a56
GM
5703 * keyboard.c: Avoid some more compiler warnings.
5704 (parse_tool_bar_item): Ignore cached key bindings.
5705
f8608968
GM
5706 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
5707 and allocation of Lisp data.
5708
6ab70e9a
GM
57092000-09-12 Gerd Moellmann <gerd@gnu.org>
5710
d12d0a9b
GM
5711 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
5712 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
5713 defaults first.
5714
6ab70e9a
GM
5715 * lread.c (Fload): Put code checking for recursive loads in #if 0.
5716
63c36c3c
KH
57172000-09-12 Miyashita Hisashi <himi@meadowy.org>
5718
5719 * ccl.c: Comment fixed.
5720 (MAX_MAP_SET_LEVEL): Increased to 30.
5721 (PUSH_MAPPING_STACK): Enclose with do-while block.
5722 (POP_MAPPING_STACK): Likewise.
5723 (stack_idx_of_map_multiple): New variable.
5724 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
5725 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
52283633 5726 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
63c36c3c
KH
5727 (ccl_driver) <CCL_MapSingle>: Likewise.
5728 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
5729 with the case where looking up process reaches to the end of
5730 map-set, and call CCL programs as the above change.
5731
7ee3bd7b
GM
57322000-09-11 Gerd Moellmann <gerd@gnu.org>
5733
8ec8a5ec
GM
5734 * xfns.c (png_load, jpeg_load): Declare some variables volatile
5735 that might be clobbered by longjmp.
5736 (check_x_display_info, x_decode_color, create_frame_xic)
5737 (Fx_display_backing_store, Fx_display_visual_class)
52283633 5738 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
8ec8a5ec 5739
f74b0705
GM
5740 * lread.c (init_lread): Set Vloads_in_progress to nil.
5741 (Fload): Show list of recursively loaded files, when signaling an
5742 error.
5743
7ee3bd7b
GM
5744 * lread.c (Vloads_in_progress): New variable.
5745 (record_load_unwind): New function.
5746 (Fload): Check for recursive loads.
5747 (syms_of_lread): Initialize Vloads_in_progress.
5748 (read_integer, read1): Avoid some compiler warnings.
5749
5750 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
5751 compiler warnings.
5752
974e1e5b
MB
57532000-09-11 Miles Bader <miles@gnu.org>
5754
5755 * editfns.c (Fbuffer_string): Doc fix.
5756
9824c4e3
GM
57572000-09-10 Gerd Moellmann <gerd@gnu.org>
5758
5759 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
5760
6a72fdd1
KR
57612000-09-09 Ken Raeburn <raeburn@gnu.org>
5762
5763 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
5764 whether to include other header files.
5765
28e6fb66
GM
57662000-09-09 Gerd Moellmann <gerd@gnu.org>
5767
52283633 5768 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 5769 by Fmemq as a boolean.
28e6fb66 5770
7f8b6551
SM
57712000-09-08 Stefan Monnier <monnier@cs.yale.edu>
5772
5773 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
5774
a8710abf
GM
57752000-09-08 Gerd Moellmann <gerd@gnu.org>
5776
d1a02881
GM
5777 * ralloc.c (mmap_fd): Remove initializer which can make it
5778 read-only in a dumped Emacs.
5779 (mmap_fd_1): New variable.
5780 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
5781 restore it from there.
5782 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
5783 unconditionally so that mmap_fd can be initialized there.
5784 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
5785 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
5786 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
5787
c454aac1
GM
5788 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
5789
5790 * xdisp.c (dump_glyph_row): Fix printf format string.
52283633 5791 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
c454aac1 5792
fc653ef2
GM
5793 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
5794
3015eec0
GM
5795 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
5796 inheritance.
5797
bfe0ee88
GM
5798 * xdisp.c (try_window_id): When trying to locate cursor in
5799 unchanged rows at the top, handle the case that we can't find it.
5800
a8710abf
GM
5801 * xterm.c (x_draw_glyphs): Handle case START and END are out
5802 of bounds more carefully.
5803
6b7d4ae4
DL
58042000-09-08 Dave Love <fx@gnu.org>
5805
423193c5
DL
5806 * s/sol2.h (REL_ALLOC_MMAP): Define.
5807 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
5808
5809 * ralloc.c: Don't include string.h (redundant).
5810 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
5811 [!MAP_ANON]: Include fcntl.h.
5812 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
5813 (r_alloc, r_re_alloc, r_alloc_free)
5814 (mmap_enlarge, mmap_set_vars): Use it.
5815 (r_alloc_init_fd): New function.
5816 (__morecore) [SYSTEM_MALLOC]: Don't declare.
5817 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
5818 malloc type.
5819
5820 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
5821 Remove vm-limit.o.
5822
6b7d4ae4
DL
5823 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
5824 change to __NetBSD__.
5825
44d31981
KH
58262000-09-08 Kenichi Handa <handa@etl.go.jp>
5827
5828 * search.c (compile_pattern): Check the multibyteness of cached
5829 string and PATTERN.
5830
aad40737
MB
58312000-09-08 Miles Bader <miles@gnu.org>
5832
5833 * xfaces.c (default_face_vector): Function removed.
5834 (Finternal_merge_in_global_face): Restore old global/local
5835 attribute override order. Use inline loop instead of calling
5836 default_face_vector.
5837
91a211b5
GM
58382000-09-07 Gerd Moellmann <gerd@gnu.org>
5839
5840 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
5841 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
5842 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
5843 where necessary, in case POINTER_TYPE is `void'.
5844
03419440
EZ
58452000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
5846
5847 * frame.c (make_terminal_frame): Initialize frame foreground and
5848 background colors to unspecified, for the initial instance of an
5849 MSDOS frame.
5850
f46f845b
GM
58512000-09-07 Gerd Moellmann <gerd@gnu.org>
5852
24f76fbf
GM
5853 * ralloc.c (mmap_find): Fix overlap computation.
5854 (mmap_enlarge): Compute nbytes before trying to find an
5855 overlapping region.
5856
f46f845b
GM
5857 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
5858 instead of `!='.
5859
5860 * lread.c (syms_of_lread): Change value of regexp
5861 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
5862
5863 * xmenu.c (xdialog_show): When looking up the selection in
5864 menu_items, take `quote' boundaries into account; this corresponds
5865 to a nil ITEM in x-popup-dialog.
5866
3c014385
KH
58672000-09-07 Kenichi Handa <handa@etl.go.jp>
5868
fd6f711b
KH
5869 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
5870 not 0x81.
5871 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
5872
3c014385 5873 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
5874 encoding, not decoding. Fix the handling of latin-jisx0201.
5875 Check for the charset katakana-jisx0201 too.
3c014385 5876 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 5877 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 5878
0da3ecef
GM
58792000-09-07 Gerd Moellmann <gerd@gnu.org>
5880
ab0ee409
GM
5881 * xfaces.c (Vparam_value_alist): New variable.
5882 (syms_of_xfaces): Initialize it.
5883 (Finternal_set_lisp_face_attribute): Avoid more consing.
5884
5885 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
5886 specially.
5887 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
5888 (Qbackground_mode): New variable.
5889 (syms_of_frame_1): Initialize Qbackground_mode.
5890
5891 * lisp.h (Qdisplay): Declare extern.
1091dd67 5892
0da3ecef
GM
5893 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
5894 change face on all frames, and change the default for new frames.
5895
b14654b9
DL
58962000-09-07 Dave Love <fx@gnu.org>
5897
5898 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
5899
d24fd56f
KH
59002000-09-07 Kenichi Handa <handa@etl.go.jp>
5901
794f3670
KH
5902 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
5903
0fddd0dc
KH
5904 * charset.c: Include composite.h
5905 (lisp_string_width): New function.
5906 (Fstring_width): Call lisp_string_width instead of strwidth.
5907
5908 * Makefile.in (charset.o): Depends on composite.h.
5909
d24fd56f
KH
5910 * process.c (read_process_output): Before inserting the decoded
5911 text in the buffer, adjust the multibyteness.
5912
fa0b693c
GM
59132000-09-06 Gerd Moellmann <gerd@gnu.org>
5914
52283633 5915 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
73b77ee5
GM
5916 buffer's text buffer is null, map new memory.
5917
0a58f946
GM
5918 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
5919 POINTER_TYPE and size_t.
5920 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
5921 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
5922 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
5923 [REL_ALLOC_MMAP]: New macros.
5924 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
5925 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
5926 [REL_ALLOC_MMAP]: New functions.
5927
5928 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
5929 before and after unexec.
5930
5931 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
5932 text buffers if necessary.
5933
5934 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
5935 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
5936 in prototypes.
5937
fa0b693c
GM
5938 * config.in (HAVE_MMAP): Add #undef.
5939
877055f6
GM
59402000-09-05 Gerd Moellmann <gerd@gnu.org>
5941
08ba3862
GM
5942 * frame.c (Qdisplay_type): New variable.
5943 (syms_of_frame_1): Initialize it.
5944 (Fframe_parameter): New function that avoids consing.
5945 (syms_of_frame): Defsubr it.
5946
66ffe51c
GM
5947 * buffer.c (Fother_buffer): Consider buffers as invisible when
5948 they are displayed in a window on an invisible frame.
5949
877055f6
GM
5950 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
5951 get-largest-window always return nil.
5952
bb970e67
GM
59532000-09-04 Gerd Moellmann <gerd@gnu.org>
5954
5955 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
5956 variable; recognize Emacs 19 elc files.
5957
7a3d0e0e
MB
59582000-09-04 Miles Bader <miles@gnu.org>
5959
5960 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
5961 before initially popping up the menu, so the menu doesn't flash
52283633 5962 when the face settings are significantly different from the defaults.
7a3d0e0e 5963
14473664
SM
59642000-09-04 Stefan Monnier <monnier@cs.yale.edu>
5965
5966 * regex.c (WIDE_CHAR_SUPPORT): New macro.
5967 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
5968 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
5969 (BIT_UNIBYTE): Remove.
5970 (re_match_2_internal): Delete corresponding code and streamline the
5971 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
5972 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
5973 (re_wctype_t): New type.
5974 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
5975 (regex_compile): Use them and fix handling of overly long char classes.
5976
c1174479
AI
59772000-09-03 Andrew Innes <andrewi@gnu.org>
5978
f8803e97
AI
5979 * makefile.w32-in: Change to DOS line endings.
5980
c1174479
AI
5981 * s/ms-w32.h (ORDINARY_LINK): New define.
5982
5983 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
5984 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
5985
5986 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
5987 (distclean): Delete them here instead.
5988
44ef7cf6
AI
5989 * w32proc.c (compare_env): Convert to uppercase for comparison,
5990 not lowercase, to match how the native Windows shell works.
5991
49b3bd82
JR
59922000-09-03 Jason Rumney <jasonr@gnu.org>
5993
5994 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
5995 CVS changes the line-ends when checking in/out on DOS/Windows.
5996
5997 * makefile.nt (emacs): Do not change directory to run temacs, as
5998 the load-path is set relative to current directory.
5999
a3d35a39
MB
60002000-09-03 Miles Bader <miles@gnu.org>
6001
6002 * xterm.c (x_alloc_lighter_color_for_widget): New function.
6003
d276b0cf
GM
60042000-09-02 Gerd Moellmann <gerd@gnu.org>
6005
715e84c9
GM
6006 * xdisp.c (redisplay_mode_lines): New function.
6007 (display_mode_lines): Return number of mode lines displayed.
6008 (echo_area_display): Use redisplay_mode_lines to draw garbaged
6009 mode lines. Don't temporarily bind redisplay-dont-pause to t.
6010
8892f40b
GM
6011 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
6012 string.h and strings.h.
6013 (index) [HAVE_INDEX]: Add prototype.
6014
d276b0cf
GM
6015 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
6016 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
6017
6018 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
6019 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
6020
38404229
GM
60212000-09-01 Gerd Moellmann <gerd@gnu.org>
6022
6023 * lread.c (read1): Accept `?' as symbol constituent, for
6024 compatiblity with XEmacs.
6025
c0f9ea08
SM
60262000-08-31 Stefan Monnier <monnier@cs.yale.edu>
6027
6028 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
6029 (struct re_pattern_buffer): Remove newline_anchor.
6030 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
6031 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
6032 (re_max_failures, fail_stack): Use size_t rather than unsigned.
6033 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
6034 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
6035 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
6036 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
6037 Get rid of references to newline_anchor.
6038 (regcomp): Allocate and precompute a fastmap.
6039
8c0f83fe
GM
60402000-08-31 Gerd Moellmann <gerd@gnu.org>
6041
6042 * lread.c (openp): GCPRO local variable `filename'.
6043
4bb91c68
SM
60442000-08-30 Stefan Monnier <monnier@cs.yale.edu>
6045
6046 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
6047
6048 * regex.c: Merge some changes from GNU libc. Add prototypes.
6049 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
6050 Use memcmp and memcpy instead of bcopy and bcmp.
6051 (init_syntax_once): Use ISALNUM.
6052 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
6053 (REG_UNSET_VALUE): Remove. Use NULL instead.
6054 (REG_UNSET, re_match_2_internal): Use NULL.
6055 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
6056 New macros.
6057 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
6058 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
6059 (regex_compile): In handle_interval, return an error rather than try to
6060 unfetch the interval if we can't find the closing brace.
6061 Obey the RE_NO_GNU_OPS syntax bit.
6062 (TOLOWER): New macro.
6063 (regcomp): Use it.
6064 (regexec): Allocate regs.start and regs.end as one block.
6065
5226a931
GM
60662000-08-30 Gerd Moellmann <gerd@gnu.org>
6067
868dd24b
GM
6068 * xdisp.c (echo_area_display): Check display_completed instead
6069 of calling detect_input_pending.
6070
6071 * dispnew.c (update_frame): Only set display_completed here; move
6072 the update_begin and update_end calls here from update_frame_1.
6073 (update_frame_1): Don't set display_completed here, don't call
6074 update_begin/update_end.
6075
5226a931
GM
6076 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
6077 instead of store_frame_param.
6078
2a8bd25f
GM
60792000-08-29 Gerd Moellmann <gerd@gnu.org>
6080
6081 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
6082 desired window matrix hasn't been displayed, use the current row
6083 instead. Make sure that only those frame rows are updated for
6084 which there exists a corresponding enabled desired row.
52283633 6085
ba3478d9
MB
60862000-08-29 Miles Bader <miles@gnu.org>
6087
6088 * xfaces.c (default_face_vector): New function.
6089 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
6090
87d0f685
GM
60912000-08-29 Gerd Moellmann <gerd@gnu.org>
6092
6093 * lread.c (openp): Prevent temporary string passed to
6094 Ffile_readable_p from being garbage collected.
6095
6fa86045
DL
60962000-08-28 Dave Love <fx@gnu.org>
6097
6098 * keymap.c (store_in_keymap): Add `static' to declaration.
6099
bb17930d
GM
61002000-08-28 Gerd Moellmann <gerd@gnu.org>
6101
6102 * emacs.c, callint.c, doc.c, editfns.c
6103 (toplevel) [HAVE_STRING_H]: Include string.h.
6104 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
6105 (index): Remove prototypes which might conflict with non-standard
6106 definitions of index/strchr.
6107
6108 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
6109 (rindex): Define only if !HAVE_RINDEX.
6110
6111 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
6112
6113 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
6114
87188200
MB
61152000-08-28 Miles Bader <miles@gnu.org>
6116
6117 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
6118 made inconsistent by a font-related attribute in FROM.
6119 (merge_face_inheritance): Add function comment.
6120
41a68aef
KH
61212000-08-28 Kenichi Handa <handa@etl.go.jp>
6122
6123 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
6124 the 4th arg (PREV_EVENT) Qt to suppress input method.
6125
f7c436c1
SM
61262000-08-27 Stefan Monnier <monnier@cs.yale.edu>
6127
0b32bf0e
SM
6128 * regex.c: Indent cpp directives and remove parens after `defined'.
6129 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
6130 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
6131 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
6132 (re_compile_pattern): Use size_t for length.
6133 (init_syntax_once): Move to a better place.
6134 * regex.h: Merge changes from GNU libc. Indent cpp directives.
6135 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
6136
f7c436c1
SM
6137 * syntax.c (back_comment): Detect cases where a comment-starter is
6138 actually inside another comment as in: /* a // b */ c // d \n.
6139 Make it clear that `comstart_pos' is unused for nested comments.
6140
6141 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
6142 (KEYMAPP): New macro.
6143 (Fkeymap_parent, Fset_keymap_parent): Use it.
6144 (fix_submap_inheritance): Mark it static.
6145 (define_as_prefix, describe_buffer_bindings, describe_command)
6146 (describe_translation, describe_map): Complete prototypes.
6147
6148 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
6149
6150 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
6151 to better match the key-lookup behavior.
6152
6288c62f
GM
61532000-08-27 Gerd Moellmann <gerd@gnu.org>
6154
6155 * xfaces.c (lface_fully_specified_p): Handle :inherit.
6156 (Finternal_set_lisp_face_attribute): Fix typo in error message.
6157
e931344e
EZ
61582000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
6159
6160 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
6161 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
6162 (xterm.o): Depend on coding.h
6163
d10dfeef
KH
61642000-08-26 Kenichi Handa <handa@etl.go.jp>
6165
6166 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
6167 the corresponding '#endif'.
6168
2d73e8d3
MB
61692000-08-26 Miles Bader <miles@gnu.org>
6170
6171 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
6172 * xfaces.c (QCinherit): New variable.
6173 (syms_of_xfaces): Initialize it.
6174 (LFACE_INHERIT): New macro.
6175 (Finternal_get_lisp_face_attribute)
52283633 6176 (merge_face_vector_with_property)
2d73e8d3
MB
6177 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
6178 (check_lface_attrs): Allow new types of face height. Check
6179 inherit attribute.
6180 (CYCLE_CHECK): New macro.
6181 (merge_face_inheritance): New function.
6182 (merge_face_vectors): Merge inherited faces too. Add F and
6183 CYCLE_CHECK arguments.
6184 (merge_face_vector_with_property, Finternal_merge_in_global_face)
6185 (lookup_named_face, lookup_derived_face, realize_named_face)
6186 (face_at_string_position, face_at_buffer_position): Supply
6187 new F and CYCLE_CHECK arguments to merge_face_vectors.
6188 (merge_face_heights): New function.
52283633 6189 (merge_face_vectors, merge_face_vector_with_property)
2d73e8d3
MB
6190 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
6191 handle relative face heights.
6192 (lface_same_font_attributes_p): Compare heights using EQ.
6193
6ce974d4
KH
61942000-08-26 Kenichi Handa <handa@etl.go.jp>
6195
6196 * charset.c (char_to_string): Check the character validity.
52283633 6197 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
6ce974d4 6198
dc1e502d
SM
61992000-08-25 Stefan Monnier <monnier@cs.yale.edu>
6200
6201 * regex.c (PUSH_FAILURE_COUNT): New macro.
6202 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
6203 Handle popping of a register's or a counter's data.
6204 (POP_FAILURE_POINT): Use the new name.
6205 (re_match_2_internal): Push counter data on the stack for succeed_n,
6206 jump_n and set_number_at and remove misleading dead code in succeed_n.
6207
bd9d0f3f
GM
62082000-08-25 Gerd Moellmann <gerd@gnu.org>
6209
6210 * xdisp.c (redisplay_internal): If considering all windows on all
6211 frames, update the display for each frame as soon as possible,
6212 instead of first building all desired matrices for all frames, and
6213 then updating them all.
6214 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
6215
aa5b8e15
GM
62162000-08-24 Gerd Moellmann <gerd@gnu.org>
6217
17494071
GM
6218 * bytecode.c (mark_byte_stack): Add a comment.
6219
52283633
SM
6220 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
6221 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
aa5b8e15
GM
6222 a graphical frame.
6223
c543db81
KH
62242000-08-24 Kenichi Handa <handa@etl.go.jp>
6225
d246d5f5
KH
6226 * minibuf.c (do_completion): Always use compare-string, not
6227 string-equal because the latter doesn't pay attention to
6228 multibyteness of strings.
6229
c543db81
KH
6230 * process.c (create_process): Don't setup raw-text coding here.
6231 (Fopen_network_stream): Don't set coding->src_multibyte and
6232 coding->dst_multibyte here.
6233 (read_process_output): For process filter, return unibyte string
6234 if default-enable-multibyte-characters is nil.
6235 (send_process): If OBJECT is multibyte text, be sure to encoded it
6236 by the specified coding system for the process. Otherwise, setup
6237 raw-text coding.
52283633 6238 (init_process): Don't initialize default-process-coding-system here.
c543db81 6239
9b47cfe0
EZ
62402000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
6241
6242 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
6243 <scroll-down-aggressively>: Likewise.
6244
f5a36960
KH
62452000-08-23 Kenichi Handa <handa@etl.go.jp>
6246
6247 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
6248 zero. Set coding->produced_char correctly.
6249
69a7ffa7
AI
62502000-08-22 Andrew Innes <andrewi@gnu.org>
6251
6252 * makefile.w32-in: New file.
6253
6254 * unexw32.c (unexec): Ignore old_name, and use the actual location
6255 of the current executable instead. Base new_name on this.
6256
6257 * w32proc.c (create_child): Remove reference to security
6258 descriptor, which isn't needed and doesn't compile with mingw32.
6259
6260 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6261 up dllimport attributes.
6262 (x_update_window_end): Update prototype.
6263
6264 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
6265 extern, which screws up dllimport attributes.
6266
6267 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6268 up dllimport attributes.
6269
6270 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
6271 screws up dllimport attributes.
6272
6273 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6274 up dllimport attributes.
6275 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
6276 screws up dllimport attributes.
6277
6278 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6279 up dllimport attributes.
6280
6281 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
6282 screws up dllimport attributes.
6283
6284 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
6285 screws up dllimport attributes.
6286
6287 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6288 up dllimport attributes.
6289
6290 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
6291 unnecessary extern, which screws up dllimport attributes.
6292 (main): Ditto.
6293
6294 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6295 up dllimport attributes.
6296
6297 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
6298 unnecessary extern, which screws up dllimport attributes.
6299
6300 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
6301 screws up dllimport attributes.
6302
6303 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6304 up dllimport attributes.
6305
6306 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
6307
52283633
SM
6308 * w32bdf.c (search_file_line):
6309 (set_bdf_font_info):
6310 (seek_char):
6311 (w32_get_bdf_glyph):
69a7ffa7
AI
6312 (w32_BDF_to_x_font): Fix compile warnings.
6313
52283633 6314 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
69a7ffa7
AI
6315
6316 * w32select.c: Include keyboard.h before frame.h.
6317
6318 * w32fns.c (max): Define macro.
6319 (JOHAB_CHARSET): Define if not known.
6320 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
6321 (Fx_show_tip): Synch with X version.
6322
6323 * w32xfns.c: Include keyboard.h before frame.h.
6324
6325 * w32fns.c: Include keyboard.h before frame.h.
6326
6327 * w32term.c: Include keyboard.h before frame.h.
6328
6329 * fontset.c: Include keyboard.h before frame.h.
6330
6331 * w32inevt.c: Include keyboard.h before frame.h.
6332 (MOUSE_MOVED): Define if not known.
6333
6334 * minibuf.c: Include keyboard.h before frame.h.
6335
6336 * keyboard.c: Include keyboard.h before frame.h.
6337
6338 * indent.c: Include keyboard.h before frame.h.
6339
6340 * dispnew.c: Include keyboard.h before frame.h.
6341
6342 * buffer.c: Include keyboard.h before frame.h.
6343
6344 * alloc.c: Include keyboard.h before frame.h.
6345
6346 * print.c: Include keyboard.h before frame.h.
6347
6348 * process.c: Include keyboard.h before frame.h.
6349
6350 * scroll.c: Include keyboard.h before frame.h.
6351
6352 * sysdep.c: Include keyboard.h before frame.h.
6353
6354 * term.c: Include keyboard.h before frame.h.
6355
6356 * window.c: Include keyboard.h before frame.h.
6357
6358 * xdisp.c: Include keyboard.h before frame.h.
6359 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
6360
6361 * frame.c: Include keyboard.h before frame.h.
6362
6363 * w32heap.h: Undefine min, max.
6364
6365 * w32gui.h: Undefine min, max.
6366
6367 * unexw32.c: Change PUCHAR to PCHAR.
6368 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
52283633
SM
6369 (relocate_offset):
6370 (get_section_info):
69a7ffa7
AI
6371 (copy_executable_and_dump_data): Remove unnecessary static defs.
6372 (copy_executable_and_dump_data): Fix compile warnings.
6373
6374 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
6375
6376 * w32console.c (min): Define macro.
6377 (clear_frame, write_glyphs): Fix compile warning.
6378
52283633 6379 * w32proc.c (compare_env):
69a7ffa7
AI
6380 (find_child_console): Fix compile warning.
6381
6382 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
6383 sys_errlist instead of _sys_errlist.
6384 (get_emacs_configuration_options): New function.
6385
6386 * s/ms-w32.h (sys_nerr): Provide default definition.
6387 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
6388 name with _ prepended.
6389 (NSIG): Define if not known.
6390 (get_emacs_configuration): Provide extern declaration.
6391 (get_emacs_configuration_options): Provide extern declaration.
6392 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
6393
6394 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
52283633 6395 (map_w32_filename):
69a7ffa7
AI
6396 (read_unc_volume): Fix compile warning.
6397
6398 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
6399 definitions from being used.
6400
6401 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
6402
52283633 6403 * w32.c (unc_volume_file_attributes):
69a7ffa7
AI
6404 (open_unc_volume): Make arg const.
6405
6406 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
6407 (read_input_waiting): Remove excess parameter.
6408
6409 * w32.c (init_environment): Call _access.
6410 (check_windows_init_file): Call _close.
6411 (init_user_info): Call _putenv.
6412 (init_environment): Call _putenv and _strdup.
6413 (init_ntproc): Reset volume info cache on startup.
6414
6415 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
6416 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
6417 cannot override the CRT malloc.
6418
6419 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
6420 (LINK_FLAGS): Append to original value of LINK_FLAGS.
6421
6422 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
6423 unless we are linking with a static CRT.
6424 (RVA_TO_PTR): Cast result to unsigned char*.
6425
6426 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
6427 (add_volume_info): Use xstrdup.
6428
25060080
SM
64292000-08-22 Stefan Monnier <monnier@cs.yale.edu>
6430
6431 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
6432 (do_completion, Fminibuffer_complete_word): Use it.
6433 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
6434 var so it can take non-boolean values.
6435
6917e6bb
GM
64362000-08-21 Gerd Moellmann <gerd@gnu.org>
6437
acb7cc89 6438 * editfns.c (find_field): Formatting changes.
52283633 6439 (toplevel): Some old-style function forward declarations
acb7cc89
GM
6440 changed to prototypes, some new protypes added, some functions
6441 made static.
6442
6443 * lisp.h (set_time_zone_rule): Add prototype.
6444 (use_dialog_box): External declaration.
6445
0bbfdc25
GM
6446 * keyboard.c (gen_help_event): Add parameter SIZE.
6447 (kbd_buffer_events_waiting): Slightly rewritten.
6448 (clear_event): New function.
6449 (kbd_buffer_get_event): Use it, and clear the input_events of
6450 HELP_EVENTs.
6451 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
6452 don't fill the newly created array with nils.
6453 (toplevel): Convert some old-style function forward declarations
6454 to prototypes.
6455
6456 * keyboard.h (gen_help_event): Change prototype.
6457
6458 * xterm.c (XTread_socket): Change calls to gen_help_event.
6459
6460 * w32term.c (w32_read_socket): Change calls to gen_help_event.
6461
6917e6bb
GM
6462 * eval.c (Fmacroexpand): Doc fix.
6463
e5cd3d11
JR
64642000-08-20 Jason Rumney <jasonr@gnu.org>
6465
6466 * w32term.h (x_display_info_for_display): Remove as this function
6467 does not exist on W32.
6468
6469 * w32term.c (help_echo_window): New variable.
6470 (syms_of_w32term): staticpro it.
6471 (note_mode_line_highlight): Set it.
6472 (XTextExtents16): Removed as there is no equivalent on W32.
6473 (x_compute_glyph_string_overhangs): Incomplete body removed, as
6474 the X way of doing this will not work for W32.
6475 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
6476 (x_draw_image_foreground): Avoid drawing outside of the clip area
6477 when image doesn't have a mask.
6478 (note_mouse_highlight): Process overlays in the right order of
6479 priority. Set help_echo_window.
6480 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
6481 because that's more visible for large images.
6482
6483 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
6484 name to single_keymap_panes.
6485 (w32_menu_show): Set wv->title when dealing with titles.
6486 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
6487
6e69ab8c
MB
64882000-08-21 Miles Bader <miles@gnu.org>
6489
6490 * minibuf.c (do_completion): Try again if we rewrite the input
6491 string, but no completion was done, so that any completion message
6492 will be correct.
6493
511bd4eb
GM
64942000-08-20 Gerd Moellmann <gerd@gnu.org>
6495
6496 * xfaces.c (lface_equal_p): Compare strings differently.
6497 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
6498 (realize_tty_face): Use them.
6499 (syms_of_xfaces): Initialize new variables.
6500 (map_tty_color): New function, extracted from realize_tty_face.
6501 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
6502 foreground or background color, store the new color name in the
6503 realized face; previous code trying to do this had no effect.
6504 (realize_tty_face): Use map_tty_color.
6505 (Fclear_face_cache): Set face_change_count and ensure thorough
6506 redisplay.
6507
1433385f
GM
65082000-08-19 Gerd Moellmann <gerd@gnu.org>
6509
511bd4eb
GM
6510 * undo.c (record_first_change, record_marker_adjustment): Don't
6511 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 6512
419ac0a2
KH
65132000-08-18 Kenichi Handa <handa@etl.go.jp>
6514
6515 * coding.c (decode_coding_string): Set members consumed,
6516 consumed_char, produced, produced_char of *coding correctly. If
6517 decode_coding doesn't consume any byte, don't try anymore.
6518 (encode_coding_string): Likewise.
6519
7eb9e30d
GM
65202000-08-18 Gerd Moellmann <gerd@gnu.org>
6521
511bd4eb
GM
6522 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
6523 conditional have void type, for Standard C compilers.
7eb9e30d
GM
6524
6525 * xdisp.c (redisplay_internal): Compare windows for equality with
6526 EQ, instead of applying XWINDOW to something that might not
6527 be a window.
52283633 6528
dd34a735
KH
65292000-08-18 Kenichi Handa <handa@etl.go.jp>
6530
6531 * fontset.c (Finternal_char_font): Search only the selected frame
6532 for a window of the current buffer.
6533
385ff9e3
GM
65342000-08-18 Gerd Moellmann <gerd@gnu.org>
6535
511bd4eb 6536 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
6537 Lisp_Objects.
6538
385ff9e3
GM
6539 * keyboard.c (kbd_buffer_get_event): Handle the case that the
6540 second half of a HELP_EVENT is found at the start of kbd_buffer.
6541
d6abb4c7
MB
65422000-08-18 Miles Bader <miles@gnu.org>
6543
4618074a
MB
6544 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
6545
d6abb4c7
MB
6546 * editfns.c (save_restriction_save): Rewrite to use markers.
6547 (save_restriction_restore): Rewrite to understand new form of data
6548 saved by save_restriction_save.
6549 (Fsave_restriction): Remove cautionary note in doc-string.
6550
a7b28523
GM
65512000-08-17 Gerd Moellmann <gerd@gnu.org>
6552
6553 * fileio.c (build_annotations): Add a comment explaining the
6554 return value of format-annotate-function. Replace a spurious call
6555 to Flength with a CONSP test. Call format-annotate-function with
6556 a fifth arg specifying how many times the function is been called
6557 in a row, to let it choose temporary buffers appropriately.
6558
03c9ed77
DL
65592000-08-17 Dave Love <fx@gnu.org>
6560
6561 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
6562 declare make_temp_name twice.
6563
52283633 6564 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
03c9ed77
DL
6565 (unreadpure): Give it an arg.
6566
6567 * unexalpha.c: Prototype fatal_unexec, mark_x,
6568 update_dynamic_symbols. Declare unexec as void.
6569
6570 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
6571 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
6572
6573 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
52283633 6574 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
03c9ed77
DL
6575
6576 * alloca.c: Use #error.
6577 [POINTER_TYPE]: Use it.
6578
6579 * eval.c (Fdefvar): Doc fix.
6580
6581 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
6582 INITIALIZE_INTERVAL.
6583
6584 * buffer.h: Avoid DECLARE_INTERVALS.
6585
6586 * config.in: Add size_t.
6587
aae41d97
EZ
65882000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
6589
6590 * w16select.c (set_clipboard_data): If there's not enough memory
6591 to put text into clipboard, return 1, as Fw16_set_clipboard_data
6592 expects. In case of other failures, return 3.
6593 (system_error_msg): New error message.
6594 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
6595 system_error_msg.
6596
65aa5e85
GM
65972000-08-16 Gerd Moellmann <gerd@gnu.org>
6598
6599 * term.c (write_glyphs): Also turn off inverse video after turning
6600 off other appearances in case TS_exit_attribute_mode is not equal
6601 to TS_end_standout_mode.
6602 (insert_glyphs): Turn inverse video on/off for each run of glyphs
6603 with the same face.
6604 (turn_off_face): Reset standout_mode only if
6605 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
6606 is equal to TS_end_standout_mode.
6607
ece23901
KH
66082000-08-16 Kenichi Handa <handa@etl.go.jp>
6609
9d7bcb2e
KH
6610 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
6611 sequence at the end of the source block.
6612
ece23901
KH
6613 * ccl.c (Fccl_program_p): Docstring modified.
6614 (Fccl_execute): Likewise.
6615 (Fccl_execute_on_string): Likewise.
6616
5e30eaa2
EZ
66172000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
6618
6619 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
6620
290602fd
KH
66212000-08-16 Kenichi Handa <handa@etl.go.jp>
6622
6623 The following changes are mainly to fix bugs of
6624 encode/decode-coding-string failing if encoding/decoding return
6625 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
6626 variable conversion_buffer.
6627
6628 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
6629 decrement dst_end to avoid buffer overflow in the later call of
6630 string_as_multibyte
6631
6632 * coding.h (conversion_buffer_size, conversion_buffer)
6633 (get_conversion_buffer): Extern deleted.
6634
6635 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
6636 (conversion_buffer, conversion_buffer_size): Variables deleted.
6637 (get_conversion_buffer): Function deleted.
6638 (struct conversion_buffer): New structure.
6639 (MAX_ALLOCA): New macro.
6640 (allocate_conversion_buffer): New macro.
6641 (extend_conversion_buffer, free_conversion_buffer): New functions.
6642 (ccl_coding_driver): Set coding->result.
6643 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
6644 this is the last block of source.
6645 (encode_coding): Likewise. Handle the source block as the last
6646 one only when the whole source text is consumed.
6647 (decode_coding_string): Handle the case that the output buffer is
6648 too small to decode the whole source text. Use
6649 allocate_conversion_buffer, extend_conversion_buffer and
6650 free_conversion_buffer, not get_conversion_buffer.
6651 (encode_coding_string): Likewise.
6652 (init_coding): Function deleted.
52283633 6653 (init_coding_once): Delete code to initialize conversion_buffer_size.
290602fd
KH
6654
6655 * emacs.c (main): Don't call init_coding.
6656
52283633 6657 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
290602fd
KH
6658
6659 * term.c (write_glyphs): Use a locally declared conversion_buffer.
6660 (insert_glyphs): Likewise.
6661
6662 * w32console.c (write_glyphs): Use a locally declared
6663 conversion_buffer.
6664
b9f80d41
EZ
66652000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
6666
6667 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
6668 member of display_info is NULL.
6669
32dc52f7
GM
66702000-08-15 Gerd Moellmann <gerd@gnu.org>
6671
52283633 6672 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
58ed0d3b 6673
32dc52f7 6674 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 6675 appearances with capability `me'.
32dc52f7
GM
6676 (write_glyphs): Switch on inverse video before each face change.
6677
4eb22d33
DL
66782000-08-14 Dave Love <fx@gnu.org>
6679
6680 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
6681 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
6682 (lisp_free): Declare and make static.
6683
6684 * window.c: Fix embedded comment.
6685 (syms_of_window): Fix doc string.
6686
90cbf47e
GM
66872000-08-14 Gerd Moellmann <gerd@gnu.org>
6688
52283633 6689 * keymap.c (push_key_description): If C without modifiers is < 32,
90cbf47e
GM
6690 make sure to print `C-' before `M-', like in the manual.
6691
440fc135
GM
66922000-08-11 Gerd Moellmann <gerd@gnu.org>
6693
6694 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
6695 since they aren't relocated anymore.
52283633 6696 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
440fc135
GM
6697
6698 * xdisp.c (try_cursor_movement): Fix handling of cursor in
52283633 6699 partially visible line which is smaller than the window's height.
440fc135 6700
6e264fad
KH
67012000-08-11 Kenichi Handa <handa@etl.go.jp>
6702
6703 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
52283633 6704 the multibyte form of eight-bit-control characters.
6e264fad
KH
6705 (Fccl_execute_on_string): Initialize ccl->multibyte.
6706
6707 * ccl.h (struct ccl_program): New member multibyte.
6708
6709 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
6710
c371f69a
KH
67112000-08-11 Kenichi Handa <handa@etl.go.jp>
6712
6713 * regex.c (regex_compile) <normal_char>: Pay attention to
6714 multibyteness.
6715 (analyse_first) <exactn>: Setup fastmap correctly for
6716 eight-bit-control characters.
6717
67182000-08-11 Kenichi Handa <handa@etl.go.jp>
6719
52283633 6720 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
c371f69a
KH
6721
6722 * keyboard.c (make_lispy_event): Handle the new event type
6723 multibyte_char_keystroke.
6724
6725 * xterm.c: Include coding.h.
6726 (XTread_socket): Work around a bug of XmbLookupString. If the
6727 input is from XIM, decode it according to the current locale. In
6728 that case, generate multibyte_char_keystroke events.
6729
b8ddbe71
KH
67302000-08-11 Kenichi Handa <handa@etl.go.jp>
6731
6732 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
6733 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
6734
47589c8c
GM
67352000-08-10 Gerd Moellmann <gerd@gnu.org>
6736
6737 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
6738 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
6739 (move_it_in_display_line_to): Record iterator's ascent and descent
6740 before producing glyphs, and restore them when we know the glyph
6741 doesn't fit on the line.
6742 (move_it_to): Restructured so that it's easier to debug. If
6743 moving to a vpos, and not moving to an x or character position,
6744 stop as soon as the specified vpos is reached; don't move further
6745 into that line because that might change the computed line height.
6746 (try_cursor_movement): New function, extracted from the cursor
6747 movement branch of redisplay_window. If ending on a partially
6748 visible line, don't try to scroll if the cursor line is taller
6749 than the window.
6750 (redisplay_window): Use try_cursor_movement.
6751
6752 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
6753 because that function doesn't cope with variable-height lines.
6754
6755 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
6756 box cursor because that's better visible for large images.
52283633 6757
c51bacd6
MB
67582000-08-10 Miles Bader <miles@gnu.org>
6759
6760 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
6761
bea56df7
GM
67622000-08-10 Gerd Moellmann <gerd@gnu.org>
6763
6764 * xdisp.c (Vmessages_buffer_name): New variable.
6765 (message_dolog): Use it.
6766 (syms_of_xdisp): Initialize it.
6767
99cd7364
EZ
67682000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
6769
52283633 6770 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
99cd7364
EZ
6771 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
6772 redundant now that keyboard.h is included.
6773
7d093d56
EZ
67742000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
6775
6776 * keyboard.c (kbd_buffer_events_waiting): New function.
6777
6778 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
6779
6780 * msdos.c: Include keyboard.h.
6781 (XMenuActivate): Empty no_event events from the event buffer. If
6782 no events are left after that, call clear_input_pending.
6783 (mouse_clear_clicks): New function, code moved from mouse_init.
6784 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
6785 mouse driver to ``forget'' any past clicks.
6786
6787 * Makefile.in (msdos.o): Depend on keyboard.h.
6788
41e757a6
GM
67892000-08-09 Gerd Moellmann <gerd@gnu.org>
6790
8e7bd231
GM
6791 * lisp.h (input_pending): External declaration.
6792
6793 * dispextern.h (Qredisplay_dont_pause): Declare extern.
52283633 6794
8e7bd231
GM
6795 * xdisp.c (echo_area_display): Display thoroughly if input is
6796 pending. Bind redisplay-dont-pause to t during the redisplay.
6797 in case input is pending.
6798
6799 * dispnew.c (Qredisplay_dont_pause): New variable.
6800 (syms_of_display): Initialize and staticpro it.
6801 (update_frame_1): Don't interrupt the display for pending input if
6802 redisplay_dont_pause is set.
52283633 6803
43028b7e
GM
6804 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
6805
41e757a6
GM
6806 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6807
2f2174fa
KH
68082000-08-09 Miles Bader <miles@lsi.nec.co.jp>
6809
6810 * callproc.c (Fcall_process): Terminate the unwind-protect around
6811 the post-read-conversion of coding system.
6812
0a6fd67e
MB
6813 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
6814 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
6815 * buffer.h (overlays_at): Update prototype.
6816 * xdisp.c (next_overlay_change): Update call to overlays_at.
6817 * xfaces.c (face_at_buffer_position): Likewise.
6818 * textprop.c (Fget_char_property): Likewise.
6819 * xterm.c (note_mouse_highlight): Likewise.
6820
0c80756e
MB
6821 * minibuf.c (do_completion): Don't consider a simple change of
6822 case as `completion'.
6823
975f250a
KR
68242000-08-08 Ken Raeburn <raeburn@gnu.org>
6825
52283633 6826 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
b347b3fd
KR
6827 * undo.c (record_delete): Make sure last_point_position_buffer is
6828 a buffer before comparing pointers.
6829
6830 * coding.h (decode_coding_string): Declare.
6831
6832 * intervals.h (Fprevious_single_char_property_change): Declare.
6833
6834 * textprop.c (Fprevious_single_char_property_change): Don't do
6835 arithmetic directly on lisp objects.
6836
52283633 6837 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
b347b3fd
KR
6838
6839 * keyboard.h (menu_item_eval_property): Declare.
6840
6841 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
6842 reuse as buffer name, instead of recreating (and discarding) every
6843 time a message is logged.
6844 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
6845 (current_message_1, truncate_message_1, set_message_1)
6846 (display_echo_area_1, resize_mini_window_1): Signatures changed.
6847 (current_message, truncate_echo_area, display_echo_area)
6848 (resize_echo_area_axactly): Changed calls.
b347b3fd 6849
975f250a 6850 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 6851 Lisp object.
975f250a 6852 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 6853 must be an integer, not a Lisp object.
975f250a 6854
46dc9912
KH
68552000-08-08 Kenichi Handa <handa@etl.go.jp>
6856
6857 * charset.c (Fchar_width): Doc fix.
6858
9f6d1a6c
GM
68592000-08-08 Gerd Moellmann <gerd@gnu.org>
6860
6861 * charset.c (Fstring_width): Doc fix.
6862
ff3d9573
GM
68632000-08-07 Gerd Moellmann <gerd@gnu.org>
6864
41e757a6 6865 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
6866 line, clear ascent and descent members of the iterator structure;
6867 the height of the continued line does not affect the height of the
6868 continuation line.
6869 (make_cursor_line_fully_visible): Do nothing if cursor is on a
6870 line taller than the window.
6871 (redisplay_window) <forced window start>: Handle case that the
6872 middle of the window is not found in any row.
6873 (dump_glyph_row): Show more information.
6874 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
6875 first text line in a glyph matrix.
6876
6877 * xterm.c (x_draw_image_foreground): Avoid drawing outside
6878 of the clip area when image doesn't have a mask.
6879
70fc58b3
GM
6880 * fns.c (sweep_weak_table): Fix survival conditions for
6881 key-or-value and key-and-value weakness.
6882
6883 * .gdbinit (xhashtable): New command.
6884
ac0e96ee
GM
6885 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
6886 tables out of the list of all weak hash tables.
6887
ff3d9573
GM
6888 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
6889 a new buffer is created, make sure echo_area_buffer[] references
6890 the new buffer.
6891
e0d8827b
EZ
68922000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
6893
6894 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
6895 the doc string.
6896
c6f35378
KH
68972000-08-07 Kenichi Handa <handa@etl.go.jp>
6898
6899 * syntax.c (skip_chars): Fix previous change. Make the handling
6900 of unibyte string consistent with that of regex search.
6901
1fd4c450
GM
69022000-08-05 Gerd Moellmann <gerd@gnu.org>
6903
e49aa397
GM
6904 * xmenu.c (popup_get_selection): Use xfree instead of free.
6905
6906 * fileio.c (Finsert_file_contents): Use xfree instead of free.
6907
6908 * editfns.c (Ftranspose_regions): Use xfree instead of free.
6909
6910 * callproc.c (child_setup): Use xfree instead of free.
6911
6912 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
6913 instead of malloc.
6914 (run_mac_command, closedir): Use `xfree' instead of `free'.
6915
6916 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
6917
6918 * eval.c (error): Use xfree instead of free.
6919
1fd4c450
GM
6920 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
6921
6922 * fns.c: Replace `illegal' with `invalid'.
e49aa397 6923 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 6924
82d497fc
KH
69252000-08-05 Kenichi Handa <handa@etl.go.jp>
6926
6927 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
6928 conversion.
6929
59f953a2
NF
69302000-08-04 Noah Friedman <friedman@splode.com>
6931
6932 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
6933 docstring.
6934
688351f2
GM
69352000-08-04 Gerd Moellmann <gerd@gnu.org>
6936
6937 * syntax.c (skip_chars): Fix typo in error message.
6938
2dad51cc
AS
69392000-08-04 Andreas Schwab <schwab@suse.de>
6940
6941 * m/ia64.h: Moved from s/ia64.h.
6942
99bb2c60
KH
69432000-08-04 Kenichi Handa <handa@etl.go.jp>
6944
082a1df2
KH
6945 * process.c (read_process_output): Big simplification. Handle
6946 composition and post-read-conversion of coding system correctly.
6947 (send_process): Handle composition correctly.
6948
6949 * callproc.c (Fcall_process): Handle post-read-conversion of
6950 coding system if any.
6951
99bb2c60
KH
6952 * coding.c (decode_coding_iso2022): More strict check for handling
6953 single shifting.
082a1df2
KH
6954 (coding_restore_composition): Pay attention to the case that
6955 cmp_data is not set properly (because of invalid code in the
6956 source text).
6957 (run_pre_post_conversion_on_str): Include text properties in the
6958 resulting string.
6959 (decode_coding_string): Set members of coding correctly.
99bb2c60 6960
f4988be7
GM
69612000-08-03 Gerd Moellmann <gerd@gnu.org>
6962
6963 * s/ia64.h: New file.
6964
6965 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
6966 Use NULL instead of 0 at the end of variable argument list of
6967 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
6968 sizeof (int) < sizeof (void *).
6969
6970 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
6971 of variable argument lists of XtVaGetValues and XtVaSetValues.
6972
6973 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
6974 variable argument lists of XtVaGetValues and XtVaSetValues.
6975
ead53494
GM
69762000-08-02 Gerd Moellmann <gerd@gnu.org>
6977
6978 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
6979 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
6980
6981 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
6982 prototype.
6983
6984 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
6985 in call to Fsingle_key_description.
6986
6987 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
6988 Callers changed.
6989
69902000-08-02 Colin Walters <walters@cis.ohio-state.edu>
6991
6992 * window.c (display_buffer_reuse_frames): New variable.
6993 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
6994 frames displaying BUFFER.
52283633 6995 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
ead53494 6996
10b0f752
MB
69972000-08-01 Miles Bader <miles@gnu.org>
6998
6999 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
7000 when to constrain NEW_POS (they were pretty screwed up before).
7001
16425c4a
EZ
70022000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
7003
7004 * msdos.c (run_msdos_command): Save and restore the master
7005 environment, for the case that child_setup signals an error.
7006 When mirroring slashes in DOS shell commands, don't fail when
7007 argv[2] has embedded blanks.
da288c14
EZ
7008 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
7009 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
7010 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
7011
7012 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
7013 using alloca; free it after run_msdos_command returns.
7014
27f73852
DL
70152000-07-27 Dave Love <fx@gnu.org>
7016
52283633
SM
7017 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
7018 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
27f73852
DL
7019
7020 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
7021
c0261b5e
EZ
70222000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
7023
7024 * editfns.c (lisp_time_argument): Fix last change.
7025
b548072f
GM
70262000-07-27 Gerd Moellmann <gerd@gnu.org>
7027
3ab82477
GM
7028 * fns.c (Fdelete): Make it work on vectors and strings in addition
7029 to lists.
7030
b548072f
GM
7031 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
7032 (syms_of_fns): Initialize new variables.
52283633 7033 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
b548072f
GM
7034 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
7035 weakness, with t meaning the same as `key-and-value'.
7036
91ae8751
KH
70372000-07-27 Kenichi Handa <handa@etl.go.jp>
7038
7039 * coding.h (struct coding_system): Member safe_charset deleted.
7040
7041 * coding.c (Qsafe_charsets): This variable deleted.
52283633
SM
7042 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
7043 New variables.
91ae8751
KH
7044 (coding_safe_chars): New function.
7045 (CODING_SAFE_CHAR_P): New macro.
7046 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
52283633 7047 checking safe_charsets member of the coding system. Caller changed.
91ae8751
KH
7048 (detect_coding_iso2022): New local variable safe_chars.
7049 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
7050 safe_charsets member of the coding system.
7051 (decode_coding_iso2022): New local variable safe_chars.
7052 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
7053 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
7054 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
7055 (ENCODE_UNSAFE_CHARACTER): New macro.
7056 (encode_coding_iso2022): New local variable safe_chars. Check
7057 unsafe chars.
7058 (setup_coding_system): Delete the code to initialize
7059 coding->safe_charses
7060 (intersection, find_safe_codings): New functions.
7061 (Ffind_coding_systems_region_internal): New function.
7062 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
7063 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
7064 variable and initialize it.
7065
7066 * fns.c (char_table_ref_and_index): New function.
7067
7068 * lisp.h (char_table_ref_and_index): Add prototype.
7069
34a7a267
SS
70702000-07-26 Sam Steingold <sds@gnu.org>
7071
7072 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 7073 (Ffloat_time): New built-in Lisp function.
34a7a267 7074
a95cb10a
GM
70752000-07-26 Gerd Moellmann <gerd@gnu.org>
7076
3353ef5a
GM
7077 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
7078 for the character code.
7079
7080 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
7081 GNU/Linux.
7082
a95cb10a
GM
7083 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
7084 if called for a popup menu.
7085 (xmenu_show): Store help string in widget values.
7086
b4a12321
DL
70872000-07-26 Dave Love <fx@gnu.org>
7088
7089 * syswait.h: Move some definitions.
7090 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
7091 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
7092 perspicuous definitions.
7093 (WTERMSIG): Fix bit pattern used.
7094
13f5ad37
KH
70952000-07-26 Kenichi Handa <handa@etl.go.jp>
7096
7097 * print.c (print_object): If vector printing is truncated, print
7098 "..." to indicate it as well as the case of list printing.
7099
070fe99c
GM
71002000-07-25 Gerd Moellmann <gerd@gnu.org>
7101
969065c3
GM
7102 * xdisp.c (next_element_from_display_vector): Improve comments.
7103
7104 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
7105 for the character code, and the rest for the face id as in 20.x.
7106 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
7107
7108 * window.c (window_display_table): Cleaned up.
7109
070fe99c
GM
7110 * syntax.c (Fforward_word): Add last arg nil in call of
7111 Fconstrain_to_field.
7112
bad77ef7
EZ
71132000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
7114
969065c3 7115 * fileio.c (Frename_file) [DOS_NT]: If the file names are
52283633
SM
7116 identical but for the letter-case, don't call
7117 barf_or_query_if_file_exists.
bad77ef7 7118
c28da489
MB
71192000-07-25 Miles Bader <miles@gnu.org>
7120
7121 * editfns.c (find_field): Honor special `boundary' fields.
7122 (Qboundary): New variables.
7123 (syms_of_editfns): Initialize Qboundary.
7124 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
7125 Use scan_buffer instead of find_before_next_newline, because it
7126 allows us to detect the boundary case where there's a newline at
7127 the search limit.
7128 * lisp.h (Fconstrain_to_field): Update external declaration.
7129
e3c31fd5
GM
71302000-07-24 Gerd Moellmann <gerd@gnu.org>
7131
7132 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
7133 if that is nil.
c28da489 7134
c66c29a2
DL
71352000-07-24 Dave Love <fx@gnu.org>
7136
7137 * s/sunos4-0.h, s/sol2.h:
7138 (LIBS_TERMCAP): Move from m/sparc.h.
7139
7140 * m/sparc.h (TERMINFO): Moved to system files (probably only
7141 relevant for sunos4 judging by its vintage).
7142 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
7143 __arch64__.
7144
fbe0a958
EZ
71452000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
7146
7147 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
7148 name to single_keymap_panes.
7149
7d88e5c9
AS
71502000-07-24 Andreas Schwab <schwab@suse.de>
7151
7152 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
7153
e024b101
GM
71542000-07-24 Gerd Moellmann <gerd@gnu.org>
7155
7156 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
7157 parameters instead of using int parameters. Expect FN to accept
7158 EMACS_INT parameters.
7159 (display_echo_area, resize_echo_area_axactly, current_message)
7160 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
7161 with new argument list.
7162 (resize_mini_window_1): New callback function.
7163 (current_message_1, truncate_message_1, set_message_1): Change
52283633 7164 parameter lists to the new format expected by with_echo_area_buffer.
e024b101 7165
25c1a9ce
KH
71662000-07-24 Kenichi Handa <handa@etl.go.jp>
7167
7168 * fontset.c (fontset_ref): Remove INLINE declaration.
7169 (fontset_ref_via_base): Likewise.
7170 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
7171 to downcase.
7172
7f987ac0
EZ
71732000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
7174
7175 * msdos.c (IT_note_mouse_highlight): Process overlays in the
7176 correct order of priority. If help echo was found in an overlay,
7177 use that overlay as the object in which the help echo was found.
7178
e2db3069
MB
71792000-07-22 Miles Bader <miles@gnu.org>
7180
7181 * textprop.c (Fprevious_single_char_property_change): The initial
7182 property value should be from the position preceding POSITION, not
7183 following it.
7184
5e3203e4
EZ
71852000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
7186
7187 * coding.c (syms_of_coding): Doc fix for
7188 inhibit-iso-escape-detection.
7189
62145073
GM
71902000-07-21 Gerd Moellmann <gerd@gnu.org>
7191
c20aeb83
GM
7192 * xterm.c (note_mouse_highlight): Process overlays in the right
7193 order of priority.
34a7a267 7194
743934db
GM
7195 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
7196
7197 * xterm.c (note_mouse_highlight): If help-echo was found in an
52283633 7198 overlay, use that overlay as the object in which the help was found.
743934db 7199
d1dc7e43 7200 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 7201
62145073
GM
7202 * window.c (foreach_window): Instead of a fake variable argument
7203 list, take one USER_DATA argument.
7204 (foreach_window_1): Likewise, and call callback functions with two
7205 args, the window and USER_DATA.
7206 (struct check_window_data): New struct.
7207 (check_window_containing): Use it.
7208 (window_from_coordinates): Set up a struct check_window_data for
7209 foreach_window.
7210 (add_window_to_list, freeze_window_start): Change parameters
7211 according to new calling convention.
7212
7213 * window.h (foreach_window): Change prototype.
7214
7215 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
7216
72172000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
7218
7219 * xmenu.c (menu_help_callback): Call show_help_echo with
7220 additional arguments OBJECT and POS.
7221
11270583
KH
72222000-07-21 Kenichi Handa <handa@etl.go.jp>
7223
07b14857
KH
7224 * data.c (Faset): Allow storing any multibyte character in a
7225 string. Convert unibyte string to multibyte if necessary.
7226
11270583
KH
7227 * xfns.c (x_encode_text): New function.
7228 (x_set_name): Use x_encode_text.
7229 (x_set_title): Likewise.
7230
7231 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
7232
7233 * xterm.h (x_encode_text): Add prototype.
7234
bc75b4fd
DL
72352000-07-20 Dave Love <fx@gnu.org>
7236
7237 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
7238 xfree, not free.
7239
48c14970
EZ
72402000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
7241
7242 * msdos.c (help_echo_window): New variable.
7243 (syms_of_msdos): Initialize and staticpro it.
7244 (IT_note_mode_line_highlight): Set help_echo_window.
7245 (IT_note_mouse_highlight): Ditto.
7246 (dos_rawgetc): Store help_echo_window in the second event produced
7247 for HELP_EVENTs.
7248
7249 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
7250 Record the object that generated the help echo and the position of
7251 that object in help_echo_object and help_echo_pos. Record that
7252 some glyphs in a row are displayed in mouse-face.
7253 (IT_update_begin): Don't clear mouse highlight unless one of the
7254 enabled glyph rows is marked as being displayed in mouse-face.
7255 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
7256 and position recorded in help_echo_object and help_echo_pos to the
7257 event queue.
7258 (IT_menu_display): Accept a new argument PN: the pane number of
7259 the current menu pane. Record the pane number and the item
7260 number of the item which has associated help string.
7261 (XMenuActivate): Update the prototype for help_callback in
7262 function declaration. Call IT_menu_display with the current menu
7263 pane number as an additional argument. Call help_callback with
7264 two additional arguments: the pane number and the item number of
7265 the menu item associated with the help text.
7266 (help_echo_object, help_echo_pos): New variables.
7267 (syms_of_msdos): Initialize them and staticpro help_echo_object.
7268
7269 * msdos.h (XMenuActivate): Update prototype.
7270
4279296d
GM
72712000-07-19 Gerd Moellmann <gerd@gnu.org>
7272
47db06aa
GM
7273 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
7274 Add some more prototypes.
7275
7276 * xterm.c, xterm.h: Add some more prototypes.
7277
7278 * lisp.h (Fnext_single_char_property_change): Add prototype.
7279
7280 * dispnew.c (direct_output_for_insert): Remove confusing
7281 outer local variable mouse_face_overwritten_p.
7282 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
7283
4279296d
GM
7284 * alloc.c (allocate_string_data): Don't copy old string contents.
7285
670acd62
KH
72862000-07-19 Kenichi Handa <handa@etl.go.jp>
7287
7288 * coding.c (code_convert_region): Delete text properties before
7289 shrinking the conversion region.
7290
7cea38bc
GM
72912000-07-18 Gerd Moellmann <gerd@gnu.org>
7292
dc1cac59
GM
7293 * dispnew.c (update_text_area): Write the whole row if it
7294 has mouse-face in it.
7295
85a8aca9
GM
7296 * xfaces.c (face-alternative-font-family-alist): Remove
7297 DEFVAR_LISP; staticpro instead.
7298
34a7a267 7299 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
7300 new arguments.
7301
7302 * keyboard.c (show_help_echo): Add parameter WINDOW.
7303 (read_char): Call show_help_echo with window extracted from Lisp
7304 help event.
7305 (gen_help_event): Add parameter WINDOW.
7306
7307 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
7308
7309 * xterm.c (help_echo_window): New variable.
52283633 7310 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
7cea38bc
GM
7311 (XTread_socket): Pass help_echo_window to gen_help_event.
7312 (syms_of_xterm): Initialize and staticpro help_echo_window.
7313
f8276b77
DL
73142000-07-18 Dave Love <fx@gnu.org>
7315
52283633 7316 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
f8276b77 7317
088831a6
GM
73182000-07-18 Gerd Moellmann <gerd@gnu.org>
7319
3d6cd763
GM
7320 * alloc.c (allocate_string_data): If string had already data
7321 assigned, copy old contents to new string data.
7322
7323 * coding.c (syms_of_coding): Fix typo in spelling of variable
7324 `inhibit-iso-escape-detection'.
7325
088831a6
GM
7326 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
7327
7328 * Makefile.in: Add dependencies on dispextern.h.
7329 (alloca.o): Don't define malloc and define EMACS_FREE instead of
7330 `free'; both can conflict with system header files.
7331
bc8a8d55
KH
73322000-07-18 Kenichi Handa <handa@etl.go.jp>
7333
7334 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
7335 undefined.
7336
069f5950
DL
73372000-07-18 Dave Love <fx@gnu.org>
7338
7339 * window.c (Fwindow_list): Declare arg `window'.
7340
aa96c820
KH
73412000-07-18 Kenichi Handa <handa@etl.go.jp>
7342
7343 * coding.c (setup_coding_system): Don't override the explicitly
7344 specified designations.
7345
06be8d32
MB
73462000-07-15 Miles Bader <miles@gnu.org>
7347
7348 * editfns.c (char_property_eq, char_property_stickiness): Renamed
7349 from `text_property_eq' and `text_property_stickiness', respectively.
7350 (find_field, Fconstrain_to_field, char_property_eq)
7351 (char_property_stickiness): Changed to call char-property functions
7352 instead of text-property-only ones.
7353
7354 * textprop.c (Fnext_single_char_property_change): Made a subr (was
7355 `next_single_char_property_change'). Do more error checking, and
7356 cleanup limit behavior.
7357 (Fprevious_single_char_property_change): New function.
7358 (syms_of_textprop): Initialize new subrs.
7359
7360 * xdisp.c (display_prop_end, invisible_text_between_p):
7361 Call Fnext_single_char_property_change instead of
7362 next_single_char_property_change.
7363
3fddcdc3
JR
73642000-07-15 Jason Rumney <jasonr@gnu.org>
7365
7366 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
7367 after menu is finished with.
7368 (add_menu_item): Only consider wv->title as a menu title.
7369 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
7370
7371 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
7372 null title.
7373 (FONT_REGEXP): Remove unused macro, and its sub-components.
7374 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
7375
7376 * w32term.c (help_echo_object, help_echo_pos): New variables.
7377 (note_mode_line_highlight): Store additional information about the
7378 help-echo in help_echo_object and help_echo_pos. Check both
7379 `local-map' and `keymap' properties for changing the cursor
7380 (note_mouse_highlight): Store additional information about the
7381 help-echo in help_echo_object and help_echo_pos.
7382 (note_tool_bar_highlight): Set help_echo_object to nil and
7383 help_echo_pos to -1.
7384 (w32_read_socket): Use gen_help_event instead of filling
7385 input_events manually.
7386 (syms_of_w32term): Staticpro help_echo_object.
7387 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
52283633 7388 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
3fddcdc3
JR
7389 (x_clear_mouse_face): New function.
7390 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
7391 (x_update_window_begin): No need to turn off the mouse
7392 highlight here.
7393 (show_mouse_face): Set the mouse_face_p flag of glyph rows
52283633 7394 depending on whether they contain glyphs highlighted in mouse-face.
3fddcdc3
JR
7395 (x_fill_stretch_glyph_string): Consume runs of stretch
7396 glyphs instead of a single one.
7397 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7398 with new argument list.
7399 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7400 (x_append_glyph, x_append_composite_glyph)
7401 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7402 changes in struct glyph starting 1999-12-27. See comments for
7403 xterm.c on 2000-07-05.
7404
178c5d9c
SS
74052000-07-14 Sam Steingold <sds@gnu.org>
7406
7407 * xfaces.c (realize_x_face): Fix the last patch:
7408 check `default_face' before dereferencing.
7409
6fe533f6
DL
74102000-07-14 Dave Love <fx@gnu.org>
7411
069f5950 7412 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 7413
dd7b81cf
KH
74142000-07-14 Kenichi Handa <handa@etl.go.jp>
7415
0693904a 7416 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 7417 default_face's fontset, not using the default fontset.
0693904a 7418
dd7b81cf
KH
7419 * coding.c (inhibit_iso_escape_detection): New variable.
7420 (syms_of_coding): Make it a Lisp variable.
7421 (detect_coding_iso2022): If inhibit_iso_escape_detection is
7422 nonzero, ignore ISO2022's escape sequence.
7423
d5aa31d8
GM
74242000-07-14 Gerd Moellmann <gerd@gnu.org>
7425
e5acf0ca
GM
7426 * alloca.c (malloc) [emacs]: Define as xmalloc.
7427
bd23a692
GM
7428 * xfns.c (Fx_show_tip): If frame parameters contain a position,
7429 use that instead of the mouse position. Add parameters DX and DY.
7430
7431 * dispextern.h (Fx_show_tip): Adjust number of parameters
7432 in prototype.
7433
9662da0b
GM
7434 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
7435 if HELP is a function, call it with OBJECT and POS as parameters
7436 to get the help to display.
7437 (gen_help_event, kbd_buffer_store_help_event): New functions.
7438 (kbd_buffer_get_event): Construct the Lisp help-event differently.
7439 (read_char): Call show_help_echo with new parameters.
7440
178c5d9c 7441 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
7442 Add prototypes.
7443
7444 * xterm.c (help_echo_object, help_echo_pos): New variables.
7445 (note_mode_line_highlight): Store additional information about the
7446 help-echo in help_echo_object and help_echo_pos. Check both
7447 `local-map' and `keymap' properties for changing the cursor
7448 (note_mouse_highlight): Store additional information about the
7449 help-echo in help_echo_object and help_echo_pos.
7450 (note_tool_bar_highlight): Set help_echo_object to nil and
7451 help_echo_pos to -1.
7452 (XTread_socket): Use gen_help_event instead of filling
7453 input_events manually.
7454 (syms_of_xterm): Staticpro help_echo_object.
7455
7456 * xmenu.c (menu_highlight_callback): Use
7457 kbd_buffer_store_help_event instead of setting up and input_event
7458 structure manually.
7459
7460 * xdisp.c (eval_form): GCPRO argument sexpr.
7461 (call_function): New function.
7462 (handle_single_display_prop): Use call_function and FUNCTIONP
7463 instead of checking whether if font_height is a symbol and
7464 using eval_form.
7465
7466 * eval.c (internal_condition_case_2): New function.
7467
7468 * lisp.h (FUNCTIONP): New macro.
7469 (internal_condition_case_2, call_function): Add prototypes.
7470
d5aa31d8
GM
7471 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
7472 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
7473 Always set `arg' member of input_events.
7474 (construct_menu_click): Unused function removed.
7475
7476 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
7477
7478 * w32term.c (construct_mouse_click, construct_mouse_wheel)
7479 (construct_drag_n_drop, x_scroll_bar_handle_click)
7480 (w32_read_socket): Always set `arg' member of input_events.
7481
7482 * keyboard.c (show_help_echo): Use eval_form. Add comment.
7483
7484 * lisp.h (eval_form): Add prototype.
7485
7486 * xdisp.c (eval_form): Make it externally visible.
7487
0f1a9b23
GM
74882000-07-13 Gerd Moellmann <gerd@gnu.org>
7489
7490 * xterm.c (x_handle_tool_bar_click): Store the frame in the
7491 frame_or_window slot of TOOL_BAR_EVENT input events instead of
7492 consing. For prefix events, store the frame in the `arg' slot of
7493 the event, otherwise store the key there.
7494 (XTread_socket): Instead of consing, use the frame_or_window slot
52283633 7495 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
0f1a9b23
GM
7496
7497 * xmenu.c (menu_highlight_callback): Store help string in the
7498 `arg' member of the input event; don't cons.
7499 (menubar_selection_callback): Use the `arg' slot of input events
7500 to queue additional information, instead of consing.
7501
7502 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
7503
7504 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
7505 TOOL_BAR_EVENTs.
7506 (w32_read_socket): Adapt to changes in HELP_EVENTs.
7507
7508 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
7509 input events to queue additional information, instead of consing.
7510
7511 * keyboard.c (kbd_buffer_gcpro): Renamed from
7512 kbd_buffer_frame_or_window. Now used for all Lisp objects
7513 referenced from the input queue.
7514 (kbd_buffer_store_event): Always use structure assignment for
7515 copying input events. Record all Lisp objects referenced from
7516 events in kbd_buffer_gcpro.
7517 (kbd_buffer_get_event): Construct Lisp `help-echo' events
7518 differently from input events. Test for prefix menu_bar_events
7519 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
7520 event in kbd_buffer_gcpro to nil.
7521 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
7522 frame_or_window is equal to its arg member as prefix events.
7523 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
7524 used by an input event to nil.
7525 (init_keyboard): Use two times the size of the input queue
7526 for kbd_buffer_gcpro.
7527 (syms_of_keyboard): Likewise.
7528
52283633
SM
7529 * emacs.c (handle_USR2_signal, handle_USR1_signal):
7530 Use USER_SIGNAL_EVENT.
0f1a9b23
GM
7531
7532 * termhooks.h (struct input_event): Add member `arg'.
7533 (MENU_BAR_EVENT): Renamed from menu_bar_event.
7534 (USER_SIGNAL_EVENT): Renamed from user_signal.
7535
7536 * xfaces.c (ASET): Remove definition.
7537
7538 * lisp.h (AREF, ASET, ASIZE): New macros.
7539
7540 * fontset.c (AREF, ASIZE): Remove definitions.
7541
7542 * fns.c (AREF): Remove definition.
178c5d9c 7543
0f1a9b23
GM
7544 * composite.c (AREF): Remove definition.
7545
712eaef2
GM
75462000-07-12 Gerd Moellmann <gerd@gnu.org>
7547
d8ee7803
GM
7548 * dispnew.c (redraw_overlapped_rows): Add missing local.
7549 (scrolling_window): Remove debug code.
7550
712eaef2
GM
7551 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
7552 Before scrolling, turn off a mouse-highlight in the window
7553 being scrolled.
7554
7555 * xterm.c (x_update_window_end): Add parameter
7556 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
7557 redisplay in XTframe_up_to_date.
7558 (x_clear_mouse_face): New function.
7559 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
7560
7561 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
7562 current glyph row.
7563 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
7564 it when any row is written to that contains glyphs highlighted in
7565 mouse-face.
7566 (update_window): Call the window update end hook with new
7567 parameter MOUSE_FACE_OVERWRITTEN_P.
7568 (direct_output_for_insert): Give up if row contains mouse-face.
7569
7570 * dispextern.h (struct redisplay_interface): Add parameter
7571 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
7572 (clear_mouse_face): New function pointer member.
7573
02010917
SM
75742000-07-11 Stefan Monnier <monnier@cs.yale.edu>
7575
7576 * syntax.c (back_comment): Use one switch rather than a few `if's.
7577 Obey open_paren_in_column_0_is_defun_start.
7578 When reverting to the `slow' method, try to nicely handle the case
7579 of nested comments by checking that the comment-starter we found
7580 does indeed match the comment-ender.
7581 (scan_sexps_forward, scan_sexps_forward):
7582 Ignore excessive opening parenthesis rather than throwing an error.
7583
d76c03ea
GM
75842000-07-11 Gerd Moellmann <gerd@gnu.org>
7585
7586 * doc.c (Fsubstitute_command_keys): Handle case that a GC
7587 in Fwhere_is_internal or get_keymap_1 relocates string contents.
7588
7589 * dispnew.c (direct_output_forward_char): Give up if currently
7590 displaying a message instead of the minibuffer contents.
7591
7592 * xterm.c (x_update_window_begin): No need to turn off the mouse
7593 highlight here.
7594 (show_mouse_face): Set the mouse_face_p flag of glyph rows
52283633 7595 depending on whether they contain glyphs highlighted in mouse-face.
d76c03ea
GM
7596
7597 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
7598 compare the mouse_face_p flags of both rows.
7599
7600 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
7601
d55ead18
EZ
76022000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
7603
7604 * keyboard.c (show_help_echo): Accept additional parameter
7605 ok_to_overwrite_keystroke_echo.
7606 (read_char): Call show_help_echo with a zero
7607 ok_to_overwrite_keystroke_echo argument.
52283633 7608 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
d55ead18
EZ
7609 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
7610 ok_to_overwrite_keystroke_echo argument.
7611 * w32menu.c (w32_menu_display_help): Call show_help_echo with
7612 non-zero ok_to_overwrite_keystroke_echo argument.
7613
df75b1a3
GM
76142000-07-10 Gerd Moellmann <gerd@gnu.org>
7615
4b92c49a
GM
7616 * xdisp.c (try_window_id): If changes are all below what is
7617 displayed in the window, and point is in the window, we still
7618 might have to find point on the display.
7619
7620 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
7621 glyphs instead of a single one.
7622 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
7623 with new argument list.
7624 (x_set_glyph_string_gc): Make sure the face's GC is valid.
7625
df75b1a3
GM
7626 * keymap.c (get_keymap_1): Add comment that this function can GC.
7627 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
7628 comment that functions can GC.
7629 (Fset_keymap_parent): GCPRO arg KEYMAP.
7630
4314cf3e
EZ
76312000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
7632
7633 * msdos.c (XMenuActivate): After exiting the menu, restore the
7634 echo area message and erase it.
7635
ab49ce15
KH
76362000-07-10 Kenichi Handa <handa@etl.go.jp>
7637
7638 * fontset.c (Ffontset_info): Make the return value more compatible
7639 with that of Emacs 20.
7640
090a072f
GM
76412000-07-07 Gerd Moellmann <gerd@gnu.org>
7642
7643 * eval.c (Fsignal): Handle case that backtrace_list is null.
7644
f92de4a6
KH
76452000-07-07 Kenichi Handa <handa@etl.go.jp>
7646
7647 * ccl.c (Fccl_execute): Typo fixed.
7648
dd8888a1
GM
76492000-07-06 Gerd Moellmann <gerd@gnu.org>
7650
e5c81191 7651 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 7652
dd8888a1
GM
7653 * window.c (Fwindow_list): Reverse list at the end.
7654 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
7655 means allow windows on OWINDOW's frame, only.
7656 (window_loop): Simplified; use Fwindow_list.
7657
7658 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
7659
485266d0
GM
76602000-07-05 Gerd Moellmann <gerd@gnu.org>
7661
7662 * xterm.c (XTread_socket): Increment handling_signal at the start,
7663 decrement it at the end.
7664
7665 * eval.c (handling_signal): New variable.
7666 (Fsignal): Abort if handling_signal is non-zero.
7667
7668 * lisp.h (handling_signal): External declaration.
178c5d9c 7669
485266d0
GM
7670 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
7671
80fcd514
KR
76722000-07-05 Ken Raeburn <raeburn@gnu.org>
7673
7674 Sound support for NetBSD through "Linux emulation" support:
7675 * config.in (HAVE_SOUNDCARD_H): Undef.
7676 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
7677 * Makefile.in (LIBSOUND): New variable.
7678 (LIBES): Include it.
52283633
SM
7679 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
7680 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
80fcd514
KR
7681 (vox_open): Use DEFAULT_SOUND_DEVICE.
7682 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
7683
d5c5cddd
GM
76842000-07-05 Gerd Moellmann <gerd@gnu.org>
7685
7686 * print.c (print_error_message): If Vsignaling_function is set,
7687 show it in *Messages*.
7688
7689 * lisp.h (Vsignaling_function): External declaration.
7690
7691 * eval.c (Vsignaling_function): New variable.
7692 (Fsignal): Compute it.
7693 (syms_of_eval): Staticpro it.
7694
65171e3a
DL
76952000-07-05 Dave Love <fx@gnu.org>
7696
7697 * syswait.h: Use the autoconf recommended approach. Old code
7698 #if'd out in case we need to revert.
7699
178c5d9c 7700 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 7701
e2c46326
AI
77022000-07-05 Andrew Innes <andrewi@gnu.org>
7703
7704 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
7705 when non-NULL instead of __morecore, to take account of buffer
7706 memory. This also solves a problem with spurious memory warnings
7707 on Windows.
7708
7709 * ralloc.c: Make real_morecore non-static.
7710
7711 * eval.c (internal_condition_case): Comment out abort if
7712 interrupt_input_blocked is not zero.
7713
7714 * makefile.nt: Add support for `bootstrap' and related targets.
7715 Include minimal debug info in emacs.exe in release build.
7716 Remove all dependencies on lisp.h, and fixup some others.
7717
7718 * w32.c (init_environment): Install code from 20.7 for providing
7719 default values for environment variables, based on the
7720 executable's own location.
52283633 7721 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
e2c46326
AI
7722 (sys_socket): Install socket inheritance bug fix from 20.7.
7723
7724 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
7725 here via blockinput.h).
7726
a027a91b
SM
77272000-07-05 Stefan Monnier <monnier@cs.yale.edu>
7728
e4b31601
SM
7729 * w32menu.c (w32_menu_display_help):
7730 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
7731
7732 * keyboard.h (show_help_echo): Declare.
7733
7734 * keyboard.c (show_help_echo): New function, extracted from read_char.
7735 Feval its `msg' argument if it's a cons cell.
7736 (read_char): Use it.
4cf8d9d5 7737 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 7738
178c5d9c 7739 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 7740 (note_tool_bar_highlight, XTread_socket):
178c5d9c 7741 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
7742 (dos_rawgetc):
7743 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
7744 (note_tool_bar_highlight, w32_read_socket):
7745 Do not gratuitously ignore non-string `help-echo' properties.
7746
88d75730
GM
77472000-07-05 Gerd Moellmann <gerd@gnu.org>
7748
969f7e79
GM
7749 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
7750
71201b00
GM
7751 * window.c (delete_all_subwindows): Reset Vwindow_list.
7752
88d75730
GM
7753 * xterm.c (x_append_glyph, x_append_composite_glyph)
7754 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
7755 changes in struct glyph starting 1999-12-27. Some bit-fields of
7756 struct glyph were not set, which made glyphs unequal when compared
7757 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
7758 effects were the result. This also depended on the contents of
7759 memory returned by xmalloc. If flickering happens again, activate
7760 the code in clear_glyph_row that's in #if 0. If the flickering is
52283633 7761 gone with that, chances are that it is caused by something similar.
88d75730
GM
7762
7763 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 7764
88d75730
GM
7765 * dispextern.h: Add some comments.
7766
7767 * window.c (add_window_to_list): Add parameter LIST.
7768 (window_list): Order list so that, for each frame, windows are
7769 in canonical order, and so that frames appear in the list in
7770 the order given by Vframe_list.
7771 (next_window): Reverse the handling of NEXT_P.
7772
53654733
GM
77732000-07-04 Gerd Moellmann <gerd@gnu.org>
7774
87efd256
GM
7775 * window.c (Vwindow_list): New variable.
7776 (make_window, delete_window): Set Vwindow_list to nil.
7777 (check_window_containing): New function.
7778 (window_from_coordinates): Rewritten.
7779 (add_window_to_list, window_list, candidate_window_p)
7780 (decode_next_window_args, next_window): New functions.
52283633 7781 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
87efd256
GM
7782 (Fwindow_list): New function.
7783 (Fother_window): Cleaned up.
7784 (foreach_window): Add a longer "variable argument list". Let
7785 callback function return 0 to indicate that cycling over windows
7786 should stop.
7787 (foreach_window_1): Likewise.
7788 (freeze_window_start): Return int.
7789 (init_window): New function.
7790 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
7791
7792 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
7793 input_event with bzero.
7794 (main): Call init_window.
7795
53654733
GM
7796 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
7797 a menu filter.
7798
4a8c194f
KH
77992000-07-04 Kenichi Handa <handa@etl.go.jp>
7800
7801 * composite.h (make_composition_value_copy): Extern it.
7802
7803 * composite.c (make_composition_value_copy): New function.
7804
7805 * editfns.c (Fformat): While copying text properties, make each
7806 composition property value a copy.
7807
7808 * fns.c (concat): While copying text properties, make each
7809 composition property value a copy.
7810
831a6cb0
GM
78112000-07-03 Gerd Moellmann <gerd@gnu.org>
7812
2f516940
GM
7813 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
7814
178c5d9c 7815 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
7816 marked already.
7817
831a6cb0
GM
7818 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
7819 include those frames as candidates which have their focus
7820 redirected to the minibuffer frame.
7821
d9c4f922
SM
78222000-07-03 Stefan Monnier <monnier@cs.yale.edu>
7823
7824 * fns.c (Fputhash): Return `value' rather than nil.
7825
3780bc22
GM
78262000-06-30 Gerd Moellmann <gerd@gnu.org>
7827
97d176db
GM
7828 * frame.c (next_frame): Don't check focus redirection in case
7829 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
7830 unless their focus is redirected, which contradicts the
7831 specification of next-frame, and leads to infinite loops in
7832 certain situations when cycling through windows with next-window.
7833
dca9961d
KH
78342000-06-30 Kenichi Handa <handa@etl.go.jp>
7835
7836 * coding.c (code_convert_region): Even if the length of text is
7837 zero, try to convert it if coding->type is coding_type_ccl.
7838 (decode_coding_string, encode_coding_string): Likewise.
7839
d5483ab1
GM
78402000-06-28 Gerd Moellmann <gerd@gnu.org>
7841
af5c25e1 7842 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 7843 the display if windows_or_buffers_changed.
af5c25e1
GM
7844
7845 * dispnew.c (struct row_entry): New structure.
7846 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
7847 (row_table_size, old_lines, new_lines, old_lines_size)
7848 (new_lines_size, run_pool, runs_size, runs): New variables.
7849 (add_row_entry): New function.
7850 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 7851 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
7852 holding them in local variables. Use a larger hash table whose
7853 size depends on glyph matrix sizes. Don't use bzero to clear the
7854 hash table; instead, clear used slots only.
7855
7856 * fns.c (next_almost_prime): Make it externally visible.
7857
7858 * lisp.h (next_almost_prime): Add prototype.
7859
d5483ab1
GM
7860 * s/isc4-0.h (sigunblock): Define.
7861
7862 * s/sco5.h (sigunblock): Define.
7863
93e40f40
DL
78642000-06-27 Dave Love <fx@gnu.org>
7865
7866 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
7867 (moved to osf5-0.h).
7868 [!NOT_C_CODE]: Protect string.h stuff.
7869
7870 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
7871 (sys_siglist, NSIG): Definitions moved here from osf1.h.
7872
3c4b7685
GM
78732000-06-27 Gerd Moellmann <gerd@gnu.org>
7874
97d176db 7875 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
7876 below the last line from the needed window height.
7877
32cad0aa
SM
78782000-06-26 Stefan Monnier <monnier@cs.yale.edu>
7879
7880 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
7881 (Fwidget_get): Use it.
7882 (syms_of_fns): Defsubr it.
7883
2c69ced2
GM
78842000-06-26 Gerd Moellmann <gerd@gnu.org>
7885
178c5d9c 7886 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
7887 display info for XIM.
7888 (xim_open_dpy): Likewise.
7889 (xim_close_dpy): Don't free the display info's XIM.
7890
7891 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
7892
7893 * config.in (USE_XIM): New define.
7894
3fc720e4
GM
7895 * keymap.c (get_keyelt): For menu-items containing a `:filter
7896 FILTER', apply FILTER to the menu-item's definition to get the
7897 real definition to use.
7898
7899 * lisp.h (QCfilter): External declaration.
7900
2c69ced2
GM
7901 * xfns.c (Fimage_size): New function.
7902 (syms_of_xfns): Defsubr it.
7903
f978b2a2
AS
79042000-06-26 Andreas Schwab <schwab@suse.de>
7905
7906 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
7907 Fstring_as_unibyte.
7908
94cc7892
DL
79092000-06-25 Dave Love <fx@gnu.org>
7910
52283633 7911 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
94cc7892
DL
7912
7913 * Makefile.in (blockinput.h): Depend on atimer.h.
7914 (atimer.h): Depend on systime.h.
7915
52283633 7916 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
94cc7892 7917
52283633 7918 * atimer.h: Protect against multiple inclusion. Include systime.h.
94cc7892
DL
7919
7920 * lisp.h (swap_in_global_binding): Declare.
7921
b8c24556
KR
79222000-06-24 Ken Raeburn <raeburn@gnu.org>
7923
7924 * process.c (Fopen_network_stream): Turn off atimers for duration
7925 of call to connect. (Patch from Gerd.)
7926
8cf8560b
DL
79272000-06-23 Dave Love <fx@gnu.org>
7928
511c7541
DL
7929 * ralloc.c: Maybe include unistd.h
7930
8cf8560b
DL
7931 * emacs.c (setgrp): Undefine before defining.
7932 (malloc_warning, set_time_zone_rule, index): Prototype.
7933
7934 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
7935 HAVE_STRUCT_TIMEZONE.
7936
7937 * s/osf1.h: Move string.h hack here from alpha.h and make it
7938 conditional.
7939 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
7940 _XOPEN_SOURCE.
7941 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
7942 (SOCKLEN_TYPE): Don't define.
7943
7944 * m/alpha.h: Remove string.h hack.
7945
7946 * s/osf5-0.h: New file.
7947
7948 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
7949 include time.h, done by systime.h.
7950 [__FreeBSD__]: Remove redundant includes.
7951
3fc720e4 7952 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
7953 (delete_temp_file): Return Qnil to avoid warning.
7954
7955 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
7956
7957 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
7958 HAVE_X_WINDOWS.
7959
7960 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
7961
7962 * composite.h (compose_text): Declare.
7963
7964 * xterm.c: Don't include sys/types.h unconditionally. Don't
7965 protect its inclusion with !USG (following xmenu.c).
7966
ea055732
GM
79672000-06-23 Gerd Moellmann <gerd@gnu.org>
7968
7969 * xfns.c (x_create_tip_frame): Initialize frame's colors like
7970 in x_create_frame.
7971
74b01b80
EZ
79722000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
7973
7974 * coding.c (decode_eol_post_ccl): Special handling for undecided
7975 and inconsistent EOL types.
7976
64f3a166
GM
79772000-06-22 Gerd Moellmann <gerd@gnu.org>
7978
16cf31f7
GM
7979 * xrdb.c (x_load_resources): Add default resource for scroll bar's
7980 trough color and main window's background color.
7981
52283633 7982 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
16cf31f7
GM
7983
7984 * xterm.h (Xt_app_con): External declaration.
7985
7986 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 7987
486a103d
GM
7988 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
7989
64f3a166
GM
7990 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
7991 (handle_invisible_prop): Record the start of invisible text in
7992 it->add_overlay_start.
7993 (struct overlay_entry): Add member `overlay'.
7994 (handle_overlay_change): Simplify.
7995 (next_overlay_string): After having processed overlay strings at the
7996 end of the buffer, record that fact in
7997 it->overlay_strings_at_end_processed_p.
7998 (compare_overlay_entries): If before- and after-strings come
7999 from the same overlay, let before-strings come first.
8000 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
8001 (load_overlay_strings): Take it->add_overlay_start into account
8002 when adding overlay strings.
8003
8004 * dispextern.h (struct it): Add member add_overlay_start.
8005
bb746ea6
DL
80062000-06-22 Dave Love <fx@gnu.org>
8007
8008 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
8009
8010 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
8011
a8f573f3
KH
80122000-06-22 Kenichi Handa <handa@etl.go.jp>
8013
8014 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
8015 is greater than 0.
8016
9f2bbc92
DL
80172000-06-21 Dave Love <fx@gnu.org>
8018
178c5d9c 8019 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 8020
3ee5041c
SM
80212000-06-21 Stefan Monnier <monnier@cs.yale.edu>
8022
8023 * syntax.c (back_comment): Simplify string-parity counting (with
8024 the added benefit of handling multiple string-styles as long as
8025 they are not intertwined).
8026 Jump to the slow code as soon as a comment starter is found in
8027 a "string_lossage" position. Fixes the case: " /* " /* " */.
8028
4c343001
DL
80292000-06-21 Dave Love <fx@gnu.org>
8030
8031 * Makefile.in: Use GETLOADAVG_LIBS.
8032
8033 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
8034 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
8035
e6365855
SM
80362000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8037
8038 * syntax.c (describe_syntax): Recognize the `n'estable bit.
8039 (Fforward_comment, scan_lists):
8040 Check the comstyle of single-char comment-starters.
8041 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
8042 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
8043 Check the comstyle of single-char comment-starters.
8044 Clarify control-flow around the Scomment case.
e6365855 8045
5700d2cc
DL
80462000-06-20 Dave Love <fx@gnu.org>
8047
d355bd8a
SM
8048 * fns.c (make_hash_table, maybe_resize_hash_table):
8049 Cast arg of next_almost_prime.
5700d2cc 8050
178c5d9c 8051 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
8052
8053 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
8054 and unistd.h.
8055
4a27bdfb
GM
80562000-06-20 Gerd Moellmann <gerd@gnu.org>
8057
a61d762c 8058 * keyboard.c (adjust_point_for_property): Check if display
52283633 8059 property should be treated as intangible by looking at its value.
a61d762c 8060
178c5d9c 8061 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
8062 (display_prop_intangible_p): New functions.
8063
8064 * dispextern.h (display_prop_intangible_p): Add prototype.
8065
8066 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 8067
4a27bdfb
GM
8068 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
8069 argument to sigprocmask.
8070
8071 * s/sco5.h (sigblock): Redefined to pass a pointer as second
8072 argument to sigprocmask.
8073
8074 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
8075 sigprocmask_set, and pass a pointer to it to sigprocmask.
8076
8077 * sysdep.c (sigprocmask_set): New variable.
8078
8079 * fileio.c (make_temp_name): Don't use `%s' in string passed to
8080 report_file_error.
8081
427ec082
SS
80822000-06-20 Sam Steingold <sds@gnu.org>
8083
8084 * xrdb.c: Don't declare xmalloc, xrealloc.
8085
8972fe79 80862000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
8087
8088 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
8089 (re_comp): Cast gettext return value to avoid complaints when
8090 !HAVE_LIBINTL.
8091
074b6efe
DL
80922000-06-20 Dave Love <fx@gnu.org>
8093
52283633 8094 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
f85c008a 8095
5700d2cc 8096 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 8097
d355bd8a 8098 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
8099
8100 * m/alpha.h: Don't declare xmalloc, xrealloc.
8101
0af4f205
DL
8102 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
8103
8104 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
8105
8106 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
8107
8108 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
8109 HAVE_GETWD.
8110
074b6efe
DL
8111 * keyboard.h (poll_for_input_1): Declare.
8112
8113 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
8114
8115 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
8116
8117 * doprnt.c: Don't declare xmalloc, xrealloc.
8118
8119 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
8120 (getenv, ctime, getwd): Removed.
8121 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
8122
8123 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
8124 x_set_tool_bar_lines.
8125
8126 * config.in: Add HAVE_GETWD. Move some definitions above
8127 machine/system includes.
8128
68a5e97b
KH
81292000-06-20 Kenichi Handa <handa@etl.go.jp>
8130
95417e1e
KH
8131 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
8132
68a5e97b
KH
8133 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
8134 contain information about ENCODING.
8135
8136 * fontset.c (FONTSET_ASCII): Use the first element of char table
8137 for an ASCII font, not defalt slot.
8138 (fontset_ref_via_base): If FONTSET doesn't contain information for
8139 C, try the default fontset.
8140 (make_fontset): Don't copy the default fontset.
8141 (fontset_font_pattern): Likewise.
8142 (accumulate_font_info): If ELT is nil, use the corresponding
8143 element in the default fontset.
8144
3b4fa1b2
DL
81452000-06-19 Dave Love <fx@gnu.org>
8146
943e731c
DL
8147 * syntax.c (Fparse_partial_sexp): Doc fix.
8148
8149 * regex.h: Test PROTOTYPES as well as __STDC__.
8150
3b4fa1b2
DL
8151 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
8152 errno, strerror. Put text after #endif in comment.
8153
52283633 8154 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
3b4fa1b2
DL
8155
8156 * xterm.c (x_frame_of_widget): Likewise.
8157
cdf0357b
GM
81582000-06-19 Gerd Moellmann <gerd@gnu.org>
8159
8160 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
8161 to Vfundamental_mode_abbrev_table.
8162
8163 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
8164 bogus objects are marked. This slows down GC by ~80 percent, but
8165 it might be worth trying when debugging GC-related problems.
8166 This feature requires conservative stack marking to be enabled.
8167
8168 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
8169 returns XLookupChars, reset `modifiers' to zero.
8170
998e9f8c
DL
81712000-06-19 Dave Love <fx@gnu.org>
8172
8173 * mktime.c: Unprotoized.
8174
18e21ce8 81752000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
8176
8177 * data.c (set_internal): If variable is frame-local,
8178 store the new value immediately into the frame parameter alist.
8179
140c4ac6
KR
81802000-06-19 Ken Raeburn <raeburn@gnu.org>
8181
14358466
KR
8182 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
8183 in the custom handler pointer.
8184
140c4ac6
KR
8185 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
8186 value, or checks for CHAR_META can fail when Lisp_Object is a
8187 union type.
8188 * keymap.c (get_keyelt): Likewise.
8189
10d7bf84
KH
81902000-06-19 Kenichi Handa <handa@etl.go.jp>
8191
8192 * ccl.h (struct ccl_program): New member eol_type.
8193 (struct ccl_spec): New member cr_carryover.
8194
8195 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
8196 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
8197
8198 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
8199 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
8200 (decode_eol_post_ccl): New function.
8201 (decode_coding): Don't detect EOL format here for CCL based coding
8202 systems.
8203 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
8204 decode_eol_post_ccl after running the CCL program.
8205 (code_convert_region): Don't detect EOL format here for CCL based
8206 coding systems.
8207 (decode_coding_string): Likewise.
8208
52e386c2
KR
82092000-06-18 Ken Raeburn <raeburn@gnu.org>
8210
8211 * charset.c (update_charset_table): Use XINT on "iso_final_char"
8212 when treating it as an integer.
8213
8214 * coding.h (encode_coding_string): Declare.
8215
8216 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
8217 it as an integer.
8218
8219 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
8220 "xkeymap" to avoid shadowing the "enum map_type" value that needs
8221 to be passed to get_local_map.
8222
8223 * sound.c (Fplay_sound): Don't call make_number on
8224 Frun_hook_with_args count argument.
8225
8226 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
8227 for lisp objects in X event structure data field, when lisp
8228 objects are represented with unions.
8229 (x_scroll_bar_to_input_event): Ditto.
8230
b357b9d4
KR
82312000-06-16 Ken Raeburn <raeburn@gnu.org>
8232
8233 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
8234 termination of string. Fix sense of test whether
8235 Vline_number_display_limit is an integer.
b357b9d4 8236
a871441d
GM
82372000-06-16 Gerd Moellmann <gerd@gnu.org>
8238
a9021acd
GM
8239 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
8240 only if HAVE_X_WINDOWS.
8241
6344985d
GM
8242 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
8243 of titles.
8244
427ec082 8245 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
8246 out of bounds.
8247
228b083e
EZ
82482000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
8249
8250 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
8251 of its headers.
8252
c25b53a2
KH
82532000-06-15 Kenichi Handa <handa@etl.go.jp>
8254
8255 * coding.c (decode_coding_emacs_mule): Always set src_base at the
8256 start of the while loop.
8257
a6981b11
GM
82582000-06-15 Gerd Moellmann <gerd@gnu.org>
8259
e9924e52
GM
8260 * atimer.c (alarm_signal_handler): Add forward declaration.
8261
a6981b11
GM
8262 * data.c (set_internal): Remove debug code.
8263
25fa6deb
GM
82642000-06-14 Gerd Moellmann <gerd@gnu.org>
8265
dce6b995
GM
8266 * Makefile.in (bootstrap-temacs): Add `-I../src'.
8267
9f817ea4
GM
8268 * unexec.c (toplevel) [COFF]: Include coff.h.
8269
8270 * s/lynxos.h: New file.
8271
8272 * keymap.c (Fsingle_key_description): Enclose function key and
8273 event symbol names in angle brackets.
8274
8a4e3c0c
GM
8275 * xdisp.c (setup_echo_area_for_printing): Call
8276 message_log_maybe_newline if message_buf_print is not set.
8277
8278 * print.c (printchar, strout): Don't check message_buf_print
427ec082 8279 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
8280 function does something useful even when message_buf_print is
8281 already set.
8282
52283633
SM
8283 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
8284 New variables.
25fa6deb
GM
8285 (ensure_echo_area_buffers): Initialize echo buffer's
8286 truncate lines setting to nil.
8287 (with_echo_area_buffer): Don't set the echo buffer's truncate
8288 lines setting here.
8a4e3c0c 8289 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
8290 of message_truncate_lines.
8291 (resize_mini_window): Handle case that lines are truncated.
52283633
SM
8292 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
8293 DEFVAR_BOOL message-truncate-lines.
25fa6deb
GM
8294
8295 * keyboard.c (read_char): Bind message-truncate-lines to t
8296 while displaying a help-echo.
8297
8298 * lisp.h (Qmessage_truncate_lines): External declaration.
8299
163dcff3
GM
83002000-06-13 Gerd Moellmann <gerd@gnu.org>
8301
1681ead6
GM
8302 * xdisp.c (Vline_number_display_limit): Renamed from
8303 line_number_display_limit.
8304 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
8305 Extend documentation string. Initialize
8306 Vline_number_display_limit to nil meaning no limit.
8307 (decode_mode_spec): Use Vline_number_display_limit with its new
8308 meaning.
8309
163dcff3
GM
8310 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
8311
18e21ce8 83122000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
8313
8314 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 8315
163dcff3
GM
8316 * xfns.c (x_set_frame_parameters): Comment fix.
8317
8318 * frame.c (store_frame_param): Call swap_in_global_binding if the
8319 variable's current binding was chosen based on this frame.
8320
8321 * data.c (swap_in_global_binding): New function.
8322
a704139d
EZ
83232000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
8324
8325 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
8326 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
8327
9b6610db
EZ
83282000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
8329
8330 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
8331
c68833d2
JR
83322000-06-12 Jason Rumney <jasonr@gnu.org>
8333
8334 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
8335
8336 * w32.h (EMACS_W32_H): Renamed from _NT_H_
8337
8338 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
8339
8340 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
8341
ed1056b3
GM
83422000-06-12 Gerd Moellmann <gerd@gnu.org>
8343
8344 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
8345 (syms_of_xfaces): Defsubr Sdump_colors.
8346 (x_free_colors): Don't treat b&w specially on default visual.
8347 (x_free_dpy_colors): New function.
8348 (free_face_colors): Don't check visual class; it's done
8349 in x_free_colors.
8350
8351 * xterm.c (x_frame_of_widget): New function.
8352 (x_alloc_nearest_color_for_widget): Use it.
8353 (x_copy_dpy_color): New function.
8354 (x_destroy_window): Free various colors.
8355
5050a2ef
KH
83562000-06-12 Kenichi Handa <handa@etl.go.jp>
8357
8358 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
8359
8360 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
8361
8362 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
8363
8364 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
8365
8366 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
8367
fb1b041d
DL
83682000-06-11 Dave Love <fx@gnu.org>
8369
8370 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
8371
ff96b5f4
EZ
83722000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
8373
8374 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
8375
db8eeecd
GM
83762000-06-11 Gerd Moellmann <gerd@gnu.org>
8377
ed1056b3 8378 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
8379 to `XEvent *'.
8380
49b71c5f
KH
83812000-06-10 Kenichi Handa <handa@etl.go.jp>
8382
c479bd55
KH
8383 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
8384 (regex_compile): Fix the code for handling the case of single byte
8385 char and multibyte char being mixed in a range within [...].
8386
ff6a65c2
KH
8387 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
8388 and dst_multibyte members of coding.
8389
49b71c5f
KH
8390 * charset.c (update_charset_table): Update the table
8391 bytes_by_char_head.
8392 (init_charset_once): Initialize elements of bytes_by_char_head to
8393 1 except for leading codes for private charases.
8394
8395 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
52283633 8396 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
49b71c5f 8397
9e80b57d
KR
83982000-06-09 Ken Raeburn <raeburn@gnu.org>
8399
8400 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
8401 access the data it doesn't point to.
8402
f83fe4b4
GM
84032000-06-08 Gerd Moellmann <gerd@gnu.org>
8404
8405 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 8406 will be translated to a switch-frame event when reading the
f83fe4b4
GM
8407 event queue. This is necessary because Emacs otherwise won't
8408 perform a switch-frame to a new frame until some other event, for
8409 example a keystroke event, forces it to do so. This has various
8410 effects, one visible being that the cursor of a frame created with
8411 C-x 5 2 or switched to with a window manager key binding like
8412 A-TAB stays hollow because selected_window isn't on the newly
8413 focused frame until the switch-frame is performed.
8414
8415 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
8416 generating a switch-frame event if necessary.
8417
8418 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
8419
8420 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
8421 it's an integer.
8422
0890801b
KH
84232000-06-08 Kenichi Handa <handa@etl.go.jp>
8424
52283633 8425 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
0890801b 8426
173cbca8
GM
84272000-06-07 Gerd Moellmann <gerd@gnu.org>
8428
3091c2a6
GM
8429 * window.c (displayed_window_lines): Take empty lines at
8430 the bottom of a window into account.
427ec082 8431
f38952fe
GM
8432 * window.c (displayed_window_lines): New function.
8433 (Fmove_to_window_line): Use displayed_window_lines to determine
8434 the number of lines to move, instead of using the window's height.
8435
8436 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
8437 to stop reading, even if the form read sets point to a different
8438 value when evaluated.
8439
427ec082 8440 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
8441 put the cursor.
8442
6ba6c818
KH
84432000-06-07 Kenichi Handa <handa@etl.go.jp>
8444
8445 * fileio.c (e_write): Free composition data if stored in
8446 coding->cmp_data.
8447
5f1aea9a
GM
84482000-06-06 Gerd Moellmann <gerd@gnu.org>
8449
666852af
GM
8450 * xdisp.c (display_line): Set row's and iterator's
8451 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
8452 Set cursor even if row ends in the middle of a character.
8453 (dump_glyph_row): Print values of new flags.
8454 (redisplay_window) <cursor movement in unchanged window>: When
8455 point has been moved forward, and PT is at the end of the cursor
8456 row, don't place the cursor in the next row if the cursor row ends
8457 in the middle of a character or at ZV.
8458
8459 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
8460 (struct glyph_row): Add starts_in_middle_of_char_p and
8461 ends_in_middle_of_char_p.
8462 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
8463 ends_in_middle_of_char_p flag.
8464 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
8465
d13f3e2e
GM
8466 * term.c (append_glyph): Revert change of 2000-06-06.
8467
8468 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
8469 padding glyph not fitting on line as whole character not
8470 fitting on line.
8471
5f1aea9a
GM
8472 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
8473 this isn't true for images with `:ascent 100'.
8474
10cda9b0
KH
84752000-06-06 Kenichi Handa <handa@etl.go.jp>
8476
ed00559d
KH
8477 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
8478 as modified if it is originally unmodified.
8479
10cda9b0
KH
8480 * term.c (encode_terminal_code): Change the way to check if
8481 terminal coding does any conversion.
8482 (append_glyph): Set glyph->pixel_width correctly.
8483
8484 * xdisp.c (display_line): While checking line continuation, pay
8485 attention to a padding glyph.
8486
1969fae2
GM
84872000-06-05 Gerd Moellmann <gerd@gnu.org>
8488
8489 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
8490
162ccef4
DL
84912000-06-05 Dave Love <fx@gnu.org>
8492
f19f32dd
DL
8493 * xdisp.c: Include fontset.h.
8494
8495 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
8496
8497 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8498
8499 * dispnew.c: Conditionally include term.h.
8500
8501 * coding.h: Declare code_convert_string_norecord.
8502
8503 * frame.h (struct frame): Use volatile unconditionally.
8504
8505 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
8506
8507 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
8508
8509 * systime.h: Protect against multiple inclusion.
8510 (timezone) [USG5_4]: Define as time_t.
8511
8512 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8513 (Foptimize_char_table, make_temp_name): Declare.
8514
8515 * Makefile.in (xdisp.o): Depend on fontset.h.
8516
8517 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
8518
8519 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
8520 (Foptimize_char_table, make_temp_name): Declare.
8521
427ec082 8522 * s/irix4-0.h:
162ccef4
DL
8523 * s/irix5-0.h:
8524 * s/netbsd.h: Don't define autoconfiscated MATHERR.
8525
2082fe81
DL
85262000-06-02 Dave Love <fx@gnu.org>
8527
8528 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
8529
dcf671d2
GM
85302000-06-02 Gerd Moellmann <gerd@gnu.org>
8531
8532 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 8533 result face, set flags in that face indicating that colors may not
dcf671d2
GM
8534 be freed.
8535
8536 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
8537 glyph, use the ASCII NUL character to determine the face.
8538
d42122a3
DL
85392000-06-02 Dave Love <fx@gnu.org>
8540
8541 * sysdep.c: Conditionally include stdlib.h, unistd.h.
8542 (VFORK_RETURN_TYPE): Remove.
427ec082 8543
d42122a3
DL
8544 * config.in: Add NO_MATHERR.
8545
dd432f16
DL
85462000-06-01 Dave Love <fx@gnu.org>
8547
90aa4ea8
DL
8548 * cmds.c (internal_self_insert): Don't check
8549 Vbefore_change_function, Vafter_change_function.
8550
8551 * insdel.c (signal_before_change, signal_after_change): Likewise.
8552
8553 * buffer.c (Vbefore_change_function, Vafter_change_function):
8554 Variables and their initializations deleted.
8555
2330c9d4
DL
8556 * callint.c (Fcall_interactively): Doc fix.
8557
dd432f16
DL
8558 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
8559
bf9e8804
DL
85602000-05-31 Dave Love <fx@gnu.org>
8561
8562 * textprop.c: Revert last change -- duplicated.
8563
3694b4ab
GM
85642000-05-31 Gerd Moellmann <gerd@gnu.org>
8565
8566 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
8567 in #if 0.
8568
8569 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
8570
f14156cd
JR
85712000-05-31 Jason Rumney <jasonr@gnu.org>
8572
8119aab8
JR
8573 * search.c (Fre_search_forward, Fre_search_backward)
8574 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
8575
f14156cd
JR
8576 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
8577
4aab9be3
JR
85782000-05-30 Jason Rumney <jasonr@gnu.org>
8579
8580 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
8581 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
8582
52283633 8583 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
4aab9be3
JR
8584
8585 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
8586 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
8587 expand a nil default_filename.
8588
8589 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
8590 pointer to glyph_to_pixel_coords, not a frame.
8591
8592 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
8593 coding.h to dependencies.
8594
8595 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
8596
8597 * w32console.c (glyph_to_pixel_coords): Change first parameter to
8598 window pointer to be consistent with w32term.c and xterm.c.
8599
8600 * w32fns.c: Format and doc changes to bring closer to xfns.c.
8601 (VIETNAMESE_CHARSET): Define if not defined in system headers.
8602 (Qline_spacing, Qcenter): New variables.
8603 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
8604 (x_set_line_spacing): New function.
52283633 8605 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
4aab9be3
JR
8606 (x_specified_cursor_type): New function.
8607 (x_set_cursor_type): Use it.
8608 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
8609 and icon strings.
8610 (validate_x_resource_name, x_get_resource_string): Measure lengths
8611 of external strings in bytes.
8612 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
8613 GetTextExtentPoint32 with NULL title.
8614 (Fx_create_frame): Initialize Qline_spacing.
8615 (w32_load_system_font): Initialize font->double_byte_p.
8616 (x_to_w32_charset): Use Vw32_charset_info_alist.
8617 (Image, busy cursor, tooltip functions): Merged changes from
8618 xfns.c. Not yet functional on Windows.
8619
8620 * w32gui.h (W32FontStruct): Add double_byte_p member.
8621
8622 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
8623 (emacs_button_translation): Use it.
8624 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
8625 in `mask' to be set.
8626
8627 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
8628 menu strings.
8629
8630 * w32term.c: Format and doc changes to bring closer to xterm.c.
8631 (w32_char_font_type): New enum.
8632 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
8633 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
8634 (w32_encode_char): New function.
8635 (x_encode_char): Removed.
8636 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
8637 x_encode_char and w32_font_is_double_byte.
8638 (x_produce_image_glyph): Use image_ascent.
8639 (x_produce_glyphs): Use new version of w32_per_char_metric and
8640 handle NULL return value. Allow extra line spacing.
8641 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
8642 (w32_get_glyph_overhangs): Remove unicode_p param. Use
8643 w32_font_type member of glyph instead.
8644 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
8645 (fast_find_position): Make sure not to consider rows not visible
8646 in the window.
8647 (w32_read_socket) [WM_MENUSELECT]: Cannot call
8648 w32_menu_display_help with input blocked, as it can abort.
8649 (x_display_and_set_cursor): Choose cursor depending
8650 on buffer-local value of cursor_type.
8651 (x_draw_bar_cursor): Add parameter WIDTH.
8652
8653 * w32term.h (CP_DEFAULT): Define.
8654 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
8655
10fc3187
GM
86562000-05-30 Gerd Moellmann <gerd@gnu.org>
8657
8658 * search.c (Fre_search_forward, Fre_search_backward)
8659 (Fposix_search_backward, Fposix_search_forward): Doc fix.
8660
d0555360
KH
86612000-05-30 Kenichi Handa <handa@etl.go.jp>
8662
8663 * coding.c (detect_coding_iso2022): Fix code for checking
8664 CODING_CATEGORY_MASK_ISO_8_2.
8665
f1ad044f
SM
86662000-05-29 Stefan Monnier <monnier@cs.yale.edu>
8667
8668 * regex.c (PREFETCH_NOLIMIT): New function.
8669 (re_match_2_internal): Use it and adjust the end_match_2 logic.
8670
84ec3b4b
GM
86712000-05-29 Gerd Moellmann <gerd@gnu.org>
8672
66254a13
GM
8673 * syntax.c (find_defun_start): Move test for
8674 open_paren_in_column_0_is_defun_start outside of the loop.
8675
49e70dec
GM
8676 * xdisp.c (redisplay_window): Really switch buffers when
8677 displaying mode lines, and temporarily set selected_frame to the
8678 frame of the window that's redisplayed.
8679
84ec3b4b
GM
8680 * xfaces.c (free_realized_faces): Block/unblock input.
8681 (free_realized_multibyte_face): Ditto.
8682
869a3a14
DL
86832000-05-29 Dave Love <fx@gnu.org>
8684
8685 * textprop.c (Qkeymap): New variable.
8686 (syms_of_textprop): Intern it.
8687
8688 * keymap.c: Include intervals.h.
8689 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
8690
8691 * Makefile.in (keymap.o): Depend on intervals.h.
8692
8693 * keyboard.c (menu_bar_items, tool_bar_items)
8694 (Fexecute_extended_command): Deal with `keymap' property.
8695 (read_key_sequence): Track map from `keymap' property as well as
8696 `local_map'.
8697
8698 * intervals.c (get_local_map): Extra arg to allow looking for
8699 `keymap' too.
8700
8701 * intervals.h (map_property): New enum.
8702 (get_local_map): Extra arg using it.
8703 (Qkeymap): Declare.
8704
84ec3b4b 8705 * lisp.h (get_local_map): Don't declare here.
869a3a14 8706
89d0c844
KH
87072000-05-29 Kenichi Handa <handa@etl.go.jp>
8708
8709 * Makefile.in (callproc.o): Depend on composite.h.
8710
8711 * callproc.c: Include composite.h.
8712 (Fcall_process): Handle composition correctly.
8713
8714 * coding.h (coding_allocate_composition_data): Extern it.
8715 (coding_restore_composition): Likewise.
8716
8717 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
8718 yet allocated, finish decoding with result
8719 CODING_FINISH_INSUFFICIENT_CMP.
8720 (coding_allocate_composition_data): Make it non-static.
8721 (coding_restore_composition): Likewise.
8722
797a084a
EZ
87232000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
8724
8725 * charset.c (syms_of_charset): Revert last change.
8726
cf872af5
EZ
87272000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8728
8729 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
8730 charsets as unibyte, with 1-column screen width. Sent by Kenichi
8731 Handa.
cf872af5 8732
5b1ae051
EZ
87332000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
8734
8735 * charset.c (syms_of_charset): Set width of character sets
8736 eight-bit-control and eight-bit-graphic to 1 column.
8737
34ec9ebe
GM
87382000-05-26 Gerd Moellmann <gerd@gnu.org>
8739
8740 * config.in (HAVE_SPEED_T): New define.
8741
8742 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
8743 `extern speed_t'.
8744
dd854dc2
DL
87452000-05-26 Dave Love <fx@gnu.org>
8746
8747 * coding.c (shrink_decoding_region): Initialize eol_conversion.
8748
8749 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
8750 (Fsubr_arity): New function.
8751 (syms_of_data): Install them.
8752
ba9f8f95
KH
87532000-05-26 Kenichi Handa <handa@etl.go.jp>
8754
0f3e0672
KH
8755 * charset.c (init_charset_once): Set the table bytes_by_char_head
8756 correctly.
8757
cebefb44
KH
8758 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
8759 the default fontset to what Emacs uses by default.
0f3e0672
KH
8760 (check_registry_encoding): This function deleted.
8761 (Fset_fontset_font): Remove the adhoc condition for the default
8762 fontset. Allow cons in FONTNAME.
cebefb44 8763
0f3e0672
KH
8764 * fns.c (map_char_table): Ignore char-table entries for
8765 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 8766
7a18af49
KR
87672000-05-25 Ken Raeburn <raeburn@gnu.org>
8768
8769 * emacs.c (main): Initialize keyboard syms before initializing
8770 window code, so face names are available.
8771
d2af47df
SM
87722000-05-25 Stefan Monnier <monnier@cs.yale.edu>
8773
8774 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
8775 of an anchor at the beginning of a shy-group.
8776
fc6a6a4e
GM
87772000-05-25 Gerd Moellmann <gerd@gnu.org>
8778
8779 * xdisp.c (handle_invisible_prop): Don't try to skip over
8780 invisible text if end of text is already reached.
8781
005f0d35
DL
87822000-05-25 Dave Love <fx@gnu.org>
8783
02513cdd
DL
8784 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
8785
005f0d35
DL
8786 * coding.c (encode_eol): Add null statement after label.
8787
89f6ca4e
EZ
87882000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
8789
8790 * w16select.c (Fw16_set_clipboard_data): Fix the change from
8791 2000-05-20.
8792
a4e1759e
KH
87932000-05-25 Kenichi Handa <handa@etl.go.jp>
8794
8795 * ccl.c (ccl_driver): Fix previous change.
8796
eacfd7fe
KH
87972000-05-25 Kenichi Handa <handa@etl.go.jp>
8798
46ab33a9
KH
8799 * coding.c (run_pre_post_conversion_on_str): Set point to the
8800 beginning of buffer before calling coding->post_read_conversion.
8801 (decode_coding_string): Give correct args to
8802 run_pre_post_conversion_on_str.
8803 (encode_coding_string): Likewise.
8804
eacfd7fe
KH
8805 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
8806 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
8807 eight-bit-graphic correctly.
8808
f8569325
DL
88092000-05-24 Kenichi HANDA <handa@etl.go.jp>
8810
8811 * fileio.c (Finsert_file_contents): Even if a file is not found,
8812 execute codes for setting up coding system. Call
8813 after-insert-file-functions unconditionally.
8814
04545643
GM
88152000-05-24 Gerd Moellmann <gerd@gnu.org>
8816
8817 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
8818 BSD_PGRPS are not defined.
8819
747d90ea
KH
88202000-05-24 Kenichi Handa <handa@etl.go.jp>
8821
8822 * charset.c (update_charset_table): Accept nil in LONG_NAME and
8823 DESCRIPTION.
8824 (syms_of_charset): Avoid building same strings.
8825
716e3b88
GM
88262000-05-23 Gerd Moellmann <gerd@gnu.org>
8827
8828 * lread.c (Fload): Add a comment about the meaning of
8829 Vuser_init_file being t.
8830
8831 * puresize.h (BASE_PURESIZE): Increase to 675000.
8832
8833 * s/gnu-linux.h (setpgrp): Don't define it here because this
8834 prevents compilation on GNU/Linux systems with glib 2.2.
8835
8836 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
8837 as setpgid.
427ec082 8838
9aeb39fa
EZ
88392000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
8840
8841 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
8842 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
8843 version.
8844 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
8845
29ced61b
KH
88462000-05-23 Kenichi Handa <handa@etl.go.jp>
8847
52283633 8848 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
0574a2ed 8849
3d80f24d
KH
8850 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
8851
52283633 8852 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
3d80f24d 8853
29ced61b
KH
8854 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
8855
d7e00792
KH
88562000-05-22 Kenichi Handa <handa@etl.go.jp>
8857
c9d80d38
KH
8858 * keyboard.c (read_char): Allow character codes 128..255 to be
8859 handled by input-method-function.
8860
d7e00792
KH
8861 * insdel.c (adjust_markers_for_replace): Fix previous change.
8862 (adjust_after_replace): If PREV_TEXT is nil, call
8863 adjust_markers_for_insert, not adjust_markers_for_replace.
8864
087121cc 88652000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 8866
087121cc
GM
8867 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
8868 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
8869 [HAVE_GRANDPT]: Define.
8870 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
8871
8872 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
8873 like SYSV_PTYS.
8874
8875 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
8876
8877 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
8878
c9671f81
KH
88792000-05-20 Kenichi Handa <handa@etl.go.jp>
8880
8881 The following changes are to handle 8-bit characters in a
8882 multibyte buffer/string without facing with byte combining
8883 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
8884 eight-bit-graphic (for 0xA0..0xFF) are introduced.
8885
8886 * Makefile.in (fns.o): Depend on charset.h.
8887
8888 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
8889 convert it to unibyte.
8890 (make_string): Use parse_str_as_multibyte, not chars_in_text.
8891
8892 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
8893 apparent char boundary.
8894 (Fset_buffer_multibyte): Convert 8-bit characters in the range
8895 0x80..0x9F to/from multibyte form.
8896
8897 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
8898 to unibyte.
8899
8900 * callproc.c (Fcall_process): Always encode an argument string if
8901 it is multibyte. Setup src_multibyte and dst_multibyte members of
8902 process_coding properly.
ce75fd23 8903
c9671f81
KH
8904 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
8905 SPLIT_NON_ASCII_CHAR.
8906
8907 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
8908 as is.
8909 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
8910
52283633 8911 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
c9671f81 8912 (SPLIT_CHARACTER_SEQ): This macro deleted.
52283633 8913 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
c9671f81
KH
8914 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
8915 and eight-bit-graphic.
8916 (char_to_string): Likewise. Signal an error for too large
8917 character code.
8918 (char_printable_p): Return 0 for 8-bit characters.
8919 (update_charset_table): Update iso_charset_table only when a final
8920 character is non-negative.
8921 (find_charset_in_text): Renamed from find_charset_in_str.
8922 Arguments and return value changed. Callers changed.
8923 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
8924 be -1 if CHARSET is used only internally.
8925 (Fmake_char_internal): Handle new charsets; eight-bit-control and
8926 eight-bit-graphic.
8927 (Fcharset_after): Simplified.
8928 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
8929 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
8930 (multibyte_chars_in_text): Simplified by assuming there's no
8931 invalid multibyte sequence.
52283633
SM
8932 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8933 (str_as_unibyte): New functions.
8934 (Fstring): Simpified by assuming that byte combining never happens.
c9671f81
KH
8935 (init_charset_once): Initialization for
8936 LEADING_CODE_8_BIT_CONTROL.
8937 (syms_of_charset): Intern and staticpro Qeight_bit_control and
8938 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
8939 eight-bit-control and eight-bit-graphic.
8940
52283633
SM
8941 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
8942 (CHARSET_8_BIT_GRAPHIC): New macros.
c9671f81
KH
8943 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
8944 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
8945 (CHARSET_REVERSE_CHARSET): Likewise.
8946 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
8947 eight-bit-graphic.
8948 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
8949 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
8950 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
8951 encounter an invalid multibyte sequence.
8952 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
8953 sequence is always valid.
8954 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
52283633 8955 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
c9671f81
KH
8956 (CHAR_STRING): For 8-bit characters, call char_to_string.
8957 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
8958 multibyte sequence is always valid.
8959 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
52283633
SM
8960 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
8961 (str_as_unibyte): Extern them.
c9671f81 8962 (BCOPY_SHORT): Fix a bug.
52283633 8963 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
c9671f81
KH
8964 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
8965 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
8966 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
8967
bd4bde7f 8968 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81 8969 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
52283633
SM
8970 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
8971 (EMIT_BYTES): New macros.
8972 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
8973 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
c9671f81
KH
8974 macros deleted.
8975 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
8976 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
8977 check the validity of multibyte sequence.
8978 (decode_coding_emacs_mule): New function.
8979 (encode_coding_emacs_mule): New macro.
8980 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
8981 the source.
8982 (DECODE_ISO_CHARACTER): Just return a character code.
8983 (DECODE_COMPOSITION_START): Set coding->result instead of result.
8984 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
8985 EMIT_CHAR to produced decoded characters. Exit the loop only by
8986 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
8987 block here.
8988 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
8989 only position codes for an invalid character.
8990 (encode_designation_at_bol): Return new destination pointer. 5th
8991 arg DSTP is changed to DST.
8992 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
8993 from the source by ONE_MORE_CHAR. Don't handle the case of last
8994 block here.
8995 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
8996 macros deleted.
52283633
SM
8997 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
8998 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
c9671f81
KH
8999 TWO_MORE_BYTES to fetch a byte from the source.
9000 (encode_eol): Pay attention to coding->src_multibyte.
9001 (detect_coding, detect_eol): Preserve members src_multibyte and
9002 dst_multibyte.
9003 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
9004 (encoding_buffer_size): Set magnification to 3 for all coding
9005 systems that require encoding.
9006 (ccl_coding_driver): For decoding, be sure that the result is
9007 valid multibyte sequence.
9008 (decode_coding): Initialize coding->errors and coding->result.
9009 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
9010 and raw-text, always call decode_eol. Handle the case of last
9011 block here. If not coding->dst_multibyte, convert the resulting
9012 sequence to unibyte.
9013 (encode_coding): Initialize coding->errors and coding->result.
9014 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
9015 and raw-text, always call encode_eol. Handle the case of last
9016 block here.
9017 (shrink_decoding_region, shrink_encoding_region): Detect cases
9018 that we can't skip data more rigidly.
9019 (code_convert_region): Setup src_multibyte and dst_multibyte
9020 members of coding. For decoding, if the buffer is multibyte,
9021 convert the source sequence to unibyte in advance. For encoding,
9022 if the buffer is multibyte, convert the resulting sequence to
9023 multibyte afterward.
9024 (run_pre_post_conversion_on_str): New function.
9025 (code_convert_string): Deleted and divided into the following two.
9026 (decode_coding_string, encode_coding_string): New functions.
9027 (code_convert_string1, code_convert_string_norecord): Call one of
9028 above.
9029 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
9030 MAKE_NON_ASCII_CHAR.
52283633
SM
9031 (Fset_terminal_coding_system_internal)
9032 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
c9671f81
KH
9033 and dst_multibyte members.
9034 (init_coding_once): Initialize iso_code_class with new enum
9035 ISO_control_0 and ISO_control_1.
9036
9037 * coding.h (enum iso_code_class_type): Member ISO_control_code is
9038 devided into ISO_control_0 and ISO_control_1.
9039 (struct coding_system): New members src_multibyte, dst_multibyte,
9040 errors, and result. Delete member fake_multibyte.
9041 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
9042 nonzero.
9043 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
9044 nonzero.
9045
9046 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
9047 (Faset): Likewise.
9048
9049 * editfns.c (Fformat): Be sure to convert 8-bit characters to
9050 multibyte form.
9051 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
9052 combining occurs.
9053 (Ftranspose_region): Delete codes for handling byte combining.
9054
9055 * fileio.c (Finsert_file_contents): Setup src_multibyte and
9056 dst_multibyte members of coding. On handling REPLACE on unibyte
9057 buffer, convert the result of decode_coding to unibyte. On
9058 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 9059 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
9060 multibyteness of the source (buffer or string).
9061
9062 * fns.c (concat): Handle 8-bit characters correctly.
9063 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
9064 unibyte in the result.
9065 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
9066 valid multibyte form in the result.
9067 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
9068 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
9069 return -1, signal an error.
9070 (base64_encode_1): New arg MULTIBYTE. Get each character by
9071 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
9072 character is found, return -1.
9073 (Fbase64_decode_region): Delete codes for handling byte-combining.
9074 Treat each decoded byte as a unibyte character.
9075 (Fbase64_decode_string): Return unibyte string.
9076 (Fcompare_strings, concat, string_byte_to_char): Use
9077 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
9078 FETCH_STRING_CHAR_ADVANCE.
9079 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9080 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
9081
9082 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
9083 SPLIT_NON_ASCII_CHAR.
9084 (fontset_ref_via_base, fontset_set): Likewise
9085
9086 * insdel.c (adjust_markers_for_record_delete): Deleted.
9087 (adjust_markers_for_insert): Argument changed. Caller changed.
9088 (adjust_markers_for_replace): Likewise.
52283633
SM
9089 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
9090 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
c9671f81
KH
9091 (copy_text): Delete unused local varialbe c_save. For converting
9092 to multibyte, be sure to make all 8-bit characters in valid
9093 multibyte form.
9094 (count_size_as_multibyte): Handle 8-bit characters correctly.
52283633
SM
9095 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
9096 (adjust_after_replace, replace_range, del_range_2)
c9671f81 9097 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
52283633
SM
9098 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
9099 (adjust_after_replace, replace_range, del_range_2) Delete codes for
c9671f81
KH
9100 handling byte combining.
9101 (adjust_before_replace): Deleted.
427ec082 9102
c9671f81
KH
9103 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
9104 SPLIT_NON_ASCII_CHAR.
9105 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
52283633 9106 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
c9671f81
KH
9107 (Fkey_description): Likewise.
9108
9109 * lread.c (read1): On reading multibyte string, be sure to make
9110 all 8-bit chararacters in valid multibyte form.
9111 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9112
9113 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
9114 unconditionally.
9115
9116 * process.c (Fstart_process): GCPRO current_dir before calling
9117 Ffind_operation_coding_system. Encode arguments here.
9118 (create_process): Don't encode arguments here. Setup
9119 src_multibyte and dst_multibyte members of struct coding.
9120 (read_process_output): Setup src_multibyte and dst_multibyte
9121 members of struct coding. If the output is to multibyte buffer,
9122 always decode the output of the process. Adjust the
52283633 9123 representation of 8-bit characters to the multibyteness of the output.
c9671f81
KH
9124 (send_process): Setup coding->src_multibyte according to the
9125 multibyteness of the source.
9126
52283633 9127 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
c9671f81
KH
9128 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
9129 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
9130
52283633 9131 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
c9671f81
KH
9132
9133 * w16select.c (Fw16_set_clipboard_data): Setup members
9134 src_multibyte and dst_multibyte of coding. Adjusted for the
9135 change for find_charset_in_str.
9136 (Fw16_get_clipboard_data): Likewise.
9137
9138 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
9139 dst_multibyte of coding.
9140 (x_to_w32_font): Likewise.
9141
9142 * w32select.c (Fw32_set_clipboard_data): Setup members
9143 src_multibyte and dst_multibyte of coding. Adjusted for the
9144 change for find_charset_in_str.
9145 (Fw32_get_clipboard_data): Likewise.
9146
9147 * xdisp.c (get_next_display_element): Handle 8-bit characters
9148 correctly.
52283633
SM
9149 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
9150 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
c9671f81
KH
9151
9152 * xselect.c (selection_data_to_lisp_data): Setup members
9153 src_multibyte and dst_multibyte of coding. Adjusted for the
9154 change for find_charset_in_str.
9155 (lisp_data_to_selection_data): Likewise.
9156
5f64c9e0
GM
91572000-05-19 Gerd Moellmann <gerd@gnu.org>
9158
52283633 9159 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
2b63d473 9160
5f64c9e0
GM
9161 * dispextern.h (Vimage_types): Add extern declaration.
9162
9163 * xdisp.c (Vimage_types): Moved here from xfns.c.
9164 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
9165
9166 * xfns.c (Vimages_types): Moved to xdisp.c.
9167 (syms_of_xfns): Move `image-types' to xdisp.c.
9168
9169 * w32fns.c (Vimage_types): Removed.
9170 (syms_of_w32fns): Remove `image-types'.
9171
813086ea
KH
91722000-05-18 Kenichi Handa <handa@etl.go.jp>
9173
9174 * fns.c (map_char_table): Pay attention to character number of
9175 charset. Check the validity of charset at the first level. For
9176 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
9177 the default value.
9178
9179 * fontset.c: Include "buffer.h".
9180 (fs_load_font): If the face has fontset, record the face ID in
9181 that fontset.
9182 (Finternal_char_font): New function.
9183 (accumulate_font_info): New function.
9184 (Ffontset_info): Rewritten for the new fontset implementation.
9185 (syms_of_fontset): Register Vdefault_fontset in the first element
9186 of Vfontset_table. Include Vdefault_fontset in
9187 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
9188 function.
9189
bdaebbf0
DL
91902000-05-16 Dave Love <fx@gnu.org>
9191
9192 * m/iris5d.h: Deleted -- unused.
9193
cb613bb8
GM
91942000-05-16 Gerd Moellmann <gerd@gnu.org>
9195
b15f3b77
GM
9196 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
9197 `invalid' instead of `illegal'.
9198
9199 * indent.c (Fmove_to_column): When ending within a tab, insert
9200 spaces first so that markers at the end of the tab get adjusted.
9201
835c1b36
GM
9202 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
9203 buffer list that wasn't selected in that frame.
9204
cb613bb8
GM
9205 * filelock.c (get_boot_time): To obtain an 8 char file name, which
9206 is needed on mescaline, use a 2 char prefix, and call
9207 make_temp_name with second arg non-zero.
9208
9209 * fileio.c (make_temp_name): New function, extracted from
9210 Fmake_temp_name.
9211 (Fmake_temp_name): Use it.
9212
f685bea9
EZ
92132000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
9214
52283633 9215 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
f685bea9 9216
a1b8d58b
GM
92172000-05-15 Gerd Moellmann <gerd@gnu.org>
9218
9219 * Makefile.in (lisp): Add env.elc.
9220
9221 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
9222
a265079f
GM
92232000-05-12 Gerd Moellmann <gerd@gnu.org>
9224
9225 * search.c (Freplace_match): Handle case of `\N' in the
9226 replacement when there's no group N.
9227
da4496b6
GM
92282000-05-11 Gerd Moellmann <gerd@gnu.org>
9229
0ace421a
GM
9230 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
9231 of the message to message_dolog.
9232
1172eb8d
GM
9233 * keyboard.c (read_char): Don't clear current message for help
9234 events; let the code handling help events handle this. Change
9235 code detecting help events that should be ignored.
9236
da4496b6
GM
9237 * xdisp.c (handle_single_display_prop): Don't try to set PT if
9238 we're interating over a string.
9239
0623e40f
DL
92402000-05-09 Dave Love <fx@gnu.org>
9241
9242 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
9243 that offset before writing. Move gcpro region past call of
9244 Ffile_regular_p.
9245
bae2503b
DL
92462000-05-04 Dave Love <fx@gnu.org>
9247
9248 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
9249
ec82fb2f
GM
92502000-05-04 Gerd Moellmann <gerd@gnu.org>
9251
9252 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
9253 of inserted characters when BUF equals the current buffer, and PT
9254 is in front of or equal to FROM.
9255
cbf18892
GM
92562000-05-03 Gerd Moellmann <gerd@gnu.org>
9257
4ff40dd0
GM
9258 * xdisp.c (handle_single_display_prop): If display property value
9259 is invalid, or something not supported on the frame, restore
9260 iterator's position to what it was initially. Make sure to return
9261 0 for invalid and unsupported property values.
9262
cbf18892
GM
9263 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
9264 that x_per_char_metric returns null.
9265
1b0672c3
GM
92662000-05-02 Gerd Moellmann <gerd@gnu.org>
9267
576da55d
GM
9268 * xterm.h (struct face): Add forward declaration.
9269 (struct image): Ditto.
9270 (image_ascent): Add prototype.
9271
9272 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
9273 (x_draw_image_relief, x_draw_image_foreground_1): Call function
9274 image_ascent instead of using IMAGE_ASCENT.
9275
9276 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
9277 (IMAGE_ASCENT): Removed.
9278
9279 * xfns.c (Qcenter): New variable.
9280 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
9281 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
9282 (image_ascent): New function.
9283 (lookup_image): Recognize `:ascent center'.
9284 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
9285 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
9286 (xbm_load): Don't set image's ascent here.
9287 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
9288 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
9289 check ascent values here.
9290 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
9291 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
9292 (syms_of_xfns): Initialize Qcenter.
9293
1b0672c3
GM
9294 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
9295 to the limits, increase the limits.
9296
0d7811ed
KH
92972000-05-01 Kenichi Handa <handa@etl.go.jp>
9298
9299 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
52283633 9300 Check Vfont_encoding_alist against the full name of the opened font.
0d7811ed 9301
a943a5ca
GM
93022000-04-28 Gerd Moellmann <gerd@gnu.org>
9303
9304 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
9305 taller than the window.
9306
5dba1e29
KH
93072000-04-28 Kenichi Handa <handa@etl.go.jp>
9308
9309 * xfaces.c (realize_x_face): Fix the argument of the second
9310 xassert. BASE_FACE may not be a face for ASCII.
9311
353964e3
GM
93122000-04-27 Gerd Moellmann <gerd@gnu.org>
9313
c76e04a8
GM
9314 * print.c (print_object): Treat print-length < 0 as nil.
9315
9316 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
9317
9318 * s/freebsd.h (TERMCAP_OBJ): Removed.
9319 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
9320
9321 * lread.c (read1): Don't treat period followed by certain
9322 characters as symbol start.
9323
9324 * xfns.c (slurp_file): New function.
9325 (xbm_image_p): Handle case of in-memory XBM files.
9326 (xbm_scan): Rewritten to work on memory buffers instead of files.
9327 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
9328 Work on memory buffers instead of files. If DATA is null test
9329 if buffer looks like an in-memory XBM file.
9330 (xbm_load_image): Renamed from xbm_load_image_file. Work on
9331 memory buffers instead of files.
9332 (xbm_file_p): New function.
9333 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
9334
353964e3
GM
9335 * lread.c (end_of_file_error): New function.
9336 (read1): Call it instead of signaling `end-of-file' directly.
9337
427ec082 9338 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
9339 with Fprinc instead of Fprin1.
9340
24d744ac
KR
93412000-04-26 Ken Raeburn <raeburn@gnu.org>
9342
9343 * window.c (freeze_window_start): Check that minibuffer scroll
9344 window isn't nil before extracting the window structure pointer
9345 from it.
9346
9347 * undo.c (record_delete): If we hit the end of the undo list, stop
9348 picking elements apart.
9349
7464346d
GM
93502000-04-26 Gerd Moellmann <gerd@gnu.org>
9351
9352 * xdisp.c (display_line): If lines are continued, restore
9353 iterator's ascent/descent information to the values before the
9354 first glyph not fitting on the line.
9355
612839b6
GM
93562000-04-25 Gerd Moellmann <gerd@gnu.org>
9357
9358 * xdisp.c (try_window_id) <all changes above window start>: Adjust
52283633 9359 positions in glyph matrix. Don't compute new window end positions.
612839b6
GM
9360
9361 * dispnew.c (increment_matrix_positions): Renamed from
9362 increment_glyph_matrix_buffer_positions.
9363 (increment_row_positions): Renamed from
9364 increment_glyph_row_buffer_positions.
9365
9366 * dispextern.h: Change names of renamed functions from dispnew.c
9367 in prototypes.
9368
cc181e95
GM
93692000-04-24 Gerd Moellmann <gerd@gnu.org>
9370
abfcc168
GM
9371 * fileio.c (Fdo_auto_save): Create directories for auto-save
9372 list file if necessary.
9373
cc181e95
GM
9374 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
9375 from buffer or frame.
9376 (automatic_hscrolling_p): New variable.
9377 (hscroll_windows): Scroll windows horizontally only if automatic
9378 hscrolling is allowed.
9379 (syms_of_xdisp): New variable `automatic-hscrolling'.
9380
9381 * frame.h (struct frame): Add member extra_line_spacing.
9382
9383 * xfns.c (x_set_line_spacing): New function.
9384 (Fx_create_frame): Set line spacing from resources.
9385 (Qline_spacing): New variable.
9386 (syms_of_xfns): Initialize Qline_spacing.
427ec082 9387
cc181e95
GM
9388 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
9389
9390 * buffer.c (init_buffer_once): Handle extra_line_spacing.
9391 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 9392 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
9393 extra_line_spacing from default value.
9394 (init_buffer_once): Initialize default value of extra_line_spacing.
9395
9396 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
9397 and extra3.
9398
9399 * xterm.c (x_produce_glyphs): Remove reference to struct it's
9400 prompt_width. Add extra line spacing.
9401
9402 * term.c (produce_glyphs): Remove reference to struct it's
9403 prompt_width.
9404
9405 * dispextern.h (struct it): Remove member prompt_width, add
9406 extra_line_spacing.
9407
58827478
GM
94082000-04-22 Gerd Moellmann <gerd@gnu.org>
9409
9410 * dispnew.c (update_frame_line): When writing a whole line, make
9411 sure cursor is in the right row afterwards, otherwise a use of
9412 capability `ch' in cmgoto might leave the cursor in the row below.
9413
25a87f42
GM
94142000-04-21 Gerd Moellmann <gerd@gnu.org>
9415
9416 * lisp.h (struct Lisp_Buffer_Cons): Remove.
9417
9418 * keyboard.c (timer_check): Fix typo in comment.
9419
54edf5c2
KH
94202000-04-21 Kenichi Handa <handa@etl.go.jp>
9421
9422 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
9423 name change: ch -> character.
9424
3a64eef5
GM
94252000-04-20 Gerd Moellmann <gerd@gnu.org>
9426
9427 * keyboard.c (echo_message_buffer): New variable.
9428 (echo_now): Set echo_message_buffer to the echo area buffer used
9429 to display the echo.
9430 (cancel_echoing): Reset echo_message_buffer to nil.
9431 (read_char): Code rewritten that handles canceling an echo or
9432 echoing a dash, respectively.
9433
9434 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
9435 directory doesn't exist.
9436
6142fdcb
DL
94372000-04-19 Dave Love <fx@gnu.org>
9438
9439 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
9440 (concat): Don't allow numeric args.
9441 (Fconcat): Doc change.
6142fdcb 9442
ac6b5352
SM
94432000-04-19 Stefan Monnier <monnier@cs.yale.edu>
9444
9445 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
9446 instead define end_match(1|2) more carefully.
9447 Use GET_CHAR_BEFORE_2 for `begline'.
9448
cb9215e4
GM
94492000-04-19 Gerd Moellmann <gerd@gnu.org>
9450
5e3dac3f
GM
9451 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
9452 on 64-bit systems where NULL is defined as `0'.
9453
9454 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
9455 the `variable argument list' to make it work on Alpha.
9456
cb9215e4
GM
9457 * m/alpha.h (_LP64) [!_LP64]: Define.
9458 (ORDINARY_LINK): Define for NetBSD.
9459
9460 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 9461
f532dca0
DL
94622000-04-19 Dave Love <fx@gnu.org>
9463
c750667e
DL
9464 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
9465 change.
9466
9467 * Makefile.in (LIBS): Don't use.
9468 (GETLOADAVG_OBJ): Define again.
9469 (otherobj): Add GETLOADAVG_OBJ.
9470
f532dca0
DL
9471 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
9472
1c7e22fd
GM
94732000-04-18 Gerd Moellmann <gerd@gnu.org>
9474
f6d3257b
GM
9475 * lread.c (read_filtered_event): Cancel and start busy cursor.
9476
427ec082 9477 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
9478 that the per-character metrics may be null.
9479
e10f64e7
GM
94802000-04-17 Gerd Moellmann <gerd@gnu.org>
9481
0daee095
GM
9482 * buffer.c (clone_per_buffer_values): New function.
9483 (Fmake_indirect_buffer): Add optional argument CLONE. Call
9484 clone_per_buffer_values if CLONE is not nil.
9485
e10f64e7
GM
9486 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
9487
38687d43
DL
94882000-04-16 Dave Love <fx@gnu.org>
9489
9490 * Makefile.in: Remove obsolete localcpp stuff.
9491 (GETLOADAVG_OBJ): Don't define.
9492 (obj): Move LIBOBJS...
9493 (otherobj): ... to here.
9494 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
9495 whitespace-only lines after the continuation (Irix).
9496
c21c7262
GM
94972000-04-14 Gerd Moellmann <gerd@gnu.org>
9498
9499 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
9500
9501 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
9502
314767c0
DL
95032000-04-14 Dave Love <fx@gnu.org>
9504
9505 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
9506 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
9507 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
9508 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
9509 NLIST_STRUCT.
9510
9511 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
9512 autoconfiscated HAVE_GETLOADAVG.
9513
9514 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
9515 BROKEN_MKTIME.
9516
a2522dca
GM
95172000-04-14 Gerd Moellmann <gerd@gnu.org>
9518
9519 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
52283633 9520 (fill_in_lock_file_name): Avoid existing files that aren't links.
a2522dca 9521
33744b5d
DL
95222000-04-14 Dave Love <fx@gnu.org>
9523
c21c7262 9524 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
9525 (INTERVAL_SRC): Convert to make variable.
9526 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
9527 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
9528 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
9529 add LIBOBJS.
9530 (SOME_MACHINE_OBJECTS): Remove interval stuff.
9531 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
9532 (shortlisp): Add facemenu, float-sup, frame.
9533 (SOME_MACHINE_LISP): Remove them from here.
9534 (LIBES): Change unused LDLIBS to autoconf LIBS.
9535
9536 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
9537
9d3d5916
KH
95382000-04-14 Kenichi Handa <handa@etl.go.jp>
9539
9540 * composite.c (update_compositions): If FROM and TO are not in a
9541 valid range, do nothing.
9542
198e3c7a
GM
95432000-04-13 Gerd Moellmann <gerd@gnu.org>
9544
52283633 9545 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
198e3c7a 9546
52283633 9547 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
198e3c7a
GM
9548
9549 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
9550 as TERMCAP_OBJ.
9551
055a28c9
EZ
95522000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
9553
9554 * fileio.c (a_write): Remove redundant semi-colons.
9555 (e_write): Return -1 if failed to write all the data.
9556 This fixes the changes made at 1999-12-15.
9557
f5c75033
DL
95582000-04-12 Dave Love <fx@gnu.org>
9559
9560 * fns.c (mapcar1): Test for null vals to support mapc.
9561 (Fmapc): New function.
9562
0c3cfc51
EZ
95632000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
9564
9565 * msdos.c (NUM_MOUSE_BUTTONS): Define.
9566 (IT_frame_up_to_date): Support the buffer local value of
9567 cursor-type, if defined.
9568
33465a31
DL
95692000-04-10 Dave Love <fx@gnu.org>
9570
9571 * editfns.c (preceding-char, following-char): Doc fix.
9572
6ed56568
KR
95732000-04-10 Ken Raeburn <raeburn@gnu.org>
9574
9575 * Makefile.in (temacs): Revert 2000-03-12 change.
9576
7cf80d4e
JR
95772000-04-10 Jason Rumney <jasonr@gnu.org>
9578
9579 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
9580
34f3f342
GM
95812000-04-10 Gerd Moellmann <gerd@gnu.org>
9582
1a1b1895
GM
9583 * xdisp.c (setup_echo_area_for_printing): Choose an echo
9584 area buffer, if it's not set up yet.
9585
34f3f342
GM
9586 * indent.c (compute_motion): Set immediate_quit.
9587
be0dbdab
GM
95882000-04-09 Gerd Moellmann <gerd@gnu.org>
9589
52283633 9590 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
c45be9ac
GM
9591 (realize_tty_face): Suppress boldness if colors are the inverse of
9592 the default colors, and tty_suppress_bold_inverse_default_colors_p
9593 is set.
9594 (Ftty_suppress_bold_inverse_default_colors): New function.
9595 (syms_of_xfaces): Defsubr it.
9596
be0dbdab
GM
9597 * buffer.c (Frestore_buffer_modified_p): New function.
9598 (syms_of_buffer): Defsubr it.
9599
e8413c3b
KR
96002000-04-08 Ken Raeburn <raeburn@gnu.org>
9601
87f67317
KR
9602 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
9603 charset id (int) argument, not a charset (Lisp_Object).
9604
e8413c3b
KR
9605 * coding.h (code_convert_string): Declare.
9606 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
9607 object, as the fourth argument to code_convert_string.
9608
52283633 9609 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
e8413c3b
KR
9610 (Fset_fontset_font): Use EQ to compare lisp objects.
9611
7c752c80
KR
96122000-04-05 Ken Raeburn <raeburn@gnu.org>
9613
c0333abc
KR
9614 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
9615 a pointer that looks like a lisp object.
9616 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
9617 zero, instead see whether it's an integer object, since they can't
9618 have intervals.
9619 (GET_INTERVAL_OBJECT): Simply assign to the destination.
9620
52283633
SM
9621 * dispnew.c (allocate_matrices_for_frame_redisplay)
9622 (direct_output_forward_char): Use X(U)INT and make_number as needed
7c752c80
KR
9623 to convert between (unsigned) int values and lisp integers.
9624 * keyboard.c (read_key_sequence): Likewise.
9625 * lread.c (substitute_object_recurse): Likewise.
9626 * fns.c (concat, hash_lookup, hash_remove): Likewise.
52283633
SM
9627 * minibuf.c (do_completion, Fminibuffer_complete_word)
9628 (Fminibuffer_completion_help): Likewise.
7c752c80
KR
9629 * term.c (produce_special_glyphs): Likewise.
9630
9631 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
9632 * print.c (print_preprocess, print_object): Likewise.
9633
9634 * search.c (compile_pattern): Use NILP when checking for nil.
9635
74e49b38
KR
9636 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
9637 __OPTIMIZE__]: Provide a GNU C macro version that handles
9638 lisp-object unions.
9639 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
9640 field, to better cope with ENABLE_CHECKING and calls that modify a
9641 Lisp_Object using its old value.
9642
685e5ed2
GM
96432000-04-04 Gerd Moellmann <gerd@gnu.org>
9644
c407c570
GM
9645 * window.c (compare_window_configurations): Signal an error
9646 if parameters C1 or C2 aren't window configurations.
9647
685e5ed2
GM
9648 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
9649 AFTER_POTENTIAL_GC calls around calls to functions that can
9650 signal an error and thus invoke the debugger.
9651
587a49ab
GM
96522000-04-03 Gerd Moellmann <gerd@gnu.org>
9653
62f20204
GM
9654 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
9655 an error if decoding fails.
9656
587a49ab
GM
9657 * keyboard.c (lispy_mouse_names): Variable removed.
9658 (Vlispy_mouse_stem): New variable.
9659 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
9660 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
9661 for any mouse button number. Increase size of mouse_syms and
9662 button_down_location as needed. Call modify_event_symbol with
9663 different arguments.
9664 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
9665 Call modify_event_symbol with different arguments.
9666 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
9667 for any button number. Call modify_event_symbol with different
9668 arguments.
9669 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
9670 Accept a string for NAME_ALIST_OR_STEM.
9671
9672 * lisp.h (larger_vector): Add prototype.
9673
9674 * fns.c (larger_vector): Make externally visible.
9675
9676 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
9677
2d1675e4
SM
96782000-04-02 Stefan Monnier <monnier@cs.yale.edu>
9679
9680 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
9681 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
9682 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
9683 we are between str1 and str2.
9684 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
9685 (PATFETCH): Use `TRANSLATE'.
9686 (PATFETCH_RAW): Fetch multibyte char if applicable.
9687 (PATUNFETCH): Remove.
9688 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
9689 When writing a char, write it directly into the pattern buffer rather
9690 than going needlessly through a temp char-array.
9691 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
9692 multibyte magic and remove the useless `#ifdef emacs'.
9693 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
9694 buffer.
9695
9696 * regex.h (struct re_pattern_buffer): Make field `multibyte'
9697 conditional on `emacs'.
9698
9699 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
9700
cc2d8c6b
KR
97012000-04-01 Ken Raeburn <raeburn@gnu.org>
9702
9703 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
9704 non-union-type versions of XMARK and friends here, because XMARK
9705 and friends won't work on an integer field if NO_UNION_TYPE is not
9706 defined.
52283633 9707 (make_number): Define as a function if it's not defined as a macro.
cc2d8c6b 9708
52283633 9709 * composite.c (run_composite_function): Use NILP when checking for nil.
09654086
KR
9710 (syms_of_composite): Delete local var NARGS, pass an int as first
9711 argument to Fmake_hash_table.
9712
2387b382
KR
9713 * editfns.c (text_property_stickiness): Use NILP to test
9714 Lisp_Object boolean value.
9715 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
9716 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
9717 problems reading from and changing the same lisp value in an
9718 XSETSTRING call.
9719
27660e89
GM
97202000-04-01 Gerd Moellmann <gerd@gnu.org>
9721
9722 * term.c (TN_no_color_video): New variable.
9723 (term_init): Intitialize TN_no_color_video.
9724 (enum no_color_bit): New enumeration.
9725 (MAY_USE_WITH_COLORS_P): New macro.
9726 (turn_on_face): Use it to determine if attributes may be used
9727 combined with colors.
9728
3578db3c
KR
97292000-04-01 Ken Raeburn <raeburn@gnu.org>
9730
9731 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
52283633 9732 with int lvalues via casts; instead, just yield lisp object lvalues.
3578db3c
KR
9733 (enlarge_window): Variable sizep now points to Lisp_Object. Use
9734 proper accessor macros.
9735 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
9736 (grow_mini_window): Fix typo getting int value of root->height.
9737
6fc556fd
KR
9738 * xdisp.c (compute_string_pos): Fix order of arguments to
9739 string_pos_nchars_ahead.
9740 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
9741 count arg to variable-arg routines like Frun_hook_with_args and
9742 Fformat.
587a49ab
GM
9743 (back_to_previous_visible_line_start)
9744 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
9745 fixed-arg routines like Fget_char_property and Fmake_string.
9746 (reconsider_clip_changes): Use XINT when comparing integer lisp
9747 objects, or passing them as int arguments.
587a49ab
GM
9748 (mark_window_display_accurate, insert_left_trunc_glyphs)
9749 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
9750 storing or passing integer values as lisp objects.
9751 (set_cursor_from_row, highlight_trailing_whitespace): Use
9752 INTEGERP, not implicit test against zero, for glyph object.
9753 (try_window_id): Don't use make_number when we want an int value.
9754
9755 * xfaces.c (xlfd_symbolic_value): Make last argument a
9756 Lisp_Object, to be consistent with callers.
9757 (Fbitmap_spec_p): Use XINT to get numeric value of height.
9758 (lface_hash): Apply XFASTINT to lisp values before folding in.
9759
9760 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
9761 fill in window width and height. Pass an int, not a lisp object,
9762 as first arg to Finsert.
9763
6e7b2457
GM
97642000-04-01 Gerd Moellmann <gerd@gnu.org>
9765
610d841e
GM
9766 * xfaces.c (realize_basic_faces): Block input while realizing
9767 the faces.
9768
6e7b2457
GM
9769 * keyboard.c (lispy_mouse_names): Add additional mouse names.
9770
9771 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
9772
aa110c0c
GM
97732000-03-31 Gerd Moellmann <gerd@gnu.org>
9774
9775 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 9776 or ASCII, handle case that per-char metric is null.
aa110c0c 9777
8801a864
KR
97782000-03-30 Ken Raeburn <raeburn@gnu.org>
9779
c6129d7e
KR
9780 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
9781
52283633
SM
9782 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
9783 (XSUBR, XBUFFER): Verify correct object type before returning
8801a864
KR
9784 pointer, using eassert.
9785 * frame.h (XFRAME): Likewise.
9786
52283633
SM
9787 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
9788 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
9789 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
8801a864 9790 * data.c (set_internal): Likewise.
52283633
SM
9791 * dispextern.h (WINDOW_WANTS_MODELINE_P)
9792 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
8801a864
KR
9793 * fileio.c (auto_save_1): Likewise.
9794 * insdel.c (check_markers): Likewise.
9795 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
9796 * undo.c (record_insert): Likewise.
9797 * vmsproc.c (child_sig): Likewise.
9798 * window.c (unshow_buffer, window_loop): Likewise.
9799 * xterm.c (x_erase_phys_cursor): Likewise.
9800
8e7af858
GM
98012000-03-30 Gerd Moellmann <gerd@gnu.org>
9802
9803 * xfns.c (free_image_cache): Free the cache structure itself
9804 last, after all its members have been freed.
9805
9806 * lisp.h (xstrdup): Add prototype.
9807
9808 * alloc.c (xstrdup): Moved here from xfaces.c.
9809 (allocating_for_lisp): Variable removed.
52283633 9810 (lisp_malloc): Block input around the calls to malloc and mem_insert.
8e7af858
GM
9811
9812 * xfaces.c (realize_tty_face): Use find_symbol_value instead
9813 of Fsymbol_value.
9814 (xstrdup): Moved to alloc.c.
9815
e0b8c689
KR
98162000-03-29 Ken Raeburn <raeburn@gnu.org>
9817
b96f9fb7
KR
9818 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
9819
9820 * emacs.c (main): Fix sense of no-loadup test.
9821
e0b8c689
KR
9822 * config.in (ENABLE_CHECKING): Undef.
9823
9824 * lisp.h (struct interval): Replace "parent" field with a union of
9825 interval pointer and Lisp_Object; add new bitfield to use as
9826 discriminant. Change other flag fields to bitfields.
9827 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
52283633
SM
9828 is defined and the supplied test fails, print a message and abort.
9829 (eassert): New macro. Use CHECK to provide an assert-like facility.
e0b8c689
KR
9830
9831 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
9832 pointers; abort if the value looks like a lisp object.
52283633
SM
9833 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
9834 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
e0b8c689
KR
9835 Modify for new interval parent definition.
9836
52283633
SM
9837 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
9838 (UNMARK_BALANCE_INTERVALS): Update references that need an
e0b8c689
KR
9839 addressable lisp object in the interval structure.
9840 (die): New function.
9841 (suppress_checking): New variable.
9842
9843 * intervals.c (interval_start_pos): Just return 0 if there's no
9844 parent object.
9845
f83c5440
GM
98462000-03-29 Gerd Moellmann <gerd@gnu.org>
9847
9848 * lread.c (read1): Accept `.' (period) as symbol start like in CL
9849 and earlier Emacs versions.
9850
9851 * keyboard.c (Ftop_level): Cancel busy-cursor.
9852
9853 * eval.c (call_debugger): Cancel busy-cursor.
9854
fdce64ff
KH
98552000-03-29 Kenichi Handa <handa@etl.go.jp>
9856
9857 * search.c (Freplace_match): Adjust multibyteness of the current
52283633 9858 buffer and NEWTEXT. Free allocated memory before signaling an error.
fdce64ff 9859
f6a3f532
SM
98602000-03-28 Stefan Monnier <monnier@cs.yale.edu>
9861
9862 * regex.c (analyse_first): New function obtained by ripping out most
9863 of re_compile_fastmap and generalizing it a little bit so that it
9864 can also just return whether a given (sub)pattern can match the empty
9865 string or not.
9866 (regex_compile): Use `analyse_first' to decide whether the loop-check
9867 needs to be done or not for *, +, *? and +? (the loop check is costly
9868 for non-greedy repetition).
9869 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
9870
e9b309ac
DL
98712000-03-28 Dave Love <fx@gnu.org>
9872
52283633 9873 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
bb15bd9a 9874
e9b309ac
DL
9875 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
9876
ed0767d8
SM
98772000-03-27 Stefan Monnier <monnier@cs.yale.edu>
9878
9879 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
9880 an expression.
9881 (enum re_opcode_t): Update description of succeed_n.
9882 (PATFETCH): Always define.
9883 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
9884 operators, char classes, shy-groups and intervals).
9885 Optimize special cases of intervals so as to only use succeed_n and
9886 jump_n when really needed.
9887 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
9888 that we don't have to handle the special cases any more.
9889 Simplify on_failure_jump handling as well.
9890
e11e7e46
JR
98912000-03-28 Jason Rumney <jasonr@gnu.org>
9892
9893 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
9894
88faab89
GM
98952000-03-27 Gerd Moellmann <gerd@gnu.org>
9896
182ff242
GM
9897 * s/freebsd.h (GC_SETJMP_WORKS): Define.
9898
9899 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 9900
182ff242
GM
9901 * alloc.c (mark_maybe_object): New function.
9902 (mark_memory): Use it.
9903 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
9904 (setjmp_tested_p, longjmp_done): New variables.
9905 (test_setjmp): New function.
9906 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
9907 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
9908
c1005d06
GM
9909 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
9910 to DEC_TEXT_POS and INC_TEXT_POS.
9911
9912 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
9913 with parameter MULTIBYTE_P.
9914
52283633 9915 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
c1005d06 9916
7439e5b9 9917 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
9918 buffers because it looks for multibyte character byte sequences
9919 which don't exist in unibyte text.
7439e5b9 9920
d9c545da
GM
9921 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
9922
11fd416e 9923 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
9924 [DEBUG_X_COLORS]: New functions.
9925 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
9926
9927 * xfns.c (x_set_cursor_color): Get color reference counts right.
9928
9929 * xterm.c (x_copy_color): New function.
9930 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
9931
9932 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
9933 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
9934 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
9935 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
9936 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
9937 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
9938 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
9939 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
9940 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
9941 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
9942
11fd416e
GM
9943 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
9944 names for handling per-buffer variables.
d9c545da
GM
9945
9946 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
9947 instead of MAX_BUFFER_LOCAL_VARS.
9948 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
9949
9950 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
9951
88faab89
GM
9952 * xfns.c (x_specified_cursor_type): New function.
9953 (x_set_cursor_type): Use it.
9954
9955 * buffer.h (struct buffer): Add cursor_type.
9956
d80f42b7
SM
99572000-03-26 Stefan Monnier <monnier@cs.yale.edu>
9958
9959 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
52283633
SM
9960 (print_partial_compiled_pattern, re_compile_fastmap):
9961 Handle new opcode.
d80f42b7
SM
9962 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
9963 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
9964 executing it as well as when popping it off the stack to find infinite
9965 loops in non-greedy repetition operators.
9966
89e80928
GM
99672000-03-26 Gerd Moellmann <gerd@gnu.org>
9968
3d4ff2dd
GM
9969 * doc.c (Qfunction_documentation): New variable.
9970 (syms_of_doc): Initialize Qfunction_documentation.
9971 (Fdocumentation): If FUNCTION is a symbol with non-nil
9972 `function-documentation' property, return a documentation derived
9973 from that.
9974
bd96bd79
GM
9975 * buffer.c (syms_of_buffer): Add default-cursor-type.
9976 (init_buffer_once): Don't let cursor_type have a local value
9977 in every buffer.
9978
19d1bc27
GM
9979 * xterm.c (x_display_and_set_cursor): Choose cursor depending
9980 on buffer-local value of cursor_type.
9981 (x_draw_bar_cursor): Add parameter WIDTH.
9982
9983 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
9984 (init_buffer_once): Set default cursor_type value to t.
9985 Mark cursor_type as local everywhere.
9986 (syms_of_buffer): New per-buffer variable cursor-type.
9987
89e80928
GM
9988 * buffer.h (struct buffer): Remove member local_var_flags,
9989 add local_flags.
9990 (MAX_BUFFER_LOCAL_VARS): New macro.
9991 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
9992 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
9993 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
9994 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
9995
52283633 9996 * print.c (print_object): Use new macros for per-buffer variables.
89e80928
GM
9997
9998 * category.c (Fset_category_table): Use new macros for per-buffer
9999 variables.
10000
10001 * buffer.c (buffer_permanent_local_flags): Make a char array.
10002 (max_buffer_local_idx): New variable.
10003 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
10004 for new handling of per-buffer variables.
10005 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
10006 (init_buffer_once): Initialize per-buffer vars differently.
10007 Set max_buffer_local_idx.
10008
10009 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
10010 variables.
10011
52283633 10012 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
89e80928
GM
10013
10014 * data.c (do_symval_forwarding, store_symval_forwarding)
10015 (find_symbol_value, set_internal, default_value, Fset_default)
10016 (Fkill_local_variable, Flocal_variable_p): Use new macros for
10017 per-buffer variables.
10018
10019 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
10020
9a0dd3dc
GM
100212000-03-24 Gerd Moellmann <gerd@gnu.org>
10022
b68c375f
GM
10023 * xterm.c (x_term_init): Unblock input around call1 of
10024 Qvendor_specific_keysyms.
10025
9a0dd3dc
GM
10026 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
10027 (find_defun_start): Consider an open parenthesis in column 0
10028 a defun start only if open_paren_in_column_0_is_defun_start is set.
10029 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
10030
7973e637
SM
100312000-03-24 Stefan Monnier <monnier@cs.yale.edu>
10032
10033 * eval.c (Fautoload): Add entry in load-history (if after dump).
10034 * lread.c (load-history): Update docstring.
10035
39210e90
GM
100362000-03-24 Gerd Moellmann <gerd@gnu.org>
10037
10038 * indent.c (Fvertical_motion): Always use the current buffer.
10039 Temporarily change the window's buffer, if necessary.
10040
72db3ab5
GM
100412000-03-23 Gerd Moellmann <gerd@gnu.org>
10042
10043 * xterm.c (fast_find_position): Make sure not to consider rows
10044 not visible in the window.
10045
990b2375
SM
100462000-03-22 Stefan Monnier <monnier@cs.yale.edu>
10047
10048 * regex.c (enum syntaxcode): Provide default for non-Emacs.
10049 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
10050
ff4df011
JR
100512000-03-22 Jason Rumney <jasonr@gnu.org>
10052
10053 * w32menu.c (single_submenu): Set help string to NULL if none.
10054 (w32_menu_show): Set help string correctly.
10055 (add-menu-item): Set help string in MIIM_DATA for menu item.
10056 Load SetMenuItemInfoA explicitly.
10057 (w32_menu_display_help): New function.
427ec082 10058
ff4df011
JR
10059 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
10060 (QCdata): Moved to xdisp.c.
10061
10062 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
10063 (Vw32_charset_to_codepage_alist): Removed.
10064 (Vw32_charset_info_alist): New variable.
52283633
SM
10065 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
10066 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
10067 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
ff4df011
JR
10068 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
10069 with TODO comment.
10070 (w32_codepage_for_font): Use Vw32_charset_info_alist.
10071 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
10072 Define Vw32_charset_info_alist and w32_charset symbols.
10073
100742000-03-22 Jason Rumney <jasonr@gnu.org>
10075
10076 * makefile.nt (w32bdf.obj): Update dependencies.
10077
10078 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
10079
10080 * w32fns.c: Include fontset.h after dispextern.h.
10081 (Fx_create_frame): Do not create fontset.
10082 (w32_load_system_font): Doc fix.
10083 (Fx_close_connection): Free full_name if it is not shared.
10084
10085 * w32term.c: Include fontset.h after dispextern.h.
52283633
SM
10086 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
10087 Callers updated.
ff4df011
JR
10088 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
10089 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
10090 (w32_font_is_double_byte): New function, needs body.
10091 (x_append_glyph): Set glyph->glyph_not_available_p.
10092 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
10093 it->charset. If it->multibyte_p is zero and it->c is a multibyte
10094 character, convert it to a unibyte character.
10095 (struct glyph_string): Delete member `charset'.
10096 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
10097 calculating it is found.
10098 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
10099 the case that per char metric is not available correctly.
10100 (x_fill_glyph_string): Handle the case that the specific glyph is
10101 not available correctly.
10102 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
10103 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
10104 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
10105 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
10106 fontset. Don't call FS_LOAD_FONT.
10107
439d5cb4
KR
101082000-03-22 Ken Raeburn <raeburn@gnu.org>
10109
10110 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
10111 (INT_LISPLIKE): New macro.
10112 (NULL_INTERVAL_P): Use it.
52283633
SM
10113 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
10114 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
10115 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
439d5cb4
KR
10116
10117 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
10118 explicit references to "parent" field of struct interval and
10119 associated unclean type conversions.
52283633
SM
10120 * intervals.c (create_root_interval, root_interval, rotate_right)
10121 (rotate_left, balance_possible_root_interval, split_interval_right)
10122 (split_interval_left, interval_start_pos, find_interval)
10123 (next_interval, previous_interval, update_interval)
10124 (adjust_intervals_for_insertion, delete_node, delete_interval)
10125 (adjust_intervals_for_deletion, merge_interval_right)
10126 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
10127 (copy_intervals_to_string): Likewise.
439d5cb4
KR
10128 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
10129 Likewise.
10130 * syntax.c (update_syntax_table): Likewise.
10131
10132 * intervals.c (reproduce_tree_obj): New function, like
10133 reproduce_tree but takes a Lisp_Object for the parent. Declare
10134 with prototype.
10135 (graft_intervals_into_buffer): Use it when appropriate.
10136 (reproduce_tree): Declare with prototype.
10137 (balance_possible_root_interval): Check that the parent is a lisp
10138 object before trying to examine its type.
10139
ee1c5b21
GM
101402000-03-22 Gerd Moellmann <gerd@gnu.org>
10141
10142 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
10143 as strings only if both are known to be strings.
10144
10145 * s/openbsd.h (LIBS_TERMCAP): Undef.
10146
1fb352e0
SM
101472000-03-21 Stefan Monnier <monnier@cs.yale.edu>
10148
10149 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
10150 definitions for non-Emacs compilation.
10151 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
10152 outside of `#ifdef emacs'.
10153 (print_partial_compiled_pattern): Update.
10154 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
10155 (re_compile_fastmap): Merge handling of charset and charset_not (for
10156 emacs and non-emacs compilation as well).
10157 Similarly for (not)categoryspec and (not)syntaxspec.
10158 Don't use the fastmap when reaching `anychar' since the added
10159 complexity is not justified.
10160 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
10161 and (not)syntaxspec. Merge (not)categoryspec.
10162
fdaa1f77
KH
101632000-03-22 Kenichi Handa <handa@etl.go.jp>
10164
52283633
SM
10165 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
10166 (FACE_FOR_CHAR): Define them differently for the configuration of
ff1a0d8e 10167 --without-x.
fdaa1f77 10168
d152fb46
DL
101692000-03-21 Dave Love <fx@gnu.org>
10170
10171 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
10172 doc string.
10173
d2cafc8c
GM
101742000-03-21 Gerd Moellmann <gerd@gnu.org>
10175
10176 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
10177 (lface_fully_specified_p): Don't check contents of
10178 LFACE_FONT_INDEX because that attribute is optional.
10179 (realize_x_face): Remove now unwarranted xassert.
10180
9111d4b5
KH
101812000-03-21 Kenichi HANDA <handa@etl.go.jp>
10182
10183 The following changes are to make font selection based on
10184 characters, not charset. In addition, they recover fontset
10185 facilities while utilizing the new font selection mechanism.
10186
6c4bfdc0
KH
10187 * Makefile.in (fontset.o): Depend on dispextern.h.
10188
10189 * alloc.c (mark_face_cache): Don't mark face->registry.
10190
9111d4b5
KH
10191 * dispextern.h (struct glyph): New member glyph_not_available_p.
10192 Use 22 bits for face_id.
10193 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
10194 (struct face): Delete member registry, new member ascii_face.
10195 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
10196 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
10197 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
52283633 10198 (struct it): Delete member charset, new member glyph_not_available_p.
9111d4b5
KH
10199
10200 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
10201 (struct fontset_info, struct fontset_data): Structs removed.
52283633
SM
10202 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
10203 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
9111d4b5 10204 (fs_load_font, fs_query_fontset): Adjusted for new argument.
52283633
SM
10205 (fs_free_face_fontset, fontset_font_pattern)
10206 (face_suitable_for_char_p, face_for_char)
10207 (make_fontset_for_ascii_face): Extern them.
9111d4b5
KH
10208 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
10209 (FS_LOAD_FACE_FONT): New macro.
10210
10211 * fontset.c: All codes rewritten or adjusted for the change of
10212 fontset implementation. Now fontset is represented by char table.
52283633
SM
10213 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
10214 Variables removed.
9111d4b5 10215 (my_strcasecmp): Function removed.
52283633 10216 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
9111d4b5 10217 (AREF, ASIZE): New macros.
52283633
SM
10218 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
10219 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
10220 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
10221 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
10222 (fontset_id_valid_p, font_family_registry, fontset_name)
10223 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
10224 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9111d4b5
KH
10225 New functions.
10226 (fs_load_font): New arg FACE. Caller changed.
10227 (fs_query_fontset): Argument changed. Caller changed.
10228 (Fquery_fontset): call fs_query_fontset.
10229 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
10230 Functions removed.
52283633
SM
10231 (clear_fontset_elements, check_registry_encoding)
10232 (check_fontset_name): New functions.
9111d4b5
KH
10233 (syms_of_fontset): Set char-table-extra-slots property of fontset
10234 to 3. Staticpro and initialize Vfontset_table and
10235 Vdefault_fontset. Defsubr fontset_font and fontset_list.
10236
10237 * frame.h (struct frame): Member `fontset_data' removed.
10238 (FRAME_FONTSET_DATA): Macro removed.
10239
10240 * frame.c (make_frame): Don't allocate f->fontset_data.
10241 (Fdelete_frame): Don't free f->fontset_data.
10242
6c4bfdc0
KH
10243 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
10244
9111d4b5
KH
10245 * xdisp.c (charset_at_position): Function removed.
10246 (init_iterator): Don't set member charset of struct `it'.
52283633
SM
10247 (handle_face_prop, reseat_to_string, set_iterator_to_next)
10248 (next_element_from_display_vector, insert_left_trunc_glyphs):
9111d4b5
KH
10249 Likewise.
10250 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
10251 FACE_FOR_CHARSET.
52283633
SM
10252 (get_next_display_element, append_space)
10253 (extend_face_to_end_of_line): Likewise.
9111d4b5
KH
10254
10255 * xfaces.c (Qx_charset_registry, Vface_default_registry):
10256 Variables removed.
10257 (clear_font_table, frame_update_line_height, load_face_font):
10258 Adjusted for the change of fontset implementation.
10259 (load_face_fontset_font): Function removed.
10260 (pixel_point_size): New function.
10261 (font_list): Argument type changed. Caller changed.
10262 (LFACE_FONT): New macro.
10263 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
10264 (set_lface_from_font_name): Type of arg FONTNAME is changed to
10265 Lisp_Object. Determine the font name by actually loading a font
10266 by the specified pattern. Set LFACE_FONT (lface) to the specified
10267 pattern. Even if a font is not found, don't try alternatives.
10268 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
10269 (set_font_frame_param): If `font' is specified in lface, use it.
10270 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
10271 (lface_same_font_attributes_p): Likewise.
10272 (make_realized_face): Arguent changed. Caller changed. Set
10273 face->ascii_face to face itself.
10274 (free_realized_face): Free face->fontset if face is for ASCII.
52283633
SM
10275 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
10276 (deduce_unibyte_registry, x_charset_registry): Functions removed.
9111d4b5
KH
10277 (free_realized_multibyte_face): New function.
10278 (lookup_face, lookup_named_face, lookup_derived_face): Argument
10279 changed. Caller changed.
10280 (try_font_list): Argument type changed.
10281 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
10282 (choose_face_font): Argument changed. Handle fontset properly.
10283 (choose_face_fontset_font): Function removed.
10284 (realize_default_face, realize_named_face): Don't remove the
10285 former face here.
10286 (realize_face): Argument changed. Caller changed. Remove face
52283633 10287 with the arg former_face_id in advance. Load font for the new face.
9111d4b5
KH
10288 (realize_x_face): Argument changed. Caller changed. For a
10289 multibyte character, share fontset with base_face. For a single
52283633 10290 byte character, make a new realized fontset. Don't load a font here.
9111d4b5
KH
10291 (realize_tty_face): Argument changed. Caller changed.
10292 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
10293 (face_at_buffer_position): Don't check multibyte_p for returning
10294 DEFAULT_FACE_ID.
10295 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
10296 FACE_SUITABLE_FOR_CHARSET_P.
10297 (syms_of_xfaces): Remove code for Qx_charset_registry and
10298 Vface_default_registry.
10299
6c4bfdc0
KH
10300 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
10301 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
10302 (x_per_char_metric): Don't try FONT->default_char. Even if
10303 pcm->width is zero, glyph bits may exist.
10304 (x_encode_char): Always initialize char2b->byte1.
10305 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
52283633 10306 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
9111d4b5
KH
10307 (x_append_glyph): Set glyph->glyph_not_available_p.
10308 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
10309 it->charset. Handle the case that per char metric is not
10310 available. If it->multibyte_p is zero and it->c is a multibyte
10311 character, convert it to a unibyte character.
10312 (struct glyph_string): Delete member `charset'.
10313 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
10314 the case that per char metric is not available correctly.
10315 (x_fill_glyph_string): Handle the case that the specific glyph is
10316 not available correctly.
10317 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
10318 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
10319 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
10320 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
10321 fontset. Don't call FS_LOAD_FONT.
10322
10323 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
10324 (x_create_tip_frame): Likewise.
10325 (Fx_close_connection): Free full_name of font_info.
10326
10327 * fns.c (optimize_sub_char_table): New function.
10328 (Foptimize_char_table): New function.
10329 (syms_of_fns): Defsubr Soptimize_char_table.
10330
b33dd3b0
GM
103312000-03-20 Gerd Moellmann <gerd@gnu.org>
10332
10333 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
10334 only if buffer is displayed in some window.
10335
10336 * xdisp.c (handle_single_display_prop): Initialize local `value'.
10337 (try_window_reusing_current_matrix): Don't call scroll run
10338 function if run's current and desired position are the same;
10339 this prevents cursor flickering.
10340
4e8a9132
SM
103412000-03-19 Stefan Monnier <monnier@cs.yale.edu>
10342
10343 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
10344
10345 * regex.c (RE_STRING_CHAR): New macro.
10346 (GET_CHAR_AFER_2): Remove.
10347 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
10348 (enum re_opcode_t): Remove on_failure_jump_exclusive.
10349 (print_partial_compiled_pattern, re_compile_fastmap)
10350 (re_match_2_internal): Remove on_failure_jump_exclusive.
10351 (regex_compile): Turn optimizable P+ loops into PP*, so that the
10352 optimization only need to work for * (ie. can use of_keep_string_jump).
10353 Remove the special case for .*\n since it is now covered by the general
10354 optimization.
10355 (re_search_2): Don't bother with `room'.
10356 (skip_one_char): New function.
10357 (skip_noops): Simplify since `memory' is not needed any more.
10358 (mutually_exclusive_p): Restructure slightly to use `switch' and
10359 add handling for "all" remaining cases.
10360 (re_match_2_internal): Change on_failure_jump_smart to use
10361 on_failure_keep_string_jump (and redirect the end-of-loop jump)
10362 rather than on_failure_jump_exclusive.
10363
2136fdd4
GM
103642000-03-19 Gerd Moellmann <gerd@gnu.org>
10365
10366 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
10367 number of bits per RGB because it's everywhere used as the depth
10368 of the visual.
10369
10370 * term.c (calculate_costs): Remove code dealing with X frames.
10371
18e21ce8 103722000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
10373
10374 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
10375
d7b511c4
GM
103762000-03-18 Gerd Moellmann <gerd@gnu.org>
10377
10378 * lread.c (read_integer): Unread the last char not consumed.
10379
16b5d424
GM
103802000-03-17 Gerd Moellmann <gerd@gnu.org>
10381
10382 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 10383 which are in the process of being deleted.
16b5d424 10384
1fa28578
GM
103852000-03-16 Gerd Moellmann <gerd@gnu.org>
10386
83488cce
GM
10387 * Makefile.in (mostlyclean): Add `*.core'.
10388 (clean): Add `bootstrap-emacs'.
10389
1fa28578
GM
10390 * lread.c (read_integer): New function.
10391 (read1): Support read syntax #o, #x, #b, #r.
10392
99633e97
SM
103932000-03-15 Stefan Monnier <monnier@cs.yale.edu>
10394
1fa28578
GM
10395 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
10396 make sure POINTER_TO_OFFSET gives the same value before and after
10397 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
10398 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
10399 (debug): Now only active if > 0 rather than if != 0.
10400 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
10401 (print_partial_compiled_pattern): Add missing `succeed' case. Use
10402 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
10403 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
10404 (store_op1, store_op2, insert_op1, insert_op2)
10405 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
10406 (group_in_compile_stack): Move to after its arg's types are
10407 declared and add a prototype.
99633e97 10408 (PATFETCH): Define in terms of PATFETCH_RAW.
52283633 10409 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
99633e97 10410 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
10411 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
10412 indentation of the greedy-op and shy-group code.
99633e97
SM
10413 (at_(beg|end)line_loc_p): Fix argument's types.
10414 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
10415 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
10416 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
10417 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
10418 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
10419 QUIT unconditionally.
99633e97 10420
699238d9
GM
104212000-03-15 Gerd Moellmann <gerd@gnu.org>
10422
10423 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
10424 a sole completion.
10425
10426 * process.c (send_process): Add a hint that the function
10427 can call Lisp code to its comment.
10428
10429 * lread.c (load_dangerous_libraries): New variable.
10430 (Vbytecomp_version_regexp): New variable.
10431 (safe_to_load_p): New function.
10432 (Fload): Handle files not compiled with Emacs specially.
10433 (syms_of_lread): New Lisp variable load-dangerous-libraries.
10434
34e23e5a
GM
104352000-03-14 Gerd Moellmann <gerd@gnu.org>
10436
9c763cca
GM
10437 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
10438
10439 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
10440 support functions only if HAVE_X11R6_XIM is defined.
10441 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
10442
10443 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
10444
10445 * xfns.c (X_I18N_INHIBITED): Don't define.
52283633 10446 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
9c763cca
GM
10447 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
10448
10449 * config.in (HAVE_X_I18N): Moved here from xterm.h.
10450 (HAVE_X11R6_XIM): Define.
10451
10452 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
10453
34e23e5a
GM
10454 * xterm.c (x_term_init): Add support for X resource `synchronous'.
10455 If set, call XSynchronize.
10456
66f0296e
SM
104572000-03-13 Stefan Monnier <monnier@cs.yale.edu>
10458
34e23e5a
GM
10459 * regex.c: Declare a new type `re_char' used throughout the code
10460 for the string char type. It's `const unsigned char' to match the
10461 rest of Emacs. Consistently make sure all pointers to strings use
52283633 10462 it and make sure all pointers into the pattern use `unsigned char'.
66f0296e 10463 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
10464 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
10465 code duplication.
66f0296e
SM
10466
10467 * charset.h (GET_CHAR_AFTER_2): Remove.
10468 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
10469
854a025c
KR
104702000-03-12 Ken Raeburn <raeburn@gnu.org>
10471
10472 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
10473 variable before the invocation of YMF_PASS_LDFLAGS, in case both
10474 of them try to use backquotes.
10475
b9d2c7e2
DL
104762000-03-12 Dave Love <fx@gnu.org>
10477
10478 * unexelf.c: Restore changes of 1999-10-19.
10479 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
10480 fix its type and alignment; copy it from current process.
10481
5e5dff44
GM
104822000-03-12 Gerd Moellmann <gerd@gnu.org>
10483
9b2f3c38
GM
10484 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
10485 has been found. Fix bug not computing timer's predecessor.
10486
427ec082 10487 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
10488 file name.
10489
e1cff360
GM
10490 * window.c (Fsave_window_excursion): Doc fix.
10491
52283633 10492 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
5e5dff44 10493
e411ce4b
EZ
104942000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
10495
10496 * msdos.c (vga_installed): New function, code moved from
10497 dos_set_window_size.
10498 (Qbar, Qcursor_type, outside_cursor): New variables.
10499 (syms_of_msdos): Intern and staticpro them.
10500 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
10501 shape used outside Emacs when called for the first time.
10502 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
10503 cursor shape used outside Emacs.
10504 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
10505 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
10506 type has changed.
10507 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
10508 parameters specify the cursor. Make qreverse a global
10509 variable (renamed to Qreverse).
10510
80460654
GM
105112000-03-09 Gerd Moellmann <gerd@gnu.org>
10512
10513 * fns.c (Fy_or_n_p): Cancel busy-cursor.
10514
95cd4c40
SM
105152000-03-08 Stefan Monnier <monnier@cs.yale.edu>
10516
10517 This is a big redesign of failure-stack and register handling, prompted
10518 by bugs revealed when trying to add shy-groups. Overall, what happened
10519 is that loops are now structured a little differently, groups can be
10520 shy and the code is a little simpler.
10521
10522 * regex.h: Update the copyright.
10523 (RE_SHY_GROUPS): New value.
10524 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
10525 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
10526
80460654
GM
10527 * regex.c (enum re_opcode_t): Remove jump_past_alt,
10528 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
10529 on_failure_jump_(exclusive, loop and smart). Also fix the comment
10530 for (start|stop)_memory since they now only take one argument (the
10531 second has becomes unnecessary).
52283633 10532 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
80460654
GM
10533 (print_compiled_pattern): Use %ld to printf long ints and flush to
10534 make debugging a little easier.
95cd4c40
SM
10535 (union fail_stack_elt): Make the integer unsigned.
10536 (struct fail_stack_type): Add a `frame' element.
10537 (INIT_FAIL_STACK): Init `frame' as well.
10538 (POP_PATTERN_OP): New macro for re_compile_fastmap.
10539 (DEBUG_PUSH, DEBUG_POP): Remove.
10540 (NUM_REG_ITEMS): Remove.
10541 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
10542 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
10543 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 10544 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
52283633
SM
10545 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
10546 New macros.
80460654
GM
10547 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
10548 address pushed is not the destination of the jump but the source
10549 of it instead.
95cd4c40
SM
10550 (NUM_FAILURE_ITEMS): Remove.
10551 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
10552 registers before the actual failure point). Don't hardcode any
10553 meaning for str==NULL anymore.
95cd4c40 10554 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
10555 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
10556 Remove.
95cd4c40
SM
10557 (REG_UNSET_VALUE): Use NULL (why not?).
10558 (compile_range): Remove declaration since it doesn't exist.
10559 (struct compile_stack_elt_t): Remove inner_group_offset.
10560 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
10561 (regex_grow_registers): Remove dead code.
10562 (FIXUP_ALT_JUMP): New macro.
80460654
GM
10563 (regex_compile): Add shy-groups Change loops to use
10564 on_failure_jump_smart&jump instead of
10565 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
10566 initial (dummy_failure_)jump. Remove c1_base (looks like unused
10567 variable to me). Use `jump' instead of `jump_past_alt' and don't
10568 bother with push_dummy_failure in alternatives since it is now
10569 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
10570 emacs' for (re)allocating the stack.
10571 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
10572 from loop when bufp->can_be_null rather than jumping to `done'.
10573 Avoid jumping backwards so as to ensure termination. Use
10574 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
10575 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 10576 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
10577 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
10578 improve mutually_exclusive_p to handle ".+\n".
52283633
SM
10579 (lowest_active_reg, highest_active_reg)
10580 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
80460654
GM
10581 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
10582 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
10583 variables. Push register (in `start_memory') on the stack rather
10584 than storing it in old_reg(start|end). Remove the cycle detection
10585 from `stop_memory', replaced by the use of on_failure_jump_loop
10586 for greedy loops. Add code for the new on_failure_jump_<foo>.
10587 Remove ad-hoc code in `on_failure_jump' to push more registers in
10588 the case of a loop. Take out code from `maybe_pop_jump' into
10589 separate functions and adapt it to the semantics of
10590 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
10591 and push_dummy_failure. Remove dummy_failure handling and
10592 handling of `failures to jump to on_failure_jump' (this last one
10593 was already dead code, it seems).
10594 (group_match_null_string_p, alt_match_null_string_p)
10595 (common_op_match_null_string_p): Remove.
95cd4c40 10596
7397acc4
DL
105972000-03-08 Dave Love <fx@gnu.org>
10598
10599 * config.in: Don't depend on __STDC__ for volatile.
10600 Add POINTER_TYPE, PTR, PROTOTYPES.
10601
10602 * hftctl.c, strftime.c: Use PROTOTYPES.
10603 * eval.c (find_handler_clause): Likewise.
10604
10605 * mem-limits.h: Use POINTER_TYPE.
10606
10607 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
10608 (memory_warnings): Declare using POINTER_TYPE.
10609
5e91ff9e
GM
106102000-03-08 Gerd Moellmann <gerd@gnu.org>
10611
feab4fba
GM
10612 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
10613
52283633 10614 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
25edb08f 10615
5e91ff9e
GM
10616 * xfns.c: Remove obsolete code in #if 0.
10617 (Fx_focus_frame): New function.
10618
a735b7e1
KH
106192000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10620
10621 * coding.c (coding_category_name): Add coding-category-utf-8,
10622 coding-category-utf-16-be, coding-category-utf-16-le.
10623 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
10624 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
10625 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
10626 (detect_coding_utf_8): New function.
10627 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
10628 UTF_16_LOW_SURROGATE_P): New macros.
10629 (detect_coding_utf_16): New function
10630 (detect_coding_mask): When priorities are specified, skip any
10631 categories that have `nil' coding-system. Fix bug of returning
10632 wrong mask when PRIORITIES is specified and detect_coding_XXX()
10633 returns a mask not set in PRIORITIES.
10634 (detect_eol_type_in_2_octet_form): New function.
10635 (detect_eol): selects detect_eol_type_XXX to call according to
10636 cooding->category_idx.
10637 (detect_coding_system): Remove `nil' coding-system in the result.
10638 (Fupdate_coding_systems_internal): Update all coding-categories.
10639
52283633
SM
10640 * coding.h (CODING_CATEGORY_IDX_UTF_8)
10641 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
10642 New macros.
10643 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
10644 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
10645 (CODING_CATEGORY_IDX_UTF_16_LE)
10646 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
10647 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
a735b7e1
KH
10648 (CODING_CATEGORY_MASK_ANY): Include the above macros.
10649 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
10650
9994cc69
GM
106512000-03-07 Gerd Moellmann <gerd@gnu.org>
10652
e9b4e5ff
GM
10653 * doc.c (Fdocumentation_property): If value is not a string,
10654 and doesn't refer to etc/DOC, evaluate it to obtain a string.
10655
f7daf1e1
GM
10656 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
10657 close the display with XtCloseDisplay. This caused a bus error
10658 on OpenWindows.
10659
9994cc69
GM
10660 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
10661 complete but not unique.
10662
4336c705
GM
106632000-03-06 Gerd Moellmann <gerd@gnu.org>
10664
18bb0684
GM
10665 * process.c (send_process): Remove local variable `procname' that
10666 might become invalid when a GC happens. Instead, access the
10667 process name slot directly.
10668
4336c705
GM
10669 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
10670 orig_height if set.
10671
10672 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
10673 orig_height if set.
10674
515d0d0e
EZ
106752000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
10676
10677 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
10678 glyph matrices have been freed.
10679
100b3cbb
GM
106802000-03-05 Gerd Moellmann <gerd@gnu.org>
10681
50df5e5a 10682 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 10683 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
10684
10685 * xfns.c (QCdata): Moved to xdisp.c.
10686
10687 * xdisp.c (QCdata): Moved here from xfns.c.
10688 (syms_of_xdisp): Initialize QCdata.
10689
10690 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
10691
10692 * window.c (coordinates_in_window): Use
10693 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
10694 FRAME_INTERNAL_BORDER_WIDTH.
10695
100b3cbb 10696 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 10697 it is obviously invalid.
100b3cbb
GM
10698
10699 * xterm.c (x_term_init): Create a colormap if not using the
10700 default visual.
10701
10702 * xterm.h (select_visual): Change prototype.
10703
10704 * xfns.c (select_visual): Rewritten. Recognize user-specified
10705 visual classes.
10706 (visual_classes): New variable.
10707
64d739c4
GM
107082000-03-04 Gerd Moellmann <gerd@gnu.org>
10709
10710 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
10711 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
10712 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
52283633 10713 (x_decode_color): Don't handle allocation of white and black specially.
64d739c4
GM
10714 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
10715 XtNcolormap resources.
10716 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
10717 (Fx_create_frame): Initialize color members of x_output structure.
10718 (xpm_load): Pass colormap to XPM lib.
10719
10720 * xfaces.c (x_free_colors): Access colormap of frame using
10721 FRAME_X_COLORMAP. Be paranoid about freeing black and white
10722 when default colormap is used.
10723
10724 * xterm.c (x_term_init): Set Colormap member of x_display_info
10725 structure. Copy colormap if resource `privateColormap' is
10726 specified (PseudoColor only).
10727 (x_setup_relief_color): Access colormap of frame using
10728 FRAME_X_COLORMAP.
10729
10730 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
10731 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
10732
c3cee013
JR
107332000-03-04 Jason Rumney <jasonr@gnu.org>
10734
10735 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
10736 other non-platform-specific equivalents.
64d739c4 10737 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
10738 specific functions and macros as their w32 equivalents where
10739 non-platform-specifics are not available.
10740 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
10741 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
10742 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
10743 (frame_update_line_height): Use macros to access f->output_data.
10744 (defined_color): Remove FIXME comments; fixed.
10745 (x_face_list_fonts, prepare_face_for_display): Put X specifics
10746 into #ifdef blocks. Add WINDOWSNT blocks.
10747 (Fx_list_fonts): Use macros for accessing font data.
10748 (set_lface_from_font_name): Different default fonts for X and
10749 WINDOWSNT.
10750 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
10751 scalable for backward compatibility.
64d739c4 10752 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
10753 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
10754
64d739c4 10755 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
10756 syms_of_w32faces.
10757
10758 * makefile.nt (w32faces.obj): Remove.
10759 (xfaces.obj): Add.
10760
807cc41c
JR
107612000-03-03 Jason Rumney <jasonr@gnu.org>
10762
10763 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
10764 correct parameters.
10765
0007072a
KR
107662000-03-03 Ken Raeburn <raeburn@gnu.org>
10767
10768 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
10769 standard ELF definitions here if the system header does not.
10770
71a6ba55
GM
107712000-03-03 Gerd Moellmann <gerd@gnu.org>
10772
10773 * xterm.c (PER_CHAR_METRIC): Removed.
10774 (x_per_char_metric_1, x_default_char): New functions.
10775 (x_per_char_metric): If font's default char is invalid, return
10776 metrics of a suitably chosen usable default char.
10777 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
10778 char, replace occurrences of unprintable chars with a suitably
10779 chosen usable default char.
71a6ba55 10780
900fa1f1
GM
107812000-03-02 Gerd Moellmann <gerd@gnu.org>
10782
42f55fe0
GM
10783 * xterm.c (note_mouse_highlight): Return quickly if frame's
10784 glyph matrices have been freed.
10785
10786 * dispnew.c (free_glyphs): Block input while freeing matrices.
10787
900fa1f1
GM
10788 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
10789
52283633
SM
10790 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
10791 Use x_free_colors.
900fa1f1
GM
10792
10793 * dispextern.h (x_free_colors): Add prototype.
10794
10795 * xfaces.c (x_free_colors): New function.
10796 (unload_color, free_face_colors): Use it.
10797
2f950292
EZ
107982000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
10799
10800 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
10801
10802 * window.c [MSDOS]: Include msdos.h.
10803
54d04320
DL
108042000-03-02 Dave Love <fx@gnu.org>
10805
10806 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
10807
10808 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
10809 set C_OPTIMIZE_SWITCH for gcc.
10810
0ba93ac4
KH
108112000-03-02 Kenichi Handa <handa@etl.go.jp>
10812
10813 * coding.c (coding_save_composition): Be sure to allocate
10814 composition data area in coding even if there's no composition in
10815 the current run.
10816
a2bc11d4
JR
108172000-03-01 Jason Rumney <jasonr@gnu.org>
10818
10819 * w32term.c: Equivalent changes to those made to xterm.c on
10820 2000-02-25 and 2000-02-24.
10821
10822 * w32fns.c: Equivalent changes to those made to xfns.c on
10823 2000-02-25 and 2000-02-21.
10824
10825 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
10826 correct line-end convention is followed.
10827
10828 * w32menu.c [HAVE_BOXES]: Remove #undef.
10829 (single_keymap_panes): Remove code for simulating checkmarks.
10830 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
10831 Remove code for drawing simulated checkmarks.
10832 (w32_menu_show): make unibyte help string correctly.
10833 (add_menu_item): draw standard Windows checkmarks. Draw radio
10834 buttons as radio buttons if possible.
10835
72d19d75
GM
108362000-03-01 Gerd Moellmann <gerd@gnu.org>
10837
2df636f4
GM
10838 * sysdep.c (start_of_text): Don't define this function for NetBSD
10839 with ELF.
10840
427ec082 10841 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
10842 Don't define.
10843 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
10844 (LINKER): Don't undef if __NetBSD__ is defined.
10845
10846 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
10847
10848 * fileio.c [__NetBSD__]: Define `unix'.
10849
72d19d75
GM
10850 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
10851
ed4d0512
GM
108522000-02-29 Gerd Moellmann <gerd@gnu.org>
10853
50b1039f
GM
10854 * atimer.c (start_atimer): Don't abort when timers are stopped.
10855 (append_atimer_lists): New function.
10856 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
10857 arbitrary lists of stopped and running atimers.
10858
ed4d0512
GM
10859 * atimer.c (cancel_atimer): Handle canceling an atimer when
10860 some timers are stopped.
10861
10862 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
10863 after canceling it.
10864
10865 * fns.c (maybe_resize_hash_table): Handle case of new size
10866 coming out as being the same as old size.
10867
387023ee
JR
108682000-02-27 Jason Rumney <jasonr@gnu.org>
10869
10870 * makefile.nt: Add atimer.h to dependencies.
10871 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
10872 * w32console.c: Only disable window system features for dispextern.h
10873 (initialize_w32_display): Build a display info for the console.
10874 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
10875 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
10876 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
10877 as 2 button mice.
10878 * w32gui.h (struct W32FontStruct): Revert last change after change
10879 to xdisp.c.
10880 * w32menu.c (single_submenu): Set up help string.
10881 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
10882 (w32_dialog_show): Set up help string.
10883 * w32term.c (w32_display_info_for_display): Remove unused function.
10884 (w32_draw_bitmap): Use pre-built bitmaps.
10885 (w32_initialize_display_info): New function to initialize parts of
10886 display info that are common to both GUI and console frames.
10887 (w32_term_init): Use w32_initialize_display_info. Do not set
10888 Vw32_num_mouse_buttons here, as it is not called for console
10889 frames. Build bitmaps for indicating truncated lines etc.
10890 (x_delete_display): Destroy pre-built bitmaps.
10891 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
10892 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
10893
4516715a
DL
108942000-02-27 Dave Love <fx@gnu.org>
10895
10896 * lisp.h: Add a bunch of prototypes.
10897
171ca836
KH
108982000-02-26 Kenichi Handa <handa@etl.go.jp>
10899
10900 * keyboard.c (read_char): Set `usec' correctly.
10901
4013921d
KH
109022000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
10903
10904 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
10905 `lambda', set reg[RRR] to the map index.
10906 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
10907 reg[RRR] to 0. Otherwise, set it to -1.
10908
9244a058
GM
109092000-02-25 Gerd Moellmann <gerd@gnu.org>
10910
2df636f4 10911 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 10912
18e21ce8 109132000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 10914
f43d79c1
GM
10915 * fileio.c (Ffile_symlink_p): If result starts with a `/'
10916 and contains a `:', prepend `/:'.
10917
10918 * window.c (select_window_1): If selected_window is nil,
10919 don't "swap out" the buffer's point.
10920 (Fset_window_configuration): Set selected_window to nil
10921 before calling Fselect_window.
10922 (unshow_buffer): Don't set point in buffer from window's point
10923 if another more recently selected window also shows the buffer.
10924
bed0c171
GM
109252000-02-25 Gerd Moellmann <gerd@gnu.org>
10926
449c3c52
GM
10927 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
10928
f5b58615
GM
10929 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
10930 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
52283633
SM
10931 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
10932 New variables.
f5b58615
GM
10933 (DEFAULT_BUSY_CURSOR_DELAY): New define.
10934 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
10935 (hide_busy_cursor): New functions.
10936 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
10937
10938 * minibuf.c (read_minibuf): Cancel busy-cursor.
10939
10940 * keyboard.c (command_loop_1): Call start_busy_cursor before
10941 Fcommand_execute and cancel_busy_cursor after it.
10942 (timer_check): Remove busy-cursor code.
10943 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
10944 cursor timer.
10945
10946 * process.c (wait_reading_process_input): Remove busy-cursor code.
10947
10948 * eval.c (Fsignal): Call cancel_busy_cursor instead of
10949 Fx_hide_busy_cursor.
10950
10951 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
10952 Remove prototyoes.
10953 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
10954
10955 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
10956
10957 * xterm.c (XTread_socket): Remove busy-cursor code.
10958
4eb8436f
GM
10959 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
10960 (build_frame_matrix_from_leaf_window): Put code handling
10961 glyph row's not being a slice of a frame row in #if 0.
10962 (sync_window_with_frame_matrix_rows): New function.
10963 (frame_row_to_window): New function.
10964 (mirror_line_dance): Handle copies between windows.
10965
3cb65b0e
GM
10966 * lread.c (Fload): Use `xfree' instead of `free'.
10967 (init_obarray): Use `xmalloc' instead of `malloc'.
10968
bed0c171
GM
10969 * window.c (Fset_window_buffer): Set WINDOW to the window
10970 after decoding.
2add4349
GM
10971 (coordinates_in_window): Take frame's internal border width
10972 into account.
bed0c171 10973
42088c12
GM
109742000-02-24 Gerd Moellmann <gerd@gnu.org>
10975
10976 * xterm.c (x_display_and_set_cursor): Display cursor of
10977 non-selected windows depending on the setting of
10978 cursor_in_non_selected_windows.
10979
10980 * xdisp.c (cursor_in_non_selected_windows): New variable.
10981 (syms_of_xdisp): DEFVAR_BOOL it.
10982
d1e103b2
GM
109832000-02-23 Gerd Moellmann <gerd@gnu.org>
10984
723e779c
GM
10985 * data.c (Fstring_to_number): If number is greater than what
10986 fits into an integer, return a float.
10987
d1e103b2
GM
10988 * eval.c (specbind): Remove references to
10989 keyword_symbols_constant_flag.
10990
10991 * data.c (keyword_symbols_constant_flag): Removed.
10992 (Fmakunbound, set_internal, syms_of_data): Remove references to
10993 keyword_symbols_constant_flag.
10994
10995 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
10996
214f877f
KH
109972000-02-23 Kenichi Handa <handa@etl.go.jp>
10998
10999 * syntax.c (multibyte_syntax_as_symbol): New variable.
11000 (syms_of_syntax): Declare it as a Lisp variable.
11001 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
11002 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
11003 nonzero, treat all multibyte characters as symbol.
52283633 11004 (init_syntax_once): Give syntax `word' to all multibyte characters.
214f877f 11005
130adcb7
EZ
110062000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
11007
3cb65b0e 11008 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 11009 a deleted frame.
130adcb7 11010
17cbbf95
GM
110112000-02-21 Gerd Moellmann <gerd@gnu.org>
11012
11013 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
11014
11015 * xfns.c (x_window_to_frame, x_any_window_to_frame)
11016 (x_non_menubar_window_to_frame): Check the busy-cursor window.
11017
beb0bc36
DL
110182000-02-21 Dave Love <fx@gnu.org>
11019
11020 * frame.c (Vmouse_position_function): New variable.
11021 (Fmouse_position): Use it.
11022 (syms_of_frame): Install it.
11023
11024 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
11025
1d92afcd
GM
110262000-02-20 Gerd Moellmann <gerd@gnu.org>
11027
11028 * fileio.c (Finsert_file_contents): Unbind the binding of
11029 standard-output done by temp_output_buffer_setup.
329eed9f
GM
11030
11031 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
11032 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
11033 (specbind, unbind_to): Handle most common case of non-constant
11034 symbol with trivial value specially.
11035
11036 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
11037
18e21ce8 110382000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
11039
11040 * data.c (Fmake_variable_buffer_local): Doc fix.
11041 Init found_for_buffer to 0.
11042 (Fmake_variable_frame_local): If the variable has already
11043 been buffer-local, set the check_frame field.
11044
1d4311c3
EZ
110452000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
11046
11047 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
11048 produced for CODING_MODE_LAST_BLOCK requires.
11049
2dc95ddd
DL
110502000-02-18 Dave Love <fx@gnu.org>
11051
11052 * keyboard.c (echo_keystrokes): Remove declaration.
11053 (Vecho_keystrokes) New variable.
11054 (read_char, record_menu_key, read_key_sequence): Use it to allow
11055 use of float value.
11056 (syms_of_keyboard): Change Vecho_keystrokes declaration.
11057
11058 * lread.c: Undef feature selection macros before defining.
11059
f0930f35
GM
110602000-02-18 Gerd Moellmann <gerd@gnu.org>
11061
11062 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
11063 for symbols other than the symbol in question.
11064
e3d4de90
DL
110652000-02-17 Dave Love <fx@gnu.org>
11066
11067 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
11068
0b378936
GM
110692000-02-17 Gerd Moellmann <gerd@gnu.org>
11070
d621caf7
GM
11071 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
11072
0b378936
GM
11073 * alloc.c (enum mem_type): Compile unconditionally.
11074
3b451f74
EZ
110752000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
11076
11077 * xfaces.c (tty_defined_color): Don't return faulire indication
11078 for unspecified-fg and unspecified-bg pseudo-colors.
11079
10689a01
GM
110802000-02-17 Gerd Moellmann <gerd@gnu.org>
11081
1216f5e4
GM
11082 * alloc.c (mark_object): Don't mark symbol names in pure space.
11083 (gc_sweep): Don't unmark symbol names in pure space.
11084
11085 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
11086 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
11087 [GC_MARK_STACK]: New defines.
427ec082 11088 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
11089 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
11090
11091 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
11092
11093 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
11094 allocate_buffer instead of xmalloc.
11095
11096 * alloc.c (toplevel): Include setjmp.h.
11097 (PURE_POINTER_P): New define.
11098 (enum mem_type) [GC_MARK_STACK]: New enumeration.
11099 (Vdead) [GC_MARK_STACK]: New variable.
11100 (lisp_malloc): Add parameter TYPE, call mem_insert if
11101 GC_MARK_STACK is defined.
11102 (allocate_buffer): New function.
427ec082 11103 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
11104 (free_float) [GC_MARK_STACK]: Set type to Vdead.
11105 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
11106 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
11107 (MEM_NIL) [GC_MARK_STACK]: New define.
11108 (struct mem_node) [GC_MARK_STACK]: New structure.
11109 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
11110 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
11111 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
11112 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
11113 (mark_stack) [GC_MARK_STACK]: New functions.
11114 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
11115 (clear_marks): Removed.
11116 (gc_sweep): Set free conses' car, free floats' type, free
11117 symbols' function to Vdead. Use lisp_free to free buffers.
11118 (init_alloc_once): Initialize Vdead.
11119 (survives_gc_p): Return non-zero for pure objects.
11120
11121 * alloc.c: Add comments throughout the file.
11122
2503c8b1
GM
11123 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
11124 that unblocks alarms.
11125
8389e1e2
GM
11126 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
11127 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
11128 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
11129
10689a01 11130 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 11131
bfc17d18
KH
111322000-02-17 Kenichi Handa <handa@etl.go.jp>
11133
4a09dee0
KH
11134 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
11135 avoid infinite error signaling. Allocate sufficient memory for
11136 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 11137
2b927d02
SM
111382000-02-17 Stefan Monnier <monnier@cs.yale.edu>
11139
11140 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
11141 depends on the previous behavior.
11142
b49cb764
GM
111432000-02-16 Gerd Moellmann <gerd@gnu.org>
11144
11145 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
11146
99e95407
GM
111472000-02-15 Gerd Moellmann <gerd@gnu.org>
11148
11149 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
11150
11151 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 11152 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
11153 write(2).
11154
6ffd3cf7
RS
111552000-02-15 Richard M. Stallman <rms@gnu.org>
11156
11157 * data.c (set_internal): Don't make variable buffer-local
11158 if within a let-binding for the same buffer.
11159 (let_shadows_buffer_binding_p): New function.
11160
11161 * eval.c (specbind): For buffer-local value,
11162 record the current buffer also.
11163 (unbind_to): Cope with that change.
11164
cad53475
GM
111652000-02-15 Gerd Moellmann <gerd@gnu.org>
11166
11167 * window.c (Fsave_window_excursion): Doc fix.
11168
1aa963c8
SM
111692000-02-15 Stefan Monnier <monnier@cs.yale.edu>
11170
11171 * syntax.c (back_comment): Make sure we only consider comment-starters
11172 of the relevant style and return -1 in case of a failure to find the
11173 beginning of the comment.
11174 (Fforward_comment): If back_comment fails, go back to the position just
11175 after the comment-end.
11176 (scan_lists): Add comment describing a very minor bug.
11177
b9b84fd3
SM
111782000-02-14 Stefan Monnier <monnier@cs.yale.edu>
11179
11180 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
11181 `completion-regexp-list' in the docstring.
11182
3a28db80
DL
111832000-02-14 Dave Love <fx@gnu.org>
11184
11185 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
11186
fb4a568d
SM
111872000-02-14 Stefan Monnier <monnier@cs.yale.edu>
11188
11189 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
11190 to Emacs' syntax. Also fix the comment about set/not-set meanings
11191 since Emacs syntax is not the value 0 any more.
11192 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
11193 since it's now part of RE_SYNTAX_EMACS.
11194
1063ebb5
DL
111952000-02-12 Dave Love <fx@gnu.org>
11196
52283633 11197 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
1063ebb5 11198
fb07a302
GM
111992000-02-12 Gerd Moellmann <gerd@gnu.org>
11200
11201 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
11202
aaf2320c
DL
112032000-02-12 Dave Love <fx@gnu.org>
11204
11205 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
11206
11207 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
11208 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
11209 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
11210
11211 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
11212
11213 * s/nextstep.h: Don't define HAVE_ALLOCA.
11214
11215 * config.in: Add vfork bits.
11216
eedf8bde
GM
112172000-02-12 Gerd Moellmann <gerd@gnu.org>
11218
11219 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
11220 unwind function to undo the effect of stopping atimers.
11221
52283633 11222 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
eedf8bde
GM
11223
11224 * atimer.c (stopped_atimers): New variable.
11225 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
11226 New functions.
11227
11228 * atimer.h (stop_other_atimers, run_all_atimers)
11229 (unwind_stop_other_atimers): Add function prototypes.
427ec082 11230
eedf8bde
GM
11231 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
11232
8476c2f8
KR
112332000-02-11 Ken Raeburn <raeburn@gnu.org>
11234
11235 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
11236 library may depend on jpeg.
11237 (atimer.o): Depends on atimer.c.
11238
0e85e4a3
KH
112392000-02-11 Kenichi Handa <handa@etl.go.jp>
11240
11241 * insdel.c (del_range_1): Call update_compositions.
11242 (del_range_both): Call update_compositions just once..
11243
97fa0cc8
DL
112442000-02-10 Dave Love <fx@gnu.org>
11245
11246 * xfns.c (create_frame_xic): Fix initialization of automatic
11247 aggregates for pcc.
11248
25566a3c
KH
112492000-02-09 Kenichi Handa <handa@etl.go.jp>
11250
11251 * ccl.c (CCL_MAKE_CHAR): New macro.
11252 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
11253 registers by CCL_MAKE_CHAR before calling translate_char.
11254 <CCL_TranslateCharacterConstTbl> Likewise.
11255
69da54ba
DL
112562000-02-08 Dave Love <fx@gnu.org>
11257
11258 * lread.c (__EXTENSIONS__): Define.
11259
f7136ee8
GM
112602000-02-08 Gerd Moellmann <gerd@gnu.org>
11261
11262 * puresize.h (BASE_PURESIZE): Increase to 650000.
11263
7768790b
EZ
112642000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11265
11266 * msdos.c (XMenuActivate): Turn off the cursor after displaying
11267 the help message.
11268
38fd211b
EZ
112692000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11270
11271 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
11272 md, mh, mb, mr, and me to the fake termcap entry.
11273
66e4690f
KR
112742000-02-06 Ken Raeburn <raeburn@gnu.org>
11275
11276 * sound.c (sound_cleanup): Don't call device close routine if the
11277 function pointer is null.
11278
a75dfea0
AI
112792000-02-06 Andrew Innes <andrewi@gnu.org>
11280
11281 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
11282 around image definitions and prototypes.
11283 (gamma_correct) [WINDOWSNT]: New prototype.
11284
11285 * w32term.c (x_make_frame_visible): Replace call to
11286 input_poll_signal with poll_for_input.
11287
11288 * window.c [WINDOWSNT]: Include w32term.h.
11289
11290 * xdisp.c [WINDOWSNT]: Include w32term.h.
11291
11292 * makefile.nt: Add dependencies on w32gui.h.
11293 (OBJ1): Include atimer.obj.
11294 ($(BLD)\atimer.obj): New dependency rule.
11295
11296 * w32.c (sigmask): New function (does nothing).
11297 (sigunblock): Ditto.
11298
11299 * frame.c [WINDOWSNT]: Include w32term.h.
11300
11301 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
11302
11303 * lread.c (syms_of_lread): Fix literal newlines.
11304
11305 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
11306 the string constant limit (2048 bytes) in MSVC.
11307 (main): Ditto.
11308
59ddecde
GM
113092000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
11310
52283633 11311 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
59ddecde
GM
11312 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
11313 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
11314 dispatch the event.
11315
07590973
DL
113162000-02-04 Dave Love <fx@gnu.org>
11317
11318 * fileio.c: Remove some unused vars.
11319 (_GNU_SOURCE): Define (for euidaccess).
11320
11321 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
11322
11323 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
11324 gcpro1, gcpro2.
11325 (read_minibuf): Deal with allow_props correctly.
11326
649351f9
EZ
113272000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
11328
11329 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
11330
66e4690f 113312000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
11332
11333 * search.c (compile_pattern): If a cache entry has a nil regexp,
11334 fill in that entry instead of clobbering a previously cached
11335 string regexp.
11336
66e4690f 113372000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
11338
11339 * puresize.h (BASE_PURESIZE): Increase to 610000.
11340
d240a249
GM
113412000-02-02 Gerd Moellmann <gerd@gnu.org>
11342
11343 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
11344 can GC.
11345
ca91fb26
KH
113462000-02-02 Kenichi Handa <handa@etl.go.jp>
11347
25660570
KH
11348 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
11349 instead of incrementing ic directly.
11350 <CCL_WriteExprConst> Likewise.
11351 <ccl_set_expr>: Set ic to jump_address.
11352
ca91fb26
KH
11353 * fileio.c (e_write): Fix the handling of
11354 CODING_FINISH_INSUFFICIENT_SRC.
11355
2ede9689
DL
113562000-02-01 Dave Love <fx@gnu.org>
11357
11358 * editfns.c (Fpropertize): Doc fix.
11359
11360 * process.c (Fstart_process): Doc fix.
11361
11362 * eval.c: Fix various doc strings not to duplicate information
11363 from help-manyarg-func-alist.
11364
52283633 11365 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
2ede9689
DL
11366
11367 * doc.c (Vhelp_manyarg_func_alist): New variable.
11368 (Fdocumentation): Use it.
11369 (syms_of_doc): Define it.
11370
b6680a0e
GM
113712000-01-31 Gerd Moellmann <gerd@gnu.org>
11372
2cb750ba
GM
11373 * xterm.c (xim_open_dpy): Remove unused local variable.
11374
52283633 11375 * emacs.c (USAGE): Use term `display options' instead of `X options'.
74e9213b
GM
11376
11377 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
11378 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
11379
b6680a0e
GM
11380 * fns.c (sweep_weak_table): New function.
11381 (sweep_weak_hash_tables): Use it. Keep on marking until there
11382 is no more change.
11383
994c5afe
GM
113842000-01-30 Gerd Moellmann <gerd@gnu.org>
11385
11386 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
11387 that XTread_socket does not crash by trying to call XNoOp on a
11388 closed display.
427ec082 11389
f00276e3
JR
113902000-01-30 Jason Rumney <jasonr@gnu.org>
11391
11392 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11393 Change selected_frame to SELECTED_FRAME ().
11394 (w32_console_mouse_position): Remove #ifndef MULE from around
11395 `insist' parameter.
11396
11397 * makefile.nt: Remove dosfns.obj.
11398
11399 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
11400
11401 * w32fns.c (w32_defined_color): Check for valid frame before
11402 applying gamma correction. Eliminate dependency on frame elsewhere.
11403 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
11404 (w32_to_x_font): Use resx and resy not height_in and width_in.
11405 (x_to_w32_font): Doc fix.
11406 (xlfd_strip_height): New function to strip and return font height.
11407 (w32_font_match): Compare height separately from rest of xlfd
11408 spec, using xlfd_strip_height.
11409
11410 * w32term.c (w32_term_init): Swap resx and height_in, resy and
11411 width_in. Use w32_defined_color in place of defined_color.
11412
11413 * w32faces.c: Merge more of DOS and X specifics in preparation for
11414 merge with xfaces.c.
11415 (defined_color): Remove FIXME comment.
11416 (tty_color_name): Provide w32-specific function.
11417 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
11418
11419 * w32console.c (turn_on_face, turn_off_face): Removed.
11420 (w32_face_attributes): New function.
11421 (Global_variables): Reduce scope where possible.
11422 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
11423 fill attribute.
11424 (hl_mode): Don't modify text attributes.
11425 (write_glyphs): Don't do anything if len <= 0. Use
11426 w32_face_attributes to get attributes for drawing. Write
11427 terminating codes using char_attr_normal.
11428 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
11429 (update_begin, update_end): Likewise.
11430 (vga_stdcolor_name): New function.
11431 (initialize_w32_display): Remove char_attr_reverse and char_attr.
11432 (Fset_screen_color): Remove char_attr_reverse.
11433
b08e8bb2
GM
114342000-01-29 Gerd Moellmann <gerd@gnu.org>
11435
11436 * xfns.c (xic_set_preeditarea): Take window parameter and
11437 window-relative pixel-positions.
11438
11439 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
11440 is its frame's selected window.
11441 (xim_instantiate_callback): Likewise.
11442
11443 * xfns.c (x_create_im): Removed.
11444 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
11445 (supported_xim_styles): Renamed from supported_styles.
11446 (best_xim_style): Renamed from best_style.
11447 (create_frame_xic): Renamed from xic_create_frame.
11448 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 11449
b08e8bb2
GM
114502000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
11451
11452 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
11453 our frames, call XFilterEvent with 2nd parameter `None'.
11454 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
11455 returning XBufferOverflow.
52283633 11456 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
b08e8bb2
GM
11457 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
11458 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
11459 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
11460 (xim_initialize, xim_close)
11461 [HAVE_X_I18N && HAVE_X11R6]: New functions.
11462 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
11463 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
11464 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
11465
11466 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
11467 and `xim_styles'.
11468 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
11469 `xic_style' and `xic_xfs'.
11470 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
11471 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
11472 (FRAME_XIM): Removed.
11473
11474 * xfns.c (supported_styles): New variable.
11475 (DEFAULT_STYLE, DEFAULT_FONT): New macros
11476 (xic_create_xfontset, best_style, xic_create_frame)
11477 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
11478 (xic_set_xfontset): New functions.
11479
142e109c
DL
114802000-01-28 Dave Love <fx@gnu.org>
11481
11482 * s/irix6-5.h: Revert last change after change to irix5-0.h.
11483
11484 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
11485
b02786f9
GM
114862000-01-28 Gerd Moellmann <gerd@gnu.org>
11487
d060bc9f
GM
11488 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
11489 for *scratch* if it already existed.
11490
b02786f9
GM
11491 * emacs.c (USAGE): New macro.
11492 (main): Use it to display usage information.
11493
2c52d7e4
EZ
114942000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11495
11496 Support for the menu-help feature:
11497
52283633 11498 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
2c52d7e4
EZ
11499
11500 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
11501 part of the line to the termscript file.
11502 (IT_clear_to_end): Clear the entire line, not just its beginning.
11503 (menu_help_message, prev_menu_help_message): New variables.
11504 (IT_menu_make_room): Make room for the help_text member.
11505 (IT_menu_display): New argument disp_help; all callers changed.
11506 If disp_help is non-zero, store the help text of the active menu
11507 item in menu_help_message.
11508 (XMenuAddPane): Initialize the help_text member to NULL.
11509 (XMenuAddSelection): New argument help_text. Store it in the
11510 XMenu structure.
11511 (XMenuActivate): New argument help_callback. If the value of
11512 menu_help_message has changed since the last time, display the
11513 menu help message text while waiting for the mouse to move. Clear
11514 the echo area before exiting.
11515 (XMenuDestroy): Free the help_text member.
11516
ffe0bcd1
GM
115172000-01-27 Gerd Moellmann <gerd@gnu.org>
11518
11519 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
11520 XMenuAddSelection. Pass help callback to XMenuActivate.
11521 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
11522
50dbd23f
EZ
115232000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
11524
11525 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
11526 and EMACS_SET_USECS.
11527
f5941bf8
GM
115282000-01-26 Dave Love <fx@gnu.org>
11529
6c67ddee
DL
11530 * editfns.c (Fchar_after, Fchar_before): Doc fix.
11531
f5941bf8
GM
11532 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
11533 an error may be signalled.
11534
9e49c990
GM
115352000-01-26 Gerd Moellmann <gerd@gnu.org>
11536
fc3cb460
GM
11537 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
11538 LD_SWITCH_SYSTEM inherited from irix5-0.h.
11539
9e49c990
GM
11540 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
11541
d0c037d8
GM
115422000-01-25 Gerd Moellmann <gerd@gnu.org>
11543
11544 * charset.c (Fstring): If there is a multibyte char among
11545 the args, always return a multibyte string.
11546
e12489f9
GM
115472000-01-25 Gerd Moellmann <gerd@gnu.org>
11548
11549 * sysdep.c (sys_select): Turn atimers off and on instead of
11550 recording and restoring old alarm handler
11551
11552 * process.c (toplevel): Include atimer.h.
11553 (create_process_1): Rewritten.
11554 (create_process): Use atimers instead of alarm.
11555 (wait_reading_process_input) [hpux]: Turn atimers off instead
11556 of turning off SIGALRM.
11557 (wait_reading_process_input): Turn off atimers instead off
11558 calling stop_polling.
11559
11560 * emacs.c (main): Call init_atimer.
11561
11562 * keyboard.c (toplevel): Include systime.h and atimer.h.
11563 (polling_for_input): Removed because unused.
11564 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
11565 (poll_timer): New variable.
11566 (poll_for_input, poll_for_input_1): New functions.
11567 (start_polling, stop_polling): Rewritten.
11568
11569 * keyboard.h (polling_for_input): Removed.
427ec082 11570
e12489f9
GM
11571 * atimer.h, atimer.c: New files.
11572
11573 * Makefile.in (obj): Add atimer.o.
11574 (atimer.o): New target.
11575
11576 * blockinput.h (pending_atimers): Add extern declaration.
11577 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
11578
11579 * lisp.h (popup_activated_flag): Add extern declaration.
11580
11581 * xmenu.c (popup_activated_flag): Make externally visible.
52283633 11582 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
e12489f9
GM
11583 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
11584
11585 * xterm.c (toplevel): Include atimer.h.
11586 (toolkit_scroll_bar_interaction): New variable.
11587 (Fxt_process_timeouts): Removed.
11588 (x_process_timeouts): New function.
11589 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
11590 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
11591 (x_make_frame_visible): Call poll_for_input_1 instead of
11592 input_poll_signal. Don't call alarm.
11593 (x_initialize): Install timer calling x_process_timeouts.
427ec082 11594
1e5279b9
DL
115952000-01-24 Dave Love <fx@gnu.org>
11596
6c67ddee 11597 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
11598 Don't use -cckr -- apparently not now necessary.
11599
edf6aeb8
EZ
116002000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
11601
11602 * msdos.c (IT_menu_display): Truncate long menu lines at the right
11603 screen boundary.
11604
9badad41
JR
116052000-01-23 Jason Rumney <jasonr@gnu.org>
11606
11607 * w32fns.c (w32_defined_color): Apply gamma correction before
11608 trying to map to the palette.
11609 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
11610 to w32_clear_rect.
11611
11612 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
11613 here. Callers changed to always pass real device context.
11614 (w32_draw_bitmap): Likewise.
11615 (w32_get_glyph_overhangs): Likewise.
52283633 11616 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
9badad41
JR
11617 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
11618 pfnSetScrollInfo and SetScrollRange.
11619 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
11620 back into MULE characters after decoding them.
11621 (x_get_glyph_face_and_encoding): Likewise.
11622 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
11623 GetCharABCWidthsW fails, since this is defined on Windows 9x.
11624 (x_produce_glyphs): Calculate per char metrics for a character
11625 that we know exists in default font when font_not_found_p is true.
11626
63bd786b
JR
116272000-01-22 Jason Rumney <jasonr@gnu.org>
11628
11629 * makefile.nt (intervals.obj, composite.obj): New modules.
11630 (composite.h): Added as dependency where appropriate.
11631
11632 * w32gui.h (XGCValue): New struct for emulating X GCs.
11633
11634 * w32term.h (XCharStruct): New struct for emulating X.
11635
11636 * w32console.c (turn_on_face, turn_off_face): New functions.
11637 (change_line_highlight): New prototype for new redisplay.
11638 (write_glyphs): Support multibyte text. Support faces.
11639
52283633 11640 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
63bd786b
JR
11641
11642 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
11643 throughout. struct frame * in place of FRAME_PTR.
11644 Skeleton support for images, toolbars, tooltips from xfns.c.
52283633 11645 (Fx_create_frame): Use system default for default scroll bar width.
63bd786b
JR
11646 (w32_get_arg): Renamed from x_get_arg.
11647 (Fx_file_dialog): New function.
11648 (w32_list_fonts): Check cache before asking system.
11649 (Vw32_enable_synthesized_fonts): New variable.
11650 (Vw32_enable_italics): Obsolete, removed.
11651
11652 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
11653 Use SELECTED_FRAME macro.
11654
11655 * w32menu.c: Add skeleton support for help strings on menus.
11656 (add_menu_item): Native checkbox and radio support added, but not
11657 yet enabled due to bugs.
11658 (push_menu_item): Add parameters type, selection and help.
11659 Callers updated.
11660 Formatting changes to reduce unnecessary diffs with xmenu.c.
11661
11662 * w32select.c (Fw32_set_clipboard_data): Update call to
11663 find_charset_in_str.
11664
11665 * w32term.c: Complete rewrite for new redisplay based on new
11666 xterm.c with necessary sections merged back in from old w32term.c.
11667
6ffd3cf7 116682000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
11669
11670 * data.c (set_internal): Further fix in same criterion.
11671
6ffd3cf7 116722000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
11673
11674 * data.c (set_internal): Fix the criteria for whether
11675 to swap out the old cached binding.
11676
60af03f1
DL
116772000-01-19 Dave Love <fx@gnu.org>
11678
11679 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
11680
f9be074f
KH
116812000-01-18 Kenichi Handa <handa@etl.go.jp>
11682
11683 * regex.c (re_compile_fastmap): While checking a range table for
11684 `charset', skip flag bits for a character class correctly.
11685
52b8dbf9
GM
116862000-01-17 Gerd Moellmann <gerd@gnu.org>
11687
d36100c9
GM
11688 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
11689
52283633 11690 * xfns.c (x_window): Call lw_create_widget with new parameter list.
52b8dbf9
GM
11691
11692 * widget.c (EmacsFrameSetCharSize): Change size of children first
52283633 11693 because of problems with main window geometry management under Lesstif.
52b8dbf9
GM
11694
11695 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
11696 MENU_ITEMS_ITEM_.*.
11697 (MENU_ITEMS_ITEM_HELP): New enumerator.
11698 (push_menu_item): Add parameter HELP. Record help in menu_items.
11699 (single_menu_item, single_submenu, list_of_items): Call
11700 push_menu_item with new parameter.
11701 (single_submenu): Set help string in widget value.
11702 (menu_highlight_callback): New function.
11703 (set_frame_menubar): Call lw_create_widget with new
11704 parameter list.
11705 (xmenu_show, xdialog_show): Ditto.
11706
3139018f
GM
117072000-01-13 Gerd Moellmann <gerd@gnu.org>
11708
11709 * sound.c (Fplay_sound): Improve doc string.
11710
83c8f461
RS
117112000-01-11 Richard M. Stallman <rms@gnu.org>
11712
11713 * lisp.h (set_internal): Enter the new arg.
11714
11715 * eval.c (specbind): Record buffer-local variables specially,
11716 indicating which buffer's binding was saved.
11717 (unbind_to): Restore buffer-local variables specially
11718 in the proper buffer.
11719
11720 * data.c (set_internal): New arg BUF.
427ec082 11721
83c8f461
RS
11722 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
11723 * data.c (Fset): Pass new arg to set_internal.
11724 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 11725
1fab1775
GM
117262000-01-11 Gerd Moellmann <gerd@gnu.org>
11727
52283633 11728 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
1fab1775 11729
83c8f461 117302000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
11731
11732 * minibuf.c (Ftry_completion): Doc fix.
11733
7a85e4df
GM
117342000-01-11 Gerd Moellmann <gerd@gnu.org>
11735
11736 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
11737 vector, too.
11738
a970dae4
AS
117392000-01-11 Andreas Schwab <schwab@suse.de>
11740
11741 * coding.c (code_convert_region): Initialize total_skip.
11742
c65d14ee
DL
117432000-01-08 Dave Love <fx@gnu.org>
11744
11745 * eval.c (Fuser_variable_p): Check customizability too.
11746
834938d2
GM
117472000-01-07 Gerd Moellmann <gerd@gnu.org>
11748
11749 * minibuf.c (Fcompleting_read): Doc fix.
11750
e0303cd6
GM
117512000-01-05 Gerd Moellmann <gerd@gnu.org>
11752
8a26744b
GM
11753 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
11754 -L /usr/local/lib.
11755
e0303cd6
GM
11756 * xfns.c (x_create_im): New function to set IM and IC of a frame.
11757 Check that input style is supported before trying to create an
11758 IC for it.
11759 (x_window): Call x_create_im.
427ec082 11760
2e471eb5
GM
117612000-01-04 Gerd Moellmann <gerd@gnu.org>
11762
560a7bd2
GM
11763 * xfns.c (current_gif_memory_src): New variable.
11764 (gif_load): Record the address of the current memory source
11765 in current_gif_memory_src.
11766 (gif_read_from_memory): Use current_gif_memory_src.
11767
f9ee84a3
GM
11768 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
11769 macros statement form.
11770
d1299cde
GM
11771 * sound.c (struct sound): Renamed from struct sound_file.
11772 (struct sound): Add members `data' and `header_size'.
11773 (enum sound_attr): Add SOUND_DATA.
11774 (current_sound, current_sound_device): Variables renamed from
11775 sound_file and sound_device.
11776 (parse_sound): Parse :data.
11777 (parse_sound): Handle sound data in strings.
11778 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 11779 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
11780 needed header size.
11781 (wav_play, au_play): Play sounds from string data.
11782
2e471eb5
GM
11783 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
11784
11785 * lisp.h: Add prototype for allocate_string_data.
11786
52283633 11787 * alloc.c (Fgarbage_collect): Return number of live and free strings.
2e471eb5
GM
11788
11789 * alloc.c (mark_buffer): Remove code in #if 0.
11790 (gc_sweep): Ditto.
11791 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
11792 (strings_consed): New variable.
11793 (allocate_string): Set it.
11794 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
11795 (Fmemory_use_counts): Return strings_consed. Use Flist.
11796
11797 * alloc.c: General cleanup in comments etc. Remove conditional
11798 compilation for `standalone'.
11799
11800 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
11801
11802 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
11803 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
11804 (DONT_COPY_FLAG): Removed.
11805 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
11806 (struct sdata, struct sblock): New
11807 (struct string_block): Rewritten.
11808 (STRINGS_IN_STRING_BLOCK): New macro.
11809 (oldest_sblock, current_sblock, total_strings, total_free_strings)
11810 (large_sblocks, string_blocks, string_free_list): New variables.
11811 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
11812 (init_strings): Rewritten.
11813 (allocate_string, allocate_string_data, compact_small_strings)
11814 (free_large_strings, sweep_strings): New functions.
11815 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
11816 (struct string_block_head, current_string_block)
11817 (first_string_block, large_string_blocks, STRING_FULLSIZE)
11818 (STRING_PAD): Removed.
11819 (make_uninit_multibyte_string, make_pure_string): Rewritten.
11820 (Fgarbage_collect): Don't set mark bit in large strings.
11821 (mark_object): Mark strings differently. Mark symbol names
11822 differently.
11823 (survives_gc_p): Test marked strings differently.
427ec082 11824 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
11825 symbol names.
11826 (compact_strings): Removed.
11827
42608ba8
EZ
118282000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
11829
11830 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
11831 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
11832
e0a09e1a
KH
118332000-01-04 Kenichi Handa <handa@etl.go.jp>
11834
dd9f0750 11835 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 11836 in a non-empty buffer.
dd9f0750 11837
3c0f3b15 11838 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 11839
44cd3ae5
GM
118402000-01-03 Gerd Moellmann <gerd@gnu.org>
11841
11842 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
11843 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
11844
11845 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
11846
c182a70f
EZ
118472000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11848
11849 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
11850 need to test for MSDOS frames.
11851
24480d5b
EZ
118522000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11853
11854 * dosfns.c (unspecified_colors): Remove.
11855 (msdos_stdcolor_idx): Use global variables unspecified_fg and
11856 unspecified_bg.
11857 (msdos_stdcolor_name): Return strings for unspecified fore- and
11858 back-ground colors.
11859
11860 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 11861 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
11862 (tty_color_name): Return Lisp strings for unspecified fore- and
11863 back-ground colors.
11864 (Finternal_set_lisp_face_attribute): Remove the special treatment
11865 for Qunspecified_{f,b}g.
52283633 11866 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
24480d5b 11867
047f434a
GM
118682000-01-03 Gerd Moellmann <gerd@gnu.org>
11869
11870 * xdisp.c (reseat_at_next_visible_line_start): Position before
11871 newline only if ending up on a newline.
11872 (next_element_from_ellipsis): Return success. Handle case of
52283633 11873 displaying no ellipsis. Fix case of ellipsis defined in display table.
047f434a
GM
11874 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
11875 returns 0.
11876
d684c676
EZ
118772000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
11878
11879 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
11880 (Fcolor_supported_p): Renamed from face-color-supported-p.
11881
5fe1d139
EZ
118822000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11883
11884 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
11885 list of colors renamed to tty-defined-color-alist.
11886 (tty_color_name): Pass the frame to tty-color-by-index.
11887 (realize_tty_face): tty-color-alist is now a function which
11888 accepts the frame as argument.
11889
52283633 11890 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
5fe1d139 11891
816be8b8
EZ
118922000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11893
11894 * term.c (insert_glyphs): Pass glyph, not &glyph, to
11895 encode_terminal_code.
11896
b635321e
EZ
118972000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
11898
11899 * dispnew.c (mode_line_string): Support termcap frames as well.
11900
9b784e96
GM
119012000-01-01 Gerd Moellmann <gerd@gnu.org>
11902
27189709
GM
11903 * syntax.c (Fforward_word): Undo previous change.
11904
11905 * editfns.c (Fconstrain_to_field): Don't constrain if
11906 inhibit-field-text-motion is non-nil.
11907 (Fline_beginning_position): Undo previous change.
11908 (Fline_end_position): Ditto.
11909
11910 * syntax.c (Fforward_word): Notice field boundaries only if
11911 inhibit-field-text-motion is nil.
11912
11913 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
11914
11915 * editfns.c (Vinhibit_field_text_motion): New variable.
11916 (inhibit-field-text-motion): New DEFVAR_LISP.
11917 (Fline_beginning_position, Fline_end_position): Notice field
11918 boundaries only if inhibit-field-text-motion is nil.
11919
45158a91
GM
11920 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
11921 All calls adjusted.
11922 (x_build_heuristic_mask): Likewise.
11923 (xbm_load_image_from_file): Change error output.
11924 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
11925 (gif_load, gs_load, x_kill_gs_process): Ditto.
11926
9b784e96
GM
11927 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
11928 color indices when accessing raster pixels.
63cec32f
GM
11929 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
11930 one of :file or :data.
11931 (enum pbm_keyword_index): Add PBM_DATA.
11932 (pbm_format): Add :data.
11933 (pbm_image_p): Allow either :file or :data.
11934 (pbm_read_file): New function.
11935 (pbm_scan_number): Rewritten to read from string.
11936 (pbm_load): Support :data.
9b784e96 11937
2cb085db 11938See ChangeLog.8 for earlier changes.
6922b018
KH
11939
11940;; Local Variables:
49b3bd82 11941;; coding: iso-2022-7bit
6922b018 11942;; End: