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