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