(server-switch-buffer): Choose a window on a visible
[bpt/emacs.git] / src / ChangeLog
CommitLineData
99012074
AI
12000-12-21 Andrew Innes <andrewi@gnu.org>
2
3 * w32term.c (x_update_begin): Regenerate the palette here, rather
4 than for each window.
5
6 * w32xfns.c (select_palette): Avoid calling SelectPalette if
7 palette is NULL, since this corrupts memory! Also get
8 display_info reference from frame.
9
29ef7d2d
JR
102000-12-21 Jason Rumney <jasonr@gnu.org>
11
12 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
13
14 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
15 to avoid returning without releasing it.
3e27fa1f 16
3f9d67a6
KH
172000-12-21 Kenichi Handa <handa@etl.go.jp>
18
587fc3f9
KH
19 * keymap.c (push_key_description): Don't convert eight-bit-control
20 and eight-bit-graphic to multibyte character.
21
3f9d67a6
KH
22 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
23 generic character and CODE1 is nil, return the smallest character
24 in CHARSET.
25
774ba8c9
DL
262000-12-20 Dave Love <fx@gnu.org>
27
28 * s/osf5-0.h (NSIG): Don't redefine.
29
88416888
SM
302000-12-20 Stefan Monnier <monnier@cs.yale.edu>
31
32 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
33 excluding menu-bar and tool-bar.
34 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
35 (menu_item_p): Remove.
36 (where_is_internal_1): Don't ignore menu-items.
37
a6426c6f
GM
382000-12-20 Gerd Moellmann <gerd@gnu.org>
39
03ff8aab
GM
40 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
41 into account.
42
43 * window.c (make_window): Initialize window's min_hscroll.
44 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
45 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
46 to zero.
47 (struct saved_window): New member min_hscroll.
48 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
49 (Fset_window_configuration): Set window's min_hscroll.
50 (save_window_save): Save window's min_hscroll.
51 (compare_window_configurations): Compare min_hscroll values.
52
53 * window.h (struct window): New member min_hscroll.
54
55 * keyboard.c (echo_prompt): Prevent a compiler warning.
56
8de4aaf8
GM
57 * xdisp.c (try_cursor_movement): Fix last change. The real
58 condition is that PT is at the end of the row, and should
59 be displayed at the start of the next row.
60
3f7e3031
GM
61 * xdisp.c (try_cursor_movement): If we end on a partially
62 visible line, end we already decided to scroll, return -1.
63
a6426c6f
GM
64 * dispextern.h (ensure_frame_matrix): Add prototype.
65
66 * window.c (delete_window, Fsplit_window)
67 (Fset_window_configuration): Call ensure_frame_matrix.
68
69 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
70 functions.
71 (adjust_frame_glyphs_for_frame_redisplay): If display has been
72 completed, call fake_current_matrices instead of marking frame
73 garbaged.
74
57fa2774
JR
752000-12-20 Jason Rumney <jasonr@gnu.org>
76
77 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
78
d925df90
EZ
792000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
80
81 * fns.c (Frequire): Doc fix.
82
7b93a85b
GM
832000-12-19 Gerd Moellmann <gerd@gnu.org>
84
71d4497a
GM
85 * window.c (window_scroll_pixel_based): Don't use
86 move_it_vertically.
87
c74e645b
GM
88 * dispnew.c (direct_output_for_insert): Fix check for mini-window
89 currently displaying a message.
90
7b93a85b
GM
91 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
92 xterm.h.
93 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
94
90d97e64
AI
952000-12-18 Andrew Innes <andrewi@gnu.org>
96
97 * w32.c (w32_strerror): New function.
98
99 * w32.h (w32_strerror): New extern.
100
101 * w32fns.c (Fw32_shell_execute): Use it.
102
91c9e6ce
GM
1032000-12-18 Gerd Moellmann <gerd@gnu.org>
104
105 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
106
6f4745e2
EZ
1072000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
108
109 * msdos.c (IT_set_face): Obey inverse_video.
110
c9e088ce
KH
1112000-12-18 Kenichi Handa <handa@etl.go.jp>
112
113 * dired.c (directory_files_internal): Always return decoded filenames.
114
c3695f5f
GM
1152000-12-18 Gerd Moellmann <gerd@gnu.org>
116
52d8e4ff
GM
117 * xterm.c (x_connection_closed): Prevent being called recursively
118 because of an error condition in XtCloseDisplay.
119
62be9979
GM
120 * xdisp.c (init_iterator): If noninteractive, and the frame's
121 face cache is null, make one.
122
5f7a1890
GM
123 * xfns.c (show_busy_cursor): Check for live frames more
124 thoroughly.
125
c3695f5f
GM
126 * process.c (wait_reading_process_input): Check for pending
127 input when running timers.
128
78555fbe
EZ
1292000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
130
131 * msdos.c (IT_write_glyphs): Compute the glyph face from
132 str->face_id.
133
b2b36264
KH
1342000-12-18 Kenichi Handa <handa@etl.go.jp>
135
136 * process.c (read_process_output): Don't run a filter if the code
137 decoder produces nothing but carryover.
138
9c543fbf
AI
1392000-12-17 Andrew Innes <andrewi@gnu.org>
140
141 * w32.c (sys_rename): Only check errno against EEXIST, and not
142 EACCES, when determining whether rename failed because the target
143 exists. This was resulting in indefinite looping on Windows 9x if
144 the source file was locked by another process.
145
146 * w32fns.c (Ffile_system_info): New function.
147 (syms_of_w32fns): Defsubr it.
148
10c2b5a8
GM
1492000-12-17 Gerd Moellmann <gerd@gnu.org>
150
b0228ace
GM
151 * window.c (coordinates_in_window): Fix computation for
152 position on vertical line between mode lines.
153
10c2b5a8
GM
154 * xfns.c (unwind_create_frame): Return t if frame was deleted.
155 Don't alter tip_frame or tip_window.
156 (unwind_create_tip_frame): Set tip_frame to nil only if frame
157 was deleted.
158
c844a81a
GM
159 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
160 Don't alter tip_frame or tip_window.
161 (unwind_create_tip_frame): Set tip_frame to nil only if frame
162 was deleted.
163
6c825f8e
EZ
1642000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
165
166 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
167 be consistent with the doc string. Reported by NAKAJIMA Mikio
168 <minakaji@osaka.email.ne.jp>.
169
af4bb4c8
KH
1702000-12-16 Kenichi Handa <handa@etl.go.jp>
171
172 * xfaces.c (Vface_ignored_fonts): New variable.
173 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
174 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
175
8062e53a
GM
1762000-12-15 Gerd Moellmann <gerd@gnu.org>
177
e87b8809
GM
178 * dispnew.c (update_window): Detect pending input every nth line
179 updated, i.e. do it depending on real work done, and not on the
180 vpos of the line.
181
182 * xterm.c (expose_window): Don't redraw the window that's
183 currently being updated.
184
a6768cc5
GM
185 * window.c (Fset_window_point): Remove test for
186 cursor_in_non_selected_windows.
187
4ea7fdca
GM
188 * lread.c (read1): Recognize end of file after `\\'.
189
8062e53a
GM
190 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
191 not unwind_create_frame.
192
bb7959c1
GM
1932000-12-15 Dave Love <fx@gnu.org>
194
195 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
196 bcopy & al.
197
198 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
199
ced04c42
KH
2002000-12-15 Kenichi Handa <handa@etl.go.jp>
201
c5443913
KH
202 * coding.c (setup_coding_system): Clear all members of the struct
203 coding_system at first.
bc137305
KH
204 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
205 argument.
206 (code_convert_region): Don't override coding->src_multibyte and
207 coding->dst_multibyte.
c5443913 208
ced04c42
KH
209 * fns.c (Fmd5): Docstring improved.
210
c2d7f289
MB
2112000-12-15 Miles Bader <miles@gnu.org>
212
213 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
214 are actually marked as mode-lines; otherwise use
215 estimate_mode_line_height.
216
9d7d9263
GM
2172000-12-14 Gerd Moellmann <gerd@gnu.org>
218
219 * editfns.c (Fformat): Prevent a buffer overrun when the format
220 specifies a precision.
221
7cf0153a
EZ
2222000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
223
224 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
225 argument is outside the range [2..3].
226
1de0f662
AI
2272000-12-14 Andrew Innes <andrewi@gnu.org>
228
229 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
230 nothing to do. Bind inhibit-quit.
231 (tip_frame): Make it a Lisp_Object.
232 (x_create_tip_frame): Set tip_frame after it has been added to
233 Vframe_list.
234 (Fx_show_tip): Don't set tip_frame here.
235 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
236 variables.
237 (unwind_create_frame, unwind_create_tip_frame): New functions.
238 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
239 while a frame is only partially constructed.
240
241 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
242 (x_free_frame_resources): New function.
243 (x_destroy_window): Use it.
244
02387dcc
GM
2452000-12-14 Gerd Moellmann <gerd@gnu.org>
246
247 * xfns.c (Fx_backspace_delete_keys_p): New function.
248 (syms_of_xfns): Defsubr it.
249
250 * config.in (HAVE_XKBGETKEYBOARD): Add.
251
0544ef49
KH
2522000-12-14 Kenichi Handa <handa@etl.go.jp>
253
98d62747
KH
254 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
255 Always store string in multibyte representation in echobuf.
256 (echo_char): Always store string in multibyte representation in
257 echobuf.
258 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
259 (read_key_sequence): Adjusted for the change of echo_prompt.
260
a20193cd
KH
261 * fns.c (Fmd5): Docstring improved.
262
191b83b6
KH
263 * lisp.h (detect_coding_system): Prototype adjusted.
264
0544ef49
KH
265 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
266 (detect_coding_emacs_mule, detect_coding_iso2022,)
267 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
268 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
269 argument MULTIBYTEP. Callers changed.
270 (detect_coding_mask, detect_coding_system): New argument
271 MULTIBYTEP. Callers changed.
1da1bb05
KH
272 (decode_coding_string): Set coding->src_multibyte and
273 coding->dst_multibyte before calling detect_coding and detect_eol.
274 Update them after some coding system is detected.
275
d5b3eb1b
SM
2762000-12-13 Stefan Monnier <monnier@cs.yale.edu>
277
278 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
279
280 * keyboard.c (menu_bar_items, tool_bar_items):
281 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
282
f7f8bb69
GM
2832000-12-13 Gerd Moellmann <gerd@gnu.org>
284
19f71add
GM
285 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
286 New variables.
287 (unwind_create_frame, unwind_create_tip_frame): New functions.
288 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
289 while a frame is only partially constructed.
290
291 * xterm.h (x_free_frame_resources): Declare.
292
293 * xterm.c (x_free_frame_resources): New function.
294 (x_destroy_window): Use it.
295
e10da507
GM
296 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
297 don't interrupt the update for pending input initially, i.e.
298 update at least some lines.
299
300 * keyboard.c (do_mouse_tracking): Make externally visible.
301
d5b3eb1b 302 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
303
304 * xfns.c (gray_bitmap_bits): Declare `char *'.
305
90aa2856
GM
3062000-12-12 Gerd Moellmann <gerd@gnu.org>
307
308 * xdisp.c (display_tool_bar_line): Make sure that tool bar
309 lines start with a relief line.
310
a308c9cd
DL
3112000-12-12 Dave Love <fx@gnu.org>
312
313 * window.c (Fdisplay_buffer): Doc fix.
314 (Fwindow_list): Remove unused var.
315
316 * buffer.h (mmap_set_vars): Declare.
317
318 * window.h (Fset_window_point): Declare.
319
d575011f
EZ
3202000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
321
bf6282d2 322 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
323 (IT_note_mouse_highlight): Initialize portion to -1. Remove
324 unused variable `area'. When looking for a row under (X,Y), give
325 up if some of the previous rows is not enabled.
326
ecf4d726
GM
3272000-12-12 Gerd Moellmann <gerd@gnu.org>
328
2ebf6139
GM
329 * window.c (Fset_window_point): If displaying cursors in windows
330 other than the selected window, make sure redisplay updates
331 other windows to show the new value of point in the window.
332
333 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
334
bfdb75ee
GM
335 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
336 the buffer is the sole visible buffer when in the mini-buffer.
337
4fdbd809
GM
338 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
339 Bind `inhibit-read-only' to t.
340 (unwind_with_echo_area_buffer): Use AREF.
341
c0006262
GM
342 * xfns.c (Fx_hide_tip): Simplified.
343
e9a59cad
GM
344 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
345 GC_MAKE_GCPROS_NOOPS instead of `1'.
346
ecf4d726
GM
347 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
348
e5959a9a
GM
3492000-12-11 Gerd Moellmann <gerd@gnu.org>
350
a3642e49
GM
351 * xfns.c (Fx_hide_tip): Fix last change.
352
44b5a125
GM
353 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
354 nothing to do. Bind inhibit-quit.
355 (tip_frame): Make it a Lisp_Object.
356 (x_create_tip_frame): Set tip_frame after it has been added to
357 Vframe_list.
358 (Fx_show_tip): Don't set tip_frame here.
359
360 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
361
362 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
363 Lisp_Object.
364
365 * dispextern.h: Change external declaration of tip_frame.
366
d990421f
GM
367 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
368 return an empty string.
369
4db87380
GM
370 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
371 of the window's update_mode_line flag, since the former is set by
372 force-mode-line-update, not the latter. This makes
373 column-number-mode slightly faster.
374
e5959a9a
GM
375 * xdisp.c (try_window_id) <all changes above window start>:
376 Set the cursor.
377
169fe44e
GM
3782000-12-11 Paul Eggert <eggert@twinsun.com>
379
380 * config.in (HAVE_FTELLO): Remove.
381 (HAVE_FSEEKO): Add.
382 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
383 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
384 HAVE_FTELLO.
385 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
386 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
387
59ec59ae
MB
3882000-12-11 Miles Bader <miles@gnu.org>
389
390 * window.c (displayed_window_lines): Don't round up when
391 converting empty space at bottom to lines.
ff904dd6
MB
392 Handle non-newline-terminated final lines properly.
393 (Fwindow_text_height): New function (used to be in lisp).
394 (syms_of_window): Initialize it.
59ec59ae 395
42ebfa31
SM
3962000-12-09 Stefan Monnier <monnier@cs.yale.edu>
397
398 * syntax.c (scan_lists): Check that the right quote char has the
399 right Sstring syntax when jumping over strings.
400 (init_syntax_once): Use Smax rather than 13.
401
5cdb3cf3
MB
4022000-12-09 Miles Bader <miles@gnu.org>
403
404 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
405 with PARTIALLY, inverting the sense.
406 (window_scroll_pixel_based): Scroll partially visible lines into
407 place if we hit the beginning or end of the buffer.
a12167c5
MB
408 (displayed_window_lines): Don't include partially visible lines.
409 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 410
842b2a94
GM
4112000-12-08 Gerd Moellmann <gerd@gnu.org>
412
413 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
414
415 * tparam.c (tparam1): Change the way buffers are reallocated to be
416 portable and less obfuscated.
417
418 * termcap.c (tgetent): Change the way buffers are reallocated to
419 be portable and less obfuscated.
420
421 * macros.c (store_kbd_macro_char): Change the way buffers are
422 reallocated to be portable and less obfuscated.
423
424 * lread.c (read1): Change the way buffers are reallocated to be
425 portable and less obfuscated.
426
427 * doc.c (Fsubstitute_command_keys): Change the way buffers
428 are reallocated so that it is portable.
429
137cad7c
EZ
4302000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
431
432 * dosfns.c (Ffile_system_info): New function.
433 (syms_of_dosfns): Defsubr it.
434
5c7f629c
SM
4352000-12-07 Stefan Monnier <monnier@cs.yale.edu>
436
437 * alloc.c (gc_sweep): Add comment.
438
959e647d
GM
4392000-12-07 Gerd Moellmann <gerd@gnu.org>
440
28fcb7dc
GM
441 * sound.c (vox_configure): Change order of ioctls. Don't
442 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
443 Ignore errors when changing volume.
444 (vox_close): Don't reset the device.
445
926b7e5e
GM
446 * process.c (read_process_output): Make sure the process marker's
447 position is valid when the process buffer is changed in
448 after-change functions. W3 does that.
449
959e647d
GM
450 * xfns.c (x_free_gcs): New function.
451
452 * xterm.h (x_free_gcs): Add prototype.
453
454 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
455 freeing GCs here.
456
457 * xterm.c (x_destroy_window): Call x_free_gcs so that
458 resources of non-toolkit X windows will be freed.
459
478ea067
AI
4602000-12-07 Andrew Innes <andrewi@gnu.org>
461
462 * w32fns.c (xlfd_charset_of_font): Fix last change.
463
fbee3231
DL
4642000-12-06 Dave Love <fx@gnu.org>
465
67292061
DL
466 * md5.h (__P): Don't define -- it comes from config.h.
467
fbee3231
DL
468 * strftime.c: Change some #if foo to #ifdef foo.
469
4ee87dbb
AI
4702000-12-06 Andrew Innes <andrewi@gnu.org>
471
472 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
473
474 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
475 argument.
476 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
477 (w32_list_fonts): Don't choke if pattern doesn't specify a
478 codepage.
479
9765b4a4
GM
4802000-12-06 Gerd Moellmann <gerd@gnu.org>
481
d285b373
GM
482 * alloc.c (gc_sweep): Prevent symbols read during loadup
483 from being freed.
484
384333ee
GM
485 * xdisp.c (underlying_face_id): New function.
486 (handle_face_prop, face_before_or_after_it_pos): Use it
487 to determine the face ``under'' a string. Let strings inherit
488 the face of the buffer under them.
489
490 * xfaces.c (face_at_string_position): Update function comment.
491
d4b72d58
GM
492 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
493 matrix if the window's left position has changed; we need to
494 redraw it in this case.
495
496 * dispextern.h (struct glyph_matrix): Add member window_left_x.
497
e1d05387
GM
498 * window.c (coordinates_in_window): Check mouse on mode-line or
499 header-line first.
500
eb1b0c74
GM
501 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
502 advertized by the function documentation.
503
d94d636f
GM
504 * window.c (syms_of_window): Doc fix.
505
3887b449
GM
506 * sound.c (vox_configure): Set volume for left and right channel.
507 (sound_cleanup): Return nil.
508
efc8f57a
GM
509 * xdisp.c (move_it_by_lines): Fix paren typo.
510
9765b4a4
GM
511 * xterm.c (x_load_font): Don't use the font's max_bounds for
512 computing the height of the font. If max_bounds' ascent or
513 descent are greater than the font's ascent or descent, this means
514 glyphs overlap, which should be handled now by redisplay.
515
6529ed87
GM
516 * window.c (Veven_window_heights): New variable.
517 (syms_of_window): DEFVAR_LISP it.
518 (Fdisplay_buffer): Check Veven_window_heights before evening the
519 window heights.
520
0eb2ecde
MB
5212000-12-06 Miles Bader <miles@gnu.org>
522
523 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
524 update `default-frame-alist' instead of setting no frame parameters.
525
03d7a167
KH
5262000-12-06 Kenichi Handa <handa@etl.go.jp>
527
528 * composite.c (update_compositions): Fix typo (use the correct
529 variable).
530
5f8803c2
JR
5312000-12-05 Jason Rumney <jasonr@gnu.org>
532
533 * md5.h: Remove underscores from function declarations.
534 (__attribute__, __alignof__) [!__GNUC__]: Define.
535
536 * md5.c: Delay include of md5.h until after namespace cleaning.
537
c28a075b
JR
538 * makefile.w32-in (fns.o): Depend on md5.h
539 (md5.o): New target.
540 (sunfns.o): Remove.
541
542 * makefile.nt: Likewise.
543
ff3c7056
JR
5442000-12-05 Jason Rumney <jasonr@altavista.net>
545
546 * w32term.c (expose_area): Complete last change.
547
0c21eeeb
KR
5482000-12-05 Ken Raeburn <raeburn@gnu.org>
549
550 * minibuf.c: Include intervals.h.
551
f201d732
JR
5522000-12-05 Jason Rumney <jasonr@gnu.org>
553
554 * w32term.c (x_produce_glyphs): If a font for a component of
555 a composition is not found, use 1 pixel dot ascent and 0 dot
556 descent value to avoid displaying terribly tall empty boxes.
557 (expose_area): Pass x-coordinate relative to the exposed
558 area to x_draw_glyphs instead of a window-relative coordinate.
559
21999ab9
GM
5602000-12-05 Gerd Moellmann <gerd@gnu.org>
561
4d2036e4
GM
562 * xdisp.c (next_element_from_ellipsis): Save face before selective
563 display in saved_face_id, and set face_before_selective_p.
564 (reseat_1): Reset face_before_selective_p.
565 (append_space, extend_face_to_end_of_line): If iterator's
566 face_before_selective_p is set, use the face from saved_face_id.
567 (extend_face_to_end_of_line): For tty frames, make sure to
568 use the right face id when producing spaces at the end of
569 the line.
570
571 * dispextern.h (struct it): Add face_before_selective_p.
572
52be17cc
GM
573 * keyboard.c (record_char): Don't record identical help-echo
574 events in recent_keys.
575
8a4f36cc
GM
576 * xterm.c [USE_X_TOOLKIT]: Close the display.
577 (xim_close_dpy): Handle case that the display has been closed.
578
57d6e381
GM
579 * xterm.c (x_destroy_window): Reset the frame's X window after
580 destroying it.
581
21999ab9
GM
582 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
583 variable window_width.
584 (line_draw_cost): Fix code skipping over spaces at the end of the
585 line when must_write_spaces is not set.
586 (scrolling_window): Fix code inserting runs in list of all runs.
587
91372bb7
KH
5882000-12-05 Kenichi Handa <handa@etl.go.jp>
589
590 * coding.c (setup_coding_system): Be sure to initialize
591 coding->category_idx.
592
6c083b4c
GM
5932000-12-04 Gerd Moellmann <gerd@gnu.org>
594
0c68ce6f
GM
595 * xterm.c (PER_CHAR_METRIC): Removed because not used.
596
6452929e
GM
597 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
598 area to x_draw_glyphs instead of a window-relative coordinate.
599
d7f31e22
GM
600 * fileio.c (auto_save_error): Add parameter ERROR. Show the
601 error in the message.
602
ae18aa3b
GM
603 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
604 timer after having read a key. It's not good for code reading
605 several keys in a loop, like an input method.
606
caa15ef7
GM
607 * fileio.c (Finsert_file_contents): When VISIT is t, don't
608 record undo information for format-decode.
609
610 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
611 current buffer is read-only, not if it isn't.
612
6c083b4c
GM
613 * keyboard.c (record_char): Record `help-echo' input events
614 in recent_keys only if they display some help. Don't record
615 `help-echo' events as macro char.
616
caa15ef7
GM
6172000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
618
619 * editfns.c (save_excursion_restore): Don't move point
620 in another window if it is showing the wrong buffer.
621 Avoid the call to Fwindow_live_p, for speed.
622
5a13529b
KH
6232000-12-04 Kenichi Handa <handa@etl.go.jp>
624
e225faa7
KH
625 * xfaces.c (struct font_name): New member registry_priority.
626 (split_font_name): Initialize the above member to zero.
627 (concat_font_list): New function.
628 (font_list): Include fonts of all alternative registries.
629 (FONT_POINT_SIZE_QUANTUM): New macro.
630 (better_font_p): Ignore point size difference less than
631 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
632
e89648b4
KH
633 * xterm.c (x_produce_glyphs): If a font for a component of
634 a composition is not found, use 1 pixel dot ascent and 0 dot
635 descent value to avoid displaying terribly tall empty boxes.
636
5a13529b
KH
637 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
638
d7935eb6
KR
6392000-12-03 Ken Raeburn <raeburn@gnu.org>
640
641 * coding.h (code_convert_string1): Declare.
642
643 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
644
645 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
646 Declare.
647
0dd5e255
JR
6482000-12-02 Jason Rumney <jasonr@gnu.org>
649
650 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
651 correctly for single byte character case.
652 (w32_per_char_metric): Do not try to make any assumptions about
653 the metrics of BDF fonts.
250cfece
JR
654 (x_estimate_mode_line_height): If `mode-line' face
655 hasn't a font, use that of the frame, as drawing glyphs
656 does.
657 (note_mouse_highlight): Change the cursor shape on the vertical
658 border between windows [not enabled].
659
660 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
661
662 * w32fns.c (Fx_create_frame): Reintroduce the call to
663 face-set-after-frame-defaults.
664 (Vx_window_horizontal_drag_shape): New variable.
665 (syms_of_xfns): DEFVAR_LISP it.
666 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
667 enabled].
0dd5e255 668
b5d8d2ca
GM
6692000-12-02 Simon Josefsson <simon@josefsson.org>
670
671 * fns.c (Fmd5): Use a different logic to decide the coding system
672 to use.
673
674 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
675
fbb87147
EZ
6762000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
677
678 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
679 NULL.
680
447e9da0
GM
6812000-12-01 Gerd Moellmann <gerd@gnu.org>
682
7708ced0
GM
683 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
684 height for YNegative.
685 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
686 height; also see comment there.
687
447e9da0
GM
688 * window.c (coordinates_in_window): Handle computations for
689 positions on the vertical bar and fringes differently for
690 window-system frames. Consider some pixels near the vertical bar
691 as on the bar if the frame doesn't have vertical scroll bars.
692 Associate positions between mode or header lines with the
693 right window, the left one.
694
86d1db20
JR
6952000-12-01 Jason Rumney <jasonr@gnu.org>
696
697 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
698
699 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
700 invalid frame.
701
a1d58e5b
GM
7022000-12-01 Gerd Moellmann <gerd@gnu.org>
703
704 * window.c (struct saved_window): Add members orig_top and
705 orig_height.
706 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
707 (save_window_save, Fset_window_configuration): Save/restore
708 window's orig_top and orig_height.
709
89c609af
JR
7102000-12-01 Jason Rumney <jasonr@gnu.org>
711
4d177746 712 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 713
89c609af
JR
714 * w32fns.c (x_set_cursor_color): Fix last change.
715
eccc05db
GM
7162000-11-30 Gerd Moellmann <gerd@gnu.org>
717
31b6671b
GM
718 * xdisp.c (echo_area_display): If cursor is in the echo area, make
719 sure that the next redisplay displays the minibuffer, so that
720 the cursor will be replaced with what the minibuffer wants.
721
eccc05db
GM
722 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
723 #ifndef instead of using #if.
724 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
725 USE_TOOLKIT_SCROLL_BARS is defined.
726
162de750
JR
7272000-11-30 Jason Rumney <jasonr@gnu.org>
728
729 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
730 x_display_cursor.
731
693c4692
GM
7322000-11-30 Gerd Moellmann <gerd@gnu.org>
733
734 * fns.c (Fmd5): Doc fix.
735
b5d8d2ca 7362000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
737
738 * fns.c (Fmd5): New function.
739 (syms_of_fns): Defsubr md5.
740
741 * Makefile.in (obj): Add md5.o
742
b02cd40b
GM
7432000-11-30 Gerd Moellmann <gerd@gnu.org>
744
edfb795e
GM
745 * md5.h, md5.c: New files, taken from glibc.
746
df3aedcf
GM
747 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
748
b02cd40b
GM
749 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
750 hasn't a font, use that of the frame, as drawing glyphs
751 does.
752
8b5176cd
SM
7532000-11-29 Stefan Monnier <monnier@cs.yale.edu>
754
755 * eval.c (Frun_hooks): Allow 0 arguments.
756
346598f1
GM
7572000-11-29 Gerd Moellmann <gerd@gnu.org>
758
f9396e03
GM
759 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
760 is over the menu bar widget, say it's not on the frame.
761
4a967a9b
GM
762 * xfns.c (Fx_create_frame): Reintroduce the call to
763 face-set-after-frame-defaults.
764
346598f1
GM
765 * eval.c (Fsignal): Reset handling_signal.
766
222456a1
JR
7672000-11-28 Jason Rumney <jasonr@gnu.org>
768
769 * w32menu.c (add_menu_item): Reset menu item text when changing
770 type to radio button.
771
8049ddc0
GM
7722000-11-28 Gerd Moellmann <gerd@gnu.org>
773
346598f1 774 * xselect.c: Update copyright.
f4f4ee4d 775
bebe4a2c
GM
776 * window.c (coordinates_in_window): If on a mode or header line,
777 but sufficiently close to its start, return ``on vertical
778 border''. This gives us a way to drag windows horizontally when
779 using toolkit scroll bars.
780
781 * xterm.c (note_mouse_highlight): Change the cursor shape
782 on the vertical border between windows.
783
784 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
785
786 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
787 (syms_of_xfns): DEFVAR_LISP it.
788 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
789
8d2c2642
GM
790 * textprop.c (text_read_only): New function.
791 (verify_interval_modification): Use it instead of signaling
792 `text-read-only'. This makes it easier to catch this error
793 with a breakpoint.:
794
8049ddc0
GM
795 * xdisp.c (forward_to_next_line_start): Check for newlines,
796 not end of line, which includes CR.
797
5a2bae6c
KH
7982000-11-28 Kenichi Handa <handa@etl.go.jp>
799
800 * coding.c (Ffind_coding_systems_region_internal): Be sure to
801 include no-conversion.
802
ae31f84d
JR
8032000-11-27 Jason Rumney <jasonr@gnu.org>
804
805 * w32fns.c (w32_load_system_font): Always mark font as double byte
806 if codepage is unicode.
807
67f1cf4c
GM
8082000-11-27 Gerd Moellmann <gerd@gnu.org>
809
4a74d071
GM
810 * xdisp.c (forward_to_next_line_start): If already on a newline,
811 just consume it to avoid unintended skipping over invisible text
812 below.
813
902ae620
GM
814 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
815 `vertical-line', `mode-line' and `header-line' events.
816
817 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
818 of a character, a TAB for instance. This is easier than to set
819 up the iterator exactly, and it's not a frequent case, so the
820 additional effort wouldn't really pay off.
821
c1e279c2
AC
8222000-11-26 Andrew Choi <akochoi@i-cable.com>
823
67f1cf4c 824 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
825 init_window_once.
826
a609568a
JR
8272000-11-25 Jason Rumney <jasonr@gnu.org>
828
48b21762
JR
829 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
830 to window_from_coordinates should be pixel coordinates.
831
a609568a
JR
832 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
833 redisplay handles them properly.
834
a658d039
MB
8352000-11-25 Miles Bader <miles@gnu.org>
836
837 * indent.c (compute_motion): Keep pos_byte in sync with pos.
838
d3416cca
JR
8392000-11-24 Jason Rumney <jasonr@gnu.org>
840
841 * w32.c (init_environment): Set LANG environment variable based on
842 locale settings, if not set.
843
844 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
845 making tool bar smaller. When clearing the frame, also
846 clear current matrices. Clear frame when tool bar disappears.
847 Don't use more lines for the tool-bar than is available.
848 (x_change_window_heights): New function.
849
ba193890
GM
8502000-11-24 Gerd Moellmann <gerd@gnu.org>
851
2be8f184
GM
852 * xdisp.c (init_from_display_pos): If POS says we're already after
853 an overlay string ending at POS, make sure to pop the iterator
854 because it will be in front of that overlay string. When POS is
855 ZV, we've thereby also ``processed'' overlay strings at ZV.
856
ba193890
GM
857 * xfaces.c (lface_from_face_name): Function comment fix.
858
1862a24e
MB
8592000-11-24 Miles Bader <miles@gnu.org>
860
861 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
862 apply `mode-line-inverse-video' -- zero means force display using
863 the default face, non-zero means display using the specialized face.
864 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
865
f07fa1b8
KH
8662000-11-23 Kenichi Handa <handa@etl.go.jp>
867
868 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
869 hard coded `4'.
870
2bcdf662
EZ
8712000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
872
873 * coding.c (decode_coding_emacs_mule): Fix the case of
874 CODING_EOL_LF, which used uninitialized value of c.
875
ba8299ff
SM
8762000-11-23 Stefan Monnier <monnier@cs.yale.edu>
877
878 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
879
f4117c4d
GM
8802000-11-22 Gerd Moellmann <gerd@gnu.org>
881
03e757c1
GM
882 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
883 buffer object.
884
f4117c4d
GM
885 * frame.h (struct frame): Replace desired_tool_bar_items,
886 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 887 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
888
889 * frame.c (make_frame): Change initialization of tool bar
890 items accordingly.
891
892 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 893 Change references to members deleted from struct frame to use the
f4117c4d
GM
894 new ones.
895
896 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 897 references to members deleted from struct frame to use the new
f4117c4d
GM
898 ones.
899
900 * dispnew.c (update_frame): Do nothing with frame's tool bar
901 items.
902
903 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
904
905 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 906 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
907 from struct frame to use the new ones.
908
f8e2f3f2
MB
9092000-11-23 Miles Bader <miles@gnu.org>
910
911 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
912 the face's inverse-video attribute, rather than overriding it.
913
60e8e0a5
GM
9142000-11-22 Gerd Moellmann <gerd@gnu.org>
915
916 * xfns.c (x_set_tool_bar_lines): Clear internal border when
917 making tool bar smaller.
918
92dd1b29
DL
9192000-11-22 Dave Love <fx@gnu.org>
920
921 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
922
e672fdce
MB
9232000-11-22 Miles Bader <miles@gnu.org>
924
3a17d6cc
MB
925 * keyboard.c (Vminibuffer_message_timeout): New variable.
926 (command_loop_1): Use it to determine message timeout.
927 (syms_of_keyboard): Initialize it.
928
60e8e0a5 929 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 930
e9655d81
KH
9312000-11-22 Kenichi Handa <handa@etl.go.jp>
932
933 * sysdep.c: Move the code for declaring h_errno after #include
934 <netdb.h>.
935
77270fac
GM
9362000-11-21 Gerd Moellmann <gerd@gnu.org>
937
cd913aae
GM
938 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
939 the menu bar when the tooltip is unmapped.
940
77270fac
GM
941 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
942 sole visible buffer when we're currently in the mini-buffer, and
943 give up if so.
944
556635d6
JR
9452000-11-21 Jason Rumney <jasonr@gnu.org>
946
947 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
948 put on the clipboard.
949 (Fw32_get_clipboard_data): Compare data on clipboard with saved
950 copy of what Emacs last put there. If they are the same, do not
951 use the clipboard copy to avoid losing data due to coding
952 conversions.
953
5b7bde64
MB
9542000-11-22 Miles Bader <miles@gnu.org>
955
956 * minibuf.c (Vminibuffer_prompt_properties): New variable.
957 (syms_of_minibuf): Initialize it.
958 (read_minibuf): Add properties from Vminibuffer_prompt_properties
959 to prompt, don't make read-only.
960
ff23e1dd
GM
9612000-11-21 Gerd Moellmann <gerd@gnu.org>
962
3c64f287
GM
963 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
964 BEFORE/AFTER_POTENTIAL_GC.
965
7aaf4388
GM
966 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
967
f5f47add 968 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 969
ff23e1dd
GM
970 * term.c, cm.c: Don't try to include termcap.h; see comment there.
971
37c35586
KH
9722000-11-21 Kenichi Handa <handa@etl.go.jp>
973
974 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
975 ... #endif scope.
976
ff9ab414
GM
9772000-11-20 Gerd Moellmann <gerd@gnu.org>
978
c51d2b5e
GM
979 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
980 screen supports it.
981
29a01b72
GM
982 * s/gnu-linux.h: Don't use `#cpu'.
983
09dfdf85
GM
984 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
985 not defined in mman.h.
986
ff9ab414
GM
987 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
988 variables.
989 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
990 and store an index in the XClientMessageEvent. Storing a
991 Lisp_Object or pointer can fail on a 64 bit system, since X only
992 transfers 32 bits.
993 (x_scroll_bar_to_input_event): Get the window from
994 scroll_bar_windows.
995
81459ac9
DL
9962000-11-20 Dave Love <fx@gnu.org>
997
998 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
999
56c13ae6
GM
10002000-11-20 Gerd Moellmann <gerd@gnu.org>
1001
1002 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
1003
495a6df3
KH
10042000-11-20 Kenichi Handa <handa@etl.go.jp>
1005
2bcf3714
KH
1006 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
1007 by WIDTH.
1008
495a6df3
KH
1009 * alloc.c (make_string): Fix previous change. Be sure to make
1010 unibyte string correctly.
1011
6d950f4c
GM
10122000-11-19 Gerd Moellmann <gerd@gnu.org>
1013
39b39373
GM
1014 * window.c (Fwindow_list): Change parameter list to be XEmacs
1015 compatible.
1016 (window_list_1): New function.
1017 (window_loop): Use it instead of Fwindow_list.
1018
b95b34e5
GM
1019 * sysdep.c (emacs_ospeed): New variable.
1020 (toplevel): Don't declare ospeed extern.
1021 (init_baud_rate): Use emacs_ospeed instead of ospeed.
1022
1023 * termcap.c (ospeed): Remove.
1024 (tputs) [!emacs]: Remove unused code.
1025 (tgetent): Avoid a compiler warning.
1026
e83dc917
GM
1027 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
1028 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 1029 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
1030
1031 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
1032 removed.
1033 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
1034 Take the X display as additional argument.
1035 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
1036 `Widget' is a pointer type that's not easily stored in Lisp_Object
1037 form in a portable way.
1038
6d950f4c
GM
1039 * dispnew.c (update_text_area): Fix last change.
1040
e47306e6
GM
10412000-11-18 Gerd Moellmann <gerd@gnu.org>
1042
fb3cd89b
GM
1043 * xdisp.c: Use BINDING_STACK_SIZE throughout.
1044
1045 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
1046 clear current matrices.
1047
edaa9aed
GM
1048 * buffer.c (mmap_enlarge): Don't print a message on stderr
1049 if mapping new memory at the end of the existing region fails.
1050
e47306e6
GM
1051 * dispnew.c (update_text_area): Don't skip over equal glyphs
1052 when the last current glyph overlaps the glyph to its right.
1053
509633e3
MB
10542000-11-18 Miles Bader <miles@gnu.org>
1055
1056 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
1057 lines that *end* with "..." too (that's the most common case!).
1058
d392e9c5
GM
10592000-11-18 Gerd Moellmann <gerd@gnu.org>
1060
67988445
GM
1061 * xdisp.c (resize_mini_window): Temporarily change to the
1062 mini-window's buffer if necessary.
1bfdbe43 1063
d392e9c5
GM
1064 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
1065 the tooltip obscures less text under it.
1066
10672000-11-17 Gerd Moellmann <gerd@gnu.org>
1068
1069 * puresize.h (BASE_PURESIZE): Increase to 700000.
1070
92bb977f
JR
10712000-11-18 Jason Rumney <jasonr@gnu.org>
1072
1073 * w32term.c (w32_draw_bitmap): Use face to set colors.
1074
26fbf20b
DL
10752000-11-17 Dave Love <fx@gnu.org>
1076
1077 * lread.c (Fload): Fix #ifdef for pcc.
1078
100b593b
GM
10792000-11-17 Gerd Moellmann <gerd@gnu.org>
1080
1081 * xdisp.c (pos_visible_p): Compute the default character height
1082 differently.
1083
a288d0d1
GM
10842000-11-16 Gerd Moellmann <gerd@gnu.org>
1085
cac94de6
GM
1086 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
1087 knowing the line's height; use the default font's height in that
1088 case.
1089
a288d0d1
GM
1090 * xfaces.c (weight_table): Add `demi' with the same meaning as
1091 `demibold'.
1092
981fb6f6
KH
10932000-11-16 Kenichi Handa <handa@etl.go.jp>
1094
2cca872d 1095 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
1096 (clear_glyph_row): Delete local static variable null_row.
1097
e5fa381b
JR
10982000-11-15 Jason Rumney <jasonr@gnu.org>
1099
1100 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
1101 (w32_alloc_lighter_color): Use new brightness calculations from
1102 xterm.c. Scale delta to be in the range expected by W32.
1103 (w32_draw_relief_rect): Use frame relief colors.
1104
8e42f043
GM
11052000-11-15 Gerd Moellmann <gerd@gnu.org>
1106
6d133d1f
GM
1107 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
1108 (Qinhibit_default_face_x_resources): New variable.
1109 (syms_of_frame): Initialize it.
1110 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
1111
1112 * xdisp.c (pos_visible_p): Improve function comment.
1113
1114 * lisp.h (BINDING_STACK_SIZE): New macro.
1115
8e42f043
GM
1116 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
1117 reading the directory if readdir returns null and errno is EAGAIN
1118 or EINTR.
1119
e8c87124
SM
11202000-11-14 Stefan Monnier <monnier@cs.yale.edu>
1121
1122 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
1123 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
1124 Set amount_to_scroll to max of dx and scroll_step so that
1125 scroll-conservatively doesn't defeat scroll-step>1.
1126 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
1127 scroll-conservatively for line-at-a-time scrolling.
1128
5f0c971d
GM
11292000-11-14 Gerd Moellmann <gerd@gnu.org>
1130
1131 * window.c (Fpos_visible_in_window_p): Call pos_visible with
1132 extra argument.
1133
1134 * xdisp.c (current_mode_line_height, current_header_line_height):
1135 New variables.
1136 (init_xdisp): Initialize them.
1137 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
1138 and use exact mode line heights if it is set.
1139
1140 * lisp.h (pos_visible_p): Change prototype.
1141
1142 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
1143 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
1144 and current_header_line_height first.
1145 (current_mode_line_height, current_header_line_height): Declare
1146 extern.
1147
d7361edf
MB
11482000-11-14 Miles Bader <miles@lsi.nec.co.jp>
1149
1150 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
1151 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
1152 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
1153
ee5e440a
MB
11542000-11-14 Miles Bader <miles@gnu.org>
1155
1156 * xterm.c (x_alloc_lighter_color): Include an additive component
1157 too for dark colors, because FACTOR isn't enough.
1158 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
1159 New macros.
1160
5ca020fc
GM
11612000-11-13 Gerd Moellmann <gerd@gnu.org>
1162
1163 * keyboard.c (show_help_echo): Call message3_nolog with number of
1164 bytes in the help string as 2nd parameter, instead of the number
1165 of characters.
1166
9d348294
MB
11672000-11-13 Miles Bader <miles@gnu.org>
1168
1169 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
1170 (Fload): Use new openp return protocol.
1171 Don't try to use Vload_source_file_function to load .elc files.
1172 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
1173 openp return protocol.
1174 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
1175
1729bb9a
KH
11762000-11-11 Kenichi Handa <handa@etl.go.jp>
1177
4e677396
KH
1178 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
1179
1180 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
1181 Defined these macros.
1182 (NLIST_STRUCT): Avoid re-defining it.
1183
1729bb9a
KH
1184 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
1185 -I/usr/contrib/X11R6/include.
1186 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
1187
a82fe213
JR
11882000-11-10 Jason Rumney <jasonr@gnu.org>
1189
1190 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
1191
1192 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
1193 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
1194
1195 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
1196 (Qw32_charset_vietnamese): New symbol.
1197 (xlfd_charset_of_font): New function.
1198 (w32_load_system_font): Use it.
1199 (x_to_w32_charset): Use Fassoc to find charset info. Special case
1200 when Vw32_charset_info_alist is nil to ensure default face always
1201 has font. Use Fcar and Fcdr for safety.
1202 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
1203 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
1204 pseudo-codepages for special cases.
1205 (w32_to_x_font): New parameter to allow charset portion to be
1206 specified where there is many to one mapping. Callers changed.
1207 (w32_list_fonts): Avoid listing fonts that won't display.
1208
52d89894
GM
12092000-11-10 Gerd Moellmann <gerd@gnu.org>
1210
1211 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
1212 (font_list_1): Renamed from font_list.
1213 (font_list): New function, trying alternative registries from
1214 Vface_alternative_font_registry_alist.
1215 (Finternal_set_alternative_font_registry_alist): New function.
1216 (syms_of_xfaces): Initialize and Staticpro
1217 Vface_alternative_font_registry_alist. Defsubr
1218 Finternal_set_alternative_font_registry_alist.
1219
651cd3da
KR
12202000-11-09 Ken Raeburn <raeburn@gnu.org>
1221
1222 * lisp.h (Flooking_at): Declare.
1223
388ac098
GM
12242000-11-09 Gerd Moellmann <gerd@gnu.org>
1225
778fbc46
GM
1226 * dired.c (directory_files_internal): Fix a braino.
1227
388ac098
GM
1228 * dired.c (directory_files_internal): Add missing GCPRO's.
1229 Some cleanup.
1230
ecaedde1
GM
12312000-11-08 Gerd Moellmann <gerd@gnu.org>
1232
f7eb32aa
GM
1233 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
1234 (resize_mini_window): Return quickly if Vresize_mini_window is
1235 nil. Don't return if Vmax_mini_window_height is nil.
1236
1237 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
1238 (syms_of_xdisp): Initialize them.
1239 (resize_mini_window): Act according to the setting of
1240 Vresize_mini_window.
1241 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
1242
ecaedde1
GM
1243 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
1244 scroll bar widget after configuring it, so that it will appear at
1245 the right position from the start.
1246 (XTredeem_scroll_bar): Cleaned up.
1247
3747ef2c
KH
12482000-11-08 Kenichi Handa <handa@etl.go.jp>
1249
1250 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 1251 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
1252 division by two.
1253
1254 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
1255
03391420
DL
12562000-11-07 Dave Love <fx@gnu.org>
1257
7758f1c1 1258 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
1259
1260 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
1261
b5de343d
GM
12622000-11-07 Gerd Moellmann <gerd@gnu.org>
1263
acad3c0b
GM
1264 * window.c (Fset_window_configuration): Don't try to preserve
1265 point in the current buffer, if that buffer is displayed in more
1266 than one window.
1267
b5de343d
GM
1268 * xfaces.c (lookup_named_face): If default face isn't realized,
1269 try to realize it. Return -1 if not successful.
1270 (Fx_list_fonts): Handle case that face cannot be determined.
1271 (Fface_font): Likewise.
1272
cdb1fe49
GM
12732000-11-06 Gerd Moellmann <gerd@gnu.org>
1274
1275 * window.c (displayed_window_lines): Detect partially
1276 visible lines at the bottom correctly.
1277
d3a67486
SM
12782000-11-06 Stefan Monnier <monnier@cs.yale.edu>
1279
1280 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
1281 when ensuring we don't do visit in indirect buffer.
1282
ff8dd5d5
KH
12832000-11-06 Kenichi Handa <handa@etl.go.jp>
1284
1285 * composite.h (compose_chars_in_text): Add prototype.
1286
1287 * composite.c (Vcomposition_function_table): New variable.
1288 (Qcomposition_function_table): New variable.
1289 (run_composition_function): Call
1290 Vcompose_chars_after_function with three arguments.
1291 (compose_chars_in_text): New function.
1292 (syms_of_composite): Modified the doc-string of
1293 Vcompose_chars_after_function. Declare composition-function-table
1294 as a lisp variable, and initialize it.
1295
1296 * xfns.c (x_encode_text): Suppress producing escape sequences for
1297 composition.
1298
1299 * xselect.c: Include composite.h.
1300 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
1301
d1145f85
AI
13022000-11-05 Andrew Innes <andrewi@gnu.org>
1303
1304 * w32term.c (x_produce_glyphs): Fix typo in enum name.
1305
1306 * sysdep.c (read_input_waiting): Remove extraneous argument to
1307 read_socket_hook.
1308
1309 * w32fns.c (Fx_server_version): Include w32_build_number in the
1310 return list.
1311
1312 * w32heap.c (w32_build_number): New variable.
1313 (cache_system_info): Set it.
1314
1315 * w32heap.h (w32_build_number): Add extern.
1316
1317 * emacs.c (syms_of_emacs): Update docstring for
1318 system-configuration, to reflect the actual usage on MS-Windows.
1319
e85ee976
GM
13202000-10-31 Gerd Moellmann <gerd@gnu.org>
1321
26dcb81b
GM
1322 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
1323 process idle timers while waiting for another event.
1324
0a894bad
GM
1325 * dispnew.c (update_frame_line): Handle case where spaces in
1326 the default face are colored.
1327
e85ee976
GM
1328 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
1329 window height hasn't changed.
1330
01b220b6
JR
13312000-10-31 Jason Rumney <jasonr@gnu.org>
1332
1333 * w32term.c (x_produce_glyphs): Handle composite characters.
1334 (x_draw_glyph_string_foreground)
1335 (x_draw_composite_glyph_string_foreground): Restore old font.
1336
4e6b7204
MB
13372000-10-31 Miles Bader <miles@lsi.nec.co.jp>
1338
1339 * minibuf.c (read_minibuf): Reset the undo history just before
1340 starting the recursive-edit.
1341
d4358b37
GM
13422000-10-30 Gerd Moellmann <gerd@gnu.org>
1343
563f68f1
GM
1344 * xfaces.c (menu_face_change_count): New variable.
1345 (Finternal_set_lisp_face_attribute): Increment it for changes
1346 of the `menu' face.
1347 (realize_basic_faces): Reflect changes in the `menu' faces
1348 in menu bars.
1349
82e274d1
GM
1350 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
1351 dy obtained from the iterator's y-position after moving from
1352 scroll_margin_pos to PT; see comment there.
1353
0dbf9fd2
GM
1354 * xdisp.c (safe_eval_handler): Call add_to_log.
1355
906b3b14
GM
1356 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
1357 is not a symbol or string.
1358
d4358b37
GM
1359 * xdisp.c (echo_area_display): Don't perform a display update from
1360 inside redisplay. The update will happen anyway at the end of
1361 redisplay, and it can confuse redisplay (GC messages while
1362 redisplaying, for instance.)
1363
70c825df
SM
13642000-10-30 Stefan Monnier <monnier@cs.yale.edu>
1365
cf9b4b0b
SM
1366 * xrdb.c (x_load_resources): Use the class name in the defaults.
1367
70c825df
SM
1368 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
1369 (regex_compile): Catch bogus \(\1\).
1370
a1d34b1e
GM
13712000-10-30 Gerd Moellmann <gerd@gnu.org>
1372
cae71efe
GM
1373 * xterm.c (x_alloc_nearest_color): Fix last change to compare
1374 RGB values.
1375
35efe0a1
GM
1376 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
1377 we have a color cache, check that the cached color equals the
1378 allocated color. If not, clear the color cache.
1379
1d3baf74
GM
1380 * window.c (displayed_window_lines): Change buffers if necessary.
1381 Fix computation of displayed lines.
1382
a1d34b1e
GM
1383 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
1384 update_menu_bindings to DEFVAR_BOOL.
1385
70737ea9
KH
13862000-10-30 Kenichi Handa <handa@etl.go.jp>
1387
70c825df 1388 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 1389
fa0cb51d
KH
1390 * puresize.h (BASE_PURESIZE): Increase to 680000.
1391
70737ea9
KH
1392 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
1393
0e4c08e8
JR
13942000-10-29 Jason Rumney <jasonr@gnu.org>
1395
1396 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
1397
1398 * w32term.c (w32_bdf_per_char_metric): Negate descent.
1399 (w32_cache_char_metrics): Handle possibility that 'x' does not
1400 exist in a BDF font.
1401 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
1402
1403 * w32bdf.h (bdffont): Add nchars.
1404
1405 * w32bdf.c (set_bdf_font_info): Set it.
1406 (w32_BDF_TextOut): Swap byte order of double byte characters.
1407 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
1408
45b84006
EZ
14092000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
1410
1411 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
1412 don't override the colors in frame's param_alist, unless they are
1413 unspecified.
1414
1415 * term.c (reassert_line_highlight): If inverse_video is non-zero,
1416 reverse the effect of the highlight flag.
1417
caf9deee
KR
14182000-10-27 Ken Raeburn <raeburn@gnu.org>
1419
1420 * window.h (Fwindow_live_p): Declare.
1421
ae0b9b46
KR
1422 * undo.c (record_delete): Check that last_undo_buffer is really a
1423 buffer before applying XBUFFER to it.
1424
1425 * keymap.c (where_is_internal): Pass lisp object, not integer, to
1426 Faref.
1427
02067692
SM
14282000-10-27 Stefan Monnier <monnier@cs.yale.edu>
1429
1430 * lisp.h (KEYMAPP): New macro.
1431 (get_keymap): Remove.
1432 (get_keymap_1): Rename get_keymap.
1433
1434 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
1435
1436 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
1437
1438 * xmenu.c (single_submenu): Use KEYMAPP.
1439 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
1440 Use KEYMAPP rather than Fkeymapp.
1441
1442 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
1443
1444 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
1445 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
1446 Use KEYMAPP rather than Fkeymapp.
1447 (single_submenu): Use KEYMAPP.
1448 (w32_menu_show, w32_dialog_show): Use TRUE.
1449
1450 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
1451
1452 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
1453 (Fkeymapp): Use KEYMAPP.
1454 (get_keymap): Rename from get_keymap_1. Remove old def.
1455 Return t when autoload=0 and error=0 and the keymap needs autoloading.
1456 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
1457 (Fminor_mode_key_binding): Don't raise an error if the binding
1458 is not a keymap.
1459 (Fuse_global_map, Fuse_local_map): Allow autoloading.
1460 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
1461
1462 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
1463 Allow Vspecial_event_map to be autoloaded.
1464 (menu_bar_items): Fetch the keymap rather than using keymapp.
1465 (menu_bar_one_keymap): No need to follow func-indirect any more.
1466 (parse_menu_item): get_keymap_1 -> get_keymap.
1467 (tool_bar_items): Fetch the keymap rather than using keymapp.
1468 (read_key_sequence): Use KEYMAPP.
1469
1470 * intervals.c (get_local_map): Use get_keymap rather than following
1471 function-indirections explicitly.
1472
1473 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
1474
f9d80af3
JR
14752000-10-27 Jason Rumney <jasonr@gnu.org>
1476
1477 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
1478 point, as Windows has oversized fonts.
1479
1480 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
1481
a3ba27da
GM
14822000-10-27 Gerd Moellmann <gerd@gnu.org>
1483
1484 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
1485 (freehook, reallochook): Handle null pointer arguments.
1486 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
1487
aa3b80cc
SM
14882000-10-27 Stefan Monnier <monnier@cs.yale.edu>
1489
1490 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
1491 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
1492 Giving in to popular pressure to shut up the compiler with casts.
1493
e24e84cc
GM
14942000-10-27 Gerd Moellmann <gerd@gnu.org>
1495
1496 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
1497 signed value, and use a default value computed from the font's
1498 maximum descent.
1499
05ea7ef2
MB
15002000-10-27 Miles Bader <miles@lsi.nec.co.jp>
1501
1502 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
1503 that specify a negative underline position can still use underlines.
1504
1505 * window.c (Fpos_visible_in_window_p): Make POS default to
1506 WINDOW's point, not the current buffer's point.
1507
0b95284b
DL
15082000-10-26 Dave Love <fx@gnu.org>
1509
1510 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
1511 when it's necessary.
1512
6c5b90af
GM
15132000-10-26 Gerd Moellmann <gerd@gnu.org>
1514
8b6d9dc9
GM
1515 * window.c (size_window): Compute size difference from sum of old
1516 child window sizes instead of from parent's size.
1517
6bc92b2e
GM
1518 * xdisp.c (pos_visible_p): Change current buffer if necessary.
1519 Handle obscured lines at the top of the window.
1520
1521 * frame.c (Fdelete_frame): Doc fix. Move running the hook
1522 down after the last error condition check.
1523
6c5b90af
GM
1524 * frame.c (Fdelete_frame): Run delete-frame-hook.
1525
42f92d4d
KH
15262000-10-26 Kenichi Handa <handa@etl.go.jp>
1527
1528 * coding.c (decode_coding): Fix previous change (check also
1529 CODING_MODE_LAST_BLOCK).
1530
d97151cb
SM
15312000-10-25 Stefan Monnier <monnier@cs.yale.edu>
1532
e7efc503
SM
1533 * regex.c: More `unsigned char' -> `re_char' changes.
1534 Also change several `int' into `re_wchar_t'.
1535 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
1536 (PUSH_FAILURE_POINTER): Don't cast any more.
1537 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
1538 We want GCC to complain, since this piece of code makes
1539 re_match non-reentrant, which *should* be fixed.
1540 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
1541 (EXTEND_BUFFER): Use RETALLOC.
1542 (SET_LIST_BIT): Don't cast.
1543 (re_wchar_t): New type.
1544 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
1545 that those two functions will always properly return.
1546 (IMMEDIATE_QUIT_CHECK): Cast to void.
1547 (analyse_first): Use recursion rather than an explicit stack.
1548 (re_compile_fastmap): Can't fail anymore.
1549 (re_search_2): Don't check re_compile_fastmap for failure.
1550 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
1551 Now also sets the new value (passed in a new argument).
1552 (re_match_2_internal): Use it.
1553 Also, use a new var `reg' of type size_t when looping through regs
1554 rather than reuse the inappropriate `mcnt'.
1555
d97151cb
SM
1556 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
1557 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
1558 (where_is_internal): Renamed from Fwhere_is_internal.
1559 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
1560 (Fwhere_is_internal): New function wrapping where_is_internal.
1561 (where_is_internal_1): Handle the case where we're filling the cache.
1562 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
1563
d5789b65
MB
15642000-10-25 Miles Bader <miles@gnu.org>
1565
1566 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
1567
4ecda532
GM
15682000-10-25 Gerd Moellmann <gerd@gnu.org>
1569
1570 * window.c (pos_fully_visible_p): Removed.
1571 (Fpos_visible_in_window_p): Use pos_visible_p to determine
1572 if position is visible and/or fully visible.
1573
1574 * lisp.h (pos_visible_p): Add prototype.
1575
1576 * xdisp.c (pos_visible_p): New function.
1577
68c3a137
KH
15782000-10-25 Kenichi Handa <handa@etl.go.jp>
1579
1580 * process.c (send_process): If OBJECT is t, it means that the data
1581 is from C string, but we should encode it. Before calling
1582 setup_raw_text_coding_system, be sure to flush out data by the
1583 previous coding system.
1584
7ae1c032
MB
15852000-10-25 Miles Bader <miles@lsi.nec.co.jp>
1586
ff4dcd4b
MB
1587 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
1588 assignment of startpos to prev when startpos == pos.
1589
7ae1c032
MB
1590 * editfns.c (find_field): Set the field stickiness correctly from
1591 overlay fields. Use renamed `text_property_stickiness'.
1592 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 1593 Only check text properties, not overlays.
7ae1c032
MB
1594 * textprop.c (get_char_property_and_overlay): New function.
1595 (Fget_char_property): Use it.
1596 * intervals.h (get_char_property_and_overlay): Add declaration.
1597
49801145
SM
15982000-10-25 Stefan Monnier <monnier@cs.yale.edu>
1599
1600 * keymap.c: Use AREF, ASET and ASIZE macros.
1601 (Fmake_sparse_keymap): Docstring fix.
1602 (synkey): Remove.
1603 (shadow_lookup): Move up.
1604 Handle the case where lookup-key returns an integer.
1605 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
1606 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
1607 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
1608 Simplify/rewrite the keymap-finding code.
1609 Add check for command shadowing, using shadow_lookup.
1610
39e776cd
SM
16112000-10-24 Stefan Monnier <monnier@cs.yale.edu>
1612
1613 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
1614 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
1615 a symbol.
1616
2488aba5
AI
16172000-10-24 Andrew Innes <andrewi@gnu.org>
1618
1619 * dired.c (directory_files_internal_unwind): New function.
1620 (directory_files_internal): Use it to ensure closedir is called
1621 even if expand-file-name or file-attributes throw, eg. because of
1622 a user interrupt. Also enable immediate_quit while calling
1623 re_search, so that matching can be interrupted as well.
1624
b94fdf61
AI
16252000-10-24 Andrew Innes <andrewi@gnu.org>
1626
1627 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
1628 NT-Emacs only.
1629 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
1630 so that re_search functions only quit when callers expect them to.
1631
16322000-10-24 Kenichi Handa <handa@etl.go.jp>
1633
1634 * regex.c (regex_compile): Change the way of handling a range from
1635 a char less than 256 to a char not less than 256.
1636
1946f901
GM
16372000-10-24 Gerd Moellmann <gerd@gnu.org>
1638
7ae2f10f
GM
1639 * window.c (size_window): Prevent setting window's width or
1640 height to a negative value (esp. with XSETFASTINT).
1641
5dcab13e
GM
1642 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
1643 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
1644 (protect_malloc_state) [GC_MALLOC_CHECK &&
1645 GC_PROTECT_MALLOC_STATE]: New function.
1646 (PROTECT_MALLOC_STATE): New macro.
1647 (__malloc_initialize, morecore, _malloc_internal)
1648 (_free_internal) _realloc_internal): Use it to make _heapinfo
1649 read-only outside of gmalloc.
1650
63e1b552
GM
1651 * keymap.c: Update copyright.
1652
1946f901
GM
1653 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
1654 a symbol.
1655
4fa09beb
GM
16562000-10-24 Colin Walters <walters@cis.ohio-state.edu>
1657
1658 * filelock.c (unlock_all_files): Use unlock_file to expand each
1659 buffer's file_truename before trying remove its lock file.
1660
23afac01
EZ
16612000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
1662
1663 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
1664 or CRLF, decode EOLs.
1665
04448b95
KH
16662000-10-24 Kenichi Handa <handa@etl.go.jp>
1667
1668 * window.c (Fdisplay_buffer): Fix doc.
1669
3090a5a5
JR
16702000-10-23 Jason Rumney <jasonr@gnu.org>
1671
1672 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
1673 ASCII font of default fontset on Windows.
1674
1675 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
1676 xterm.c comment below).
1677
1678 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
1679
a83fee2c
GM
16802000-10-23 Gerd Moellmann <gerd@gnu.org>
1681
1682 * xterm.c (x_connection_closed): Reset handling_signal.
1683
1684 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
1685 null.
1686
6ffdb539
MB
16872000-10-23 Miles Bader <miles@gnu.org>
1688
1689 * window.c (window_scroll_pixel_based, window_scroll_line_based):
1690 Pass nil for FULLY argument to Fpos_visible_in_window_p to
1691 maintain old behavior.
1692 * minibuf.c (Fminibuffer_complete): Likewise.
1693
7f1c969b
MB
16942000-10-23 Miles Bader <miles@lsi.nec.co.jp>
1695
1696 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
1697 that when a font can't be exactly centered, it errs up rather than
1698 down.
1699
23afac01 17002000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
1701
1702 * fns.c (Fbase64_decode_string): The decoded result should be
1703 unibyte.
1704
1a578e9b
AC
17052000-10-23 Andrew Choi <akochoi@i-cable.com>
1706
1707 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
1708
1709 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 1710 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
1711
1712 * emacs.c (main) [macintosh]: Call syms_of_textprop,
1713 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
1714 syms_of_search, x_term_init, and init_keyboard before calling
1715 init_window_once. Also, call syms_of_xmenu.
1716
1717 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
1718 default fontset to Monaco.
1719
1720 * frame.c [macintosh]: Include macterm.h. Remove declarations of
1721 NewMacWindow and DisposeMacWindow.
1722 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
1723 instead of calling NewMacWindow and setting fields of
1724 f->output_data.mac directly. Call init_frame_faces.
1725 (Fdelete_frame) [macintosh]: Remove unused code.
1726 (Fmodify_frame_parameters) [macintosh]: Call
1727 x_set_frame_parameters instead of mac_set_frame_parameters.
1728
1729 * frame.h [macintosh]: Define menu_bar_lines field in struct
1730 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
1731
1732 * keyboard.c [macintosh]: Include macterm.h.
1733 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
1734 and menu_bar_activate_event type events as for X and NT.
1735 (make_lispy_event) [macintosh]: Construct lisp events of type
1736 MENU_BAR_EVENT as for X and NT.
1737
1738 * sysdep.c [macintosh]: Remove declaration for sys_signal.
1739 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
1740 (sys_subshell) [macintosh]: Remove definition entirely.
1741 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
1742 Vwindow_system_version here. Remove initialization of
1743 Vx_bitmap_file_path.
1744 (read_input_waiting): Correct the number of parameters passed to
1745 read_socket_hook.
1746 Move all Macintosh functions to mac/mac.c.
1747
1748 * term.c [macintosh]: Include macterm.h.
1749
1750 * window.c [macintosh]: Include macterm.h.
1751
1752 * xdisp.c [macintosh]: Include macterm.h. Declare
1753 set_frame_menubar and pending_menu_activation.
1754 (echo_area_display) [macintosh]: Do not return if terminal frame
1755 is the selected frame.
1756 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
1757 Allow only the selected frame to set menu bar.
1758 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
1759 calling FRAME_EXTERNAL_MENU_BAR (f).
1760 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
1761
1762 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
1763 and check_x. Declare XCreateGC. Define x_create_gc and
1764 x_free_gc. Initialize font_sort_order.
1765 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
1766 but call x_list_fonts instead of w32_list_fonts.
1767 (Finternal_face_x_get_resource) [macintosh]: Do not call
1768 display_x_get_resource.
1769 (prepare_face_for_display) [macintosh]: Set xgcv.font.
1770 (realize_x_face) [macintosh]: Load the font if it is specified in
1771 ATTRS.
1772 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
1773 to Qt.
1774
1ffbabe3
SM
17752000-10-22 Stefan Monnier <monnier@cs.yale.edu>
1776
1777 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
1778 is nil: since we go to the end of submap anyway, we'd end up
1779 setting nil to nil.
1780 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
1781 doesn't obey autoload.
1782
bed43f1d
EZ
17832000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
1784
1ffbabe3 1785 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 1786
ea4233a7
JR
17872000-10-21 Jason Rumney <jasonr@gnu.org>
1788
1789 * w32term.c (w32_cache_char_metrics): Double check that font is
1790 really fixed pitch before trusting tmPitchAndFamily.
1791
f3d3c491
AI
17922000-10-21 Andrew Innes <andrewi@gnu.org>
1793
1794 * w32gui.h (w32_char_font_type): Move enum from w32term.c
1795
1796 * w32term.h: Extern decl for w32_cache_char_metrics.
1797
1798 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
1799
1800 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
1801 (w32_unload_font): Free per_char array if present.
1802
1803 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
1804 cached information in emulated XFontStruct to handle common cases
1805 quickly. Do not allocate XCharStruct for return.
1806 (w32_native_per_char_metric): New function.
1807 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
1808 allocating one.
1809 (x_produce_glyphs): Don't get an HDC. Change calls to
1810 w32_per_char_metric to match arg change above. Remove calls to
1811 free results.
1812 (w32_get_glyph_overhangs): Ditto.
1813 (w32_cache_char_metrics): New function.
1814
1815 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
1816 ($(BLD)/casefiddle.$(O)): Remove compile command.
1817 ($(BLD)/gmalloc.$(O)): Remove compile command.
1818 ($(BLD)/dispnew.obj):
1819 ($(BLD)/keyboard.obj):
1820 ($(BLD)/w32inevt.obj):
1821 ($(BLD)/w32bdf.obj):
1822 ($(BLD)/alloc.obj):
1823 ($(BLD)/buffer.obj):
1824 ($(BLD)/editfns.obj):
1825 ($(BLD)/emacs.obj):
1826 ($(BLD)/fileio.obj):
1827 ($(BLD)/fns.obj):
1828 ($(BLD)/indent.obj):
1829 ($(BLD)/insdel.obj):
1830 ($(BLD)/intervals.obj):
1831 ($(BLD)/minibuf.obj):
1832 ($(BLD)/print.obj):
1833 ($(BLD)/scroll.obj):
1834 ($(BLD)/sysdep.obj):
1835 ($(BLD)/textprop.obj):
1836 ($(BLD)/widget.obj):
1837 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
1838 ($(BLD)/term.obj): Add dependency on dispextern.h.
1839
1840 * makefile.nt ($(BLD)\dispnew.obj):
1841 ($(BLD)\keyboard.obj):
1842 ($(BLD)\w32inevt.obj):
1843 ($(BLD)\w32bdf.obj):
1844 ($(BLD)\alloc.obj):
1845 ($(BLD)\buffer.obj):
1846 ($(BLD)\editfns.obj):
1847 ($(BLD)\emacs.obj):
1848 ($(BLD)\fileio.obj):
1849 ($(BLD)\fns.obj):
1850 ($(BLD)\indent.obj):
1851 ($(BLD)\insdel.obj):
1852 ($(BLD)\intervals.obj):
1853 ($(BLD)\minibuf.obj):
1854 ($(BLD)\print.obj):
1855 ($(BLD)\scroll.obj):
1856 ($(BLD)\sysdep.obj):
1857 ($(BLD)\textprop.obj):
1858 ($(BLD)\widget.obj):
1859 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
1860 ($(BLD)\term.obj): Add dependency on dispextern.h
1861
18ad4821
EZ
18622000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
1863
1864 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
1865 with an additional argument of Qt.
1866
de54681a
MB
18672000-10-21 Miles Bader <miles@gnu.org>
1868
1869 * window.c (pos_fully_visible_in_window_p): New function.
1870 (Fpos_visible_in_window_p): Add FULLY argument.
1871 Use pos_fully_visible_in_window_p.
1872 (window_scroll_pixel_based, window_scroll_line_based): Update
1873 calls to Fpos_visible_in_window_p.
1874 * lisp.h (Fpos_visible_in_window_p): Update prototype
1875
13c844fb
GM
18762000-10-20 Gerd Moellmann <gerd@gnu.org>
1877
1878 * alloc.c (toplevel): Conditionalize compilation of mem_*
1879 functions differently.
1880
d9506268
JR
18812000-10-20 Jason Rumney <jasonr@gnu.org>
1882
1883 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
1884 mem_init where it used to be. mem_z etc not defined otherwise.
1885
8094989b
GM
18862000-10-20 Gerd Moellmann <gerd@gnu.org>
1887
1888 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
1889 GC_MALLOC_CHECK.
1890 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
1891 structure definition and related variabled to the top of the file.
1892 Include this code when GC_MALLOC_CHECK is defined.
1893 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
1894 register/unregister allocated region.
1895 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
1896 which isn't allocated.
1897 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
1898 something which is already in use.
1899 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
1900 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
1901 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
1902 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
1903
1904 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
1905 _malloc_internal instead of malloc.
1906 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
1907 of free.
1908
ea456eb4
AI
19092000-10-20 Andrew Innes <andrewi@gnu.org>
1910
1911 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
1912 Windows.
1913 (my_strftime) <macro>: Don't use macro arg list when redefining as
1914 _strftime_copytm.
1915 (my_strftime) <function>: Supply 0 as ut argument.
1916
e64c3a75
JR
19172000-10-19 Jason Rumney <jasonr@altavista.net>
1918
1919 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
1920 including dispextern.h, as it stops faces from working.
1921
1922 * w32fns.c (Fx_create_frame): Don't bother calling
1923 face-set-after-frame-default since the caller does it for us
1924 anyway. Clean up calls to x_get_arg to be consistent with X.
1925
1926 * w32term.c (x_produce_glyphs): Handle
1927 unibyte_display_via_language_environment correctly.
1928 (w32_draw_box_rect): Fix the calculation of width and height.
1929
1930 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
1931 as it has stopped working.
1932 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
1933 menu-bar.
1934
17401c97
GM
19352000-10-19 Gerd Moellmann <gerd@gnu.org>
1936
1937 * eval.c (skip_debugger): Prevent a compiler warning.
1938 (Fcondition_case): Likewise.
1939 (Fbacktrace_frame): Use a null interactive spec.
1940
773272d8
KH
19412000-10-19 Kenichi Handa <handa@etl.go.jp>
1942
1943 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
1944
a42943e9
GM
19452000-10-18 Gerd Moellmann <gerd@gnu.org>
1946
e50517d9
GM
1947 * strftime.c: Sync with glibc, file version 1.78.
1948 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
1949 should no longer be used according to ISO 8601.
1950
9035a35a
GM
1951 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
1952 no map for meta_prefix_char, don't try to use it as a keymap.
1953 Instead, if T_OK is non-zero, look up a default binding, if any,
1954 otherwise, if T_OK is zero, return nil.
1955
a42943e9
GM
1956 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
1957 (x_to_xcolors, png_load): Use x_query_color.
1958
1959 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
1960 functions.
1961 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
1962 which can be slow.
1963 (x_copy_color, x_alloc_lighter_color): Likewise.
1964
1965 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
1966 (x_query_color, x_query_colors): Add prototype.
1967
1968 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
1969 check_string_bytes only if not noninteractive, increase count to 50.
1970
00de2987
MB
19712000-10-18 Miles Bader <miles@lsi.nec.co.jp>
1972
1973 * insdel.c (adjust_markers_for_delete): Handle before-insertion
1974 markers correctly.
1975
54918e2b
GM
19762000-10-17 Gerd Moellmann <gerd@gnu.org>
1977
1f0b3fd2
GM
1978 * alloc.c (pure_bytes_used): Renamed from pureptr.
1979 (ALIGN): New macro.
1980 (pure_alloc): New function.
1981 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
1982 Use it.
1983 (Fpurecopy): Use PURE_POINTER_P.
1984
68c5d1db
GM
1985 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
1986 PT has moved backward.
1987
9a038881
GM
1988 * xdisp.c (cursor_row_p): Take continued lines into account.
1989
361b097f
GM
1990 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
1991 string's size_byte.
1992 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
1993 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
1994 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
1995 string allocated.
1996
54918e2b
GM
1997 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
1998 of selective display off while searching for the next line start.
1999
03ed0806
KH
20002000-10-17 Kenichi Handa <handa@etl.go.jp>
2001
2002 * Makefile.in (term.o): Depend on dispextern.h.
2003
7e05cdaf
SM
20042000-10-16 Stefan Monnier <monnier@cs.yale.edu>
2005
2006 * keymap.c (keymap_memberp): Ensure that nil is not a member.
2007
a6801fd1
GM
20082000-10-16 Gerd Moellmann <gerd@gnu.org>
2009
483de32b
GM
2010 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
2011 the iterator at the beginning, so that they can be set later on,
2012 for instance in reseat_at_next_visible_line_start, without being
2013 overwritten.
2014
a6801fd1
GM
2015 * xfns.c (pbm_format): Add :foreground and :background keywords.
2016 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 2017 (xbm_load): Recognize foreground and background color
a6801fd1
GM
2018 specifications.
2019
dbf1fcc1
EZ
20202000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
2021
2022 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
2023
2024 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
2025 declaration.
2026
2027 * msdos.c (IT_set_face): Compare highlighted face with the default
2028 face, and invert colors if these faces' colors are identical.
2029 (Fmsdos_remember_default_colors): Don't swap foreground and
2030 background colors in initial_colors[].
2031 (IT_set_frame_parameters): Don't swap frame's foreground and
2032 background pixels. If ALIST includes "(reverse . t)", swap
2033 foreground-color and background-color properties in frame's
2034 param_alist. If the original frame's param_alist doesn't specify
2035 the colors, store unspecified-fg and unspecified-bg, reversed if
2036 required.
2037
2038 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
2039 the colors are unspecified and reversed, reverse fore- and back-
2040 ground in the returned value.
2041 (Fframe_parameter): Ditto.
2042
b41fe2c3
GM
20432000-10-16 Gerd Moellmann <gerd@gnu.org>
2044
3a6b59d9
GM
2045 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
2046 get_last_unchanged_at_beg_row.
2047 (find_first_unchanged_at_end_row): Renamed from
2048 get_first_unchanged_at_end_row.
2049 (find_first_unchanged_at_end_row): Convert assertions to
2050 unconditional tests which abort. When looking for a row in
2051 unchanged text, don't go further back than first_text_row.
2052
b41fe2c3
GM
2053 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
2054 Don't add in the last line's height when deciding if the new
2055 position is below the scroll margin.
9d1af64f 2056
b41fe2c3 20572000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
2058
2059 * editfns.c (Fconstrain_to_field): Check carefully for field
2060 boundaries if either OLD_POS or NEW_POS has a non-nil field
2061 property, even if they're the same.
2062
c412cb7b
KH
20632000-10-16 Kenichi Handa <handa@etl.go.jp>
2064
2065 * xterm.c (x_draw_box_rect): Fix the calculation of width and
2066 height for XFillRectangle.
2067
5586f3eb
SM
20682000-10-15 Stefan Monnier <monnier@cs.yale.edu>
2069
2070 * syntax.c (Fstring_to_syntax): New function extracted from
2071 Fmodify_syntax_entry.
2072 (Fmodify_syntax_entry): Use it and document the ! and | fences.
2073 (skip_chars, Fforward_comment): Remove unused variables.
2074 (syms_of_syntax): Add defsubr for string-to-syntax.
2075 (describe_syntax): Add code for comment and string fences.
2076
db785038
SM
20772000-10-14 Stefan Monnier <monnier@cs.yale.edu>
2078
2079 * keymap.c (access_keymap): Add AUTOLOAD parameter.
2080 Do the meta->esc mapping. Call get_keyelt before returning.
2081 Start scanning from the second element (the first is always `keymap')
2082 to make it easier to detect when we reach a parent map.
2083 Handle the case of inheriting from a symbol whose function is a map.
2084 (Fkeymap_parent): Also handle the `inherit from symbol' case.
2085 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
2086 (get_keyelt, Flookup_key): Update call to access_keymap.
2087 Remove the meta->esc mappings.
2088 (define_as_prefix): Delete old disabled code.
2089 (menu_item_p): New function.
2090 (where_is_internal_1): Skip over the few remaining menu items.
2091 * lisp.h (access_keymap): Update prototype.
2092 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
2093 Update call to access_keymap.
2094 (follow_key, read_key_sequence): Update calls to access_keymap.
2095 Remove the meta->esc mappings.
2096
cafafe0b
GM
20972000-10-13 Gerd Moellmann <gerd@gnu.org>
2098
a2e2a7f6
GM
2099 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
2100 with additional argument.
2101
cafafe0b
GM
2102 * xdisp.c (cursor_row_p): New function.
2103 (try_cursor_movement, display_line): Use it.
2104
2105 * xdisp.c (append_space): Also save/restore iterator's current
2106 character and its length.
2107
2108 * xdisp.c (init_from_display_pos): Add an assertion.
2109 (handle_stop): Don't set iterator's add_overlay_start.
2110 (handle_invisible_prop): Likewise.
2111 (load_overlay_strings): If text under an overlay is invisible,
2112 take both before- and after-strings into account when the iterator
2113 is positioned either at the start or at the end of the overlay.
2114 (forward_to_next_line_start): Rewritten.
2115 (reseat_at_next_visible_line_start): Rewritten.
2116 (set_iterator_to_next): Add parameter RESEAT_P.
2117
2118 * dispextern.h (struct it): Remove member add_overlay_start.
2119 (set_iterator_to_next): Change prototype.
2120
c744452b
KH
21212000-10-13 Kenichi Handa <handa@etl.go.jp>
2122
2123 * coding.c (code_convert_region): Be sure to initialize
2124 coding->category_idx.
e4a3f4e1
KH
2125 (decode_coding_string): Set coding->src_multibyte and
2126 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
2127 (encode_coding_string): Set coding->src_multibyte and
2128 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 2129
321fd26f
SM
21302000-10-12 Stefan Monnier <monnier@cs.yale.edu>
2131
2132 * xfns.c (Fx_create_frame): Don't bother calling
2133 face-set-after-frame-default since the caller does it for us anyway.
2134
76832439
EZ
21352000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
2136
2137 * window.c (coordinates_in_window): Fix detection of vertical line
2138 on character terminals.
2139
2483cf58
GM
21402000-10-12 Gerd Moellmann <gerd@gnu.org>
2141
2142 * editfns.c (save_excursion_save): Additionally record the
2143 selected window.
2144 (save_excursion_restore): If buffer was visible in a window, and a
2145 different window was selected, and the old selected window is
2146 still live, restore point in that window.
2147
eb991b25
KH
21482000-10-12 Kenichi Handa <handa@etl.go.jp>
2149
8a0eba09
KH
2150 * xterm.c (x_produce_glyphs): Handle
2151 unibyte_display_via_language_environment correctly.
2152
20401fcc
KH
2153 * regex.c (regex_compile): Change the way of handling a range from
2154 unibyte char to multibyte char.
2155
2156 * syntax.c (skip_chars): Change the way of handling a range from
2157 unibyte char to multibyte char.
2158
eb991b25
KH
2159 * process.c (read_process_output): Cancel previous change.
2160
365dd325
EZ
21612000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
2162
c1b096cb
EZ
2163 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
2164
365dd325
EZ
2165 * charset.c (Ffind_charset_string): Doc fix.
2166 (Ffind_charset_region): Doc fix.
2167
eb483c2b
KH
21682000-10-11 Kenichi Handa <handa@mule.m17n.org>
2169
2170 * process.c (read_process_output): Fix previous change. Adjust
2171 multibyteness of text to insert in a buffer by
df3c11b9 2172 string_make_unibyte/multibyte instead of
eb483c2b
KH
2173 Fstring_as_unibyte/multibyte.
2174
b40bfb99
AS
21752000-10-10 Andreas Schwab <schwab@suse.de>
2176
2177 * alloc.c (mark_object): Remove all workarounds installed on
2178 1993-08-08.
2179
caff31d4
KH
21802000-10-10 Kenichi Handa <handa@etl.go.jp>
2181
2182 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
2183 returning.
2184 (base64_encode_1): Make it work for a text of multibyte form.
2185 (Fbase64_decode_region): Allocate sufficient memory for multibyte
2186 case. Don't call str_to_multibyte because base64_decode_1
2187 produces correct multibyte form for eight-bit codes.
2188 (Fbase64_decode_string): Adjusted for the change of
2189 base64_decode_1.
2190 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
2191 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
2192 codes.
2193
2194 * charset.h (CHAR_STRING): Optimized for single byte characters.
2195
cba026ef
AS
21962000-10-09 Andreas Schwab <schwab@suse.de>
2197
2198 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
2199 -1 after socket is closed, to fall through to error processing.
2200
1e21fe48
EZ
22012000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
2202
2203 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 2204 variables. If ALIST includes foreground-color or
1e21fe48
EZ
2205 background-color, change also the colors of the default face for
2206 this frame.
2207
a640322e
EZ
22082000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
2209
2210 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
2211 them extern (they are defined on xfaces.c).
2212 (syms_of_msdos): Don't intern and don't staticpro
2213 Qbackground_color and Qforeground_color.
2214
a115794c
EZ
22152000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
2216
2217 * frame.c (Fframe_parameter): For non-windowed frames, if
2218 f->param_alist says foreground or background color is unspecified,
2219 call tty_color_name to return the color name computed from the
2220 frame's current colors.
2221
f5533b63
DL
22222000-10-06 Dave Love <fx@gnu.org>
2223
2224 * terminfo.c (ospeed): Don't declare.
2225
2226 * sysdep.c: Don't include string.h.
2227 (h_errno): Declare conditional also on TRY_AGAIN.
2228
2229 * charset.c (Ffind_charset_string): Doc fix.
2230
2231 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
2232 (Fbase64_decode_region, Fbase64_decode_string): More explicit
2233 error messages.
2234
2b06561a
DL
22352000-10-05 Dave Love <fx@gnu.org>
2236
2237 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
2238 position like menu-bar.
2239
ca839c85
GM
22402000-10-05 Gerd Moellmann <gerd@gnu.org>
2241
2242 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
2243
2244 * xdisp.c (handle_single_display_prop): Use safe_call1.
2245 (safe_call): Renamed from call_function.
2246 (safe_call1): New function.
2247 (handle_fontified_prop): Use safe_call1 instead of call1.
2248 (safe_eval): Renamed from eval_form.
2249 (safe_eval_handler): Renamed from eval_handler.
2250 (handle_single_display_prop, display_mode_element): Use safe_eval
2251 instead of eval_form.
2252
2253 * xfaces.c (merge_face_heights): Use safe_call instead of
2254 call_function.
2255
2256 * keyboard.c (show_help_echo): Use safe_call instead of
2257 call_function; use safe_eval instead of eval_form.
2258
2259 * lisp.h (safe_call): Renamed from call_function.
2260 (safe_eval): Renamed from eval_form.
2261 (safe_call1): Add prototype.
2262
a3489ece
MB
22632000-10-05 Miles Bader <miles@lsi.nec.co.jp>
2264
2265 * xfns.c (image_ascent): Rearrange ascent calculation for the
2266 has-a-font case.
2267
35810b6f
SM
22682000-10-04 Stefan Monnier <monnier@cs.yale.edu>
2269
2270 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
2271 (where_is_internal_1): Don't bother ignoring menu-items any more.
2272
3dc78168
GM
22732000-10-04 Gerd Moellmann <gerd@gnu.org>
2274
2275 * keyboard.c (update_menu_bindings): New variable.
2276 (parse_menu_item): Use AREF. If update_menu_bindings
2277 is 0, don't update menu bindings.
2278 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
2279
1efc2bb9
EZ
22802000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
2281
2282 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
2283 to `mark_object'.
2284
3f679f55
SM
22852000-10-02 Stefan Monnier <monnier@cs.yale.edu>
2286
2287 * syntax.c (forw_comment): Match nestedness of ender/starter.
2288 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
2289 (prev_char_comstart_first): Remove.
2290 (back_comment): Check two-char comment markers more carefully
2291 to better handle overlapping cases like *//* or /* */* */ ...
2292 Match nestedness of ender/starter.
2293
2021ab61
DL
22942000-10-02 Dave Love <fx@gnu.org>
2295
2296 * config.in (HAVE_GAI_STRERROR): Add undef.
2297
2298 * process.c (Fopen_network_stream): Use it.
2299
2300 * m/alpha.h (NO_REMAP): Don't define.
2301
64e6cc18
GM
23022000-10-02 Gerd Moellmann <gerd@gnu.org>
2303
2304 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
2305 return with a string converted to an integer or vice versa when
2306 Vmocklisp_arguments is t.
2307 (Fsignal): Likewise. The function can return for `quit'.
2308 (struct gcpro): Declare member `var' to point to a volatile
2309 Lisp_Object.
2310
2311 * eval.c (error): Prevent compiler warning.
2312
b1904cd9
SM
23132000-09-30 Stefan Monnier <monnier@cs.yale.edu>
2314
2315 * keymap.c (keymap_memberp): New function.
2316 (Fset_keymap_parent): Use it.
2317 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
2318 Use keymap_memberp to avoid creating cycles.
2319 (access_keymap): Use KEYMAPP.
2320
71c9ec51
GM
23212000-09-30 Gerd Moellmann <gerd@gnu.org>
2322
2323 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
2324 gai_strerror. Make sure xerrno is set if connect fails. Improve
2325 error recovery.
71c9ec51 2326
c70c6b58
JR
23272000-09-29 Jason Rumney <jasonr@gnu.org>
2328
2329 * w32term.c (w32_char_font_type, w32_encode_char)
2330 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
2331 (w32_bdf_per_char_metric): New function.
2332 (w32_per_char_metric): Use it.
2333 (x_draw_glyph_string_background): Always draw background for BDF
2334 glyphs.
2335
2336 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
2337 GDI object which is a scarce resource.
2338
2339 * w32bdf.c (search_file_line): Fix skipping of whitespace.
2340 (get_quoted_string): Fix limit on memchr search.
2341 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
2342 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
2343 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
2344 (get_cached_font_char, cache_char_offset): Use macro
2345 BDF_CODEPOINT_RANGE_COVER_P.
2346 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
2347 (clear_cached_bitmap_slots): New function.
2348 (GET_HEX_VALUE): G-Z, g-z are not hex.
2349 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
2350 (get_bitmap_with_cache): Use new cache implementation.
2351 (create_offscreen_bitmap): New function.
2352 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
2353
2354 * w32term.c (x_produce_glyphs): If the distance from the current
2355 position to the next tab stop is less than a canonical character
2356 width, use the tab stop after that.
2357 (x_draw_glyphs): Handle case START and END are out of bounds more
2358 carefully.
2359 (x_clear_mouse_face): Block/unblock input.
2360 (x_display_and_set_cursor): Don't show a hollow box cursor for
2361 buffers whose cursor_type is nil.
2362
fe01239f
GM
23632000-09-29 Gerd Moellmann <gerd@gnu.org>
2364
2365 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
2366 disappears.
2367
2368 * dispextern.h (updating_frame): Declare extern.
2369
e7c52f1f
AS
23702000-09-29 Andreas Schwab <schwab@suse.de>
2371
2372 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
2373
de6e1f7c
GM
23742000-09-29 Gerd Moellmann <gerd@gnu.org>
2375
25126faa
GM
2376 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
2377 use its function definition.
2378 (tool_bar_items): Likewise.
2379
de6e1f7c
GM
2380 * lisp.h (fatal): Declare NO_RETURN.
2381
454ee39b
KH
23822000-09-29 Kenichi Handa <handa@etl.go.jp>
2383
2384 * keymap.c: Remove the line "#undef NULL".
2385
96301c5f
GM
23862000-09-28 Gerd Moellmann <gerd@gnu.org>
2387
2388 * xterm.c (x_make_frame_visible): Try harder to make the frame
2389 visible.
2390
efffeeb4
DL
23912000-09-28 Dave Love <fx@gnu.org>
2392
ecb8b666
DL
2393 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
2394
dc3cd20f
DL
2395 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
2396
2397 * .gdbinit (xreload): Note its need on GNU/Linux.
2398
efffeeb4
DL
2399 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
2400 r_alloc, r_alloc_free.
2401
8610d903
KH
24022000-09-28 Kenichi Handa <handa@etl.go.jp>
2403
2404 * syntax.c (skip_chars): Handle negation correctly.
2405
8901d1ac
GM
24062000-09-27 Gerd Moellmann <gerd@gnu.org>
2407
6f22f1ad
GM
2408 * xfaces.c (realize_default_face): Call set_lface_from_font_name
2409 with non-zero FORCE_P argument.
2410
8901d1ac
GM
2411 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
2412 Add assertions.
2413
2414 * xdisp.c (window_box_height): Add an assertion.
2415
2416 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
2417 tool-bar than is available.
2418 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
2419
36f1966f
DL
24202000-09-27 Dave Love <fx@gnu.org>
2421
efffeeb4 2422 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 2423
31d929e5
GM
24242000-09-26 Gerd Moellmann <gerd@gnu.org>
2425
c98863bf
GM
2426 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
2427 instead of BITS_PER_INT.
2428 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
2429 EMACS_UINT, respectively.
2430 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
2431
2432 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
2433
2434 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
2435
77072ab1
GM
2436 * window.c (freeze_window_starts): Construct last argument for
2437 foreach_window differently.
2438
2439 * xfns.c (x_decode_color): Don't return a Lisp_Object.
2440
2441 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
2442 EMACS_UINT instead of `int' and `unsigned int'.
2443 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
2444
2445 * frame.h (struct frame): Make the `nothing' member of union
2446 output_data an EMACS_INT.
2447
31d929e5
GM
2448 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
2449 hunting.
2450 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
2451 size in the sdata structure.
2452 (SDATA_NBYTES, SDATA_DATA): New macros.
2453 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
2454 differently for the different layout of the sdata structure.
2455 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
2456 in sdata.
2457 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
2458 Check that size recorded in the string size and size recorded in
2459 the sdata structure agree.
2460
3e60b029
DL
24612000-09-25 Dave Love <fx@gnu.org>
2462
2463 * buffer.c: Include stdio.h.
2464
2465 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
2466
2467 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
2468
2469 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
2470 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
2471 size_t.
2472 (__malloc_extra_blocks): Declare as __malloc_size_t.
2473
8ff16b4e
GM
24742000-09-25 Gerd Moellmann <gerd@gnu.org>
2475
755a2ccd
GM
2476 * alloc.c (mark_image): Use GC_NILP instead of NILP.
2477
d8b4516f
GM
2478 * keyboard.c (show_help_echo): Set help_echo_showing_p.
2479 (read_char): If help-echo is showing, preserve the echo area
2480 when redisplaying.
2481
2482 * xdisp.c (help_echo_showing_p): New variable.
2483 (set_message): Reset it to 0.
2484 (init_xdisp): Initialize help_echo_showing_p.
2485
2486 * dispextern.h (help_echo_showing_p): Declare extern.
2487
2488 * config.in: Fix typo in __GNUC_MINOR__.
2489
2490 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
2491
b11af2dd
GM
2492 * s/freebsd.h (POSIX_SIGNALS): Define.
2493
8ff16b4e
GM
2494 * xterm.c (x_clear_mouse_face): Block/unblock input.
2495
844eb643
DL
24962000-09-24 Dave Love <fx@gnu.org>
2497
2498 * fns.c (base64_encode_1): Fix last change.
2499
b30ab1b3
GM
25002000-09-22 Gerd Moellmann <gerd@gnu.org>
2501
2502 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
2503
2504 * xdisp.c (try_window_reusing_current_matrix): More fixes
2505 for the case window has a header-line.
2506
c6cbe5f0
DL
25072000-09-22 Dave Love <fx@gnu.org>
2508
4c7c1f3f
DL
2509 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
2510 a doc string.
2511
2512 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
2513
c6cbe5f0
DL
2514 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
2515
550a625e
GM
25162000-09-21 Gerd Moellmann <gerd@gnu.org>
2517
4c7c1f3f 2518 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
2519 for GCC >= 2.5.
2520
2521 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
2522 NO_RETURN.
2523
80d26f99
GM
2524 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
2525 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
2526 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
2527 warnings.
2528
2529 * marker.c (byte_char_debug_check): Return void.
2530
623a0aae
GM
2531 * xfns.c (Fx_create_frame): Set default frame parameter value
2532 for tool-bar-lines to 1.
2533
2534 * dispnew.c (scrolling_window): Compare y-positions of rows
2535 equal at the start. Some simplification.
2536
2537 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
2538 reused rows' y-position in the case window has a header-line, and
2539 new window start is greater than old window start.
2540
42ac0ae5
GM
2541 * process.c (process_sent_to): New variable.
2542 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
2543 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
2544 Declare more parameters volatile.
2545
550a625e
GM
2546 * lread.c (Vrecursive_load_depth_limit): New variable.
2547 (Fload): Check recursive loads whose recursion depth exceeds
2548 Vrecursive_load_depth_limit.
2549 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
2550
8320414c
GM
25512000-09-20 Gerd Moellmann <gerd@gnu.org>
2552
f46c275e
GM
2553 * fileio.c (Fread_file_name): Doc fix.
2554
2555 * editfns.c (Fmessage_or_box): Doc fix.
2556
2557 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
2558
b7e11c5b
GM
2559 * xfns.c (xbm_scan): Allow C-style comments.
2560
8320414c
GM
2561 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
2562 symbols are specified, add color translations to the cache.
2563 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
2564 functions.
2565 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
2566 xpm_cache_color.
2567 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
2568 structures to xpm_init_color_cache.
2569
da1608d9
GM
25702000-09-19 Gerd Moellmann <gerd@gnu.org>
2571
2572 * dispnew.c (update_window_line): Make sure to always draw
2573 mode-lines.
2574
6badfa25
AI
25752000-09-19 Andrew Innes <andrewi@gnu.org>
2576
2577 * makefile.nt (bootstrap-emacs): Don't change directory.
2578
3a5f42bb
KH
25792000-09-19 Kenichi Handa <handa@etl.go.jp>
2580
1b7649bd
KH
2581 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
2582
3a5f42bb
KH
2583 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
2584 If output buffer is too small, signal an appropriated error.
2585
9f83cf0b
DL
25862000-09-18 Dave Love <fx@gnu.org>
2587
2588 * keyboard.c (menu_bar_items, tool_bar_items)
2589 (current_active_maps): Remove redundant get_local_map call.
2590
28c7826c
GM
25912000-09-18 Gerd Moellmann <gerd@gnu.org>
2592
5cefa566
GM
2593 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
2594 cursor for buffers whose cursor_type is nil.
2595
6fed3546
GM
2596 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
2597 a feature to implement that is already implemented.
2598 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
2599 warnings.
2600
2601 * xfns.c (x_clear_image_1): New function.
2602 (x_clear_image): Use it.
2603 (x_from_xcolors): Use x_clear_image_1; don't free the image's
2604 mask.
2605
05b1f851
GM
2606 * dispnew.c (update_window): Move test for invisible lines
2607 at the top to update_window_line.
2608 (update_window_line): Handle invisible lines here.
2609
f4779de9
GM
2610 * xfns.c (clear_image_cache): Clear current matrices of all
2611 frames sharing an image cache. Block input while freeing
2612 images. Fix timestamp comparison.
2613 (x_clear_image): Also free the mask.
2614
28c7826c
GM
2615 * xfns.c (lookup_image): Block input while loading the image so
2616 that we won't get interrupted in a state where the image isn't yet
2617 set up completely.
2618 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
2619 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
2620 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
2621 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
2622 input.
2623
b7412313
GM
26242000-09-16 Gerd Moellmann <gerd@gnu.org>
2625
2626 * dispnew.c (update_window): Make sure to make desired rows
2627 current even if they are completely invisible at the top
2628 of a window.
2629
47e351a3
GM
26302000-09-15 Gerd Moellmann <gerd@gnu.org>
2631
7f8f1edc
GM
2632 * xfns.c (lookup_image): Build mask before applying an algorithm.
2633 Recognize algorithm `disabled'.
2634 (cross_disabled_images): New variable.
2635 (COLOR_INTENSITY): New macro.
2636 (x_detect_edges): Use COLOR_INTENSITY.
2637 (x_disable_image): New function.
2638 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
2639
2640 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
2641 disabled state, don't apply an image transformation algorithm if
2642 the user specified an image for the disabled state. Use
28c7826c 2643 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
2644 user hasn't specified an image.
2645
ebb8f116
GM
2646 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
2647 allocation functions with the XPM lib.
2648 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
2649 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
2650 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
2651 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
2652 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
2653 functions.
2654 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
2655 functions, if possible, because these handle color allocation
2656 failure more gracefully.
2657 (Fimage_mask_p): New function.
2658
47e351a3
GM
2659 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
2660 (Qedge_detection, Qheuristic): New symbols.
2661 (syms_of_xfns): Initialize new symbols.
2662 (lookup_image): Handle `:mask X', `:algorithm emboss', and
2663 `algorithm (edge-detection ...)'.
2664 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
2665 (tiff_format, gif_format, gs_format): Add `:mask'.
2666 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
2667 (GIF_MASK, GS_MASK): New enumerators.
2668 (x_laplace_read_row, x_laplace_write_row): Functions removed.
2669 (emboss_matrix, laplace_matrix): New variables.
2670 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
2671 (x_edge_detection): New functions.
2672 (x_laplace): Rewritten in terms of x_detect_edges.
2673 (x_build_heuristic_mask): If image has a mask, free it.
2674
fe83b953
AI
26752000-09-14 Andrew Innes <andrewi@gnu.org>
2676
2677 * makefile.w32-in: Revert to Unix line endings.
2678
3021e816
AI
26792000-09-14 Andrew Innes <andrewi@gnu.org>
2680
2681 * makefile.w32-in: Standardize indentation somewhat.
2682 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
2683 cater for differences between shells.
2684
2685 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
2686
2a32b5ea
GM
26872000-09-14 Gerd Moellmann <gerd@gnu.org>
2688
2689 * xterm.c (x_produce_glyphs): If the distance from the current
2690 position to the next tab stop is less than a canonical character
2691 width, use the tab stop after that.
2692
b4331e96
DL
26932000-09-14 Dave Love <fx@gnu.org>
2694
2695 * buffer.c (alloc_buffer_text): Fix xmalloc call.
2696
ef9e4345
GM
26972000-09-14 Gerd Moellmann <gerd@gnu.org>
2698
085536c2
GM
2699 * xdisp.c (handle_fontified_prop): While running fontification
2700 functions, bind `fontification-functions' and
2701 `after-change-functions' to nil.
2702
ef9e4345
GM
2703 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
2704 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
2705
2706 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
2707
2708 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
2709 USE_MMAP_FOR_BUFFERS.
2710
2711 * insdel.c (make_gap): Use enlarge_buffer_text.
2712
2713 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
2714 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
2715 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
2716 from former r_alloc_* functions in ralloc.c.
2717 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
2718 variables.
2719 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
2720 (mmap_init) [REL_ALLOC_MMAP]: New function.
2721 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
2722 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
2723 BUFFER_FREE.
2724
2725 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
2726 (enlarge_buffer_text): Add prototype.
2727
2728 * ralloc.c: Remove everything having to do with the use of mmap.
2729
f8608968
GM
27302000-09-13 Gerd Moellmann <gerd@gnu.org>
2731
2a494b2d
GM
2732 * sound.c (Fplay_sound): Doc fix.
2733
8c907a56
GM
2734 * keyboard.c: Avoid some more compiler warnings.
2735 (parse_tool_bar_item): Ignore cached key bindings.
2736
f8608968
GM
2737 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
2738 and allocation of Lisp data.
2739
6ab70e9a
GM
27402000-09-12 Gerd Moellmann <gerd@gnu.org>
2741
d12d0a9b
GM
2742 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
2743 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
2744 defaults first.
2745
6ab70e9a
GM
2746 * lread.c (Fload): Put code checking for recursive loads in #if 0.
2747
63c36c3c
KH
27482000-09-12 Miyashita Hisashi <himi@meadowy.org>
2749
2750 * ccl.c: Comment fixed.
2751 (MAX_MAP_SET_LEVEL): Increased to 30.
2752 (PUSH_MAPPING_STACK): Enclose with do-while block.
2753 (POP_MAPPING_STACK): Likewise.
2754 (stack_idx_of_map_multiple): New variable.
2755 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
2756 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
2757 call the corresponding CCL program by
2758 CCL_CALL_FOR_MAP_INSTRUCTION.
2759 (ccl_driver) <CCL_MapSingle>: Likewise.
2760 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
2761 with the case where looking up process reaches to the end of
2762 map-set, and call CCL programs as the above change.
2763
7ee3bd7b
GM
27642000-09-11 Gerd Moellmann <gerd@gnu.org>
2765
8ec8a5ec
GM
2766 * xfns.c (png_load, jpeg_load): Declare some variables volatile
2767 that might be clobbered by longjmp.
2768 (check_x_display_info, x_decode_color, create_frame_xic)
2769 (Fx_display_backing_store, Fx_display_visual_class)
2770 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
2771 warnings.
2772
f74b0705
GM
2773 * lread.c (init_lread): Set Vloads_in_progress to nil.
2774 (Fload): Show list of recursively loaded files, when signaling an
2775 error.
2776
7ee3bd7b
GM
2777 * lread.c (Vloads_in_progress): New variable.
2778 (record_load_unwind): New function.
2779 (Fload): Check for recursive loads.
2780 (syms_of_lread): Initialize Vloads_in_progress.
2781 (read_integer, read1): Avoid some compiler warnings.
2782
2783 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
2784 compiler warnings.
2785
974e1e5b
MB
27862000-09-11 Miles Bader <miles@gnu.org>
2787
2788 * editfns.c (Fbuffer_string): Doc fix.
2789
9824c4e3
GM
27902000-09-10 Gerd Moellmann <gerd@gnu.org>
2791
2792 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
2793
6a72fdd1
KR
27942000-09-09 Ken Raeburn <raeburn@gnu.org>
2795
2796 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
2797 whether to include other header files.
2798
28e6fb66
GM
27992000-09-09 Gerd Moellmann <gerd@gnu.org>
2800
2801 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 2802 by Fmemq as a boolean.
28e6fb66 2803
7f8b6551
SM
28042000-09-08 Stefan Monnier <monnier@cs.yale.edu>
2805
2806 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
2807
a8710abf
GM
28082000-09-08 Gerd Moellmann <gerd@gnu.org>
2809
d1a02881
GM
2810 * ralloc.c (mmap_fd): Remove initializer which can make it
2811 read-only in a dumped Emacs.
2812 (mmap_fd_1): New variable.
2813 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
2814 restore it from there.
2815 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
2816 unconditionally so that mmap_fd can be initialized there.
2817 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
2818 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
2819 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
2820
c454aac1
GM
2821 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
2822
2823 * xdisp.c (dump_glyph_row): Fix printf format string.
2824 (display_line, move_it_in_display_line_to): Avoid compiler
2825 warnings.
2826
fc653ef2
GM
2827 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
2828
3015eec0
GM
2829 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
2830 inheritance.
2831
bfe0ee88
GM
2832 * xdisp.c (try_window_id): When trying to locate cursor in
2833 unchanged rows at the top, handle the case that we can't find it.
2834
a8710abf
GM
2835 * xterm.c (x_draw_glyphs): Handle case START and END are out
2836 of bounds more carefully.
2837
6b7d4ae4
DL
28382000-09-08 Dave Love <fx@gnu.org>
2839
423193c5
DL
2840 * s/sol2.h (REL_ALLOC_MMAP): Define.
2841 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
2842
2843 * ralloc.c: Don't include string.h (redundant).
2844 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
2845 [!MAP_ANON]: Include fcntl.h.
2846 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
2847 (r_alloc, r_re_alloc, r_alloc_free)
2848 (mmap_enlarge, mmap_set_vars): Use it.
2849 (r_alloc_init_fd): New function.
2850 (__morecore) [SYSTEM_MALLOC]: Don't declare.
2851 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
2852 malloc type.
2853
2854 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
2855 Remove vm-limit.o.
2856
6b7d4ae4
DL
2857 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
2858 change to __NetBSD__.
2859
44d31981
KH
28602000-09-08 Kenichi Handa <handa@etl.go.jp>
2861
2862 * search.c (compile_pattern): Check the multibyteness of cached
2863 string and PATTERN.
2864
aad40737
MB
28652000-09-08 Miles Bader <miles@gnu.org>
2866
2867 * xfaces.c (default_face_vector): Function removed.
2868 (Finternal_merge_in_global_face): Restore old global/local
2869 attribute override order. Use inline loop instead of calling
2870 default_face_vector.
2871
91a211b5
GM
28722000-09-07 Gerd Moellmann <gerd@gnu.org>
2873
2874 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
2875 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
2876 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
2877 where necessary, in case POINTER_TYPE is `void'.
2878
03419440
EZ
28792000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
2880
2881 * frame.c (make_terminal_frame): Initialize frame foreground and
2882 background colors to unspecified, for the initial instance of an
2883 MSDOS frame.
2884
f46f845b
GM
28852000-09-07 Gerd Moellmann <gerd@gnu.org>
2886
24f76fbf
GM
2887 * ralloc.c (mmap_find): Fix overlap computation.
2888 (mmap_enlarge): Compute nbytes before trying to find an
2889 overlapping region.
2890
f46f845b
GM
2891 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
2892 instead of `!='.
2893
2894 * lread.c (syms_of_lread): Change value of regexp
2895 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
2896
2897 * xmenu.c (xdialog_show): When looking up the selection in
2898 menu_items, take `quote' boundaries into account; this corresponds
2899 to a nil ITEM in x-popup-dialog.
2900
3c014385
KH
29012000-09-07 Kenichi Handa <handa@etl.go.jp>
2902
fd6f711b
KH
2903 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
2904 not 0x81.
2905 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
2906
3c014385 2907 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
2908 encoding, not decoding. Fix the handling of latin-jisx0201.
2909 Check for the charset katakana-jisx0201 too.
3c014385 2910 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 2911 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 2912
0da3ecef
GM
29132000-09-07 Gerd Moellmann <gerd@gnu.org>
2914
ab0ee409
GM
2915 * xfaces.c (Vparam_value_alist): New variable.
2916 (syms_of_xfaces): Initialize it.
2917 (Finternal_set_lisp_face_attribute): Avoid more consing.
2918
2919 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
2920 specially.
2921 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
2922 (Qbackground_mode): New variable.
2923 (syms_of_frame_1): Initialize Qbackground_mode.
2924
2925 * lisp.h (Qdisplay): Declare extern.
1091dd67 2926
0da3ecef
GM
2927 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
2928 change face on all frames, and change the default for new frames.
2929
b14654b9
DL
29302000-09-07 Dave Love <fx@gnu.org>
2931
2932 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
2933
d24fd56f
KH
29342000-09-07 Kenichi Handa <handa@etl.go.jp>
2935
794f3670
KH
2936 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
2937
0fddd0dc
KH
2938 * charset.c: Include composite.h
2939 (lisp_string_width): New function.
2940 (Fstring_width): Call lisp_string_width instead of strwidth.
2941
2942 * Makefile.in (charset.o): Depends on composite.h.
2943
d24fd56f
KH
2944 * process.c (read_process_output): Before inserting the decoded
2945 text in the buffer, adjust the multibyteness.
2946
fa0b693c
GM
29472000-09-06 Gerd Moellmann <gerd@gnu.org>
2948
73b77ee5
GM
2949 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
2950 buffer's text buffer is null, map new memory.
2951
0a58f946
GM
2952 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
2953 POINTER_TYPE and size_t.
2954 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
2955 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
2956 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
2957 [REL_ALLOC_MMAP]: New macros.
2958 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
2959 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
2960 [REL_ALLOC_MMAP]: New functions.
2961
2962 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
2963 before and after unexec.
2964
2965 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
2966 text buffers if necessary.
2967
2968 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
2969 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
2970 in prototypes.
2971
fa0b693c
GM
2972 * config.in (HAVE_MMAP): Add #undef.
2973
877055f6
GM
29742000-09-05 Gerd Moellmann <gerd@gnu.org>
2975
08ba3862
GM
2976 * frame.c (Qdisplay_type): New variable.
2977 (syms_of_frame_1): Initialize it.
2978 (Fframe_parameter): New function that avoids consing.
2979 (syms_of_frame): Defsubr it.
2980
66ffe51c
GM
2981 * buffer.c (Fother_buffer): Consider buffers as invisible when
2982 they are displayed in a window on an invisible frame.
2983
877055f6
GM
2984 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
2985 get-largest-window always return nil.
2986
bb970e67
GM
29872000-09-04 Gerd Moellmann <gerd@gnu.org>
2988
2989 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
2990 variable; recognize Emacs 19 elc files.
2991
7a3d0e0e
MB
29922000-09-04 Miles Bader <miles@gnu.org>
2993
2994 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
2995 before initially popping up the menu, so the menu doesn't flash
2996 when the face settings are significantly different from the
2997 defaults.
2998
14473664
SM
29992000-09-04 Stefan Monnier <monnier@cs.yale.edu>
3000
3001 * regex.c (WIDE_CHAR_SUPPORT): New macro.
3002 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
3003 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
3004 (BIT_UNIBYTE): Remove.
3005 (re_match_2_internal): Delete corresponding code and streamline the
3006 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
3007 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
3008 (re_wctype_t): New type.
3009 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
3010 (regex_compile): Use them and fix handling of overly long char classes.
3011
c1174479
AI
30122000-09-03 Andrew Innes <andrewi@gnu.org>
3013
f8803e97
AI
3014 * makefile.w32-in: Change to DOS line endings.
3015
c1174479
AI
3016 * s/ms-w32.h (ORDINARY_LINK): New define.
3017
3018 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
3019 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
3020
3021 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
3022 (distclean): Delete them here instead.
3023
44ef7cf6
AI
3024 * w32proc.c (compare_env): Convert to uppercase for comparison,
3025 not lowercase, to match how the native Windows shell works.
3026
49b3bd82
JR
30272000-09-03 Jason Rumney <jasonr@gnu.org>
3028
3029 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
3030 CVS changes the line-ends when checking in/out on DOS/Windows.
3031
3032 * makefile.nt (emacs): Do not change directory to run temacs, as
3033 the load-path is set relative to current directory.
3034
a3d35a39
MB
30352000-09-03 Miles Bader <miles@gnu.org>
3036
3037 * xterm.c (x_alloc_lighter_color_for_widget): New function.
3038
d276b0cf
GM
30392000-09-02 Gerd Moellmann <gerd@gnu.org>
3040
715e84c9
GM
3041 * xdisp.c (redisplay_mode_lines): New function.
3042 (display_mode_lines): Return number of mode lines displayed.
3043 (echo_area_display): Use redisplay_mode_lines to draw garbaged
3044 mode lines. Don't temporarily bind redisplay-dont-pause to t.
3045
8892f40b
GM
3046 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
3047 string.h and strings.h.
3048 (index) [HAVE_INDEX]: Add prototype.
3049
d276b0cf
GM
3050 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
3051 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
3052
3053 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
3054 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
3055
38404229
GM
30562000-09-01 Gerd Moellmann <gerd@gnu.org>
3057
3058 * lread.c (read1): Accept `?' as symbol constituent, for
3059 compatiblity with XEmacs.
3060
c0f9ea08
SM
30612000-08-31 Stefan Monnier <monnier@cs.yale.edu>
3062
3063 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
3064 (struct re_pattern_buffer): Remove newline_anchor.
3065 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
3066 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
3067 (re_max_failures, fail_stack): Use size_t rather than unsigned.
3068 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
3069 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
3070 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
3071 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
3072 Get rid of references to newline_anchor.
3073 (regcomp): Allocate and precompute a fastmap.
3074
8c0f83fe
GM
30752000-08-31 Gerd Moellmann <gerd@gnu.org>
3076
3077 * lread.c (openp): GCPRO local variable `filename'.
3078
4bb91c68
SM
30792000-08-30 Stefan Monnier <monnier@cs.yale.edu>
3080
3081 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
3082
3083 * regex.c: Merge some changes from GNU libc. Add prototypes.
3084 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
3085 Use memcmp and memcpy instead of bcopy and bcmp.
3086 (init_syntax_once): Use ISALNUM.
3087 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
3088 (REG_UNSET_VALUE): Remove. Use NULL instead.
3089 (REG_UNSET, re_match_2_internal): Use NULL.
3090 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
3091 New macros.
3092 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
3093 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
3094 (regex_compile): In handle_interval, return an error rather than try to
3095 unfetch the interval if we can't find the closing brace.
3096 Obey the RE_NO_GNU_OPS syntax bit.
3097 (TOLOWER): New macro.
3098 (regcomp): Use it.
3099 (regexec): Allocate regs.start and regs.end as one block.
3100
5226a931
GM
31012000-08-30 Gerd Moellmann <gerd@gnu.org>
3102
868dd24b
GM
3103 * xdisp.c (echo_area_display): Check display_completed instead
3104 of calling detect_input_pending.
3105
3106 * dispnew.c (update_frame): Only set display_completed here; move
3107 the update_begin and update_end calls here from update_frame_1.
3108 (update_frame_1): Don't set display_completed here, don't call
3109 update_begin/update_end.
3110
5226a931
GM
3111 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
3112 instead of store_frame_param.
3113
2a8bd25f
GM
31142000-08-29 Gerd Moellmann <gerd@gnu.org>
3115
3116 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
3117 desired window matrix hasn't been displayed, use the current row
3118 instead. Make sure that only those frame rows are updated for
3119 which there exists a corresponding enabled desired row.
3120
ba3478d9
MB
31212000-08-29 Miles Bader <miles@gnu.org>
3122
3123 * xfaces.c (default_face_vector): New function.
3124 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
3125
87d0f685
GM
31262000-08-29 Gerd Moellmann <gerd@gnu.org>
3127
3128 * lread.c (openp): Prevent temporary string passed to
3129 Ffile_readable_p from being garbage collected.
3130
6fa86045
DL
31312000-08-28 Dave Love <fx@gnu.org>
3132
3133 * keymap.c (store_in_keymap): Add `static' to declaration.
3134
bb17930d
GM
31352000-08-28 Gerd Moellmann <gerd@gnu.org>
3136
3137 * emacs.c, callint.c, doc.c, editfns.c
3138 (toplevel) [HAVE_STRING_H]: Include string.h.
3139 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
3140 (index): Remove prototypes which might conflict with non-standard
3141 definitions of index/strchr.
3142
3143 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
3144 (rindex): Define only if !HAVE_RINDEX.
3145
3146 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
3147
3148 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
3149
87188200
MB
31502000-08-28 Miles Bader <miles@gnu.org>
3151
3152 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
3153 made inconsistent by a font-related attribute in FROM.
3154 (merge_face_inheritance): Add function comment.
3155
41a68aef
KH
31562000-08-28 Kenichi Handa <handa@etl.go.jp>
3157
3158 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
3159 the 4th arg (PREV_EVENT) Qt to suppress input method.
3160
f7c436c1
SM
31612000-08-27 Stefan Monnier <monnier@cs.yale.edu>
3162
0b32bf0e
SM
3163 * regex.c: Indent cpp directives and remove parens after `defined'.
3164 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
3165 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
3166 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
3167 (re_compile_pattern): Use size_t for length.
3168 (init_syntax_once): Move to a better place.
3169 * regex.h: Merge changes from GNU libc. Indent cpp directives.
3170 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
3171
f7c436c1
SM
3172 * syntax.c (back_comment): Detect cases where a comment-starter is
3173 actually inside another comment as in: /* a // b */ c // d \n.
3174 Make it clear that `comstart_pos' is unused for nested comments.
3175
3176 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
3177 (KEYMAPP): New macro.
3178 (Fkeymap_parent, Fset_keymap_parent): Use it.
3179 (fix_submap_inheritance): Mark it static.
3180 (define_as_prefix, describe_buffer_bindings, describe_command)
3181 (describe_translation, describe_map): Complete prototypes.
3182
3183 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
3184
3185 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
3186 to better match the key-lookup behavior.
3187
6288c62f
GM
31882000-08-27 Gerd Moellmann <gerd@gnu.org>
3189
3190 * xfaces.c (lface_fully_specified_p): Handle :inherit.
3191 (Finternal_set_lisp_face_attribute): Fix typo in error message.
3192
e931344e
EZ
31932000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
3194
3195 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
3196 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
3197 (xterm.o): Depend on coding.h
3198
d10dfeef
KH
31992000-08-26 Kenichi Handa <handa@etl.go.jp>
3200
3201 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
3202 the corresponding '#endif'.
3203
2d73e8d3
MB
32042000-08-26 Miles Bader <miles@gnu.org>
3205
3206 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
3207 * xfaces.c (QCinherit): New variable.
3208 (syms_of_xfaces): Initialize it.
3209 (LFACE_INHERIT): New macro.
3210 (Finternal_get_lisp_face_attribute)
3211 (merge_face_vector_with_property)
3212 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
3213 (check_lface_attrs): Allow new types of face height. Check
3214 inherit attribute.
3215 (CYCLE_CHECK): New macro.
3216 (merge_face_inheritance): New function.
3217 (merge_face_vectors): Merge inherited faces too. Add F and
3218 CYCLE_CHECK arguments.
3219 (merge_face_vector_with_property, Finternal_merge_in_global_face)
3220 (lookup_named_face, lookup_derived_face, realize_named_face)
3221 (face_at_string_position, face_at_buffer_position): Supply
3222 new F and CYCLE_CHECK arguments to merge_face_vectors.
3223 (merge_face_heights): New function.
3224 (merge_face_vectors, merge_face_vector_with_property)
3225 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
3226 handle relative face heights.
3227 (lface_same_font_attributes_p): Compare heights using EQ.
3228
6ce974d4
KH
32292000-08-26 Kenichi Handa <handa@etl.go.jp>
3230
3231 * charset.c (char_to_string): Check the character validity.
3232 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
3233 0.
3234
dc1e502d
SM
32352000-08-25 Stefan Monnier <monnier@cs.yale.edu>
3236
3237 * regex.c (PUSH_FAILURE_COUNT): New macro.
3238 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
3239 Handle popping of a register's or a counter's data.
3240 (POP_FAILURE_POINT): Use the new name.
3241 (re_match_2_internal): Push counter data on the stack for succeed_n,
3242 jump_n and set_number_at and remove misleading dead code in succeed_n.
3243
bd9d0f3f
GM
32442000-08-25 Gerd Moellmann <gerd@gnu.org>
3245
3246 * xdisp.c (redisplay_internal): If considering all windows on all
3247 frames, update the display for each frame as soon as possible,
3248 instead of first building all desired matrices for all frames, and
3249 then updating them all.
3250 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
3251
aa5b8e15
GM
32522000-08-24 Gerd Moellmann <gerd@gnu.org>
3253
17494071
GM
3254 * bytecode.c (mark_byte_stack): Add a comment.
3255
aa5b8e15
GM
3256 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
3257 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
3258 a graphical frame.
3259
c543db81
KH
32602000-08-24 Kenichi Handa <handa@etl.go.jp>
3261
d246d5f5
KH
3262 * minibuf.c (do_completion): Always use compare-string, not
3263 string-equal because the latter doesn't pay attention to
3264 multibyteness of strings.
3265
c543db81
KH
3266 * process.c (create_process): Don't setup raw-text coding here.
3267 (Fopen_network_stream): Don't set coding->src_multibyte and
3268 coding->dst_multibyte here.
3269 (read_process_output): For process filter, return unibyte string
3270 if default-enable-multibyte-characters is nil.
3271 (send_process): If OBJECT is multibyte text, be sure to encoded it
3272 by the specified coding system for the process. Otherwise, setup
3273 raw-text coding.
3274 (init_process): Don't initialize default-process-coding-system
3275 here.
3276
9b47cfe0
EZ
32772000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
3278
3279 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
3280 <scroll-down-aggressively>: Likewise.
3281
f5a36960
KH
32822000-08-23 Kenichi Handa <handa@etl.go.jp>
3283
3284 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
3285 zero. Set coding->produced_char correctly.
3286
69a7ffa7
AI
32872000-08-22 Andrew Innes <andrewi@gnu.org>
3288
3289 * makefile.w32-in: New file.
3290
3291 * unexw32.c (unexec): Ignore old_name, and use the actual location
3292 of the current executable instead. Base new_name on this.
3293
3294 * w32proc.c (create_child): Remove reference to security
3295 descriptor, which isn't needed and doesn't compile with mingw32.
3296
3297 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3298 up dllimport attributes.
3299 (x_update_window_end): Update prototype.
3300
3301 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
3302 extern, which screws up dllimport attributes.
3303
3304 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3305 up dllimport attributes.
3306
3307 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
3308 screws up dllimport attributes.
3309
3310 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3311 up dllimport attributes.
3312 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
3313 screws up dllimport attributes.
3314
3315 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3316 up dllimport attributes.
3317
3318 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
3319 screws up dllimport attributes.
3320
3321 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
3322 screws up dllimport attributes.
3323
3324 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3325 up dllimport attributes.
3326
3327 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
3328 unnecessary extern, which screws up dllimport attributes.
3329 (main): Ditto.
3330
3331 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3332 up dllimport attributes.
3333
3334 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
3335 unnecessary extern, which screws up dllimport attributes.
3336
3337 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
3338 screws up dllimport attributes.
3339
3340 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
3341 up dllimport attributes.
3342
3343 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
3344
3345 * w32bdf.c (search_file_line):
3346 (set_bdf_font_info):
3347 (seek_char):
3348 (w32_get_bdf_glyph):
3349 (w32_BDF_to_x_font): Fix compile warnings.
3350
3351 * w32menu.c: Include keyboard.h before frame.h. Fix compile
3352 warnings.
3353
3354 * w32select.c: Include keyboard.h before frame.h.
3355
3356 * w32fns.c (max): Define macro.
3357 (JOHAB_CHARSET): Define if not known.
3358 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
3359 (Fx_show_tip): Synch with X version.
3360
3361 * w32xfns.c: Include keyboard.h before frame.h.
3362
3363 * w32fns.c: Include keyboard.h before frame.h.
3364
3365 * w32term.c: Include keyboard.h before frame.h.
3366
3367 * fontset.c: Include keyboard.h before frame.h.
3368
3369 * w32inevt.c: Include keyboard.h before frame.h.
3370 (MOUSE_MOVED): Define if not known.
3371
3372 * minibuf.c: Include keyboard.h before frame.h.
3373
3374 * keyboard.c: Include keyboard.h before frame.h.
3375
3376 * indent.c: Include keyboard.h before frame.h.
3377
3378 * dispnew.c: Include keyboard.h before frame.h.
3379
3380 * buffer.c: Include keyboard.h before frame.h.
3381
3382 * alloc.c: Include keyboard.h before frame.h.
3383
3384 * print.c: Include keyboard.h before frame.h.
3385
3386 * process.c: Include keyboard.h before frame.h.
3387
3388 * scroll.c: Include keyboard.h before frame.h.
3389
3390 * sysdep.c: Include keyboard.h before frame.h.
3391
3392 * term.c: Include keyboard.h before frame.h.
3393
3394 * window.c: Include keyboard.h before frame.h.
3395
3396 * xdisp.c: Include keyboard.h before frame.h.
3397 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
3398
3399 * frame.c: Include keyboard.h before frame.h.
3400
3401 * w32heap.h: Undefine min, max.
3402
3403 * w32gui.h: Undefine min, max.
3404
3405 * unexw32.c: Change PUCHAR to PCHAR.
3406 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
3407 (relocate_offset):
3408 (get_section_info):
3409 (copy_executable_and_dump_data): Remove unnecessary static defs.
3410 (copy_executable_and_dump_data): Fix compile warnings.
3411
3412 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
3413
3414 * w32console.c (min): Define macro.
3415 (clear_frame, write_glyphs): Fix compile warning.
3416
3417 * w32proc.c (compare_env):
3418 (find_child_console): Fix compile warning.
3419
3420 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
3421 sys_errlist instead of _sys_errlist.
3422 (get_emacs_configuration_options): New function.
3423
3424 * s/ms-w32.h (sys_nerr): Provide default definition.
3425 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
3426 name with _ prepended.
3427 (NSIG): Define if not known.
3428 (get_emacs_configuration): Provide extern declaration.
3429 (get_emacs_configuration_options): Provide extern declaration.
3430 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
3431
3432 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
3433 (map_w32_filename):
3434 (read_unc_volume): Fix compile warning.
3435
3436 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
3437 definitions from being used.
3438
3439 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
3440
3441 * w32.c (unc_volume_file_attributes):
3442 (open_unc_volume): Make arg const.
3443
3444 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
3445 (read_input_waiting): Remove excess parameter.
3446
3447 * w32.c (init_environment): Call _access.
3448 (check_windows_init_file): Call _close.
3449 (init_user_info): Call _putenv.
3450 (init_environment): Call _putenv and _strdup.
3451 (init_ntproc): Reset volume info cache on startup.
3452
3453 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
3454 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
3455 cannot override the CRT malloc.
3456
3457 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
3458 (LINK_FLAGS): Append to original value of LINK_FLAGS.
3459
3460 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
3461 unless we are linking with a static CRT.
3462 (RVA_TO_PTR): Cast result to unsigned char*.
3463
3464 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
3465 (add_volume_info): Use xstrdup.
3466
25060080
SM
34672000-08-22 Stefan Monnier <monnier@cs.yale.edu>
3468
3469 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
3470 (do_completion, Fminibuffer_complete_word): Use it.
3471 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
3472 var so it can take non-boolean values.
3473
6917e6bb
GM
34742000-08-21 Gerd Moellmann <gerd@gnu.org>
3475
acb7cc89
GM
3476 * editfns.c (find_field): Formatting changes.
3477 (toplevel): Some old-style function forward declarations
3478 changed to prototypes, some new protypes added, some functions
3479 made static.
3480
3481 * lisp.h (set_time_zone_rule): Add prototype.
3482 (use_dialog_box): External declaration.
3483
0bbfdc25
GM
3484 * keyboard.c (gen_help_event): Add parameter SIZE.
3485 (kbd_buffer_events_waiting): Slightly rewritten.
3486 (clear_event): New function.
3487 (kbd_buffer_get_event): Use it, and clear the input_events of
3488 HELP_EVENTs.
3489 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
3490 don't fill the newly created array with nils.
3491 (toplevel): Convert some old-style function forward declarations
3492 to prototypes.
3493
3494 * keyboard.h (gen_help_event): Change prototype.
3495
3496 * xterm.c (XTread_socket): Change calls to gen_help_event.
3497
3498 * w32term.c (w32_read_socket): Change calls to gen_help_event.
3499
6917e6bb
GM
3500 * eval.c (Fmacroexpand): Doc fix.
3501
e5cd3d11
JR
35022000-08-20 Jason Rumney <jasonr@gnu.org>
3503
3504 * w32term.h (x_display_info_for_display): Remove as this function
3505 does not exist on W32.
3506
3507 * w32term.c (help_echo_window): New variable.
3508 (syms_of_w32term): staticpro it.
3509 (note_mode_line_highlight): Set it.
3510 (XTextExtents16): Removed as there is no equivalent on W32.
3511 (x_compute_glyph_string_overhangs): Incomplete body removed, as
3512 the X way of doing this will not work for W32.
3513 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
3514 (x_draw_image_foreground): Avoid drawing outside of the clip area
3515 when image doesn't have a mask.
3516 (note_mouse_highlight): Process overlays in the right order of
3517 priority. Set help_echo_window.
3518 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
3519 because that's more visible for large images.
3520
3521 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
3522 name to single_keymap_panes.
3523 (w32_menu_show): Set wv->title when dealing with titles.
3524 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
3525
6e69ab8c
MB
35262000-08-21 Miles Bader <miles@gnu.org>
3527
3528 * minibuf.c (do_completion): Try again if we rewrite the input
3529 string, but no completion was done, so that any completion message
3530 will be correct.
3531
511bd4eb
GM
35322000-08-20 Gerd Moellmann <gerd@gnu.org>
3533
3534 * xfaces.c (lface_equal_p): Compare strings differently.
3535 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
3536 (realize_tty_face): Use them.
3537 (syms_of_xfaces): Initialize new variables.
3538 (map_tty_color): New function, extracted from realize_tty_face.
3539 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
3540 foreground or background color, store the new color name in the
3541 realized face; previous code trying to do this had no effect.
3542 (realize_tty_face): Use map_tty_color.
3543 (Fclear_face_cache): Set face_change_count and ensure thorough
3544 redisplay.
3545
1433385f
GM
35462000-08-19 Gerd Moellmann <gerd@gnu.org>
3547
511bd4eb
GM
3548 * undo.c (record_first_change, record_marker_adjustment): Don't
3549 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 3550
419ac0a2
KH
35512000-08-18 Kenichi Handa <handa@etl.go.jp>
3552
3553 * coding.c (decode_coding_string): Set members consumed,
3554 consumed_char, produced, produced_char of *coding correctly. If
3555 decode_coding doesn't consume any byte, don't try anymore.
3556 (encode_coding_string): Likewise.
3557
7eb9e30d
GM
35582000-08-18 Gerd Moellmann <gerd@gnu.org>
3559
511bd4eb
GM
3560 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
3561 conditional have void type, for Standard C compilers.
7eb9e30d
GM
3562
3563 * xdisp.c (redisplay_internal): Compare windows for equality with
3564 EQ, instead of applying XWINDOW to something that might not
3565 be a window.
3566
dd34a735
KH
35672000-08-18 Kenichi Handa <handa@etl.go.jp>
3568
3569 * fontset.c (Finternal_char_font): Search only the selected frame
3570 for a window of the current buffer.
3571
385ff9e3
GM
35722000-08-18 Gerd Moellmann <gerd@gnu.org>
3573
511bd4eb 3574 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
3575 Lisp_Objects.
3576
385ff9e3
GM
3577 * keyboard.c (kbd_buffer_get_event): Handle the case that the
3578 second half of a HELP_EVENT is found at the start of kbd_buffer.
3579
d6abb4c7
MB
35802000-08-18 Miles Bader <miles@gnu.org>
3581
4618074a
MB
3582 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
3583
d6abb4c7
MB
3584 * editfns.c (save_restriction_save): Rewrite to use markers.
3585 (save_restriction_restore): Rewrite to understand new form of data
3586 saved by save_restriction_save.
3587 (Fsave_restriction): Remove cautionary note in doc-string.
3588
a7b28523
GM
35892000-08-17 Gerd Moellmann <gerd@gnu.org>
3590
3591 * fileio.c (build_annotations): Add a comment explaining the
3592 return value of format-annotate-function. Replace a spurious call
3593 to Flength with a CONSP test. Call format-annotate-function with
3594 a fifth arg specifying how many times the function is been called
3595 in a row, to let it choose temporary buffers appropriately.
3596
03c9ed77
DL
35972000-08-17 Dave Love <fx@gnu.org>
3598
3599 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
3600 declare make_temp_name twice.
3601
3602 * lread.c: Prototype readevalloop, load_unwind,
3603 load_descriptor_unwind.
3604 (unreadpure): Give it an arg.
3605
3606 * unexalpha.c: Prototype fatal_unexec, mark_x,
3607 update_dynamic_symbols. Declare unexec as void.
3608
3609 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
3610 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
3611
3612 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
3613 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
3614 DOUG_LEA_MALLOC.
3615
3616 * alloca.c: Use #error.
3617 [POINTER_TYPE]: Use it.
3618
3619 * eval.c (Fdefvar): Doc fix.
3620
3621 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
3622 INITIALIZE_INTERVAL.
3623
3624 * buffer.h: Avoid DECLARE_INTERVALS.
3625
3626 * config.in: Add size_t.
3627
aae41d97
EZ
36282000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
3629
3630 * w16select.c (set_clipboard_data): If there's not enough memory
3631 to put text into clipboard, return 1, as Fw16_set_clipboard_data
3632 expects. In case of other failures, return 3.
3633 (system_error_msg): New error message.
3634 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
3635 system_error_msg.
3636
65aa5e85
GM
36372000-08-16 Gerd Moellmann <gerd@gnu.org>
3638
3639 * term.c (write_glyphs): Also turn off inverse video after turning
3640 off other appearances in case TS_exit_attribute_mode is not equal
3641 to TS_end_standout_mode.
3642 (insert_glyphs): Turn inverse video on/off for each run of glyphs
3643 with the same face.
3644 (turn_off_face): Reset standout_mode only if
3645 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
3646 is equal to TS_end_standout_mode.
3647
ece23901
KH
36482000-08-16 Kenichi Handa <handa@etl.go.jp>
3649
9d7bcb2e
KH
3650 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
3651 sequence at the end of the source block.
3652
ece23901
KH
3653 * ccl.c (Fccl_program_p): Docstring modified.
3654 (Fccl_execute): Likewise.
3655 (Fccl_execute_on_string): Likewise.
3656
5e30eaa2
EZ
36572000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
3658
3659 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
3660
290602fd
KH
36612000-08-16 Kenichi Handa <handa@etl.go.jp>
3662
3663 The following changes are mainly to fix bugs of
3664 encode/decode-coding-string failing if encoding/decoding return
3665 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
3666 variable conversion_buffer.
3667
3668 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
3669 decrement dst_end to avoid buffer overflow in the later call of
3670 string_as_multibyte
3671
3672 * coding.h (conversion_buffer_size, conversion_buffer)
3673 (get_conversion_buffer): Extern deleted.
3674
3675 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
3676 (conversion_buffer, conversion_buffer_size): Variables deleted.
3677 (get_conversion_buffer): Function deleted.
3678 (struct conversion_buffer): New structure.
3679 (MAX_ALLOCA): New macro.
3680 (allocate_conversion_buffer): New macro.
3681 (extend_conversion_buffer, free_conversion_buffer): New functions.
3682 (ccl_coding_driver): Set coding->result.
3683 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
3684 this is the last block of source.
3685 (encode_coding): Likewise. Handle the source block as the last
3686 one only when the whole source text is consumed.
3687 (decode_coding_string): Handle the case that the output buffer is
3688 too small to decode the whole source text. Use
3689 allocate_conversion_buffer, extend_conversion_buffer and
3690 free_conversion_buffer, not get_conversion_buffer.
3691 (encode_coding_string): Likewise.
3692 (init_coding): Function deleted.
3693 (init_coding_once): Delete code to initialize
3694 conversion_buffer_size.
3695
3696 * emacs.c (main): Don't call init_coding.
3697
3698 * msdos.c (IT_write_glyphs): Use a locally declared
3699 conversion_buffer.
3700
3701 * term.c (write_glyphs): Use a locally declared conversion_buffer.
3702 (insert_glyphs): Likewise.
3703
3704 * w32console.c (write_glyphs): Use a locally declared
3705 conversion_buffer.
3706
b9f80d41
EZ
37072000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
3708
3709 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
3710 member of display_info is NULL.
3711
32dc52f7
GM
37122000-08-15 Gerd Moellmann <gerd@gnu.org>
3713
58ed0d3b
GM
3714 * alloc.c (compact_small_strings): Use safe_bcopy, add an
3715 assertion.
3716
32dc52f7 3717 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 3718 appearances with capability `me'.
32dc52f7
GM
3719 (write_glyphs): Switch on inverse video before each face change.
3720
4eb22d33
DL
37212000-08-14 Dave Love <fx@gnu.org>
3722
3723 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
3724 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
3725 (lisp_free): Declare and make static.
3726
3727 * window.c: Fix embedded comment.
3728 (syms_of_window): Fix doc string.
3729
90cbf47e
GM
37302000-08-14 Gerd Moellmann <gerd@gnu.org>
3731
3732 * keymap.c (push_key_description): If C without modifiers is < 32,
3733 make sure to print `C-' before `M-', like in the manual.
3734
440fc135
GM
37352000-08-11 Gerd Moellmann <gerd@gnu.org>
3736
3737 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
3738 since they aren't relocated anymore.
3739 (sxhash_string): Make sure returned hash code fits in a Lisp
3740 integer.
3741
3742 * xdisp.c (try_cursor_movement): Fix handling of cursor in
3743 partially visible line which is smaller than the window's
3744 height.
3745
6e264fad
KH
37462000-08-11 Kenichi Handa <handa@etl.go.jp>
3747
3748 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
3749 the multibyte form of eight-bit-control characters.
3750 (Fccl_execute_on_string): Initialize ccl->multibyte.
3751
3752 * ccl.h (struct ccl_program): New member multibyte.
3753
3754 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
3755
c371f69a
KH
37562000-08-11 Kenichi Handa <handa@etl.go.jp>
3757
3758 * regex.c (regex_compile) <normal_char>: Pay attention to
3759 multibyteness.
3760 (analyse_first) <exactn>: Setup fastmap correctly for
3761 eight-bit-control characters.
3762
37632000-08-11 Kenichi Handa <handa@etl.go.jp>
3764
3765 * termhooks.h (enum event_kind): New member
3766 multibyte_char_keystroke.
3767
3768 * keyboard.c (make_lispy_event): Handle the new event type
3769 multibyte_char_keystroke.
3770
3771 * xterm.c: Include coding.h.
3772 (XTread_socket): Work around a bug of XmbLookupString. If the
3773 input is from XIM, decode it according to the current locale. In
3774 that case, generate multibyte_char_keystroke events.
3775
b8ddbe71
KH
37762000-08-11 Kenichi Handa <handa@etl.go.jp>
3777
3778 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
3779 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
3780
47589c8c
GM
37812000-08-10 Gerd Moellmann <gerd@gnu.org>
3782
3783 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
3784 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
3785 (move_it_in_display_line_to): Record iterator's ascent and descent
3786 before producing glyphs, and restore them when we know the glyph
3787 doesn't fit on the line.
3788 (move_it_to): Restructured so that it's easier to debug. If
3789 moving to a vpos, and not moving to an x or character position,
3790 stop as soon as the specified vpos is reached; don't move further
3791 into that line because that might change the computed line height.
3792 (try_cursor_movement): New function, extracted from the cursor
3793 movement branch of redisplay_window. If ending on a partially
3794 visible line, don't try to scroll if the cursor line is taller
3795 than the window.
3796 (redisplay_window): Use try_cursor_movement.
3797
3798 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
3799 because that function doesn't cope with variable-height lines.
3800
3801 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
3802 box cursor because that's better visible for large images.
3803
c51bacd6
MB
38042000-08-10 Miles Bader <miles@gnu.org>
3805
3806 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
3807
bea56df7
GM
38082000-08-10 Gerd Moellmann <gerd@gnu.org>
3809
3810 * xdisp.c (Vmessages_buffer_name): New variable.
3811 (message_dolog): Use it.
3812 (syms_of_xdisp): Initialize it.
3813
99cd7364
EZ
38142000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
3815
3816 * msdos.c (IT_note_mouse_highlight): Update the calls to
3817 overlays_at.
3818 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
3819 redundant now that keyboard.h is included.
3820
7d093d56
EZ
38212000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
3822
3823 * keyboard.c (kbd_buffer_events_waiting): New function.
3824
3825 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
3826
3827 * msdos.c: Include keyboard.h.
3828 (XMenuActivate): Empty no_event events from the event buffer. If
3829 no events are left after that, call clear_input_pending.
3830 (mouse_clear_clicks): New function, code moved from mouse_init.
3831 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
3832 mouse driver to ``forget'' any past clicks.
3833
3834 * Makefile.in (msdos.o): Depend on keyboard.h.
3835
41e757a6
GM
38362000-08-09 Gerd Moellmann <gerd@gnu.org>
3837
8e7bd231
GM
3838 * lisp.h (input_pending): External declaration.
3839
3840 * dispextern.h (Qredisplay_dont_pause): Declare extern.
3841
3842 * xdisp.c (echo_area_display): Display thoroughly if input is
3843 pending. Bind redisplay-dont-pause to t during the redisplay.
3844 in case input is pending.
3845
3846 * dispnew.c (Qredisplay_dont_pause): New variable.
3847 (syms_of_display): Initialize and staticpro it.
3848 (update_frame_1): Don't interrupt the display for pending input if
3849 redisplay_dont_pause is set.
3850
43028b7e
GM
3851 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
3852
41e757a6
GM
3853 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
3854
2f2174fa
KH
38552000-08-09 Miles Bader <miles@lsi.nec.co.jp>
3856
3857 * callproc.c (Fcall_process): Terminate the unwind-protect around
3858 the post-read-conversion of coding system.
3859
0a6fd67e
MB
3860 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
3861 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
3862 * buffer.h (overlays_at): Update prototype.
3863 * xdisp.c (next_overlay_change): Update call to overlays_at.
3864 * xfaces.c (face_at_buffer_position): Likewise.
3865 * textprop.c (Fget_char_property): Likewise.
3866 * xterm.c (note_mouse_highlight): Likewise.
3867
0c80756e
MB
3868 * minibuf.c (do_completion): Don't consider a simple change of
3869 case as `completion'.
3870
975f250a
KR
38712000-08-08 Ken Raeburn <raeburn@gnu.org>
3872
b347b3fd
KR
3873 * keyboard.c (syms_of_keyboard): Initialize
3874 last_point_position_buffer.
3875 * undo.c (record_delete): Make sure last_point_position_buffer is
3876 a buffer before comparing pointers.
3877
3878 * coding.h (decode_coding_string): Declare.
3879
3880 * intervals.h (Fprevious_single_char_property_change): Declare.
3881
3882 * textprop.c (Fprevious_single_char_property_change): Don't do
3883 arithmetic directly on lisp objects.
3884
25ad1371 3885 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
3886 objects.
3887
3888 * keyboard.h (menu_item_eval_property): Declare.
3889
3890 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
3891 reuse as buffer name, instead of recreating (and discarding) every
3892 time a message is logged.
3893 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
3894 (current_message_1, truncate_message_1, set_message_1)
3895 (display_echo_area_1, resize_mini_window_1): Signatures changed.
3896 (current_message, truncate_echo_area, display_echo_area)
3897 (resize_echo_area_axactly): Changed calls.
b347b3fd 3898
975f250a 3899 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 3900 Lisp object.
975f250a 3901 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 3902 must be an integer, not a Lisp object.
975f250a 3903
46dc9912
KH
39042000-08-08 Kenichi Handa <handa@etl.go.jp>
3905
3906 * charset.c (Fchar_width): Doc fix.
3907
9f6d1a6c
GM
39082000-08-08 Gerd Moellmann <gerd@gnu.org>
3909
3910 * charset.c (Fstring_width): Doc fix.
3911
ff3d9573
GM
39122000-08-07 Gerd Moellmann <gerd@gnu.org>
3913
41e757a6 3914 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
3915 line, clear ascent and descent members of the iterator structure;
3916 the height of the continued line does not affect the height of the
3917 continuation line.
3918 (make_cursor_line_fully_visible): Do nothing if cursor is on a
3919 line taller than the window.
3920 (redisplay_window) <forced window start>: Handle case that the
3921 middle of the window is not found in any row.
3922 (dump_glyph_row): Show more information.
3923 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
3924 first text line in a glyph matrix.
3925
3926 * xterm.c (x_draw_image_foreground): Avoid drawing outside
3927 of the clip area when image doesn't have a mask.
3928
70fc58b3
GM
3929 * fns.c (sweep_weak_table): Fix survival conditions for
3930 key-or-value and key-and-value weakness.
3931
3932 * .gdbinit (xhashtable): New command.
3933
ac0e96ee
GM
3934 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
3935 tables out of the list of all weak hash tables.
3936
ff3d9573
GM
3937 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
3938 a new buffer is created, make sure echo_area_buffer[] references
3939 the new buffer.
3940
e0d8827b
EZ
39412000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
3942
3943 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
3944 the doc string.
3945
c6f35378
KH
39462000-08-07 Kenichi Handa <handa@etl.go.jp>
3947
3948 * syntax.c (skip_chars): Fix previous change. Make the handling
3949 of unibyte string consistent with that of regex search.
3950
1fd4c450
GM
39512000-08-05 Gerd Moellmann <gerd@gnu.org>
3952
e49aa397
GM
3953 * xmenu.c (popup_get_selection): Use xfree instead of free.
3954
3955 * fileio.c (Finsert_file_contents): Use xfree instead of free.
3956
3957 * editfns.c (Ftranspose_regions): Use xfree instead of free.
3958
3959 * callproc.c (child_setup): Use xfree instead of free.
3960
3961 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
3962 instead of malloc.
3963 (run_mac_command, closedir): Use `xfree' instead of `free'.
3964
3965 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
3966
3967 * eval.c (error): Use xfree instead of free.
3968
1fd4c450
GM
3969 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
3970
3971 * fns.c: Replace `illegal' with `invalid'.
e49aa397 3972 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 3973
82d497fc
KH
39742000-08-05 Kenichi Handa <handa@etl.go.jp>
3975
3976 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
3977 conversion.
3978
59f953a2
NF
39792000-08-04 Noah Friedman <friedman@splode.com>
3980
3981 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
3982 docstring.
3983
688351f2
GM
39842000-08-04 Gerd Moellmann <gerd@gnu.org>
3985
3986 * syntax.c (skip_chars): Fix typo in error message.
3987
2dad51cc
AS
39882000-08-04 Andreas Schwab <schwab@suse.de>
3989
3990 * m/ia64.h: Moved from s/ia64.h.
3991
99bb2c60
KH
39922000-08-04 Kenichi Handa <handa@etl.go.jp>
3993
082a1df2
KH
3994 * process.c (read_process_output): Big simplification. Handle
3995 composition and post-read-conversion of coding system correctly.
3996 (send_process): Handle composition correctly.
3997
3998 * callproc.c (Fcall_process): Handle post-read-conversion of
3999 coding system if any.
4000
99bb2c60
KH
4001 * coding.c (decode_coding_iso2022): More strict check for handling
4002 single shifting.
082a1df2
KH
4003 (coding_restore_composition): Pay attention to the case that
4004 cmp_data is not set properly (because of invalid code in the
4005 source text).
4006 (run_pre_post_conversion_on_str): Include text properties in the
4007 resulting string.
4008 (decode_coding_string): Set members of coding correctly.
99bb2c60 4009
f4988be7
GM
40102000-08-03 Gerd Moellmann <gerd@gnu.org>
4011
4012 * s/ia64.h: New file.
4013
4014 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
4015 Use NULL instead of 0 at the end of variable argument list of
4016 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
4017 sizeof (int) < sizeof (void *).
4018
4019 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
4020 of variable argument lists of XtVaGetValues and XtVaSetValues.
4021
4022 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
4023 variable argument lists of XtVaGetValues and XtVaSetValues.
4024
ead53494
GM
40252000-08-02 Gerd Moellmann <gerd@gnu.org>
4026
4027 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
4028 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
4029
4030 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
4031 prototype.
4032
4033 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
4034 in call to Fsingle_key_description.
4035
4036 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
4037 Callers changed.
4038
40392000-08-02 Colin Walters <walters@cis.ohio-state.edu>
4040
4041 * window.c (display_buffer_reuse_frames): New variable.
4042 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
4043 frames displaying BUFFER.
4044 (syms_of_window): Define Lisp variable
4045 display-buffer-reuse-frames.
4046
10b0f752
MB
40472000-08-01 Miles Bader <miles@gnu.org>
4048
4049 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
4050 when to constrain NEW_POS (they were pretty screwed up before).
4051
16425c4a
EZ
40522000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
4053
4054 * msdos.c (run_msdos_command): Save and restore the master
4055 environment, for the case that child_setup signals an error.
4056 When mirroring slashes in DOS shell commands, don't fail when
4057 argv[2] has embedded blanks.
da288c14
EZ
4058 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
4059 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
4060 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
4061
4062 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
4063 using alloca; free it after run_msdos_command returns.
4064
27f73852
DL
40652000-07-27 Dave Love <fx@gnu.org>
4066
4067 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
4068 define.
4069 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
4070 working.
4071
4072 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
4073
c0261b5e
EZ
40742000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
4075
4076 * editfns.c (lisp_time_argument): Fix last change.
4077
b548072f
GM
40782000-07-27 Gerd Moellmann <gerd@gnu.org>
4079
3ab82477
GM
4080 * fns.c (Fdelete): Make it work on vectors and strings in addition
4081 to lists.
4082
b548072f
GM
4083 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
4084 (syms_of_fns): Initialize new variables.
4085 (sweep_weak_table): Handle weakness `key-or-value' and
4086 `key-and-value'.
4087 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
4088 weakness, with t meaning the same as `key-and-value'.
4089
91ae8751
KH
40902000-07-27 Kenichi Handa <handa@etl.go.jp>
4091
4092 * coding.h (struct coding_system): Member safe_charset deleted.
4093
4094 * coding.c (Qsafe_charsets): This variable deleted.
4095 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
4096 variables.
4097 (coding_safe_chars): New function.
4098 (CODING_SAFE_CHAR_P): New macro.
4099 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
4100 checking safe_charsets member of the coding system. Caller
4101 changed.
4102 (detect_coding_iso2022): New local variable safe_chars.
4103 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
4104 safe_charsets member of the coding system.
4105 (decode_coding_iso2022): New local variable safe_chars.
4106 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
4107 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
4108 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
4109 (ENCODE_UNSAFE_CHARACTER): New macro.
4110 (encode_coding_iso2022): New local variable safe_chars. Check
4111 unsafe chars.
4112 (setup_coding_system): Delete the code to initialize
4113 coding->safe_charses
4114 (intersection, find_safe_codings): New functions.
4115 (Ffind_coding_systems_region_internal): New function.
4116 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
4117 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
4118 variable and initialize it.
4119
4120 * fns.c (char_table_ref_and_index): New function.
4121
4122 * lisp.h (char_table_ref_and_index): Add prototype.
4123
34a7a267
SS
41242000-07-26 Sam Steingold <sds@gnu.org>
4125
4126 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 4127 (Ffloat_time): New built-in Lisp function.
34a7a267 4128
a95cb10a
GM
41292000-07-26 Gerd Moellmann <gerd@gnu.org>
4130
3353ef5a
GM
4131 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
4132 for the character code.
4133
4134 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
4135 GNU/Linux.
4136
a95cb10a
GM
4137 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
4138 if called for a popup menu.
4139 (xmenu_show): Store help string in widget values.
4140
b4a12321
DL
41412000-07-26 Dave Love <fx@gnu.org>
4142
4143 * syswait.h: Move some definitions.
4144 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
4145 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
4146 perspicuous definitions.
4147 (WTERMSIG): Fix bit pattern used.
4148
13f5ad37
KH
41492000-07-26 Kenichi Handa <handa@etl.go.jp>
4150
4151 * print.c (print_object): If vector printing is truncated, print
4152 "..." to indicate it as well as the case of list printing.
4153
070fe99c
GM
41542000-07-25 Gerd Moellmann <gerd@gnu.org>
4155
969065c3
GM
4156 * xdisp.c (next_element_from_display_vector): Improve comments.
4157
4158 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
4159 for the character code, and the rest for the face id as in 20.x.
4160 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
4161
4162 * window.c (window_display_table): Cleaned up.
4163
070fe99c
GM
4164 * syntax.c (Fforward_word): Add last arg nil in call of
4165 Fconstrain_to_field.
4166
bad77ef7
EZ
41672000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
4168
969065c3 4169 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
4170 identical but for the letter-case, don't call
4171 barf_or_query_if_file_exists.
4172
c28da489
MB
41732000-07-25 Miles Bader <miles@gnu.org>
4174
4175 * editfns.c (find_field): Honor special `boundary' fields.
4176 (Qboundary): New variables.
4177 (syms_of_editfns): Initialize Qboundary.
4178 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
4179 Use scan_buffer instead of find_before_next_newline, because it
4180 allows us to detect the boundary case where there's a newline at
4181 the search limit.
4182 * lisp.h (Fconstrain_to_field): Update external declaration.
4183
e3c31fd5
GM
41842000-07-24 Gerd Moellmann <gerd@gnu.org>
4185
4186 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
4187 if that is nil.
c28da489 4188
c66c29a2
DL
41892000-07-24 Dave Love <fx@gnu.org>
4190
4191 * s/sunos4-0.h, s/sol2.h:
4192 (LIBS_TERMCAP): Move from m/sparc.h.
4193
4194 * m/sparc.h (TERMINFO): Moved to system files (probably only
4195 relevant for sunos4 judging by its vintage).
4196 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
4197 __arch64__.
4198
fbe0a958
EZ
41992000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
4200
4201 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
4202 name to single_keymap_panes.
4203
7d88e5c9
AS
42042000-07-24 Andreas Schwab <schwab@suse.de>
4205
4206 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
4207
e024b101
GM
42082000-07-24 Gerd Moellmann <gerd@gnu.org>
4209
4210 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
4211 parameters instead of using int parameters. Expect FN to accept
4212 EMACS_INT parameters.
4213 (display_echo_area, resize_echo_area_axactly, current_message)
4214 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
4215 with new argument list.
4216 (resize_mini_window_1): New callback function.
4217 (current_message_1, truncate_message_1, set_message_1): Change
4218 parameter lists to the new format expected by
4219 with_echo_area_buffer.
4220
25c1a9ce
KH
42212000-07-24 Kenichi Handa <handa@etl.go.jp>
4222
4223 * fontset.c (fontset_ref): Remove INLINE declaration.
4224 (fontset_ref_via_base): Likewise.
4225 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
4226 to downcase.
4227
7f987ac0
EZ
42282000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
4229
4230 * msdos.c (IT_note_mouse_highlight): Process overlays in the
4231 correct order of priority. If help echo was found in an overlay,
4232 use that overlay as the object in which the help echo was found.
4233
e2db3069
MB
42342000-07-22 Miles Bader <miles@gnu.org>
4235
4236 * textprop.c (Fprevious_single_char_property_change): The initial
4237 property value should be from the position preceding POSITION, not
4238 following it.
4239
5e3203e4
EZ
42402000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
4241
4242 * coding.c (syms_of_coding): Doc fix for
4243 inhibit-iso-escape-detection.
4244
62145073
GM
42452000-07-21 Gerd Moellmann <gerd@gnu.org>
4246
c20aeb83
GM
4247 * xterm.c (note_mouse_highlight): Process overlays in the right
4248 order of priority.
34a7a267 4249
743934db
GM
4250 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
4251
4252 * xterm.c (note_mouse_highlight): If help-echo was found in an
4253 overlay, use that overlay as the object in which the help was
4254 found.
4255
d1dc7e43 4256 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 4257
62145073
GM
4258 * window.c (foreach_window): Instead of a fake variable argument
4259 list, take one USER_DATA argument.
4260 (foreach_window_1): Likewise, and call callback functions with two
4261 args, the window and USER_DATA.
4262 (struct check_window_data): New struct.
4263 (check_window_containing): Use it.
4264 (window_from_coordinates): Set up a struct check_window_data for
4265 foreach_window.
4266 (add_window_to_list, freeze_window_start): Change parameters
4267 according to new calling convention.
4268
4269 * window.h (foreach_window): Change prototype.
4270
4271 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
4272
42732000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
4274
4275 * xmenu.c (menu_help_callback): Call show_help_echo with
4276 additional arguments OBJECT and POS.
4277
11270583
KH
42782000-07-21 Kenichi Handa <handa@etl.go.jp>
4279
07b14857
KH
4280 * data.c (Faset): Allow storing any multibyte character in a
4281 string. Convert unibyte string to multibyte if necessary.
4282
11270583
KH
4283 * xfns.c (x_encode_text): New function.
4284 (x_set_name): Use x_encode_text.
4285 (x_set_title): Likewise.
4286
4287 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
4288
4289 * xterm.h (x_encode_text): Add prototype.
4290
bc75b4fd
DL
42912000-07-20 Dave Love <fx@gnu.org>
4292
4293 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
4294 xfree, not free.
4295
48c14970
EZ
42962000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
4297
4298 * msdos.c (help_echo_window): New variable.
4299 (syms_of_msdos): Initialize and staticpro it.
4300 (IT_note_mode_line_highlight): Set help_echo_window.
4301 (IT_note_mouse_highlight): Ditto.
4302 (dos_rawgetc): Store help_echo_window in the second event produced
4303 for HELP_EVENTs.
4304
4305 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
4306 Record the object that generated the help echo and the position of
4307 that object in help_echo_object and help_echo_pos. Record that
4308 some glyphs in a row are displayed in mouse-face.
4309 (IT_update_begin): Don't clear mouse highlight unless one of the
4310 enabled glyph rows is marked as being displayed in mouse-face.
4311 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
4312 and position recorded in help_echo_object and help_echo_pos to the
4313 event queue.
4314 (IT_menu_display): Accept a new argument PN: the pane number of
4315 the current menu pane. Record the pane number and the item
4316 number of the item which has associated help string.
4317 (XMenuActivate): Update the prototype for help_callback in
4318 function declaration. Call IT_menu_display with the current menu
4319 pane number as an additional argument. Call help_callback with
4320 two additional arguments: the pane number and the item number of
4321 the menu item associated with the help text.
4322 (help_echo_object, help_echo_pos): New variables.
4323 (syms_of_msdos): Initialize them and staticpro help_echo_object.
4324
4325 * msdos.h (XMenuActivate): Update prototype.
4326
4279296d
GM
43272000-07-19 Gerd Moellmann <gerd@gnu.org>
4328
47db06aa
GM
4329 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
4330 Add some more prototypes.
4331
4332 * xterm.c, xterm.h: Add some more prototypes.
4333
4334 * lisp.h (Fnext_single_char_property_change): Add prototype.
4335
4336 * dispnew.c (direct_output_for_insert): Remove confusing
4337 outer local variable mouse_face_overwritten_p.
4338 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
4339
4279296d
GM
4340 * alloc.c (allocate_string_data): Don't copy old string contents.
4341
670acd62
KH
43422000-07-19 Kenichi Handa <handa@etl.go.jp>
4343
4344 * coding.c (code_convert_region): Delete text properties before
4345 shrinking the conversion region.
4346
7cea38bc
GM
43472000-07-18 Gerd Moellmann <gerd@gnu.org>
4348
dc1cac59
GM
4349 * dispnew.c (update_text_area): Write the whole row if it
4350 has mouse-face in it.
4351
85a8aca9
GM
4352 * xfaces.c (face-alternative-font-family-alist): Remove
4353 DEFVAR_LISP; staticpro instead.
4354
34a7a267 4355 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
4356 new arguments.
4357
4358 * keyboard.c (show_help_echo): Add parameter WINDOW.
4359 (read_char): Call show_help_echo with window extracted from Lisp
4360 help event.
4361 (gen_help_event): Add parameter WINDOW.
4362
4363 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
4364
4365 * xterm.c (help_echo_window): New variable.
4366 (note_mouse_highlight, note_tool_bar_highlight): Set
4367 help_echo_window.
4368 (XTread_socket): Pass help_echo_window to gen_help_event.
4369 (syms_of_xterm): Initialize and staticpro help_echo_window.
4370
f8276b77
DL
43712000-07-18 Dave Love <fx@gnu.org>
4372
4373 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
4374 systime.h.
4375
088831a6
GM
43762000-07-18 Gerd Moellmann <gerd@gnu.org>
4377
3d6cd763
GM
4378 * alloc.c (allocate_string_data): If string had already data
4379 assigned, copy old contents to new string data.
4380
4381 * coding.c (syms_of_coding): Fix typo in spelling of variable
4382 `inhibit-iso-escape-detection'.
4383
088831a6
GM
4384 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
4385
4386 * Makefile.in: Add dependencies on dispextern.h.
4387 (alloca.o): Don't define malloc and define EMACS_FREE instead of
4388 `free'; both can conflict with system header files.
4389
bc8a8d55
KH
43902000-07-18 Kenichi Handa <handa@etl.go.jp>
4391
4392 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
4393 undefined.
4394
069f5950
DL
43952000-07-18 Dave Love <fx@gnu.org>
4396
4397 * window.c (Fwindow_list): Declare arg `window'.
4398
aa96c820
KH
43992000-07-18 Kenichi Handa <handa@etl.go.jp>
4400
4401 * coding.c (setup_coding_system): Don't override the explicitly
4402 specified designations.
4403
06be8d32
MB
44042000-07-15 Miles Bader <miles@gnu.org>
4405
4406 * editfns.c (char_property_eq, char_property_stickiness): Renamed
4407 from `text_property_eq' and `text_property_stickiness', respectively.
4408 (find_field, Fconstrain_to_field, char_property_eq)
4409 (char_property_stickiness): Changed to call char-property functions
4410 instead of text-property-only ones.
4411
4412 * textprop.c (Fnext_single_char_property_change): Made a subr (was
4413 `next_single_char_property_change'). Do more error checking, and
4414 cleanup limit behavior.
4415 (Fprevious_single_char_property_change): New function.
4416 (syms_of_textprop): Initialize new subrs.
4417
4418 * xdisp.c (display_prop_end, invisible_text_between_p):
4419 Call Fnext_single_char_property_change instead of
4420 next_single_char_property_change.
4421
3fddcdc3
JR
44222000-07-15 Jason Rumney <jasonr@gnu.org>
4423
4424 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
4425 after menu is finished with.
4426 (add_menu_item): Only consider wv->title as a menu title.
4427 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
4428
4429 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
4430 null title.
4431 (FONT_REGEXP): Remove unused macro, and its sub-components.
4432 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
4433
4434 * w32term.c (help_echo_object, help_echo_pos): New variables.
4435 (note_mode_line_highlight): Store additional information about the
4436 help-echo in help_echo_object and help_echo_pos. Check both
4437 `local-map' and `keymap' properties for changing the cursor
4438 (note_mouse_highlight): Store additional information about the
4439 help-echo in help_echo_object and help_echo_pos.
4440 (note_tool_bar_highlight): Set help_echo_object to nil and
4441 help_echo_pos to -1.
4442 (w32_read_socket): Use gen_help_event instead of filling
4443 input_events manually.
4444 (syms_of_w32term): Staticpro help_echo_object.
4445 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
4446 set, arrange for a mouse-highlight redisplay in
4447 XTframe_up_to_date.
4448 (x_clear_mouse_face): New function.
4449 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
4450 (x_update_window_begin): No need to turn off the mouse
4451 highlight here.
4452 (show_mouse_face): Set the mouse_face_p flag of glyph rows
4453 depending on whether they contain glyphs highlighted in
4454 mouse-face.
4455 (x_fill_stretch_glyph_string): Consume runs of stretch
4456 glyphs instead of a single one.
4457 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
4458 with new argument list.
4459 (x_set_glyph_string_gc): Make sure the face's GC is valid.
4460 (x_append_glyph, x_append_composite_glyph)
4461 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
4462 changes in struct glyph starting 1999-12-27. See comments for
4463 xterm.c on 2000-07-05.
4464
178c5d9c
SS
44652000-07-14 Sam Steingold <sds@gnu.org>
4466
4467 * xfaces.c (realize_x_face): Fix the last patch:
4468 check `default_face' before dereferencing.
4469
6fe533f6
DL
44702000-07-14 Dave Love <fx@gnu.org>
4471
069f5950 4472 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 4473
dd7b81cf
KH
44742000-07-14 Kenichi Handa <handa@etl.go.jp>
4475
0693904a 4476 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 4477 default_face's fontset, not using the default fontset.
0693904a 4478
dd7b81cf
KH
4479 * coding.c (inhibit_iso_escape_detection): New variable.
4480 (syms_of_coding): Make it a Lisp variable.
4481 (detect_coding_iso2022): If inhibit_iso_escape_detection is
4482 nonzero, ignore ISO2022's escape sequence.
4483
d5aa31d8
GM
44842000-07-14 Gerd Moellmann <gerd@gnu.org>
4485
e5acf0ca
GM
4486 * alloca.c (malloc) [emacs]: Define as xmalloc.
4487
bd23a692
GM
4488 * xfns.c (Fx_show_tip): If frame parameters contain a position,
4489 use that instead of the mouse position. Add parameters DX and DY.
4490
4491 * dispextern.h (Fx_show_tip): Adjust number of parameters
4492 in prototype.
4493
9662da0b
GM
4494 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
4495 if HELP is a function, call it with OBJECT and POS as parameters
4496 to get the help to display.
4497 (gen_help_event, kbd_buffer_store_help_event): New functions.
4498 (kbd_buffer_get_event): Construct the Lisp help-event differently.
4499 (read_char): Call show_help_echo with new parameters.
4500
178c5d9c 4501 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
4502 Add prototypes.
4503
4504 * xterm.c (help_echo_object, help_echo_pos): New variables.
4505 (note_mode_line_highlight): Store additional information about the
4506 help-echo in help_echo_object and help_echo_pos. Check both
4507 `local-map' and `keymap' properties for changing the cursor
4508 (note_mouse_highlight): Store additional information about the
4509 help-echo in help_echo_object and help_echo_pos.
4510 (note_tool_bar_highlight): Set help_echo_object to nil and
4511 help_echo_pos to -1.
4512 (XTread_socket): Use gen_help_event instead of filling
4513 input_events manually.
4514 (syms_of_xterm): Staticpro help_echo_object.
4515
4516 * xmenu.c (menu_highlight_callback): Use
4517 kbd_buffer_store_help_event instead of setting up and input_event
4518 structure manually.
4519
4520 * xdisp.c (eval_form): GCPRO argument sexpr.
4521 (call_function): New function.
4522 (handle_single_display_prop): Use call_function and FUNCTIONP
4523 instead of checking whether if font_height is a symbol and
4524 using eval_form.
4525
4526 * eval.c (internal_condition_case_2): New function.
4527
4528 * lisp.h (FUNCTIONP): New macro.
4529 (internal_condition_case_2, call_function): Add prototypes.
4530
d5aa31d8
GM
4531 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
4532 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
4533 Always set `arg' member of input_events.
4534 (construct_menu_click): Unused function removed.
4535
4536 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
4537
4538 * w32term.c (construct_mouse_click, construct_mouse_wheel)
4539 (construct_drag_n_drop, x_scroll_bar_handle_click)
4540 (w32_read_socket): Always set `arg' member of input_events.
4541
4542 * keyboard.c (show_help_echo): Use eval_form. Add comment.
4543
4544 * lisp.h (eval_form): Add prototype.
4545
4546 * xdisp.c (eval_form): Make it externally visible.
4547
0f1a9b23
GM
45482000-07-13 Gerd Moellmann <gerd@gnu.org>
4549
4550 * xterm.c (x_handle_tool_bar_click): Store the frame in the
4551 frame_or_window slot of TOOL_BAR_EVENT input events instead of
4552 consing. For prefix events, store the frame in the `arg' slot of
4553 the event, otherwise store the key there.
4554 (XTread_socket): Instead of consing, use the frame_or_window slot
4555 of HELP_EVENTs for the frame, and the `arg' slot for the help
4556 string.
4557
4558 * xmenu.c (menu_highlight_callback): Store help string in the
4559 `arg' member of the input event; don't cons.
4560 (menubar_selection_callback): Use the `arg' slot of input events
4561 to queue additional information, instead of consing.
4562
4563 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
4564
4565 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
4566 TOOL_BAR_EVENTs.
4567 (w32_read_socket): Adapt to changes in HELP_EVENTs.
4568
4569 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
4570 input events to queue additional information, instead of consing.
4571
4572 * keyboard.c (kbd_buffer_gcpro): Renamed from
4573 kbd_buffer_frame_or_window. Now used for all Lisp objects
4574 referenced from the input queue.
4575 (kbd_buffer_store_event): Always use structure assignment for
4576 copying input events. Record all Lisp objects referenced from
4577 events in kbd_buffer_gcpro.
4578 (kbd_buffer_get_event): Construct Lisp `help-echo' events
4579 differently from input events. Test for prefix menu_bar_events
4580 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
4581 event in kbd_buffer_gcpro to nil.
4582 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
4583 frame_or_window is equal to its arg member as prefix events.
4584 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
4585 used by an input event to nil.
4586 (init_keyboard): Use two times the size of the input queue
4587 for kbd_buffer_gcpro.
4588 (syms_of_keyboard): Likewise.
4589
4590 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
4591 USER_SIGNAL_EVENT.
4592
4593 * termhooks.h (struct input_event): Add member `arg'.
4594 (MENU_BAR_EVENT): Renamed from menu_bar_event.
4595 (USER_SIGNAL_EVENT): Renamed from user_signal.
4596
4597 * xfaces.c (ASET): Remove definition.
4598
4599 * lisp.h (AREF, ASET, ASIZE): New macros.
4600
4601 * fontset.c (AREF, ASIZE): Remove definitions.
4602
4603 * fns.c (AREF): Remove definition.
178c5d9c 4604
0f1a9b23
GM
4605 * composite.c (AREF): Remove definition.
4606
712eaef2
GM
46072000-07-12 Gerd Moellmann <gerd@gnu.org>
4608
d8ee7803
GM
4609 * dispnew.c (redraw_overlapped_rows): Add missing local.
4610 (scrolling_window): Remove debug code.
4611
712eaef2
GM
4612 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
4613 Before scrolling, turn off a mouse-highlight in the window
4614 being scrolled.
4615
4616 * xterm.c (x_update_window_end): Add parameter
4617 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
4618 redisplay in XTframe_up_to_date.
4619 (x_clear_mouse_face): New function.
4620 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
4621
4622 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
4623 current glyph row.
4624 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
4625 it when any row is written to that contains glyphs highlighted in
4626 mouse-face.
4627 (update_window): Call the window update end hook with new
4628 parameter MOUSE_FACE_OVERWRITTEN_P.
4629 (direct_output_for_insert): Give up if row contains mouse-face.
4630
4631 * dispextern.h (struct redisplay_interface): Add parameter
4632 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
4633 (clear_mouse_face): New function pointer member.
4634
02010917
SM
46352000-07-11 Stefan Monnier <monnier@cs.yale.edu>
4636
4637 * syntax.c (back_comment): Use one switch rather than a few `if's.
4638 Obey open_paren_in_column_0_is_defun_start.
4639 When reverting to the `slow' method, try to nicely handle the case
4640 of nested comments by checking that the comment-starter we found
4641 does indeed match the comment-ender.
4642 (scan_sexps_forward, scan_sexps_forward):
4643 Ignore excessive opening parenthesis rather than throwing an error.
4644
d76c03ea
GM
46452000-07-11 Gerd Moellmann <gerd@gnu.org>
4646
4647 * doc.c (Fsubstitute_command_keys): Handle case that a GC
4648 in Fwhere_is_internal or get_keymap_1 relocates string contents.
4649
4650 * dispnew.c (direct_output_forward_char): Give up if currently
4651 displaying a message instead of the minibuffer contents.
4652
4653 * xterm.c (x_update_window_begin): No need to turn off the mouse
4654 highlight here.
4655 (show_mouse_face): Set the mouse_face_p flag of glyph rows
4656 depending on whether they contain glyphs highlighted in
4657 mouse-face.
4658
4659 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
4660 compare the mouse_face_p flags of both rows.
4661
4662 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
4663
d55ead18
EZ
46642000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
4665
4666 * keyboard.c (show_help_echo): Accept additional parameter
4667 ok_to_overwrite_keystroke_echo.
4668 (read_char): Call show_help_echo with a zero
4669 ok_to_overwrite_keystroke_echo argument.
4670 * keyboard.h (show_help_echo): Update prototype of
4671 show_help_echo.
4672 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
4673 ok_to_overwrite_keystroke_echo argument.
4674 * w32menu.c (w32_menu_display_help): Call show_help_echo with
4675 non-zero ok_to_overwrite_keystroke_echo argument.
4676
df75b1a3
GM
46772000-07-10 Gerd Moellmann <gerd@gnu.org>
4678
4b92c49a
GM
4679 * xdisp.c (try_window_id): If changes are all below what is
4680 displayed in the window, and point is in the window, we still
4681 might have to find point on the display.
4682
4683 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
4684 glyphs instead of a single one.
4685 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
4686 with new argument list.
4687 (x_set_glyph_string_gc): Make sure the face's GC is valid.
4688
df75b1a3
GM
4689 * keymap.c (get_keymap_1): Add comment that this function can GC.
4690 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
4691 comment that functions can GC.
4692 (Fset_keymap_parent): GCPRO arg KEYMAP.
4693
4314cf3e
EZ
46942000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
4695
4696 * msdos.c (XMenuActivate): After exiting the menu, restore the
4697 echo area message and erase it.
4698
ab49ce15
KH
46992000-07-10 Kenichi Handa <handa@etl.go.jp>
4700
4701 * fontset.c (Ffontset_info): Make the return value more compatible
4702 with that of Emacs 20.
4703
090a072f
GM
47042000-07-07 Gerd Moellmann <gerd@gnu.org>
4705
4706 * eval.c (Fsignal): Handle case that backtrace_list is null.
4707
f92de4a6
KH
47082000-07-07 Kenichi Handa <handa@etl.go.jp>
4709
4710 * ccl.c (Fccl_execute): Typo fixed.
4711
dd8888a1
GM
47122000-07-06 Gerd Moellmann <gerd@gnu.org>
4713
e5c81191 4714 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 4715
dd8888a1
GM
4716 * window.c (Fwindow_list): Reverse list at the end.
4717 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
4718 means allow windows on OWINDOW's frame, only.
4719 (window_loop): Simplified; use Fwindow_list.
4720
4721 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
4722
485266d0
GM
47232000-07-05 Gerd Moellmann <gerd@gnu.org>
4724
4725 * xterm.c (XTread_socket): Increment handling_signal at the start,
4726 decrement it at the end.
4727
4728 * eval.c (handling_signal): New variable.
4729 (Fsignal): Abort if handling_signal is non-zero.
4730
4731 * lisp.h (handling_signal): External declaration.
178c5d9c 4732
485266d0
GM
4733 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
4734
80fcd514
KR
47352000-07-05 Ken Raeburn <raeburn@gnu.org>
4736
4737 Sound support for NetBSD through "Linux emulation" support:
4738 * config.in (HAVE_SOUNDCARD_H): Undef.
4739 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
4740 * Makefile.in (LIBSOUND): New variable.
4741 (LIBES): Include it.
4742 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
4743 <soundcard.h>.
4744 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
4745 elsewhere.
4746 (vox_open): Use DEFAULT_SOUND_DEVICE.
4747 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
4748
d5c5cddd
GM
47492000-07-05 Gerd Moellmann <gerd@gnu.org>
4750
4751 * print.c (print_error_message): If Vsignaling_function is set,
4752 show it in *Messages*.
4753
4754 * lisp.h (Vsignaling_function): External declaration.
4755
4756 * eval.c (Vsignaling_function): New variable.
4757 (Fsignal): Compute it.
4758 (syms_of_eval): Staticpro it.
4759
65171e3a
DL
47602000-07-05 Dave Love <fx@gnu.org>
4761
4762 * syswait.h: Use the autoconf recommended approach. Old code
4763 #if'd out in case we need to revert.
4764
178c5d9c 4765 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 4766
e2c46326
AI
47672000-07-05 Andrew Innes <andrewi@gnu.org>
4768
4769 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
4770 when non-NULL instead of __morecore, to take account of buffer
4771 memory. This also solves a problem with spurious memory warnings
4772 on Windows.
4773
4774 * ralloc.c: Make real_morecore non-static.
4775
4776 * eval.c (internal_condition_case): Comment out abort if
4777 interrupt_input_blocked is not zero.
4778
4779 * makefile.nt: Add support for `bootstrap' and related targets.
4780 Include minimal debug info in emacs.exe in release build.
4781 Remove all dependencies on lisp.h, and fixup some others.
4782
4783 * w32.c (init_environment): Install code from 20.7 for providing
4784 default values for environment variables, based on the
4785 executable's own location.
4786 (map_w32_filename): Handle filenames that are longer than
4787 MAX_PATH.
4788 (sys_socket): Install socket inheritance bug fix from 20.7.
4789
4790 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
4791 here via blockinput.h).
4792
a027a91b
SM
47932000-07-05 Stefan Monnier <monnier@cs.yale.edu>
4794
e4b31601
SM
4795 * w32menu.c (w32_menu_display_help):
4796 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
4797
4798 * keyboard.h (show_help_echo): Declare.
4799
4800 * keyboard.c (show_help_echo): New function, extracted from read_char.
4801 Feval its `msg' argument if it's a cons cell.
4802 (read_char): Use it.
4cf8d9d5 4803 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 4804
178c5d9c 4805 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 4806 (note_tool_bar_highlight, XTread_socket):
178c5d9c 4807 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
4808 (dos_rawgetc):
4809 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
4810 (note_tool_bar_highlight, w32_read_socket):
4811 Do not gratuitously ignore non-string `help-echo' properties.
4812
88d75730
GM
48132000-07-05 Gerd Moellmann <gerd@gnu.org>
4814
969f7e79
GM
4815 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
4816
71201b00
GM
4817 * window.c (delete_all_subwindows): Reset Vwindow_list.
4818
88d75730
GM
4819 * xterm.c (x_append_glyph, x_append_composite_glyph)
4820 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
4821 changes in struct glyph starting 1999-12-27. Some bit-fields of
4822 struct glyph were not set, which made glyphs unequal when compared
4823 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
4824 effects were the result. This also depended on the contents of
4825 memory returned by xmalloc. If flickering happens again, activate
4826 the code in clear_glyph_row that's in #if 0. If the flickering is
4827 gone with that, chances are that it is caused by something
4828 similar.
4829
4830 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 4831
88d75730
GM
4832 * dispextern.h: Add some comments.
4833
4834 * window.c (add_window_to_list): Add parameter LIST.
4835 (window_list): Order list so that, for each frame, windows are
4836 in canonical order, and so that frames appear in the list in
4837 the order given by Vframe_list.
4838 (next_window): Reverse the handling of NEXT_P.
4839
53654733
GM
48402000-07-04 Gerd Moellmann <gerd@gnu.org>
4841
87efd256
GM
4842 * window.c (Vwindow_list): New variable.
4843 (make_window, delete_window): Set Vwindow_list to nil.
4844 (check_window_containing): New function.
4845 (window_from_coordinates): Rewritten.
4846 (add_window_to_list, window_list, candidate_window_p)
4847 (decode_next_window_args, next_window): New functions.
4848 (Fnext_window, Fprevious_window): Rewritten in terms of
4849 next_window.
4850 (Fwindow_list): New function.
4851 (Fother_window): Cleaned up.
4852 (foreach_window): Add a longer "variable argument list". Let
4853 callback function return 0 to indicate that cycling over windows
4854 should stop.
4855 (foreach_window_1): Likewise.
4856 (freeze_window_start): Return int.
4857 (init_window): New function.
4858 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
4859
4860 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
4861 input_event with bzero.
4862 (main): Call init_window.
4863
53654733
GM
4864 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
4865 a menu filter.
4866
4a8c194f
KH
48672000-07-04 Kenichi Handa <handa@etl.go.jp>
4868
4869 * composite.h (make_composition_value_copy): Extern it.
4870
4871 * composite.c (make_composition_value_copy): New function.
4872
4873 * editfns.c (Fformat): While copying text properties, make each
4874 composition property value a copy.
4875
4876 * fns.c (concat): While copying text properties, make each
4877 composition property value a copy.
4878
831a6cb0
GM
48792000-07-03 Gerd Moellmann <gerd@gnu.org>
4880
2f516940
GM
4881 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
4882
178c5d9c 4883 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
4884 marked already.
4885
831a6cb0
GM
4886 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
4887 include those frames as candidates which have their focus
4888 redirected to the minibuffer frame.
4889
d9c4f922
SM
48902000-07-03 Stefan Monnier <monnier@cs.yale.edu>
4891
4892 * fns.c (Fputhash): Return `value' rather than nil.
4893
3780bc22
GM
48942000-06-30 Gerd Moellmann <gerd@gnu.org>
4895
97d176db
GM
4896 * frame.c (next_frame): Don't check focus redirection in case
4897 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
4898 unless their focus is redirected, which contradicts the
4899 specification of next-frame, and leads to infinite loops in
4900 certain situations when cycling through windows with next-window.
4901
dca9961d
KH
49022000-06-30 Kenichi Handa <handa@etl.go.jp>
4903
4904 * coding.c (code_convert_region): Even if the length of text is
4905 zero, try to convert it if coding->type is coding_type_ccl.
4906 (decode_coding_string, encode_coding_string): Likewise.
4907
d5483ab1
GM
49082000-06-28 Gerd Moellmann <gerd@gnu.org>
4909
af5c25e1 4910 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 4911 the display if windows_or_buffers_changed.
af5c25e1
GM
4912
4913 * dispnew.c (struct row_entry): New structure.
4914 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
4915 (row_table_size, old_lines, new_lines, old_lines_size)
4916 (new_lines_size, run_pool, runs_size, runs): New variables.
4917 (add_row_entry): New function.
4918 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 4919 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
4920 holding them in local variables. Use a larger hash table whose
4921 size depends on glyph matrix sizes. Don't use bzero to clear the
4922 hash table; instead, clear used slots only.
4923
4924 * fns.c (next_almost_prime): Make it externally visible.
4925
4926 * lisp.h (next_almost_prime): Add prototype.
4927
d5483ab1
GM
4928 * s/isc4-0.h (sigunblock): Define.
4929
4930 * s/sco5.h (sigunblock): Define.
4931
93e40f40
DL
49322000-06-27 Dave Love <fx@gnu.org>
4933
4934 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
4935 (moved to osf5-0.h).
4936 [!NOT_C_CODE]: Protect string.h stuff.
4937
4938 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
4939 (sys_siglist, NSIG): Definitions moved here from osf1.h.
4940
3c4b7685
GM
49412000-06-27 Gerd Moellmann <gerd@gnu.org>
4942
97d176db 4943 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
4944 below the last line from the needed window height.
4945
32cad0aa
SM
49462000-06-26 Stefan Monnier <monnier@cs.yale.edu>
4947
4948 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
4949 (Fwidget_get): Use it.
4950 (syms_of_fns): Defsubr it.
4951
2c69ced2
GM
49522000-06-26 Gerd Moellmann <gerd@gnu.org>
4953
178c5d9c 4954 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
4955 display info for XIM.
4956 (xim_open_dpy): Likewise.
4957 (xim_close_dpy): Don't free the display info's XIM.
4958
4959 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
4960
4961 * config.in (USE_XIM): New define.
4962
3fc720e4
GM
4963 * keymap.c (get_keyelt): For menu-items containing a `:filter
4964 FILTER', apply FILTER to the menu-item's definition to get the
4965 real definition to use.
4966
4967 * lisp.h (QCfilter): External declaration.
4968
2c69ced2
GM
4969 * xfns.c (Fimage_size): New function.
4970 (syms_of_xfns): Defsubr it.
4971
f978b2a2
AS
49722000-06-26 Andreas Schwab <schwab@suse.de>
4973
4974 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
4975 Fstring_as_unibyte.
4976
94cc7892
DL
49772000-06-25 Dave Love <fx@gnu.org>
4978
4979 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
4980 tgetnum.
4981
4982 * Makefile.in (blockinput.h): Depend on atimer.h.
4983 (atimer.h): Depend on systime.h.
4984
4985 * blockinput.h: Protect against multiple inclusion. Include
4986 atimer.h.
4987
4988 * atimer.h: Protect against multiple inclusion. Include
4989 systime.h.
4990
4991 * lisp.h (swap_in_global_binding): Declare.
4992
b8c24556
KR
49932000-06-24 Ken Raeburn <raeburn@gnu.org>
4994
4995 * process.c (Fopen_network_stream): Turn off atimers for duration
4996 of call to connect. (Patch from Gerd.)
4997
8cf8560b
DL
49982000-06-23 Dave Love <fx@gnu.org>
4999
511c7541
DL
5000 * ralloc.c: Maybe include unistd.h
5001
8cf8560b
DL
5002 * emacs.c (setgrp): Undefine before defining.
5003 (malloc_warning, set_time_zone_rule, index): Prototype.
5004
5005 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
5006 HAVE_STRUCT_TIMEZONE.
5007
5008 * s/osf1.h: Move string.h hack here from alpha.h and make it
5009 conditional.
5010 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
5011 _XOPEN_SOURCE.
5012 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
5013 (SOCKLEN_TYPE): Don't define.
5014
5015 * m/alpha.h: Remove string.h hack.
5016
5017 * s/osf5-0.h: New file.
5018
5019 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
5020 include time.h, done by systime.h.
5021 [__FreeBSD__]: Remove redundant includes.
5022
3fc720e4 5023 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
5024 (delete_temp_file): Return Qnil to avoid warning.
5025
5026 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
5027
5028 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
5029 HAVE_X_WINDOWS.
5030
5031 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
5032
5033 * composite.h (compose_text): Declare.
5034
5035 * xterm.c: Don't include sys/types.h unconditionally. Don't
5036 protect its inclusion with !USG (following xmenu.c).
5037
ea055732
GM
50382000-06-23 Gerd Moellmann <gerd@gnu.org>
5039
5040 * xfns.c (x_create_tip_frame): Initialize frame's colors like
5041 in x_create_frame.
5042
74b01b80
EZ
50432000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
5044
5045 * coding.c (decode_eol_post_ccl): Special handling for undecided
5046 and inconsistent EOL types.
5047
64f3a166
GM
50482000-06-22 Gerd Moellmann <gerd@gnu.org>
5049
16cf31f7
GM
5050 * xrdb.c (x_load_resources): Add default resource for scroll bar's
5051 trough color and main window's background color.
5052
178c5d9c 5053 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
5054 differently.
5055
5056 * xterm.h (Xt_app_con): External declaration.
5057
5058 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 5059
486a103d
GM
5060 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
5061
64f3a166
GM
5062 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
5063 (handle_invisible_prop): Record the start of invisible text in
5064 it->add_overlay_start.
5065 (struct overlay_entry): Add member `overlay'.
5066 (handle_overlay_change): Simplify.
5067 (next_overlay_string): After having processed overlay strings at the
5068 end of the buffer, record that fact in
5069 it->overlay_strings_at_end_processed_p.
5070 (compare_overlay_entries): If before- and after-strings come
5071 from the same overlay, let before-strings come first.
5072 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
5073 (load_overlay_strings): Take it->add_overlay_start into account
5074 when adding overlay strings.
5075
5076 * dispextern.h (struct it): Add member add_overlay_start.
5077
bb746ea6
DL
50782000-06-22 Dave Love <fx@gnu.org>
5079
5080 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
5081
5082 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
5083
a8f573f3
KH
50842000-06-22 Kenichi Handa <handa@etl.go.jp>
5085
5086 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
5087 is greater than 0.
5088
9f2bbc92
DL
50892000-06-21 Dave Love <fx@gnu.org>
5090
178c5d9c 5091 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 5092
3ee5041c
SM
50932000-06-21 Stefan Monnier <monnier@cs.yale.edu>
5094
5095 * syntax.c (back_comment): Simplify string-parity counting (with
5096 the added benefit of handling multiple string-styles as long as
5097 they are not intertwined).
5098 Jump to the slow code as soon as a comment starter is found in
5099 a "string_lossage" position. Fixes the case: " /* " /* " */.
5100
4c343001
DL
51012000-06-21 Dave Love <fx@gnu.org>
5102
5103 * Makefile.in: Use GETLOADAVG_LIBS.
5104
5105 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
5106 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
5107
e6365855
SM
51082000-06-20 Stefan Monnier <monnier@cs.yale.edu>
5109
5110 * syntax.c (describe_syntax): Recognize the `n'estable bit.
5111 (Fforward_comment, scan_lists):
5112 Check the comstyle of single-char comment-starters.
5113 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
5114 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
5115 Check the comstyle of single-char comment-starters.
5116 Clarify control-flow around the Scomment case.
e6365855 5117
5700d2cc
DL
51182000-06-20 Dave Love <fx@gnu.org>
5119
d355bd8a
SM
5120 * fns.c (make_hash_table, maybe_resize_hash_table):
5121 Cast arg of next_almost_prime.
5700d2cc 5122
178c5d9c 5123 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
5124
5125 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
5126 and unistd.h.
5127
4a27bdfb
GM
51282000-06-20 Gerd Moellmann <gerd@gnu.org>
5129
a61d762c
GM
5130 * keyboard.c (adjust_point_for_property): Check if display
5131 property should be treated as intangible by looking at its
5132 value.
5133
178c5d9c 5134 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
5135 (display_prop_intangible_p): New functions.
5136
5137 * dispextern.h (display_prop_intangible_p): Add prototype.
5138
5139 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 5140
4a27bdfb
GM
5141 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
5142 argument to sigprocmask.
5143
5144 * s/sco5.h (sigblock): Redefined to pass a pointer as second
5145 argument to sigprocmask.
5146
5147 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
5148 sigprocmask_set, and pass a pointer to it to sigprocmask.
5149
5150 * sysdep.c (sigprocmask_set): New variable.
5151
5152 * fileio.c (make_temp_name): Don't use `%s' in string passed to
5153 report_file_error.
5154
427ec082
SS
51552000-06-20 Sam Steingold <sds@gnu.org>
5156
5157 * xrdb.c: Don't declare xmalloc, xrealloc.
5158
8972fe79 51592000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
5160
5161 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
5162 (re_comp): Cast gettext return value to avoid complaints when
5163 !HAVE_LIBINTL.
5164
074b6efe
DL
51652000-06-20 Dave Love <fx@gnu.org>
5166
f85c008a
DL
5167 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
5168 HAVE_GETTIMEOFDAY.
5169
5700d2cc 5170 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 5171
d355bd8a 5172 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
5173
5174 * m/alpha.h: Don't declare xmalloc, xrealloc.
5175
0af4f205
DL
5176 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
5177
5178 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
5179
5180 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
5181
5182 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
5183 HAVE_GETWD.
5184
074b6efe
DL
5185 * keyboard.h (poll_for_input_1): Declare.
5186
5187 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
5188
5189 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
5190
5191 * doprnt.c: Don't declare xmalloc, xrealloc.
5192
5193 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
5194 (getenv, ctime, getwd): Removed.
5195 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
5196
5197 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
5198 x_set_tool_bar_lines.
5199
5200 * config.in: Add HAVE_GETWD. Move some definitions above
5201 machine/system includes.
5202
68a5e97b
KH
52032000-06-20 Kenichi Handa <handa@etl.go.jp>
5204
95417e1e
KH
5205 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
5206
68a5e97b
KH
5207 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
5208 contain information about ENCODING.
5209
5210 * fontset.c (FONTSET_ASCII): Use the first element of char table
5211 for an ASCII font, not defalt slot.
5212 (fontset_ref_via_base): If FONTSET doesn't contain information for
5213 C, try the default fontset.
5214 (make_fontset): Don't copy the default fontset.
5215 (fontset_font_pattern): Likewise.
5216 (accumulate_font_info): If ELT is nil, use the corresponding
5217 element in the default fontset.
5218
3b4fa1b2
DL
52192000-06-19 Dave Love <fx@gnu.org>
5220
943e731c
DL
5221 * syntax.c (Fparse_partial_sexp): Doc fix.
5222
5223 * regex.h: Test PROTOTYPES as well as __STDC__.
5224
3b4fa1b2
DL
5225 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
5226 errno, strerror. Put text after #endif in comment.
5227
5228 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
5229 pcc).
5230
5231 * xterm.c (x_frame_of_widget): Likewise.
5232
cdf0357b
GM
52332000-06-19 Gerd Moellmann <gerd@gnu.org>
5234
5235 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
5236 to Vfundamental_mode_abbrev_table.
5237
5238 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
5239 bogus objects are marked. This slows down GC by ~80 percent, but
5240 it might be worth trying when debugging GC-related problems.
5241 This feature requires conservative stack marking to be enabled.
5242
5243 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
5244 returns XLookupChars, reset `modifiers' to zero.
5245
998e9f8c
DL
52462000-06-19 Dave Love <fx@gnu.org>
5247
5248 * mktime.c: Unprotoized.
5249
18e21ce8 52502000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
5251
5252 * data.c (set_internal): If variable is frame-local,
5253 store the new value immediately into the frame parameter alist.
5254
140c4ac6
KR
52552000-06-19 Ken Raeburn <raeburn@gnu.org>
5256
14358466
KR
5257 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
5258 in the custom handler pointer.
5259
140c4ac6
KR
5260 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
5261 value, or checks for CHAR_META can fail when Lisp_Object is a
5262 union type.
5263 * keymap.c (get_keyelt): Likewise.
5264
10d7bf84
KH
52652000-06-19 Kenichi Handa <handa@etl.go.jp>
5266
5267 * ccl.h (struct ccl_program): New member eol_type.
5268 (struct ccl_spec): New member cr_carryover.
5269
5270 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
5271 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
5272
5273 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
5274 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
5275 (decode_eol_post_ccl): New function.
5276 (decode_coding): Don't detect EOL format here for CCL based coding
5277 systems.
5278 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
5279 decode_eol_post_ccl after running the CCL program.
5280 (code_convert_region): Don't detect EOL format here for CCL based
5281 coding systems.
5282 (decode_coding_string): Likewise.
5283
52e386c2
KR
52842000-06-18 Ken Raeburn <raeburn@gnu.org>
5285
5286 * charset.c (update_charset_table): Use XINT on "iso_final_char"
5287 when treating it as an integer.
5288
5289 * coding.h (encode_coding_string): Declare.
5290
5291 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
5292 it as an integer.
5293
5294 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
5295 "xkeymap" to avoid shadowing the "enum map_type" value that needs
5296 to be passed to get_local_map.
5297
5298 * sound.c (Fplay_sound): Don't call make_number on
5299 Frun_hook_with_args count argument.
5300
5301 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
5302 for lisp objects in X event structure data field, when lisp
5303 objects are represented with unions.
5304 (x_scroll_bar_to_input_event): Ditto.
5305
b357b9d4
KR
53062000-06-16 Ken Raeburn <raeburn@gnu.org>
5307
5308 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
5309 termination of string. Fix sense of test whether
5310 Vline_number_display_limit is an integer.
b357b9d4 5311
a871441d
GM
53122000-06-16 Gerd Moellmann <gerd@gnu.org>
5313
a9021acd
GM
5314 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
5315 only if HAVE_X_WINDOWS.
5316
6344985d
GM
5317 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
5318 of titles.
5319
427ec082 5320 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
5321 out of bounds.
5322
228b083e
EZ
53232000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
5324
5325 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
5326 of its headers.
5327
c25b53a2
KH
53282000-06-15 Kenichi Handa <handa@etl.go.jp>
5329
5330 * coding.c (decode_coding_emacs_mule): Always set src_base at the
5331 start of the while loop.
5332
a6981b11
GM
53332000-06-15 Gerd Moellmann <gerd@gnu.org>
5334
e9924e52
GM
5335 * atimer.c (alarm_signal_handler): Add forward declaration.
5336
a6981b11
GM
5337 * data.c (set_internal): Remove debug code.
5338
25fa6deb
GM
53392000-06-14 Gerd Moellmann <gerd@gnu.org>
5340
dce6b995
GM
5341 * Makefile.in (bootstrap-temacs): Add `-I../src'.
5342
9f817ea4
GM
5343 * unexec.c (toplevel) [COFF]: Include coff.h.
5344
5345 * s/lynxos.h: New file.
5346
5347 * keymap.c (Fsingle_key_description): Enclose function key and
5348 event symbol names in angle brackets.
5349
8a4e3c0c
GM
5350 * xdisp.c (setup_echo_area_for_printing): Call
5351 message_log_maybe_newline if message_buf_print is not set.
5352
5353 * print.c (printchar, strout): Don't check message_buf_print
427ec082 5354 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
5355 function does something useful even when message_buf_print is
5356 already set.
5357
25fa6deb
GM
5358 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
5359 variables.
5360 (ensure_echo_area_buffers): Initialize echo buffer's
5361 truncate lines setting to nil.
5362 (with_echo_area_buffer): Don't set the echo buffer's truncate
5363 lines setting here.
8a4e3c0c 5364 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
5365 of message_truncate_lines.
5366 (resize_mini_window): Handle case that lines are truncated.
5367 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
5368 message-truncate-lines.
5369
5370 * keyboard.c (read_char): Bind message-truncate-lines to t
5371 while displaying a help-echo.
5372
5373 * lisp.h (Qmessage_truncate_lines): External declaration.
5374
163dcff3
GM
53752000-06-13 Gerd Moellmann <gerd@gnu.org>
5376
1681ead6
GM
5377 * xdisp.c (Vline_number_display_limit): Renamed from
5378 line_number_display_limit.
5379 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
5380 Extend documentation string. Initialize
5381 Vline_number_display_limit to nil meaning no limit.
5382 (decode_mode_spec): Use Vline_number_display_limit with its new
5383 meaning.
5384
163dcff3
GM
5385 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
5386
18e21ce8 53872000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
5388
5389 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 5390
163dcff3
GM
5391 * xfns.c (x_set_frame_parameters): Comment fix.
5392
5393 * frame.c (store_frame_param): Call swap_in_global_binding if the
5394 variable's current binding was chosen based on this frame.
5395
5396 * data.c (swap_in_global_binding): New function.
5397
a704139d
EZ
53982000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
5399
5400 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
5401 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
5402
9b6610db
EZ
54032000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
5404
5405 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
5406
c68833d2
JR
54072000-06-12 Jason Rumney <jasonr@gnu.org>
5408
5409 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
5410
5411 * w32.h (EMACS_W32_H): Renamed from _NT_H_
5412
5413 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
5414
5415 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
5416
ed1056b3
GM
54172000-06-12 Gerd Moellmann <gerd@gnu.org>
5418
5419 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
5420 (syms_of_xfaces): Defsubr Sdump_colors.
5421 (x_free_colors): Don't treat b&w specially on default visual.
5422 (x_free_dpy_colors): New function.
5423 (free_face_colors): Don't check visual class; it's done
5424 in x_free_colors.
5425
5426 * xterm.c (x_frame_of_widget): New function.
5427 (x_alloc_nearest_color_for_widget): Use it.
5428 (x_copy_dpy_color): New function.
5429 (x_destroy_window): Free various colors.
5430
5050a2ef
KH
54312000-06-12 Kenichi Handa <handa@etl.go.jp>
5432
5433 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
5434
5435 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
5436
5437 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
5438
5439 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
5440
5441 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
5442
fb1b041d
DL
54432000-06-11 Dave Love <fx@gnu.org>
5444
5445 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
5446
ff96b5f4
EZ
54472000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
5448
5449 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
5450
db8eeecd
GM
54512000-06-11 Gerd Moellmann <gerd@gnu.org>
5452
ed1056b3 5453 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
5454 to `XEvent *'.
5455
49b71c5f
KH
54562000-06-10 Kenichi Handa <handa@etl.go.jp>
5457
c479bd55
KH
5458 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
5459 (regex_compile): Fix the code for handling the case of single byte
5460 char and multibyte char being mixed in a range within [...].
5461
ff6a65c2
KH
5462 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
5463 and dst_multibyte members of coding.
5464
49b71c5f
KH
5465 * charset.c (update_charset_table): Update the table
5466 bytes_by_char_head.
5467 (init_charset_once): Initialize elements of bytes_by_char_head to
5468 1 except for leading codes for private charases.
5469
5470 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
5471 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
5472 sequence.
5473
9e80b57d
KR
54742000-06-09 Ken Raeburn <raeburn@gnu.org>
5475
5476 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
5477 access the data it doesn't point to.
5478
f83fe4b4
GM
54792000-06-08 Gerd Moellmann <gerd@gnu.org>
5480
5481 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 5482 will be translated to a switch-frame event when reading the
f83fe4b4
GM
5483 event queue. This is necessary because Emacs otherwise won't
5484 perform a switch-frame to a new frame until some other event, for
5485 example a keystroke event, forces it to do so. This has various
5486 effects, one visible being that the cursor of a frame created with
5487 C-x 5 2 or switched to with a window manager key binding like
5488 A-TAB stays hollow because selected_window isn't on the newly
5489 focused frame until the switch-frame is performed.
5490
5491 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
5492 generating a switch-frame event if necessary.
5493
5494 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
5495
5496 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
5497 it's an integer.
5498
0890801b
KH
54992000-06-08 Kenichi Handa <handa@etl.go.jp>
5500
5501 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
5502 charset.
5503
173cbca8
GM
55042000-06-07 Gerd Moellmann <gerd@gnu.org>
5505
3091c2a6
GM
5506 * window.c (displayed_window_lines): Take empty lines at
5507 the bottom of a window into account.
427ec082 5508
f38952fe
GM
5509 * window.c (displayed_window_lines): New function.
5510 (Fmove_to_window_line): Use displayed_window_lines to determine
5511 the number of lines to move, instead of using the window's height.
5512
5513 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
5514 to stop reading, even if the form read sets point to a different
5515 value when evaluated.
5516
427ec082 5517 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
5518 put the cursor.
5519
6ba6c818
KH
55202000-06-07 Kenichi Handa <handa@etl.go.jp>
5521
5522 * fileio.c (e_write): Free composition data if stored in
5523 coding->cmp_data.
5524
5f1aea9a
GM
55252000-06-06 Gerd Moellmann <gerd@gnu.org>
5526
666852af
GM
5527 * xdisp.c (display_line): Set row's and iterator's
5528 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
5529 Set cursor even if row ends in the middle of a character.
5530 (dump_glyph_row): Print values of new flags.
5531 (redisplay_window) <cursor movement in unchanged window>: When
5532 point has been moved forward, and PT is at the end of the cursor
5533 row, don't place the cursor in the next row if the cursor row ends
5534 in the middle of a character or at ZV.
5535
5536 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
5537 (struct glyph_row): Add starts_in_middle_of_char_p and
5538 ends_in_middle_of_char_p.
5539 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
5540 ends_in_middle_of_char_p flag.
5541 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
5542
d13f3e2e
GM
5543 * term.c (append_glyph): Revert change of 2000-06-06.
5544
5545 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
5546 padding glyph not fitting on line as whole character not
5547 fitting on line.
5548
5f1aea9a
GM
5549 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
5550 this isn't true for images with `:ascent 100'.
5551
10cda9b0
KH
55522000-06-06 Kenichi Handa <handa@etl.go.jp>
5553
ed00559d
KH
5554 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
5555 as modified if it is originally unmodified.
5556
10cda9b0
KH
5557 * term.c (encode_terminal_code): Change the way to check if
5558 terminal coding does any conversion.
5559 (append_glyph): Set glyph->pixel_width correctly.
5560
5561 * xdisp.c (display_line): While checking line continuation, pay
5562 attention to a padding glyph.
5563
1969fae2
GM
55642000-06-05 Gerd Moellmann <gerd@gnu.org>
5565
5566 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
5567
162ccef4
DL
55682000-06-05 Dave Love <fx@gnu.org>
5569
f19f32dd
DL
5570 * xdisp.c: Include fontset.h.
5571
5572 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
5573
5574 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
5575
5576 * dispnew.c: Conditionally include term.h.
5577
5578 * coding.h: Declare code_convert_string_norecord.
5579
5580 * frame.h (struct frame): Use volatile unconditionally.
5581
5582 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
5583
5584 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
5585
5586 * systime.h: Protect against multiple inclusion.
5587 (timezone) [USG5_4]: Define as time_t.
5588
5589 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
5590 (Foptimize_char_table, make_temp_name): Declare.
5591
5592 * Makefile.in (xdisp.o): Depend on fontset.h.
5593
5594 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
5595
5596 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
5597 (Foptimize_char_table, make_temp_name): Declare.
5598
427ec082 5599 * s/irix4-0.h:
162ccef4
DL
5600 * s/irix5-0.h:
5601 * s/netbsd.h: Don't define autoconfiscated MATHERR.
5602
2082fe81
DL
56032000-06-02 Dave Love <fx@gnu.org>
5604
5605 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
5606
dcf671d2
GM
56072000-06-02 Gerd Moellmann <gerd@gnu.org>
5608
5609 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 5610 result face, set flags in that face indicating that colors may not
dcf671d2
GM
5611 be freed.
5612
5613 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
5614 glyph, use the ASCII NUL character to determine the face.
5615
d42122a3
DL
56162000-06-02 Dave Love <fx@gnu.org>
5617
5618 * sysdep.c: Conditionally include stdlib.h, unistd.h.
5619 (VFORK_RETURN_TYPE): Remove.
427ec082 5620
d42122a3
DL
5621 * config.in: Add NO_MATHERR.
5622
dd432f16
DL
56232000-06-01 Dave Love <fx@gnu.org>
5624
90aa4ea8
DL
5625 * cmds.c (internal_self_insert): Don't check
5626 Vbefore_change_function, Vafter_change_function.
5627
5628 * insdel.c (signal_before_change, signal_after_change): Likewise.
5629
5630 * buffer.c (Vbefore_change_function, Vafter_change_function):
5631 Variables and their initializations deleted.
5632
2330c9d4
DL
5633 * callint.c (Fcall_interactively): Doc fix.
5634
dd432f16
DL
5635 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
5636
bf9e8804
DL
56372000-05-31 Dave Love <fx@gnu.org>
5638
5639 * textprop.c: Revert last change -- duplicated.
5640
3694b4ab
GM
56412000-05-31 Gerd Moellmann <gerd@gnu.org>
5642
5643 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
5644 in #if 0.
5645
5646 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
5647
f14156cd
JR
56482000-05-31 Jason Rumney <jasonr@gnu.org>
5649
8119aab8
JR
5650 * search.c (Fre_search_forward, Fre_search_backward)
5651 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
5652
f14156cd
JR
5653 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
5654
4aab9be3
JR
56552000-05-30 Jason Rumney <jasonr@gnu.org>
5656
5657 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
5658 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
5659
5660 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
5661 member.
5662
5663 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
5664 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
5665 expand a nil default_filename.
5666
5667 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
5668 pointer to glyph_to_pixel_coords, not a frame.
5669
5670 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
5671 coding.h to dependencies.
5672
5673 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
5674
5675 * w32console.c (glyph_to_pixel_coords): Change first parameter to
5676 window pointer to be consistent with w32term.c and xterm.c.
5677
5678 * w32fns.c: Format and doc changes to bring closer to xfns.c.
5679 (VIETNAMESE_CHARSET): Define if not defined in system headers.
5680 (Qline_spacing, Qcenter): New variables.
5681 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
5682 (x_set_line_spacing): New function.
5683 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
5684 macros.
5685 (x_specified_cursor_type): New function.
5686 (x_set_cursor_type): Use it.
5687 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
5688 and icon strings.
5689 (validate_x_resource_name, x_get_resource_string): Measure lengths
5690 of external strings in bytes.
5691 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
5692 GetTextExtentPoint32 with NULL title.
5693 (Fx_create_frame): Initialize Qline_spacing.
5694 (w32_load_system_font): Initialize font->double_byte_p.
5695 (x_to_w32_charset): Use Vw32_charset_info_alist.
5696 (Image, busy cursor, tooltip functions): Merged changes from
5697 xfns.c. Not yet functional on Windows.
5698
5699 * w32gui.h (W32FontStruct): Add double_byte_p member.
5700
5701 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
5702 (emacs_button_translation): Use it.
5703 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
5704 in `mask' to be set.
5705
5706 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
5707 menu strings.
5708
5709 * w32term.c: Format and doc changes to bring closer to xterm.c.
5710 (w32_char_font_type): New enum.
5711 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
5712 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
5713 (w32_encode_char): New function.
5714 (x_encode_char): Removed.
5715 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
5716 x_encode_char and w32_font_is_double_byte.
5717 (x_produce_image_glyph): Use image_ascent.
5718 (x_produce_glyphs): Use new version of w32_per_char_metric and
5719 handle NULL return value. Allow extra line spacing.
5720 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
5721 (w32_get_glyph_overhangs): Remove unicode_p param. Use
5722 w32_font_type member of glyph instead.
5723 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
5724 (fast_find_position): Make sure not to consider rows not visible
5725 in the window.
5726 (w32_read_socket) [WM_MENUSELECT]: Cannot call
5727 w32_menu_display_help with input blocked, as it can abort.
5728 (x_display_and_set_cursor): Choose cursor depending
5729 on buffer-local value of cursor_type.
5730 (x_draw_bar_cursor): Add parameter WIDTH.
5731
5732 * w32term.h (CP_DEFAULT): Define.
5733 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
5734
10fc3187
GM
57352000-05-30 Gerd Moellmann <gerd@gnu.org>
5736
5737 * search.c (Fre_search_forward, Fre_search_backward)
5738 (Fposix_search_backward, Fposix_search_forward): Doc fix.
5739
d0555360
KH
57402000-05-30 Kenichi Handa <handa@etl.go.jp>
5741
5742 * coding.c (detect_coding_iso2022): Fix code for checking
5743 CODING_CATEGORY_MASK_ISO_8_2.
5744
f1ad044f
SM
57452000-05-29 Stefan Monnier <monnier@cs.yale.edu>
5746
5747 * regex.c (PREFETCH_NOLIMIT): New function.
5748 (re_match_2_internal): Use it and adjust the end_match_2 logic.
5749
84ec3b4b
GM
57502000-05-29 Gerd Moellmann <gerd@gnu.org>
5751
66254a13
GM
5752 * syntax.c (find_defun_start): Move test for
5753 open_paren_in_column_0_is_defun_start outside of the loop.
5754
49e70dec
GM
5755 * xdisp.c (redisplay_window): Really switch buffers when
5756 displaying mode lines, and temporarily set selected_frame to the
5757 frame of the window that's redisplayed.
5758
84ec3b4b
GM
5759 * xfaces.c (free_realized_faces): Block/unblock input.
5760 (free_realized_multibyte_face): Ditto.
5761
869a3a14
DL
57622000-05-29 Dave Love <fx@gnu.org>
5763
5764 * textprop.c (Qkeymap): New variable.
5765 (syms_of_textprop): Intern it.
5766
5767 * keymap.c: Include intervals.h.
5768 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
5769
5770 * Makefile.in (keymap.o): Depend on intervals.h.
5771
5772 * keyboard.c (menu_bar_items, tool_bar_items)
5773 (Fexecute_extended_command): Deal with `keymap' property.
5774 (read_key_sequence): Track map from `keymap' property as well as
5775 `local_map'.
5776
5777 * intervals.c (get_local_map): Extra arg to allow looking for
5778 `keymap' too.
5779
5780 * intervals.h (map_property): New enum.
5781 (get_local_map): Extra arg using it.
5782 (Qkeymap): Declare.
5783
84ec3b4b 5784 * lisp.h (get_local_map): Don't declare here.
869a3a14 5785
89d0c844
KH
57862000-05-29 Kenichi Handa <handa@etl.go.jp>
5787
5788 * Makefile.in (callproc.o): Depend on composite.h.
5789
5790 * callproc.c: Include composite.h.
5791 (Fcall_process): Handle composition correctly.
5792
5793 * coding.h (coding_allocate_composition_data): Extern it.
5794 (coding_restore_composition): Likewise.
5795
5796 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
5797 yet allocated, finish decoding with result
5798 CODING_FINISH_INSUFFICIENT_CMP.
5799 (coding_allocate_composition_data): Make it non-static.
5800 (coding_restore_composition): Likewise.
5801
797a084a
EZ
58022000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
5803
5804 * charset.c (syms_of_charset): Revert last change.
5805
cf872af5
EZ
58062000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
5807
5808 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
5809 charsets as unibyte, with 1-column screen width. Sent by Kenichi
5810 Handa.
cf872af5 5811
5b1ae051
EZ
58122000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
5813
5814 * charset.c (syms_of_charset): Set width of character sets
5815 eight-bit-control and eight-bit-graphic to 1 column.
5816
34ec9ebe
GM
58172000-05-26 Gerd Moellmann <gerd@gnu.org>
5818
5819 * config.in (HAVE_SPEED_T): New define.
5820
5821 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
5822 `extern speed_t'.
5823
dd854dc2
DL
58242000-05-26 Dave Love <fx@gnu.org>
5825
5826 * coding.c (shrink_decoding_region): Initialize eol_conversion.
5827
5828 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
5829 (Fsubr_arity): New function.
5830 (syms_of_data): Install them.
5831
ba9f8f95
KH
58322000-05-26 Kenichi Handa <handa@etl.go.jp>
5833
0f3e0672
KH
5834 * charset.c (init_charset_once): Set the table bytes_by_char_head
5835 correctly.
5836
cebefb44
KH
5837 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
5838 the default fontset to what Emacs uses by default.
0f3e0672
KH
5839 (check_registry_encoding): This function deleted.
5840 (Fset_fontset_font): Remove the adhoc condition for the default
5841 fontset. Allow cons in FONTNAME.
cebefb44 5842
0f3e0672
KH
5843 * fns.c (map_char_table): Ignore char-table entries for
5844 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 5845
7a18af49
KR
58462000-05-25 Ken Raeburn <raeburn@gnu.org>
5847
5848 * emacs.c (main): Initialize keyboard syms before initializing
5849 window code, so face names are available.
5850
d2af47df
SM
58512000-05-25 Stefan Monnier <monnier@cs.yale.edu>
5852
5853 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
5854 of an anchor at the beginning of a shy-group.
5855
fc6a6a4e
GM
58562000-05-25 Gerd Moellmann <gerd@gnu.org>
5857
5858 * xdisp.c (handle_invisible_prop): Don't try to skip over
5859 invisible text if end of text is already reached.
5860
005f0d35
DL
58612000-05-25 Dave Love <fx@gnu.org>
5862
02513cdd
DL
5863 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
5864
005f0d35
DL
5865 * coding.c (encode_eol): Add null statement after label.
5866
89f6ca4e
EZ
58672000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
5868
5869 * w16select.c (Fw16_set_clipboard_data): Fix the change from
5870 2000-05-20.
5871
a4e1759e
KH
58722000-05-25 Kenichi Handa <handa@etl.go.jp>
5873
5874 * ccl.c (ccl_driver): Fix previous change.
5875
eacfd7fe
KH
58762000-05-25 Kenichi Handa <handa@etl.go.jp>
5877
46ab33a9
KH
5878 * coding.c (run_pre_post_conversion_on_str): Set point to the
5879 beginning of buffer before calling coding->post_read_conversion.
5880 (decode_coding_string): Give correct args to
5881 run_pre_post_conversion_on_str.
5882 (encode_coding_string): Likewise.
5883
eacfd7fe
KH
5884 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
5885 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
5886 eight-bit-graphic correctly.
5887
f8569325
DL
58882000-05-24 Kenichi HANDA <handa@etl.go.jp>
5889
5890 * fileio.c (Finsert_file_contents): Even if a file is not found,
5891 execute codes for setting up coding system. Call
5892 after-insert-file-functions unconditionally.
5893
04545643
GM
58942000-05-24 Gerd Moellmann <gerd@gnu.org>
5895
5896 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
5897 BSD_PGRPS are not defined.
5898
747d90ea
KH
58992000-05-24 Kenichi Handa <handa@etl.go.jp>
5900
5901 * charset.c (update_charset_table): Accept nil in LONG_NAME and
5902 DESCRIPTION.
5903 (syms_of_charset): Avoid building same strings.
5904
716e3b88
GM
59052000-05-23 Gerd Moellmann <gerd@gnu.org>
5906
5907 * lread.c (Fload): Add a comment about the meaning of
5908 Vuser_init_file being t.
5909
5910 * puresize.h (BASE_PURESIZE): Increase to 675000.
5911
5912 * s/gnu-linux.h (setpgrp): Don't define it here because this
5913 prevents compilation on GNU/Linux systems with glib 2.2.
5914
5915 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
5916 as setpgid.
427ec082 5917
9aeb39fa
EZ
59182000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
5919
5920 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
5921 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
5922 version.
5923 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
5924
29ced61b
KH
59252000-05-23 Kenichi Handa <handa@etl.go.jp>
5926
0574a2ed
KH
5927 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
5928 unconditionally.
5929
3d80f24d
KH
5930 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
5931
5932 * term.c (encode_terminal_code): Set coding->src_multibyte
5933 properly.
5934
29ced61b
KH
5935 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
5936
d7e00792
KH
59372000-05-22 Kenichi Handa <handa@etl.go.jp>
5938
c9d80d38
KH
5939 * keyboard.c (read_char): Allow character codes 128..255 to be
5940 handled by input-method-function.
5941
d7e00792
KH
5942 * insdel.c (adjust_markers_for_replace): Fix previous change.
5943 (adjust_after_replace): If PREV_TEXT is nil, call
5944 adjust_markers_for_insert, not adjust_markers_for_replace.
5945
087121cc 59462000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 5947
087121cc
GM
5948 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
5949 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
5950 [HAVE_GRANDPT]: Define.
5951 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
5952
5953 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
5954 like SYSV_PTYS.
5955
5956 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
5957
5958 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
5959
c9671f81
KH
59602000-05-20 Kenichi Handa <handa@etl.go.jp>
5961
5962 The following changes are to handle 8-bit characters in a
5963 multibyte buffer/string without facing with byte combining
5964 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
5965 eight-bit-graphic (for 0xA0..0xFF) are introduced.
5966
5967 * Makefile.in (fns.o): Depend on charset.h.
5968
5969 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
5970 convert it to unibyte.
5971 (make_string): Use parse_str_as_multibyte, not chars_in_text.
5972
5973 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
5974 apparent char boundary.
5975 (Fset_buffer_multibyte): Convert 8-bit characters in the range
5976 0x80..0x9F to/from multibyte form.
5977
5978 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
5979 to unibyte.
5980
5981 * callproc.c (Fcall_process): Always encode an argument string if
5982 it is multibyte. Setup src_multibyte and dst_multibyte members of
5983 process_coding properly.
ce75fd23 5984
c9671f81
KH
5985 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
5986 SPLIT_NON_ASCII_CHAR.
5987
5988 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
5989 as is.
5990 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
5991
5992 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
5993 variables.
5994 (SPLIT_CHARACTER_SEQ): This macro deleted.
5995 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
5996 valid.
5997 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
5998 and eight-bit-graphic.
5999 (char_to_string): Likewise. Signal an error for too large
6000 character code.
6001 (char_printable_p): Return 0 for 8-bit characters.
6002 (update_charset_table): Update iso_charset_table only when a final
6003 character is non-negative.
6004 (find_charset_in_text): Renamed from find_charset_in_str.
6005 Arguments and return value changed. Callers changed.
6006 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
6007 be -1 if CHARSET is used only internally.
6008 (Fmake_char_internal): Handle new charsets; eight-bit-control and
6009 eight-bit-graphic.
6010 (Fcharset_after): Simplified.
6011 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
6012 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
6013 (multibyte_chars_in_text): Simplified by assuming there's no
6014 invalid multibyte sequence.
6015 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
6016 str_as_unibyte): New functions.
6017 (Fstring): Simpified by assuming that byte combining never
6018 happens.
6019 (init_charset_once): Initialization for
6020 LEADING_CODE_8_BIT_CONTROL.
6021 (syms_of_charset): Intern and staticpro Qeight_bit_control and
6022 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
6023 eight-bit-control and eight-bit-graphic.
6024
6025 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
6026 CHARSET_8_BIT_GRAPHIC): New macros.
6027 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
6028 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
6029 (CHARSET_REVERSE_CHARSET): Likewise.
6030 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
6031 eight-bit-graphic.
6032 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
6033 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
6034 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
6035 encounter an invalid multibyte sequence.
6036 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
6037 sequence is always valid.
6038 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
6039 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
6040 macros.
6041 (CHAR_STRING): For 8-bit characters, call char_to_string.
6042 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
6043 multibyte sequence is always valid.
6044 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
6045 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
6046 str_as_unibyte): Extern them.
6047 (BCOPY_SHORT): Fix a bug.
6048 (CHAR_LEN): This macro deleted. Callers changed to use
6049 CHAR_BYTES.
6050 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
6051 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
6052 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
6053
bd4bde7f 6054 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
6055 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
6056 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
6057 EMIT_BYTES): New macros.
6058 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
6059 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
6060 macros deleted.
6061 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
6062 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
6063 check the validity of multibyte sequence.
6064 (decode_coding_emacs_mule): New function.
6065 (encode_coding_emacs_mule): New macro.
6066 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
6067 the source.
6068 (DECODE_ISO_CHARACTER): Just return a character code.
6069 (DECODE_COMPOSITION_START): Set coding->result instead of result.
6070 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
6071 EMIT_CHAR to produced decoded characters. Exit the loop only by
6072 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
6073 block here.
6074 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
6075 only position codes for an invalid character.
6076 (encode_designation_at_bol): Return new destination pointer. 5th
6077 arg DSTP is changed to DST.
6078 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
6079 from the source by ONE_MORE_CHAR. Don't handle the case of last
6080 block here.
6081 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
6082 macros deleted.
6083 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
6084 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
6085 TWO_MORE_BYTES to fetch a byte from the source.
6086 (encode_eol): Pay attention to coding->src_multibyte.
6087 (detect_coding, detect_eol): Preserve members src_multibyte and
6088 dst_multibyte.
6089 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
6090 (encoding_buffer_size): Set magnification to 3 for all coding
6091 systems that require encoding.
6092 (ccl_coding_driver): For decoding, be sure that the result is
6093 valid multibyte sequence.
6094 (decode_coding): Initialize coding->errors and coding->result.
6095 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
6096 and raw-text, always call decode_eol. Handle the case of last
6097 block here. If not coding->dst_multibyte, convert the resulting
6098 sequence to unibyte.
6099 (encode_coding): Initialize coding->errors and coding->result.
6100 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
6101 and raw-text, always call encode_eol. Handle the case of last
6102 block here.
6103 (shrink_decoding_region, shrink_encoding_region): Detect cases
6104 that we can't skip data more rigidly.
6105 (code_convert_region): Setup src_multibyte and dst_multibyte
6106 members of coding. For decoding, if the buffer is multibyte,
6107 convert the source sequence to unibyte in advance. For encoding,
6108 if the buffer is multibyte, convert the resulting sequence to
6109 multibyte afterward.
6110 (run_pre_post_conversion_on_str): New function.
6111 (code_convert_string): Deleted and divided into the following two.
6112 (decode_coding_string, encode_coding_string): New functions.
6113 (code_convert_string1, code_convert_string_norecord): Call one of
6114 above.
6115 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
6116 MAKE_NON_ASCII_CHAR.
6117 (Fset_terminal_coding_system_internal,
6118 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
6119 and dst_multibyte members.
6120 (init_coding_once): Initialize iso_code_class with new enum
6121 ISO_control_0 and ISO_control_1.
6122
6123 * coding.h (enum iso_code_class_type): Member ISO_control_code is
6124 devided into ISO_control_0 and ISO_control_1.
6125 (struct coding_system): New members src_multibyte, dst_multibyte,
6126 errors, and result. Delete member fake_multibyte.
6127 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
6128 nonzero.
6129 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
6130 nonzero.
6131
6132 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
6133 (Faset): Likewise.
6134
6135 * editfns.c (Fformat): Be sure to convert 8-bit characters to
6136 multibyte form.
6137 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
6138 combining occurs.
6139 (Ftranspose_region): Delete codes for handling byte combining.
6140
6141 * fileio.c (Finsert_file_contents): Setup src_multibyte and
6142 dst_multibyte members of coding. On handling REPLACE on unibyte
6143 buffer, convert the result of decode_coding to unibyte. On
6144 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 6145 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
6146 multibyteness of the source (buffer or string).
6147
6148 * fns.c (concat): Handle 8-bit characters correctly.
6149 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
6150 unibyte in the result.
6151 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
6152 valid multibyte form in the result.
6153 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
6154 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
6155 return -1, signal an error.
6156 (base64_encode_1): New arg MULTIBYTE. Get each character by
6157 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
6158 character is found, return -1.
6159 (Fbase64_decode_region): Delete codes for handling byte-combining.
6160 Treat each decoded byte as a unibyte character.
6161 (Fbase64_decode_string): Return unibyte string.
6162 (Fcompare_strings, concat, string_byte_to_char): Use
6163 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
6164 FETCH_STRING_CHAR_ADVANCE.
6165 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
6166 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
6167
6168 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
6169 SPLIT_NON_ASCII_CHAR.
6170 (fontset_ref_via_base, fontset_set): Likewise
6171
6172 * insdel.c (adjust_markers_for_record_delete): Deleted.
6173 (adjust_markers_for_insert): Argument changed. Caller changed.
6174 (adjust_markers_for_replace): Likewise.
6175 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
6176 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
6177 (copy_text): Delete unused local varialbe c_save. For converting
6178 to multibyte, be sure to make all 8-bit characters in valid
6179 multibyte form.
6180 (count_size_as_multibyte): Handle 8-bit characters correctly.
6181 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
6182 adjust_after_replace, replace_range, del_range_2)
6183 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
6184 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
6185 adjust_after_replace, replace_range, del_range_2) Delete codes for
6186 handling byte combining.
6187 (adjust_before_replace): Deleted.
427ec082 6188
c9671f81
KH
6189 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
6190 SPLIT_NON_ASCII_CHAR.
6191 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
6192 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
6193 unconditionally.
6194 (Fkey_description): Likewise.
6195
6196 * lread.c (read1): On reading multibyte string, be sure to make
6197 all 8-bit chararacters in valid multibyte form.
6198 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
6199
6200 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
6201 unconditionally.
6202
6203 * process.c (Fstart_process): GCPRO current_dir before calling
6204 Ffind_operation_coding_system. Encode arguments here.
6205 (create_process): Don't encode arguments here. Setup
6206 src_multibyte and dst_multibyte members of struct coding.
6207 (read_process_output): Setup src_multibyte and dst_multibyte
6208 members of struct coding. If the output is to multibyte buffer,
6209 always decode the output of the process. Adjust the
6210 representation of 8-bit characters to the multibyteness of the
6211 output.
6212 (send_process): Setup coding->src_multibyte according to the
6213 multibyteness of the source.
6214
6215 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
6216 unconditionally.
6217 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
6218 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
6219
6220 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
6221 CHAR_LEN.
6222
6223 * w16select.c (Fw16_set_clipboard_data): Setup members
6224 src_multibyte and dst_multibyte of coding. Adjusted for the
6225 change for find_charset_in_str.
6226 (Fw16_get_clipboard_data): Likewise.
6227
6228 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
6229 dst_multibyte of coding.
6230 (x_to_w32_font): Likewise.
6231
6232 * w32select.c (Fw32_set_clipboard_data): Setup members
6233 src_multibyte and dst_multibyte of coding. Adjusted for the
6234 change for find_charset_in_str.
6235 (Fw32_get_clipboard_data): Likewise.
6236
6237 * xdisp.c (get_next_display_element): Handle 8-bit characters
6238 correctly.
6239 (next_element_from_display_vector): Use CHAR_BYTES instead of
6240 CHAR_LEN.
6241 (disp_char_vector): Use SPLIT_CHAR instead of
6242 SPLIT_NON_ASCII_CHAR.
6243
6244 * xselect.c (selection_data_to_lisp_data): Setup members
6245 src_multibyte and dst_multibyte of coding. Adjusted for the
6246 change for find_charset_in_str.
6247 (lisp_data_to_selection_data): Likewise.
6248
5f64c9e0
GM
62492000-05-19 Gerd Moellmann <gerd@gnu.org>
6250
2b63d473
GM
6251 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
6252 buffer.
6253
5f64c9e0
GM
6254 * dispextern.h (Vimage_types): Add extern declaration.
6255
6256 * xdisp.c (Vimage_types): Moved here from xfns.c.
6257 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
6258
6259 * xfns.c (Vimages_types): Moved to xdisp.c.
6260 (syms_of_xfns): Move `image-types' to xdisp.c.
6261
6262 * w32fns.c (Vimage_types): Removed.
6263 (syms_of_w32fns): Remove `image-types'.
6264
813086ea
KH
62652000-05-18 Kenichi Handa <handa@etl.go.jp>
6266
6267 * fns.c (map_char_table): Pay attention to character number of
6268 charset. Check the validity of charset at the first level. For
6269 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
6270 the default value.
6271
6272 * fontset.c: Include "buffer.h".
6273 (fs_load_font): If the face has fontset, record the face ID in
6274 that fontset.
6275 (Finternal_char_font): New function.
6276 (accumulate_font_info): New function.
6277 (Ffontset_info): Rewritten for the new fontset implementation.
6278 (syms_of_fontset): Register Vdefault_fontset in the first element
6279 of Vfontset_table. Include Vdefault_fontset in
6280 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
6281 function.
6282
bdaebbf0
DL
62832000-05-16 Dave Love <fx@gnu.org>
6284
6285 * m/iris5d.h: Deleted -- unused.
6286
cb613bb8
GM
62872000-05-16 Gerd Moellmann <gerd@gnu.org>
6288
b15f3b77
GM
6289 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
6290 `invalid' instead of `illegal'.
6291
6292 * indent.c (Fmove_to_column): When ending within a tab, insert
6293 spaces first so that markers at the end of the tab get adjusted.
6294
835c1b36
GM
6295 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
6296 buffer list that wasn't selected in that frame.
6297
cb613bb8
GM
6298 * filelock.c (get_boot_time): To obtain an 8 char file name, which
6299 is needed on mescaline, use a 2 char prefix, and call
6300 make_temp_name with second arg non-zero.
6301
6302 * fileio.c (make_temp_name): New function, extracted from
6303 Fmake_temp_name.
6304 (Fmake_temp_name): Use it.
6305
f685bea9
EZ
63062000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
6307
6308 * window.c (coordinates_in_window): Subtract 1 when computing
6309 right_x.
6310
a1b8d58b
GM
63112000-05-15 Gerd Moellmann <gerd@gnu.org>
6312
6313 * Makefile.in (lisp): Add env.elc.
6314
6315 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
6316
a265079f
GM
63172000-05-12 Gerd Moellmann <gerd@gnu.org>
6318
6319 * search.c (Freplace_match): Handle case of `\N' in the
6320 replacement when there's no group N.
6321
da4496b6
GM
63222000-05-11 Gerd Moellmann <gerd@gnu.org>
6323
0ace421a
GM
6324 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
6325 of the message to message_dolog.
6326
1172eb8d
GM
6327 * keyboard.c (read_char): Don't clear current message for help
6328 events; let the code handling help events handle this. Change
6329 code detecting help events that should be ignored.
6330
da4496b6
GM
6331 * xdisp.c (handle_single_display_prop): Don't try to set PT if
6332 we're interating over a string.
6333
0623e40f
DL
63342000-05-09 Dave Love <fx@gnu.org>
6335
6336 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
6337 that offset before writing. Move gcpro region past call of
6338 Ffile_regular_p.
6339
bae2503b
DL
63402000-05-04 Dave Love <fx@gnu.org>
6341
6342 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
6343
ec82fb2f
GM
63442000-05-04 Gerd Moellmann <gerd@gnu.org>
6345
6346 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
6347 of inserted characters when BUF equals the current buffer, and PT
6348 is in front of or equal to FROM.
6349
cbf18892
GM
63502000-05-03 Gerd Moellmann <gerd@gnu.org>
6351
4ff40dd0
GM
6352 * xdisp.c (handle_single_display_prop): If display property value
6353 is invalid, or something not supported on the frame, restore
6354 iterator's position to what it was initially. Make sure to return
6355 0 for invalid and unsupported property values.
6356
cbf18892
GM
6357 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
6358 that x_per_char_metric returns null.
6359
1b0672c3
GM
63602000-05-02 Gerd Moellmann <gerd@gnu.org>
6361
576da55d
GM
6362 * xterm.h (struct face): Add forward declaration.
6363 (struct image): Ditto.
6364 (image_ascent): Add prototype.
6365
6366 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
6367 (x_draw_image_relief, x_draw_image_foreground_1): Call function
6368 image_ascent instead of using IMAGE_ASCENT.
6369
6370 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
6371 (IMAGE_ASCENT): Removed.
6372
6373 * xfns.c (Qcenter): New variable.
6374 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
6375 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
6376 (image_ascent): New function.
6377 (lookup_image): Recognize `:ascent center'.
6378 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
6379 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
6380 (xbm_load): Don't set image's ascent here.
6381 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
6382 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
6383 check ascent values here.
6384 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
6385 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
6386 (syms_of_xfns): Initialize Qcenter.
6387
1b0672c3
GM
6388 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
6389 to the limits, increase the limits.
6390
0d7811ed
KH
63912000-05-01 Kenichi Handa <handa@etl.go.jp>
6392
6393 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
6394 Check Vfont_encoding_alist against the full name of the opened
6395 font.
6396
a943a5ca
GM
63972000-04-28 Gerd Moellmann <gerd@gnu.org>
6398
6399 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
6400 taller than the window.
6401
5dba1e29
KH
64022000-04-28 Kenichi Handa <handa@etl.go.jp>
6403
6404 * xfaces.c (realize_x_face): Fix the argument of the second
6405 xassert. BASE_FACE may not be a face for ASCII.
6406
353964e3
GM
64072000-04-27 Gerd Moellmann <gerd@gnu.org>
6408
c76e04a8
GM
6409 * print.c (print_object): Treat print-length < 0 as nil.
6410
6411 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
6412
6413 * s/freebsd.h (TERMCAP_OBJ): Removed.
6414 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
6415
6416 * lread.c (read1): Don't treat period followed by certain
6417 characters as symbol start.
6418
6419 * xfns.c (slurp_file): New function.
6420 (xbm_image_p): Handle case of in-memory XBM files.
6421 (xbm_scan): Rewritten to work on memory buffers instead of files.
6422 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
6423 Work on memory buffers instead of files. If DATA is null test
6424 if buffer looks like an in-memory XBM file.
6425 (xbm_load_image): Renamed from xbm_load_image_file. Work on
6426 memory buffers instead of files.
6427 (xbm_file_p): New function.
6428 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
6429
353964e3
GM
6430 * lread.c (end_of_file_error): New function.
6431 (read1): Call it instead of signaling `end-of-file' directly.
6432
427ec082 6433 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
6434 with Fprinc instead of Fprin1.
6435
24d744ac
KR
64362000-04-26 Ken Raeburn <raeburn@gnu.org>
6437
6438 * window.c (freeze_window_start): Check that minibuffer scroll
6439 window isn't nil before extracting the window structure pointer
6440 from it.
6441
6442 * undo.c (record_delete): If we hit the end of the undo list, stop
6443 picking elements apart.
6444
7464346d
GM
64452000-04-26 Gerd Moellmann <gerd@gnu.org>
6446
6447 * xdisp.c (display_line): If lines are continued, restore
6448 iterator's ascent/descent information to the values before the
6449 first glyph not fitting on the line.
6450
612839b6
GM
64512000-04-25 Gerd Moellmann <gerd@gnu.org>
6452
6453 * xdisp.c (try_window_id) <all changes above window start>: Adjust
6454 positions in glyph matrix. Don't compute new window end
6455 positions.
6456
6457 * dispnew.c (increment_matrix_positions): Renamed from
6458 increment_glyph_matrix_buffer_positions.
6459 (increment_row_positions): Renamed from
6460 increment_glyph_row_buffer_positions.
6461
6462 * dispextern.h: Change names of renamed functions from dispnew.c
6463 in prototypes.
6464
cc181e95
GM
64652000-04-24 Gerd Moellmann <gerd@gnu.org>
6466
abfcc168
GM
6467 * fileio.c (Fdo_auto_save): Create directories for auto-save
6468 list file if necessary.
6469
cc181e95
GM
6470 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
6471 from buffer or frame.
6472 (automatic_hscrolling_p): New variable.
6473 (hscroll_windows): Scroll windows horizontally only if automatic
6474 hscrolling is allowed.
6475 (syms_of_xdisp): New variable `automatic-hscrolling'.
6476
6477 * frame.h (struct frame): Add member extra_line_spacing.
6478
6479 * xfns.c (x_set_line_spacing): New function.
6480 (Fx_create_frame): Set line spacing from resources.
6481 (Qline_spacing): New variable.
6482 (syms_of_xfns): Initialize Qline_spacing.
427ec082 6483
cc181e95
GM
6484 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
6485
6486 * buffer.c (init_buffer_once): Handle extra_line_spacing.
6487 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 6488 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
6489 extra_line_spacing from default value.
6490 (init_buffer_once): Initialize default value of extra_line_spacing.
6491
6492 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
6493 and extra3.
6494
6495 * xterm.c (x_produce_glyphs): Remove reference to struct it's
6496 prompt_width. Add extra line spacing.
6497
6498 * term.c (produce_glyphs): Remove reference to struct it's
6499 prompt_width.
6500
6501 * dispextern.h (struct it): Remove member prompt_width, add
6502 extra_line_spacing.
6503
58827478
GM
65042000-04-22 Gerd Moellmann <gerd@gnu.org>
6505
6506 * dispnew.c (update_frame_line): When writing a whole line, make
6507 sure cursor is in the right row afterwards, otherwise a use of
6508 capability `ch' in cmgoto might leave the cursor in the row below.
6509
25a87f42
GM
65102000-04-21 Gerd Moellmann <gerd@gnu.org>
6511
6512 * lisp.h (struct Lisp_Buffer_Cons): Remove.
6513
6514 * keyboard.c (timer_check): Fix typo in comment.
6515
54edf5c2
KH
65162000-04-21 Kenichi Handa <handa@etl.go.jp>
6517
6518 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
6519 name change: ch -> character.
6520
3a64eef5
GM
65212000-04-20 Gerd Moellmann <gerd@gnu.org>
6522
6523 * keyboard.c (echo_message_buffer): New variable.
6524 (echo_now): Set echo_message_buffer to the echo area buffer used
6525 to display the echo.
6526 (cancel_echoing): Reset echo_message_buffer to nil.
6527 (read_char): Code rewritten that handles canceling an echo or
6528 echoing a dash, respectively.
6529
6530 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
6531 directory doesn't exist.
6532
6142fdcb
DL
65332000-04-19 Dave Love <fx@gnu.org>
6534
6535 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
6536 (concat): Don't allow numeric args.
6537 (Fconcat): Doc change.
6142fdcb 6538
ac6b5352
SM
65392000-04-19 Stefan Monnier <monnier@cs.yale.edu>
6540
6541 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
6542 instead define end_match(1|2) more carefully.
6543 Use GET_CHAR_BEFORE_2 for `begline'.
6544
cb9215e4
GM
65452000-04-19 Gerd Moellmann <gerd@gnu.org>
6546
5e3dac3f
GM
6547 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
6548 on 64-bit systems where NULL is defined as `0'.
6549
6550 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
6551 the `variable argument list' to make it work on Alpha.
6552
cb9215e4
GM
6553 * m/alpha.h (_LP64) [!_LP64]: Define.
6554 (ORDINARY_LINK): Define for NetBSD.
6555
6556 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 6557
f532dca0
DL
65582000-04-19 Dave Love <fx@gnu.org>
6559
c750667e
DL
6560 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
6561 change.
6562
6563 * Makefile.in (LIBS): Don't use.
6564 (GETLOADAVG_OBJ): Define again.
6565 (otherobj): Add GETLOADAVG_OBJ.
6566
f532dca0
DL
6567 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
6568
1c7e22fd
GM
65692000-04-18 Gerd Moellmann <gerd@gnu.org>
6570
f6d3257b
GM
6571 * lread.c (read_filtered_event): Cancel and start busy cursor.
6572
427ec082 6573 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
6574 that the per-character metrics may be null.
6575
e10f64e7
GM
65762000-04-17 Gerd Moellmann <gerd@gnu.org>
6577
0daee095
GM
6578 * buffer.c (clone_per_buffer_values): New function.
6579 (Fmake_indirect_buffer): Add optional argument CLONE. Call
6580 clone_per_buffer_values if CLONE is not nil.
6581
e10f64e7
GM
6582 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
6583
38687d43
DL
65842000-04-16 Dave Love <fx@gnu.org>
6585
6586 * Makefile.in: Remove obsolete localcpp stuff.
6587 (GETLOADAVG_OBJ): Don't define.
6588 (obj): Move LIBOBJS...
6589 (otherobj): ... to here.
6590 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
6591 whitespace-only lines after the continuation (Irix).
6592
c21c7262
GM
65932000-04-14 Gerd Moellmann <gerd@gnu.org>
6594
6595 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
6596
6597 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
6598
314767c0
DL
65992000-04-14 Dave Love <fx@gnu.org>
6600
6601 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
6602 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
6603 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
6604 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
6605 NLIST_STRUCT.
6606
6607 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
6608 autoconfiscated HAVE_GETLOADAVG.
6609
6610 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
6611 BROKEN_MKTIME.
6612
a2522dca
GM
66132000-04-14 Gerd Moellmann <gerd@gnu.org>
6614
6615 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
6616 (fill_in_lock_file_name): Avoid existing files that aren't
6617 links.
6618
33744b5d
DL
66192000-04-14 Dave Love <fx@gnu.org>
6620
c21c7262 6621 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
6622 (INTERVAL_SRC): Convert to make variable.
6623 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
6624 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
6625 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
6626 add LIBOBJS.
6627 (SOME_MACHINE_OBJECTS): Remove interval stuff.
6628 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
6629 (shortlisp): Add facemenu, float-sup, frame.
6630 (SOME_MACHINE_LISP): Remove them from here.
6631 (LIBES): Change unused LDLIBS to autoconf LIBS.
6632
6633 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
6634
9d3d5916
KH
66352000-04-14 Kenichi Handa <handa@etl.go.jp>
6636
6637 * composite.c (update_compositions): If FROM and TO are not in a
6638 valid range, do nothing.
6639
198e3c7a
GM
66402000-04-13 Gerd Moellmann <gerd@gnu.org>
6641
6642 * tparam.c (tparam1): Abort when encountering an unknown
6643 `%'-specifier.
6644
6645 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
6646 terminfo.o.
6647
6648 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
6649 as TERMCAP_OBJ.
6650
055a28c9
EZ
66512000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
6652
6653 * fileio.c (a_write): Remove redundant semi-colons.
6654 (e_write): Return -1 if failed to write all the data.
6655 This fixes the changes made at 1999-12-15.
6656
f5c75033
DL
66572000-04-12 Dave Love <fx@gnu.org>
6658
6659 * fns.c (mapcar1): Test for null vals to support mapc.
6660 (Fmapc): New function.
6661
0c3cfc51
EZ
66622000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
6663
6664 * msdos.c (NUM_MOUSE_BUTTONS): Define.
6665 (IT_frame_up_to_date): Support the buffer local value of
6666 cursor-type, if defined.
6667
33465a31
DL
66682000-04-10 Dave Love <fx@gnu.org>
6669
6670 * editfns.c (preceding-char, following-char): Doc fix.
6671
6ed56568
KR
66722000-04-10 Ken Raeburn <raeburn@gnu.org>
6673
6674 * Makefile.in (temacs): Revert 2000-03-12 change.
6675
7cf80d4e
JR
66762000-04-10 Jason Rumney <jasonr@gnu.org>
6677
6678 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
6679
34f3f342
GM
66802000-04-10 Gerd Moellmann <gerd@gnu.org>
6681
1a1b1895
GM
6682 * xdisp.c (setup_echo_area_for_printing): Choose an echo
6683 area buffer, if it's not set up yet.
6684
34f3f342
GM
6685 * indent.c (compute_motion): Set immediate_quit.
6686
be0dbdab
GM
66872000-04-09 Gerd Moellmann <gerd@gnu.org>
6688
c45be9ac
GM
6689 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
6690 variable.
6691 (realize_tty_face): Suppress boldness if colors are the inverse of
6692 the default colors, and tty_suppress_bold_inverse_default_colors_p
6693 is set.
6694 (Ftty_suppress_bold_inverse_default_colors): New function.
6695 (syms_of_xfaces): Defsubr it.
6696
be0dbdab
GM
6697 * buffer.c (Frestore_buffer_modified_p): New function.
6698 (syms_of_buffer): Defsubr it.
6699
e8413c3b
KR
67002000-04-08 Ken Raeburn <raeburn@gnu.org>
6701
87f67317
KR
6702 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
6703 charset id (int) argument, not a charset (Lisp_Object).
6704
e8413c3b
KR
6705 * coding.h (code_convert_string): Declare.
6706 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
6707 object, as the fourth argument to code_convert_string.
6708
6709 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
6710 value.
6711 (Fset_fontset_font): Use EQ to compare lisp objects.
6712
7c752c80
KR
67132000-04-05 Ken Raeburn <raeburn@gnu.org>
6714
c0333abc
KR
6715 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
6716 a pointer that looks like a lisp object.
6717 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
6718 zero, instead see whether it's an integer object, since they can't
6719 have intervals.
6720 (GET_INTERVAL_OBJECT): Simply assign to the destination.
6721
7c752c80
KR
6722 * dispnew.c (allocate_matrices_for_frame_redisplay,
6723 direct_output_forward_char): Use X(U)INT and make_number as needed
6724 to convert between (unsigned) int values and lisp integers.
6725 * keyboard.c (read_key_sequence): Likewise.
6726 * lread.c (substitute_object_recurse): Likewise.
6727 * fns.c (concat, hash_lookup, hash_remove): Likewise.
6728 * minibuf.c (do_completion, Fminibuffer_complete_word,
6729 Fminibuffer_completion_help): Likewise.
6730 * term.c (produce_special_glyphs): Likewise.
6731
6732 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
6733 * print.c (print_preprocess, print_object): Likewise.
6734
6735 * search.c (compile_pattern): Use NILP when checking for nil.
6736
74e49b38
KR
6737 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
6738 __OPTIMIZE__]: Provide a GNU C macro version that handles
6739 lisp-object unions.
6740 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
6741 field, to better cope with ENABLE_CHECKING and calls that modify a
6742 Lisp_Object using its old value.
6743
685e5ed2
GM
67442000-04-04 Gerd Moellmann <gerd@gnu.org>
6745
c407c570
GM
6746 * window.c (compare_window_configurations): Signal an error
6747 if parameters C1 or C2 aren't window configurations.
6748
685e5ed2
GM
6749 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
6750 AFTER_POTENTIAL_GC calls around calls to functions that can
6751 signal an error and thus invoke the debugger.
6752
587a49ab
GM
67532000-04-03 Gerd Moellmann <gerd@gnu.org>
6754
62f20204
GM
6755 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
6756 an error if decoding fails.
6757
587a49ab
GM
6758 * keyboard.c (lispy_mouse_names): Variable removed.
6759 (Vlispy_mouse_stem): New variable.
6760 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
6761 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
6762 for any mouse button number. Increase size of mouse_syms and
6763 button_down_location as needed. Call modify_event_symbol with
6764 different arguments.
6765 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
6766 Call modify_event_symbol with different arguments.
6767 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
6768 for any button number. Call modify_event_symbol with different
6769 arguments.
6770 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
6771 Accept a string for NAME_ALIST_OR_STEM.
6772
6773 * lisp.h (larger_vector): Add prototype.
6774
6775 * fns.c (larger_vector): Make externally visible.
6776
6777 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
6778
2d1675e4
SM
67792000-04-02 Stefan Monnier <monnier@cs.yale.edu>
6780
6781 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
6782 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
6783 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
6784 we are between str1 and str2.
6785 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
6786 (PATFETCH): Use `TRANSLATE'.
6787 (PATFETCH_RAW): Fetch multibyte char if applicable.
6788 (PATUNFETCH): Remove.
6789 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
6790 When writing a char, write it directly into the pattern buffer rather
6791 than going needlessly through a temp char-array.
6792 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
6793 multibyte magic and remove the useless `#ifdef emacs'.
6794 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
6795 buffer.
6796
6797 * regex.h (struct re_pattern_buffer): Make field `multibyte'
6798 conditional on `emacs'.
6799
6800 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
6801
cc2d8c6b
KR
68022000-04-01 Ken Raeburn <raeburn@gnu.org>
6803
6804 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
6805 non-union-type versions of XMARK and friends here, because XMARK
6806 and friends won't work on an integer field if NO_UNION_TYPE is not
6807 defined.
6808 (make_number): Define as a function if it's not defined as a
6809 macro.
6810
09654086
KR
6811 * composite.c (run_composite_function): Use NILP when checking for
6812 nil.
6813 (syms_of_composite): Delete local var NARGS, pass an int as first
6814 argument to Fmake_hash_table.
6815
2387b382
KR
6816 * editfns.c (text_property_stickiness): Use NILP to test
6817 Lisp_Object boolean value.
6818 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
6819 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
6820 problems reading from and changing the same lisp value in an
6821 XSETSTRING call.
6822
27660e89
GM
68232000-04-01 Gerd Moellmann <gerd@gnu.org>
6824
6825 * term.c (TN_no_color_video): New variable.
6826 (term_init): Intitialize TN_no_color_video.
6827 (enum no_color_bit): New enumeration.
6828 (MAY_USE_WITH_COLORS_P): New macro.
6829 (turn_on_face): Use it to determine if attributes may be used
6830 combined with colors.
6831
3578db3c
KR
68322000-04-01 Ken Raeburn <raeburn@gnu.org>
6833
6834 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
6835 with int lvalues via casts; instead, just yield lisp object
6836 lvalues.
6837 (enlarge_window): Variable sizep now points to Lisp_Object. Use
6838 proper accessor macros.
6839 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
6840 (grow_mini_window): Fix typo getting int value of root->height.
6841
6fc556fd
KR
6842 * xdisp.c (compute_string_pos): Fix order of arguments to
6843 string_pos_nchars_ahead.
6844 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
6845 count arg to variable-arg routines like Frun_hook_with_args and
6846 Fformat.
587a49ab
GM
6847 (back_to_previous_visible_line_start)
6848 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
6849 fixed-arg routines like Fget_char_property and Fmake_string.
6850 (reconsider_clip_changes): Use XINT when comparing integer lisp
6851 objects, or passing them as int arguments.
587a49ab
GM
6852 (mark_window_display_accurate, insert_left_trunc_glyphs)
6853 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
6854 storing or passing integer values as lisp objects.
6855 (set_cursor_from_row, highlight_trailing_whitespace): Use
6856 INTEGERP, not implicit test against zero, for glyph object.
6857 (try_window_id): Don't use make_number when we want an int value.
6858
6859 * xfaces.c (xlfd_symbolic_value): Make last argument a
6860 Lisp_Object, to be consistent with callers.
6861 (Fbitmap_spec_p): Use XINT to get numeric value of height.
6862 (lface_hash): Apply XFASTINT to lisp values before folding in.
6863
6864 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
6865 fill in window width and height. Pass an int, not a lisp object,
6866 as first arg to Finsert.
6867
6e7b2457
GM
68682000-04-01 Gerd Moellmann <gerd@gnu.org>
6869
610d841e
GM
6870 * xfaces.c (realize_basic_faces): Block input while realizing
6871 the faces.
6872
6e7b2457
GM
6873 * keyboard.c (lispy_mouse_names): Add additional mouse names.
6874
6875 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
6876
aa110c0c
GM
68772000-03-31 Gerd Moellmann <gerd@gnu.org>
6878
6879 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 6880 or ASCII, handle case that per-char metric is null.
aa110c0c 6881
8801a864
KR
68822000-03-30 Ken Raeburn <raeburn@gnu.org>
6883
c6129d7e
KR
6884 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
6885
8801a864
KR
6886 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
6887 XSUBR, XBUFFER): Verify correct object type before returning
6888 pointer, using eassert.
6889 * frame.h (XFRAME): Likewise.
6890
6891 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
6892 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
6893 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
6894 type.
6895 * data.c (set_internal): Likewise.
6896 * dispextern.h (WINDOW_WANTS_MODELINE_P,
6897 WINDOW_WANTS_HEADER_LINE_P): Likewise.
6898 * fileio.c (auto_save_1): Likewise.
6899 * insdel.c (check_markers): Likewise.
6900 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
6901 * undo.c (record_insert): Likewise.
6902 * vmsproc.c (child_sig): Likewise.
6903 * window.c (unshow_buffer, window_loop): Likewise.
6904 * xterm.c (x_erase_phys_cursor): Likewise.
6905
8e7af858
GM
69062000-03-30 Gerd Moellmann <gerd@gnu.org>
6907
6908 * xfns.c (free_image_cache): Free the cache structure itself
6909 last, after all its members have been freed.
6910
6911 * lisp.h (xstrdup): Add prototype.
6912
6913 * alloc.c (xstrdup): Moved here from xfaces.c.
6914 (allocating_for_lisp): Variable removed.
6915 (lisp_malloc): Block input around the calls to malloc and
6916 mem_insert.
6917
6918 * xfaces.c (realize_tty_face): Use find_symbol_value instead
6919 of Fsymbol_value.
6920 (xstrdup): Moved to alloc.c.
6921
e0b8c689
KR
69222000-03-29 Ken Raeburn <raeburn@gnu.org>
6923
b96f9fb7
KR
6924 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
6925
6926 * emacs.c (main): Fix sense of no-loadup test.
6927
e0b8c689
KR
6928 * config.in (ENABLE_CHECKING): Undef.
6929
6930 * lisp.h (struct interval): Replace "parent" field with a union of
6931 interval pointer and Lisp_Object; add new bitfield to use as
6932 discriminant. Change other flag fields to bitfields.
6933 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
6934 is defined and the supplied test fails, print a message and
6935 abort.
6936 (eassert): New macro. Use CHECK to provide an assert-like
6937 facility.
6938
6939 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
6940 pointers; abort if the value looks like a lisp object.
6941 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
6942 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
6943 Modify for new interval parent definition.
6944
6945 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
6946 UNMARK_BALANCE_INTERVALS): Update references that need an
6947 addressable lisp object in the interval structure.
6948 (die): New function.
6949 (suppress_checking): New variable.
6950
6951 * intervals.c (interval_start_pos): Just return 0 if there's no
6952 parent object.
6953
f83c5440
GM
69542000-03-29 Gerd Moellmann <gerd@gnu.org>
6955
6956 * lread.c (read1): Accept `.' (period) as symbol start like in CL
6957 and earlier Emacs versions.
6958
6959 * keyboard.c (Ftop_level): Cancel busy-cursor.
6960
6961 * eval.c (call_debugger): Cancel busy-cursor.
6962
fdce64ff
KH
69632000-03-29 Kenichi Handa <handa@etl.go.jp>
6964
6965 * search.c (Freplace_match): Adjust multibyteness of the current
6966 buffer and NEWTEXT. Free allocated memory before signaling an
6967 error.
6968
f6a3f532
SM
69692000-03-28 Stefan Monnier <monnier@cs.yale.edu>
6970
6971 * regex.c (analyse_first): New function obtained by ripping out most
6972 of re_compile_fastmap and generalizing it a little bit so that it
6973 can also just return whether a given (sub)pattern can match the empty
6974 string or not.
6975 (regex_compile): Use `analyse_first' to decide whether the loop-check
6976 needs to be done or not for *, +, *? and +? (the loop check is costly
6977 for non-greedy repetition).
6978 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
6979
e9b309ac
DL
69802000-03-28 Dave Love <fx@gnu.org>
6981
bb15bd9a
DL
6982 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
6983 alpha.
6984
e9b309ac
DL
6985 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
6986
ed0767d8
SM
69872000-03-27 Stefan Monnier <monnier@cs.yale.edu>
6988
6989 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
6990 an expression.
6991 (enum re_opcode_t): Update description of succeed_n.
6992 (PATFETCH): Always define.
6993 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
6994 operators, char classes, shy-groups and intervals).
6995 Optimize special cases of intervals so as to only use succeed_n and
6996 jump_n when really needed.
6997 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
6998 that we don't have to handle the special cases any more.
6999 Simplify on_failure_jump handling as well.
7000
e11e7e46
JR
70012000-03-28 Jason Rumney <jasonr@gnu.org>
7002
7003 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
7004
88faab89
GM
70052000-03-27 Gerd Moellmann <gerd@gnu.org>
7006
182ff242
GM
7007 * s/freebsd.h (GC_SETJMP_WORKS): Define.
7008
7009 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 7010
182ff242
GM
7011 * alloc.c (mark_maybe_object): New function.
7012 (mark_memory): Use it.
7013 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
7014 (setjmp_tested_p, longjmp_done): New variables.
7015 (test_setjmp): New function.
7016 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
7017 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
7018
c1005d06
GM
7019 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
7020 to DEC_TEXT_POS and INC_TEXT_POS.
7021
7022 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
7023 with parameter MULTIBYTE_P.
7024
427ec082 7025 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
7026 MULTIBYTE_P.
7027
7439e5b9 7028 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
7029 buffers because it looks for multibyte character byte sequences
7030 which don't exist in unibyte text.
7439e5b9 7031
d9c545da
GM
7032 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
7033
11fd416e 7034 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
7035 [DEBUG_X_COLORS]: New functions.
7036 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
7037
7038 * xfns.c (x_set_cursor_color): Get color reference counts right.
7039
7040 * xterm.c (x_copy_color): New function.
7041 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
7042
7043 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
7044 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
7045 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
7046 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
7047 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
7048 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
7049 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
7050 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
7051 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
7052 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
7053
11fd416e
GM
7054 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
7055 names for handling per-buffer variables.
d9c545da
GM
7056
7057 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
7058 instead of MAX_BUFFER_LOCAL_VARS.
7059 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
7060
7061 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
7062
88faab89
GM
7063 * xfns.c (x_specified_cursor_type): New function.
7064 (x_set_cursor_type): Use it.
7065
7066 * buffer.h (struct buffer): Add cursor_type.
7067
d80f42b7
SM
70682000-03-26 Stefan Monnier <monnier@cs.yale.edu>
7069
7070 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 7071 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 7072 opcode.
d80f42b7
SM
7073 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
7074 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
7075 executing it as well as when popping it off the stack to find infinite
7076 loops in non-greedy repetition operators.
7077
89e80928
GM
70782000-03-26 Gerd Moellmann <gerd@gnu.org>
7079
3d4ff2dd
GM
7080 * doc.c (Qfunction_documentation): New variable.
7081 (syms_of_doc): Initialize Qfunction_documentation.
7082 (Fdocumentation): If FUNCTION is a symbol with non-nil
7083 `function-documentation' property, return a documentation derived
7084 from that.
7085
bd96bd79
GM
7086 * buffer.c (syms_of_buffer): Add default-cursor-type.
7087 (init_buffer_once): Don't let cursor_type have a local value
7088 in every buffer.
7089
19d1bc27
GM
7090 * xterm.c (x_display_and_set_cursor): Choose cursor depending
7091 on buffer-local value of cursor_type.
7092 (x_draw_bar_cursor): Add parameter WIDTH.
7093
7094 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
7095 (init_buffer_once): Set default cursor_type value to t.
7096 Mark cursor_type as local everywhere.
7097 (syms_of_buffer): New per-buffer variable cursor-type.
7098
89e80928
GM
7099 * buffer.h (struct buffer): Remove member local_var_flags,
7100 add local_flags.
7101 (MAX_BUFFER_LOCAL_VARS): New macro.
7102 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
7103 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
7104 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
7105 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
7106
7107 * print.c (print_object): Use new macros for per-buffer
7108 variables.
7109
7110 * category.c (Fset_category_table): Use new macros for per-buffer
7111 variables.
7112
7113 * buffer.c (buffer_permanent_local_flags): Make a char array.
7114 (max_buffer_local_idx): New variable.
7115 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
7116 for new handling of per-buffer variables.
7117 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
7118 (init_buffer_once): Initialize per-buffer vars differently.
7119 Set max_buffer_local_idx.
7120
7121 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
7122 variables.
7123
7124 * lread.c (defvar_per_buffer): Use new macros for per-buffer
7125 variables.
7126
7127 * data.c (do_symval_forwarding, store_symval_forwarding)
7128 (find_symbol_value, set_internal, default_value, Fset_default)
7129 (Fkill_local_variable, Flocal_variable_p): Use new macros for
7130 per-buffer variables.
7131
7132 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
7133
9a0dd3dc
GM
71342000-03-24 Gerd Moellmann <gerd@gnu.org>
7135
b68c375f
GM
7136 * xterm.c (x_term_init): Unblock input around call1 of
7137 Qvendor_specific_keysyms.
7138
9a0dd3dc
GM
7139 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
7140 (find_defun_start): Consider an open parenthesis in column 0
7141 a defun start only if open_paren_in_column_0_is_defun_start is set.
7142 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
7143
7973e637
SM
71442000-03-24 Stefan Monnier <monnier@cs.yale.edu>
7145
7146 * eval.c (Fautoload): Add entry in load-history (if after dump).
7147 * lread.c (load-history): Update docstring.
7148
39210e90
GM
71492000-03-24 Gerd Moellmann <gerd@gnu.org>
7150
7151 * indent.c (Fvertical_motion): Always use the current buffer.
7152 Temporarily change the window's buffer, if necessary.
7153
72db3ab5
GM
71542000-03-23 Gerd Moellmann <gerd@gnu.org>
7155
7156 * xterm.c (fast_find_position): Make sure not to consider rows
7157 not visible in the window.
7158
990b2375
SM
71592000-03-22 Stefan Monnier <monnier@cs.yale.edu>
7160
7161 * regex.c (enum syntaxcode): Provide default for non-Emacs.
7162 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
7163
ff4df011
JR
71642000-03-22 Jason Rumney <jasonr@gnu.org>
7165
7166 * w32menu.c (single_submenu): Set help string to NULL if none.
7167 (w32_menu_show): Set help string correctly.
7168 (add-menu-item): Set help string in MIIM_DATA for menu item.
7169 Load SetMenuItemInfoA explicitly.
7170 (w32_menu_display_help): New function.
427ec082 7171
ff4df011
JR
7172 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
7173 (QCdata): Moved to xdisp.c.
7174
7175 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
7176 (Vw32_charset_to_codepage_alist): Removed.
7177 (Vw32_charset_info_alist): New variable.
7178 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
7179 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
7180 greek, hebrew, thai, johab, mac, unicode]): New symbols.
7181 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
7182 with TODO comment.
7183 (w32_codepage_for_font): Use Vw32_charset_info_alist.
7184 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
7185 Define Vw32_charset_info_alist and w32_charset symbols.
7186
71872000-03-22 Jason Rumney <jasonr@gnu.org>
7188
7189 * makefile.nt (w32bdf.obj): Update dependencies.
7190
7191 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
7192
7193 * w32fns.c: Include fontset.h after dispextern.h.
7194 (Fx_create_frame): Do not create fontset.
7195 (w32_load_system_font): Doc fix.
7196 (Fx_close_connection): Free full_name if it is not shared.
7197
7198 * w32term.c: Include fontset.h after dispextern.h.
7199 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
7200 updated.
7201 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
7202 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
7203 (w32_font_is_double_byte): New function, needs body.
7204 (x_append_glyph): Set glyph->glyph_not_available_p.
7205 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
7206 it->charset. If it->multibyte_p is zero and it->c is a multibyte
7207 character, convert it to a unibyte character.
7208 (struct glyph_string): Delete member `charset'.
7209 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
7210 calculating it is found.
7211 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
7212 the case that per char metric is not available correctly.
7213 (x_fill_glyph_string): Handle the case that the specific glyph is
7214 not available correctly.
7215 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
7216 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
7217 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
7218 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
7219 fontset. Don't call FS_LOAD_FONT.
7220
439d5cb4
KR
72212000-03-22 Ken Raeburn <raeburn@gnu.org>
7222
7223 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
7224 (INT_LISPLIKE): New macro.
7225 (NULL_INTERVAL_P): Use it.
7226 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
7227 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
7228 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
7229
7230 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
7231 explicit references to "parent" field of struct interval and
7232 associated unclean type conversions.
7233 * intervals.c (create_root_interval, root_interval, rotate_right,
7234 rotate_left, balance_possible_root_interval, split_interval_right,
7235 split_interval_left, interval_start_pos, find_interval,
7236 next_interval, previous_interval, update_interval,
7237 adjust_intervals_for_insertion, delete_node, delete_interval,
7238 adjust_intervals_for_deletion, merge_interval_right,
7239 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
7240 copy_intervals_to_string): Likewise.
7241 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
7242 Likewise.
7243 * syntax.c (update_syntax_table): Likewise.
7244
7245 * intervals.c (reproduce_tree_obj): New function, like
7246 reproduce_tree but takes a Lisp_Object for the parent. Declare
7247 with prototype.
7248 (graft_intervals_into_buffer): Use it when appropriate.
7249 (reproduce_tree): Declare with prototype.
7250 (balance_possible_root_interval): Check that the parent is a lisp
7251 object before trying to examine its type.
7252
ee1c5b21
GM
72532000-03-22 Gerd Moellmann <gerd@gnu.org>
7254
7255 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
7256 as strings only if both are known to be strings.
7257
7258 * s/openbsd.h (LIBS_TERMCAP): Undef.
7259
1fb352e0
SM
72602000-03-21 Stefan Monnier <monnier@cs.yale.edu>
7261
7262 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
7263 definitions for non-Emacs compilation.
7264 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
7265 outside of `#ifdef emacs'.
7266 (print_partial_compiled_pattern): Update.
7267 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
7268 (re_compile_fastmap): Merge handling of charset and charset_not (for
7269 emacs and non-emacs compilation as well).
7270 Similarly for (not)categoryspec and (not)syntaxspec.
7271 Don't use the fastmap when reaching `anychar' since the added
7272 complexity is not justified.
7273 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
7274 and (not)syntaxspec. Merge (not)categoryspec.
7275
fdaa1f77
KH
72762000-03-22 Kenichi Handa <handa@etl.go.jp>
7277
ff1a0d8e
KH
7278 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
7279 FACE_FOR_CHAR): Define them differently for the configuration of
7280 --without-x.
fdaa1f77 7281
d152fb46
DL
72822000-03-21 Dave Love <fx@gnu.org>
7283
7284 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
7285 doc string.
7286
d2cafc8c
GM
72872000-03-21 Gerd Moellmann <gerd@gnu.org>
7288
7289 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
7290 (lface_fully_specified_p): Don't check contents of
7291 LFACE_FONT_INDEX because that attribute is optional.
7292 (realize_x_face): Remove now unwarranted xassert.
7293
9111d4b5
KH
72942000-03-21 Kenichi HANDA <handa@etl.go.jp>
7295
7296 The following changes are to make font selection based on
7297 characters, not charset. In addition, they recover fontset
7298 facilities while utilizing the new font selection mechanism.
7299
6c4bfdc0
KH
7300 * Makefile.in (fontset.o): Depend on dispextern.h.
7301
7302 * alloc.c (mark_face_cache): Don't mark face->registry.
7303
9111d4b5
KH
7304 * dispextern.h (struct glyph): New member glyph_not_available_p.
7305 Use 22 bits for face_id.
7306 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
7307 (struct face): Delete member registry, new member ascii_face.
7308 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
7309 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
7310 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
7311 (struct it): Delete member charset, new member
7312 glyph_not_available_p.
7313
7314 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
7315 (struct fontset_info, struct fontset_data): Structs removed.
7316 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
7317 Vglobale_fontset_alist, font_idx_temp): Externs removed.
7318 (fs_load_font, fs_query_fontset): Adjusted for new argument.
7319 (fs_free_face_fontset, fontset_font_pattern,
7320 face_suitable_for_char_p, face_for_char,
7321 make_fontset_for_ascii_face): Extern them.
7322 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
7323 (FS_LOAD_FACE_FONT): New macro.
7324
7325 * fontset.c: All codes rewritten or adjusted for the change of
7326 fontset implementation. Now fontset is represented by char table.
7327 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
7328 removed.
7329 (my_strcasecmp): Function removed.
7330 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
7331 variables.
7332 (AREF, ASIZE): New macros.
7333 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
7334 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
7335 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
7336 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
7337 fontset_id_valid_p, font_family_registry, fontset_name,
7338 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
7339 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
7340 New functions.
7341 (fs_load_font): New arg FACE. Caller changed.
7342 (fs_query_fontset): Argument changed. Caller changed.
7343 (Fquery_fontset): call fs_query_fontset.
7344 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
7345 Functions removed.
7346 (clear_fontset_elements, check_registry_encoding,
7347 check_fontset_name): New functions.
7348 (syms_of_fontset): Set char-table-extra-slots property of fontset
7349 to 3. Staticpro and initialize Vfontset_table and
7350 Vdefault_fontset. Defsubr fontset_font and fontset_list.
7351
7352 * frame.h (struct frame): Member `fontset_data' removed.
7353 (FRAME_FONTSET_DATA): Macro removed.
7354
7355 * frame.c (make_frame): Don't allocate f->fontset_data.
7356 (Fdelete_frame): Don't free f->fontset_data.
7357
6c4bfdc0
KH
7358 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
7359
9111d4b5
KH
7360 * xdisp.c (charset_at_position): Function removed.
7361 (init_iterator): Don't set member charset of struct `it'.
7362 (handle_face_prop, reseat_to_string, set_iterator_to_next,
7363 next_element_from_display_vector, insert_left_trunc_glyphs):
7364 Likewise.
7365 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
7366 FACE_FOR_CHARSET.
7367 (get_next_display_element, append_space,
7368 extend_face_to_end_of_line): Likewise.
7369
7370 * xfaces.c (Qx_charset_registry, Vface_default_registry):
7371 Variables removed.
7372 (clear_font_table, frame_update_line_height, load_face_font):
7373 Adjusted for the change of fontset implementation.
7374 (load_face_fontset_font): Function removed.
7375 (pixel_point_size): New function.
7376 (font_list): Argument type changed. Caller changed.
7377 (LFACE_FONT): New macro.
7378 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
7379 (set_lface_from_font_name): Type of arg FONTNAME is changed to
7380 Lisp_Object. Determine the font name by actually loading a font
7381 by the specified pattern. Set LFACE_FONT (lface) to the specified
7382 pattern. Even if a font is not found, don't try alternatives.
7383 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
7384 (set_font_frame_param): If `font' is specified in lface, use it.
7385 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
7386 (lface_same_font_attributes_p): Likewise.
7387 (make_realized_face): Arguent changed. Caller changed. Set
7388 face->ascii_face to face itself.
7389 (free_realized_face): Free face->fontset if face is for ASCII.
7390 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
7391 deduce_unibyte_registry, x_charset_registry): Functions removed.
7392 (free_realized_multibyte_face): New function.
7393 (lookup_face, lookup_named_face, lookup_derived_face): Argument
7394 changed. Caller changed.
7395 (try_font_list): Argument type changed.
7396 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
7397 (choose_face_font): Argument changed. Handle fontset properly.
7398 (choose_face_fontset_font): Function removed.
7399 (realize_default_face, realize_named_face): Don't remove the
7400 former face here.
7401 (realize_face): Argument changed. Caller changed. Remove face
7402 with the arg former_face_id in advance. Load font for the new
7403 face.
7404 (realize_x_face): Argument changed. Caller changed. For a
7405 multibyte character, share fontset with base_face. For a single
7406 byte character, make a new realized fontset. Don't load a font
7407 here.
7408 (realize_tty_face): Argument changed. Caller changed.
7409 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
7410 (face_at_buffer_position): Don't check multibyte_p for returning
7411 DEFAULT_FACE_ID.
7412 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
7413 FACE_SUITABLE_FOR_CHARSET_P.
7414 (syms_of_xfaces): Remove code for Qx_charset_registry and
7415 Vface_default_registry.
7416
6c4bfdc0
KH
7417 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
7418 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
7419 (x_per_char_metric): Don't try FONT->default_char. Even if
7420 pcm->width is zero, glyph bits may exist.
7421 (x_encode_char): Always initialize char2b->byte1.
7422 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
7423 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
7424 changed.
7425 (x_append_glyph): Set glyph->glyph_not_available_p.
7426 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
7427 it->charset. Handle the case that per char metric is not
7428 available. If it->multibyte_p is zero and it->c is a multibyte
7429 character, convert it to a unibyte character.
7430 (struct glyph_string): Delete member `charset'.
7431 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
7432 the case that per char metric is not available correctly.
7433 (x_fill_glyph_string): Handle the case that the specific glyph is
7434 not available correctly.
7435 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
7436 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
7437 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
7438 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
7439 fontset. Don't call FS_LOAD_FONT.
7440
7441 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
7442 (x_create_tip_frame): Likewise.
7443 (Fx_close_connection): Free full_name of font_info.
7444
7445 * fns.c (optimize_sub_char_table): New function.
7446 (Foptimize_char_table): New function.
7447 (syms_of_fns): Defsubr Soptimize_char_table.
7448
b33dd3b0
GM
74492000-03-20 Gerd Moellmann <gerd@gnu.org>
7450
7451 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
7452 only if buffer is displayed in some window.
7453
7454 * xdisp.c (handle_single_display_prop): Initialize local `value'.
7455 (try_window_reusing_current_matrix): Don't call scroll run
7456 function if run's current and desired position are the same;
7457 this prevents cursor flickering.
7458
4e8a9132
SM
74592000-03-19 Stefan Monnier <monnier@cs.yale.edu>
7460
7461 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
7462
7463 * regex.c (RE_STRING_CHAR): New macro.
7464 (GET_CHAR_AFER_2): Remove.
7465 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
7466 (enum re_opcode_t): Remove on_failure_jump_exclusive.
7467 (print_partial_compiled_pattern, re_compile_fastmap)
7468 (re_match_2_internal): Remove on_failure_jump_exclusive.
7469 (regex_compile): Turn optimizable P+ loops into PP*, so that the
7470 optimization only need to work for * (ie. can use of_keep_string_jump).
7471 Remove the special case for .*\n since it is now covered by the general
7472 optimization.
7473 (re_search_2): Don't bother with `room'.
7474 (skip_one_char): New function.
7475 (skip_noops): Simplify since `memory' is not needed any more.
7476 (mutually_exclusive_p): Restructure slightly to use `switch' and
7477 add handling for "all" remaining cases.
7478 (re_match_2_internal): Change on_failure_jump_smart to use
7479 on_failure_keep_string_jump (and redirect the end-of-loop jump)
7480 rather than on_failure_jump_exclusive.
7481
2136fdd4
GM
74822000-03-19 Gerd Moellmann <gerd@gnu.org>
7483
7484 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
7485 number of bits per RGB because it's everywhere used as the depth
7486 of the visual.
7487
7488 * term.c (calculate_costs): Remove code dealing with X frames.
7489
18e21ce8 74902000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
7491
7492 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
7493
d7b511c4
GM
74942000-03-18 Gerd Moellmann <gerd@gnu.org>
7495
7496 * lread.c (read_integer): Unread the last char not consumed.
7497
16b5d424
GM
74982000-03-17 Gerd Moellmann <gerd@gnu.org>
7499
7500 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 7501 which are in the process of being deleted.
16b5d424 7502
1fa28578
GM
75032000-03-16 Gerd Moellmann <gerd@gnu.org>
7504
83488cce
GM
7505 * Makefile.in (mostlyclean): Add `*.core'.
7506 (clean): Add `bootstrap-emacs'.
7507
1fa28578
GM
7508 * lread.c (read_integer): New function.
7509 (read1): Support read syntax #o, #x, #b, #r.
7510
99633e97
SM
75112000-03-15 Stefan Monnier <monnier@cs.yale.edu>
7512
1fa28578
GM
7513 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
7514 make sure POINTER_TO_OFFSET gives the same value before and after
7515 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
7516 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
7517 (debug): Now only active if > 0 rather than if != 0.
7518 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
7519 (print_partial_compiled_pattern): Add missing `succeed' case. Use
7520 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
7521 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
7522 (store_op1, store_op2, insert_op1, insert_op2)
7523 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
7524 (group_in_compile_stack): Move to after its arg's types are
7525 declared and add a prototype.
99633e97 7526 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
7527 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
7528 wrapper.
99633e97 7529 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
7530 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
7531 indentation of the greedy-op and shy-group code.
99633e97
SM
7532 (at_(beg|end)line_loc_p): Fix argument's types.
7533 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
7534 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
7535 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
7536 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
7537 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
7538 QUIT unconditionally.
99633e97 7539
699238d9
GM
75402000-03-15 Gerd Moellmann <gerd@gnu.org>
7541
7542 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
7543 a sole completion.
7544
7545 * process.c (send_process): Add a hint that the function
7546 can call Lisp code to its comment.
7547
7548 * lread.c (load_dangerous_libraries): New variable.
7549 (Vbytecomp_version_regexp): New variable.
7550 (safe_to_load_p): New function.
7551 (Fload): Handle files not compiled with Emacs specially.
7552 (syms_of_lread): New Lisp variable load-dangerous-libraries.
7553
34e23e5a
GM
75542000-03-14 Gerd Moellmann <gerd@gnu.org>
7555
9c763cca
GM
7556 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
7557
7558 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
7559 support functions only if HAVE_X11R6_XIM is defined.
7560 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
7561
7562 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
7563
7564 * xfns.c (X_I18N_INHIBITED): Don't define.
7565 (create_frame_xic): Remove conditional compilation on
7566 X_I18N_INHIBITED.
7567 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
7568
7569 * config.in (HAVE_X_I18N): Moved here from xterm.h.
7570 (HAVE_X11R6_XIM): Define.
7571
7572 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
7573
34e23e5a
GM
7574 * xterm.c (x_term_init): Add support for X resource `synchronous'.
7575 If set, call XSynchronize.
7576
66f0296e
SM
75772000-03-13 Stefan Monnier <monnier@cs.yale.edu>
7578
34e23e5a
GM
7579 * regex.c: Declare a new type `re_char' used throughout the code
7580 for the string char type. It's `const unsigned char' to match the
7581 rest of Emacs. Consistently make sure all pointers to strings use
7582 it and make sure all pointers into the pattern use `unsigned
7583 char'.
66f0296e 7584 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
7585 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
7586 code duplication.
66f0296e
SM
7587
7588 * charset.h (GET_CHAR_AFTER_2): Remove.
7589 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
7590
854a025c
KR
75912000-03-12 Ken Raeburn <raeburn@gnu.org>
7592
7593 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
7594 variable before the invocation of YMF_PASS_LDFLAGS, in case both
7595 of them try to use backquotes.
7596
b9d2c7e2
DL
75972000-03-12 Dave Love <fx@gnu.org>
7598
7599 * unexelf.c: Restore changes of 1999-10-19.
7600 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
7601 fix its type and alignment; copy it from current process.
7602
5e5dff44
GM
76032000-03-12 Gerd Moellmann <gerd@gnu.org>
7604
9b2f3c38
GM
7605 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
7606 has been found. Fix bug not computing timer's predecessor.
7607
427ec082 7608 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
7609 file name.
7610
e1cff360
GM
7611 * window.c (Fsave_window_excursion): Doc fix.
7612
5e5dff44
GM
7613 * xfns.c (x_defined_color): Rewritten to use
7614 x_allocate_nearest_color.
7615
e411ce4b
EZ
76162000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
7617
7618 * msdos.c (vga_installed): New function, code moved from
7619 dos_set_window_size.
7620 (Qbar, Qcursor_type, outside_cursor): New variables.
7621 (syms_of_msdos): Intern and staticpro them.
7622 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
7623 shape used outside Emacs when called for the first time.
7624 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
7625 cursor shape used outside Emacs.
7626 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
7627 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
7628 type has changed.
7629 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
7630 parameters specify the cursor. Make qreverse a global
7631 variable (renamed to Qreverse).
7632
80460654
GM
76332000-03-09 Gerd Moellmann <gerd@gnu.org>
7634
7635 * fns.c (Fy_or_n_p): Cancel busy-cursor.
7636
95cd4c40
SM
76372000-03-08 Stefan Monnier <monnier@cs.yale.edu>
7638
7639 This is a big redesign of failure-stack and register handling, prompted
7640 by bugs revealed when trying to add shy-groups. Overall, what happened
7641 is that loops are now structured a little differently, groups can be
7642 shy and the code is a little simpler.
7643
7644 * regex.h: Update the copyright.
7645 (RE_SHY_GROUPS): New value.
7646 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
7647 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
7648
80460654
GM
7649 * regex.c (enum re_opcode_t): Remove jump_past_alt,
7650 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
7651 on_failure_jump_(exclusive, loop and smart). Also fix the comment
7652 for (start|stop)_memory since they now only take one argument (the
7653 second has becomes unnecessary).
7654 (print_partial_compiled_pattern): Adjust for changes in
7655 re_opcode_t.
7656 (print_compiled_pattern): Use %ld to printf long ints and flush to
7657 make debugging a little easier.
95cd4c40
SM
7658 (union fail_stack_elt): Make the integer unsigned.
7659 (struct fail_stack_type): Add a `frame' element.
7660 (INIT_FAIL_STACK): Init `frame' as well.
7661 (POP_PATTERN_OP): New macro for re_compile_fastmap.
7662 (DEBUG_PUSH, DEBUG_POP): Remove.
7663 (NUM_REG_ITEMS): Remove.
7664 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
7665 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
7666 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 7667 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
7668 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
7669 macros.
7670 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
7671 address pushed is not the destination of the jump but the source
7672 of it instead.
95cd4c40
SM
7673 (NUM_FAILURE_ITEMS): Remove.
7674 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
7675 registers before the actual failure point). Don't hardcode any
7676 meaning for str==NULL anymore.
95cd4c40 7677 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
7678 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
7679 Remove.
95cd4c40
SM
7680 (REG_UNSET_VALUE): Use NULL (why not?).
7681 (compile_range): Remove declaration since it doesn't exist.
7682 (struct compile_stack_elt_t): Remove inner_group_offset.
7683 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
7684 (regex_grow_registers): Remove dead code.
7685 (FIXUP_ALT_JUMP): New macro.
80460654
GM
7686 (regex_compile): Add shy-groups Change loops to use
7687 on_failure_jump_smart&jump instead of
7688 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
7689 initial (dummy_failure_)jump. Remove c1_base (looks like unused
7690 variable to me). Use `jump' instead of `jump_past_alt' and don't
7691 bother with push_dummy_failure in alternatives since it is now
7692 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
7693 emacs' for (re)allocating the stack.
7694 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
7695 from loop when bufp->can_be_null rather than jumping to `done'.
7696 Avoid jumping backwards so as to ensure termination. Use
7697 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
7698 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 7699 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
7700 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
7701 improve mutually_exclusive_p to handle ".+\n".
7702 (lowest_active_reg, highest_active_reg,
7703 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
7704 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
7705 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
7706 variables. Push register (in `start_memory') on the stack rather
7707 than storing it in old_reg(start|end). Remove the cycle detection
7708 from `stop_memory', replaced by the use of on_failure_jump_loop
7709 for greedy loops. Add code for the new on_failure_jump_<foo>.
7710 Remove ad-hoc code in `on_failure_jump' to push more registers in
7711 the case of a loop. Take out code from `maybe_pop_jump' into
7712 separate functions and adapt it to the semantics of
7713 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
7714 and push_dummy_failure. Remove dummy_failure handling and
7715 handling of `failures to jump to on_failure_jump' (this last one
7716 was already dead code, it seems).
7717 (group_match_null_string_p, alt_match_null_string_p)
7718 (common_op_match_null_string_p): Remove.
95cd4c40 7719
7397acc4
DL
77202000-03-08 Dave Love <fx@gnu.org>
7721
7722 * config.in: Don't depend on __STDC__ for volatile.
7723 Add POINTER_TYPE, PTR, PROTOTYPES.
7724
7725 * hftctl.c, strftime.c: Use PROTOTYPES.
7726 * eval.c (find_handler_clause): Likewise.
7727
7728 * mem-limits.h: Use POINTER_TYPE.
7729
7730 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
7731 (memory_warnings): Declare using POINTER_TYPE.
7732
5e91ff9e
GM
77332000-03-08 Gerd Moellmann <gerd@gnu.org>
7734
feab4fba
GM
7735 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
7736
25edb08f
GM
7737 * xdisp.c (display_echo_area): Temporarily inhibit garbage
7738 collection.
7739
5e91ff9e
GM
7740 * xfns.c: Remove obsolete code in #if 0.
7741 (Fx_focus_frame): New function.
7742
a735b7e1
KH
77432000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
7744
7745 * coding.c (coding_category_name): Add coding-category-utf-8,
7746 coding-category-utf-16-be, coding-category-utf-16-le.
7747 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
7748 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
7749 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
7750 (detect_coding_utf_8): New function.
7751 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
7752 UTF_16_LOW_SURROGATE_P): New macros.
7753 (detect_coding_utf_16): New function
7754 (detect_coding_mask): When priorities are specified, skip any
7755 categories that have `nil' coding-system. Fix bug of returning
7756 wrong mask when PRIORITIES is specified and detect_coding_XXX()
7757 returns a mask not set in PRIORITIES.
7758 (detect_eol_type_in_2_octet_form): New function.
7759 (detect_eol): selects detect_eol_type_XXX to call according to
7760 cooding->category_idx.
7761 (detect_coding_system): Remove `nil' coding-system in the result.
7762 (Fupdate_coding_systems_internal): Update all coding-categories.
7763
7764 * coding.h (CODING_CATEGORY_IDX_UTF_8,
7765 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
7766 macros.
7767 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
7768 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
7769 CODING_CATEGORY_IDX_UTF_16_LE.
7770 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
7771 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
7772 (CODING_CATEGORY_MASK_ANY): Include the above macros.
7773 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
7774
9994cc69
GM
77752000-03-07 Gerd Moellmann <gerd@gnu.org>
7776
e9b4e5ff
GM
7777 * doc.c (Fdocumentation_property): If value is not a string,
7778 and doesn't refer to etc/DOC, evaluate it to obtain a string.
7779
f7daf1e1
GM
7780 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
7781 close the display with XtCloseDisplay. This caused a bus error
7782 on OpenWindows.
7783
9994cc69
GM
7784 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
7785 complete but not unique.
7786
4336c705
GM
77872000-03-06 Gerd Moellmann <gerd@gnu.org>
7788
18bb0684
GM
7789 * process.c (send_process): Remove local variable `procname' that
7790 might become invalid when a GC happens. Instead, access the
7791 process name slot directly.
7792
4336c705
GM
7793 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
7794 orig_height if set.
7795
7796 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
7797 orig_height if set.
7798
515d0d0e
EZ
77992000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
7800
7801 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
7802 glyph matrices have been freed.
7803
100b3cbb
GM
78042000-03-05 Gerd Moellmann <gerd@gnu.org>
7805
50df5e5a 7806 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 7807 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
7808
7809 * xfns.c (QCdata): Moved to xdisp.c.
7810
7811 * xdisp.c (QCdata): Moved here from xfns.c.
7812 (syms_of_xdisp): Initialize QCdata.
7813
7814 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
7815
7816 * window.c (coordinates_in_window): Use
7817 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
7818 FRAME_INTERNAL_BORDER_WIDTH.
7819
100b3cbb 7820 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 7821 it is obviously invalid.
100b3cbb
GM
7822
7823 * xterm.c (x_term_init): Create a colormap if not using the
7824 default visual.
7825
7826 * xterm.h (select_visual): Change prototype.
7827
7828 * xfns.c (select_visual): Rewritten. Recognize user-specified
7829 visual classes.
7830 (visual_classes): New variable.
7831
64d739c4
GM
78322000-03-04 Gerd Moellmann <gerd@gnu.org>
7833
7834 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
7835 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
7836 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
7837 (x_decode_color): Don't handle allocation of white and black
7838 specially.
7839 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
7840 XtNcolormap resources.
7841 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
7842 (Fx_create_frame): Initialize color members of x_output structure.
7843 (xpm_load): Pass colormap to XPM lib.
7844
7845 * xfaces.c (x_free_colors): Access colormap of frame using
7846 FRAME_X_COLORMAP. Be paranoid about freeing black and white
7847 when default colormap is used.
7848
7849 * xterm.c (x_term_init): Set Colormap member of x_display_info
7850 structure. Copy colormap if resource `privateColormap' is
7851 specified (PseudoColor only).
7852 (x_setup_relief_color): Access colormap of frame using
7853 FRAME_X_COLORMAP.
7854
7855 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
7856 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
7857
c3cee013
JR
78582000-03-04 Jason Rumney <jasonr@gnu.org>
7859
7860 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
7861 other non-platform-specific equivalents.
64d739c4 7862 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
7863 specific functions and macros as their w32 equivalents where
7864 non-platform-specifics are not available.
7865 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
7866 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
7867 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
7868 (frame_update_line_height): Use macros to access f->output_data.
7869 (defined_color): Remove FIXME comments; fixed.
7870 (x_face_list_fonts, prepare_face_for_display): Put X specifics
7871 into #ifdef blocks. Add WINDOWSNT blocks.
7872 (Fx_list_fonts): Use macros for accessing font data.
7873 (set_lface_from_font_name): Different default fonts for X and
7874 WINDOWSNT.
7875 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
7876 scalable for backward compatibility.
64d739c4 7877 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
7878 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
7879
64d739c4 7880 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
7881 syms_of_w32faces.
7882
7883 * makefile.nt (w32faces.obj): Remove.
7884 (xfaces.obj): Add.
7885
807cc41c
JR
78862000-03-03 Jason Rumney <jasonr@gnu.org>
7887
7888 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
7889 correct parameters.
7890
0007072a
KR
78912000-03-03 Ken Raeburn <raeburn@gnu.org>
7892
7893 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
7894 standard ELF definitions here if the system header does not.
7895
71a6ba55
GM
78962000-03-03 Gerd Moellmann <gerd@gnu.org>
7897
7898 * xterm.c (PER_CHAR_METRIC): Removed.
7899 (x_per_char_metric_1, x_default_char): New functions.
7900 (x_per_char_metric): If font's default char is invalid, return
7901 metrics of a suitably chosen usable default char.
7902 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
7903 char, replace occurrences of unprintable chars with a suitably
7904 chosen usable default char.
71a6ba55 7905
900fa1f1
GM
79062000-03-02 Gerd Moellmann <gerd@gnu.org>
7907
42f55fe0
GM
7908 * xterm.c (note_mouse_highlight): Return quickly if frame's
7909 glyph matrices have been freed.
7910
7911 * dispnew.c (free_glyphs): Block input while freeing matrices.
7912
900fa1f1
GM
7913 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
7914
7915 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
7916 x_free_colors.
7917
7918 * dispextern.h (x_free_colors): Add prototype.
7919
7920 * xfaces.c (x_free_colors): New function.
7921 (unload_color, free_face_colors): Use it.
7922
2f950292
EZ
79232000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
7924
7925 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
7926
7927 * window.c [MSDOS]: Include msdos.h.
7928
54d04320
DL
79292000-03-02 Dave Love <fx@gnu.org>
7930
7931 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
7932
7933 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
7934 set C_OPTIMIZE_SWITCH for gcc.
7935
0ba93ac4
KH
79362000-03-02 Kenichi Handa <handa@etl.go.jp>
7937
7938 * coding.c (coding_save_composition): Be sure to allocate
7939 composition data area in coding even if there's no composition in
7940 the current run.
7941
a2bc11d4
JR
79422000-03-01 Jason Rumney <jasonr@gnu.org>
7943
7944 * w32term.c: Equivalent changes to those made to xterm.c on
7945 2000-02-25 and 2000-02-24.
7946
7947 * w32fns.c: Equivalent changes to those made to xfns.c on
7948 2000-02-25 and 2000-02-21.
7949
7950 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
7951 correct line-end convention is followed.
7952
7953 * w32menu.c [HAVE_BOXES]: Remove #undef.
7954 (single_keymap_panes): Remove code for simulating checkmarks.
7955 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
7956 Remove code for drawing simulated checkmarks.
7957 (w32_menu_show): make unibyte help string correctly.
7958 (add_menu_item): draw standard Windows checkmarks. Draw radio
7959 buttons as radio buttons if possible.
7960
72d19d75
GM
79612000-03-01 Gerd Moellmann <gerd@gnu.org>
7962
2df636f4
GM
7963 * sysdep.c (start_of_text): Don't define this function for NetBSD
7964 with ELF.
7965
427ec082 7966 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
7967 Don't define.
7968 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
7969 (LINKER): Don't undef if __NetBSD__ is defined.
7970
7971 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
7972
7973 * fileio.c [__NetBSD__]: Define `unix'.
7974
72d19d75
GM
7975 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
7976
ed4d0512
GM
79772000-02-29 Gerd Moellmann <gerd@gnu.org>
7978
50b1039f
GM
7979 * atimer.c (start_atimer): Don't abort when timers are stopped.
7980 (append_atimer_lists): New function.
7981 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
7982 arbitrary lists of stopped and running atimers.
7983
ed4d0512
GM
7984 * atimer.c (cancel_atimer): Handle canceling an atimer when
7985 some timers are stopped.
7986
7987 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
7988 after canceling it.
7989
7990 * fns.c (maybe_resize_hash_table): Handle case of new size
7991 coming out as being the same as old size.
7992
387023ee
JR
79932000-02-27 Jason Rumney <jasonr@gnu.org>
7994
7995 * makefile.nt: Add atimer.h to dependencies.
7996 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
7997 * w32console.c: Only disable window system features for dispextern.h
7998 (initialize_w32_display): Build a display info for the console.
7999 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
8000 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
8001 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
8002 as 2 button mice.
8003 * w32gui.h (struct W32FontStruct): Revert last change after change
8004 to xdisp.c.
8005 * w32menu.c (single_submenu): Set up help string.
8006 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
8007 (w32_dialog_show): Set up help string.
8008 * w32term.c (w32_display_info_for_display): Remove unused function.
8009 (w32_draw_bitmap): Use pre-built bitmaps.
8010 (w32_initialize_display_info): New function to initialize parts of
8011 display info that are common to both GUI and console frames.
8012 (w32_term_init): Use w32_initialize_display_info. Do not set
8013 Vw32_num_mouse_buttons here, as it is not called for console
8014 frames. Build bitmaps for indicating truncated lines etc.
8015 (x_delete_display): Destroy pre-built bitmaps.
8016 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
8017 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
8018
4516715a
DL
80192000-02-27 Dave Love <fx@gnu.org>
8020
8021 * lisp.h: Add a bunch of prototypes.
8022
171ca836
KH
80232000-02-26 Kenichi Handa <handa@etl.go.jp>
8024
8025 * keyboard.c (read_char): Set `usec' correctly.
8026
4013921d
KH
80272000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
8028
8029 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
8030 `lambda', set reg[RRR] to the map index.
8031 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
8032 reg[RRR] to 0. Otherwise, set it to -1.
8033
9244a058
GM
80342000-02-25 Gerd Moellmann <gerd@gnu.org>
8035
2df636f4 8036 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 8037
18e21ce8 80382000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 8039
f43d79c1
GM
8040 * fileio.c (Ffile_symlink_p): If result starts with a `/'
8041 and contains a `:', prepend `/:'.
8042
8043 * window.c (select_window_1): If selected_window is nil,
8044 don't "swap out" the buffer's point.
8045 (Fset_window_configuration): Set selected_window to nil
8046 before calling Fselect_window.
8047 (unshow_buffer): Don't set point in buffer from window's point
8048 if another more recently selected window also shows the buffer.
8049
bed0c171
GM
80502000-02-25 Gerd Moellmann <gerd@gnu.org>
8051
449c3c52
GM
8052 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
8053
f5b58615
GM
8054 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
8055 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
8056 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
8057 variables.
8058 (DEFAULT_BUSY_CURSOR_DELAY): New define.
8059 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
8060 (hide_busy_cursor): New functions.
8061 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
8062
8063 * minibuf.c (read_minibuf): Cancel busy-cursor.
8064
8065 * keyboard.c (command_loop_1): Call start_busy_cursor before
8066 Fcommand_execute and cancel_busy_cursor after it.
8067 (timer_check): Remove busy-cursor code.
8068 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
8069 cursor timer.
8070
8071 * process.c (wait_reading_process_input): Remove busy-cursor code.
8072
8073 * eval.c (Fsignal): Call cancel_busy_cursor instead of
8074 Fx_hide_busy_cursor.
8075
8076 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
8077 Remove prototyoes.
8078 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
8079
8080 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
8081
8082 * xterm.c (XTread_socket): Remove busy-cursor code.
8083
4eb8436f
GM
8084 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
8085 (build_frame_matrix_from_leaf_window): Put code handling
8086 glyph row's not being a slice of a frame row in #if 0.
8087 (sync_window_with_frame_matrix_rows): New function.
8088 (frame_row_to_window): New function.
8089 (mirror_line_dance): Handle copies between windows.
8090
3cb65b0e
GM
8091 * lread.c (Fload): Use `xfree' instead of `free'.
8092 (init_obarray): Use `xmalloc' instead of `malloc'.
8093
bed0c171
GM
8094 * window.c (Fset_window_buffer): Set WINDOW to the window
8095 after decoding.
2add4349
GM
8096 (coordinates_in_window): Take frame's internal border width
8097 into account.
bed0c171 8098
42088c12
GM
80992000-02-24 Gerd Moellmann <gerd@gnu.org>
8100
8101 * xterm.c (x_display_and_set_cursor): Display cursor of
8102 non-selected windows depending on the setting of
8103 cursor_in_non_selected_windows.
8104
8105 * xdisp.c (cursor_in_non_selected_windows): New variable.
8106 (syms_of_xdisp): DEFVAR_BOOL it.
8107
d1e103b2
GM
81082000-02-23 Gerd Moellmann <gerd@gnu.org>
8109
723e779c
GM
8110 * data.c (Fstring_to_number): If number is greater than what
8111 fits into an integer, return a float.
8112
d1e103b2
GM
8113 * eval.c (specbind): Remove references to
8114 keyword_symbols_constant_flag.
8115
8116 * data.c (keyword_symbols_constant_flag): Removed.
8117 (Fmakunbound, set_internal, syms_of_data): Remove references to
8118 keyword_symbols_constant_flag.
8119
8120 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
8121
214f877f
KH
81222000-02-23 Kenichi Handa <handa@etl.go.jp>
8123
8124 * syntax.c (multibyte_syntax_as_symbol): New variable.
8125 (syms_of_syntax): Declare it as a Lisp variable.
8126 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
8127 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
8128 nonzero, treat all multibyte characters as symbol.
42088c12 8129 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
8130 characters.
8131
130adcb7
EZ
81322000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
8133
3cb65b0e 8134 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 8135 a deleted frame.
130adcb7 8136
17cbbf95
GM
81372000-02-21 Gerd Moellmann <gerd@gnu.org>
8138
8139 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
8140
8141 * xfns.c (x_window_to_frame, x_any_window_to_frame)
8142 (x_non_menubar_window_to_frame): Check the busy-cursor window.
8143
beb0bc36
DL
81442000-02-21 Dave Love <fx@gnu.org>
8145
8146 * frame.c (Vmouse_position_function): New variable.
8147 (Fmouse_position): Use it.
8148 (syms_of_frame): Install it.
8149
8150 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
8151
1d92afcd
GM
81522000-02-20 Gerd Moellmann <gerd@gnu.org>
8153
8154 * fileio.c (Finsert_file_contents): Unbind the binding of
8155 standard-output done by temp_output_buffer_setup.
329eed9f
GM
8156
8157 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
8158 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
8159 (specbind, unbind_to): Handle most common case of non-constant
8160 symbol with trivial value specially.
8161
8162 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
8163
18e21ce8 81642000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
8165
8166 * data.c (Fmake_variable_buffer_local): Doc fix.
8167 Init found_for_buffer to 0.
8168 (Fmake_variable_frame_local): If the variable has already
8169 been buffer-local, set the check_frame field.
8170
1d4311c3
EZ
81712000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
8172
8173 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
8174 produced for CODING_MODE_LAST_BLOCK requires.
8175
2dc95ddd
DL
81762000-02-18 Dave Love <fx@gnu.org>
8177
8178 * keyboard.c (echo_keystrokes): Remove declaration.
8179 (Vecho_keystrokes) New variable.
8180 (read_char, record_menu_key, read_key_sequence): Use it to allow
8181 use of float value.
8182 (syms_of_keyboard): Change Vecho_keystrokes declaration.
8183
8184 * lread.c: Undef feature selection macros before defining.
8185
f0930f35
GM
81862000-02-18 Gerd Moellmann <gerd@gnu.org>
8187
8188 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
8189 for symbols other than the symbol in question.
8190
e3d4de90
DL
81912000-02-17 Dave Love <fx@gnu.org>
8192
8193 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
8194
0b378936
GM
81952000-02-17 Gerd Moellmann <gerd@gnu.org>
8196
d621caf7
GM
8197 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
8198
0b378936
GM
8199 * alloc.c (enum mem_type): Compile unconditionally.
8200
3b451f74
EZ
82012000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
8202
8203 * xfaces.c (tty_defined_color): Don't return faulire indication
8204 for unspecified-fg and unspecified-bg pseudo-colors.
8205
10689a01
GM
82062000-02-17 Gerd Moellmann <gerd@gnu.org>
8207
1216f5e4
GM
8208 * alloc.c (mark_object): Don't mark symbol names in pure space.
8209 (gc_sweep): Don't unmark symbol names in pure space.
8210
8211 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
8212 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
8213 [GC_MARK_STACK]: New defines.
427ec082 8214 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
8215 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
8216
8217 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
8218
8219 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
8220 allocate_buffer instead of xmalloc.
8221
8222 * alloc.c (toplevel): Include setjmp.h.
8223 (PURE_POINTER_P): New define.
8224 (enum mem_type) [GC_MARK_STACK]: New enumeration.
8225 (Vdead) [GC_MARK_STACK]: New variable.
8226 (lisp_malloc): Add parameter TYPE, call mem_insert if
8227 GC_MARK_STACK is defined.
8228 (allocate_buffer): New function.
427ec082 8229 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
8230 (free_float) [GC_MARK_STACK]: Set type to Vdead.
8231 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
8232 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
8233 (MEM_NIL) [GC_MARK_STACK]: New define.
8234 (struct mem_node) [GC_MARK_STACK]: New structure.
8235 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
8236 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
8237 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
8238 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
8239 (mark_stack) [GC_MARK_STACK]: New functions.
8240 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
8241 (clear_marks): Removed.
8242 (gc_sweep): Set free conses' car, free floats' type, free
8243 symbols' function to Vdead. Use lisp_free to free buffers.
8244 (init_alloc_once): Initialize Vdead.
8245 (survives_gc_p): Return non-zero for pure objects.
8246
8247 * alloc.c: Add comments throughout the file.
8248
2503c8b1
GM
8249 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
8250 that unblocks alarms.
8251
8389e1e2
GM
8252 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
8253 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
8254 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
8255
10689a01 8256 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 8257
bfc17d18
KH
82582000-02-17 Kenichi Handa <handa@etl.go.jp>
8259
4a09dee0
KH
8260 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
8261 avoid infinite error signaling. Allocate sufficient memory for
8262 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 8263
2b927d02
SM
82642000-02-17 Stefan Monnier <monnier@cs.yale.edu>
8265
8266 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
8267 depends on the previous behavior.
8268
b49cb764
GM
82692000-02-16 Gerd Moellmann <gerd@gnu.org>
8270
8271 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
8272
99e95407
GM
82732000-02-15 Gerd Moellmann <gerd@gnu.org>
8274
8275 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
8276
8277 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 8278 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
8279 write(2).
8280
6ffd3cf7
RS
82812000-02-15 Richard M. Stallman <rms@gnu.org>
8282
8283 * data.c (set_internal): Don't make variable buffer-local
8284 if within a let-binding for the same buffer.
8285 (let_shadows_buffer_binding_p): New function.
8286
8287 * eval.c (specbind): For buffer-local value,
8288 record the current buffer also.
8289 (unbind_to): Cope with that change.
8290
cad53475
GM
82912000-02-15 Gerd Moellmann <gerd@gnu.org>
8292
8293 * window.c (Fsave_window_excursion): Doc fix.
8294
1aa963c8
SM
82952000-02-15 Stefan Monnier <monnier@cs.yale.edu>
8296
8297 * syntax.c (back_comment): Make sure we only consider comment-starters
8298 of the relevant style and return -1 in case of a failure to find the
8299 beginning of the comment.
8300 (Fforward_comment): If back_comment fails, go back to the position just
8301 after the comment-end.
8302 (scan_lists): Add comment describing a very minor bug.
8303
b9b84fd3
SM
83042000-02-14 Stefan Monnier <monnier@cs.yale.edu>
8305
8306 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
8307 `completion-regexp-list' in the docstring.
8308
3a28db80
DL
83092000-02-14 Dave Love <fx@gnu.org>
8310
8311 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
8312
fb4a568d
SM
83132000-02-14 Stefan Monnier <monnier@cs.yale.edu>
8314
8315 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
8316 to Emacs' syntax. Also fix the comment about set/not-set meanings
8317 since Emacs syntax is not the value 0 any more.
8318 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
8319 since it's now part of RE_SYNTAX_EMACS.
8320
1063ebb5
DL
83212000-02-12 Dave Love <fx@gnu.org>
8322
8323 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
8324 Alpha.
8325
fb07a302
GM
83262000-02-12 Gerd Moellmann <gerd@gnu.org>
8327
8328 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
8329
aaf2320c
DL
83302000-02-12 Dave Love <fx@gnu.org>
8331
8332 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
8333
8334 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
8335 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
8336 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
8337
8338 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
8339
8340 * s/nextstep.h: Don't define HAVE_ALLOCA.
8341
8342 * config.in: Add vfork bits.
8343
eedf8bde
GM
83442000-02-12 Gerd Moellmann <gerd@gnu.org>
8345
8346 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
8347 unwind function to undo the effect of stopping atimers.
8348
8349 * keyboard.c (bind_polling_period): Stop all timers except
8350 poll_timer.
8351
8352 * atimer.c (stopped_atimers): New variable.
8353 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
8354 New functions.
8355
8356 * atimer.h (stop_other_atimers, run_all_atimers)
8357 (unwind_stop_other_atimers): Add function prototypes.
427ec082 8358
eedf8bde
GM
8359 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
8360
8476c2f8
KR
83612000-02-11 Ken Raeburn <raeburn@gnu.org>
8362
8363 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
8364 library may depend on jpeg.
8365 (atimer.o): Depends on atimer.c.
8366
0e85e4a3
KH
83672000-02-11 Kenichi Handa <handa@etl.go.jp>
8368
8369 * insdel.c (del_range_1): Call update_compositions.
8370 (del_range_both): Call update_compositions just once..
8371
97fa0cc8
DL
83722000-02-10 Dave Love <fx@gnu.org>
8373
8374 * xfns.c (create_frame_xic): Fix initialization of automatic
8375 aggregates for pcc.
8376
25566a3c
KH
83772000-02-09 Kenichi Handa <handa@etl.go.jp>
8378
8379 * ccl.c (CCL_MAKE_CHAR): New macro.
8380 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
8381 registers by CCL_MAKE_CHAR before calling translate_char.
8382 <CCL_TranslateCharacterConstTbl> Likewise.
8383
69da54ba
DL
83842000-02-08 Dave Love <fx@gnu.org>
8385
8386 * lread.c (__EXTENSIONS__): Define.
8387
f7136ee8
GM
83882000-02-08 Gerd Moellmann <gerd@gnu.org>
8389
8390 * puresize.h (BASE_PURESIZE): Increase to 650000.
8391
7768790b
EZ
83922000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
8393
8394 * msdos.c (XMenuActivate): Turn off the cursor after displaying
8395 the help message.
8396
38fd211b
EZ
83972000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
8398
8399 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
8400 md, mh, mb, mr, and me to the fake termcap entry.
8401
66e4690f
KR
84022000-02-06 Ken Raeburn <raeburn@gnu.org>
8403
8404 * sound.c (sound_cleanup): Don't call device close routine if the
8405 function pointer is null.
8406
a75dfea0
AI
84072000-02-06 Andrew Innes <andrewi@gnu.org>
8408
8409 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
8410 around image definitions and prototypes.
8411 (gamma_correct) [WINDOWSNT]: New prototype.
8412
8413 * w32term.c (x_make_frame_visible): Replace call to
8414 input_poll_signal with poll_for_input.
8415
8416 * window.c [WINDOWSNT]: Include w32term.h.
8417
8418 * xdisp.c [WINDOWSNT]: Include w32term.h.
8419
8420 * makefile.nt: Add dependencies on w32gui.h.
8421 (OBJ1): Include atimer.obj.
8422 ($(BLD)\atimer.obj): New dependency rule.
8423
8424 * w32.c (sigmask): New function (does nothing).
8425 (sigunblock): Ditto.
8426
8427 * frame.c [WINDOWSNT]: Include w32term.h.
8428
8429 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
8430
8431 * lread.c (syms_of_lread): Fix literal newlines.
8432
8433 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
8434 the string constant limit (2048 bytes) in MSVC.
8435 (main): Ditto.
8436
59ddecde
GM
84372000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
8438
8439 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
8440 area.
8441 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
8442 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
8443 dispatch the event.
8444
07590973
DL
84452000-02-04 Dave Love <fx@gnu.org>
8446
8447 * fileio.c: Remove some unused vars.
8448 (_GNU_SOURCE): Define (for euidaccess).
8449
8450 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
8451
8452 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
8453 gcpro1, gcpro2.
8454 (read_minibuf): Deal with allow_props correctly.
8455
649351f9
EZ
84562000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
8457
8458 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
8459
66e4690f 84602000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
8461
8462 * search.c (compile_pattern): If a cache entry has a nil regexp,
8463 fill in that entry instead of clobbering a previously cached
8464 string regexp.
8465
66e4690f 84662000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
8467
8468 * puresize.h (BASE_PURESIZE): Increase to 610000.
8469
d240a249
GM
84702000-02-02 Gerd Moellmann <gerd@gnu.org>
8471
8472 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
8473 can GC.
8474
ca91fb26
KH
84752000-02-02 Kenichi Handa <handa@etl.go.jp>
8476
25660570
KH
8477 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
8478 instead of incrementing ic directly.
8479 <CCL_WriteExprConst> Likewise.
8480 <ccl_set_expr>: Set ic to jump_address.
8481
ca91fb26
KH
8482 * fileio.c (e_write): Fix the handling of
8483 CODING_FINISH_INSUFFICIENT_SRC.
8484
2ede9689
DL
84852000-02-01 Dave Love <fx@gnu.org>
8486
8487 * editfns.c (Fpropertize): Doc fix.
8488
8489 * process.c (Fstart_process): Doc fix.
8490
8491 * eval.c: Fix various doc strings not to duplicate information
8492 from help-manyarg-func-alist.
8493
8494 * window.c (Fset_window_margins): Don't make interactive. Doc
8495 fix.
8496
8497 * doc.c (Vhelp_manyarg_func_alist): New variable.
8498 (Fdocumentation): Use it.
8499 (syms_of_doc): Define it.
8500
b6680a0e
GM
85012000-01-31 Gerd Moellmann <gerd@gnu.org>
8502
2cb750ba
GM
8503 * xterm.c (xim_open_dpy): Remove unused local variable.
8504
74e9213b
GM
8505 * emacs.c (USAGE): Use term `display options' instead of `X
8506 options'.
8507
8508 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
8509 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
8510
b6680a0e
GM
8511 * fns.c (sweep_weak_table): New function.
8512 (sweep_weak_hash_tables): Use it. Keep on marking until there
8513 is no more change.
8514
994c5afe
GM
85152000-01-30 Gerd Moellmann <gerd@gnu.org>
8516
8517 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
8518 that XTread_socket does not crash by trying to call XNoOp on a
8519 closed display.
427ec082 8520
f00276e3
JR
85212000-01-30 Jason Rumney <jasonr@gnu.org>
8522
8523 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
8524 Change selected_frame to SELECTED_FRAME ().
8525 (w32_console_mouse_position): Remove #ifndef MULE from around
8526 `insist' parameter.
8527
8528 * makefile.nt: Remove dosfns.obj.
8529
8530 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
8531
8532 * w32fns.c (w32_defined_color): Check for valid frame before
8533 applying gamma correction. Eliminate dependency on frame elsewhere.
8534 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
8535 (w32_to_x_font): Use resx and resy not height_in and width_in.
8536 (x_to_w32_font): Doc fix.
8537 (xlfd_strip_height): New function to strip and return font height.
8538 (w32_font_match): Compare height separately from rest of xlfd
8539 spec, using xlfd_strip_height.
8540
8541 * w32term.c (w32_term_init): Swap resx and height_in, resy and
8542 width_in. Use w32_defined_color in place of defined_color.
8543
8544 * w32faces.c: Merge more of DOS and X specifics in preparation for
8545 merge with xfaces.c.
8546 (defined_color): Remove FIXME comment.
8547 (tty_color_name): Provide w32-specific function.
8548 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
8549
8550 * w32console.c (turn_on_face, turn_off_face): Removed.
8551 (w32_face_attributes): New function.
8552 (Global_variables): Reduce scope where possible.
8553 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
8554 fill attribute.
8555 (hl_mode): Don't modify text attributes.
8556 (write_glyphs): Don't do anything if len <= 0. Use
8557 w32_face_attributes to get attributes for drawing. Write
8558 terminating codes using char_attr_normal.
8559 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
8560 (update_begin, update_end): Likewise.
8561 (vga_stdcolor_name): New function.
8562 (initialize_w32_display): Remove char_attr_reverse and char_attr.
8563 (Fset_screen_color): Remove char_attr_reverse.
8564
b08e8bb2
GM
85652000-01-29 Gerd Moellmann <gerd@gnu.org>
8566
8567 * xfns.c (xic_set_preeditarea): Take window parameter and
8568 window-relative pixel-positions.
8569
8570 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
8571 is its frame's selected window.
8572 (xim_instantiate_callback): Likewise.
8573
8574 * xfns.c (x_create_im): Removed.
8575 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
8576 (supported_xim_styles): Renamed from supported_styles.
8577 (best_xim_style): Renamed from best_style.
8578 (create_frame_xic): Renamed from xic_create_frame.
8579 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 8580
b08e8bb2
GM
85812000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
8582
8583 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
8584 our frames, call XFilterEvent with 2nd parameter `None'.
8585 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
8586 returning XBufferOverflow.
8587 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
8588 area.
8589 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
8590 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
8591 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
8592 (xim_initialize, xim_close)
8593 [HAVE_X_I18N && HAVE_X11R6]: New functions.
8594 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
8595 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
8596 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
8597
8598 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
8599 and `xim_styles'.
8600 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
8601 `xic_style' and `xic_xfs'.
8602 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
8603 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
8604 (FRAME_XIM): Removed.
8605
8606 * xfns.c (supported_styles): New variable.
8607 (DEFAULT_STYLE, DEFAULT_FONT): New macros
8608 (xic_create_xfontset, best_style, xic_create_frame)
8609 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
8610 (xic_set_xfontset): New functions.
8611
142e109c
DL
86122000-01-28 Dave Love <fx@gnu.org>
8613
8614 * s/irix6-5.h: Revert last change after change to irix5-0.h.
8615
8616 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
8617
b02786f9
GM
86182000-01-28 Gerd Moellmann <gerd@gnu.org>
8619
d060bc9f
GM
8620 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
8621 for *scratch* if it already existed.
8622
b02786f9
GM
8623 * emacs.c (USAGE): New macro.
8624 (main): Use it to display usage information.
8625
2c52d7e4
EZ
86262000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
8627
8628 Support for the menu-help feature:
8629
8630 * msdos.h: Change prototypes of XMenuAddSelection and
8631 XMenuActivate.
8632
8633 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
8634 part of the line to the termscript file.
8635 (IT_clear_to_end): Clear the entire line, not just its beginning.
8636 (menu_help_message, prev_menu_help_message): New variables.
8637 (IT_menu_make_room): Make room for the help_text member.
8638 (IT_menu_display): New argument disp_help; all callers changed.
8639 If disp_help is non-zero, store the help text of the active menu
8640 item in menu_help_message.
8641 (XMenuAddPane): Initialize the help_text member to NULL.
8642 (XMenuAddSelection): New argument help_text. Store it in the
8643 XMenu structure.
8644 (XMenuActivate): New argument help_callback. If the value of
8645 menu_help_message has changed since the last time, display the
8646 menu help message text while waiting for the mouse to move. Clear
8647 the echo area before exiting.
8648 (XMenuDestroy): Free the help_text member.
8649
ffe0bcd1
GM
86502000-01-27 Gerd Moellmann <gerd@gnu.org>
8651
8652 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
8653 XMenuAddSelection. Pass help callback to XMenuActivate.
8654 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
8655
50dbd23f
EZ
86562000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
8657
8658 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
8659 and EMACS_SET_USECS.
8660
f5941bf8
GM
86612000-01-26 Dave Love <fx@gnu.org>
8662
6c67ddee
DL
8663 * editfns.c (Fchar_after, Fchar_before): Doc fix.
8664
f5941bf8
GM
8665 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
8666 an error may be signalled.
8667
9e49c990
GM
86682000-01-26 Gerd Moellmann <gerd@gnu.org>
8669
fc3cb460
GM
8670 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
8671 LD_SWITCH_SYSTEM inherited from irix5-0.h.
8672
9e49c990
GM
8673 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
8674
d0c037d8
GM
86752000-01-25 Gerd Moellmann <gerd@gnu.org>
8676
8677 * charset.c (Fstring): If there is a multibyte char among
8678 the args, always return a multibyte string.
8679
e12489f9
GM
86802000-01-25 Gerd Moellmann <gerd@gnu.org>
8681
8682 * sysdep.c (sys_select): Turn atimers off and on instead of
8683 recording and restoring old alarm handler
8684
8685 * process.c (toplevel): Include atimer.h.
8686 (create_process_1): Rewritten.
8687 (create_process): Use atimers instead of alarm.
8688 (wait_reading_process_input) [hpux]: Turn atimers off instead
8689 of turning off SIGALRM.
8690 (wait_reading_process_input): Turn off atimers instead off
8691 calling stop_polling.
8692
8693 * emacs.c (main): Call init_atimer.
8694
8695 * keyboard.c (toplevel): Include systime.h and atimer.h.
8696 (polling_for_input): Removed because unused.
8697 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
8698 (poll_timer): New variable.
8699 (poll_for_input, poll_for_input_1): New functions.
8700 (start_polling, stop_polling): Rewritten.
8701
8702 * keyboard.h (polling_for_input): Removed.
427ec082 8703
e12489f9
GM
8704 * atimer.h, atimer.c: New files.
8705
8706 * Makefile.in (obj): Add atimer.o.
8707 (atimer.o): New target.
8708
8709 * blockinput.h (pending_atimers): Add extern declaration.
8710 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
8711
8712 * lisp.h (popup_activated_flag): Add extern declaration.
8713
8714 * xmenu.c (popup_activated_flag): Make externally visible.
8715 (popup_activate_callback) [USE_MOTIF]: Increment
8716 popup_activated_flag.
8717 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
8718
8719 * xterm.c (toplevel): Include atimer.h.
8720 (toolkit_scroll_bar_interaction): New variable.
8721 (Fxt_process_timeouts): Removed.
8722 (x_process_timeouts): New function.
8723 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
8724 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
8725 (x_make_frame_visible): Call poll_for_input_1 instead of
8726 input_poll_signal. Don't call alarm.
8727 (x_initialize): Install timer calling x_process_timeouts.
427ec082 8728
1e5279b9
DL
87292000-01-24 Dave Love <fx@gnu.org>
8730
6c67ddee 8731 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
8732 Don't use -cckr -- apparently not now necessary.
8733
edf6aeb8
EZ
87342000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
8735
8736 * msdos.c (IT_menu_display): Truncate long menu lines at the right
8737 screen boundary.
8738
9badad41
JR
87392000-01-23 Jason Rumney <jasonr@gnu.org>
8740
8741 * w32fns.c (w32_defined_color): Apply gamma correction before
8742 trying to map to the palette.
8743 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
8744 to w32_clear_rect.
8745
8746 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
8747 here. Callers changed to always pass real device context.
8748 (w32_draw_bitmap): Likewise.
8749 (w32_get_glyph_overhangs): Likewise.
8750 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
8751 one.
8752 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
8753 pfnSetScrollInfo and SetScrollRange.
8754 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
8755 back into MULE characters after decoding them.
8756 (x_get_glyph_face_and_encoding): Likewise.
8757 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
8758 GetCharABCWidthsW fails, since this is defined on Windows 9x.
8759 (x_produce_glyphs): Calculate per char metrics for a character
8760 that we know exists in default font when font_not_found_p is true.
8761
63bd786b
JR
87622000-01-22 Jason Rumney <jasonr@gnu.org>
8763
8764 * makefile.nt (intervals.obj, composite.obj): New modules.
8765 (composite.h): Added as dependency where appropriate.
8766
8767 * w32gui.h (XGCValue): New struct for emulating X GCs.
8768
8769 * w32term.h (XCharStruct): New struct for emulating X.
8770
8771 * w32console.c (turn_on_face, turn_off_face): New functions.
8772 (change_line_highlight): New prototype for new redisplay.
8773 (write_glyphs): Support multibyte text. Support faces.
8774
8775 * w32faces.c: Complete rewrite for new redisplay based on new
8776 xfaces.c.
8777
8778 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
8779 throughout. struct frame * in place of FRAME_PTR.
8780 Skeleton support for images, toolbars, tooltips from xfns.c.
8781 (Fx_create_frame): Use system default for default scroll bar
8782 width.
8783 (w32_get_arg): Renamed from x_get_arg.
8784 (Fx_file_dialog): New function.
8785 (w32_list_fonts): Check cache before asking system.
8786 (Vw32_enable_synthesized_fonts): New variable.
8787 (Vw32_enable_italics): Obsolete, removed.
8788
8789 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
8790 Use SELECTED_FRAME macro.
8791
8792 * w32menu.c: Add skeleton support for help strings on menus.
8793 (add_menu_item): Native checkbox and radio support added, but not
8794 yet enabled due to bugs.
8795 (push_menu_item): Add parameters type, selection and help.
8796 Callers updated.
8797 Formatting changes to reduce unnecessary diffs with xmenu.c.
8798
8799 * w32select.c (Fw32_set_clipboard_data): Update call to
8800 find_charset_in_str.
8801
8802 * w32term.c: Complete rewrite for new redisplay based on new
8803 xterm.c with necessary sections merged back in from old w32term.c.
8804
6ffd3cf7 88052000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
8806
8807 * data.c (set_internal): Further fix in same criterion.
8808
6ffd3cf7 88092000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
8810
8811 * data.c (set_internal): Fix the criteria for whether
8812 to swap out the old cached binding.
8813
60af03f1
DL
88142000-01-19 Dave Love <fx@gnu.org>
8815
8816 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
8817
f9be074f
KH
88182000-01-18 Kenichi Handa <handa@etl.go.jp>
8819
8820 * regex.c (re_compile_fastmap): While checking a range table for
8821 `charset', skip flag bits for a character class correctly.
8822
52b8dbf9
GM
88232000-01-17 Gerd Moellmann <gerd@gnu.org>
8824
d36100c9
GM
8825 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
8826
52b8dbf9
GM
8827 * xfns.c (x_window): Call lw_create_widget with new parameter
8828 list.
8829
8830 * widget.c (EmacsFrameSetCharSize): Change size of children first
8831 because of problems with main window geometry management under
8832 Lesstif.
8833
8834 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
8835 MENU_ITEMS_ITEM_.*.
8836 (MENU_ITEMS_ITEM_HELP): New enumerator.
8837 (push_menu_item): Add parameter HELP. Record help in menu_items.
8838 (single_menu_item, single_submenu, list_of_items): Call
8839 push_menu_item with new parameter.
8840 (single_submenu): Set help string in widget value.
8841 (menu_highlight_callback): New function.
8842 (set_frame_menubar): Call lw_create_widget with new
8843 parameter list.
8844 (xmenu_show, xdialog_show): Ditto.
8845
3139018f
GM
88462000-01-13 Gerd Moellmann <gerd@gnu.org>
8847
8848 * sound.c (Fplay_sound): Improve doc string.
8849
83c8f461
RS
88502000-01-11 Richard M. Stallman <rms@gnu.org>
8851
8852 * lisp.h (set_internal): Enter the new arg.
8853
8854 * eval.c (specbind): Record buffer-local variables specially,
8855 indicating which buffer's binding was saved.
8856 (unbind_to): Restore buffer-local variables specially
8857 in the proper buffer.
8858
8859 * data.c (set_internal): New arg BUF.
427ec082 8860
83c8f461
RS
8861 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
8862 * data.c (Fset): Pass new arg to set_internal.
8863 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 8864
1fab1775
GM
88652000-01-11 Gerd Moellmann <gerd@gnu.org>
8866
8867 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
8868 xprintsym.
8869
83c8f461 88702000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
8871
8872 * minibuf.c (Ftry_completion): Doc fix.
8873
7a85e4df
GM
88742000-01-11 Gerd Moellmann <gerd@gnu.org>
8875
8876 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
8877 vector, too.
8878
a970dae4
AS
88792000-01-11 Andreas Schwab <schwab@suse.de>
8880
8881 * coding.c (code_convert_region): Initialize total_skip.
8882
c65d14ee
DL
88832000-01-08 Dave Love <fx@gnu.org>
8884
8885 * eval.c (Fuser_variable_p): Check customizability too.
8886
834938d2
GM
88872000-01-07 Gerd Moellmann <gerd@gnu.org>
8888
8889 * minibuf.c (Fcompleting_read): Doc fix.
8890
e0303cd6
GM
88912000-01-05 Gerd Moellmann <gerd@gnu.org>
8892
8a26744b
GM
8893 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
8894 -L /usr/local/lib.
8895
e0303cd6
GM
8896 * xfns.c (x_create_im): New function to set IM and IC of a frame.
8897 Check that input style is supported before trying to create an
8898 IC for it.
8899 (x_window): Call x_create_im.
427ec082 8900
2e471eb5
GM
89012000-01-04 Gerd Moellmann <gerd@gnu.org>
8902
560a7bd2
GM
8903 * xfns.c (current_gif_memory_src): New variable.
8904 (gif_load): Record the address of the current memory source
8905 in current_gif_memory_src.
8906 (gif_read_from_memory): Use current_gif_memory_src.
8907
f9ee84a3
GM
8908 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
8909 macros statement form.
8910
d1299cde
GM
8911 * sound.c (struct sound): Renamed from struct sound_file.
8912 (struct sound): Add members `data' and `header_size'.
8913 (enum sound_attr): Add SOUND_DATA.
8914 (current_sound, current_sound_device): Variables renamed from
8915 sound_file and sound_device.
8916 (parse_sound): Parse :data.
8917 (parse_sound): Handle sound data in strings.
8918 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 8919 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
8920 needed header size.
8921 (wav_play, au_play): Play sounds from string data.
8922
2e471eb5
GM
8923 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
8924
8925 * lisp.h: Add prototype for allocate_string_data.
8926
8927 * alloc.c (Fgarbage_collect): Return number of live and free
8928 strings.
8929
8930 * alloc.c (mark_buffer): Remove code in #if 0.
8931 (gc_sweep): Ditto.
8932 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
8933 (strings_consed): New variable.
8934 (allocate_string): Set it.
8935 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
8936 (Fmemory_use_counts): Return strings_consed. Use Flist.
8937
8938 * alloc.c: General cleanup in comments etc. Remove conditional
8939 compilation for `standalone'.
8940
8941 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
8942
8943 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
8944 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
8945 (DONT_COPY_FLAG): Removed.
8946 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
8947 (struct sdata, struct sblock): New
8948 (struct string_block): Rewritten.
8949 (STRINGS_IN_STRING_BLOCK): New macro.
8950 (oldest_sblock, current_sblock, total_strings, total_free_strings)
8951 (large_sblocks, string_blocks, string_free_list): New variables.
8952 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
8953 (init_strings): Rewritten.
8954 (allocate_string, allocate_string_data, compact_small_strings)
8955 (free_large_strings, sweep_strings): New functions.
8956 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
8957 (struct string_block_head, current_string_block)
8958 (first_string_block, large_string_blocks, STRING_FULLSIZE)
8959 (STRING_PAD): Removed.
8960 (make_uninit_multibyte_string, make_pure_string): Rewritten.
8961 (Fgarbage_collect): Don't set mark bit in large strings.
8962 (mark_object): Mark strings differently. Mark symbol names
8963 differently.
8964 (survives_gc_p): Test marked strings differently.
427ec082 8965 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
8966 symbol names.
8967 (compact_strings): Removed.
8968
42608ba8
EZ
89692000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
8970
8971 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
8972 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
8973
e0a09e1a
KH
89742000-01-04 Kenichi Handa <handa@etl.go.jp>
8975
dd9f0750 8976 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 8977 in a non-empty buffer.
dd9f0750 8978
3c0f3b15 8979 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 8980
44cd3ae5
GM
89812000-01-03 Gerd Moellmann <gerd@gnu.org>
8982
8983 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
8984 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
8985
8986 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
8987
c182a70f
EZ
89882000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
8989
8990 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
8991 need to test for MSDOS frames.
8992
24480d5b
EZ
89932000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
8994
8995 * dosfns.c (unspecified_colors): Remove.
8996 (msdos_stdcolor_idx): Use global variables unspecified_fg and
8997 unspecified_bg.
8998 (msdos_stdcolor_name): Return strings for unspecified fore- and
8999 back-ground colors.
9000
9001 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 9002 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
9003 (tty_color_name): Return Lisp strings for unspecified fore- and
9004 back-ground colors.
9005 (Finternal_set_lisp_face_attribute): Remove the special treatment
9006 for Qunspecified_{f,b}g.
9007 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
9008 string.
9009
047f434a
GM
90102000-01-03 Gerd Moellmann <gerd@gnu.org>
9011
9012 * xdisp.c (reseat_at_next_visible_line_start): Position before
9013 newline only if ending up on a newline.
9014 (next_element_from_ellipsis): Return success. Handle case of
9015 displaying no ellipsis. Fix case of ellipsis defined in display
9016 table.
9017 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
9018 returns 0.
9019
d684c676
EZ
90202000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
9021
9022 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
9023 (Fcolor_supported_p): Renamed from face-color-supported-p.
9024
5fe1d139
EZ
90252000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9026
9027 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
9028 list of colors renamed to tty-defined-color-alist.
9029 (tty_color_name): Pass the frame to tty-color-by-index.
9030 (realize_tty_face): tty-color-alist is now a function which
9031 accepts the frame as argument.
9032
9033 * term.c (Ftty_display_color_p): Accept an optional argument
9034 FRAME.
9035
816be8b8
EZ
90362000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9037
9038 * term.c (insert_glyphs): Pass glyph, not &glyph, to
9039 encode_terminal_code.
9040
b635321e
EZ
90412000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
9042
9043 * dispnew.c (mode_line_string): Support termcap frames as well.
9044
9b784e96
GM
90452000-01-01 Gerd Moellmann <gerd@gnu.org>
9046
27189709
GM
9047 * syntax.c (Fforward_word): Undo previous change.
9048
9049 * editfns.c (Fconstrain_to_field): Don't constrain if
9050 inhibit-field-text-motion is non-nil.
9051 (Fline_beginning_position): Undo previous change.
9052 (Fline_end_position): Ditto.
9053
9054 * syntax.c (Fforward_word): Notice field boundaries only if
9055 inhibit-field-text-motion is nil.
9056
9057 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
9058
9059 * editfns.c (Vinhibit_field_text_motion): New variable.
9060 (inhibit-field-text-motion): New DEFVAR_LISP.
9061 (Fline_beginning_position, Fline_end_position): Notice field
9062 boundaries only if inhibit-field-text-motion is nil.
9063
45158a91
GM
9064 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
9065 All calls adjusted.
9066 (x_build_heuristic_mask): Likewise.
9067 (xbm_load_image_from_file): Change error output.
9068 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
9069 (gif_load, gs_load, x_kill_gs_process): Ditto.
9070
9b784e96
GM
9071 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
9072 color indices when accessing raster pixels.
63cec32f
GM
9073 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
9074 one of :file or :data.
9075 (enum pbm_keyword_index): Add PBM_DATA.
9076 (pbm_format): Add :data.
9077 (pbm_image_p): Allow either :file or :data.
9078 (pbm_read_file): New function.
9079 (pbm_scan_number): Rewritten to read from string.
9080 (pbm_load): Support :data.
9b784e96 9081
2cb085db 9082See ChangeLog.8 for earlier changes.
6922b018
KH
9083
9084;; Local Variables:
49b3bd82 9085;; coding: iso-2022-7bit
6922b018 9086;; End: