(toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
[bpt/emacs.git] / src / ChangeLog
CommitLineData
ea456eb4
AI
12000-10-20 Andrew Innes <andrewi@gnu.org>
2
3 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
4 Windows.
5 (my_strftime) <macro>: Don't use macro arg list when redefining as
6 _strftime_copytm.
7 (my_strftime) <function>: Supply 0 as ut argument.
8
e64c3a75
JR
92000-10-19 Jason Rumney <jasonr@altavista.net>
10
11 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
12 including dispextern.h, as it stops faces from working.
13
14 * w32fns.c (Fx_create_frame): Don't bother calling
15 face-set-after-frame-default since the caller does it for us
16 anyway. Clean up calls to x_get_arg to be consistent with X.
17
18 * w32term.c (x_produce_glyphs): Handle
19 unibyte_display_via_language_environment correctly.
20 (w32_draw_box_rect): Fix the calculation of width and height.
21
22 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
23 as it has stopped working.
24 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
25 menu-bar.
26
17401c97
GM
272000-10-19 Gerd Moellmann <gerd@gnu.org>
28
29 * eval.c (skip_debugger): Prevent a compiler warning.
30 (Fcondition_case): Likewise.
31 (Fbacktrace_frame): Use a null interactive spec.
32
773272d8
KH
332000-10-19 Kenichi Handa <handa@etl.go.jp>
34
35 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
36
a42943e9
GM
372000-10-18 Gerd Moellmann <gerd@gnu.org>
38
e50517d9
GM
39 * strftime.c: Sync with glibc, file version 1.78.
40 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
41 should no longer be used according to ISO 8601.
42
9035a35a
GM
43 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
44 no map for meta_prefix_char, don't try to use it as a keymap.
45 Instead, if T_OK is non-zero, look up a default binding, if any,
46 otherwise, if T_OK is zero, return nil.
47
a42943e9
GM
48 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
49 (x_to_xcolors, png_load): Use x_query_color.
50
51 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
52 functions.
53 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
54 which can be slow.
55 (x_copy_color, x_alloc_lighter_color): Likewise.
56
57 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
58 (x_query_color, x_query_colors): Add prototype.
59
60 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
61 check_string_bytes only if not noninteractive, increase count to 50.
62
00de2987
MB
632000-10-18 Miles Bader <miles@lsi.nec.co.jp>
64
65 * insdel.c (adjust_markers_for_delete): Handle before-insertion
66 markers correctly.
67
54918e2b
GM
682000-10-17 Gerd Moellmann <gerd@gnu.org>
69
1f0b3fd2
GM
70 * alloc.c (pure_bytes_used): Renamed from pureptr.
71 (ALIGN): New macro.
72 (pure_alloc): New function.
73 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
74 Use it.
75 (Fpurecopy): Use PURE_POINTER_P.
76
68c5d1db
GM
77 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
78 PT has moved backward.
79
9a038881
GM
80 * xdisp.c (cursor_row_p): Take continued lines into account.
81
361b097f
GM
82 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
83 string's size_byte.
84 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
85 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
86 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
87 string allocated.
88
54918e2b
GM
89 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
90 of selective display off while searching for the next line start.
91
03ed0806
KH
922000-10-17 Kenichi Handa <handa@etl.go.jp>
93
94 * Makefile.in (term.o): Depend on dispextern.h.
95
7e05cdaf
SM
962000-10-16 Stefan Monnier <monnier@cs.yale.edu>
97
98 * keymap.c (keymap_memberp): Ensure that nil is not a member.
99
a6801fd1
GM
1002000-10-16 Gerd Moellmann <gerd@gnu.org>
101
483de32b
GM
102 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
103 the iterator at the beginning, so that they can be set later on,
104 for instance in reseat_at_next_visible_line_start, without being
105 overwritten.
106
a6801fd1
GM
107 * xfns.c (pbm_format): Add :foreground and :background keywords.
108 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 109 (xbm_load): Recognize foreground and background color
a6801fd1
GM
110 specifications.
111
dbf1fcc1
EZ
1122000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
113
114 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
115
116 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
117 declaration.
118
119 * msdos.c (IT_set_face): Compare highlighted face with the default
120 face, and invert colors if these faces' colors are identical.
121 (Fmsdos_remember_default_colors): Don't swap foreground and
122 background colors in initial_colors[].
123 (IT_set_frame_parameters): Don't swap frame's foreground and
124 background pixels. If ALIST includes "(reverse . t)", swap
125 foreground-color and background-color properties in frame's
126 param_alist. If the original frame's param_alist doesn't specify
127 the colors, store unspecified-fg and unspecified-bg, reversed if
128 required.
129
130 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
131 the colors are unspecified and reversed, reverse fore- and back-
132 ground in the returned value.
133 (Fframe_parameter): Ditto.
134
b41fe2c3
GM
1352000-10-16 Gerd Moellmann <gerd@gnu.org>
136
3a6b59d9
GM
137 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
138 get_last_unchanged_at_beg_row.
139 (find_first_unchanged_at_end_row): Renamed from
140 get_first_unchanged_at_end_row.
141 (find_first_unchanged_at_end_row): Convert assertions to
142 unconditional tests which abort. When looking for a row in
143 unchanged text, don't go further back than first_text_row.
144
b41fe2c3
GM
145 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
146 Don't add in the last line's height when deciding if the new
147 position is below the scroll margin.
9d1af64f 148
b41fe2c3 1492000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
150
151 * editfns.c (Fconstrain_to_field): Check carefully for field
152 boundaries if either OLD_POS or NEW_POS has a non-nil field
153 property, even if they're the same.
154
c412cb7b
KH
1552000-10-16 Kenichi Handa <handa@etl.go.jp>
156
157 * xterm.c (x_draw_box_rect): Fix the calculation of width and
158 height for XFillRectangle.
159
5586f3eb
SM
1602000-10-15 Stefan Monnier <monnier@cs.yale.edu>
161
162 * syntax.c (Fstring_to_syntax): New function extracted from
163 Fmodify_syntax_entry.
164 (Fmodify_syntax_entry): Use it and document the ! and | fences.
165 (skip_chars, Fforward_comment): Remove unused variables.
166 (syms_of_syntax): Add defsubr for string-to-syntax.
167 (describe_syntax): Add code for comment and string fences.
168
db785038
SM
1692000-10-14 Stefan Monnier <monnier@cs.yale.edu>
170
171 * keymap.c (access_keymap): Add AUTOLOAD parameter.
172 Do the meta->esc mapping. Call get_keyelt before returning.
173 Start scanning from the second element (the first is always `keymap')
174 to make it easier to detect when we reach a parent map.
175 Handle the case of inheriting from a symbol whose function is a map.
176 (Fkeymap_parent): Also handle the `inherit from symbol' case.
177 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
178 (get_keyelt, Flookup_key): Update call to access_keymap.
179 Remove the meta->esc mappings.
180 (define_as_prefix): Delete old disabled code.
181 (menu_item_p): New function.
182 (where_is_internal_1): Skip over the few remaining menu items.
183 * lisp.h (access_keymap): Update prototype.
184 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
185 Update call to access_keymap.
186 (follow_key, read_key_sequence): Update calls to access_keymap.
187 Remove the meta->esc mappings.
188
cafafe0b
GM
1892000-10-13 Gerd Moellmann <gerd@gnu.org>
190
a2e2a7f6
GM
191 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
192 with additional argument.
193
cafafe0b
GM
194 * xdisp.c (cursor_row_p): New function.
195 (try_cursor_movement, display_line): Use it.
196
197 * xdisp.c (append_space): Also save/restore iterator's current
198 character and its length.
199
200 * xdisp.c (init_from_display_pos): Add an assertion.
201 (handle_stop): Don't set iterator's add_overlay_start.
202 (handle_invisible_prop): Likewise.
203 (load_overlay_strings): If text under an overlay is invisible,
204 take both before- and after-strings into account when the iterator
205 is positioned either at the start or at the end of the overlay.
206 (forward_to_next_line_start): Rewritten.
207 (reseat_at_next_visible_line_start): Rewritten.
208 (set_iterator_to_next): Add parameter RESEAT_P.
209
210 * dispextern.h (struct it): Remove member add_overlay_start.
211 (set_iterator_to_next): Change prototype.
212
c744452b
KH
2132000-10-13 Kenichi Handa <handa@etl.go.jp>
214
215 * coding.c (code_convert_region): Be sure to initialize
216 coding->category_idx.
e4a3f4e1
KH
217 (decode_coding_string): Set coding->src_multibyte and
218 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
219 (encode_coding_string): Set coding->src_multibyte and
220 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 221
321fd26f
SM
2222000-10-12 Stefan Monnier <monnier@cs.yale.edu>
223
224 * xfns.c (Fx_create_frame): Don't bother calling
225 face-set-after-frame-default since the caller does it for us anyway.
226
76832439
EZ
2272000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
228
229 * window.c (coordinates_in_window): Fix detection of vertical line
230 on character terminals.
231
2483cf58
GM
2322000-10-12 Gerd Moellmann <gerd@gnu.org>
233
234 * editfns.c (save_excursion_save): Additionally record the
235 selected window.
236 (save_excursion_restore): If buffer was visible in a window, and a
237 different window was selected, and the old selected window is
238 still live, restore point in that window.
239
eb991b25
KH
2402000-10-12 Kenichi Handa <handa@etl.go.jp>
241
8a0eba09
KH
242 * xterm.c (x_produce_glyphs): Handle
243 unibyte_display_via_language_environment correctly.
244
20401fcc
KH
245 * regex.c (regex_compile): Change the way of handling a range from
246 unibyte char to multibyte char.
247
248 * syntax.c (skip_chars): Change the way of handling a range from
249 unibyte char to multibyte char.
250
eb991b25
KH
251 * process.c (read_process_output): Cancel previous change.
252
365dd325
EZ
2532000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
254
c1b096cb
EZ
255 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
256
365dd325
EZ
257 * charset.c (Ffind_charset_string): Doc fix.
258 (Ffind_charset_region): Doc fix.
259
eb483c2b
KH
2602000-10-11 Kenichi Handa <handa@mule.m17n.org>
261
262 * process.c (read_process_output): Fix previous change. Adjust
263 multibyteness of text to insert in a buffer by
df3c11b9 264 string_make_unibyte/multibyte instead of
eb483c2b
KH
265 Fstring_as_unibyte/multibyte.
266
b40bfb99
AS
2672000-10-10 Andreas Schwab <schwab@suse.de>
268
269 * alloc.c (mark_object): Remove all workarounds installed on
270 1993-08-08.
271
caff31d4
KH
2722000-10-10 Kenichi Handa <handa@etl.go.jp>
273
274 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
275 returning.
276 (base64_encode_1): Make it work for a text of multibyte form.
277 (Fbase64_decode_region): Allocate sufficient memory for multibyte
278 case. Don't call str_to_multibyte because base64_decode_1
279 produces correct multibyte form for eight-bit codes.
280 (Fbase64_decode_string): Adjusted for the change of
281 base64_decode_1.
282 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
283 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
284 codes.
285
286 * charset.h (CHAR_STRING): Optimized for single byte characters.
287
cba026ef
AS
2882000-10-09 Andreas Schwab <schwab@suse.de>
289
290 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
291 -1 after socket is closed, to fall through to error processing.
292
1e21fe48
EZ
2932000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
294
295 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 296 variables. If ALIST includes foreground-color or
1e21fe48
EZ
297 background-color, change also the colors of the default face for
298 this frame.
299
a640322e
EZ
3002000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
301
302 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
303 them extern (they are defined on xfaces.c).
304 (syms_of_msdos): Don't intern and don't staticpro
305 Qbackground_color and Qforeground_color.
306
a115794c
EZ
3072000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
308
309 * frame.c (Fframe_parameter): For non-windowed frames, if
310 f->param_alist says foreground or background color is unspecified,
311 call tty_color_name to return the color name computed from the
312 frame's current colors.
313
f5533b63
DL
3142000-10-06 Dave Love <fx@gnu.org>
315
316 * terminfo.c (ospeed): Don't declare.
317
318 * sysdep.c: Don't include string.h.
319 (h_errno): Declare conditional also on TRY_AGAIN.
320
321 * charset.c (Ffind_charset_string): Doc fix.
322
323 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
324 (Fbase64_decode_region, Fbase64_decode_string): More explicit
325 error messages.
326
2b06561a
DL
3272000-10-05 Dave Love <fx@gnu.org>
328
329 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
330 position like menu-bar.
331
ca839c85
GM
3322000-10-05 Gerd Moellmann <gerd@gnu.org>
333
334 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
335
336 * xdisp.c (handle_single_display_prop): Use safe_call1.
337 (safe_call): Renamed from call_function.
338 (safe_call1): New function.
339 (handle_fontified_prop): Use safe_call1 instead of call1.
340 (safe_eval): Renamed from eval_form.
341 (safe_eval_handler): Renamed from eval_handler.
342 (handle_single_display_prop, display_mode_element): Use safe_eval
343 instead of eval_form.
344
345 * xfaces.c (merge_face_heights): Use safe_call instead of
346 call_function.
347
348 * keyboard.c (show_help_echo): Use safe_call instead of
349 call_function; use safe_eval instead of eval_form.
350
351 * lisp.h (safe_call): Renamed from call_function.
352 (safe_eval): Renamed from eval_form.
353 (safe_call1): Add prototype.
354
a3489ece
MB
3552000-10-05 Miles Bader <miles@lsi.nec.co.jp>
356
357 * xfns.c (image_ascent): Rearrange ascent calculation for the
358 has-a-font case.
359
35810b6f
SM
3602000-10-04 Stefan Monnier <monnier@cs.yale.edu>
361
362 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
363 (where_is_internal_1): Don't bother ignoring menu-items any more.
364
3dc78168
GM
3652000-10-04 Gerd Moellmann <gerd@gnu.org>
366
367 * keyboard.c (update_menu_bindings): New variable.
368 (parse_menu_item): Use AREF. If update_menu_bindings
369 is 0, don't update menu bindings.
370 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
371
1efc2bb9
EZ
3722000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
373
374 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
375 to `mark_object'.
376
3f679f55
SM
3772000-10-02 Stefan Monnier <monnier@cs.yale.edu>
378
379 * syntax.c (forw_comment): Match nestedness of ender/starter.
380 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
381 (prev_char_comstart_first): Remove.
382 (back_comment): Check two-char comment markers more carefully
383 to better handle overlapping cases like *//* or /* */* */ ...
384 Match nestedness of ender/starter.
385
2021ab61
DL
3862000-10-02 Dave Love <fx@gnu.org>
387
388 * config.in (HAVE_GAI_STRERROR): Add undef.
389
390 * process.c (Fopen_network_stream): Use it.
391
392 * m/alpha.h (NO_REMAP): Don't define.
393
64e6cc18
GM
3942000-10-02 Gerd Moellmann <gerd@gnu.org>
395
396 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
397 return with a string converted to an integer or vice versa when
398 Vmocklisp_arguments is t.
399 (Fsignal): Likewise. The function can return for `quit'.
400 (struct gcpro): Declare member `var' to point to a volatile
401 Lisp_Object.
402
403 * eval.c (error): Prevent compiler warning.
404
b1904cd9
SM
4052000-09-30 Stefan Monnier <monnier@cs.yale.edu>
406
407 * keymap.c (keymap_memberp): New function.
408 (Fset_keymap_parent): Use it.
409 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
410 Use keymap_memberp to avoid creating cycles.
411 (access_keymap): Use KEYMAPP.
412
71c9ec51
GM
4132000-09-30 Gerd Moellmann <gerd@gnu.org>
414
415 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
416 gai_strerror. Make sure xerrno is set if connect fails. Improve
417 error recovery.
71c9ec51 418
c70c6b58
JR
4192000-09-29 Jason Rumney <jasonr@gnu.org>
420
421 * w32term.c (w32_char_font_type, w32_encode_char)
422 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
423 (w32_bdf_per_char_metric): New function.
424 (w32_per_char_metric): Use it.
425 (x_draw_glyph_string_background): Always draw background for BDF
426 glyphs.
427
428 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
429 GDI object which is a scarce resource.
430
431 * w32bdf.c (search_file_line): Fix skipping of whitespace.
432 (get_quoted_string): Fix limit on memchr search.
433 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
434 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
435 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
436 (get_cached_font_char, cache_char_offset): Use macro
437 BDF_CODEPOINT_RANGE_COVER_P.
438 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
439 (clear_cached_bitmap_slots): New function.
440 (GET_HEX_VALUE): G-Z, g-z are not hex.
441 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
442 (get_bitmap_with_cache): Use new cache implementation.
443 (create_offscreen_bitmap): New function.
444 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
445
446 * w32term.c (x_produce_glyphs): If the distance from the current
447 position to the next tab stop is less than a canonical character
448 width, use the tab stop after that.
449 (x_draw_glyphs): Handle case START and END are out of bounds more
450 carefully.
451 (x_clear_mouse_face): Block/unblock input.
452 (x_display_and_set_cursor): Don't show a hollow box cursor for
453 buffers whose cursor_type is nil.
454
fe01239f
GM
4552000-09-29 Gerd Moellmann <gerd@gnu.org>
456
457 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
458 disappears.
459
460 * dispextern.h (updating_frame): Declare extern.
461
e7c52f1f
AS
4622000-09-29 Andreas Schwab <schwab@suse.de>
463
464 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
465
de6e1f7c
GM
4662000-09-29 Gerd Moellmann <gerd@gnu.org>
467
25126faa
GM
468 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
469 use its function definition.
470 (tool_bar_items): Likewise.
471
de6e1f7c
GM
472 * lisp.h (fatal): Declare NO_RETURN.
473
454ee39b
KH
4742000-09-29 Kenichi Handa <handa@etl.go.jp>
475
476 * keymap.c: Remove the line "#undef NULL".
477
96301c5f
GM
4782000-09-28 Gerd Moellmann <gerd@gnu.org>
479
480 * xterm.c (x_make_frame_visible): Try harder to make the frame
481 visible.
482
efffeeb4
DL
4832000-09-28 Dave Love <fx@gnu.org>
484
ecb8b666
DL
485 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
486
dc3cd20f
DL
487 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
488
489 * .gdbinit (xreload): Note its need on GNU/Linux.
490
efffeeb4
DL
491 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
492 r_alloc, r_alloc_free.
493
8610d903
KH
4942000-09-28 Kenichi Handa <handa@etl.go.jp>
495
496 * syntax.c (skip_chars): Handle negation correctly.
497
8901d1ac
GM
4982000-09-27 Gerd Moellmann <gerd@gnu.org>
499
6f22f1ad
GM
500 * xfaces.c (realize_default_face): Call set_lface_from_font_name
501 with non-zero FORCE_P argument.
502
8901d1ac
GM
503 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
504 Add assertions.
505
506 * xdisp.c (window_box_height): Add an assertion.
507
508 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
509 tool-bar than is available.
510 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
511
36f1966f
DL
5122000-09-27 Dave Love <fx@gnu.org>
513
efffeeb4 514 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 515
31d929e5
GM
5162000-09-26 Gerd Moellmann <gerd@gnu.org>
517
c98863bf
GM
518 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
519 instead of BITS_PER_INT.
520 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
521 EMACS_UINT, respectively.
522 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
523
524 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
525
526 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
527
77072ab1
GM
528 * window.c (freeze_window_starts): Construct last argument for
529 foreach_window differently.
530
531 * xfns.c (x_decode_color): Don't return a Lisp_Object.
532
533 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
534 EMACS_UINT instead of `int' and `unsigned int'.
535 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
536
537 * frame.h (struct frame): Make the `nothing' member of union
538 output_data an EMACS_INT.
539
31d929e5
GM
540 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
541 hunting.
542 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
543 size in the sdata structure.
544 (SDATA_NBYTES, SDATA_DATA): New macros.
545 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
546 differently for the different layout of the sdata structure.
547 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
548 in sdata.
549 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
550 Check that size recorded in the string size and size recorded in
551 the sdata structure agree.
552
3e60b029
DL
5532000-09-25 Dave Love <fx@gnu.org>
554
555 * buffer.c: Include stdio.h.
556
557 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
558
559 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
560
561 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
562 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
563 size_t.
564 (__malloc_extra_blocks): Declare as __malloc_size_t.
565
8ff16b4e
GM
5662000-09-25 Gerd Moellmann <gerd@gnu.org>
567
755a2ccd
GM
568 * alloc.c (mark_image): Use GC_NILP instead of NILP.
569
d8b4516f
GM
570 * keyboard.c (show_help_echo): Set help_echo_showing_p.
571 (read_char): If help-echo is showing, preserve the echo area
572 when redisplaying.
573
574 * xdisp.c (help_echo_showing_p): New variable.
575 (set_message): Reset it to 0.
576 (init_xdisp): Initialize help_echo_showing_p.
577
578 * dispextern.h (help_echo_showing_p): Declare extern.
579
580 * config.in: Fix typo in __GNUC_MINOR__.
581
582 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
583
b11af2dd
GM
584 * s/freebsd.h (POSIX_SIGNALS): Define.
585
8ff16b4e
GM
586 * xterm.c (x_clear_mouse_face): Block/unblock input.
587
844eb643
DL
5882000-09-24 Dave Love <fx@gnu.org>
589
590 * fns.c (base64_encode_1): Fix last change.
591
b30ab1b3
GM
5922000-09-22 Gerd Moellmann <gerd@gnu.org>
593
594 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
595
596 * xdisp.c (try_window_reusing_current_matrix): More fixes
597 for the case window has a header-line.
598
c6cbe5f0
DL
5992000-09-22 Dave Love <fx@gnu.org>
600
4c7c1f3f
DL
601 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
602 a doc string.
603
604 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
605
c6cbe5f0
DL
606 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
607
550a625e
GM
6082000-09-21 Gerd Moellmann <gerd@gnu.org>
609
4c7c1f3f 610 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
611 for GCC >= 2.5.
612
613 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
614 NO_RETURN.
615
80d26f99
GM
616 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
617 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
618 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
619 warnings.
620
621 * marker.c (byte_char_debug_check): Return void.
622
623a0aae
GM
623 * xfns.c (Fx_create_frame): Set default frame parameter value
624 for tool-bar-lines to 1.
625
626 * dispnew.c (scrolling_window): Compare y-positions of rows
627 equal at the start. Some simplification.
628
629 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
630 reused rows' y-position in the case window has a header-line, and
631 new window start is greater than old window start.
632
42ac0ae5
GM
633 * process.c (process_sent_to): New variable.
634 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
635 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
636 Declare more parameters volatile.
637
550a625e
GM
638 * lread.c (Vrecursive_load_depth_limit): New variable.
639 (Fload): Check recursive loads whose recursion depth exceeds
640 Vrecursive_load_depth_limit.
641 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
642
8320414c
GM
6432000-09-20 Gerd Moellmann <gerd@gnu.org>
644
f46c275e
GM
645 * fileio.c (Fread_file_name): Doc fix.
646
647 * editfns.c (Fmessage_or_box): Doc fix.
648
649 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
650
b7e11c5b
GM
651 * xfns.c (xbm_scan): Allow C-style comments.
652
8320414c
GM
653 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
654 symbols are specified, add color translations to the cache.
655 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
656 functions.
657 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
658 xpm_cache_color.
659 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
660 structures to xpm_init_color_cache.
661
da1608d9
GM
6622000-09-19 Gerd Moellmann <gerd@gnu.org>
663
664 * dispnew.c (update_window_line): Make sure to always draw
665 mode-lines.
666
6badfa25
AI
6672000-09-19 Andrew Innes <andrewi@gnu.org>
668
669 * makefile.nt (bootstrap-emacs): Don't change directory.
670
3a5f42bb
KH
6712000-09-19 Kenichi Handa <handa@etl.go.jp>
672
1b7649bd
KH
673 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
674
3a5f42bb
KH
675 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
676 If output buffer is too small, signal an appropriated error.
677
9f83cf0b
DL
6782000-09-18 Dave Love <fx@gnu.org>
679
680 * keyboard.c (menu_bar_items, tool_bar_items)
681 (current_active_maps): Remove redundant get_local_map call.
682
28c7826c
GM
6832000-09-18 Gerd Moellmann <gerd@gnu.org>
684
5cefa566
GM
685 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
686 cursor for buffers whose cursor_type is nil.
687
6fed3546
GM
688 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
689 a feature to implement that is already implemented.
690 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
691 warnings.
692
693 * xfns.c (x_clear_image_1): New function.
694 (x_clear_image): Use it.
695 (x_from_xcolors): Use x_clear_image_1; don't free the image's
696 mask.
697
05b1f851
GM
698 * dispnew.c (update_window): Move test for invisible lines
699 at the top to update_window_line.
700 (update_window_line): Handle invisible lines here.
701
f4779de9
GM
702 * xfns.c (clear_image_cache): Clear current matrices of all
703 frames sharing an image cache. Block input while freeing
704 images. Fix timestamp comparison.
705 (x_clear_image): Also free the mask.
706
28c7826c
GM
707 * xfns.c (lookup_image): Block input while loading the image so
708 that we won't get interrupted in a state where the image isn't yet
709 set up completely.
710 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
711 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
712 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
713 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
714 input.
715
b7412313
GM
7162000-09-16 Gerd Moellmann <gerd@gnu.org>
717
718 * dispnew.c (update_window): Make sure to make desired rows
719 current even if they are completely invisible at the top
720 of a window.
721
47e351a3
GM
7222000-09-15 Gerd Moellmann <gerd@gnu.org>
723
7f8f1edc
GM
724 * xfns.c (lookup_image): Build mask before applying an algorithm.
725 Recognize algorithm `disabled'.
726 (cross_disabled_images): New variable.
727 (COLOR_INTENSITY): New macro.
728 (x_detect_edges): Use COLOR_INTENSITY.
729 (x_disable_image): New function.
730 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
731
732 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
733 disabled state, don't apply an image transformation algorithm if
734 the user specified an image for the disabled state. Use
28c7826c 735 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
736 user hasn't specified an image.
737
ebb8f116
GM
738 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
739 allocation functions with the XPM lib.
740 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
741 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
742 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
743 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
744 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
745 functions.
746 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
747 functions, if possible, because these handle color allocation
748 failure more gracefully.
749 (Fimage_mask_p): New function.
750
47e351a3
GM
751 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
752 (Qedge_detection, Qheuristic): New symbols.
753 (syms_of_xfns): Initialize new symbols.
754 (lookup_image): Handle `:mask X', `:algorithm emboss', and
755 `algorithm (edge-detection ...)'.
756 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
757 (tiff_format, gif_format, gs_format): Add `:mask'.
758 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
759 (GIF_MASK, GS_MASK): New enumerators.
760 (x_laplace_read_row, x_laplace_write_row): Functions removed.
761 (emboss_matrix, laplace_matrix): New variables.
762 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
763 (x_edge_detection): New functions.
764 (x_laplace): Rewritten in terms of x_detect_edges.
765 (x_build_heuristic_mask): If image has a mask, free it.
766
fe83b953
AI
7672000-09-14 Andrew Innes <andrewi@gnu.org>
768
769 * makefile.w32-in: Revert to Unix line endings.
770
3021e816
AI
7712000-09-14 Andrew Innes <andrewi@gnu.org>
772
773 * makefile.w32-in: Standardize indentation somewhat.
774 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
775 cater for differences between shells.
776
777 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
778
2a32b5ea
GM
7792000-09-14 Gerd Moellmann <gerd@gnu.org>
780
781 * xterm.c (x_produce_glyphs): If the distance from the current
782 position to the next tab stop is less than a canonical character
783 width, use the tab stop after that.
784
b4331e96
DL
7852000-09-14 Dave Love <fx@gnu.org>
786
787 * buffer.c (alloc_buffer_text): Fix xmalloc call.
788
ef9e4345
GM
7892000-09-14 Gerd Moellmann <gerd@gnu.org>
790
085536c2
GM
791 * xdisp.c (handle_fontified_prop): While running fontification
792 functions, bind `fontification-functions' and
793 `after-change-functions' to nil.
794
ef9e4345
GM
795 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
796 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
797
798 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
799
800 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
801 USE_MMAP_FOR_BUFFERS.
802
803 * insdel.c (make_gap): Use enlarge_buffer_text.
804
805 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
806 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
807 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
808 from former r_alloc_* functions in ralloc.c.
809 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
810 variables.
811 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
812 (mmap_init) [REL_ALLOC_MMAP]: New function.
813 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
814 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
815 BUFFER_FREE.
816
817 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
818 (enlarge_buffer_text): Add prototype.
819
820 * ralloc.c: Remove everything having to do with the use of mmap.
821
f8608968
GM
8222000-09-13 Gerd Moellmann <gerd@gnu.org>
823
2a494b2d
GM
824 * sound.c (Fplay_sound): Doc fix.
825
8c907a56
GM
826 * keyboard.c: Avoid some more compiler warnings.
827 (parse_tool_bar_item): Ignore cached key bindings.
828
f8608968
GM
829 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
830 and allocation of Lisp data.
831
6ab70e9a
GM
8322000-09-12 Gerd Moellmann <gerd@gnu.org>
833
d12d0a9b
GM
834 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
835 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
836 defaults first.
837
6ab70e9a
GM
838 * lread.c (Fload): Put code checking for recursive loads in #if 0.
839
63c36c3c
KH
8402000-09-12 Miyashita Hisashi <himi@meadowy.org>
841
842 * ccl.c: Comment fixed.
843 (MAX_MAP_SET_LEVEL): Increased to 30.
844 (PUSH_MAPPING_STACK): Enclose with do-while block.
845 (POP_MAPPING_STACK): Likewise.
846 (stack_idx_of_map_multiple): New variable.
847 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
848 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
849 call the corresponding CCL program by
850 CCL_CALL_FOR_MAP_INSTRUCTION.
851 (ccl_driver) <CCL_MapSingle>: Likewise.
852 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
853 with the case where looking up process reaches to the end of
854 map-set, and call CCL programs as the above change.
855
7ee3bd7b
GM
8562000-09-11 Gerd Moellmann <gerd@gnu.org>
857
8ec8a5ec
GM
858 * xfns.c (png_load, jpeg_load): Declare some variables volatile
859 that might be clobbered by longjmp.
860 (check_x_display_info, x_decode_color, create_frame_xic)
861 (Fx_display_backing_store, Fx_display_visual_class)
862 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
863 warnings.
864
f74b0705
GM
865 * lread.c (init_lread): Set Vloads_in_progress to nil.
866 (Fload): Show list of recursively loaded files, when signaling an
867 error.
868
7ee3bd7b
GM
869 * lread.c (Vloads_in_progress): New variable.
870 (record_load_unwind): New function.
871 (Fload): Check for recursive loads.
872 (syms_of_lread): Initialize Vloads_in_progress.
873 (read_integer, read1): Avoid some compiler warnings.
874
875 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
876 compiler warnings.
877
974e1e5b
MB
8782000-09-11 Miles Bader <miles@gnu.org>
879
880 * editfns.c (Fbuffer_string): Doc fix.
881
9824c4e3
GM
8822000-09-10 Gerd Moellmann <gerd@gnu.org>
883
884 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
885
6a72fdd1
KR
8862000-09-09 Ken Raeburn <raeburn@gnu.org>
887
888 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
889 whether to include other header files.
890
28e6fb66
GM
8912000-09-09 Gerd Moellmann <gerd@gnu.org>
892
893 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 894 by Fmemq as a boolean.
28e6fb66 895
7f8b6551
SM
8962000-09-08 Stefan Monnier <monnier@cs.yale.edu>
897
898 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
899
a8710abf
GM
9002000-09-08 Gerd Moellmann <gerd@gnu.org>
901
d1a02881
GM
902 * ralloc.c (mmap_fd): Remove initializer which can make it
903 read-only in a dumped Emacs.
904 (mmap_fd_1): New variable.
905 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
906 restore it from there.
907 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
908 unconditionally so that mmap_fd can be initialized there.
909 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
910 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
911 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
912
c454aac1
GM
913 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
914
915 * xdisp.c (dump_glyph_row): Fix printf format string.
916 (display_line, move_it_in_display_line_to): Avoid compiler
917 warnings.
918
fc653ef2
GM
919 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
920
3015eec0
GM
921 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
922 inheritance.
923
bfe0ee88
GM
924 * xdisp.c (try_window_id): When trying to locate cursor in
925 unchanged rows at the top, handle the case that we can't find it.
926
a8710abf
GM
927 * xterm.c (x_draw_glyphs): Handle case START and END are out
928 of bounds more carefully.
929
6b7d4ae4
DL
9302000-09-08 Dave Love <fx@gnu.org>
931
423193c5
DL
932 * s/sol2.h (REL_ALLOC_MMAP): Define.
933 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
934
935 * ralloc.c: Don't include string.h (redundant).
936 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
937 [!MAP_ANON]: Include fcntl.h.
938 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
939 (r_alloc, r_re_alloc, r_alloc_free)
940 (mmap_enlarge, mmap_set_vars): Use it.
941 (r_alloc_init_fd): New function.
942 (__morecore) [SYSTEM_MALLOC]: Don't declare.
943 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
944 malloc type.
945
946 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
947 Remove vm-limit.o.
948
6b7d4ae4
DL
949 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
950 change to __NetBSD__.
951
44d31981
KH
9522000-09-08 Kenichi Handa <handa@etl.go.jp>
953
954 * search.c (compile_pattern): Check the multibyteness of cached
955 string and PATTERN.
956
aad40737
MB
9572000-09-08 Miles Bader <miles@gnu.org>
958
959 * xfaces.c (default_face_vector): Function removed.
960 (Finternal_merge_in_global_face): Restore old global/local
961 attribute override order. Use inline loop instead of calling
962 default_face_vector.
963
91a211b5
GM
9642000-09-07 Gerd Moellmann <gerd@gnu.org>
965
966 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
967 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
968 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
969 where necessary, in case POINTER_TYPE is `void'.
970
03419440
EZ
9712000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
972
973 * frame.c (make_terminal_frame): Initialize frame foreground and
974 background colors to unspecified, for the initial instance of an
975 MSDOS frame.
976
f46f845b
GM
9772000-09-07 Gerd Moellmann <gerd@gnu.org>
978
24f76fbf
GM
979 * ralloc.c (mmap_find): Fix overlap computation.
980 (mmap_enlarge): Compute nbytes before trying to find an
981 overlapping region.
982
f46f845b
GM
983 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
984 instead of `!='.
985
986 * lread.c (syms_of_lread): Change value of regexp
987 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
988
989 * xmenu.c (xdialog_show): When looking up the selection in
990 menu_items, take `quote' boundaries into account; this corresponds
991 to a nil ITEM in x-popup-dialog.
992
3c014385
KH
9932000-09-07 Kenichi Handa <handa@etl.go.jp>
994
fd6f711b
KH
995 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
996 not 0x81.
997 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
998
3c014385 999 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
1000 encoding, not decoding. Fix the handling of latin-jisx0201.
1001 Check for the charset katakana-jisx0201 too.
3c014385 1002 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 1003 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 1004
0da3ecef
GM
10052000-09-07 Gerd Moellmann <gerd@gnu.org>
1006
ab0ee409
GM
1007 * xfaces.c (Vparam_value_alist): New variable.
1008 (syms_of_xfaces): Initialize it.
1009 (Finternal_set_lisp_face_attribute): Avoid more consing.
1010
1011 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
1012 specially.
1013 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
1014 (Qbackground_mode): New variable.
1015 (syms_of_frame_1): Initialize Qbackground_mode.
1016
1017 * lisp.h (Qdisplay): Declare extern.
1091dd67 1018
0da3ecef
GM
1019 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
1020 change face on all frames, and change the default for new frames.
1021
b14654b9
DL
10222000-09-07 Dave Love <fx@gnu.org>
1023
1024 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
1025
d24fd56f
KH
10262000-09-07 Kenichi Handa <handa@etl.go.jp>
1027
794f3670
KH
1028 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
1029
0fddd0dc
KH
1030 * charset.c: Include composite.h
1031 (lisp_string_width): New function.
1032 (Fstring_width): Call lisp_string_width instead of strwidth.
1033
1034 * Makefile.in (charset.o): Depends on composite.h.
1035
d24fd56f
KH
1036 * process.c (read_process_output): Before inserting the decoded
1037 text in the buffer, adjust the multibyteness.
1038
fa0b693c
GM
10392000-09-06 Gerd Moellmann <gerd@gnu.org>
1040
73b77ee5
GM
1041 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
1042 buffer's text buffer is null, map new memory.
1043
0a58f946
GM
1044 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
1045 POINTER_TYPE and size_t.
1046 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
1047 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
1048 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
1049 [REL_ALLOC_MMAP]: New macros.
1050 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
1051 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
1052 [REL_ALLOC_MMAP]: New functions.
1053
1054 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
1055 before and after unexec.
1056
1057 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
1058 text buffers if necessary.
1059
1060 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
1061 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
1062 in prototypes.
1063
fa0b693c
GM
1064 * config.in (HAVE_MMAP): Add #undef.
1065
877055f6
GM
10662000-09-05 Gerd Moellmann <gerd@gnu.org>
1067
08ba3862
GM
1068 * frame.c (Qdisplay_type): New variable.
1069 (syms_of_frame_1): Initialize it.
1070 (Fframe_parameter): New function that avoids consing.
1071 (syms_of_frame): Defsubr it.
1072
66ffe51c
GM
1073 * buffer.c (Fother_buffer): Consider buffers as invisible when
1074 they are displayed in a window on an invisible frame.
1075
877055f6
GM
1076 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
1077 get-largest-window always return nil.
1078
bb970e67
GM
10792000-09-04 Gerd Moellmann <gerd@gnu.org>
1080
1081 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
1082 variable; recognize Emacs 19 elc files.
1083
7a3d0e0e
MB
10842000-09-04 Miles Bader <miles@gnu.org>
1085
1086 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
1087 before initially popping up the menu, so the menu doesn't flash
1088 when the face settings are significantly different from the
1089 defaults.
1090
14473664
SM
10912000-09-04 Stefan Monnier <monnier@cs.yale.edu>
1092
1093 * regex.c (WIDE_CHAR_SUPPORT): New macro.
1094 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
1095 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
1096 (BIT_UNIBYTE): Remove.
1097 (re_match_2_internal): Delete corresponding code and streamline the
1098 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
1099 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
1100 (re_wctype_t): New type.
1101 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
1102 (regex_compile): Use them and fix handling of overly long char classes.
1103
c1174479
AI
11042000-09-03 Andrew Innes <andrewi@gnu.org>
1105
f8803e97
AI
1106 * makefile.w32-in: Change to DOS line endings.
1107
c1174479
AI
1108 * s/ms-w32.h (ORDINARY_LINK): New define.
1109
1110 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
1111 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
1112
1113 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
1114 (distclean): Delete them here instead.
1115
44ef7cf6
AI
1116 * w32proc.c (compare_env): Convert to uppercase for comparison,
1117 not lowercase, to match how the native Windows shell works.
1118
49b3bd82
JR
11192000-09-03 Jason Rumney <jasonr@gnu.org>
1120
1121 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
1122 CVS changes the line-ends when checking in/out on DOS/Windows.
1123
1124 * makefile.nt (emacs): Do not change directory to run temacs, as
1125 the load-path is set relative to current directory.
1126
a3d35a39
MB
11272000-09-03 Miles Bader <miles@gnu.org>
1128
1129 * xterm.c (x_alloc_lighter_color_for_widget): New function.
1130
d276b0cf
GM
11312000-09-02 Gerd Moellmann <gerd@gnu.org>
1132
715e84c9
GM
1133 * xdisp.c (redisplay_mode_lines): New function.
1134 (display_mode_lines): Return number of mode lines displayed.
1135 (echo_area_display): Use redisplay_mode_lines to draw garbaged
1136 mode lines. Don't temporarily bind redisplay-dont-pause to t.
1137
8892f40b
GM
1138 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
1139 string.h and strings.h.
1140 (index) [HAVE_INDEX]: Add prototype.
1141
d276b0cf
GM
1142 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
1143 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
1144
1145 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
1146 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
1147
38404229
GM
11482000-09-01 Gerd Moellmann <gerd@gnu.org>
1149
1150 * lread.c (read1): Accept `?' as symbol constituent, for
1151 compatiblity with XEmacs.
1152
c0f9ea08
SM
11532000-08-31 Stefan Monnier <monnier@cs.yale.edu>
1154
1155 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
1156 (struct re_pattern_buffer): Remove newline_anchor.
1157 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
1158 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
1159 (re_max_failures, fail_stack): Use size_t rather than unsigned.
1160 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
1161 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
1162 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
1163 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
1164 Get rid of references to newline_anchor.
1165 (regcomp): Allocate and precompute a fastmap.
1166
8c0f83fe
GM
11672000-08-31 Gerd Moellmann <gerd@gnu.org>
1168
1169 * lread.c (openp): GCPRO local variable `filename'.
1170
4bb91c68
SM
11712000-08-30 Stefan Monnier <monnier@cs.yale.edu>
1172
1173 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
1174
1175 * regex.c: Merge some changes from GNU libc. Add prototypes.
1176 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
1177 Use memcmp and memcpy instead of bcopy and bcmp.
1178 (init_syntax_once): Use ISALNUM.
1179 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
1180 (REG_UNSET_VALUE): Remove. Use NULL instead.
1181 (REG_UNSET, re_match_2_internal): Use NULL.
1182 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
1183 New macros.
1184 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
1185 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
1186 (regex_compile): In handle_interval, return an error rather than try to
1187 unfetch the interval if we can't find the closing brace.
1188 Obey the RE_NO_GNU_OPS syntax bit.
1189 (TOLOWER): New macro.
1190 (regcomp): Use it.
1191 (regexec): Allocate regs.start and regs.end as one block.
1192
5226a931
GM
11932000-08-30 Gerd Moellmann <gerd@gnu.org>
1194
868dd24b
GM
1195 * xdisp.c (echo_area_display): Check display_completed instead
1196 of calling detect_input_pending.
1197
1198 * dispnew.c (update_frame): Only set display_completed here; move
1199 the update_begin and update_end calls here from update_frame_1.
1200 (update_frame_1): Don't set display_completed here, don't call
1201 update_begin/update_end.
1202
5226a931
GM
1203 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
1204 instead of store_frame_param.
1205
2a8bd25f
GM
12062000-08-29 Gerd Moellmann <gerd@gnu.org>
1207
1208 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
1209 desired window matrix hasn't been displayed, use the current row
1210 instead. Make sure that only those frame rows are updated for
1211 which there exists a corresponding enabled desired row.
1212
ba3478d9
MB
12132000-08-29 Miles Bader <miles@gnu.org>
1214
1215 * xfaces.c (default_face_vector): New function.
1216 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
1217
87d0f685
GM
12182000-08-29 Gerd Moellmann <gerd@gnu.org>
1219
1220 * lread.c (openp): Prevent temporary string passed to
1221 Ffile_readable_p from being garbage collected.
1222
6fa86045
DL
12232000-08-28 Dave Love <fx@gnu.org>
1224
1225 * keymap.c (store_in_keymap): Add `static' to declaration.
1226
bb17930d
GM
12272000-08-28 Gerd Moellmann <gerd@gnu.org>
1228
1229 * emacs.c, callint.c, doc.c, editfns.c
1230 (toplevel) [HAVE_STRING_H]: Include string.h.
1231 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
1232 (index): Remove prototypes which might conflict with non-standard
1233 definitions of index/strchr.
1234
1235 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
1236 (rindex): Define only if !HAVE_RINDEX.
1237
1238 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
1239
1240 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
1241
87188200
MB
12422000-08-28 Miles Bader <miles@gnu.org>
1243
1244 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
1245 made inconsistent by a font-related attribute in FROM.
1246 (merge_face_inheritance): Add function comment.
1247
41a68aef
KH
12482000-08-28 Kenichi Handa <handa@etl.go.jp>
1249
1250 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
1251 the 4th arg (PREV_EVENT) Qt to suppress input method.
1252
f7c436c1
SM
12532000-08-27 Stefan Monnier <monnier@cs.yale.edu>
1254
0b32bf0e
SM
1255 * regex.c: Indent cpp directives and remove parens after `defined'.
1256 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
1257 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
1258 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
1259 (re_compile_pattern): Use size_t for length.
1260 (init_syntax_once): Move to a better place.
1261 * regex.h: Merge changes from GNU libc. Indent cpp directives.
1262 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
1263
f7c436c1
SM
1264 * syntax.c (back_comment): Detect cases where a comment-starter is
1265 actually inside another comment as in: /* a // b */ c // d \n.
1266 Make it clear that `comstart_pos' is unused for nested comments.
1267
1268 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
1269 (KEYMAPP): New macro.
1270 (Fkeymap_parent, Fset_keymap_parent): Use it.
1271 (fix_submap_inheritance): Mark it static.
1272 (define_as_prefix, describe_buffer_bindings, describe_command)
1273 (describe_translation, describe_map): Complete prototypes.
1274
1275 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
1276
1277 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
1278 to better match the key-lookup behavior.
1279
6288c62f
GM
12802000-08-27 Gerd Moellmann <gerd@gnu.org>
1281
1282 * xfaces.c (lface_fully_specified_p): Handle :inherit.
1283 (Finternal_set_lisp_face_attribute): Fix typo in error message.
1284
e931344e
EZ
12852000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
1286
1287 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
1288 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
1289 (xterm.o): Depend on coding.h
1290
d10dfeef
KH
12912000-08-26 Kenichi Handa <handa@etl.go.jp>
1292
1293 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
1294 the corresponding '#endif'.
1295
2d73e8d3
MB
12962000-08-26 Miles Bader <miles@gnu.org>
1297
1298 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
1299 * xfaces.c (QCinherit): New variable.
1300 (syms_of_xfaces): Initialize it.
1301 (LFACE_INHERIT): New macro.
1302 (Finternal_get_lisp_face_attribute)
1303 (merge_face_vector_with_property)
1304 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
1305 (check_lface_attrs): Allow new types of face height. Check
1306 inherit attribute.
1307 (CYCLE_CHECK): New macro.
1308 (merge_face_inheritance): New function.
1309 (merge_face_vectors): Merge inherited faces too. Add F and
1310 CYCLE_CHECK arguments.
1311 (merge_face_vector_with_property, Finternal_merge_in_global_face)
1312 (lookup_named_face, lookup_derived_face, realize_named_face)
1313 (face_at_string_position, face_at_buffer_position): Supply
1314 new F and CYCLE_CHECK arguments to merge_face_vectors.
1315 (merge_face_heights): New function.
1316 (merge_face_vectors, merge_face_vector_with_property)
1317 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
1318 handle relative face heights.
1319 (lface_same_font_attributes_p): Compare heights using EQ.
1320
6ce974d4
KH
13212000-08-26 Kenichi Handa <handa@etl.go.jp>
1322
1323 * charset.c (char_to_string): Check the character validity.
1324 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
1325 0.
1326
dc1e502d
SM
13272000-08-25 Stefan Monnier <monnier@cs.yale.edu>
1328
1329 * regex.c (PUSH_FAILURE_COUNT): New macro.
1330 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
1331 Handle popping of a register's or a counter's data.
1332 (POP_FAILURE_POINT): Use the new name.
1333 (re_match_2_internal): Push counter data on the stack for succeed_n,
1334 jump_n and set_number_at and remove misleading dead code in succeed_n.
1335
bd9d0f3f
GM
13362000-08-25 Gerd Moellmann <gerd@gnu.org>
1337
1338 * xdisp.c (redisplay_internal): If considering all windows on all
1339 frames, update the display for each frame as soon as possible,
1340 instead of first building all desired matrices for all frames, and
1341 then updating them all.
1342 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
1343
aa5b8e15
GM
13442000-08-24 Gerd Moellmann <gerd@gnu.org>
1345
17494071
GM
1346 * bytecode.c (mark_byte_stack): Add a comment.
1347
aa5b8e15
GM
1348 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
1349 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
1350 a graphical frame.
1351
c543db81
KH
13522000-08-24 Kenichi Handa <handa@etl.go.jp>
1353
d246d5f5
KH
1354 * minibuf.c (do_completion): Always use compare-string, not
1355 string-equal because the latter doesn't pay attention to
1356 multibyteness of strings.
1357
c543db81
KH
1358 * process.c (create_process): Don't setup raw-text coding here.
1359 (Fopen_network_stream): Don't set coding->src_multibyte and
1360 coding->dst_multibyte here.
1361 (read_process_output): For process filter, return unibyte string
1362 if default-enable-multibyte-characters is nil.
1363 (send_process): If OBJECT is multibyte text, be sure to encoded it
1364 by the specified coding system for the process. Otherwise, setup
1365 raw-text coding.
1366 (init_process): Don't initialize default-process-coding-system
1367 here.
1368
9b47cfe0
EZ
13692000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
1370
1371 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
1372 <scroll-down-aggressively>: Likewise.
1373
f5a36960
KH
13742000-08-23 Kenichi Handa <handa@etl.go.jp>
1375
1376 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
1377 zero. Set coding->produced_char correctly.
1378
69a7ffa7
AI
13792000-08-22 Andrew Innes <andrewi@gnu.org>
1380
1381 * makefile.w32-in: New file.
1382
1383 * unexw32.c (unexec): Ignore old_name, and use the actual location
1384 of the current executable instead. Base new_name on this.
1385
1386 * w32proc.c (create_child): Remove reference to security
1387 descriptor, which isn't needed and doesn't compile with mingw32.
1388
1389 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1390 up dllimport attributes.
1391 (x_update_window_end): Update prototype.
1392
1393 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
1394 extern, which screws up dllimport attributes.
1395
1396 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1397 up dllimport attributes.
1398
1399 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
1400 screws up dllimport attributes.
1401
1402 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1403 up dllimport attributes.
1404 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
1405 screws up dllimport attributes.
1406
1407 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1408 up dllimport attributes.
1409
1410 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
1411 screws up dllimport attributes.
1412
1413 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
1414 screws up dllimport attributes.
1415
1416 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1417 up dllimport attributes.
1418
1419 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
1420 unnecessary extern, which screws up dllimport attributes.
1421 (main): Ditto.
1422
1423 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1424 up dllimport attributes.
1425
1426 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
1427 unnecessary extern, which screws up dllimport attributes.
1428
1429 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
1430 screws up dllimport attributes.
1431
1432 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1433 up dllimport attributes.
1434
1435 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
1436
1437 * w32bdf.c (search_file_line):
1438 (set_bdf_font_info):
1439 (seek_char):
1440 (w32_get_bdf_glyph):
1441 (w32_BDF_to_x_font): Fix compile warnings.
1442
1443 * w32menu.c: Include keyboard.h before frame.h. Fix compile
1444 warnings.
1445
1446 * w32select.c: Include keyboard.h before frame.h.
1447
1448 * w32fns.c (max): Define macro.
1449 (JOHAB_CHARSET): Define if not known.
1450 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
1451 (Fx_show_tip): Synch with X version.
1452
1453 * w32xfns.c: Include keyboard.h before frame.h.
1454
1455 * w32fns.c: Include keyboard.h before frame.h.
1456
1457 * w32term.c: Include keyboard.h before frame.h.
1458
1459 * fontset.c: Include keyboard.h before frame.h.
1460
1461 * w32inevt.c: Include keyboard.h before frame.h.
1462 (MOUSE_MOVED): Define if not known.
1463
1464 * minibuf.c: Include keyboard.h before frame.h.
1465
1466 * keyboard.c: Include keyboard.h before frame.h.
1467
1468 * indent.c: Include keyboard.h before frame.h.
1469
1470 * dispnew.c: Include keyboard.h before frame.h.
1471
1472 * buffer.c: Include keyboard.h before frame.h.
1473
1474 * alloc.c: Include keyboard.h before frame.h.
1475
1476 * print.c: Include keyboard.h before frame.h.
1477
1478 * process.c: Include keyboard.h before frame.h.
1479
1480 * scroll.c: Include keyboard.h before frame.h.
1481
1482 * sysdep.c: Include keyboard.h before frame.h.
1483
1484 * term.c: Include keyboard.h before frame.h.
1485
1486 * window.c: Include keyboard.h before frame.h.
1487
1488 * xdisp.c: Include keyboard.h before frame.h.
1489 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
1490
1491 * frame.c: Include keyboard.h before frame.h.
1492
1493 * w32heap.h: Undefine min, max.
1494
1495 * w32gui.h: Undefine min, max.
1496
1497 * unexw32.c: Change PUCHAR to PCHAR.
1498 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
1499 (relocate_offset):
1500 (get_section_info):
1501 (copy_executable_and_dump_data): Remove unnecessary static defs.
1502 (copy_executable_and_dump_data): Fix compile warnings.
1503
1504 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
1505
1506 * w32console.c (min): Define macro.
1507 (clear_frame, write_glyphs): Fix compile warning.
1508
1509 * w32proc.c (compare_env):
1510 (find_child_console): Fix compile warning.
1511
1512 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
1513 sys_errlist instead of _sys_errlist.
1514 (get_emacs_configuration_options): New function.
1515
1516 * s/ms-w32.h (sys_nerr): Provide default definition.
1517 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
1518 name with _ prepended.
1519 (NSIG): Define if not known.
1520 (get_emacs_configuration): Provide extern declaration.
1521 (get_emacs_configuration_options): Provide extern declaration.
1522 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
1523
1524 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
1525 (map_w32_filename):
1526 (read_unc_volume): Fix compile warning.
1527
1528 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
1529 definitions from being used.
1530
1531 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
1532
1533 * w32.c (unc_volume_file_attributes):
1534 (open_unc_volume): Make arg const.
1535
1536 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
1537 (read_input_waiting): Remove excess parameter.
1538
1539 * w32.c (init_environment): Call _access.
1540 (check_windows_init_file): Call _close.
1541 (init_user_info): Call _putenv.
1542 (init_environment): Call _putenv and _strdup.
1543 (init_ntproc): Reset volume info cache on startup.
1544
1545 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
1546 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
1547 cannot override the CRT malloc.
1548
1549 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
1550 (LINK_FLAGS): Append to original value of LINK_FLAGS.
1551
1552 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
1553 unless we are linking with a static CRT.
1554 (RVA_TO_PTR): Cast result to unsigned char*.
1555
1556 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
1557 (add_volume_info): Use xstrdup.
1558
25060080
SM
15592000-08-22 Stefan Monnier <monnier@cs.yale.edu>
1560
1561 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
1562 (do_completion, Fminibuffer_complete_word): Use it.
1563 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
1564 var so it can take non-boolean values.
1565
6917e6bb
GM
15662000-08-21 Gerd Moellmann <gerd@gnu.org>
1567
acb7cc89
GM
1568 * editfns.c (find_field): Formatting changes.
1569 (toplevel): Some old-style function forward declarations
1570 changed to prototypes, some new protypes added, some functions
1571 made static.
1572
1573 * lisp.h (set_time_zone_rule): Add prototype.
1574 (use_dialog_box): External declaration.
1575
0bbfdc25
GM
1576 * keyboard.c (gen_help_event): Add parameter SIZE.
1577 (kbd_buffer_events_waiting): Slightly rewritten.
1578 (clear_event): New function.
1579 (kbd_buffer_get_event): Use it, and clear the input_events of
1580 HELP_EVENTs.
1581 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
1582 don't fill the newly created array with nils.
1583 (toplevel): Convert some old-style function forward declarations
1584 to prototypes.
1585
1586 * keyboard.h (gen_help_event): Change prototype.
1587
1588 * xterm.c (XTread_socket): Change calls to gen_help_event.
1589
1590 * w32term.c (w32_read_socket): Change calls to gen_help_event.
1591
6917e6bb
GM
1592 * eval.c (Fmacroexpand): Doc fix.
1593
e5cd3d11
JR
15942000-08-20 Jason Rumney <jasonr@gnu.org>
1595
1596 * w32term.h (x_display_info_for_display): Remove as this function
1597 does not exist on W32.
1598
1599 * w32term.c (help_echo_window): New variable.
1600 (syms_of_w32term): staticpro it.
1601 (note_mode_line_highlight): Set it.
1602 (XTextExtents16): Removed as there is no equivalent on W32.
1603 (x_compute_glyph_string_overhangs): Incomplete body removed, as
1604 the X way of doing this will not work for W32.
1605 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
1606 (x_draw_image_foreground): Avoid drawing outside of the clip area
1607 when image doesn't have a mask.
1608 (note_mouse_highlight): Process overlays in the right order of
1609 priority. Set help_echo_window.
1610 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
1611 because that's more visible for large images.
1612
1613 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
1614 name to single_keymap_panes.
1615 (w32_menu_show): Set wv->title when dealing with titles.
1616 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
1617
6e69ab8c
MB
16182000-08-21 Miles Bader <miles@gnu.org>
1619
1620 * minibuf.c (do_completion): Try again if we rewrite the input
1621 string, but no completion was done, so that any completion message
1622 will be correct.
1623
511bd4eb
GM
16242000-08-20 Gerd Moellmann <gerd@gnu.org>
1625
1626 * xfaces.c (lface_equal_p): Compare strings differently.
1627 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
1628 (realize_tty_face): Use them.
1629 (syms_of_xfaces): Initialize new variables.
1630 (map_tty_color): New function, extracted from realize_tty_face.
1631 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
1632 foreground or background color, store the new color name in the
1633 realized face; previous code trying to do this had no effect.
1634 (realize_tty_face): Use map_tty_color.
1635 (Fclear_face_cache): Set face_change_count and ensure thorough
1636 redisplay.
1637
1433385f
GM
16382000-08-19 Gerd Moellmann <gerd@gnu.org>
1639
511bd4eb
GM
1640 * undo.c (record_first_change, record_marker_adjustment): Don't
1641 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 1642
419ac0a2
KH
16432000-08-18 Kenichi Handa <handa@etl.go.jp>
1644
1645 * coding.c (decode_coding_string): Set members consumed,
1646 consumed_char, produced, produced_char of *coding correctly. If
1647 decode_coding doesn't consume any byte, don't try anymore.
1648 (encode_coding_string): Likewise.
1649
7eb9e30d
GM
16502000-08-18 Gerd Moellmann <gerd@gnu.org>
1651
511bd4eb
GM
1652 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
1653 conditional have void type, for Standard C compilers.
7eb9e30d
GM
1654
1655 * xdisp.c (redisplay_internal): Compare windows for equality with
1656 EQ, instead of applying XWINDOW to something that might not
1657 be a window.
1658
dd34a735
KH
16592000-08-18 Kenichi Handa <handa@etl.go.jp>
1660
1661 * fontset.c (Finternal_char_font): Search only the selected frame
1662 for a window of the current buffer.
1663
385ff9e3
GM
16642000-08-18 Gerd Moellmann <gerd@gnu.org>
1665
511bd4eb 1666 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
1667 Lisp_Objects.
1668
385ff9e3
GM
1669 * keyboard.c (kbd_buffer_get_event): Handle the case that the
1670 second half of a HELP_EVENT is found at the start of kbd_buffer.
1671
d6abb4c7
MB
16722000-08-18 Miles Bader <miles@gnu.org>
1673
4618074a
MB
1674 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
1675
d6abb4c7
MB
1676 * editfns.c (save_restriction_save): Rewrite to use markers.
1677 (save_restriction_restore): Rewrite to understand new form of data
1678 saved by save_restriction_save.
1679 (Fsave_restriction): Remove cautionary note in doc-string.
1680
a7b28523
GM
16812000-08-17 Gerd Moellmann <gerd@gnu.org>
1682
1683 * fileio.c (build_annotations): Add a comment explaining the
1684 return value of format-annotate-function. Replace a spurious call
1685 to Flength with a CONSP test. Call format-annotate-function with
1686 a fifth arg specifying how many times the function is been called
1687 in a row, to let it choose temporary buffers appropriately.
1688
03c9ed77
DL
16892000-08-17 Dave Love <fx@gnu.org>
1690
1691 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
1692 declare make_temp_name twice.
1693
1694 * lread.c: Prototype readevalloop, load_unwind,
1695 load_descriptor_unwind.
1696 (unreadpure): Give it an arg.
1697
1698 * unexalpha.c: Prototype fatal_unexec, mark_x,
1699 update_dynamic_symbols. Declare unexec as void.
1700
1701 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
1702 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
1703
1704 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
1705 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
1706 DOUG_LEA_MALLOC.
1707
1708 * alloca.c: Use #error.
1709 [POINTER_TYPE]: Use it.
1710
1711 * eval.c (Fdefvar): Doc fix.
1712
1713 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
1714 INITIALIZE_INTERVAL.
1715
1716 * buffer.h: Avoid DECLARE_INTERVALS.
1717
1718 * config.in: Add size_t.
1719
aae41d97
EZ
17202000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
1721
1722 * w16select.c (set_clipboard_data): If there's not enough memory
1723 to put text into clipboard, return 1, as Fw16_set_clipboard_data
1724 expects. In case of other failures, return 3.
1725 (system_error_msg): New error message.
1726 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
1727 system_error_msg.
1728
65aa5e85
GM
17292000-08-16 Gerd Moellmann <gerd@gnu.org>
1730
1731 * term.c (write_glyphs): Also turn off inverse video after turning
1732 off other appearances in case TS_exit_attribute_mode is not equal
1733 to TS_end_standout_mode.
1734 (insert_glyphs): Turn inverse video on/off for each run of glyphs
1735 with the same face.
1736 (turn_off_face): Reset standout_mode only if
1737 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
1738 is equal to TS_end_standout_mode.
1739
ece23901
KH
17402000-08-16 Kenichi Handa <handa@etl.go.jp>
1741
9d7bcb2e
KH
1742 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
1743 sequence at the end of the source block.
1744
ece23901
KH
1745 * ccl.c (Fccl_program_p): Docstring modified.
1746 (Fccl_execute): Likewise.
1747 (Fccl_execute_on_string): Likewise.
1748
5e30eaa2
EZ
17492000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
1750
1751 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
1752
290602fd
KH
17532000-08-16 Kenichi Handa <handa@etl.go.jp>
1754
1755 The following changes are mainly to fix bugs of
1756 encode/decode-coding-string failing if encoding/decoding return
1757 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
1758 variable conversion_buffer.
1759
1760 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
1761 decrement dst_end to avoid buffer overflow in the later call of
1762 string_as_multibyte
1763
1764 * coding.h (conversion_buffer_size, conversion_buffer)
1765 (get_conversion_buffer): Extern deleted.
1766
1767 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
1768 (conversion_buffer, conversion_buffer_size): Variables deleted.
1769 (get_conversion_buffer): Function deleted.
1770 (struct conversion_buffer): New structure.
1771 (MAX_ALLOCA): New macro.
1772 (allocate_conversion_buffer): New macro.
1773 (extend_conversion_buffer, free_conversion_buffer): New functions.
1774 (ccl_coding_driver): Set coding->result.
1775 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
1776 this is the last block of source.
1777 (encode_coding): Likewise. Handle the source block as the last
1778 one only when the whole source text is consumed.
1779 (decode_coding_string): Handle the case that the output buffer is
1780 too small to decode the whole source text. Use
1781 allocate_conversion_buffer, extend_conversion_buffer and
1782 free_conversion_buffer, not get_conversion_buffer.
1783 (encode_coding_string): Likewise.
1784 (init_coding): Function deleted.
1785 (init_coding_once): Delete code to initialize
1786 conversion_buffer_size.
1787
1788 * emacs.c (main): Don't call init_coding.
1789
1790 * msdos.c (IT_write_glyphs): Use a locally declared
1791 conversion_buffer.
1792
1793 * term.c (write_glyphs): Use a locally declared conversion_buffer.
1794 (insert_glyphs): Likewise.
1795
1796 * w32console.c (write_glyphs): Use a locally declared
1797 conversion_buffer.
1798
b9f80d41
EZ
17992000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
1800
1801 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
1802 member of display_info is NULL.
1803
32dc52f7
GM
18042000-08-15 Gerd Moellmann <gerd@gnu.org>
1805
58ed0d3b
GM
1806 * alloc.c (compact_small_strings): Use safe_bcopy, add an
1807 assertion.
1808
32dc52f7 1809 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 1810 appearances with capability `me'.
32dc52f7
GM
1811 (write_glyphs): Switch on inverse video before each face change.
1812
4eb22d33
DL
18132000-08-14 Dave Love <fx@gnu.org>
1814
1815 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
1816 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
1817 (lisp_free): Declare and make static.
1818
1819 * window.c: Fix embedded comment.
1820 (syms_of_window): Fix doc string.
1821
90cbf47e
GM
18222000-08-14 Gerd Moellmann <gerd@gnu.org>
1823
1824 * keymap.c (push_key_description): If C without modifiers is < 32,
1825 make sure to print `C-' before `M-', like in the manual.
1826
440fc135
GM
18272000-08-11 Gerd Moellmann <gerd@gnu.org>
1828
1829 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
1830 since they aren't relocated anymore.
1831 (sxhash_string): Make sure returned hash code fits in a Lisp
1832 integer.
1833
1834 * xdisp.c (try_cursor_movement): Fix handling of cursor in
1835 partially visible line which is smaller than the window's
1836 height.
1837
6e264fad
KH
18382000-08-11 Kenichi Handa <handa@etl.go.jp>
1839
1840 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
1841 the multibyte form of eight-bit-control characters.
1842 (Fccl_execute_on_string): Initialize ccl->multibyte.
1843
1844 * ccl.h (struct ccl_program): New member multibyte.
1845
1846 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
1847
c371f69a
KH
18482000-08-11 Kenichi Handa <handa@etl.go.jp>
1849
1850 * regex.c (regex_compile) <normal_char>: Pay attention to
1851 multibyteness.
1852 (analyse_first) <exactn>: Setup fastmap correctly for
1853 eight-bit-control characters.
1854
18552000-08-11 Kenichi Handa <handa@etl.go.jp>
1856
1857 * termhooks.h (enum event_kind): New member
1858 multibyte_char_keystroke.
1859
1860 * keyboard.c (make_lispy_event): Handle the new event type
1861 multibyte_char_keystroke.
1862
1863 * xterm.c: Include coding.h.
1864 (XTread_socket): Work around a bug of XmbLookupString. If the
1865 input is from XIM, decode it according to the current locale. In
1866 that case, generate multibyte_char_keystroke events.
1867
b8ddbe71
KH
18682000-08-11 Kenichi Handa <handa@etl.go.jp>
1869
1870 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
1871 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
1872
47589c8c
GM
18732000-08-10 Gerd Moellmann <gerd@gnu.org>
1874
1875 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
1876 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
1877 (move_it_in_display_line_to): Record iterator's ascent and descent
1878 before producing glyphs, and restore them when we know the glyph
1879 doesn't fit on the line.
1880 (move_it_to): Restructured so that it's easier to debug. If
1881 moving to a vpos, and not moving to an x or character position,
1882 stop as soon as the specified vpos is reached; don't move further
1883 into that line because that might change the computed line height.
1884 (try_cursor_movement): New function, extracted from the cursor
1885 movement branch of redisplay_window. If ending on a partially
1886 visible line, don't try to scroll if the cursor line is taller
1887 than the window.
1888 (redisplay_window): Use try_cursor_movement.
1889
1890 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
1891 because that function doesn't cope with variable-height lines.
1892
1893 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
1894 box cursor because that's better visible for large images.
1895
c51bacd6
MB
18962000-08-10 Miles Bader <miles@gnu.org>
1897
1898 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
1899
bea56df7
GM
19002000-08-10 Gerd Moellmann <gerd@gnu.org>
1901
1902 * xdisp.c (Vmessages_buffer_name): New variable.
1903 (message_dolog): Use it.
1904 (syms_of_xdisp): Initialize it.
1905
99cd7364
EZ
19062000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1907
1908 * msdos.c (IT_note_mouse_highlight): Update the calls to
1909 overlays_at.
1910 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
1911 redundant now that keyboard.h is included.
1912
7d093d56
EZ
19132000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
1914
1915 * keyboard.c (kbd_buffer_events_waiting): New function.
1916
1917 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
1918
1919 * msdos.c: Include keyboard.h.
1920 (XMenuActivate): Empty no_event events from the event buffer. If
1921 no events are left after that, call clear_input_pending.
1922 (mouse_clear_clicks): New function, code moved from mouse_init.
1923 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
1924 mouse driver to ``forget'' any past clicks.
1925
1926 * Makefile.in (msdos.o): Depend on keyboard.h.
1927
41e757a6
GM
19282000-08-09 Gerd Moellmann <gerd@gnu.org>
1929
8e7bd231
GM
1930 * lisp.h (input_pending): External declaration.
1931
1932 * dispextern.h (Qredisplay_dont_pause): Declare extern.
1933
1934 * xdisp.c (echo_area_display): Display thoroughly if input is
1935 pending. Bind redisplay-dont-pause to t during the redisplay.
1936 in case input is pending.
1937
1938 * dispnew.c (Qredisplay_dont_pause): New variable.
1939 (syms_of_display): Initialize and staticpro it.
1940 (update_frame_1): Don't interrupt the display for pending input if
1941 redisplay_dont_pause is set.
1942
43028b7e
GM
1943 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
1944
41e757a6
GM
1945 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
1946
2f2174fa
KH
19472000-08-09 Miles Bader <miles@lsi.nec.co.jp>
1948
1949 * callproc.c (Fcall_process): Terminate the unwind-protect around
1950 the post-read-conversion of coding system.
1951
0a6fd67e
MB
1952 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
1953 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
1954 * buffer.h (overlays_at): Update prototype.
1955 * xdisp.c (next_overlay_change): Update call to overlays_at.
1956 * xfaces.c (face_at_buffer_position): Likewise.
1957 * textprop.c (Fget_char_property): Likewise.
1958 * xterm.c (note_mouse_highlight): Likewise.
1959
0c80756e
MB
1960 * minibuf.c (do_completion): Don't consider a simple change of
1961 case as `completion'.
1962
975f250a
KR
19632000-08-08 Ken Raeburn <raeburn@gnu.org>
1964
b347b3fd
KR
1965 * keyboard.c (syms_of_keyboard): Initialize
1966 last_point_position_buffer.
1967 * undo.c (record_delete): Make sure last_point_position_buffer is
1968 a buffer before comparing pointers.
1969
1970 * coding.h (decode_coding_string): Declare.
1971
1972 * intervals.h (Fprevious_single_char_property_change): Declare.
1973
1974 * textprop.c (Fprevious_single_char_property_change): Don't do
1975 arithmetic directly on lisp objects.
1976
25ad1371 1977 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
1978 objects.
1979
1980 * keyboard.h (menu_item_eval_property): Declare.
1981
1982 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
1983 reuse as buffer name, instead of recreating (and discarding) every
1984 time a message is logged.
1985 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
1986 (current_message_1, truncate_message_1, set_message_1)
1987 (display_echo_area_1, resize_mini_window_1): Signatures changed.
1988 (current_message, truncate_echo_area, display_echo_area)
1989 (resize_echo_area_axactly): Changed calls.
b347b3fd 1990
975f250a 1991 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 1992 Lisp object.
975f250a 1993 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 1994 must be an integer, not a Lisp object.
975f250a 1995
46dc9912
KH
19962000-08-08 Kenichi Handa <handa@etl.go.jp>
1997
1998 * charset.c (Fchar_width): Doc fix.
1999
9f6d1a6c
GM
20002000-08-08 Gerd Moellmann <gerd@gnu.org>
2001
2002 * charset.c (Fstring_width): Doc fix.
2003
ff3d9573
GM
20042000-08-07 Gerd Moellmann <gerd@gnu.org>
2005
41e757a6 2006 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
2007 line, clear ascent and descent members of the iterator structure;
2008 the height of the continued line does not affect the height of the
2009 continuation line.
2010 (make_cursor_line_fully_visible): Do nothing if cursor is on a
2011 line taller than the window.
2012 (redisplay_window) <forced window start>: Handle case that the
2013 middle of the window is not found in any row.
2014 (dump_glyph_row): Show more information.
2015 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
2016 first text line in a glyph matrix.
2017
2018 * xterm.c (x_draw_image_foreground): Avoid drawing outside
2019 of the clip area when image doesn't have a mask.
2020
70fc58b3
GM
2021 * fns.c (sweep_weak_table): Fix survival conditions for
2022 key-or-value and key-and-value weakness.
2023
2024 * .gdbinit (xhashtable): New command.
2025
ac0e96ee
GM
2026 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
2027 tables out of the list of all weak hash tables.
2028
ff3d9573
GM
2029 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
2030 a new buffer is created, make sure echo_area_buffer[] references
2031 the new buffer.
2032
e0d8827b
EZ
20332000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
2034
2035 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
2036 the doc string.
2037
c6f35378
KH
20382000-08-07 Kenichi Handa <handa@etl.go.jp>
2039
2040 * syntax.c (skip_chars): Fix previous change. Make the handling
2041 of unibyte string consistent with that of regex search.
2042
1fd4c450
GM
20432000-08-05 Gerd Moellmann <gerd@gnu.org>
2044
e49aa397
GM
2045 * xmenu.c (popup_get_selection): Use xfree instead of free.
2046
2047 * fileio.c (Finsert_file_contents): Use xfree instead of free.
2048
2049 * editfns.c (Ftranspose_regions): Use xfree instead of free.
2050
2051 * callproc.c (child_setup): Use xfree instead of free.
2052
2053 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
2054 instead of malloc.
2055 (run_mac_command, closedir): Use `xfree' instead of `free'.
2056
2057 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
2058
2059 * eval.c (error): Use xfree instead of free.
2060
1fd4c450
GM
2061 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
2062
2063 * fns.c: Replace `illegal' with `invalid'.
e49aa397 2064 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 2065
82d497fc
KH
20662000-08-05 Kenichi Handa <handa@etl.go.jp>
2067
2068 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
2069 conversion.
2070
59f953a2
NF
20712000-08-04 Noah Friedman <friedman@splode.com>
2072
2073 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
2074 docstring.
2075
688351f2
GM
20762000-08-04 Gerd Moellmann <gerd@gnu.org>
2077
2078 * syntax.c (skip_chars): Fix typo in error message.
2079
2dad51cc
AS
20802000-08-04 Andreas Schwab <schwab@suse.de>
2081
2082 * m/ia64.h: Moved from s/ia64.h.
2083
99bb2c60
KH
20842000-08-04 Kenichi Handa <handa@etl.go.jp>
2085
082a1df2
KH
2086 * process.c (read_process_output): Big simplification. Handle
2087 composition and post-read-conversion of coding system correctly.
2088 (send_process): Handle composition correctly.
2089
2090 * callproc.c (Fcall_process): Handle post-read-conversion of
2091 coding system if any.
2092
99bb2c60
KH
2093 * coding.c (decode_coding_iso2022): More strict check for handling
2094 single shifting.
082a1df2
KH
2095 (coding_restore_composition): Pay attention to the case that
2096 cmp_data is not set properly (because of invalid code in the
2097 source text).
2098 (run_pre_post_conversion_on_str): Include text properties in the
2099 resulting string.
2100 (decode_coding_string): Set members of coding correctly.
99bb2c60 2101
f4988be7
GM
21022000-08-03 Gerd Moellmann <gerd@gnu.org>
2103
2104 * s/ia64.h: New file.
2105
2106 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
2107 Use NULL instead of 0 at the end of variable argument list of
2108 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
2109 sizeof (int) < sizeof (void *).
2110
2111 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
2112 of variable argument lists of XtVaGetValues and XtVaSetValues.
2113
2114 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
2115 variable argument lists of XtVaGetValues and XtVaSetValues.
2116
ead53494
GM
21172000-08-02 Gerd Moellmann <gerd@gnu.org>
2118
2119 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
2120 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
2121
2122 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
2123 prototype.
2124
2125 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
2126 in call to Fsingle_key_description.
2127
2128 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
2129 Callers changed.
2130
21312000-08-02 Colin Walters <walters@cis.ohio-state.edu>
2132
2133 * window.c (display_buffer_reuse_frames): New variable.
2134 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
2135 frames displaying BUFFER.
2136 (syms_of_window): Define Lisp variable
2137 display-buffer-reuse-frames.
2138
10b0f752
MB
21392000-08-01 Miles Bader <miles@gnu.org>
2140
2141 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
2142 when to constrain NEW_POS (they were pretty screwed up before).
2143
16425c4a
EZ
21442000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
2145
2146 * msdos.c (run_msdos_command): Save and restore the master
2147 environment, for the case that child_setup signals an error.
2148 When mirroring slashes in DOS shell commands, don't fail when
2149 argv[2] has embedded blanks.
da288c14
EZ
2150 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
2151 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
2152 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
2153
2154 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
2155 using alloca; free it after run_msdos_command returns.
2156
27f73852
DL
21572000-07-27 Dave Love <fx@gnu.org>
2158
2159 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
2160 define.
2161 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
2162 working.
2163
2164 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
2165
c0261b5e
EZ
21662000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
2167
2168 * editfns.c (lisp_time_argument): Fix last change.
2169
b548072f
GM
21702000-07-27 Gerd Moellmann <gerd@gnu.org>
2171
3ab82477
GM
2172 * fns.c (Fdelete): Make it work on vectors and strings in addition
2173 to lists.
2174
b548072f
GM
2175 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
2176 (syms_of_fns): Initialize new variables.
2177 (sweep_weak_table): Handle weakness `key-or-value' and
2178 `key-and-value'.
2179 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
2180 weakness, with t meaning the same as `key-and-value'.
2181
91ae8751
KH
21822000-07-27 Kenichi Handa <handa@etl.go.jp>
2183
2184 * coding.h (struct coding_system): Member safe_charset deleted.
2185
2186 * coding.c (Qsafe_charsets): This variable deleted.
2187 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
2188 variables.
2189 (coding_safe_chars): New function.
2190 (CODING_SAFE_CHAR_P): New macro.
2191 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
2192 checking safe_charsets member of the coding system. Caller
2193 changed.
2194 (detect_coding_iso2022): New local variable safe_chars.
2195 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
2196 safe_charsets member of the coding system.
2197 (decode_coding_iso2022): New local variable safe_chars.
2198 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
2199 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
2200 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
2201 (ENCODE_UNSAFE_CHARACTER): New macro.
2202 (encode_coding_iso2022): New local variable safe_chars. Check
2203 unsafe chars.
2204 (setup_coding_system): Delete the code to initialize
2205 coding->safe_charses
2206 (intersection, find_safe_codings): New functions.
2207 (Ffind_coding_systems_region_internal): New function.
2208 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
2209 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
2210 variable and initialize it.
2211
2212 * fns.c (char_table_ref_and_index): New function.
2213
2214 * lisp.h (char_table_ref_and_index): Add prototype.
2215
34a7a267
SS
22162000-07-26 Sam Steingold <sds@gnu.org>
2217
2218 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 2219 (Ffloat_time): New built-in Lisp function.
34a7a267 2220
a95cb10a
GM
22212000-07-26 Gerd Moellmann <gerd@gnu.org>
2222
3353ef5a
GM
2223 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
2224 for the character code.
2225
2226 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
2227 GNU/Linux.
2228
a95cb10a
GM
2229 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
2230 if called for a popup menu.
2231 (xmenu_show): Store help string in widget values.
2232
b4a12321
DL
22332000-07-26 Dave Love <fx@gnu.org>
2234
2235 * syswait.h: Move some definitions.
2236 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
2237 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
2238 perspicuous definitions.
2239 (WTERMSIG): Fix bit pattern used.
2240
13f5ad37
KH
22412000-07-26 Kenichi Handa <handa@etl.go.jp>
2242
2243 * print.c (print_object): If vector printing is truncated, print
2244 "..." to indicate it as well as the case of list printing.
2245
070fe99c
GM
22462000-07-25 Gerd Moellmann <gerd@gnu.org>
2247
969065c3
GM
2248 * xdisp.c (next_element_from_display_vector): Improve comments.
2249
2250 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
2251 for the character code, and the rest for the face id as in 20.x.
2252 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
2253
2254 * window.c (window_display_table): Cleaned up.
2255
070fe99c
GM
2256 * syntax.c (Fforward_word): Add last arg nil in call of
2257 Fconstrain_to_field.
2258
bad77ef7
EZ
22592000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
2260
969065c3 2261 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
2262 identical but for the letter-case, don't call
2263 barf_or_query_if_file_exists.
2264
c28da489
MB
22652000-07-25 Miles Bader <miles@gnu.org>
2266
2267 * editfns.c (find_field): Honor special `boundary' fields.
2268 (Qboundary): New variables.
2269 (syms_of_editfns): Initialize Qboundary.
2270 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
2271 Use scan_buffer instead of find_before_next_newline, because it
2272 allows us to detect the boundary case where there's a newline at
2273 the search limit.
2274 * lisp.h (Fconstrain_to_field): Update external declaration.
2275
e3c31fd5
GM
22762000-07-24 Gerd Moellmann <gerd@gnu.org>
2277
2278 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
2279 if that is nil.
c28da489 2280
c66c29a2
DL
22812000-07-24 Dave Love <fx@gnu.org>
2282
2283 * s/sunos4-0.h, s/sol2.h:
2284 (LIBS_TERMCAP): Move from m/sparc.h.
2285
2286 * m/sparc.h (TERMINFO): Moved to system files (probably only
2287 relevant for sunos4 judging by its vintage).
2288 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
2289 __arch64__.
2290
fbe0a958
EZ
22912000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
2292
2293 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
2294 name to single_keymap_panes.
2295
7d88e5c9
AS
22962000-07-24 Andreas Schwab <schwab@suse.de>
2297
2298 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
2299
e024b101
GM
23002000-07-24 Gerd Moellmann <gerd@gnu.org>
2301
2302 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
2303 parameters instead of using int parameters. Expect FN to accept
2304 EMACS_INT parameters.
2305 (display_echo_area, resize_echo_area_axactly, current_message)
2306 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
2307 with new argument list.
2308 (resize_mini_window_1): New callback function.
2309 (current_message_1, truncate_message_1, set_message_1): Change
2310 parameter lists to the new format expected by
2311 with_echo_area_buffer.
2312
25c1a9ce
KH
23132000-07-24 Kenichi Handa <handa@etl.go.jp>
2314
2315 * fontset.c (fontset_ref): Remove INLINE declaration.
2316 (fontset_ref_via_base): Likewise.
2317 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
2318 to downcase.
2319
7f987ac0
EZ
23202000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
2321
2322 * msdos.c (IT_note_mouse_highlight): Process overlays in the
2323 correct order of priority. If help echo was found in an overlay,
2324 use that overlay as the object in which the help echo was found.
2325
e2db3069
MB
23262000-07-22 Miles Bader <miles@gnu.org>
2327
2328 * textprop.c (Fprevious_single_char_property_change): The initial
2329 property value should be from the position preceding POSITION, not
2330 following it.
2331
5e3203e4
EZ
23322000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
2333
2334 * coding.c (syms_of_coding): Doc fix for
2335 inhibit-iso-escape-detection.
2336
62145073
GM
23372000-07-21 Gerd Moellmann <gerd@gnu.org>
2338
c20aeb83
GM
2339 * xterm.c (note_mouse_highlight): Process overlays in the right
2340 order of priority.
34a7a267 2341
743934db
GM
2342 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
2343
2344 * xterm.c (note_mouse_highlight): If help-echo was found in an
2345 overlay, use that overlay as the object in which the help was
2346 found.
2347
d1dc7e43 2348 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 2349
62145073
GM
2350 * window.c (foreach_window): Instead of a fake variable argument
2351 list, take one USER_DATA argument.
2352 (foreach_window_1): Likewise, and call callback functions with two
2353 args, the window and USER_DATA.
2354 (struct check_window_data): New struct.
2355 (check_window_containing): Use it.
2356 (window_from_coordinates): Set up a struct check_window_data for
2357 foreach_window.
2358 (add_window_to_list, freeze_window_start): Change parameters
2359 according to new calling convention.
2360
2361 * window.h (foreach_window): Change prototype.
2362
2363 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
2364
23652000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
2366
2367 * xmenu.c (menu_help_callback): Call show_help_echo with
2368 additional arguments OBJECT and POS.
2369
11270583
KH
23702000-07-21 Kenichi Handa <handa@etl.go.jp>
2371
07b14857
KH
2372 * data.c (Faset): Allow storing any multibyte character in a
2373 string. Convert unibyte string to multibyte if necessary.
2374
11270583
KH
2375 * xfns.c (x_encode_text): New function.
2376 (x_set_name): Use x_encode_text.
2377 (x_set_title): Likewise.
2378
2379 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
2380
2381 * xterm.h (x_encode_text): Add prototype.
2382
bc75b4fd
DL
23832000-07-20 Dave Love <fx@gnu.org>
2384
2385 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
2386 xfree, not free.
2387
48c14970
EZ
23882000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
2389
2390 * msdos.c (help_echo_window): New variable.
2391 (syms_of_msdos): Initialize and staticpro it.
2392 (IT_note_mode_line_highlight): Set help_echo_window.
2393 (IT_note_mouse_highlight): Ditto.
2394 (dos_rawgetc): Store help_echo_window in the second event produced
2395 for HELP_EVENTs.
2396
2397 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
2398 Record the object that generated the help echo and the position of
2399 that object in help_echo_object and help_echo_pos. Record that
2400 some glyphs in a row are displayed in mouse-face.
2401 (IT_update_begin): Don't clear mouse highlight unless one of the
2402 enabled glyph rows is marked as being displayed in mouse-face.
2403 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
2404 and position recorded in help_echo_object and help_echo_pos to the
2405 event queue.
2406 (IT_menu_display): Accept a new argument PN: the pane number of
2407 the current menu pane. Record the pane number and the item
2408 number of the item which has associated help string.
2409 (XMenuActivate): Update the prototype for help_callback in
2410 function declaration. Call IT_menu_display with the current menu
2411 pane number as an additional argument. Call help_callback with
2412 two additional arguments: the pane number and the item number of
2413 the menu item associated with the help text.
2414 (help_echo_object, help_echo_pos): New variables.
2415 (syms_of_msdos): Initialize them and staticpro help_echo_object.
2416
2417 * msdos.h (XMenuActivate): Update prototype.
2418
4279296d
GM
24192000-07-19 Gerd Moellmann <gerd@gnu.org>
2420
47db06aa
GM
2421 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
2422 Add some more prototypes.
2423
2424 * xterm.c, xterm.h: Add some more prototypes.
2425
2426 * lisp.h (Fnext_single_char_property_change): Add prototype.
2427
2428 * dispnew.c (direct_output_for_insert): Remove confusing
2429 outer local variable mouse_face_overwritten_p.
2430 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
2431
4279296d
GM
2432 * alloc.c (allocate_string_data): Don't copy old string contents.
2433
670acd62
KH
24342000-07-19 Kenichi Handa <handa@etl.go.jp>
2435
2436 * coding.c (code_convert_region): Delete text properties before
2437 shrinking the conversion region.
2438
7cea38bc
GM
24392000-07-18 Gerd Moellmann <gerd@gnu.org>
2440
dc1cac59
GM
2441 * dispnew.c (update_text_area): Write the whole row if it
2442 has mouse-face in it.
2443
85a8aca9
GM
2444 * xfaces.c (face-alternative-font-family-alist): Remove
2445 DEFVAR_LISP; staticpro instead.
2446
34a7a267 2447 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
2448 new arguments.
2449
2450 * keyboard.c (show_help_echo): Add parameter WINDOW.
2451 (read_char): Call show_help_echo with window extracted from Lisp
2452 help event.
2453 (gen_help_event): Add parameter WINDOW.
2454
2455 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
2456
2457 * xterm.c (help_echo_window): New variable.
2458 (note_mouse_highlight, note_tool_bar_highlight): Set
2459 help_echo_window.
2460 (XTread_socket): Pass help_echo_window to gen_help_event.
2461 (syms_of_xterm): Initialize and staticpro help_echo_window.
2462
f8276b77
DL
24632000-07-18 Dave Love <fx@gnu.org>
2464
2465 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
2466 systime.h.
2467
088831a6
GM
24682000-07-18 Gerd Moellmann <gerd@gnu.org>
2469
3d6cd763
GM
2470 * alloc.c (allocate_string_data): If string had already data
2471 assigned, copy old contents to new string data.
2472
2473 * coding.c (syms_of_coding): Fix typo in spelling of variable
2474 `inhibit-iso-escape-detection'.
2475
088831a6
GM
2476 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
2477
2478 * Makefile.in: Add dependencies on dispextern.h.
2479 (alloca.o): Don't define malloc and define EMACS_FREE instead of
2480 `free'; both can conflict with system header files.
2481
bc8a8d55
KH
24822000-07-18 Kenichi Handa <handa@etl.go.jp>
2483
2484 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
2485 undefined.
2486
069f5950
DL
24872000-07-18 Dave Love <fx@gnu.org>
2488
2489 * window.c (Fwindow_list): Declare arg `window'.
2490
aa96c820
KH
24912000-07-18 Kenichi Handa <handa@etl.go.jp>
2492
2493 * coding.c (setup_coding_system): Don't override the explicitly
2494 specified designations.
2495
06be8d32
MB
24962000-07-15 Miles Bader <miles@gnu.org>
2497
2498 * editfns.c (char_property_eq, char_property_stickiness): Renamed
2499 from `text_property_eq' and `text_property_stickiness', respectively.
2500 (find_field, Fconstrain_to_field, char_property_eq)
2501 (char_property_stickiness): Changed to call char-property functions
2502 instead of text-property-only ones.
2503
2504 * textprop.c (Fnext_single_char_property_change): Made a subr (was
2505 `next_single_char_property_change'). Do more error checking, and
2506 cleanup limit behavior.
2507 (Fprevious_single_char_property_change): New function.
2508 (syms_of_textprop): Initialize new subrs.
2509
2510 * xdisp.c (display_prop_end, invisible_text_between_p):
2511 Call Fnext_single_char_property_change instead of
2512 next_single_char_property_change.
2513
3fddcdc3
JR
25142000-07-15 Jason Rumney <jasonr@gnu.org>
2515
2516 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
2517 after menu is finished with.
2518 (add_menu_item): Only consider wv->title as a menu title.
2519 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
2520
2521 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
2522 null title.
2523 (FONT_REGEXP): Remove unused macro, and its sub-components.
2524 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
2525
2526 * w32term.c (help_echo_object, help_echo_pos): New variables.
2527 (note_mode_line_highlight): Store additional information about the
2528 help-echo in help_echo_object and help_echo_pos. Check both
2529 `local-map' and `keymap' properties for changing the cursor
2530 (note_mouse_highlight): Store additional information about the
2531 help-echo in help_echo_object and help_echo_pos.
2532 (note_tool_bar_highlight): Set help_echo_object to nil and
2533 help_echo_pos to -1.
2534 (w32_read_socket): Use gen_help_event instead of filling
2535 input_events manually.
2536 (syms_of_w32term): Staticpro help_echo_object.
2537 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
2538 set, arrange for a mouse-highlight redisplay in
2539 XTframe_up_to_date.
2540 (x_clear_mouse_face): New function.
2541 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
2542 (x_update_window_begin): No need to turn off the mouse
2543 highlight here.
2544 (show_mouse_face): Set the mouse_face_p flag of glyph rows
2545 depending on whether they contain glyphs highlighted in
2546 mouse-face.
2547 (x_fill_stretch_glyph_string): Consume runs of stretch
2548 glyphs instead of a single one.
2549 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
2550 with new argument list.
2551 (x_set_glyph_string_gc): Make sure the face's GC is valid.
2552 (x_append_glyph, x_append_composite_glyph)
2553 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
2554 changes in struct glyph starting 1999-12-27. See comments for
2555 xterm.c on 2000-07-05.
2556
178c5d9c
SS
25572000-07-14 Sam Steingold <sds@gnu.org>
2558
2559 * xfaces.c (realize_x_face): Fix the last patch:
2560 check `default_face' before dereferencing.
2561
6fe533f6
DL
25622000-07-14 Dave Love <fx@gnu.org>
2563
069f5950 2564 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 2565
dd7b81cf
KH
25662000-07-14 Kenichi Handa <handa@etl.go.jp>
2567
0693904a 2568 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 2569 default_face's fontset, not using the default fontset.
0693904a 2570
dd7b81cf
KH
2571 * coding.c (inhibit_iso_escape_detection): New variable.
2572 (syms_of_coding): Make it a Lisp variable.
2573 (detect_coding_iso2022): If inhibit_iso_escape_detection is
2574 nonzero, ignore ISO2022's escape sequence.
2575
d5aa31d8
GM
25762000-07-14 Gerd Moellmann <gerd@gnu.org>
2577
e5acf0ca
GM
2578 * alloca.c (malloc) [emacs]: Define as xmalloc.
2579
bd23a692
GM
2580 * xfns.c (Fx_show_tip): If frame parameters contain a position,
2581 use that instead of the mouse position. Add parameters DX and DY.
2582
2583 * dispextern.h (Fx_show_tip): Adjust number of parameters
2584 in prototype.
2585
9662da0b
GM
2586 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
2587 if HELP is a function, call it with OBJECT and POS as parameters
2588 to get the help to display.
2589 (gen_help_event, kbd_buffer_store_help_event): New functions.
2590 (kbd_buffer_get_event): Construct the Lisp help-event differently.
2591 (read_char): Call show_help_echo with new parameters.
2592
178c5d9c 2593 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
2594 Add prototypes.
2595
2596 * xterm.c (help_echo_object, help_echo_pos): New variables.
2597 (note_mode_line_highlight): Store additional information about the
2598 help-echo in help_echo_object and help_echo_pos. Check both
2599 `local-map' and `keymap' properties for changing the cursor
2600 (note_mouse_highlight): Store additional information about the
2601 help-echo in help_echo_object and help_echo_pos.
2602 (note_tool_bar_highlight): Set help_echo_object to nil and
2603 help_echo_pos to -1.
2604 (XTread_socket): Use gen_help_event instead of filling
2605 input_events manually.
2606 (syms_of_xterm): Staticpro help_echo_object.
2607
2608 * xmenu.c (menu_highlight_callback): Use
2609 kbd_buffer_store_help_event instead of setting up and input_event
2610 structure manually.
2611
2612 * xdisp.c (eval_form): GCPRO argument sexpr.
2613 (call_function): New function.
2614 (handle_single_display_prop): Use call_function and FUNCTIONP
2615 instead of checking whether if font_height is a symbol and
2616 using eval_form.
2617
2618 * eval.c (internal_condition_case_2): New function.
2619
2620 * lisp.h (FUNCTIONP): New macro.
2621 (internal_condition_case_2, call_function): Add prototypes.
2622
d5aa31d8
GM
2623 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
2624 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
2625 Always set `arg' member of input_events.
2626 (construct_menu_click): Unused function removed.
2627
2628 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
2629
2630 * w32term.c (construct_mouse_click, construct_mouse_wheel)
2631 (construct_drag_n_drop, x_scroll_bar_handle_click)
2632 (w32_read_socket): Always set `arg' member of input_events.
2633
2634 * keyboard.c (show_help_echo): Use eval_form. Add comment.
2635
2636 * lisp.h (eval_form): Add prototype.
2637
2638 * xdisp.c (eval_form): Make it externally visible.
2639
0f1a9b23
GM
26402000-07-13 Gerd Moellmann <gerd@gnu.org>
2641
2642 * xterm.c (x_handle_tool_bar_click): Store the frame in the
2643 frame_or_window slot of TOOL_BAR_EVENT input events instead of
2644 consing. For prefix events, store the frame in the `arg' slot of
2645 the event, otherwise store the key there.
2646 (XTread_socket): Instead of consing, use the frame_or_window slot
2647 of HELP_EVENTs for the frame, and the `arg' slot for the help
2648 string.
2649
2650 * xmenu.c (menu_highlight_callback): Store help string in the
2651 `arg' member of the input event; don't cons.
2652 (menubar_selection_callback): Use the `arg' slot of input events
2653 to queue additional information, instead of consing.
2654
2655 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
2656
2657 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
2658 TOOL_BAR_EVENTs.
2659 (w32_read_socket): Adapt to changes in HELP_EVENTs.
2660
2661 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
2662 input events to queue additional information, instead of consing.
2663
2664 * keyboard.c (kbd_buffer_gcpro): Renamed from
2665 kbd_buffer_frame_or_window. Now used for all Lisp objects
2666 referenced from the input queue.
2667 (kbd_buffer_store_event): Always use structure assignment for
2668 copying input events. Record all Lisp objects referenced from
2669 events in kbd_buffer_gcpro.
2670 (kbd_buffer_get_event): Construct Lisp `help-echo' events
2671 differently from input events. Test for prefix menu_bar_events
2672 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
2673 event in kbd_buffer_gcpro to nil.
2674 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
2675 frame_or_window is equal to its arg member as prefix events.
2676 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
2677 used by an input event to nil.
2678 (init_keyboard): Use two times the size of the input queue
2679 for kbd_buffer_gcpro.
2680 (syms_of_keyboard): Likewise.
2681
2682 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
2683 USER_SIGNAL_EVENT.
2684
2685 * termhooks.h (struct input_event): Add member `arg'.
2686 (MENU_BAR_EVENT): Renamed from menu_bar_event.
2687 (USER_SIGNAL_EVENT): Renamed from user_signal.
2688
2689 * xfaces.c (ASET): Remove definition.
2690
2691 * lisp.h (AREF, ASET, ASIZE): New macros.
2692
2693 * fontset.c (AREF, ASIZE): Remove definitions.
2694
2695 * fns.c (AREF): Remove definition.
178c5d9c 2696
0f1a9b23
GM
2697 * composite.c (AREF): Remove definition.
2698
712eaef2
GM
26992000-07-12 Gerd Moellmann <gerd@gnu.org>
2700
d8ee7803
GM
2701 * dispnew.c (redraw_overlapped_rows): Add missing local.
2702 (scrolling_window): Remove debug code.
2703
712eaef2
GM
2704 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
2705 Before scrolling, turn off a mouse-highlight in the window
2706 being scrolled.
2707
2708 * xterm.c (x_update_window_end): Add parameter
2709 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
2710 redisplay in XTframe_up_to_date.
2711 (x_clear_mouse_face): New function.
2712 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
2713
2714 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
2715 current glyph row.
2716 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
2717 it when any row is written to that contains glyphs highlighted in
2718 mouse-face.
2719 (update_window): Call the window update end hook with new
2720 parameter MOUSE_FACE_OVERWRITTEN_P.
2721 (direct_output_for_insert): Give up if row contains mouse-face.
2722
2723 * dispextern.h (struct redisplay_interface): Add parameter
2724 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
2725 (clear_mouse_face): New function pointer member.
2726
02010917
SM
27272000-07-11 Stefan Monnier <monnier@cs.yale.edu>
2728
2729 * syntax.c (back_comment): Use one switch rather than a few `if's.
2730 Obey open_paren_in_column_0_is_defun_start.
2731 When reverting to the `slow' method, try to nicely handle the case
2732 of nested comments by checking that the comment-starter we found
2733 does indeed match the comment-ender.
2734 (scan_sexps_forward, scan_sexps_forward):
2735 Ignore excessive opening parenthesis rather than throwing an error.
2736
d76c03ea
GM
27372000-07-11 Gerd Moellmann <gerd@gnu.org>
2738
2739 * doc.c (Fsubstitute_command_keys): Handle case that a GC
2740 in Fwhere_is_internal or get_keymap_1 relocates string contents.
2741
2742 * dispnew.c (direct_output_forward_char): Give up if currently
2743 displaying a message instead of the minibuffer contents.
2744
2745 * xterm.c (x_update_window_begin): No need to turn off the mouse
2746 highlight here.
2747 (show_mouse_face): Set the mouse_face_p flag of glyph rows
2748 depending on whether they contain glyphs highlighted in
2749 mouse-face.
2750
2751 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
2752 compare the mouse_face_p flags of both rows.
2753
2754 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
2755
d55ead18
EZ
27562000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
2757
2758 * keyboard.c (show_help_echo): Accept additional parameter
2759 ok_to_overwrite_keystroke_echo.
2760 (read_char): Call show_help_echo with a zero
2761 ok_to_overwrite_keystroke_echo argument.
2762 * keyboard.h (show_help_echo): Update prototype of
2763 show_help_echo.
2764 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
2765 ok_to_overwrite_keystroke_echo argument.
2766 * w32menu.c (w32_menu_display_help): Call show_help_echo with
2767 non-zero ok_to_overwrite_keystroke_echo argument.
2768
df75b1a3
GM
27692000-07-10 Gerd Moellmann <gerd@gnu.org>
2770
4b92c49a
GM
2771 * xdisp.c (try_window_id): If changes are all below what is
2772 displayed in the window, and point is in the window, we still
2773 might have to find point on the display.
2774
2775 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
2776 glyphs instead of a single one.
2777 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
2778 with new argument list.
2779 (x_set_glyph_string_gc): Make sure the face's GC is valid.
2780
df75b1a3
GM
2781 * keymap.c (get_keymap_1): Add comment that this function can GC.
2782 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
2783 comment that functions can GC.
2784 (Fset_keymap_parent): GCPRO arg KEYMAP.
2785
4314cf3e
EZ
27862000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
2787
2788 * msdos.c (XMenuActivate): After exiting the menu, restore the
2789 echo area message and erase it.
2790
ab49ce15
KH
27912000-07-10 Kenichi Handa <handa@etl.go.jp>
2792
2793 * fontset.c (Ffontset_info): Make the return value more compatible
2794 with that of Emacs 20.
2795
090a072f
GM
27962000-07-07 Gerd Moellmann <gerd@gnu.org>
2797
2798 * eval.c (Fsignal): Handle case that backtrace_list is null.
2799
f92de4a6
KH
28002000-07-07 Kenichi Handa <handa@etl.go.jp>
2801
2802 * ccl.c (Fccl_execute): Typo fixed.
2803
dd8888a1
GM
28042000-07-06 Gerd Moellmann <gerd@gnu.org>
2805
e5c81191 2806 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 2807
dd8888a1
GM
2808 * window.c (Fwindow_list): Reverse list at the end.
2809 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
2810 means allow windows on OWINDOW's frame, only.
2811 (window_loop): Simplified; use Fwindow_list.
2812
2813 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
2814
485266d0
GM
28152000-07-05 Gerd Moellmann <gerd@gnu.org>
2816
2817 * xterm.c (XTread_socket): Increment handling_signal at the start,
2818 decrement it at the end.
2819
2820 * eval.c (handling_signal): New variable.
2821 (Fsignal): Abort if handling_signal is non-zero.
2822
2823 * lisp.h (handling_signal): External declaration.
178c5d9c 2824
485266d0
GM
2825 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
2826
80fcd514
KR
28272000-07-05 Ken Raeburn <raeburn@gnu.org>
2828
2829 Sound support for NetBSD through "Linux emulation" support:
2830 * config.in (HAVE_SOUNDCARD_H): Undef.
2831 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
2832 * Makefile.in (LIBSOUND): New variable.
2833 (LIBES): Include it.
2834 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
2835 <soundcard.h>.
2836 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
2837 elsewhere.
2838 (vox_open): Use DEFAULT_SOUND_DEVICE.
2839 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
2840
d5c5cddd
GM
28412000-07-05 Gerd Moellmann <gerd@gnu.org>
2842
2843 * print.c (print_error_message): If Vsignaling_function is set,
2844 show it in *Messages*.
2845
2846 * lisp.h (Vsignaling_function): External declaration.
2847
2848 * eval.c (Vsignaling_function): New variable.
2849 (Fsignal): Compute it.
2850 (syms_of_eval): Staticpro it.
2851
65171e3a
DL
28522000-07-05 Dave Love <fx@gnu.org>
2853
2854 * syswait.h: Use the autoconf recommended approach. Old code
2855 #if'd out in case we need to revert.
2856
178c5d9c 2857 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 2858
e2c46326
AI
28592000-07-05 Andrew Innes <andrewi@gnu.org>
2860
2861 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
2862 when non-NULL instead of __morecore, to take account of buffer
2863 memory. This also solves a problem with spurious memory warnings
2864 on Windows.
2865
2866 * ralloc.c: Make real_morecore non-static.
2867
2868 * eval.c (internal_condition_case): Comment out abort if
2869 interrupt_input_blocked is not zero.
2870
2871 * makefile.nt: Add support for `bootstrap' and related targets.
2872 Include minimal debug info in emacs.exe in release build.
2873 Remove all dependencies on lisp.h, and fixup some others.
2874
2875 * w32.c (init_environment): Install code from 20.7 for providing
2876 default values for environment variables, based on the
2877 executable's own location.
2878 (map_w32_filename): Handle filenames that are longer than
2879 MAX_PATH.
2880 (sys_socket): Install socket inheritance bug fix from 20.7.
2881
2882 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
2883 here via blockinput.h).
2884
a027a91b
SM
28852000-07-05 Stefan Monnier <monnier@cs.yale.edu>
2886
e4b31601
SM
2887 * w32menu.c (w32_menu_display_help):
2888 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
2889
2890 * keyboard.h (show_help_echo): Declare.
2891
2892 * keyboard.c (show_help_echo): New function, extracted from read_char.
2893 Feval its `msg' argument if it's a cons cell.
2894 (read_char): Use it.
4cf8d9d5 2895 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 2896
178c5d9c 2897 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 2898 (note_tool_bar_highlight, XTread_socket):
178c5d9c 2899 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
2900 (dos_rawgetc):
2901 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
2902 (note_tool_bar_highlight, w32_read_socket):
2903 Do not gratuitously ignore non-string `help-echo' properties.
2904
88d75730
GM
29052000-07-05 Gerd Moellmann <gerd@gnu.org>
2906
969f7e79
GM
2907 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
2908
71201b00
GM
2909 * window.c (delete_all_subwindows): Reset Vwindow_list.
2910
88d75730
GM
2911 * xterm.c (x_append_glyph, x_append_composite_glyph)
2912 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
2913 changes in struct glyph starting 1999-12-27. Some bit-fields of
2914 struct glyph were not set, which made glyphs unequal when compared
2915 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
2916 effects were the result. This also depended on the contents of
2917 memory returned by xmalloc. If flickering happens again, activate
2918 the code in clear_glyph_row that's in #if 0. If the flickering is
2919 gone with that, chances are that it is caused by something
2920 similar.
2921
2922 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 2923
88d75730
GM
2924 * dispextern.h: Add some comments.
2925
2926 * window.c (add_window_to_list): Add parameter LIST.
2927 (window_list): Order list so that, for each frame, windows are
2928 in canonical order, and so that frames appear in the list in
2929 the order given by Vframe_list.
2930 (next_window): Reverse the handling of NEXT_P.
2931
53654733
GM
29322000-07-04 Gerd Moellmann <gerd@gnu.org>
2933
87efd256
GM
2934 * window.c (Vwindow_list): New variable.
2935 (make_window, delete_window): Set Vwindow_list to nil.
2936 (check_window_containing): New function.
2937 (window_from_coordinates): Rewritten.
2938 (add_window_to_list, window_list, candidate_window_p)
2939 (decode_next_window_args, next_window): New functions.
2940 (Fnext_window, Fprevious_window): Rewritten in terms of
2941 next_window.
2942 (Fwindow_list): New function.
2943 (Fother_window): Cleaned up.
2944 (foreach_window): Add a longer "variable argument list". Let
2945 callback function return 0 to indicate that cycling over windows
2946 should stop.
2947 (foreach_window_1): Likewise.
2948 (freeze_window_start): Return int.
2949 (init_window): New function.
2950 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
2951
2952 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
2953 input_event with bzero.
2954 (main): Call init_window.
2955
53654733
GM
2956 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
2957 a menu filter.
2958
4a8c194f
KH
29592000-07-04 Kenichi Handa <handa@etl.go.jp>
2960
2961 * composite.h (make_composition_value_copy): Extern it.
2962
2963 * composite.c (make_composition_value_copy): New function.
2964
2965 * editfns.c (Fformat): While copying text properties, make each
2966 composition property value a copy.
2967
2968 * fns.c (concat): While copying text properties, make each
2969 composition property value a copy.
2970
831a6cb0
GM
29712000-07-03 Gerd Moellmann <gerd@gnu.org>
2972
2f516940
GM
2973 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
2974
178c5d9c 2975 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
2976 marked already.
2977
831a6cb0
GM
2978 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
2979 include those frames as candidates which have their focus
2980 redirected to the minibuffer frame.
2981
d9c4f922
SM
29822000-07-03 Stefan Monnier <monnier@cs.yale.edu>
2983
2984 * fns.c (Fputhash): Return `value' rather than nil.
2985
3780bc22
GM
29862000-06-30 Gerd Moellmann <gerd@gnu.org>
2987
97d176db
GM
2988 * frame.c (next_frame): Don't check focus redirection in case
2989 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
2990 unless their focus is redirected, which contradicts the
2991 specification of next-frame, and leads to infinite loops in
2992 certain situations when cycling through windows with next-window.
2993
dca9961d
KH
29942000-06-30 Kenichi Handa <handa@etl.go.jp>
2995
2996 * coding.c (code_convert_region): Even if the length of text is
2997 zero, try to convert it if coding->type is coding_type_ccl.
2998 (decode_coding_string, encode_coding_string): Likewise.
2999
d5483ab1
GM
30002000-06-28 Gerd Moellmann <gerd@gnu.org>
3001
af5c25e1 3002 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 3003 the display if windows_or_buffers_changed.
af5c25e1
GM
3004
3005 * dispnew.c (struct row_entry): New structure.
3006 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
3007 (row_table_size, old_lines, new_lines, old_lines_size)
3008 (new_lines_size, run_pool, runs_size, runs): New variables.
3009 (add_row_entry): New function.
3010 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 3011 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
3012 holding them in local variables. Use a larger hash table whose
3013 size depends on glyph matrix sizes. Don't use bzero to clear the
3014 hash table; instead, clear used slots only.
3015
3016 * fns.c (next_almost_prime): Make it externally visible.
3017
3018 * lisp.h (next_almost_prime): Add prototype.
3019
d5483ab1
GM
3020 * s/isc4-0.h (sigunblock): Define.
3021
3022 * s/sco5.h (sigunblock): Define.
3023
93e40f40
DL
30242000-06-27 Dave Love <fx@gnu.org>
3025
3026 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
3027 (moved to osf5-0.h).
3028 [!NOT_C_CODE]: Protect string.h stuff.
3029
3030 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
3031 (sys_siglist, NSIG): Definitions moved here from osf1.h.
3032
3c4b7685
GM
30332000-06-27 Gerd Moellmann <gerd@gnu.org>
3034
97d176db 3035 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
3036 below the last line from the needed window height.
3037
32cad0aa
SM
30382000-06-26 Stefan Monnier <monnier@cs.yale.edu>
3039
3040 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
3041 (Fwidget_get): Use it.
3042 (syms_of_fns): Defsubr it.
3043
2c69ced2
GM
30442000-06-26 Gerd Moellmann <gerd@gnu.org>
3045
178c5d9c 3046 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
3047 display info for XIM.
3048 (xim_open_dpy): Likewise.
3049 (xim_close_dpy): Don't free the display info's XIM.
3050
3051 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
3052
3053 * config.in (USE_XIM): New define.
3054
3fc720e4
GM
3055 * keymap.c (get_keyelt): For menu-items containing a `:filter
3056 FILTER', apply FILTER to the menu-item's definition to get the
3057 real definition to use.
3058
3059 * lisp.h (QCfilter): External declaration.
3060
2c69ced2
GM
3061 * xfns.c (Fimage_size): New function.
3062 (syms_of_xfns): Defsubr it.
3063
f978b2a2
AS
30642000-06-26 Andreas Schwab <schwab@suse.de>
3065
3066 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
3067 Fstring_as_unibyte.
3068
94cc7892
DL
30692000-06-25 Dave Love <fx@gnu.org>
3070
3071 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
3072 tgetnum.
3073
3074 * Makefile.in (blockinput.h): Depend on atimer.h.
3075 (atimer.h): Depend on systime.h.
3076
3077 * blockinput.h: Protect against multiple inclusion. Include
3078 atimer.h.
3079
3080 * atimer.h: Protect against multiple inclusion. Include
3081 systime.h.
3082
3083 * lisp.h (swap_in_global_binding): Declare.
3084
b8c24556
KR
30852000-06-24 Ken Raeburn <raeburn@gnu.org>
3086
3087 * process.c (Fopen_network_stream): Turn off atimers for duration
3088 of call to connect. (Patch from Gerd.)
3089
8cf8560b
DL
30902000-06-23 Dave Love <fx@gnu.org>
3091
511c7541
DL
3092 * ralloc.c: Maybe include unistd.h
3093
8cf8560b
DL
3094 * emacs.c (setgrp): Undefine before defining.
3095 (malloc_warning, set_time_zone_rule, index): Prototype.
3096
3097 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
3098 HAVE_STRUCT_TIMEZONE.
3099
3100 * s/osf1.h: Move string.h hack here from alpha.h and make it
3101 conditional.
3102 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
3103 _XOPEN_SOURCE.
3104 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
3105 (SOCKLEN_TYPE): Don't define.
3106
3107 * m/alpha.h: Remove string.h hack.
3108
3109 * s/osf5-0.h: New file.
3110
3111 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
3112 include time.h, done by systime.h.
3113 [__FreeBSD__]: Remove redundant includes.
3114
3fc720e4 3115 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
3116 (delete_temp_file): Return Qnil to avoid warning.
3117
3118 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
3119
3120 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
3121 HAVE_X_WINDOWS.
3122
3123 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
3124
3125 * composite.h (compose_text): Declare.
3126
3127 * xterm.c: Don't include sys/types.h unconditionally. Don't
3128 protect its inclusion with !USG (following xmenu.c).
3129
ea055732
GM
31302000-06-23 Gerd Moellmann <gerd@gnu.org>
3131
3132 * xfns.c (x_create_tip_frame): Initialize frame's colors like
3133 in x_create_frame.
3134
74b01b80
EZ
31352000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
3136
3137 * coding.c (decode_eol_post_ccl): Special handling for undecided
3138 and inconsistent EOL types.
3139
64f3a166
GM
31402000-06-22 Gerd Moellmann <gerd@gnu.org>
3141
16cf31f7
GM
3142 * xrdb.c (x_load_resources): Add default resource for scroll bar's
3143 trough color and main window's background color.
3144
178c5d9c 3145 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
3146 differently.
3147
3148 * xterm.h (Xt_app_con): External declaration.
3149
3150 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 3151
486a103d
GM
3152 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
3153
64f3a166
GM
3154 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
3155 (handle_invisible_prop): Record the start of invisible text in
3156 it->add_overlay_start.
3157 (struct overlay_entry): Add member `overlay'.
3158 (handle_overlay_change): Simplify.
3159 (next_overlay_string): After having processed overlay strings at the
3160 end of the buffer, record that fact in
3161 it->overlay_strings_at_end_processed_p.
3162 (compare_overlay_entries): If before- and after-strings come
3163 from the same overlay, let before-strings come first.
3164 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
3165 (load_overlay_strings): Take it->add_overlay_start into account
3166 when adding overlay strings.
3167
3168 * dispextern.h (struct it): Add member add_overlay_start.
3169
bb746ea6
DL
31702000-06-22 Dave Love <fx@gnu.org>
3171
3172 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
3173
3174 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
3175
a8f573f3
KH
31762000-06-22 Kenichi Handa <handa@etl.go.jp>
3177
3178 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
3179 is greater than 0.
3180
9f2bbc92
DL
31812000-06-21 Dave Love <fx@gnu.org>
3182
178c5d9c 3183 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 3184
3ee5041c
SM
31852000-06-21 Stefan Monnier <monnier@cs.yale.edu>
3186
3187 * syntax.c (back_comment): Simplify string-parity counting (with
3188 the added benefit of handling multiple string-styles as long as
3189 they are not intertwined).
3190 Jump to the slow code as soon as a comment starter is found in
3191 a "string_lossage" position. Fixes the case: " /* " /* " */.
3192
4c343001
DL
31932000-06-21 Dave Love <fx@gnu.org>
3194
3195 * Makefile.in: Use GETLOADAVG_LIBS.
3196
3197 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
3198 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
3199
e6365855
SM
32002000-06-20 Stefan Monnier <monnier@cs.yale.edu>
3201
3202 * syntax.c (describe_syntax): Recognize the `n'estable bit.
3203 (Fforward_comment, scan_lists):
3204 Check the comstyle of single-char comment-starters.
3205 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
3206 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
3207 Check the comstyle of single-char comment-starters.
3208 Clarify control-flow around the Scomment case.
e6365855 3209
5700d2cc
DL
32102000-06-20 Dave Love <fx@gnu.org>
3211
d355bd8a
SM
3212 * fns.c (make_hash_table, maybe_resize_hash_table):
3213 Cast arg of next_almost_prime.
5700d2cc 3214
178c5d9c 3215 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
3216
3217 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
3218 and unistd.h.
3219
4a27bdfb
GM
32202000-06-20 Gerd Moellmann <gerd@gnu.org>
3221
a61d762c
GM
3222 * keyboard.c (adjust_point_for_property): Check if display
3223 property should be treated as intangible by looking at its
3224 value.
3225
178c5d9c 3226 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
3227 (display_prop_intangible_p): New functions.
3228
3229 * dispextern.h (display_prop_intangible_p): Add prototype.
3230
3231 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 3232
4a27bdfb
GM
3233 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
3234 argument to sigprocmask.
3235
3236 * s/sco5.h (sigblock): Redefined to pass a pointer as second
3237 argument to sigprocmask.
3238
3239 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
3240 sigprocmask_set, and pass a pointer to it to sigprocmask.
3241
3242 * sysdep.c (sigprocmask_set): New variable.
3243
3244 * fileio.c (make_temp_name): Don't use `%s' in string passed to
3245 report_file_error.
3246
427ec082
SS
32472000-06-20 Sam Steingold <sds@gnu.org>
3248
3249 * xrdb.c: Don't declare xmalloc, xrealloc.
3250
8972fe79 32512000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
3252
3253 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
3254 (re_comp): Cast gettext return value to avoid complaints when
3255 !HAVE_LIBINTL.
3256
074b6efe
DL
32572000-06-20 Dave Love <fx@gnu.org>
3258
f85c008a
DL
3259 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
3260 HAVE_GETTIMEOFDAY.
3261
5700d2cc 3262 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 3263
d355bd8a 3264 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
3265
3266 * m/alpha.h: Don't declare xmalloc, xrealloc.
3267
0af4f205
DL
3268 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
3269
3270 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
3271
3272 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
3273
3274 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
3275 HAVE_GETWD.
3276
074b6efe
DL
3277 * keyboard.h (poll_for_input_1): Declare.
3278
3279 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
3280
3281 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
3282
3283 * doprnt.c: Don't declare xmalloc, xrealloc.
3284
3285 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
3286 (getenv, ctime, getwd): Removed.
3287 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
3288
3289 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
3290 x_set_tool_bar_lines.
3291
3292 * config.in: Add HAVE_GETWD. Move some definitions above
3293 machine/system includes.
3294
68a5e97b
KH
32952000-06-20 Kenichi Handa <handa@etl.go.jp>
3296
95417e1e
KH
3297 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
3298
68a5e97b
KH
3299 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
3300 contain information about ENCODING.
3301
3302 * fontset.c (FONTSET_ASCII): Use the first element of char table
3303 for an ASCII font, not defalt slot.
3304 (fontset_ref_via_base): If FONTSET doesn't contain information for
3305 C, try the default fontset.
3306 (make_fontset): Don't copy the default fontset.
3307 (fontset_font_pattern): Likewise.
3308 (accumulate_font_info): If ELT is nil, use the corresponding
3309 element in the default fontset.
3310
3b4fa1b2
DL
33112000-06-19 Dave Love <fx@gnu.org>
3312
943e731c
DL
3313 * syntax.c (Fparse_partial_sexp): Doc fix.
3314
3315 * regex.h: Test PROTOTYPES as well as __STDC__.
3316
3b4fa1b2
DL
3317 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
3318 errno, strerror. Put text after #endif in comment.
3319
3320 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
3321 pcc).
3322
3323 * xterm.c (x_frame_of_widget): Likewise.
3324
cdf0357b
GM
33252000-06-19 Gerd Moellmann <gerd@gnu.org>
3326
3327 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
3328 to Vfundamental_mode_abbrev_table.
3329
3330 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
3331 bogus objects are marked. This slows down GC by ~80 percent, but
3332 it might be worth trying when debugging GC-related problems.
3333 This feature requires conservative stack marking to be enabled.
3334
3335 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
3336 returns XLookupChars, reset `modifiers' to zero.
3337
998e9f8c
DL
33382000-06-19 Dave Love <fx@gnu.org>
3339
3340 * mktime.c: Unprotoized.
3341
18e21ce8 33422000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
3343
3344 * data.c (set_internal): If variable is frame-local,
3345 store the new value immediately into the frame parameter alist.
3346
140c4ac6
KR
33472000-06-19 Ken Raeburn <raeburn@gnu.org>
3348
14358466
KR
3349 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
3350 in the custom handler pointer.
3351
140c4ac6
KR
3352 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
3353 value, or checks for CHAR_META can fail when Lisp_Object is a
3354 union type.
3355 * keymap.c (get_keyelt): Likewise.
3356
10d7bf84
KH
33572000-06-19 Kenichi Handa <handa@etl.go.jp>
3358
3359 * ccl.h (struct ccl_program): New member eol_type.
3360 (struct ccl_spec): New member cr_carryover.
3361
3362 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
3363 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
3364
3365 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
3366 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
3367 (decode_eol_post_ccl): New function.
3368 (decode_coding): Don't detect EOL format here for CCL based coding
3369 systems.
3370 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
3371 decode_eol_post_ccl after running the CCL program.
3372 (code_convert_region): Don't detect EOL format here for CCL based
3373 coding systems.
3374 (decode_coding_string): Likewise.
3375
52e386c2
KR
33762000-06-18 Ken Raeburn <raeburn@gnu.org>
3377
3378 * charset.c (update_charset_table): Use XINT on "iso_final_char"
3379 when treating it as an integer.
3380
3381 * coding.h (encode_coding_string): Declare.
3382
3383 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
3384 it as an integer.
3385
3386 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
3387 "xkeymap" to avoid shadowing the "enum map_type" value that needs
3388 to be passed to get_local_map.
3389
3390 * sound.c (Fplay_sound): Don't call make_number on
3391 Frun_hook_with_args count argument.
3392
3393 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
3394 for lisp objects in X event structure data field, when lisp
3395 objects are represented with unions.
3396 (x_scroll_bar_to_input_event): Ditto.
3397
b357b9d4
KR
33982000-06-16 Ken Raeburn <raeburn@gnu.org>
3399
3400 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
3401 termination of string. Fix sense of test whether
3402 Vline_number_display_limit is an integer.
b357b9d4 3403
a871441d
GM
34042000-06-16 Gerd Moellmann <gerd@gnu.org>
3405
a9021acd
GM
3406 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
3407 only if HAVE_X_WINDOWS.
3408
6344985d
GM
3409 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
3410 of titles.
3411
427ec082 3412 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
3413 out of bounds.
3414
228b083e
EZ
34152000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
3416
3417 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
3418 of its headers.
3419
c25b53a2
KH
34202000-06-15 Kenichi Handa <handa@etl.go.jp>
3421
3422 * coding.c (decode_coding_emacs_mule): Always set src_base at the
3423 start of the while loop.
3424
a6981b11
GM
34252000-06-15 Gerd Moellmann <gerd@gnu.org>
3426
e9924e52
GM
3427 * atimer.c (alarm_signal_handler): Add forward declaration.
3428
a6981b11
GM
3429 * data.c (set_internal): Remove debug code.
3430
25fa6deb
GM
34312000-06-14 Gerd Moellmann <gerd@gnu.org>
3432
dce6b995
GM
3433 * Makefile.in (bootstrap-temacs): Add `-I../src'.
3434
9f817ea4
GM
3435 * unexec.c (toplevel) [COFF]: Include coff.h.
3436
3437 * s/lynxos.h: New file.
3438
3439 * keymap.c (Fsingle_key_description): Enclose function key and
3440 event symbol names in angle brackets.
3441
8a4e3c0c
GM
3442 * xdisp.c (setup_echo_area_for_printing): Call
3443 message_log_maybe_newline if message_buf_print is not set.
3444
3445 * print.c (printchar, strout): Don't check message_buf_print
427ec082 3446 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
3447 function does something useful even when message_buf_print is
3448 already set.
3449
25fa6deb
GM
3450 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
3451 variables.
3452 (ensure_echo_area_buffers): Initialize echo buffer's
3453 truncate lines setting to nil.
3454 (with_echo_area_buffer): Don't set the echo buffer's truncate
3455 lines setting here.
8a4e3c0c 3456 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
3457 of message_truncate_lines.
3458 (resize_mini_window): Handle case that lines are truncated.
3459 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
3460 message-truncate-lines.
3461
3462 * keyboard.c (read_char): Bind message-truncate-lines to t
3463 while displaying a help-echo.
3464
3465 * lisp.h (Qmessage_truncate_lines): External declaration.
3466
163dcff3
GM
34672000-06-13 Gerd Moellmann <gerd@gnu.org>
3468
1681ead6
GM
3469 * xdisp.c (Vline_number_display_limit): Renamed from
3470 line_number_display_limit.
3471 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
3472 Extend documentation string. Initialize
3473 Vline_number_display_limit to nil meaning no limit.
3474 (decode_mode_spec): Use Vline_number_display_limit with its new
3475 meaning.
3476
163dcff3
GM
3477 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
3478
18e21ce8 34792000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
3480
3481 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 3482
163dcff3
GM
3483 * xfns.c (x_set_frame_parameters): Comment fix.
3484
3485 * frame.c (store_frame_param): Call swap_in_global_binding if the
3486 variable's current binding was chosen based on this frame.
3487
3488 * data.c (swap_in_global_binding): New function.
3489
a704139d
EZ
34902000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3491
3492 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
3493 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
3494
9b6610db
EZ
34952000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3496
3497 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
3498
c68833d2
JR
34992000-06-12 Jason Rumney <jasonr@gnu.org>
3500
3501 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
3502
3503 * w32.h (EMACS_W32_H): Renamed from _NT_H_
3504
3505 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
3506
3507 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
3508
ed1056b3
GM
35092000-06-12 Gerd Moellmann <gerd@gnu.org>
3510
3511 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
3512 (syms_of_xfaces): Defsubr Sdump_colors.
3513 (x_free_colors): Don't treat b&w specially on default visual.
3514 (x_free_dpy_colors): New function.
3515 (free_face_colors): Don't check visual class; it's done
3516 in x_free_colors.
3517
3518 * xterm.c (x_frame_of_widget): New function.
3519 (x_alloc_nearest_color_for_widget): Use it.
3520 (x_copy_dpy_color): New function.
3521 (x_destroy_window): Free various colors.
3522
5050a2ef
KH
35232000-06-12 Kenichi Handa <handa@etl.go.jp>
3524
3525 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
3526
3527 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
3528
3529 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
3530
3531 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
3532
3533 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
3534
fb1b041d
DL
35352000-06-11 Dave Love <fx@gnu.org>
3536
3537 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
3538
ff96b5f4
EZ
35392000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
3540
3541 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
3542
db8eeecd
GM
35432000-06-11 Gerd Moellmann <gerd@gnu.org>
3544
ed1056b3 3545 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
3546 to `XEvent *'.
3547
49b71c5f
KH
35482000-06-10 Kenichi Handa <handa@etl.go.jp>
3549
c479bd55
KH
3550 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
3551 (regex_compile): Fix the code for handling the case of single byte
3552 char and multibyte char being mixed in a range within [...].
3553
ff6a65c2
KH
3554 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
3555 and dst_multibyte members of coding.
3556
49b71c5f
KH
3557 * charset.c (update_charset_table): Update the table
3558 bytes_by_char_head.
3559 (init_charset_once): Initialize elements of bytes_by_char_head to
3560 1 except for leading codes for private charases.
3561
3562 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
3563 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
3564 sequence.
3565
9e80b57d
KR
35662000-06-09 Ken Raeburn <raeburn@gnu.org>
3567
3568 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
3569 access the data it doesn't point to.
3570
f83fe4b4
GM
35712000-06-08 Gerd Moellmann <gerd@gnu.org>
3572
3573 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 3574 will be translated to a switch-frame event when reading the
f83fe4b4
GM
3575 event queue. This is necessary because Emacs otherwise won't
3576 perform a switch-frame to a new frame until some other event, for
3577 example a keystroke event, forces it to do so. This has various
3578 effects, one visible being that the cursor of a frame created with
3579 C-x 5 2 or switched to with a window manager key binding like
3580 A-TAB stays hollow because selected_window isn't on the newly
3581 focused frame until the switch-frame is performed.
3582
3583 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
3584 generating a switch-frame event if necessary.
3585
3586 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
3587
3588 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
3589 it's an integer.
3590
0890801b
KH
35912000-06-08 Kenichi Handa <handa@etl.go.jp>
3592
3593 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
3594 charset.
3595
173cbca8
GM
35962000-06-07 Gerd Moellmann <gerd@gnu.org>
3597
3091c2a6
GM
3598 * window.c (displayed_window_lines): Take empty lines at
3599 the bottom of a window into account.
427ec082 3600
f38952fe
GM
3601 * window.c (displayed_window_lines): New function.
3602 (Fmove_to_window_line): Use displayed_window_lines to determine
3603 the number of lines to move, instead of using the window's height.
3604
3605 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
3606 to stop reading, even if the form read sets point to a different
3607 value when evaluated.
3608
427ec082 3609 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
3610 put the cursor.
3611
6ba6c818
KH
36122000-06-07 Kenichi Handa <handa@etl.go.jp>
3613
3614 * fileio.c (e_write): Free composition data if stored in
3615 coding->cmp_data.
3616
5f1aea9a
GM
36172000-06-06 Gerd Moellmann <gerd@gnu.org>
3618
666852af
GM
3619 * xdisp.c (display_line): Set row's and iterator's
3620 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
3621 Set cursor even if row ends in the middle of a character.
3622 (dump_glyph_row): Print values of new flags.
3623 (redisplay_window) <cursor movement in unchanged window>: When
3624 point has been moved forward, and PT is at the end of the cursor
3625 row, don't place the cursor in the next row if the cursor row ends
3626 in the middle of a character or at ZV.
3627
3628 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
3629 (struct glyph_row): Add starts_in_middle_of_char_p and
3630 ends_in_middle_of_char_p.
3631 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
3632 ends_in_middle_of_char_p flag.
3633 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
3634
d13f3e2e
GM
3635 * term.c (append_glyph): Revert change of 2000-06-06.
3636
3637 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
3638 padding glyph not fitting on line as whole character not
3639 fitting on line.
3640
5f1aea9a
GM
3641 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
3642 this isn't true for images with `:ascent 100'.
3643
10cda9b0
KH
36442000-06-06 Kenichi Handa <handa@etl.go.jp>
3645
ed00559d
KH
3646 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
3647 as modified if it is originally unmodified.
3648
10cda9b0
KH
3649 * term.c (encode_terminal_code): Change the way to check if
3650 terminal coding does any conversion.
3651 (append_glyph): Set glyph->pixel_width correctly.
3652
3653 * xdisp.c (display_line): While checking line continuation, pay
3654 attention to a padding glyph.
3655
1969fae2
GM
36562000-06-05 Gerd Moellmann <gerd@gnu.org>
3657
3658 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
3659
162ccef4
DL
36602000-06-05 Dave Love <fx@gnu.org>
3661
f19f32dd
DL
3662 * xdisp.c: Include fontset.h.
3663
3664 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
3665
3666 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
3667
3668 * dispnew.c: Conditionally include term.h.
3669
3670 * coding.h: Declare code_convert_string_norecord.
3671
3672 * frame.h (struct frame): Use volatile unconditionally.
3673
3674 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
3675
3676 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
3677
3678 * systime.h: Protect against multiple inclusion.
3679 (timezone) [USG5_4]: Define as time_t.
3680
3681 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
3682 (Foptimize_char_table, make_temp_name): Declare.
3683
3684 * Makefile.in (xdisp.o): Depend on fontset.h.
3685
3686 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
3687
3688 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
3689 (Foptimize_char_table, make_temp_name): Declare.
3690
427ec082 3691 * s/irix4-0.h:
162ccef4
DL
3692 * s/irix5-0.h:
3693 * s/netbsd.h: Don't define autoconfiscated MATHERR.
3694
2082fe81
DL
36952000-06-02 Dave Love <fx@gnu.org>
3696
3697 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
3698
dcf671d2
GM
36992000-06-02 Gerd Moellmann <gerd@gnu.org>
3700
3701 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 3702 result face, set flags in that face indicating that colors may not
dcf671d2
GM
3703 be freed.
3704
3705 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
3706 glyph, use the ASCII NUL character to determine the face.
3707
d42122a3
DL
37082000-06-02 Dave Love <fx@gnu.org>
3709
3710 * sysdep.c: Conditionally include stdlib.h, unistd.h.
3711 (VFORK_RETURN_TYPE): Remove.
427ec082 3712
d42122a3
DL
3713 * config.in: Add NO_MATHERR.
3714
dd432f16
DL
37152000-06-01 Dave Love <fx@gnu.org>
3716
90aa4ea8
DL
3717 * cmds.c (internal_self_insert): Don't check
3718 Vbefore_change_function, Vafter_change_function.
3719
3720 * insdel.c (signal_before_change, signal_after_change): Likewise.
3721
3722 * buffer.c (Vbefore_change_function, Vafter_change_function):
3723 Variables and their initializations deleted.
3724
2330c9d4
DL
3725 * callint.c (Fcall_interactively): Doc fix.
3726
dd432f16
DL
3727 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
3728
bf9e8804
DL
37292000-05-31 Dave Love <fx@gnu.org>
3730
3731 * textprop.c: Revert last change -- duplicated.
3732
3694b4ab
GM
37332000-05-31 Gerd Moellmann <gerd@gnu.org>
3734
3735 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
3736 in #if 0.
3737
3738 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
3739
f14156cd
JR
37402000-05-31 Jason Rumney <jasonr@gnu.org>
3741
8119aab8
JR
3742 * search.c (Fre_search_forward, Fre_search_backward)
3743 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
3744
f14156cd
JR
3745 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
3746
4aab9be3
JR
37472000-05-30 Jason Rumney <jasonr@gnu.org>
3748
3749 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
3750 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
3751
3752 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
3753 member.
3754
3755 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
3756 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
3757 expand a nil default_filename.
3758
3759 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
3760 pointer to glyph_to_pixel_coords, not a frame.
3761
3762 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
3763 coding.h to dependencies.
3764
3765 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
3766
3767 * w32console.c (glyph_to_pixel_coords): Change first parameter to
3768 window pointer to be consistent with w32term.c and xterm.c.
3769
3770 * w32fns.c: Format and doc changes to bring closer to xfns.c.
3771 (VIETNAMESE_CHARSET): Define if not defined in system headers.
3772 (Qline_spacing, Qcenter): New variables.
3773 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
3774 (x_set_line_spacing): New function.
3775 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
3776 macros.
3777 (x_specified_cursor_type): New function.
3778 (x_set_cursor_type): Use it.
3779 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
3780 and icon strings.
3781 (validate_x_resource_name, x_get_resource_string): Measure lengths
3782 of external strings in bytes.
3783 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
3784 GetTextExtentPoint32 with NULL title.
3785 (Fx_create_frame): Initialize Qline_spacing.
3786 (w32_load_system_font): Initialize font->double_byte_p.
3787 (x_to_w32_charset): Use Vw32_charset_info_alist.
3788 (Image, busy cursor, tooltip functions): Merged changes from
3789 xfns.c. Not yet functional on Windows.
3790
3791 * w32gui.h (W32FontStruct): Add double_byte_p member.
3792
3793 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
3794 (emacs_button_translation): Use it.
3795 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
3796 in `mask' to be set.
3797
3798 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
3799 menu strings.
3800
3801 * w32term.c: Format and doc changes to bring closer to xterm.c.
3802 (w32_char_font_type): New enum.
3803 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
3804 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
3805 (w32_encode_char): New function.
3806 (x_encode_char): Removed.
3807 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
3808 x_encode_char and w32_font_is_double_byte.
3809 (x_produce_image_glyph): Use image_ascent.
3810 (x_produce_glyphs): Use new version of w32_per_char_metric and
3811 handle NULL return value. Allow extra line spacing.
3812 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
3813 (w32_get_glyph_overhangs): Remove unicode_p param. Use
3814 w32_font_type member of glyph instead.
3815 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
3816 (fast_find_position): Make sure not to consider rows not visible
3817 in the window.
3818 (w32_read_socket) [WM_MENUSELECT]: Cannot call
3819 w32_menu_display_help with input blocked, as it can abort.
3820 (x_display_and_set_cursor): Choose cursor depending
3821 on buffer-local value of cursor_type.
3822 (x_draw_bar_cursor): Add parameter WIDTH.
3823
3824 * w32term.h (CP_DEFAULT): Define.
3825 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
3826
10fc3187
GM
38272000-05-30 Gerd Moellmann <gerd@gnu.org>
3828
3829 * search.c (Fre_search_forward, Fre_search_backward)
3830 (Fposix_search_backward, Fposix_search_forward): Doc fix.
3831
d0555360
KH
38322000-05-30 Kenichi Handa <handa@etl.go.jp>
3833
3834 * coding.c (detect_coding_iso2022): Fix code for checking
3835 CODING_CATEGORY_MASK_ISO_8_2.
3836
f1ad044f
SM
38372000-05-29 Stefan Monnier <monnier@cs.yale.edu>
3838
3839 * regex.c (PREFETCH_NOLIMIT): New function.
3840 (re_match_2_internal): Use it and adjust the end_match_2 logic.
3841
84ec3b4b
GM
38422000-05-29 Gerd Moellmann <gerd@gnu.org>
3843
66254a13
GM
3844 * syntax.c (find_defun_start): Move test for
3845 open_paren_in_column_0_is_defun_start outside of the loop.
3846
49e70dec
GM
3847 * xdisp.c (redisplay_window): Really switch buffers when
3848 displaying mode lines, and temporarily set selected_frame to the
3849 frame of the window that's redisplayed.
3850
84ec3b4b
GM
3851 * xfaces.c (free_realized_faces): Block/unblock input.
3852 (free_realized_multibyte_face): Ditto.
3853
869a3a14
DL
38542000-05-29 Dave Love <fx@gnu.org>
3855
3856 * textprop.c (Qkeymap): New variable.
3857 (syms_of_textprop): Intern it.
3858
3859 * keymap.c: Include intervals.h.
3860 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
3861
3862 * Makefile.in (keymap.o): Depend on intervals.h.
3863
3864 * keyboard.c (menu_bar_items, tool_bar_items)
3865 (Fexecute_extended_command): Deal with `keymap' property.
3866 (read_key_sequence): Track map from `keymap' property as well as
3867 `local_map'.
3868
3869 * intervals.c (get_local_map): Extra arg to allow looking for
3870 `keymap' too.
3871
3872 * intervals.h (map_property): New enum.
3873 (get_local_map): Extra arg using it.
3874 (Qkeymap): Declare.
3875
84ec3b4b 3876 * lisp.h (get_local_map): Don't declare here.
869a3a14 3877
89d0c844
KH
38782000-05-29 Kenichi Handa <handa@etl.go.jp>
3879
3880 * Makefile.in (callproc.o): Depend on composite.h.
3881
3882 * callproc.c: Include composite.h.
3883 (Fcall_process): Handle composition correctly.
3884
3885 * coding.h (coding_allocate_composition_data): Extern it.
3886 (coding_restore_composition): Likewise.
3887
3888 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
3889 yet allocated, finish decoding with result
3890 CODING_FINISH_INSUFFICIENT_CMP.
3891 (coding_allocate_composition_data): Make it non-static.
3892 (coding_restore_composition): Likewise.
3893
797a084a
EZ
38942000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
3895
3896 * charset.c (syms_of_charset): Revert last change.
3897
cf872af5
EZ
38982000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
3899
3900 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
3901 charsets as unibyte, with 1-column screen width. Sent by Kenichi
3902 Handa.
cf872af5 3903
5b1ae051
EZ
39042000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
3905
3906 * charset.c (syms_of_charset): Set width of character sets
3907 eight-bit-control and eight-bit-graphic to 1 column.
3908
34ec9ebe
GM
39092000-05-26 Gerd Moellmann <gerd@gnu.org>
3910
3911 * config.in (HAVE_SPEED_T): New define.
3912
3913 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
3914 `extern speed_t'.
3915
dd854dc2
DL
39162000-05-26 Dave Love <fx@gnu.org>
3917
3918 * coding.c (shrink_decoding_region): Initialize eol_conversion.
3919
3920 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
3921 (Fsubr_arity): New function.
3922 (syms_of_data): Install them.
3923
ba9f8f95
KH
39242000-05-26 Kenichi Handa <handa@etl.go.jp>
3925
0f3e0672
KH
3926 * charset.c (init_charset_once): Set the table bytes_by_char_head
3927 correctly.
3928
cebefb44
KH
3929 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
3930 the default fontset to what Emacs uses by default.
0f3e0672
KH
3931 (check_registry_encoding): This function deleted.
3932 (Fset_fontset_font): Remove the adhoc condition for the default
3933 fontset. Allow cons in FONTNAME.
cebefb44 3934
0f3e0672
KH
3935 * fns.c (map_char_table): Ignore char-table entries for
3936 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 3937
7a18af49
KR
39382000-05-25 Ken Raeburn <raeburn@gnu.org>
3939
3940 * emacs.c (main): Initialize keyboard syms before initializing
3941 window code, so face names are available.
3942
d2af47df
SM
39432000-05-25 Stefan Monnier <monnier@cs.yale.edu>
3944
3945 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
3946 of an anchor at the beginning of a shy-group.
3947
fc6a6a4e
GM
39482000-05-25 Gerd Moellmann <gerd@gnu.org>
3949
3950 * xdisp.c (handle_invisible_prop): Don't try to skip over
3951 invisible text if end of text is already reached.
3952
005f0d35
DL
39532000-05-25 Dave Love <fx@gnu.org>
3954
02513cdd
DL
3955 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
3956
005f0d35
DL
3957 * coding.c (encode_eol): Add null statement after label.
3958
89f6ca4e
EZ
39592000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
3960
3961 * w16select.c (Fw16_set_clipboard_data): Fix the change from
3962 2000-05-20.
3963
a4e1759e
KH
39642000-05-25 Kenichi Handa <handa@etl.go.jp>
3965
3966 * ccl.c (ccl_driver): Fix previous change.
3967
eacfd7fe
KH
39682000-05-25 Kenichi Handa <handa@etl.go.jp>
3969
46ab33a9
KH
3970 * coding.c (run_pre_post_conversion_on_str): Set point to the
3971 beginning of buffer before calling coding->post_read_conversion.
3972 (decode_coding_string): Give correct args to
3973 run_pre_post_conversion_on_str.
3974 (encode_coding_string): Likewise.
3975
eacfd7fe
KH
3976 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
3977 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
3978 eight-bit-graphic correctly.
3979
f8569325
DL
39802000-05-24 Kenichi HANDA <handa@etl.go.jp>
3981
3982 * fileio.c (Finsert_file_contents): Even if a file is not found,
3983 execute codes for setting up coding system. Call
3984 after-insert-file-functions unconditionally.
3985
04545643
GM
39862000-05-24 Gerd Moellmann <gerd@gnu.org>
3987
3988 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
3989 BSD_PGRPS are not defined.
3990
747d90ea
KH
39912000-05-24 Kenichi Handa <handa@etl.go.jp>
3992
3993 * charset.c (update_charset_table): Accept nil in LONG_NAME and
3994 DESCRIPTION.
3995 (syms_of_charset): Avoid building same strings.
3996
716e3b88
GM
39972000-05-23 Gerd Moellmann <gerd@gnu.org>
3998
3999 * lread.c (Fload): Add a comment about the meaning of
4000 Vuser_init_file being t.
4001
4002 * puresize.h (BASE_PURESIZE): Increase to 675000.
4003
4004 * s/gnu-linux.h (setpgrp): Don't define it here because this
4005 prevents compilation on GNU/Linux systems with glib 2.2.
4006
4007 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
4008 as setpgid.
427ec082 4009
9aeb39fa
EZ
40102000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
4011
4012 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
4013 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
4014 version.
4015 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
4016
29ced61b
KH
40172000-05-23 Kenichi Handa <handa@etl.go.jp>
4018
0574a2ed
KH
4019 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
4020 unconditionally.
4021
3d80f24d
KH
4022 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
4023
4024 * term.c (encode_terminal_code): Set coding->src_multibyte
4025 properly.
4026
29ced61b
KH
4027 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
4028
d7e00792
KH
40292000-05-22 Kenichi Handa <handa@etl.go.jp>
4030
c9d80d38
KH
4031 * keyboard.c (read_char): Allow character codes 128..255 to be
4032 handled by input-method-function.
4033
d7e00792
KH
4034 * insdel.c (adjust_markers_for_replace): Fix previous change.
4035 (adjust_after_replace): If PREV_TEXT is nil, call
4036 adjust_markers_for_insert, not adjust_markers_for_replace.
4037
087121cc 40382000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 4039
087121cc
GM
4040 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
4041 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
4042 [HAVE_GRANDPT]: Define.
4043 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
4044
4045 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
4046 like SYSV_PTYS.
4047
4048 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
4049
4050 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
4051
c9671f81
KH
40522000-05-20 Kenichi Handa <handa@etl.go.jp>
4053
4054 The following changes are to handle 8-bit characters in a
4055 multibyte buffer/string without facing with byte combining
4056 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
4057 eight-bit-graphic (for 0xA0..0xFF) are introduced.
4058
4059 * Makefile.in (fns.o): Depend on charset.h.
4060
4061 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
4062 convert it to unibyte.
4063 (make_string): Use parse_str_as_multibyte, not chars_in_text.
4064
4065 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
4066 apparent char boundary.
4067 (Fset_buffer_multibyte): Convert 8-bit characters in the range
4068 0x80..0x9F to/from multibyte form.
4069
4070 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
4071 to unibyte.
4072
4073 * callproc.c (Fcall_process): Always encode an argument string if
4074 it is multibyte. Setup src_multibyte and dst_multibyte members of
4075 process_coding properly.
ce75fd23 4076
c9671f81
KH
4077 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
4078 SPLIT_NON_ASCII_CHAR.
4079
4080 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
4081 as is.
4082 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
4083
4084 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
4085 variables.
4086 (SPLIT_CHARACTER_SEQ): This macro deleted.
4087 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
4088 valid.
4089 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
4090 and eight-bit-graphic.
4091 (char_to_string): Likewise. Signal an error for too large
4092 character code.
4093 (char_printable_p): Return 0 for 8-bit characters.
4094 (update_charset_table): Update iso_charset_table only when a final
4095 character is non-negative.
4096 (find_charset_in_text): Renamed from find_charset_in_str.
4097 Arguments and return value changed. Callers changed.
4098 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
4099 be -1 if CHARSET is used only internally.
4100 (Fmake_char_internal): Handle new charsets; eight-bit-control and
4101 eight-bit-graphic.
4102 (Fcharset_after): Simplified.
4103 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
4104 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
4105 (multibyte_chars_in_text): Simplified by assuming there's no
4106 invalid multibyte sequence.
4107 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4108 str_as_unibyte): New functions.
4109 (Fstring): Simpified by assuming that byte combining never
4110 happens.
4111 (init_charset_once): Initialization for
4112 LEADING_CODE_8_BIT_CONTROL.
4113 (syms_of_charset): Intern and staticpro Qeight_bit_control and
4114 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
4115 eight-bit-control and eight-bit-graphic.
4116
4117 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
4118 CHARSET_8_BIT_GRAPHIC): New macros.
4119 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
4120 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
4121 (CHARSET_REVERSE_CHARSET): Likewise.
4122 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
4123 eight-bit-graphic.
4124 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
4125 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
4126 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
4127 encounter an invalid multibyte sequence.
4128 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
4129 sequence is always valid.
4130 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
4131 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
4132 macros.
4133 (CHAR_STRING): For 8-bit characters, call char_to_string.
4134 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
4135 multibyte sequence is always valid.
4136 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
4137 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4138 str_as_unibyte): Extern them.
4139 (BCOPY_SHORT): Fix a bug.
4140 (CHAR_LEN): This macro deleted. Callers changed to use
4141 CHAR_BYTES.
4142 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
4143 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
4144 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
4145
bd4bde7f 4146 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
4147 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
4148 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
4149 EMIT_BYTES): New macros.
4150 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
4151 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
4152 macros deleted.
4153 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
4154 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
4155 check the validity of multibyte sequence.
4156 (decode_coding_emacs_mule): New function.
4157 (encode_coding_emacs_mule): New macro.
4158 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
4159 the source.
4160 (DECODE_ISO_CHARACTER): Just return a character code.
4161 (DECODE_COMPOSITION_START): Set coding->result instead of result.
4162 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
4163 EMIT_CHAR to produced decoded characters. Exit the loop only by
4164 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
4165 block here.
4166 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
4167 only position codes for an invalid character.
4168 (encode_designation_at_bol): Return new destination pointer. 5th
4169 arg DSTP is changed to DST.
4170 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
4171 from the source by ONE_MORE_CHAR. Don't handle the case of last
4172 block here.
4173 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
4174 macros deleted.
4175 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
4176 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
4177 TWO_MORE_BYTES to fetch a byte from the source.
4178 (encode_eol): Pay attention to coding->src_multibyte.
4179 (detect_coding, detect_eol): Preserve members src_multibyte and
4180 dst_multibyte.
4181 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
4182 (encoding_buffer_size): Set magnification to 3 for all coding
4183 systems that require encoding.
4184 (ccl_coding_driver): For decoding, be sure that the result is
4185 valid multibyte sequence.
4186 (decode_coding): Initialize coding->errors and coding->result.
4187 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
4188 and raw-text, always call decode_eol. Handle the case of last
4189 block here. If not coding->dst_multibyte, convert the resulting
4190 sequence to unibyte.
4191 (encode_coding): Initialize coding->errors and coding->result.
4192 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
4193 and raw-text, always call encode_eol. Handle the case of last
4194 block here.
4195 (shrink_decoding_region, shrink_encoding_region): Detect cases
4196 that we can't skip data more rigidly.
4197 (code_convert_region): Setup src_multibyte and dst_multibyte
4198 members of coding. For decoding, if the buffer is multibyte,
4199 convert the source sequence to unibyte in advance. For encoding,
4200 if the buffer is multibyte, convert the resulting sequence to
4201 multibyte afterward.
4202 (run_pre_post_conversion_on_str): New function.
4203 (code_convert_string): Deleted and divided into the following two.
4204 (decode_coding_string, encode_coding_string): New functions.
4205 (code_convert_string1, code_convert_string_norecord): Call one of
4206 above.
4207 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
4208 MAKE_NON_ASCII_CHAR.
4209 (Fset_terminal_coding_system_internal,
4210 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
4211 and dst_multibyte members.
4212 (init_coding_once): Initialize iso_code_class with new enum
4213 ISO_control_0 and ISO_control_1.
4214
4215 * coding.h (enum iso_code_class_type): Member ISO_control_code is
4216 devided into ISO_control_0 and ISO_control_1.
4217 (struct coding_system): New members src_multibyte, dst_multibyte,
4218 errors, and result. Delete member fake_multibyte.
4219 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
4220 nonzero.
4221 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
4222 nonzero.
4223
4224 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
4225 (Faset): Likewise.
4226
4227 * editfns.c (Fformat): Be sure to convert 8-bit characters to
4228 multibyte form.
4229 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
4230 combining occurs.
4231 (Ftranspose_region): Delete codes for handling byte combining.
4232
4233 * fileio.c (Finsert_file_contents): Setup src_multibyte and
4234 dst_multibyte members of coding. On handling REPLACE on unibyte
4235 buffer, convert the result of decode_coding to unibyte. On
4236 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 4237 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
4238 multibyteness of the source (buffer or string).
4239
4240 * fns.c (concat): Handle 8-bit characters correctly.
4241 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
4242 unibyte in the result.
4243 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
4244 valid multibyte form in the result.
4245 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4246 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
4247 return -1, signal an error.
4248 (base64_encode_1): New arg MULTIBYTE. Get each character by
4249 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
4250 character is found, return -1.
4251 (Fbase64_decode_region): Delete codes for handling byte-combining.
4252 Treat each decoded byte as a unibyte character.
4253 (Fbase64_decode_string): Return unibyte string.
4254 (Fcompare_strings, concat, string_byte_to_char): Use
4255 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
4256 FETCH_STRING_CHAR_ADVANCE.
4257 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4258 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
4259
4260 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
4261 SPLIT_NON_ASCII_CHAR.
4262 (fontset_ref_via_base, fontset_set): Likewise
4263
4264 * insdel.c (adjust_markers_for_record_delete): Deleted.
4265 (adjust_markers_for_insert): Argument changed. Caller changed.
4266 (adjust_markers_for_replace): Likewise.
4267 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
4268 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
4269 (copy_text): Delete unused local varialbe c_save. For converting
4270 to multibyte, be sure to make all 8-bit characters in valid
4271 multibyte form.
4272 (count_size_as_multibyte): Handle 8-bit characters correctly.
4273 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4274 adjust_after_replace, replace_range, del_range_2)
4275 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
4276 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4277 adjust_after_replace, replace_range, del_range_2) Delete codes for
4278 handling byte combining.
4279 (adjust_before_replace): Deleted.
427ec082 4280
c9671f81
KH
4281 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
4282 SPLIT_NON_ASCII_CHAR.
4283 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4284 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
4285 unconditionally.
4286 (Fkey_description): Likewise.
4287
4288 * lread.c (read1): On reading multibyte string, be sure to make
4289 all 8-bit chararacters in valid multibyte form.
4290 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4291
4292 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
4293 unconditionally.
4294
4295 * process.c (Fstart_process): GCPRO current_dir before calling
4296 Ffind_operation_coding_system. Encode arguments here.
4297 (create_process): Don't encode arguments here. Setup
4298 src_multibyte and dst_multibyte members of struct coding.
4299 (read_process_output): Setup src_multibyte and dst_multibyte
4300 members of struct coding. If the output is to multibyte buffer,
4301 always decode the output of the process. Adjust the
4302 representation of 8-bit characters to the multibyteness of the
4303 output.
4304 (send_process): Setup coding->src_multibyte according to the
4305 multibyteness of the source.
4306
4307 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
4308 unconditionally.
4309 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
4310 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
4311
4312 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
4313 CHAR_LEN.
4314
4315 * w16select.c (Fw16_set_clipboard_data): Setup members
4316 src_multibyte and dst_multibyte of coding. Adjusted for the
4317 change for find_charset_in_str.
4318 (Fw16_get_clipboard_data): Likewise.
4319
4320 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
4321 dst_multibyte of coding.
4322 (x_to_w32_font): Likewise.
4323
4324 * w32select.c (Fw32_set_clipboard_data): Setup members
4325 src_multibyte and dst_multibyte of coding. Adjusted for the
4326 change for find_charset_in_str.
4327 (Fw32_get_clipboard_data): Likewise.
4328
4329 * xdisp.c (get_next_display_element): Handle 8-bit characters
4330 correctly.
4331 (next_element_from_display_vector): Use CHAR_BYTES instead of
4332 CHAR_LEN.
4333 (disp_char_vector): Use SPLIT_CHAR instead of
4334 SPLIT_NON_ASCII_CHAR.
4335
4336 * xselect.c (selection_data_to_lisp_data): Setup members
4337 src_multibyte and dst_multibyte of coding. Adjusted for the
4338 change for find_charset_in_str.
4339 (lisp_data_to_selection_data): Likewise.
4340
5f64c9e0
GM
43412000-05-19 Gerd Moellmann <gerd@gnu.org>
4342
2b63d473
GM
4343 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
4344 buffer.
4345
5f64c9e0
GM
4346 * dispextern.h (Vimage_types): Add extern declaration.
4347
4348 * xdisp.c (Vimage_types): Moved here from xfns.c.
4349 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
4350
4351 * xfns.c (Vimages_types): Moved to xdisp.c.
4352 (syms_of_xfns): Move `image-types' to xdisp.c.
4353
4354 * w32fns.c (Vimage_types): Removed.
4355 (syms_of_w32fns): Remove `image-types'.
4356
813086ea
KH
43572000-05-18 Kenichi Handa <handa@etl.go.jp>
4358
4359 * fns.c (map_char_table): Pay attention to character number of
4360 charset. Check the validity of charset at the first level. For
4361 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
4362 the default value.
4363
4364 * fontset.c: Include "buffer.h".
4365 (fs_load_font): If the face has fontset, record the face ID in
4366 that fontset.
4367 (Finternal_char_font): New function.
4368 (accumulate_font_info): New function.
4369 (Ffontset_info): Rewritten for the new fontset implementation.
4370 (syms_of_fontset): Register Vdefault_fontset in the first element
4371 of Vfontset_table. Include Vdefault_fontset in
4372 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
4373 function.
4374
bdaebbf0
DL
43752000-05-16 Dave Love <fx@gnu.org>
4376
4377 * m/iris5d.h: Deleted -- unused.
4378
cb613bb8
GM
43792000-05-16 Gerd Moellmann <gerd@gnu.org>
4380
b15f3b77
GM
4381 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
4382 `invalid' instead of `illegal'.
4383
4384 * indent.c (Fmove_to_column): When ending within a tab, insert
4385 spaces first so that markers at the end of the tab get adjusted.
4386
835c1b36
GM
4387 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
4388 buffer list that wasn't selected in that frame.
4389
cb613bb8
GM
4390 * filelock.c (get_boot_time): To obtain an 8 char file name, which
4391 is needed on mescaline, use a 2 char prefix, and call
4392 make_temp_name with second arg non-zero.
4393
4394 * fileio.c (make_temp_name): New function, extracted from
4395 Fmake_temp_name.
4396 (Fmake_temp_name): Use it.
4397
f685bea9
EZ
43982000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
4399
4400 * window.c (coordinates_in_window): Subtract 1 when computing
4401 right_x.
4402
a1b8d58b
GM
44032000-05-15 Gerd Moellmann <gerd@gnu.org>
4404
4405 * Makefile.in (lisp): Add env.elc.
4406
4407 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
4408
a265079f
GM
44092000-05-12 Gerd Moellmann <gerd@gnu.org>
4410
4411 * search.c (Freplace_match): Handle case of `\N' in the
4412 replacement when there's no group N.
4413
da4496b6
GM
44142000-05-11 Gerd Moellmann <gerd@gnu.org>
4415
0ace421a
GM
4416 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
4417 of the message to message_dolog.
4418
1172eb8d
GM
4419 * keyboard.c (read_char): Don't clear current message for help
4420 events; let the code handling help events handle this. Change
4421 code detecting help events that should be ignored.
4422
da4496b6
GM
4423 * xdisp.c (handle_single_display_prop): Don't try to set PT if
4424 we're interating over a string.
4425
0623e40f
DL
44262000-05-09 Dave Love <fx@gnu.org>
4427
4428 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
4429 that offset before writing. Move gcpro region past call of
4430 Ffile_regular_p.
4431
bae2503b
DL
44322000-05-04 Dave Love <fx@gnu.org>
4433
4434 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
4435
ec82fb2f
GM
44362000-05-04 Gerd Moellmann <gerd@gnu.org>
4437
4438 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
4439 of inserted characters when BUF equals the current buffer, and PT
4440 is in front of or equal to FROM.
4441
cbf18892
GM
44422000-05-03 Gerd Moellmann <gerd@gnu.org>
4443
4ff40dd0
GM
4444 * xdisp.c (handle_single_display_prop): If display property value
4445 is invalid, or something not supported on the frame, restore
4446 iterator's position to what it was initially. Make sure to return
4447 0 for invalid and unsupported property values.
4448
cbf18892
GM
4449 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
4450 that x_per_char_metric returns null.
4451
1b0672c3
GM
44522000-05-02 Gerd Moellmann <gerd@gnu.org>
4453
576da55d
GM
4454 * xterm.h (struct face): Add forward declaration.
4455 (struct image): Ditto.
4456 (image_ascent): Add prototype.
4457
4458 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4459 (x_draw_image_relief, x_draw_image_foreground_1): Call function
4460 image_ascent instead of using IMAGE_ASCENT.
4461
4462 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
4463 (IMAGE_ASCENT): Removed.
4464
4465 * xfns.c (Qcenter): New variable.
4466 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
4467 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
4468 (image_ascent): New function.
4469 (lookup_image): Recognize `:ascent center'.
4470 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4471 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
4472 (xbm_load): Don't set image's ascent here.
4473 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
4474 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
4475 check ascent values here.
4476 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
4477 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
4478 (syms_of_xfns): Initialize Qcenter.
4479
1b0672c3
GM
4480 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
4481 to the limits, increase the limits.
4482
0d7811ed
KH
44832000-05-01 Kenichi Handa <handa@etl.go.jp>
4484
4485 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
4486 Check Vfont_encoding_alist against the full name of the opened
4487 font.
4488
a943a5ca
GM
44892000-04-28 Gerd Moellmann <gerd@gnu.org>
4490
4491 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
4492 taller than the window.
4493
5dba1e29
KH
44942000-04-28 Kenichi Handa <handa@etl.go.jp>
4495
4496 * xfaces.c (realize_x_face): Fix the argument of the second
4497 xassert. BASE_FACE may not be a face for ASCII.
4498
353964e3
GM
44992000-04-27 Gerd Moellmann <gerd@gnu.org>
4500
c76e04a8
GM
4501 * print.c (print_object): Treat print-length < 0 as nil.
4502
4503 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
4504
4505 * s/freebsd.h (TERMCAP_OBJ): Removed.
4506 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
4507
4508 * lread.c (read1): Don't treat period followed by certain
4509 characters as symbol start.
4510
4511 * xfns.c (slurp_file): New function.
4512 (xbm_image_p): Handle case of in-memory XBM files.
4513 (xbm_scan): Rewritten to work on memory buffers instead of files.
4514 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
4515 Work on memory buffers instead of files. If DATA is null test
4516 if buffer looks like an in-memory XBM file.
4517 (xbm_load_image): Renamed from xbm_load_image_file. Work on
4518 memory buffers instead of files.
4519 (xbm_file_p): New function.
4520 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
4521
353964e3
GM
4522 * lread.c (end_of_file_error): New function.
4523 (read1): Call it instead of signaling `end-of-file' directly.
4524
427ec082 4525 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
4526 with Fprinc instead of Fprin1.
4527
24d744ac
KR
45282000-04-26 Ken Raeburn <raeburn@gnu.org>
4529
4530 * window.c (freeze_window_start): Check that minibuffer scroll
4531 window isn't nil before extracting the window structure pointer
4532 from it.
4533
4534 * undo.c (record_delete): If we hit the end of the undo list, stop
4535 picking elements apart.
4536
7464346d
GM
45372000-04-26 Gerd Moellmann <gerd@gnu.org>
4538
4539 * xdisp.c (display_line): If lines are continued, restore
4540 iterator's ascent/descent information to the values before the
4541 first glyph not fitting on the line.
4542
612839b6
GM
45432000-04-25 Gerd Moellmann <gerd@gnu.org>
4544
4545 * xdisp.c (try_window_id) <all changes above window start>: Adjust
4546 positions in glyph matrix. Don't compute new window end
4547 positions.
4548
4549 * dispnew.c (increment_matrix_positions): Renamed from
4550 increment_glyph_matrix_buffer_positions.
4551 (increment_row_positions): Renamed from
4552 increment_glyph_row_buffer_positions.
4553
4554 * dispextern.h: Change names of renamed functions from dispnew.c
4555 in prototypes.
4556
cc181e95
GM
45572000-04-24 Gerd Moellmann <gerd@gnu.org>
4558
abfcc168
GM
4559 * fileio.c (Fdo_auto_save): Create directories for auto-save
4560 list file if necessary.
4561
cc181e95
GM
4562 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
4563 from buffer or frame.
4564 (automatic_hscrolling_p): New variable.
4565 (hscroll_windows): Scroll windows horizontally only if automatic
4566 hscrolling is allowed.
4567 (syms_of_xdisp): New variable `automatic-hscrolling'.
4568
4569 * frame.h (struct frame): Add member extra_line_spacing.
4570
4571 * xfns.c (x_set_line_spacing): New function.
4572 (Fx_create_frame): Set line spacing from resources.
4573 (Qline_spacing): New variable.
4574 (syms_of_xfns): Initialize Qline_spacing.
427ec082 4575
cc181e95
GM
4576 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
4577
4578 * buffer.c (init_buffer_once): Handle extra_line_spacing.
4579 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 4580 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
4581 extra_line_spacing from default value.
4582 (init_buffer_once): Initialize default value of extra_line_spacing.
4583
4584 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
4585 and extra3.
4586
4587 * xterm.c (x_produce_glyphs): Remove reference to struct it's
4588 prompt_width. Add extra line spacing.
4589
4590 * term.c (produce_glyphs): Remove reference to struct it's
4591 prompt_width.
4592
4593 * dispextern.h (struct it): Remove member prompt_width, add
4594 extra_line_spacing.
4595
58827478
GM
45962000-04-22 Gerd Moellmann <gerd@gnu.org>
4597
4598 * dispnew.c (update_frame_line): When writing a whole line, make
4599 sure cursor is in the right row afterwards, otherwise a use of
4600 capability `ch' in cmgoto might leave the cursor in the row below.
4601
25a87f42
GM
46022000-04-21 Gerd Moellmann <gerd@gnu.org>
4603
4604 * lisp.h (struct Lisp_Buffer_Cons): Remove.
4605
4606 * keyboard.c (timer_check): Fix typo in comment.
4607
54edf5c2
KH
46082000-04-21 Kenichi Handa <handa@etl.go.jp>
4609
4610 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
4611 name change: ch -> character.
4612
3a64eef5
GM
46132000-04-20 Gerd Moellmann <gerd@gnu.org>
4614
4615 * keyboard.c (echo_message_buffer): New variable.
4616 (echo_now): Set echo_message_buffer to the echo area buffer used
4617 to display the echo.
4618 (cancel_echoing): Reset echo_message_buffer to nil.
4619 (read_char): Code rewritten that handles canceling an echo or
4620 echoing a dash, respectively.
4621
4622 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
4623 directory doesn't exist.
4624
6142fdcb
DL
46252000-04-19 Dave Love <fx@gnu.org>
4626
4627 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
4628 (concat): Don't allow numeric args.
4629 (Fconcat): Doc change.
6142fdcb 4630
ac6b5352
SM
46312000-04-19 Stefan Monnier <monnier@cs.yale.edu>
4632
4633 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
4634 instead define end_match(1|2) more carefully.
4635 Use GET_CHAR_BEFORE_2 for `begline'.
4636
cb9215e4
GM
46372000-04-19 Gerd Moellmann <gerd@gnu.org>
4638
5e3dac3f
GM
4639 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
4640 on 64-bit systems where NULL is defined as `0'.
4641
4642 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
4643 the `variable argument list' to make it work on Alpha.
4644
cb9215e4
GM
4645 * m/alpha.h (_LP64) [!_LP64]: Define.
4646 (ORDINARY_LINK): Define for NetBSD.
4647
4648 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 4649
f532dca0
DL
46502000-04-19 Dave Love <fx@gnu.org>
4651
c750667e
DL
4652 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
4653 change.
4654
4655 * Makefile.in (LIBS): Don't use.
4656 (GETLOADAVG_OBJ): Define again.
4657 (otherobj): Add GETLOADAVG_OBJ.
4658
f532dca0
DL
4659 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
4660
1c7e22fd
GM
46612000-04-18 Gerd Moellmann <gerd@gnu.org>
4662
f6d3257b
GM
4663 * lread.c (read_filtered_event): Cancel and start busy cursor.
4664
427ec082 4665 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
4666 that the per-character metrics may be null.
4667
e10f64e7
GM
46682000-04-17 Gerd Moellmann <gerd@gnu.org>
4669
0daee095
GM
4670 * buffer.c (clone_per_buffer_values): New function.
4671 (Fmake_indirect_buffer): Add optional argument CLONE. Call
4672 clone_per_buffer_values if CLONE is not nil.
4673
e10f64e7
GM
4674 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
4675
38687d43
DL
46762000-04-16 Dave Love <fx@gnu.org>
4677
4678 * Makefile.in: Remove obsolete localcpp stuff.
4679 (GETLOADAVG_OBJ): Don't define.
4680 (obj): Move LIBOBJS...
4681 (otherobj): ... to here.
4682 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
4683 whitespace-only lines after the continuation (Irix).
4684
c21c7262
GM
46852000-04-14 Gerd Moellmann <gerd@gnu.org>
4686
4687 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
4688
4689 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
4690
314767c0
DL
46912000-04-14 Dave Love <fx@gnu.org>
4692
4693 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
4694 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
4695 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
4696 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
4697 NLIST_STRUCT.
4698
4699 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
4700 autoconfiscated HAVE_GETLOADAVG.
4701
4702 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
4703 BROKEN_MKTIME.
4704
a2522dca
GM
47052000-04-14 Gerd Moellmann <gerd@gnu.org>
4706
4707 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
4708 (fill_in_lock_file_name): Avoid existing files that aren't
4709 links.
4710
33744b5d
DL
47112000-04-14 Dave Love <fx@gnu.org>
4712
c21c7262 4713 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
4714 (INTERVAL_SRC): Convert to make variable.
4715 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
4716 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
4717 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
4718 add LIBOBJS.
4719 (SOME_MACHINE_OBJECTS): Remove interval stuff.
4720 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
4721 (shortlisp): Add facemenu, float-sup, frame.
4722 (SOME_MACHINE_LISP): Remove them from here.
4723 (LIBES): Change unused LDLIBS to autoconf LIBS.
4724
4725 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
4726
9d3d5916
KH
47272000-04-14 Kenichi Handa <handa@etl.go.jp>
4728
4729 * composite.c (update_compositions): If FROM and TO are not in a
4730 valid range, do nothing.
4731
198e3c7a
GM
47322000-04-13 Gerd Moellmann <gerd@gnu.org>
4733
4734 * tparam.c (tparam1): Abort when encountering an unknown
4735 `%'-specifier.
4736
4737 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
4738 terminfo.o.
4739
4740 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
4741 as TERMCAP_OBJ.
4742
055a28c9
EZ
47432000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
4744
4745 * fileio.c (a_write): Remove redundant semi-colons.
4746 (e_write): Return -1 if failed to write all the data.
4747 This fixes the changes made at 1999-12-15.
4748
f5c75033
DL
47492000-04-12 Dave Love <fx@gnu.org>
4750
4751 * fns.c (mapcar1): Test for null vals to support mapc.
4752 (Fmapc): New function.
4753
0c3cfc51
EZ
47542000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
4755
4756 * msdos.c (NUM_MOUSE_BUTTONS): Define.
4757 (IT_frame_up_to_date): Support the buffer local value of
4758 cursor-type, if defined.
4759
33465a31
DL
47602000-04-10 Dave Love <fx@gnu.org>
4761
4762 * editfns.c (preceding-char, following-char): Doc fix.
4763
6ed56568
KR
47642000-04-10 Ken Raeburn <raeburn@gnu.org>
4765
4766 * Makefile.in (temacs): Revert 2000-03-12 change.
4767
7cf80d4e
JR
47682000-04-10 Jason Rumney <jasonr@gnu.org>
4769
4770 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
4771
34f3f342
GM
47722000-04-10 Gerd Moellmann <gerd@gnu.org>
4773
1a1b1895
GM
4774 * xdisp.c (setup_echo_area_for_printing): Choose an echo
4775 area buffer, if it's not set up yet.
4776
34f3f342
GM
4777 * indent.c (compute_motion): Set immediate_quit.
4778
be0dbdab
GM
47792000-04-09 Gerd Moellmann <gerd@gnu.org>
4780
c45be9ac
GM
4781 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
4782 variable.
4783 (realize_tty_face): Suppress boldness if colors are the inverse of
4784 the default colors, and tty_suppress_bold_inverse_default_colors_p
4785 is set.
4786 (Ftty_suppress_bold_inverse_default_colors): New function.
4787 (syms_of_xfaces): Defsubr it.
4788
be0dbdab
GM
4789 * buffer.c (Frestore_buffer_modified_p): New function.
4790 (syms_of_buffer): Defsubr it.
4791
e8413c3b
KR
47922000-04-08 Ken Raeburn <raeburn@gnu.org>
4793
87f67317
KR
4794 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
4795 charset id (int) argument, not a charset (Lisp_Object).
4796
e8413c3b
KR
4797 * coding.h (code_convert_string): Declare.
4798 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
4799 object, as the fourth argument to code_convert_string.
4800
4801 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
4802 value.
4803 (Fset_fontset_font): Use EQ to compare lisp objects.
4804
7c752c80
KR
48052000-04-05 Ken Raeburn <raeburn@gnu.org>
4806
c0333abc
KR
4807 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
4808 a pointer that looks like a lisp object.
4809 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
4810 zero, instead see whether it's an integer object, since they can't
4811 have intervals.
4812 (GET_INTERVAL_OBJECT): Simply assign to the destination.
4813
7c752c80
KR
4814 * dispnew.c (allocate_matrices_for_frame_redisplay,
4815 direct_output_forward_char): Use X(U)INT and make_number as needed
4816 to convert between (unsigned) int values and lisp integers.
4817 * keyboard.c (read_key_sequence): Likewise.
4818 * lread.c (substitute_object_recurse): Likewise.
4819 * fns.c (concat, hash_lookup, hash_remove): Likewise.
4820 * minibuf.c (do_completion, Fminibuffer_complete_word,
4821 Fminibuffer_completion_help): Likewise.
4822 * term.c (produce_special_glyphs): Likewise.
4823
4824 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
4825 * print.c (print_preprocess, print_object): Likewise.
4826
4827 * search.c (compile_pattern): Use NILP when checking for nil.
4828
74e49b38
KR
4829 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
4830 __OPTIMIZE__]: Provide a GNU C macro version that handles
4831 lisp-object unions.
4832 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
4833 field, to better cope with ENABLE_CHECKING and calls that modify a
4834 Lisp_Object using its old value.
4835
685e5ed2
GM
48362000-04-04 Gerd Moellmann <gerd@gnu.org>
4837
c407c570
GM
4838 * window.c (compare_window_configurations): Signal an error
4839 if parameters C1 or C2 aren't window configurations.
4840
685e5ed2
GM
4841 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
4842 AFTER_POTENTIAL_GC calls around calls to functions that can
4843 signal an error and thus invoke the debugger.
4844
587a49ab
GM
48452000-04-03 Gerd Moellmann <gerd@gnu.org>
4846
62f20204
GM
4847 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
4848 an error if decoding fails.
4849
587a49ab
GM
4850 * keyboard.c (lispy_mouse_names): Variable removed.
4851 (Vlispy_mouse_stem): New variable.
4852 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
4853 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
4854 for any mouse button number. Increase size of mouse_syms and
4855 button_down_location as needed. Call modify_event_symbol with
4856 different arguments.
4857 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
4858 Call modify_event_symbol with different arguments.
4859 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
4860 for any button number. Call modify_event_symbol with different
4861 arguments.
4862 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
4863 Accept a string for NAME_ALIST_OR_STEM.
4864
4865 * lisp.h (larger_vector): Add prototype.
4866
4867 * fns.c (larger_vector): Make externally visible.
4868
4869 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
4870
2d1675e4
SM
48712000-04-02 Stefan Monnier <monnier@cs.yale.edu>
4872
4873 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
4874 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
4875 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
4876 we are between str1 and str2.
4877 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
4878 (PATFETCH): Use `TRANSLATE'.
4879 (PATFETCH_RAW): Fetch multibyte char if applicable.
4880 (PATUNFETCH): Remove.
4881 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
4882 When writing a char, write it directly into the pattern buffer rather
4883 than going needlessly through a temp char-array.
4884 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
4885 multibyte magic and remove the useless `#ifdef emacs'.
4886 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
4887 buffer.
4888
4889 * regex.h (struct re_pattern_buffer): Make field `multibyte'
4890 conditional on `emacs'.
4891
4892 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
4893
cc2d8c6b
KR
48942000-04-01 Ken Raeburn <raeburn@gnu.org>
4895
4896 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
4897 non-union-type versions of XMARK and friends here, because XMARK
4898 and friends won't work on an integer field if NO_UNION_TYPE is not
4899 defined.
4900 (make_number): Define as a function if it's not defined as a
4901 macro.
4902
09654086
KR
4903 * composite.c (run_composite_function): Use NILP when checking for
4904 nil.
4905 (syms_of_composite): Delete local var NARGS, pass an int as first
4906 argument to Fmake_hash_table.
4907
2387b382
KR
4908 * editfns.c (text_property_stickiness): Use NILP to test
4909 Lisp_Object boolean value.
4910 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
4911 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
4912 problems reading from and changing the same lisp value in an
4913 XSETSTRING call.
4914
27660e89
GM
49152000-04-01 Gerd Moellmann <gerd@gnu.org>
4916
4917 * term.c (TN_no_color_video): New variable.
4918 (term_init): Intitialize TN_no_color_video.
4919 (enum no_color_bit): New enumeration.
4920 (MAY_USE_WITH_COLORS_P): New macro.
4921 (turn_on_face): Use it to determine if attributes may be used
4922 combined with colors.
4923
3578db3c
KR
49242000-04-01 Ken Raeburn <raeburn@gnu.org>
4925
4926 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
4927 with int lvalues via casts; instead, just yield lisp object
4928 lvalues.
4929 (enlarge_window): Variable sizep now points to Lisp_Object. Use
4930 proper accessor macros.
4931 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
4932 (grow_mini_window): Fix typo getting int value of root->height.
4933
6fc556fd
KR
4934 * xdisp.c (compute_string_pos): Fix order of arguments to
4935 string_pos_nchars_ahead.
4936 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
4937 count arg to variable-arg routines like Frun_hook_with_args and
4938 Fformat.
587a49ab
GM
4939 (back_to_previous_visible_line_start)
4940 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
4941 fixed-arg routines like Fget_char_property and Fmake_string.
4942 (reconsider_clip_changes): Use XINT when comparing integer lisp
4943 objects, or passing them as int arguments.
587a49ab
GM
4944 (mark_window_display_accurate, insert_left_trunc_glyphs)
4945 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
4946 storing or passing integer values as lisp objects.
4947 (set_cursor_from_row, highlight_trailing_whitespace): Use
4948 INTEGERP, not implicit test against zero, for glyph object.
4949 (try_window_id): Don't use make_number when we want an int value.
4950
4951 * xfaces.c (xlfd_symbolic_value): Make last argument a
4952 Lisp_Object, to be consistent with callers.
4953 (Fbitmap_spec_p): Use XINT to get numeric value of height.
4954 (lface_hash): Apply XFASTINT to lisp values before folding in.
4955
4956 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
4957 fill in window width and height. Pass an int, not a lisp object,
4958 as first arg to Finsert.
4959
6e7b2457
GM
49602000-04-01 Gerd Moellmann <gerd@gnu.org>
4961
610d841e
GM
4962 * xfaces.c (realize_basic_faces): Block input while realizing
4963 the faces.
4964
6e7b2457
GM
4965 * keyboard.c (lispy_mouse_names): Add additional mouse names.
4966
4967 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
4968
aa110c0c
GM
49692000-03-31 Gerd Moellmann <gerd@gnu.org>
4970
4971 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 4972 or ASCII, handle case that per-char metric is null.
aa110c0c 4973
8801a864
KR
49742000-03-30 Ken Raeburn <raeburn@gnu.org>
4975
c6129d7e
KR
4976 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
4977
8801a864
KR
4978 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
4979 XSUBR, XBUFFER): Verify correct object type before returning
4980 pointer, using eassert.
4981 * frame.h (XFRAME): Likewise.
4982
4983 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
4984 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
4985 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
4986 type.
4987 * data.c (set_internal): Likewise.
4988 * dispextern.h (WINDOW_WANTS_MODELINE_P,
4989 WINDOW_WANTS_HEADER_LINE_P): Likewise.
4990 * fileio.c (auto_save_1): Likewise.
4991 * insdel.c (check_markers): Likewise.
4992 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
4993 * undo.c (record_insert): Likewise.
4994 * vmsproc.c (child_sig): Likewise.
4995 * window.c (unshow_buffer, window_loop): Likewise.
4996 * xterm.c (x_erase_phys_cursor): Likewise.
4997
8e7af858
GM
49982000-03-30 Gerd Moellmann <gerd@gnu.org>
4999
5000 * xfns.c (free_image_cache): Free the cache structure itself
5001 last, after all its members have been freed.
5002
5003 * lisp.h (xstrdup): Add prototype.
5004
5005 * alloc.c (xstrdup): Moved here from xfaces.c.
5006 (allocating_for_lisp): Variable removed.
5007 (lisp_malloc): Block input around the calls to malloc and
5008 mem_insert.
5009
5010 * xfaces.c (realize_tty_face): Use find_symbol_value instead
5011 of Fsymbol_value.
5012 (xstrdup): Moved to alloc.c.
5013
e0b8c689
KR
50142000-03-29 Ken Raeburn <raeburn@gnu.org>
5015
b96f9fb7
KR
5016 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
5017
5018 * emacs.c (main): Fix sense of no-loadup test.
5019
e0b8c689
KR
5020 * config.in (ENABLE_CHECKING): Undef.
5021
5022 * lisp.h (struct interval): Replace "parent" field with a union of
5023 interval pointer and Lisp_Object; add new bitfield to use as
5024 discriminant. Change other flag fields to bitfields.
5025 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
5026 is defined and the supplied test fails, print a message and
5027 abort.
5028 (eassert): New macro. Use CHECK to provide an assert-like
5029 facility.
5030
5031 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
5032 pointers; abort if the value looks like a lisp object.
5033 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
5034 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
5035 Modify for new interval parent definition.
5036
5037 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
5038 UNMARK_BALANCE_INTERVALS): Update references that need an
5039 addressable lisp object in the interval structure.
5040 (die): New function.
5041 (suppress_checking): New variable.
5042
5043 * intervals.c (interval_start_pos): Just return 0 if there's no
5044 parent object.
5045
f83c5440
GM
50462000-03-29 Gerd Moellmann <gerd@gnu.org>
5047
5048 * lread.c (read1): Accept `.' (period) as symbol start like in CL
5049 and earlier Emacs versions.
5050
5051 * keyboard.c (Ftop_level): Cancel busy-cursor.
5052
5053 * eval.c (call_debugger): Cancel busy-cursor.
5054
fdce64ff
KH
50552000-03-29 Kenichi Handa <handa@etl.go.jp>
5056
5057 * search.c (Freplace_match): Adjust multibyteness of the current
5058 buffer and NEWTEXT. Free allocated memory before signaling an
5059 error.
5060
f6a3f532
SM
50612000-03-28 Stefan Monnier <monnier@cs.yale.edu>
5062
5063 * regex.c (analyse_first): New function obtained by ripping out most
5064 of re_compile_fastmap and generalizing it a little bit so that it
5065 can also just return whether a given (sub)pattern can match the empty
5066 string or not.
5067 (regex_compile): Use `analyse_first' to decide whether the loop-check
5068 needs to be done or not for *, +, *? and +? (the loop check is costly
5069 for non-greedy repetition).
5070 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
5071
e9b309ac
DL
50722000-03-28 Dave Love <fx@gnu.org>
5073
bb15bd9a
DL
5074 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
5075 alpha.
5076
e9b309ac
DL
5077 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
5078
ed0767d8
SM
50792000-03-27 Stefan Monnier <monnier@cs.yale.edu>
5080
5081 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
5082 an expression.
5083 (enum re_opcode_t): Update description of succeed_n.
5084 (PATFETCH): Always define.
5085 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
5086 operators, char classes, shy-groups and intervals).
5087 Optimize special cases of intervals so as to only use succeed_n and
5088 jump_n when really needed.
5089 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
5090 that we don't have to handle the special cases any more.
5091 Simplify on_failure_jump handling as well.
5092
e11e7e46
JR
50932000-03-28 Jason Rumney <jasonr@gnu.org>
5094
5095 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
5096
88faab89
GM
50972000-03-27 Gerd Moellmann <gerd@gnu.org>
5098
182ff242
GM
5099 * s/freebsd.h (GC_SETJMP_WORKS): Define.
5100
5101 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 5102
182ff242
GM
5103 * alloc.c (mark_maybe_object): New function.
5104 (mark_memory): Use it.
5105 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
5106 (setjmp_tested_p, longjmp_done): New variables.
5107 (test_setjmp): New function.
5108 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
5109 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
5110
c1005d06
GM
5111 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
5112 to DEC_TEXT_POS and INC_TEXT_POS.
5113
5114 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
5115 with parameter MULTIBYTE_P.
5116
427ec082 5117 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
5118 MULTIBYTE_P.
5119
7439e5b9 5120 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
5121 buffers because it looks for multibyte character byte sequences
5122 which don't exist in unibyte text.
7439e5b9 5123
d9c545da
GM
5124 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
5125
11fd416e 5126 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
5127 [DEBUG_X_COLORS]: New functions.
5128 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
5129
5130 * xfns.c (x_set_cursor_color): Get color reference counts right.
5131
5132 * xterm.c (x_copy_color): New function.
5133 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
5134
5135 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
5136 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
5137 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
5138 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
5139 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
5140 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
5141 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
5142 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
5143 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
5144 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
5145
11fd416e
GM
5146 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
5147 names for handling per-buffer variables.
d9c545da
GM
5148
5149 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
5150 instead of MAX_BUFFER_LOCAL_VARS.
5151 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
5152
5153 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
5154
88faab89
GM
5155 * xfns.c (x_specified_cursor_type): New function.
5156 (x_set_cursor_type): Use it.
5157
5158 * buffer.h (struct buffer): Add cursor_type.
5159
d80f42b7
SM
51602000-03-26 Stefan Monnier <monnier@cs.yale.edu>
5161
5162 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 5163 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 5164 opcode.
d80f42b7
SM
5165 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
5166 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
5167 executing it as well as when popping it off the stack to find infinite
5168 loops in non-greedy repetition operators.
5169
89e80928
GM
51702000-03-26 Gerd Moellmann <gerd@gnu.org>
5171
3d4ff2dd
GM
5172 * doc.c (Qfunction_documentation): New variable.
5173 (syms_of_doc): Initialize Qfunction_documentation.
5174 (Fdocumentation): If FUNCTION is a symbol with non-nil
5175 `function-documentation' property, return a documentation derived
5176 from that.
5177
bd96bd79
GM
5178 * buffer.c (syms_of_buffer): Add default-cursor-type.
5179 (init_buffer_once): Don't let cursor_type have a local value
5180 in every buffer.
5181
19d1bc27
GM
5182 * xterm.c (x_display_and_set_cursor): Choose cursor depending
5183 on buffer-local value of cursor_type.
5184 (x_draw_bar_cursor): Add parameter WIDTH.
5185
5186 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
5187 (init_buffer_once): Set default cursor_type value to t.
5188 Mark cursor_type as local everywhere.
5189 (syms_of_buffer): New per-buffer variable cursor-type.
5190
89e80928
GM
5191 * buffer.h (struct buffer): Remove member local_var_flags,
5192 add local_flags.
5193 (MAX_BUFFER_LOCAL_VARS): New macro.
5194 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
5195 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
5196 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
5197 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
5198
5199 * print.c (print_object): Use new macros for per-buffer
5200 variables.
5201
5202 * category.c (Fset_category_table): Use new macros for per-buffer
5203 variables.
5204
5205 * buffer.c (buffer_permanent_local_flags): Make a char array.
5206 (max_buffer_local_idx): New variable.
5207 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
5208 for new handling of per-buffer variables.
5209 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
5210 (init_buffer_once): Initialize per-buffer vars differently.
5211 Set max_buffer_local_idx.
5212
5213 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
5214 variables.
5215
5216 * lread.c (defvar_per_buffer): Use new macros for per-buffer
5217 variables.
5218
5219 * data.c (do_symval_forwarding, store_symval_forwarding)
5220 (find_symbol_value, set_internal, default_value, Fset_default)
5221 (Fkill_local_variable, Flocal_variable_p): Use new macros for
5222 per-buffer variables.
5223
5224 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
5225
9a0dd3dc
GM
52262000-03-24 Gerd Moellmann <gerd@gnu.org>
5227
b68c375f
GM
5228 * xterm.c (x_term_init): Unblock input around call1 of
5229 Qvendor_specific_keysyms.
5230
9a0dd3dc
GM
5231 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
5232 (find_defun_start): Consider an open parenthesis in column 0
5233 a defun start only if open_paren_in_column_0_is_defun_start is set.
5234 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
5235
7973e637
SM
52362000-03-24 Stefan Monnier <monnier@cs.yale.edu>
5237
5238 * eval.c (Fautoload): Add entry in load-history (if after dump).
5239 * lread.c (load-history): Update docstring.
5240
39210e90
GM
52412000-03-24 Gerd Moellmann <gerd@gnu.org>
5242
5243 * indent.c (Fvertical_motion): Always use the current buffer.
5244 Temporarily change the window's buffer, if necessary.
5245
72db3ab5
GM
52462000-03-23 Gerd Moellmann <gerd@gnu.org>
5247
5248 * xterm.c (fast_find_position): Make sure not to consider rows
5249 not visible in the window.
5250
990b2375
SM
52512000-03-22 Stefan Monnier <monnier@cs.yale.edu>
5252
5253 * regex.c (enum syntaxcode): Provide default for non-Emacs.
5254 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
5255
ff4df011
JR
52562000-03-22 Jason Rumney <jasonr@gnu.org>
5257
5258 * w32menu.c (single_submenu): Set help string to NULL if none.
5259 (w32_menu_show): Set help string correctly.
5260 (add-menu-item): Set help string in MIIM_DATA for menu item.
5261 Load SetMenuItemInfoA explicitly.
5262 (w32_menu_display_help): New function.
427ec082 5263
ff4df011
JR
5264 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
5265 (QCdata): Moved to xdisp.c.
5266
5267 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
5268 (Vw32_charset_to_codepage_alist): Removed.
5269 (Vw32_charset_info_alist): New variable.
5270 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
5271 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
5272 greek, hebrew, thai, johab, mac, unicode]): New symbols.
5273 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
5274 with TODO comment.
5275 (w32_codepage_for_font): Use Vw32_charset_info_alist.
5276 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
5277 Define Vw32_charset_info_alist and w32_charset symbols.
5278
52792000-03-22 Jason Rumney <jasonr@gnu.org>
5280
5281 * makefile.nt (w32bdf.obj): Update dependencies.
5282
5283 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
5284
5285 * w32fns.c: Include fontset.h after dispextern.h.
5286 (Fx_create_frame): Do not create fontset.
5287 (w32_load_system_font): Doc fix.
5288 (Fx_close_connection): Free full_name if it is not shared.
5289
5290 * w32term.c: Include fontset.h after dispextern.h.
5291 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
5292 updated.
5293 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
5294 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
5295 (w32_font_is_double_byte): New function, needs body.
5296 (x_append_glyph): Set glyph->glyph_not_available_p.
5297 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5298 it->charset. If it->multibyte_p is zero and it->c is a multibyte
5299 character, convert it to a unibyte character.
5300 (struct glyph_string): Delete member `charset'.
5301 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
5302 calculating it is found.
5303 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5304 the case that per char metric is not available correctly.
5305 (x_fill_glyph_string): Handle the case that the specific glyph is
5306 not available correctly.
5307 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5308 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5309 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5310 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5311 fontset. Don't call FS_LOAD_FONT.
5312
439d5cb4
KR
53132000-03-22 Ken Raeburn <raeburn@gnu.org>
5314
5315 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
5316 (INT_LISPLIKE): New macro.
5317 (NULL_INTERVAL_P): Use it.
5318 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
5319 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
5320 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
5321
5322 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
5323 explicit references to "parent" field of struct interval and
5324 associated unclean type conversions.
5325 * intervals.c (create_root_interval, root_interval, rotate_right,
5326 rotate_left, balance_possible_root_interval, split_interval_right,
5327 split_interval_left, interval_start_pos, find_interval,
5328 next_interval, previous_interval, update_interval,
5329 adjust_intervals_for_insertion, delete_node, delete_interval,
5330 adjust_intervals_for_deletion, merge_interval_right,
5331 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
5332 copy_intervals_to_string): Likewise.
5333 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
5334 Likewise.
5335 * syntax.c (update_syntax_table): Likewise.
5336
5337 * intervals.c (reproduce_tree_obj): New function, like
5338 reproduce_tree but takes a Lisp_Object for the parent. Declare
5339 with prototype.
5340 (graft_intervals_into_buffer): Use it when appropriate.
5341 (reproduce_tree): Declare with prototype.
5342 (balance_possible_root_interval): Check that the parent is a lisp
5343 object before trying to examine its type.
5344
ee1c5b21
GM
53452000-03-22 Gerd Moellmann <gerd@gnu.org>
5346
5347 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
5348 as strings only if both are known to be strings.
5349
5350 * s/openbsd.h (LIBS_TERMCAP): Undef.
5351
1fb352e0
SM
53522000-03-21 Stefan Monnier <monnier@cs.yale.edu>
5353
5354 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
5355 definitions for non-Emacs compilation.
5356 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
5357 outside of `#ifdef emacs'.
5358 (print_partial_compiled_pattern): Update.
5359 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
5360 (re_compile_fastmap): Merge handling of charset and charset_not (for
5361 emacs and non-emacs compilation as well).
5362 Similarly for (not)categoryspec and (not)syntaxspec.
5363 Don't use the fastmap when reaching `anychar' since the added
5364 complexity is not justified.
5365 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
5366 and (not)syntaxspec. Merge (not)categoryspec.
5367
fdaa1f77
KH
53682000-03-22 Kenichi Handa <handa@etl.go.jp>
5369
ff1a0d8e
KH
5370 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
5371 FACE_FOR_CHAR): Define them differently for the configuration of
5372 --without-x.
fdaa1f77 5373
d152fb46
DL
53742000-03-21 Dave Love <fx@gnu.org>
5375
5376 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
5377 doc string.
5378
d2cafc8c
GM
53792000-03-21 Gerd Moellmann <gerd@gnu.org>
5380
5381 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
5382 (lface_fully_specified_p): Don't check contents of
5383 LFACE_FONT_INDEX because that attribute is optional.
5384 (realize_x_face): Remove now unwarranted xassert.
5385
9111d4b5
KH
53862000-03-21 Kenichi HANDA <handa@etl.go.jp>
5387
5388 The following changes are to make font selection based on
5389 characters, not charset. In addition, they recover fontset
5390 facilities while utilizing the new font selection mechanism.
5391
6c4bfdc0
KH
5392 * Makefile.in (fontset.o): Depend on dispextern.h.
5393
5394 * alloc.c (mark_face_cache): Don't mark face->registry.
5395
9111d4b5
KH
5396 * dispextern.h (struct glyph): New member glyph_not_available_p.
5397 Use 22 bits for face_id.
5398 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
5399 (struct face): Delete member registry, new member ascii_face.
5400 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
5401 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
5402 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
5403 (struct it): Delete member charset, new member
5404 glyph_not_available_p.
5405
5406 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
5407 (struct fontset_info, struct fontset_data): Structs removed.
5408 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
5409 Vglobale_fontset_alist, font_idx_temp): Externs removed.
5410 (fs_load_font, fs_query_fontset): Adjusted for new argument.
5411 (fs_free_face_fontset, fontset_font_pattern,
5412 face_suitable_for_char_p, face_for_char,
5413 make_fontset_for_ascii_face): Extern them.
5414 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
5415 (FS_LOAD_FACE_FONT): New macro.
5416
5417 * fontset.c: All codes rewritten or adjusted for the change of
5418 fontset implementation. Now fontset is represented by char table.
5419 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
5420 removed.
5421 (my_strcasecmp): Function removed.
5422 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
5423 variables.
5424 (AREF, ASIZE): New macros.
5425 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
5426 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
5427 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
5428 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
5429 fontset_id_valid_p, font_family_registry, fontset_name,
5430 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
5431 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
5432 New functions.
5433 (fs_load_font): New arg FACE. Caller changed.
5434 (fs_query_fontset): Argument changed. Caller changed.
5435 (Fquery_fontset): call fs_query_fontset.
5436 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
5437 Functions removed.
5438 (clear_fontset_elements, check_registry_encoding,
5439 check_fontset_name): New functions.
5440 (syms_of_fontset): Set char-table-extra-slots property of fontset
5441 to 3. Staticpro and initialize Vfontset_table and
5442 Vdefault_fontset. Defsubr fontset_font and fontset_list.
5443
5444 * frame.h (struct frame): Member `fontset_data' removed.
5445 (FRAME_FONTSET_DATA): Macro removed.
5446
5447 * frame.c (make_frame): Don't allocate f->fontset_data.
5448 (Fdelete_frame): Don't free f->fontset_data.
5449
6c4bfdc0
KH
5450 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
5451
9111d4b5
KH
5452 * xdisp.c (charset_at_position): Function removed.
5453 (init_iterator): Don't set member charset of struct `it'.
5454 (handle_face_prop, reseat_to_string, set_iterator_to_next,
5455 next_element_from_display_vector, insert_left_trunc_glyphs):
5456 Likewise.
5457 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
5458 FACE_FOR_CHARSET.
5459 (get_next_display_element, append_space,
5460 extend_face_to_end_of_line): Likewise.
5461
5462 * xfaces.c (Qx_charset_registry, Vface_default_registry):
5463 Variables removed.
5464 (clear_font_table, frame_update_line_height, load_face_font):
5465 Adjusted for the change of fontset implementation.
5466 (load_face_fontset_font): Function removed.
5467 (pixel_point_size): New function.
5468 (font_list): Argument type changed. Caller changed.
5469 (LFACE_FONT): New macro.
5470 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
5471 (set_lface_from_font_name): Type of arg FONTNAME is changed to
5472 Lisp_Object. Determine the font name by actually loading a font
5473 by the specified pattern. Set LFACE_FONT (lface) to the specified
5474 pattern. Even if a font is not found, don't try alternatives.
5475 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
5476 (set_font_frame_param): If `font' is specified in lface, use it.
5477 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
5478 (lface_same_font_attributes_p): Likewise.
5479 (make_realized_face): Arguent changed. Caller changed. Set
5480 face->ascii_face to face itself.
5481 (free_realized_face): Free face->fontset if face is for ASCII.
5482 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
5483 deduce_unibyte_registry, x_charset_registry): Functions removed.
5484 (free_realized_multibyte_face): New function.
5485 (lookup_face, lookup_named_face, lookup_derived_face): Argument
5486 changed. Caller changed.
5487 (try_font_list): Argument type changed.
5488 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
5489 (choose_face_font): Argument changed. Handle fontset properly.
5490 (choose_face_fontset_font): Function removed.
5491 (realize_default_face, realize_named_face): Don't remove the
5492 former face here.
5493 (realize_face): Argument changed. Caller changed. Remove face
5494 with the arg former_face_id in advance. Load font for the new
5495 face.
5496 (realize_x_face): Argument changed. Caller changed. For a
5497 multibyte character, share fontset with base_face. For a single
5498 byte character, make a new realized fontset. Don't load a font
5499 here.
5500 (realize_tty_face): Argument changed. Caller changed.
5501 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
5502 (face_at_buffer_position): Don't check multibyte_p for returning
5503 DEFAULT_FACE_ID.
5504 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
5505 FACE_SUITABLE_FOR_CHARSET_P.
5506 (syms_of_xfaces): Remove code for Qx_charset_registry and
5507 Vface_default_registry.
5508
6c4bfdc0
KH
5509 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
5510 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
5511 (x_per_char_metric): Don't try FONT->default_char. Even if
5512 pcm->width is zero, glyph bits may exist.
5513 (x_encode_char): Always initialize char2b->byte1.
5514 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
5515 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
5516 changed.
5517 (x_append_glyph): Set glyph->glyph_not_available_p.
5518 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5519 it->charset. Handle the case that per char metric is not
5520 available. If it->multibyte_p is zero and it->c is a multibyte
5521 character, convert it to a unibyte character.
5522 (struct glyph_string): Delete member `charset'.
5523 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5524 the case that per char metric is not available correctly.
5525 (x_fill_glyph_string): Handle the case that the specific glyph is
5526 not available correctly.
5527 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5528 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5529 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5530 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5531 fontset. Don't call FS_LOAD_FONT.
5532
5533 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
5534 (x_create_tip_frame): Likewise.
5535 (Fx_close_connection): Free full_name of font_info.
5536
5537 * fns.c (optimize_sub_char_table): New function.
5538 (Foptimize_char_table): New function.
5539 (syms_of_fns): Defsubr Soptimize_char_table.
5540
b33dd3b0
GM
55412000-03-20 Gerd Moellmann <gerd@gnu.org>
5542
5543 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
5544 only if buffer is displayed in some window.
5545
5546 * xdisp.c (handle_single_display_prop): Initialize local `value'.
5547 (try_window_reusing_current_matrix): Don't call scroll run
5548 function if run's current and desired position are the same;
5549 this prevents cursor flickering.
5550
4e8a9132
SM
55512000-03-19 Stefan Monnier <monnier@cs.yale.edu>
5552
5553 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
5554
5555 * regex.c (RE_STRING_CHAR): New macro.
5556 (GET_CHAR_AFER_2): Remove.
5557 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
5558 (enum re_opcode_t): Remove on_failure_jump_exclusive.
5559 (print_partial_compiled_pattern, re_compile_fastmap)
5560 (re_match_2_internal): Remove on_failure_jump_exclusive.
5561 (regex_compile): Turn optimizable P+ loops into PP*, so that the
5562 optimization only need to work for * (ie. can use of_keep_string_jump).
5563 Remove the special case for .*\n since it is now covered by the general
5564 optimization.
5565 (re_search_2): Don't bother with `room'.
5566 (skip_one_char): New function.
5567 (skip_noops): Simplify since `memory' is not needed any more.
5568 (mutually_exclusive_p): Restructure slightly to use `switch' and
5569 add handling for "all" remaining cases.
5570 (re_match_2_internal): Change on_failure_jump_smart to use
5571 on_failure_keep_string_jump (and redirect the end-of-loop jump)
5572 rather than on_failure_jump_exclusive.
5573
2136fdd4
GM
55742000-03-19 Gerd Moellmann <gerd@gnu.org>
5575
5576 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
5577 number of bits per RGB because it's everywhere used as the depth
5578 of the visual.
5579
5580 * term.c (calculate_costs): Remove code dealing with X frames.
5581
18e21ce8 55822000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
5583
5584 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
5585
d7b511c4
GM
55862000-03-18 Gerd Moellmann <gerd@gnu.org>
5587
5588 * lread.c (read_integer): Unread the last char not consumed.
5589
16b5d424
GM
55902000-03-17 Gerd Moellmann <gerd@gnu.org>
5591
5592 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 5593 which are in the process of being deleted.
16b5d424 5594
1fa28578
GM
55952000-03-16 Gerd Moellmann <gerd@gnu.org>
5596
83488cce
GM
5597 * Makefile.in (mostlyclean): Add `*.core'.
5598 (clean): Add `bootstrap-emacs'.
5599
1fa28578
GM
5600 * lread.c (read_integer): New function.
5601 (read1): Support read syntax #o, #x, #b, #r.
5602
99633e97
SM
56032000-03-15 Stefan Monnier <monnier@cs.yale.edu>
5604
1fa28578
GM
5605 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
5606 make sure POINTER_TO_OFFSET gives the same value before and after
5607 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
5608 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
5609 (debug): Now only active if > 0 rather than if != 0.
5610 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
5611 (print_partial_compiled_pattern): Add missing `succeed' case. Use
5612 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
5613 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
5614 (store_op1, store_op2, insert_op1, insert_op2)
5615 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
5616 (group_in_compile_stack): Move to after its arg's types are
5617 declared and add a prototype.
99633e97 5618 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
5619 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
5620 wrapper.
99633e97 5621 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
5622 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
5623 indentation of the greedy-op and shy-group code.
99633e97
SM
5624 (at_(beg|end)line_loc_p): Fix argument's types.
5625 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
5626 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
5627 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
5628 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
5629 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
5630 QUIT unconditionally.
99633e97 5631
699238d9
GM
56322000-03-15 Gerd Moellmann <gerd@gnu.org>
5633
5634 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
5635 a sole completion.
5636
5637 * process.c (send_process): Add a hint that the function
5638 can call Lisp code to its comment.
5639
5640 * lread.c (load_dangerous_libraries): New variable.
5641 (Vbytecomp_version_regexp): New variable.
5642 (safe_to_load_p): New function.
5643 (Fload): Handle files not compiled with Emacs specially.
5644 (syms_of_lread): New Lisp variable load-dangerous-libraries.
5645
34e23e5a
GM
56462000-03-14 Gerd Moellmann <gerd@gnu.org>
5647
9c763cca
GM
5648 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
5649
5650 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
5651 support functions only if HAVE_X11R6_XIM is defined.
5652 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
5653
5654 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
5655
5656 * xfns.c (X_I18N_INHIBITED): Don't define.
5657 (create_frame_xic): Remove conditional compilation on
5658 X_I18N_INHIBITED.
5659 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
5660
5661 * config.in (HAVE_X_I18N): Moved here from xterm.h.
5662 (HAVE_X11R6_XIM): Define.
5663
5664 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
5665
34e23e5a
GM
5666 * xterm.c (x_term_init): Add support for X resource `synchronous'.
5667 If set, call XSynchronize.
5668
66f0296e
SM
56692000-03-13 Stefan Monnier <monnier@cs.yale.edu>
5670
34e23e5a
GM
5671 * regex.c: Declare a new type `re_char' used throughout the code
5672 for the string char type. It's `const unsigned char' to match the
5673 rest of Emacs. Consistently make sure all pointers to strings use
5674 it and make sure all pointers into the pattern use `unsigned
5675 char'.
66f0296e 5676 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
5677 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
5678 code duplication.
66f0296e
SM
5679
5680 * charset.h (GET_CHAR_AFTER_2): Remove.
5681 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
5682
854a025c
KR
56832000-03-12 Ken Raeburn <raeburn@gnu.org>
5684
5685 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
5686 variable before the invocation of YMF_PASS_LDFLAGS, in case both
5687 of them try to use backquotes.
5688
b9d2c7e2
DL
56892000-03-12 Dave Love <fx@gnu.org>
5690
5691 * unexelf.c: Restore changes of 1999-10-19.
5692 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
5693 fix its type and alignment; copy it from current process.
5694
5e5dff44
GM
56952000-03-12 Gerd Moellmann <gerd@gnu.org>
5696
9b2f3c38
GM
5697 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
5698 has been found. Fix bug not computing timer's predecessor.
5699
427ec082 5700 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
5701 file name.
5702
e1cff360
GM
5703 * window.c (Fsave_window_excursion): Doc fix.
5704
5e5dff44
GM
5705 * xfns.c (x_defined_color): Rewritten to use
5706 x_allocate_nearest_color.
5707
e411ce4b
EZ
57082000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
5709
5710 * msdos.c (vga_installed): New function, code moved from
5711 dos_set_window_size.
5712 (Qbar, Qcursor_type, outside_cursor): New variables.
5713 (syms_of_msdos): Intern and staticpro them.
5714 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
5715 shape used outside Emacs when called for the first time.
5716 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
5717 cursor shape used outside Emacs.
5718 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
5719 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
5720 type has changed.
5721 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
5722 parameters specify the cursor. Make qreverse a global
5723 variable (renamed to Qreverse).
5724
80460654
GM
57252000-03-09 Gerd Moellmann <gerd@gnu.org>
5726
5727 * fns.c (Fy_or_n_p): Cancel busy-cursor.
5728
95cd4c40
SM
57292000-03-08 Stefan Monnier <monnier@cs.yale.edu>
5730
5731 This is a big redesign of failure-stack and register handling, prompted
5732 by bugs revealed when trying to add shy-groups. Overall, what happened
5733 is that loops are now structured a little differently, groups can be
5734 shy and the code is a little simpler.
5735
5736 * regex.h: Update the copyright.
5737 (RE_SHY_GROUPS): New value.
5738 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
5739 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
5740
80460654
GM
5741 * regex.c (enum re_opcode_t): Remove jump_past_alt,
5742 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
5743 on_failure_jump_(exclusive, loop and smart). Also fix the comment
5744 for (start|stop)_memory since they now only take one argument (the
5745 second has becomes unnecessary).
5746 (print_partial_compiled_pattern): Adjust for changes in
5747 re_opcode_t.
5748 (print_compiled_pattern): Use %ld to printf long ints and flush to
5749 make debugging a little easier.
95cd4c40
SM
5750 (union fail_stack_elt): Make the integer unsigned.
5751 (struct fail_stack_type): Add a `frame' element.
5752 (INIT_FAIL_STACK): Init `frame' as well.
5753 (POP_PATTERN_OP): New macro for re_compile_fastmap.
5754 (DEBUG_PUSH, DEBUG_POP): Remove.
5755 (NUM_REG_ITEMS): Remove.
5756 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
5757 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
5758 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 5759 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
5760 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
5761 macros.
5762 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
5763 address pushed is not the destination of the jump but the source
5764 of it instead.
95cd4c40
SM
5765 (NUM_FAILURE_ITEMS): Remove.
5766 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
5767 registers before the actual failure point). Don't hardcode any
5768 meaning for str==NULL anymore.
95cd4c40 5769 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
5770 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
5771 Remove.
95cd4c40
SM
5772 (REG_UNSET_VALUE): Use NULL (why not?).
5773 (compile_range): Remove declaration since it doesn't exist.
5774 (struct compile_stack_elt_t): Remove inner_group_offset.
5775 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
5776 (regex_grow_registers): Remove dead code.
5777 (FIXUP_ALT_JUMP): New macro.
80460654
GM
5778 (regex_compile): Add shy-groups Change loops to use
5779 on_failure_jump_smart&jump instead of
5780 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
5781 initial (dummy_failure_)jump. Remove c1_base (looks like unused
5782 variable to me). Use `jump' instead of `jump_past_alt' and don't
5783 bother with push_dummy_failure in alternatives since it is now
5784 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
5785 emacs' for (re)allocating the stack.
5786 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
5787 from loop when bufp->can_be_null rather than jumping to `done'.
5788 Avoid jumping backwards so as to ensure termination. Use
5789 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
5790 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 5791 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
5792 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
5793 improve mutually_exclusive_p to handle ".+\n".
5794 (lowest_active_reg, highest_active_reg,
5795 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
5796 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
5797 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
5798 variables. Push register (in `start_memory') on the stack rather
5799 than storing it in old_reg(start|end). Remove the cycle detection
5800 from `stop_memory', replaced by the use of on_failure_jump_loop
5801 for greedy loops. Add code for the new on_failure_jump_<foo>.
5802 Remove ad-hoc code in `on_failure_jump' to push more registers in
5803 the case of a loop. Take out code from `maybe_pop_jump' into
5804 separate functions and adapt it to the semantics of
5805 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
5806 and push_dummy_failure. Remove dummy_failure handling and
5807 handling of `failures to jump to on_failure_jump' (this last one
5808 was already dead code, it seems).
5809 (group_match_null_string_p, alt_match_null_string_p)
5810 (common_op_match_null_string_p): Remove.
95cd4c40 5811
7397acc4
DL
58122000-03-08 Dave Love <fx@gnu.org>
5813
5814 * config.in: Don't depend on __STDC__ for volatile.
5815 Add POINTER_TYPE, PTR, PROTOTYPES.
5816
5817 * hftctl.c, strftime.c: Use PROTOTYPES.
5818 * eval.c (find_handler_clause): Likewise.
5819
5820 * mem-limits.h: Use POINTER_TYPE.
5821
5822 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
5823 (memory_warnings): Declare using POINTER_TYPE.
5824
5e91ff9e
GM
58252000-03-08 Gerd Moellmann <gerd@gnu.org>
5826
feab4fba
GM
5827 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
5828
25edb08f
GM
5829 * xdisp.c (display_echo_area): Temporarily inhibit garbage
5830 collection.
5831
5e91ff9e
GM
5832 * xfns.c: Remove obsolete code in #if 0.
5833 (Fx_focus_frame): New function.
5834
a735b7e1
KH
58352000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
5836
5837 * coding.c (coding_category_name): Add coding-category-utf-8,
5838 coding-category-utf-16-be, coding-category-utf-16-le.
5839 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
5840 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
5841 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
5842 (detect_coding_utf_8): New function.
5843 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
5844 UTF_16_LOW_SURROGATE_P): New macros.
5845 (detect_coding_utf_16): New function
5846 (detect_coding_mask): When priorities are specified, skip any
5847 categories that have `nil' coding-system. Fix bug of returning
5848 wrong mask when PRIORITIES is specified and detect_coding_XXX()
5849 returns a mask not set in PRIORITIES.
5850 (detect_eol_type_in_2_octet_form): New function.
5851 (detect_eol): selects detect_eol_type_XXX to call according to
5852 cooding->category_idx.
5853 (detect_coding_system): Remove `nil' coding-system in the result.
5854 (Fupdate_coding_systems_internal): Update all coding-categories.
5855
5856 * coding.h (CODING_CATEGORY_IDX_UTF_8,
5857 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
5858 macros.
5859 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
5860 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
5861 CODING_CATEGORY_IDX_UTF_16_LE.
5862 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
5863 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
5864 (CODING_CATEGORY_MASK_ANY): Include the above macros.
5865 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
5866
9994cc69
GM
58672000-03-07 Gerd Moellmann <gerd@gnu.org>
5868
e9b4e5ff
GM
5869 * doc.c (Fdocumentation_property): If value is not a string,
5870 and doesn't refer to etc/DOC, evaluate it to obtain a string.
5871
f7daf1e1
GM
5872 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
5873 close the display with XtCloseDisplay. This caused a bus error
5874 on OpenWindows.
5875
9994cc69
GM
5876 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
5877 complete but not unique.
5878
4336c705
GM
58792000-03-06 Gerd Moellmann <gerd@gnu.org>
5880
18bb0684
GM
5881 * process.c (send_process): Remove local variable `procname' that
5882 might become invalid when a GC happens. Instead, access the
5883 process name slot directly.
5884
4336c705
GM
5885 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
5886 orig_height if set.
5887
5888 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
5889 orig_height if set.
5890
515d0d0e
EZ
58912000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
5892
5893 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
5894 glyph matrices have been freed.
5895
100b3cbb
GM
58962000-03-05 Gerd Moellmann <gerd@gnu.org>
5897
50df5e5a 5898 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 5899 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
5900
5901 * xfns.c (QCdata): Moved to xdisp.c.
5902
5903 * xdisp.c (QCdata): Moved here from xfns.c.
5904 (syms_of_xdisp): Initialize QCdata.
5905
5906 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
5907
5908 * window.c (coordinates_in_window): Use
5909 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
5910 FRAME_INTERNAL_BORDER_WIDTH.
5911
100b3cbb 5912 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 5913 it is obviously invalid.
100b3cbb
GM
5914
5915 * xterm.c (x_term_init): Create a colormap if not using the
5916 default visual.
5917
5918 * xterm.h (select_visual): Change prototype.
5919
5920 * xfns.c (select_visual): Rewritten. Recognize user-specified
5921 visual classes.
5922 (visual_classes): New variable.
5923
64d739c4
GM
59242000-03-04 Gerd Moellmann <gerd@gnu.org>
5925
5926 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
5927 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
5928 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
5929 (x_decode_color): Don't handle allocation of white and black
5930 specially.
5931 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
5932 XtNcolormap resources.
5933 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
5934 (Fx_create_frame): Initialize color members of x_output structure.
5935 (xpm_load): Pass colormap to XPM lib.
5936
5937 * xfaces.c (x_free_colors): Access colormap of frame using
5938 FRAME_X_COLORMAP. Be paranoid about freeing black and white
5939 when default colormap is used.
5940
5941 * xterm.c (x_term_init): Set Colormap member of x_display_info
5942 structure. Copy colormap if resource `privateColormap' is
5943 specified (PseudoColor only).
5944 (x_setup_relief_color): Access colormap of frame using
5945 FRAME_X_COLORMAP.
5946
5947 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
5948 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
5949
c3cee013
JR
59502000-03-04 Jason Rumney <jasonr@gnu.org>
5951
5952 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
5953 other non-platform-specific equivalents.
64d739c4 5954 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
5955 specific functions and macros as their w32 equivalents where
5956 non-platform-specifics are not available.
5957 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
5958 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
5959 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
5960 (frame_update_line_height): Use macros to access f->output_data.
5961 (defined_color): Remove FIXME comments; fixed.
5962 (x_face_list_fonts, prepare_face_for_display): Put X specifics
5963 into #ifdef blocks. Add WINDOWSNT blocks.
5964 (Fx_list_fonts): Use macros for accessing font data.
5965 (set_lface_from_font_name): Different default fonts for X and
5966 WINDOWSNT.
5967 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
5968 scalable for backward compatibility.
64d739c4 5969 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
5970 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
5971
64d739c4 5972 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
5973 syms_of_w32faces.
5974
5975 * makefile.nt (w32faces.obj): Remove.
5976 (xfaces.obj): Add.
5977
807cc41c
JR
59782000-03-03 Jason Rumney <jasonr@gnu.org>
5979
5980 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
5981 correct parameters.
5982
0007072a
KR
59832000-03-03 Ken Raeburn <raeburn@gnu.org>
5984
5985 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
5986 standard ELF definitions here if the system header does not.
5987
71a6ba55
GM
59882000-03-03 Gerd Moellmann <gerd@gnu.org>
5989
5990 * xterm.c (PER_CHAR_METRIC): Removed.
5991 (x_per_char_metric_1, x_default_char): New functions.
5992 (x_per_char_metric): If font's default char is invalid, return
5993 metrics of a suitably chosen usable default char.
5994 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
5995 char, replace occurrences of unprintable chars with a suitably
5996 chosen usable default char.
71a6ba55 5997
900fa1f1
GM
59982000-03-02 Gerd Moellmann <gerd@gnu.org>
5999
42f55fe0
GM
6000 * xterm.c (note_mouse_highlight): Return quickly if frame's
6001 glyph matrices have been freed.
6002
6003 * dispnew.c (free_glyphs): Block input while freeing matrices.
6004
900fa1f1
GM
6005 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
6006
6007 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
6008 x_free_colors.
6009
6010 * dispextern.h (x_free_colors): Add prototype.
6011
6012 * xfaces.c (x_free_colors): New function.
6013 (unload_color, free_face_colors): Use it.
6014
2f950292
EZ
60152000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
6016
6017 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
6018
6019 * window.c [MSDOS]: Include msdos.h.
6020
54d04320
DL
60212000-03-02 Dave Love <fx@gnu.org>
6022
6023 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
6024
6025 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
6026 set C_OPTIMIZE_SWITCH for gcc.
6027
0ba93ac4
KH
60282000-03-02 Kenichi Handa <handa@etl.go.jp>
6029
6030 * coding.c (coding_save_composition): Be sure to allocate
6031 composition data area in coding even if there's no composition in
6032 the current run.
6033
a2bc11d4
JR
60342000-03-01 Jason Rumney <jasonr@gnu.org>
6035
6036 * w32term.c: Equivalent changes to those made to xterm.c on
6037 2000-02-25 and 2000-02-24.
6038
6039 * w32fns.c: Equivalent changes to those made to xfns.c on
6040 2000-02-25 and 2000-02-21.
6041
6042 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
6043 correct line-end convention is followed.
6044
6045 * w32menu.c [HAVE_BOXES]: Remove #undef.
6046 (single_keymap_panes): Remove code for simulating checkmarks.
6047 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
6048 Remove code for drawing simulated checkmarks.
6049 (w32_menu_show): make unibyte help string correctly.
6050 (add_menu_item): draw standard Windows checkmarks. Draw radio
6051 buttons as radio buttons if possible.
6052
72d19d75
GM
60532000-03-01 Gerd Moellmann <gerd@gnu.org>
6054
2df636f4
GM
6055 * sysdep.c (start_of_text): Don't define this function for NetBSD
6056 with ELF.
6057
427ec082 6058 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
6059 Don't define.
6060 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
6061 (LINKER): Don't undef if __NetBSD__ is defined.
6062
6063 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
6064
6065 * fileio.c [__NetBSD__]: Define `unix'.
6066
72d19d75
GM
6067 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
6068
ed4d0512
GM
60692000-02-29 Gerd Moellmann <gerd@gnu.org>
6070
50b1039f
GM
6071 * atimer.c (start_atimer): Don't abort when timers are stopped.
6072 (append_atimer_lists): New function.
6073 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
6074 arbitrary lists of stopped and running atimers.
6075
ed4d0512
GM
6076 * atimer.c (cancel_atimer): Handle canceling an atimer when
6077 some timers are stopped.
6078
6079 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
6080 after canceling it.
6081
6082 * fns.c (maybe_resize_hash_table): Handle case of new size
6083 coming out as being the same as old size.
6084
387023ee
JR
60852000-02-27 Jason Rumney <jasonr@gnu.org>
6086
6087 * makefile.nt: Add atimer.h to dependencies.
6088 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
6089 * w32console.c: Only disable window system features for dispextern.h
6090 (initialize_w32_display): Build a display info for the console.
6091 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
6092 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
6093 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
6094 as 2 button mice.
6095 * w32gui.h (struct W32FontStruct): Revert last change after change
6096 to xdisp.c.
6097 * w32menu.c (single_submenu): Set up help string.
6098 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
6099 (w32_dialog_show): Set up help string.
6100 * w32term.c (w32_display_info_for_display): Remove unused function.
6101 (w32_draw_bitmap): Use pre-built bitmaps.
6102 (w32_initialize_display_info): New function to initialize parts of
6103 display info that are common to both GUI and console frames.
6104 (w32_term_init): Use w32_initialize_display_info. Do not set
6105 Vw32_num_mouse_buttons here, as it is not called for console
6106 frames. Build bitmaps for indicating truncated lines etc.
6107 (x_delete_display): Destroy pre-built bitmaps.
6108 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
6109 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
6110
4516715a
DL
61112000-02-27 Dave Love <fx@gnu.org>
6112
6113 * lisp.h: Add a bunch of prototypes.
6114
171ca836
KH
61152000-02-26 Kenichi Handa <handa@etl.go.jp>
6116
6117 * keyboard.c (read_char): Set `usec' correctly.
6118
4013921d
KH
61192000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
6120
6121 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
6122 `lambda', set reg[RRR] to the map index.
6123 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
6124 reg[RRR] to 0. Otherwise, set it to -1.
6125
9244a058
GM
61262000-02-25 Gerd Moellmann <gerd@gnu.org>
6127
2df636f4 6128 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 6129
18e21ce8 61302000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 6131
f43d79c1
GM
6132 * fileio.c (Ffile_symlink_p): If result starts with a `/'
6133 and contains a `:', prepend `/:'.
6134
6135 * window.c (select_window_1): If selected_window is nil,
6136 don't "swap out" the buffer's point.
6137 (Fset_window_configuration): Set selected_window to nil
6138 before calling Fselect_window.
6139 (unshow_buffer): Don't set point in buffer from window's point
6140 if another more recently selected window also shows the buffer.
6141
bed0c171
GM
61422000-02-25 Gerd Moellmann <gerd@gnu.org>
6143
449c3c52
GM
6144 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
6145
f5b58615
GM
6146 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
6147 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
6148 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
6149 variables.
6150 (DEFAULT_BUSY_CURSOR_DELAY): New define.
6151 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
6152 (hide_busy_cursor): New functions.
6153 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
6154
6155 * minibuf.c (read_minibuf): Cancel busy-cursor.
6156
6157 * keyboard.c (command_loop_1): Call start_busy_cursor before
6158 Fcommand_execute and cancel_busy_cursor after it.
6159 (timer_check): Remove busy-cursor code.
6160 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
6161 cursor timer.
6162
6163 * process.c (wait_reading_process_input): Remove busy-cursor code.
6164
6165 * eval.c (Fsignal): Call cancel_busy_cursor instead of
6166 Fx_hide_busy_cursor.
6167
6168 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
6169 Remove prototyoes.
6170 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
6171
6172 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
6173
6174 * xterm.c (XTread_socket): Remove busy-cursor code.
6175
4eb8436f
GM
6176 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
6177 (build_frame_matrix_from_leaf_window): Put code handling
6178 glyph row's not being a slice of a frame row in #if 0.
6179 (sync_window_with_frame_matrix_rows): New function.
6180 (frame_row_to_window): New function.
6181 (mirror_line_dance): Handle copies between windows.
6182
3cb65b0e
GM
6183 * lread.c (Fload): Use `xfree' instead of `free'.
6184 (init_obarray): Use `xmalloc' instead of `malloc'.
6185
bed0c171
GM
6186 * window.c (Fset_window_buffer): Set WINDOW to the window
6187 after decoding.
2add4349
GM
6188 (coordinates_in_window): Take frame's internal border width
6189 into account.
bed0c171 6190
42088c12
GM
61912000-02-24 Gerd Moellmann <gerd@gnu.org>
6192
6193 * xterm.c (x_display_and_set_cursor): Display cursor of
6194 non-selected windows depending on the setting of
6195 cursor_in_non_selected_windows.
6196
6197 * xdisp.c (cursor_in_non_selected_windows): New variable.
6198 (syms_of_xdisp): DEFVAR_BOOL it.
6199
d1e103b2
GM
62002000-02-23 Gerd Moellmann <gerd@gnu.org>
6201
723e779c
GM
6202 * data.c (Fstring_to_number): If number is greater than what
6203 fits into an integer, return a float.
6204
d1e103b2
GM
6205 * eval.c (specbind): Remove references to
6206 keyword_symbols_constant_flag.
6207
6208 * data.c (keyword_symbols_constant_flag): Removed.
6209 (Fmakunbound, set_internal, syms_of_data): Remove references to
6210 keyword_symbols_constant_flag.
6211
6212 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
6213
214f877f
KH
62142000-02-23 Kenichi Handa <handa@etl.go.jp>
6215
6216 * syntax.c (multibyte_syntax_as_symbol): New variable.
6217 (syms_of_syntax): Declare it as a Lisp variable.
6218 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
6219 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
6220 nonzero, treat all multibyte characters as symbol.
42088c12 6221 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
6222 characters.
6223
130adcb7
EZ
62242000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
6225
3cb65b0e 6226 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 6227 a deleted frame.
130adcb7 6228
17cbbf95
GM
62292000-02-21 Gerd Moellmann <gerd@gnu.org>
6230
6231 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
6232
6233 * xfns.c (x_window_to_frame, x_any_window_to_frame)
6234 (x_non_menubar_window_to_frame): Check the busy-cursor window.
6235
beb0bc36
DL
62362000-02-21 Dave Love <fx@gnu.org>
6237
6238 * frame.c (Vmouse_position_function): New variable.
6239 (Fmouse_position): Use it.
6240 (syms_of_frame): Install it.
6241
6242 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
6243
1d92afcd
GM
62442000-02-20 Gerd Moellmann <gerd@gnu.org>
6245
6246 * fileio.c (Finsert_file_contents): Unbind the binding of
6247 standard-output done by temp_output_buffer_setup.
329eed9f
GM
6248
6249 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
6250 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
6251 (specbind, unbind_to): Handle most common case of non-constant
6252 symbol with trivial value specially.
6253
6254 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
6255
18e21ce8 62562000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
6257
6258 * data.c (Fmake_variable_buffer_local): Doc fix.
6259 Init found_for_buffer to 0.
6260 (Fmake_variable_frame_local): If the variable has already
6261 been buffer-local, set the check_frame field.
6262
1d4311c3
EZ
62632000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
6264
6265 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
6266 produced for CODING_MODE_LAST_BLOCK requires.
6267
2dc95ddd
DL
62682000-02-18 Dave Love <fx@gnu.org>
6269
6270 * keyboard.c (echo_keystrokes): Remove declaration.
6271 (Vecho_keystrokes) New variable.
6272 (read_char, record_menu_key, read_key_sequence): Use it to allow
6273 use of float value.
6274 (syms_of_keyboard): Change Vecho_keystrokes declaration.
6275
6276 * lread.c: Undef feature selection macros before defining.
6277
f0930f35
GM
62782000-02-18 Gerd Moellmann <gerd@gnu.org>
6279
6280 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
6281 for symbols other than the symbol in question.
6282
e3d4de90
DL
62832000-02-17 Dave Love <fx@gnu.org>
6284
6285 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
6286
0b378936
GM
62872000-02-17 Gerd Moellmann <gerd@gnu.org>
6288
d621caf7
GM
6289 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
6290
0b378936
GM
6291 * alloc.c (enum mem_type): Compile unconditionally.
6292
3b451f74
EZ
62932000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
6294
6295 * xfaces.c (tty_defined_color): Don't return faulire indication
6296 for unspecified-fg and unspecified-bg pseudo-colors.
6297
10689a01
GM
62982000-02-17 Gerd Moellmann <gerd@gnu.org>
6299
1216f5e4
GM
6300 * alloc.c (mark_object): Don't mark symbol names in pure space.
6301 (gc_sweep): Don't unmark symbol names in pure space.
6302
6303 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
6304 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
6305 [GC_MARK_STACK]: New defines.
427ec082 6306 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
6307 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
6308
6309 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
6310
6311 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
6312 allocate_buffer instead of xmalloc.
6313
6314 * alloc.c (toplevel): Include setjmp.h.
6315 (PURE_POINTER_P): New define.
6316 (enum mem_type) [GC_MARK_STACK]: New enumeration.
6317 (Vdead) [GC_MARK_STACK]: New variable.
6318 (lisp_malloc): Add parameter TYPE, call mem_insert if
6319 GC_MARK_STACK is defined.
6320 (allocate_buffer): New function.
427ec082 6321 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
6322 (free_float) [GC_MARK_STACK]: Set type to Vdead.
6323 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
6324 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
6325 (MEM_NIL) [GC_MARK_STACK]: New define.
6326 (struct mem_node) [GC_MARK_STACK]: New structure.
6327 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
6328 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
6329 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
6330 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
6331 (mark_stack) [GC_MARK_STACK]: New functions.
6332 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
6333 (clear_marks): Removed.
6334 (gc_sweep): Set free conses' car, free floats' type, free
6335 symbols' function to Vdead. Use lisp_free to free buffers.
6336 (init_alloc_once): Initialize Vdead.
6337 (survives_gc_p): Return non-zero for pure objects.
6338
6339 * alloc.c: Add comments throughout the file.
6340
2503c8b1
GM
6341 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
6342 that unblocks alarms.
6343
8389e1e2
GM
6344 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
6345 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
6346 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
6347
10689a01 6348 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 6349
bfc17d18
KH
63502000-02-17 Kenichi Handa <handa@etl.go.jp>
6351
4a09dee0
KH
6352 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
6353 avoid infinite error signaling. Allocate sufficient memory for
6354 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 6355
2b927d02
SM
63562000-02-17 Stefan Monnier <monnier@cs.yale.edu>
6357
6358 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
6359 depends on the previous behavior.
6360
b49cb764
GM
63612000-02-16 Gerd Moellmann <gerd@gnu.org>
6362
6363 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
6364
99e95407
GM
63652000-02-15 Gerd Moellmann <gerd@gnu.org>
6366
6367 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
6368
6369 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 6370 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
6371 write(2).
6372
6ffd3cf7
RS
63732000-02-15 Richard M. Stallman <rms@gnu.org>
6374
6375 * data.c (set_internal): Don't make variable buffer-local
6376 if within a let-binding for the same buffer.
6377 (let_shadows_buffer_binding_p): New function.
6378
6379 * eval.c (specbind): For buffer-local value,
6380 record the current buffer also.
6381 (unbind_to): Cope with that change.
6382
cad53475
GM
63832000-02-15 Gerd Moellmann <gerd@gnu.org>
6384
6385 * window.c (Fsave_window_excursion): Doc fix.
6386
1aa963c8
SM
63872000-02-15 Stefan Monnier <monnier@cs.yale.edu>
6388
6389 * syntax.c (back_comment): Make sure we only consider comment-starters
6390 of the relevant style and return -1 in case of a failure to find the
6391 beginning of the comment.
6392 (Fforward_comment): If back_comment fails, go back to the position just
6393 after the comment-end.
6394 (scan_lists): Add comment describing a very minor bug.
6395
b9b84fd3
SM
63962000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6397
6398 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
6399 `completion-regexp-list' in the docstring.
6400
3a28db80
DL
64012000-02-14 Dave Love <fx@gnu.org>
6402
6403 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
6404
fb4a568d
SM
64052000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6406
6407 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
6408 to Emacs' syntax. Also fix the comment about set/not-set meanings
6409 since Emacs syntax is not the value 0 any more.
6410 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
6411 since it's now part of RE_SYNTAX_EMACS.
6412
1063ebb5
DL
64132000-02-12 Dave Love <fx@gnu.org>
6414
6415 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
6416 Alpha.
6417
fb07a302
GM
64182000-02-12 Gerd Moellmann <gerd@gnu.org>
6419
6420 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
6421
aaf2320c
DL
64222000-02-12 Dave Love <fx@gnu.org>
6423
6424 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
6425
6426 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
6427 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
6428 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
6429
6430 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
6431
6432 * s/nextstep.h: Don't define HAVE_ALLOCA.
6433
6434 * config.in: Add vfork bits.
6435
eedf8bde
GM
64362000-02-12 Gerd Moellmann <gerd@gnu.org>
6437
6438 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
6439 unwind function to undo the effect of stopping atimers.
6440
6441 * keyboard.c (bind_polling_period): Stop all timers except
6442 poll_timer.
6443
6444 * atimer.c (stopped_atimers): New variable.
6445 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
6446 New functions.
6447
6448 * atimer.h (stop_other_atimers, run_all_atimers)
6449 (unwind_stop_other_atimers): Add function prototypes.
427ec082 6450
eedf8bde
GM
6451 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
6452
8476c2f8
KR
64532000-02-11 Ken Raeburn <raeburn@gnu.org>
6454
6455 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
6456 library may depend on jpeg.
6457 (atimer.o): Depends on atimer.c.
6458
0e85e4a3
KH
64592000-02-11 Kenichi Handa <handa@etl.go.jp>
6460
6461 * insdel.c (del_range_1): Call update_compositions.
6462 (del_range_both): Call update_compositions just once..
6463
97fa0cc8
DL
64642000-02-10 Dave Love <fx@gnu.org>
6465
6466 * xfns.c (create_frame_xic): Fix initialization of automatic
6467 aggregates for pcc.
6468
25566a3c
KH
64692000-02-09 Kenichi Handa <handa@etl.go.jp>
6470
6471 * ccl.c (CCL_MAKE_CHAR): New macro.
6472 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
6473 registers by CCL_MAKE_CHAR before calling translate_char.
6474 <CCL_TranslateCharacterConstTbl> Likewise.
6475
69da54ba
DL
64762000-02-08 Dave Love <fx@gnu.org>
6477
6478 * lread.c (__EXTENSIONS__): Define.
6479
f7136ee8
GM
64802000-02-08 Gerd Moellmann <gerd@gnu.org>
6481
6482 * puresize.h (BASE_PURESIZE): Increase to 650000.
6483
7768790b
EZ
64842000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6485
6486 * msdos.c (XMenuActivate): Turn off the cursor after displaying
6487 the help message.
6488
38fd211b
EZ
64892000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6490
6491 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
6492 md, mh, mb, mr, and me to the fake termcap entry.
6493
66e4690f
KR
64942000-02-06 Ken Raeburn <raeburn@gnu.org>
6495
6496 * sound.c (sound_cleanup): Don't call device close routine if the
6497 function pointer is null.
6498
a75dfea0
AI
64992000-02-06 Andrew Innes <andrewi@gnu.org>
6500
6501 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
6502 around image definitions and prototypes.
6503 (gamma_correct) [WINDOWSNT]: New prototype.
6504
6505 * w32term.c (x_make_frame_visible): Replace call to
6506 input_poll_signal with poll_for_input.
6507
6508 * window.c [WINDOWSNT]: Include w32term.h.
6509
6510 * xdisp.c [WINDOWSNT]: Include w32term.h.
6511
6512 * makefile.nt: Add dependencies on w32gui.h.
6513 (OBJ1): Include atimer.obj.
6514 ($(BLD)\atimer.obj): New dependency rule.
6515
6516 * w32.c (sigmask): New function (does nothing).
6517 (sigunblock): Ditto.
6518
6519 * frame.c [WINDOWSNT]: Include w32term.h.
6520
6521 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
6522
6523 * lread.c (syms_of_lread): Fix literal newlines.
6524
6525 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
6526 the string constant limit (2048 bytes) in MSVC.
6527 (main): Ditto.
6528
59ddecde
GM
65292000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
6530
6531 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
6532 area.
6533 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
6534 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
6535 dispatch the event.
6536
07590973
DL
65372000-02-04 Dave Love <fx@gnu.org>
6538
6539 * fileio.c: Remove some unused vars.
6540 (_GNU_SOURCE): Define (for euidaccess).
6541
6542 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
6543
6544 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
6545 gcpro1, gcpro2.
6546 (read_minibuf): Deal with allow_props correctly.
6547
649351f9
EZ
65482000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
6549
6550 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
6551
66e4690f 65522000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
6553
6554 * search.c (compile_pattern): If a cache entry has a nil regexp,
6555 fill in that entry instead of clobbering a previously cached
6556 string regexp.
6557
66e4690f 65582000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
6559
6560 * puresize.h (BASE_PURESIZE): Increase to 610000.
6561
d240a249
GM
65622000-02-02 Gerd Moellmann <gerd@gnu.org>
6563
6564 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
6565 can GC.
6566
ca91fb26
KH
65672000-02-02 Kenichi Handa <handa@etl.go.jp>
6568
25660570
KH
6569 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
6570 instead of incrementing ic directly.
6571 <CCL_WriteExprConst> Likewise.
6572 <ccl_set_expr>: Set ic to jump_address.
6573
ca91fb26
KH
6574 * fileio.c (e_write): Fix the handling of
6575 CODING_FINISH_INSUFFICIENT_SRC.
6576
2ede9689
DL
65772000-02-01 Dave Love <fx@gnu.org>
6578
6579 * editfns.c (Fpropertize): Doc fix.
6580
6581 * process.c (Fstart_process): Doc fix.
6582
6583 * eval.c: Fix various doc strings not to duplicate information
6584 from help-manyarg-func-alist.
6585
6586 * window.c (Fset_window_margins): Don't make interactive. Doc
6587 fix.
6588
6589 * doc.c (Vhelp_manyarg_func_alist): New variable.
6590 (Fdocumentation): Use it.
6591 (syms_of_doc): Define it.
6592
b6680a0e
GM
65932000-01-31 Gerd Moellmann <gerd@gnu.org>
6594
2cb750ba
GM
6595 * xterm.c (xim_open_dpy): Remove unused local variable.
6596
74e9213b
GM
6597 * emacs.c (USAGE): Use term `display options' instead of `X
6598 options'.
6599
6600 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
6601 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
6602
b6680a0e
GM
6603 * fns.c (sweep_weak_table): New function.
6604 (sweep_weak_hash_tables): Use it. Keep on marking until there
6605 is no more change.
6606
994c5afe
GM
66072000-01-30 Gerd Moellmann <gerd@gnu.org>
6608
6609 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
6610 that XTread_socket does not crash by trying to call XNoOp on a
6611 closed display.
427ec082 6612
f00276e3
JR
66132000-01-30 Jason Rumney <jasonr@gnu.org>
6614
6615 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
6616 Change selected_frame to SELECTED_FRAME ().
6617 (w32_console_mouse_position): Remove #ifndef MULE from around
6618 `insist' parameter.
6619
6620 * makefile.nt: Remove dosfns.obj.
6621
6622 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
6623
6624 * w32fns.c (w32_defined_color): Check for valid frame before
6625 applying gamma correction. Eliminate dependency on frame elsewhere.
6626 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
6627 (w32_to_x_font): Use resx and resy not height_in and width_in.
6628 (x_to_w32_font): Doc fix.
6629 (xlfd_strip_height): New function to strip and return font height.
6630 (w32_font_match): Compare height separately from rest of xlfd
6631 spec, using xlfd_strip_height.
6632
6633 * w32term.c (w32_term_init): Swap resx and height_in, resy and
6634 width_in. Use w32_defined_color in place of defined_color.
6635
6636 * w32faces.c: Merge more of DOS and X specifics in preparation for
6637 merge with xfaces.c.
6638 (defined_color): Remove FIXME comment.
6639 (tty_color_name): Provide w32-specific function.
6640 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
6641
6642 * w32console.c (turn_on_face, turn_off_face): Removed.
6643 (w32_face_attributes): New function.
6644 (Global_variables): Reduce scope where possible.
6645 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
6646 fill attribute.
6647 (hl_mode): Don't modify text attributes.
6648 (write_glyphs): Don't do anything if len <= 0. Use
6649 w32_face_attributes to get attributes for drawing. Write
6650 terminating codes using char_attr_normal.
6651 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
6652 (update_begin, update_end): Likewise.
6653 (vga_stdcolor_name): New function.
6654 (initialize_w32_display): Remove char_attr_reverse and char_attr.
6655 (Fset_screen_color): Remove char_attr_reverse.
6656
b08e8bb2
GM
66572000-01-29 Gerd Moellmann <gerd@gnu.org>
6658
6659 * xfns.c (xic_set_preeditarea): Take window parameter and
6660 window-relative pixel-positions.
6661
6662 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
6663 is its frame's selected window.
6664 (xim_instantiate_callback): Likewise.
6665
6666 * xfns.c (x_create_im): Removed.
6667 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
6668 (supported_xim_styles): Renamed from supported_styles.
6669 (best_xim_style): Renamed from best_style.
6670 (create_frame_xic): Renamed from xic_create_frame.
6671 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 6672
b08e8bb2
GM
66732000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
6674
6675 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
6676 our frames, call XFilterEvent with 2nd parameter `None'.
6677 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
6678 returning XBufferOverflow.
6679 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
6680 area.
6681 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
6682 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
6683 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
6684 (xim_initialize, xim_close)
6685 [HAVE_X_I18N && HAVE_X11R6]: New functions.
6686 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
6687 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
6688 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
6689
6690 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
6691 and `xim_styles'.
6692 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
6693 `xic_style' and `xic_xfs'.
6694 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
6695 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
6696 (FRAME_XIM): Removed.
6697
6698 * xfns.c (supported_styles): New variable.
6699 (DEFAULT_STYLE, DEFAULT_FONT): New macros
6700 (xic_create_xfontset, best_style, xic_create_frame)
6701 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
6702 (xic_set_xfontset): New functions.
6703
142e109c
DL
67042000-01-28 Dave Love <fx@gnu.org>
6705
6706 * s/irix6-5.h: Revert last change after change to irix5-0.h.
6707
6708 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
6709
b02786f9
GM
67102000-01-28 Gerd Moellmann <gerd@gnu.org>
6711
d060bc9f
GM
6712 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
6713 for *scratch* if it already existed.
6714
b02786f9
GM
6715 * emacs.c (USAGE): New macro.
6716 (main): Use it to display usage information.
6717
2c52d7e4
EZ
67182000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
6719
6720 Support for the menu-help feature:
6721
6722 * msdos.h: Change prototypes of XMenuAddSelection and
6723 XMenuActivate.
6724
6725 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
6726 part of the line to the termscript file.
6727 (IT_clear_to_end): Clear the entire line, not just its beginning.
6728 (menu_help_message, prev_menu_help_message): New variables.
6729 (IT_menu_make_room): Make room for the help_text member.
6730 (IT_menu_display): New argument disp_help; all callers changed.
6731 If disp_help is non-zero, store the help text of the active menu
6732 item in menu_help_message.
6733 (XMenuAddPane): Initialize the help_text member to NULL.
6734 (XMenuAddSelection): New argument help_text. Store it in the
6735 XMenu structure.
6736 (XMenuActivate): New argument help_callback. If the value of
6737 menu_help_message has changed since the last time, display the
6738 menu help message text while waiting for the mouse to move. Clear
6739 the echo area before exiting.
6740 (XMenuDestroy): Free the help_text member.
6741
ffe0bcd1
GM
67422000-01-27 Gerd Moellmann <gerd@gnu.org>
6743
6744 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
6745 XMenuAddSelection. Pass help callback to XMenuActivate.
6746 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
6747
50dbd23f
EZ
67482000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
6749
6750 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
6751 and EMACS_SET_USECS.
6752
f5941bf8
GM
67532000-01-26 Dave Love <fx@gnu.org>
6754
6c67ddee
DL
6755 * editfns.c (Fchar_after, Fchar_before): Doc fix.
6756
f5941bf8
GM
6757 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
6758 an error may be signalled.
6759
9e49c990
GM
67602000-01-26 Gerd Moellmann <gerd@gnu.org>
6761
fc3cb460
GM
6762 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
6763 LD_SWITCH_SYSTEM inherited from irix5-0.h.
6764
9e49c990
GM
6765 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
6766
d0c037d8
GM
67672000-01-25 Gerd Moellmann <gerd@gnu.org>
6768
6769 * charset.c (Fstring): If there is a multibyte char among
6770 the args, always return a multibyte string.
6771
e12489f9
GM
67722000-01-25 Gerd Moellmann <gerd@gnu.org>
6773
6774 * sysdep.c (sys_select): Turn atimers off and on instead of
6775 recording and restoring old alarm handler
6776
6777 * process.c (toplevel): Include atimer.h.
6778 (create_process_1): Rewritten.
6779 (create_process): Use atimers instead of alarm.
6780 (wait_reading_process_input) [hpux]: Turn atimers off instead
6781 of turning off SIGALRM.
6782 (wait_reading_process_input): Turn off atimers instead off
6783 calling stop_polling.
6784
6785 * emacs.c (main): Call init_atimer.
6786
6787 * keyboard.c (toplevel): Include systime.h and atimer.h.
6788 (polling_for_input): Removed because unused.
6789 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
6790 (poll_timer): New variable.
6791 (poll_for_input, poll_for_input_1): New functions.
6792 (start_polling, stop_polling): Rewritten.
6793
6794 * keyboard.h (polling_for_input): Removed.
427ec082 6795
e12489f9
GM
6796 * atimer.h, atimer.c: New files.
6797
6798 * Makefile.in (obj): Add atimer.o.
6799 (atimer.o): New target.
6800
6801 * blockinput.h (pending_atimers): Add extern declaration.
6802 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
6803
6804 * lisp.h (popup_activated_flag): Add extern declaration.
6805
6806 * xmenu.c (popup_activated_flag): Make externally visible.
6807 (popup_activate_callback) [USE_MOTIF]: Increment
6808 popup_activated_flag.
6809 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
6810
6811 * xterm.c (toplevel): Include atimer.h.
6812 (toolkit_scroll_bar_interaction): New variable.
6813 (Fxt_process_timeouts): Removed.
6814 (x_process_timeouts): New function.
6815 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
6816 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
6817 (x_make_frame_visible): Call poll_for_input_1 instead of
6818 input_poll_signal. Don't call alarm.
6819 (x_initialize): Install timer calling x_process_timeouts.
427ec082 6820
1e5279b9
DL
68212000-01-24 Dave Love <fx@gnu.org>
6822
6c67ddee 6823 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
6824 Don't use -cckr -- apparently not now necessary.
6825
edf6aeb8
EZ
68262000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
6827
6828 * msdos.c (IT_menu_display): Truncate long menu lines at the right
6829 screen boundary.
6830
9badad41
JR
68312000-01-23 Jason Rumney <jasonr@gnu.org>
6832
6833 * w32fns.c (w32_defined_color): Apply gamma correction before
6834 trying to map to the palette.
6835 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
6836 to w32_clear_rect.
6837
6838 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
6839 here. Callers changed to always pass real device context.
6840 (w32_draw_bitmap): Likewise.
6841 (w32_get_glyph_overhangs): Likewise.
6842 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
6843 one.
6844 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
6845 pfnSetScrollInfo and SetScrollRange.
6846 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
6847 back into MULE characters after decoding them.
6848 (x_get_glyph_face_and_encoding): Likewise.
6849 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
6850 GetCharABCWidthsW fails, since this is defined on Windows 9x.
6851 (x_produce_glyphs): Calculate per char metrics for a character
6852 that we know exists in default font when font_not_found_p is true.
6853
63bd786b
JR
68542000-01-22 Jason Rumney <jasonr@gnu.org>
6855
6856 * makefile.nt (intervals.obj, composite.obj): New modules.
6857 (composite.h): Added as dependency where appropriate.
6858
6859 * w32gui.h (XGCValue): New struct for emulating X GCs.
6860
6861 * w32term.h (XCharStruct): New struct for emulating X.
6862
6863 * w32console.c (turn_on_face, turn_off_face): New functions.
6864 (change_line_highlight): New prototype for new redisplay.
6865 (write_glyphs): Support multibyte text. Support faces.
6866
6867 * w32faces.c: Complete rewrite for new redisplay based on new
6868 xfaces.c.
6869
6870 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
6871 throughout. struct frame * in place of FRAME_PTR.
6872 Skeleton support for images, toolbars, tooltips from xfns.c.
6873 (Fx_create_frame): Use system default for default scroll bar
6874 width.
6875 (w32_get_arg): Renamed from x_get_arg.
6876 (Fx_file_dialog): New function.
6877 (w32_list_fonts): Check cache before asking system.
6878 (Vw32_enable_synthesized_fonts): New variable.
6879 (Vw32_enable_italics): Obsolete, removed.
6880
6881 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
6882 Use SELECTED_FRAME macro.
6883
6884 * w32menu.c: Add skeleton support for help strings on menus.
6885 (add_menu_item): Native checkbox and radio support added, but not
6886 yet enabled due to bugs.
6887 (push_menu_item): Add parameters type, selection and help.
6888 Callers updated.
6889 Formatting changes to reduce unnecessary diffs with xmenu.c.
6890
6891 * w32select.c (Fw32_set_clipboard_data): Update call to
6892 find_charset_in_str.
6893
6894 * w32term.c: Complete rewrite for new redisplay based on new
6895 xterm.c with necessary sections merged back in from old w32term.c.
6896
6ffd3cf7 68972000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
6898
6899 * data.c (set_internal): Further fix in same criterion.
6900
6ffd3cf7 69012000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
6902
6903 * data.c (set_internal): Fix the criteria for whether
6904 to swap out the old cached binding.
6905
60af03f1
DL
69062000-01-19 Dave Love <fx@gnu.org>
6907
6908 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
6909
f9be074f
KH
69102000-01-18 Kenichi Handa <handa@etl.go.jp>
6911
6912 * regex.c (re_compile_fastmap): While checking a range table for
6913 `charset', skip flag bits for a character class correctly.
6914
52b8dbf9
GM
69152000-01-17 Gerd Moellmann <gerd@gnu.org>
6916
d36100c9
GM
6917 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
6918
52b8dbf9
GM
6919 * xfns.c (x_window): Call lw_create_widget with new parameter
6920 list.
6921
6922 * widget.c (EmacsFrameSetCharSize): Change size of children first
6923 because of problems with main window geometry management under
6924 Lesstif.
6925
6926 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
6927 MENU_ITEMS_ITEM_.*.
6928 (MENU_ITEMS_ITEM_HELP): New enumerator.
6929 (push_menu_item): Add parameter HELP. Record help in menu_items.
6930 (single_menu_item, single_submenu, list_of_items): Call
6931 push_menu_item with new parameter.
6932 (single_submenu): Set help string in widget value.
6933 (menu_highlight_callback): New function.
6934 (set_frame_menubar): Call lw_create_widget with new
6935 parameter list.
6936 (xmenu_show, xdialog_show): Ditto.
6937
3139018f
GM
69382000-01-13 Gerd Moellmann <gerd@gnu.org>
6939
6940 * sound.c (Fplay_sound): Improve doc string.
6941
83c8f461
RS
69422000-01-11 Richard M. Stallman <rms@gnu.org>
6943
6944 * lisp.h (set_internal): Enter the new arg.
6945
6946 * eval.c (specbind): Record buffer-local variables specially,
6947 indicating which buffer's binding was saved.
6948 (unbind_to): Restore buffer-local variables specially
6949 in the proper buffer.
6950
6951 * data.c (set_internal): New arg BUF.
427ec082 6952
83c8f461
RS
6953 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
6954 * data.c (Fset): Pass new arg to set_internal.
6955 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 6956
1fab1775
GM
69572000-01-11 Gerd Moellmann <gerd@gnu.org>
6958
6959 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
6960 xprintsym.
6961
83c8f461 69622000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
6963
6964 * minibuf.c (Ftry_completion): Doc fix.
6965
7a85e4df
GM
69662000-01-11 Gerd Moellmann <gerd@gnu.org>
6967
6968 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
6969 vector, too.
6970
a970dae4
AS
69712000-01-11 Andreas Schwab <schwab@suse.de>
6972
6973 * coding.c (code_convert_region): Initialize total_skip.
6974
c65d14ee
DL
69752000-01-08 Dave Love <fx@gnu.org>
6976
6977 * eval.c (Fuser_variable_p): Check customizability too.
6978
834938d2
GM
69792000-01-07 Gerd Moellmann <gerd@gnu.org>
6980
6981 * minibuf.c (Fcompleting_read): Doc fix.
6982
e0303cd6
GM
69832000-01-05 Gerd Moellmann <gerd@gnu.org>
6984
8a26744b
GM
6985 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
6986 -L /usr/local/lib.
6987
e0303cd6
GM
6988 * xfns.c (x_create_im): New function to set IM and IC of a frame.
6989 Check that input style is supported before trying to create an
6990 IC for it.
6991 (x_window): Call x_create_im.
427ec082 6992
2e471eb5
GM
69932000-01-04 Gerd Moellmann <gerd@gnu.org>
6994
560a7bd2
GM
6995 * xfns.c (current_gif_memory_src): New variable.
6996 (gif_load): Record the address of the current memory source
6997 in current_gif_memory_src.
6998 (gif_read_from_memory): Use current_gif_memory_src.
6999
f9ee84a3
GM
7000 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
7001 macros statement form.
7002
d1299cde
GM
7003 * sound.c (struct sound): Renamed from struct sound_file.
7004 (struct sound): Add members `data' and `header_size'.
7005 (enum sound_attr): Add SOUND_DATA.
7006 (current_sound, current_sound_device): Variables renamed from
7007 sound_file and sound_device.
7008 (parse_sound): Parse :data.
7009 (parse_sound): Handle sound data in strings.
7010 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 7011 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
7012 needed header size.
7013 (wav_play, au_play): Play sounds from string data.
7014
2e471eb5
GM
7015 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
7016
7017 * lisp.h: Add prototype for allocate_string_data.
7018
7019 * alloc.c (Fgarbage_collect): Return number of live and free
7020 strings.
7021
7022 * alloc.c (mark_buffer): Remove code in #if 0.
7023 (gc_sweep): Ditto.
7024 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
7025 (strings_consed): New variable.
7026 (allocate_string): Set it.
7027 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
7028 (Fmemory_use_counts): Return strings_consed. Use Flist.
7029
7030 * alloc.c: General cleanup in comments etc. Remove conditional
7031 compilation for `standalone'.
7032
7033 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
7034
7035 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
7036 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
7037 (DONT_COPY_FLAG): Removed.
7038 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
7039 (struct sdata, struct sblock): New
7040 (struct string_block): Rewritten.
7041 (STRINGS_IN_STRING_BLOCK): New macro.
7042 (oldest_sblock, current_sblock, total_strings, total_free_strings)
7043 (large_sblocks, string_blocks, string_free_list): New variables.
7044 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
7045 (init_strings): Rewritten.
7046 (allocate_string, allocate_string_data, compact_small_strings)
7047 (free_large_strings, sweep_strings): New functions.
7048 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
7049 (struct string_block_head, current_string_block)
7050 (first_string_block, large_string_blocks, STRING_FULLSIZE)
7051 (STRING_PAD): Removed.
7052 (make_uninit_multibyte_string, make_pure_string): Rewritten.
7053 (Fgarbage_collect): Don't set mark bit in large strings.
7054 (mark_object): Mark strings differently. Mark symbol names
7055 differently.
7056 (survives_gc_p): Test marked strings differently.
427ec082 7057 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
7058 symbol names.
7059 (compact_strings): Removed.
7060
42608ba8
EZ
70612000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
7062
7063 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
7064 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
7065
e0a09e1a
KH
70662000-01-04 Kenichi Handa <handa@etl.go.jp>
7067
dd9f0750 7068 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 7069 in a non-empty buffer.
dd9f0750 7070
3c0f3b15 7071 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 7072
44cd3ae5
GM
70732000-01-03 Gerd Moellmann <gerd@gnu.org>
7074
7075 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
7076 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
7077
7078 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
7079
c182a70f
EZ
70802000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7081
7082 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
7083 need to test for MSDOS frames.
7084
24480d5b
EZ
70852000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7086
7087 * dosfns.c (unspecified_colors): Remove.
7088 (msdos_stdcolor_idx): Use global variables unspecified_fg and
7089 unspecified_bg.
7090 (msdos_stdcolor_name): Return strings for unspecified fore- and
7091 back-ground colors.
7092
7093 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 7094 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
7095 (tty_color_name): Return Lisp strings for unspecified fore- and
7096 back-ground colors.
7097 (Finternal_set_lisp_face_attribute): Remove the special treatment
7098 for Qunspecified_{f,b}g.
7099 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
7100 string.
7101
047f434a
GM
71022000-01-03 Gerd Moellmann <gerd@gnu.org>
7103
7104 * xdisp.c (reseat_at_next_visible_line_start): Position before
7105 newline only if ending up on a newline.
7106 (next_element_from_ellipsis): Return success. Handle case of
7107 displaying no ellipsis. Fix case of ellipsis defined in display
7108 table.
7109 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
7110 returns 0.
7111
d684c676
EZ
71122000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7113
7114 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
7115 (Fcolor_supported_p): Renamed from face-color-supported-p.
7116
5fe1d139
EZ
71172000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7118
7119 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
7120 list of colors renamed to tty-defined-color-alist.
7121 (tty_color_name): Pass the frame to tty-color-by-index.
7122 (realize_tty_face): tty-color-alist is now a function which
7123 accepts the frame as argument.
7124
7125 * term.c (Ftty_display_color_p): Accept an optional argument
7126 FRAME.
7127
816be8b8
EZ
71282000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7129
7130 * term.c (insert_glyphs): Pass glyph, not &glyph, to
7131 encode_terminal_code.
7132
b635321e
EZ
71332000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7134
7135 * dispnew.c (mode_line_string): Support termcap frames as well.
7136
9b784e96
GM
71372000-01-01 Gerd Moellmann <gerd@gnu.org>
7138
27189709
GM
7139 * syntax.c (Fforward_word): Undo previous change.
7140
7141 * editfns.c (Fconstrain_to_field): Don't constrain if
7142 inhibit-field-text-motion is non-nil.
7143 (Fline_beginning_position): Undo previous change.
7144 (Fline_end_position): Ditto.
7145
7146 * syntax.c (Fforward_word): Notice field boundaries only if
7147 inhibit-field-text-motion is nil.
7148
7149 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
7150
7151 * editfns.c (Vinhibit_field_text_motion): New variable.
7152 (inhibit-field-text-motion): New DEFVAR_LISP.
7153 (Fline_beginning_position, Fline_end_position): Notice field
7154 boundaries only if inhibit-field-text-motion is nil.
7155
45158a91
GM
7156 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
7157 All calls adjusted.
7158 (x_build_heuristic_mask): Likewise.
7159 (xbm_load_image_from_file): Change error output.
7160 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
7161 (gif_load, gs_load, x_kill_gs_process): Ditto.
7162
9b784e96
GM
7163 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
7164 color indices when accessing raster pixels.
63cec32f
GM
7165 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
7166 one of :file or :data.
7167 (enum pbm_keyword_index): Add PBM_DATA.
7168 (pbm_format): Add :data.
7169 (pbm_image_p): Allow either :file or :data.
7170 (pbm_read_file): New function.
7171 (pbm_scan_number): Rewritten to read from string.
7172 (pbm_load): Support :data.
9b784e96 7173
2cb085db 7174See ChangeLog.8 for earlier changes.
6922b018
KH
7175
7176;; Local Variables:
49b3bd82 7177;; coding: iso-2022-7bit
6922b018 7178;; End: