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