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