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