]> code.delx.au - gnu-emacs/blob - src/ChangeLog
(merge_properties_sticky): Likewise.
[gnu-emacs] / src / ChangeLog
1 2001-12-09 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2
3 * charset.c (char_to_string_1, translate_char, Fdefine_charset):
4 Add parentheses around && within ||.
5
6 * indent.c (compute_motion): Likewise.
7
8 * intervals.c (merge_properties_sticky): Likewise.
9
10 * coding.c (setup_coding_system, shrink_encoding_region)
11 (Fdecode_sjis_char): Likewise.
12
13 2001-12-07 Andreas Schwab <schwab@suse.de>
14
15 * xdisp.c (display_mode_element): Don't read past end of string if
16 it ends with '%'.
17
18 * alloc.c (inhibit_garbage_collection): Don't exceed value an int
19 can hold.
20
21 * data.c (Vmost_positive_fixnum, Vmost_negative_fixnum): Renamed
22 from most_positive_fixnum and most_negative_fixnum, resp., and
23 type changed to Lisp_Object.
24 (syms_of_data): DEFVAR_LISP them.
25
26 2001-12-07 Richard M. Stallman <rms@gnu.org>
27
28 * callproc.c (init_callproc): Set Vdata_directory based on the source
29 location whenever Emacs was run uninstalled.
30
31 2001-12-06 Paul Eggert <eggert@twinsun.com>
32
33 * config.in (HAVE_WORKING_VFORK): New #undefs.
34 * process.c (create_process):
35 Use HAVE_WORKING_VFORK, not HAVE_VFORK.
36 * m/cnvrgnt.h (HAVE_VFORK): Remove #define.
37 * m/ibm370aix.h (HAVE_VFORK): Remove #undef.
38 * m/ibmps2-aix.h (HAVE_VFORK): Remove #define.
39 * m/intel386.h (HAVE_VFORK): Likewise.
40 * m/mips-siemens.h (HAVE_VFORK): Likewise.
41 * m/mips.h (HAVE_VFORK): Likewise.
42 * s/freebsd.h (vfork): Remove #define.
43 * s/lynxos.h (HAVE_VFORK): Remove #undef.
44 * s/usg5-4-2.h: Fix comment about vfork.
45
46 2001-12-06 Richard M. Stallman <rms@gnu.org>
47
48 * s/hpux10.h (random): Add undef.
49 (HAVE_RANDOM): Define it just once.
50
51 2001-12-06 Stefan Monnier <monnier@cs.yale.edu>
52
53 * eval.c: Undo last change: the standard syntax is not wanted.
54
55 2001-12-06 Eli Zaretskii <eliz@is.elta.co.il>
56
57 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Remove all the
58 scroll bars of the frame before deleting the frame itself. If the
59 frame has a widget, delete the frame with XtDestroyWidget, and do
60 not call XDestroyWindow before that.
61
62 2001-12-06 Kim F. Storm <storm@cua.dk>
63
64 * xfns.c (x_report_frame_params): Return actual fringe widths.
65
66 * w32fns.c (x_report_frame_params): Return actual fringe widths.
67
68 2001-12-05 Andrew Innes <andrewi@gnu.org>
69
70 * alloc.c (Fgarbage_collect): Shrink buffer gaps that are
71 excessively large.
72
73 * insdel.c (make_gap_larger): New function.
74 (make_gap_smaller): New function.
75 (make_gap) [USE_MMAP_FOR_BUFFERS || REL_ALLOC]: Call
76 make_gap_smaller if arg is negative.
77
78 2001-12-04 Stefan Monnier <monnier@cs.yale.edu>
79
80 * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal prototype.
81 Pass a dummy argument when calling interrupt_signal.
82 (parse_menu_item): Mark disabled items before checking for empty def.
83 (read_char_minibuf_menu_prompt): Make safety more visible.
84 (read_key_sequence): Add a `first_unbound' variable.
85 Use it to detect C-c ESC ESC ESC ESC ... cases and drop the
86 unbound prefix as soon as we can detect it.
87
88 * doc.c (Fsnarf_documentation): Add prototype.
89 (get_doc_string): Handle negative arguments.
90 (Fdocumentation): Use AREF and ASIZE.
91 Move the calls to get_doc_string to a single place.
92 Don't confuse an interactive-spec for a docstring reference.
93 (Fdocumentation_property): Take advantage of the fact that
94 get_doc_string now ignores the sign of the docstring position.
95
96 * eval.c: Use standard syntax for usage in docstrings.
97
98 2001-12-03 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
99
100 * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief` an option.
101
102 2001-12-02 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
103
104 * xterm.c (x_draw_image_relief): Use predefined macro instead of
105 constant when the value of `tool_bar_button_relief' is negative.
106
107 2001-12-02 Richard M. Stallman <rms@gnu.org>
108
109 * xmenu.c (menu_highlight_callback): Use `help' field as Lisp_Object.
110 (single_submenu, xmenu_show): Set `help' field as Lisp_Object.
111
112 * fileio.c (read_non_regular): Delete Fsignal call.
113
114 2001-12-01 Stefan Monnier <monnier@cs.yale.edu>
115
116 * lisp.h (run_hook_list_with_args): Undo last change.
117
118 2001-12-01 Gerd Moellmann <gerd@gnu.org>
119
120 * xterm.c (x_draw_fringe_bitmap): Always undo clipping.
121
122 2001-12-01 Jason Rumney <jasonr@gnu.org>
123
124 * window.c (Qleft_fringe, Qright_fringe): Remove. Now in frame.c.
125
126 * w32term.h (WM_MOUSELEAVE, TME_LEAVE, TRACKMOUSEEVENT)
127 [!WM_MOUSELEAVE]: Define.
128
129 * w32menu.c (current_popup_menu, get_menu_item_info):
130 (set_menu_item_info): New vars.
131 (set_frame_menubar): Doc fix clarifying GC interaction with menus.
132 (w32_menu_show): Set current_popup_menu.
133 (add_menu_item): Allocate new strings for owner-drawn menu items
134 and help strings.
135 Use owner-draw for disabled menu items again.
136 (w32_menu_display_help): Ignore owner-drawn items and popup menus.
137 (w32_free_submenu_strings, w32_free_menu_strings): New functions.
138
139 * w32fns.c (trackmouse_window, track_mouse_event_fn): New vars.
140 (w32_wnd_proc) <WM_MOUSEMOVE>: Notice when mouse enters frame.
141 <WM_EXITMENULOOP>: Free menu strings.
142 <WM_MOUSELEAVE>: Stop tracking mouse.
143 (x_create_tip_frame): Specify no minibuffer, modeline or fringes.
144
145 * w32term.c (w32_read_socket) <WM_MOUSELEAVE>: Cancel help echo
146 and mouse face.
147
148 2001-12-01 Kim F. Storm <storm@cua.dk>
149
150 The following changes add left-fringe and right-fringe
151 frame parameters to adjust fringe widths, or remove one or
152 both fringes.
153
154 * frame.h (struct frame): Remove trunc_area_pixel_width and
155 trunc_area_cols fields.
156 (Qleft_fringe, Qright_fringe): Declare.
157 (FRAME_RIGHT_FRINGE_WIDTH): New macro.
158
159 * frame.c (Qleft_fringe, Qright_fringe): New vars.
160 (syms_of_frame): Initialize them.
161
162 * window.c (coordinates_in_window): Handle separate left and right
163 fringe widths.
164
165 * xterm.h (struct x_output): Add left_fringe_width, right_fringe_width,
166 and fringe_cols fields.
167 (FRAME_FRINGE_BITMAP_WIDTH, FRAME_FRINGE_BITMAP_HEIGHT): Remove macros.
168 (FRAME_X_FRINGE_COLS): Use fringe_cols field.
169 (FRAME_X_FRINGE_WIDTH): Use fringes_extra field.
170 (FRAME_X_LEFT_FRINGE_WIDTH): Use left_fringe_width field.
171 (FRAME_X_RIGHT_FRINGE_WIDTH): Use right_fringe_width field.
172 (x_compute_fringe_widths): Add prototype.
173
174 * xterm.c (zv_height, zv_bits, zv_period): Changed zv bitmap to
175 fill fringe evenly with small dashes.
176 (x_draw_fringe_bitmap): Clear background if necessary. Align and
177 clip the new ZV bitmap to avoid jitter between rows.
178 (x_draw_row_fringe_bitmaps): Rely on x_draw_fringe_bitmap to clear
179 background. Don't draw fringe bitmaps if fringe width is zero.
180 (x_compute_fringe_widths): New function.
181 (x_new_font, x_set_window_size_1): Use it.
182
183 * xfns.c (x_frame_parms): Add `left-fringe' and `right-fringe' parms.
184 (x_set_frame_parameters): Process Process `font' parameter before other
185 parameters as fringe widths depend on it.
186 (x_set_fringe_width): New function.
187 (x_figure_window_size): Use x_compute_fringe_widths.
188 (Fx_create_frame): Process `left-fringe' and `right-fringe' frame
189 parameters.
190
191 * widget.c (set_frame_size): Use x_compute_fringe_widths.
192 (EmacsFrameSetCharSize): Ditto.
193
194 * w32term.h: Merged changes from xterm.h.
195 * w32term.c: Merged changes from xterm.c.
196 * w32fns.c: Merged changes from xfns.c.
197
198 2001-11-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
199
200 * COPYING: Removed.
201
202 2001-11-29 Dave Love <fx@gnu.org>
203
204 * coding.c (syms_of_coding) <Qchar_coding_system>: Give it an
205 extra extra slot.
206 (detect_coding_mask): Fix call of detect_coding_iso2022.
207
208 2001-11-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
209
210 * fileio.c (file-name-coding-system)
211 (default-file-name-coding-system): Doc fix (links to referenced
212 variables added).
213
214 2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
215
216 * lisp.h (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
217 Add dummy uses of gcproN variables.
218
219 * category.c (describe_category, describe_category_1)
220 (Fdescribe_categories): Remove. (Moved to lisp/help-fns.el.)
221 (syms_of_category): Don't defsubr Sdescribe_categories.
222
223 2001-11-28 Richard M. Stallman <rms@gnu.org>
224
225 * fileio.c (Ffind_file_name_handler): Avoid initializer for `result'.
226
227 * Makefile.in (lispdir): New variable, referring to build dir.
228 (TAGS-LISP): Find Makefile in $(lispdir), not $(lispsource).
229
230 2001-11-28 Andrew Innes <andrewi@gnu.org>
231
232 * w32menu.c (w32_menu_display_help): Actually add the new argument
233 OWNER.
234
235 2001-11-28 Jason Rumney <jasonr@gnu.org>
236
237 * w32menu.c (add_menu_item): Do not use owner-draw for disabled
238 menu items. From David Ponce <dponce@wanadoo.fr>.
239 (w32_dialog_show) [HAVE_DIALOGS]: Compile whole function
240 conditionally.
241 (w32_menu_display_help): New argument OWNER. Rewritten to store a
242 help event in the owner frame's keyboard buffer.
243
244 * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Display help directly.
245 (Fx_show_tip): Don't subtract last width from row width.
246
247 * w32term.c (w32_read_socket) <WM_MENUSELECT>: Remove.
248 (w32_read_socket): Use EQ to compare frames.
249
250 2001-11-28 Gerd Moellmann <gerd@gnu.org>
251
252 * xterm.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
253 OVERLAPS_P.
254
255 2001-11-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
256
257 * xdisp.c (message_dolog): Remove unused variables `gcpro2',
258 `gcpro3' and `gcpro4'.
259
260 * coding.c (decode_coding_string): Remove unused variable `gcpro1'.
261
262 2001-11-28 Stefan Monnier <monnier@cs.yale.edu>
263
264 * ccl.c: Use AREF and ASIZE.
265
266 2001-11-27 Stefan Monnier <monnier@cs.yale.edu>
267
268 * lisp.h (run_hook_list_with_args): Remove.
269 (LIST_END_P): Fix call to wrong_type_argument.
270 (make_fixnum_or_float): Use EMACS_INT rather than int.
271
272 2001-11-26 Stefan Monnier <monnier@cs.yale.edu>
273
274 * syntax.c (syms_of_syntax): Remove defsubr of Sdescribe_syntax.
275 (describe_syntax, describe_syntax_1, Fdescribe_syntax): Remove.
276
277 * eval.c: Use AREF and ASIZE.
278 (Ffetch_bytecode): Add the file name to the error message.
279
280 * fileio.c (Ffind_file_name_handler): Give precedence to handlers
281 which match the end of the file-name.
282 (Fsubstitute_in_file_name): Don't signal an error if $ENVVAR
283 is not a valid env var, but leave it as is instead.
284
285 * keymap.c (access_keymap): Handle t bindings like nil bindings.
286 Make nil bindings in char-tables transparent.
287 (store_in_keymap): Turn a nil binding into a t binding for char-tables.
288
289 2001-11-26 Richard M. Stallman <rms@gnu.org>
290
291 * textprop.c (set_text_properties_1): Allow START, END in either order.
292 Do nothing if range is empty.
293
294 * Makefile.in (mallocobj): Simplify logic using auxiliary vars.
295
296 * Makefile.in (mostlyclean): Delete bootstrap-emacs here.
297 (clean): Not here.
298
299 2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
300
301 * textprop.c (set_text_properties_1): Clearly mark that the
302 interval should not be empty.
303
304 * intervals.c (graft_intervals_into_buffer):
305 Don't call set_text_properties_1 on an empty interval.
306
307 2001-11-25 Richard M. Stallman <rms@gnu.org>
308
309 * unexelf.c (unexec): Index by n, not nn, when checking for ".sbss".
310
311 * callproc.c (Fcall_process): When we make a bigger buffer for bufptr,
312 don't lose the data in it.
313
314 2001-11-25 Juanma Barranquero <lektu@terra.es>
315
316 * abbrev.c (Fexpand_abbrev): Use Frun_hooks instead of Vrun_hooks.
317
318 * buffer.c (Fkill_buffer): Use Frun_hooks, not Vrun_hooks.
319
320 * print.c (temp_output_buffer_setup): Use Frun_hooks, not Vrun_hooks.
321
322 2001-11-25 Stefan Monnier <monnier@cs.yale.edu>
323
324 * xfaces.c (merge_face_heights): Coerce back to int explicitly.
325
326 2001-11-25 Eli Zaretskii <eliz@is.elta.co.il>
327
328 * window.c (Fset_window_vscroll): Doc fix. From Kalle Olavi
329 Niemitalo <kon@iki.fi>.
330
331 2001-11-25 Jason Rumney <jasonr@gnu.org>
332
333 * w32term.h (FRAME_X_FRINGE_COLS): No fringe on tip frames.
334
335 * w32fns.c (x_create_tip_frame): Set frame's fringes_extra to 0.
336 (Fx_show_tip): Block input during frame creation.
337 (Fx_show_tip, Fx_hide_tip): Enable.
338
339 2001-11-24 Richard M. Stallman <rms@gnu.org>
340
341 * lread.c (Fload): Detect recursive load error for more than 3
342 nestings of the same file.
343 (Vrecursive_load_depth_limit): Variable deleted.
344 (syms_of_lread) <recursive-load-depth-limit>: Variable deleted.
345
346 2001-11-24 Jason Rumney <jasonr@gnu.org>
347
348 * xfns.c (compute_tip_xy): Initialize root_x and root_y from
349 mouse position if either left or top is not specified.
350
351 * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Revert last change.
352 <WM_WINDOWPOSCHANGING>: Let tip frames resize without restriction.
353 (my_create_tip_window, Fx_show_tip): Adjust size for external border.
354 (my_create_tip_window): Assign tip_window.
355 (x_create_tip_frame): Use same defaults as X.
356 (compute_tip_xy): Remove unused variable. Use full screen width.
357 (Fx_show_tip): Do not double height. Call ShowWindow directly.
358
359 * w32term.c (x_after_update_window_line): Doc fix.
360 (w32_read_socket): Doc fix. Avoid SET_FRAME_GARBAGED for tip
361 frames.
362 <WM_SHOWWINDOW>: Redo mouse highlight when hiding tip frame.
363
364 * xdisp.c (prepare_menu_bars) [HAVE_WINDOW_SYSTEM]: Use tip_frame
365 for all Windowed systems.
366
367 2001-11-23 Eli Zaretskii <eliz@is.elta.co.il>
368
369 * msdos.c (IT_clear_screen): If the frame's faces are not yet
370 realized, use the initial screen colors to clear the screen.
371
372 2001-11-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
373
374 * textprop.c (Fset_text_properties): Remove unused variables
375 `unchanged', `prev_changed', `s' and `len'.
376
377 * search.c (Freplace_match): Remove unused variable `inslen'.
378
379 * keymap.c (access_keymap): Remove unused variables `c1' and `c2'.
380
381 2001-11-22 Jason Rumney <jasonr@gnu.org>
382
383 * w32fns.c (x_window_to_frame): Remove irrelevant TODO comment.
384 (w32_wnd_proc) <WM_MENUSELECT>: Show help echo directly.
385 (my_create_tip_window): New function.
386 (x_create_tip_frame, compute_tip_xy): Adapt for Windows.
387 (Fx_show_tip, Fx_hide_tip) [TEST_TOOLTIPS]: Adapt for Windows.
388
389 2001-11-20 Jason Rumney <jasonr@gnu.org>
390
391 * coding.h (Vw32_system_coding_system) [WINDOWSNT]: Remove.
392 (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: Use Vlocale_coding_system.
393
394 * w32fns.c (Vw32_system_coding_system): Remove.
395 (w32_to_x_font, x_to_w32_font): Use Vlocale_coding_system.
396
397 2001-11-19 Stefan Monnier <monnier@cs.yale.edu>
398
399 * fileio.c (Fwrite_region): Move choose_write_coding_system to
400 after build_annotations.
401
402 * syntax.c (describe_syntax): Add dummy arg.
403 (describe_syntax_1): Update call to describe_vector.
404
405 * category.c (describe_category): Add dummy arg.
406 (describe_category_1): Update call to describe_vector.
407
408 * keymap.c (Fdescribe_vector): Add `describer' parameter.
409 (describe_command, describe_translation): Add dummy second param.
410 (describe_map): Call elt_describer with two arguments.
411 (describe_vector_princ): Add `fun' parameter.
412 Call it instead of the hardcoded `princ'.
413 (describe_vector): Add arg `args'.
414 Pass it as a new second argument to elt_describer.
415
416 * keymap.h (describe_vector): Update prototype.
417
418 * frame.c: Don't include keymap.h any more.
419 (keys_of_frame): Remove.
420
421 * lisp.h (keys_of_frame): Remove declaration.
422
423 * emacs.c (main): Don't call `keys_of_frame' any more.
424
425 2001-11-14 Andreas Schwab <schwab@suse.de>
426
427 * unexelf.c [!defined MAP_ANON]: Define MAP_ANON to MAP_ANONYMOUS
428 if defined, 0 otherwise.
429 (MAP_FAILED): Define if not defined and use it to test mmap failure.
430 (unexec) [!MAP_ANON]: Use /dev/zero as file to map.
431
432 2001-11-19 Richard M. Stallman <rms@gnu.org>
433
434 * indent.c (current_column_1): Fix handling of scan_bytes for mb chars.
435
436 2001-11-18 Jason Rumney <jasonr@gnu.org>
437
438 * w32term.c (note_mouse_highlight): Fix type of variable `ignore'.
439 (x_draw_bar_cursor): If the background color of the glyph under
440 the cursor equals the frame's cursor color, use the glyph's
441 foreground color for drawing the bar cursor.
442 (x_after_update_window_line): Clear internal border in different
443 circumstances.
444 (w32_set_vertical_scroll_bar): Check for width and height > 0.
445 (w32_draw_relief_rect): Correct relief by 1 pixel.
446 (x_set_glyph_string_background_width):
447 Set extends_to_end_of_line_p if the row's fill_line_p is set and
448 drawing the last glyph with DRAW_IMAGE_{RAISED,SUNKEN}.
449 (x_display_and_set_cursor): If cursor_in_echo_area, use NO_CURSOR
450 if cursor_in_non_selected_windows is false.
451 (show_mouse_face): Clean up. Recognize overwritten cursor differently.
452 (x_draw_glyphs): Remove parameters REAL_START and REAL_END.
453 Notice if cursor gets overwritten.
454 (notice_overwritten_cursor): Renamed from
455 note_overwritten_text_cursor. Rewritten to take glyph widths
456 into account, and to take X positions as parameters.
457 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
458 around call to x_draw_glyphs.
459 (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
460 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
461 color to use for image glyph reliefs.
462 (x_draw_image_relief): Accept zero tool_bar_button_relief.
463 (glyph_rect): Remove unused variable `area'.
464
465 * w32fns.c (x_set_frame_parameters): Avoid infinite recursion for
466 some items.
467 (x_set_internal_border_width): Set frame garbaged when window
468 doesn't exist yet.
469 (Fx_create_frame): Accept zero tool_bar_button_relief.
470 (x_clear_image_1, four_corners_best, image_background)
471 (image_background_transparent): New functions.
472 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
473 (gs_format): Add `:background' entry.
474 (lookup_image): Set IMG's background color if specified.
475 (pbm_load, xbm_load_image, png_load): Set IMG's background field
476 when appropriate.
477 (x_clear_image_1): Reset `background_valid' and
478 `background_transparent_valid' fields.
479 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
480 calculating it here. Set IMG's background_transparent field.
481 (enum xpm_keyword_index): Add XPM_BACKGROUND.
482 (enum png_keyword_index): Add PNG_BACKGROUND.
483 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
484 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
485 (enum gif_keyword_index): Add GIF_BACKGROUND.
486 (enum gs_keyword_index): Add GS_BACKGROUND.
487 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
488 Pre-calculate image background color where necessary.
489 (x_create_x_image_and_pixmap, xbm_load, gs_load):
490 Use display info's n_cbits entry for screen depth.
491 (Fx_show_tip): Remove unused variables `buffer', `top',
492 `left', `max_width' and `max_height'.
493
494 * w32menu.c (w32_menu_show, push_menu_pane): Doc fixes.
495
496 2001-11-18 Gerd Moellmann <gerd@gnu.org>
497
498 * puresize.h (BASE_PURESIZE): Increase to 750000.
499
500 2001-11-18 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
501
502 * frame.c (Fframe_live_p): Doc fix.
503
504 2001-11-18 Richard M. Stallman <rms@gnu.org>
505
506 * xdisp.c (message_dolog_marker1, message_dolog_marker2)
507 (message_dolog_marker3): New static variables hold three markers.
508 (syms_of_xdisp): Initialize and staticpro them.
509 (message_dolog): Use message_dolog_marker1..3 instead of
510 allocating markers each time. Unchain them when done.
511
512 2001-11-17 Richard M. Stallman <rms@gnu.org>
513
514 * doc.c (Fsnarf_documentation): Doc fix.
515
516 2001-11-17 Andreas Schwab <schwab@suse.de>
517
518 * xterm.c (note_mouse_highlight): Fix type of variable `ignore'.
519
520 2001-11-17 Richard M. Stallman <rms@gnu.org>
521
522 * fileio.c (Fwrite_region): Avoid initializer for Lisp_Object.
523
524 2001-11-17 Jason Rumney <jasonr@gnu.org>
525
526 * xterm.c (notice_overwritten_cursor): Take care of end < 0 case.
527
528 2001-11-17 Gerd Moellmann <gerd@gnu.org>
529
530 * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property
531 with invalid position.
532
533 2001-11-16 Richard M. Stallman <rms@gnu.org>
534
535 * syswait.h: Delete conditionals for HPUX7, ISC 4.1, and convex.
536
537 * s/isc4-1.h (HAVE_SYS_WAIT_H): Add #undef.
538 * s/hpux.h (HAVE_SYS_WAIT_H): Add #undef.
539 * s/hpux8.h (HAVE_SYS_WAIT_H): Define it.
540
541 * m/convex.h (HAVE_SYS_WAIT_H): Add #undef.
542
543 2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
544
545 * fileio.c (build_annotations): Split off the tail.
546 (build_annotations_2): New fun. Extracted from build_annotations.
547 (Fwrite_region): Split the call to build_annotations into two
548 calls to build_annotations and build_annotations_2.
549
550 2001-11-16 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
551
552 * sysdep.c (wait_for_kbd_input) [VMS]: Do not call
553 clear_waiting_for_input with argument.
554
555 * xterm.h (x_update_cursor): Remove duplicated prototype.
556
557 * keyboard.h (clear_waiting_for_input): Remove duplicated prototype.
558
559 * xterm.c (waiting_for_input): Remove unnecessary declaration.
560
561 * data.c (Ftimes, Fquo, Frem, Fmod): Doc fix.
562
563 2001-11-16 Stefan Monnier <monnier@cs.yale.edu>
564
565 * fileio.c (choose_write_coding_system): New fun, extracted
566 from Fwrite_region.
567 (Fwrite_region): Use it.
568
569 * eval.c (max_specpdl_size, max_lisp_eval_depth): Use EMACS_INT.
570 (funcall_lambda, run_hook_with_args): Make static and add prototype.
571 (ml_apply, find_handler_clause): Add prototype.
572
573 2001-11-16 Eli Zaretskii <eliz@gnu.org>
574
575 * config.in: Add #undef HAVE_COFF_H.
576
577 * unexec.c (coff.h): Don't include unless HAVE_COFF_H is defined.
578 Required for ISC 4.1.
579
580 2001-11-16 Eli Zaretskii <eliz@is.elta.co.il>
581
582 * syswait.h: (HAVE_SYS_WAIT_H): Undef for ISC 4.1. Reported by
583 Andrew Wiseman <a.wiseman@btclick.com>.
584
585 2001-11-16 Kim F. Storm <storm@cua.dk>
586
587 The following changes are made to clean up the various internal
588 references to the fringes to actually use the term `fringe' for
589 them. Previously, they were called `flags areas', `bitmap areas',
590 `left/right side of windows', or implicitly as `flags' or
591 `bitmaps':
592
593 * dispextern.h (FRINGE_FACE_ID): Renamed from BITMAP_AREA_FACE_ID.
594 Comments fixed. Use renamed symbols.
595
596 * dispnew.c: Comment fix. Use renamed symbols.
597
598 * frame.h (FRAME_FRINGE_COLS): Renamed from FRAME_FLAGS_AREA_COLS.
599 (FRAME_FRINGE_WIDTH): Renamed from FRAME_FLAGS_AREA_WIDTH.
600 (FRAME_LEFT_FRINGE_WIDTH): Renamed from FRAME_LEFT_FLAGS_AREA_WIDTH.
601
602 * msdos.c: Comment fix.
603
604 * w32fns.c: Use renamed symbols.
605
606 * w32term.c: Comment fixes. Use renamed symbols.
607 (fringe_bitmap_type): Renamed from bitmap_type.
608 (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
609 (w32_draw_fringe_bitmap): Renamed from w32_draw_bitmap.
610 (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
611
612 * w32term.h: Comment fixes. Use renamed symbols.
613 (fringes_extra): Renamed from flags_areas_extra.
614 (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
615 (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
616 (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
617 (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
618 (FRAME_X_LEFT_FRINGE_WIDTH):
619 Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
620 (FRAME_X_RIGHT_FRINGE_WIDTH):
621 Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
622
623 * widget.c: Use renamed symbols.
624
625 * window.c: Comment fixes. Use renamed symbols.
626 (coordinates-in-window-p): Doc fix.
627
628 * xdisp.c: Comment fixes. Use renamed symbols.
629
630 * xfaces.c (realize_basic_faces): Use FRINGE_FACE_ID.
631
632 * xfns.c: Use renamed symbols.
633
634 * xterm.c: Comment fixes. Use renamed symbols.
635 (fringe_bitmap_type): Renamed from bitmap_type.
636 (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
637 (x_draw_fringe_bitmap): Renamed from x_draw_bitmap.
638 (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
639
640 * xterm.h: Comment fixes. Use renamed symbols.
641 (fringes_extra): Renamed from flags_areas_extra.
642 (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
643 (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
644 (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
645 (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
646 (FRAME_X_LEFT_FRINGE_WIDTH):
647 Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
648 (FRAME_X_RIGHT_FRINGE_WIDTH):
649 Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
650
651 2001-11-15 Jason Rumney <jasonr@gnu.org>
652
653 * w32menu.c (add-menu-item): Make help_echo and radio buttons
654 work for most menu items. From David Ponce
655 <david.ponce@wanadoo.fr>.
656
657 2001-11-15 Gerd Moellmann <gerd@gnu.org>
658
659 * xfns.c (x_set_frame_parameters): Revert change of 2001-11-07.
660 Some x_set_* function expect to be called even if old and new
661 value are equal.
662
663 * xdisp.c (build_desired_tool_bar_string): Accept zero
664 tool_bar_button_relief.
665
666 * xfns.c (Fx_create_frame): Accept zero tool_bar_button_relief.
667
668 * xterm.c (x_draw_image_relief): Accept zero tool_bar_button_relief.
669
670 * xterm.c (x_draw_bar_cursor): If the background color of the
671 glyph under the cursor equals the frame's cursor color, use
672 the glyph's foreground color for drawing the bar cursor.
673
674 * dispnew.c (direct_output_forward_char): Fix character/byte
675 position comparison.
676
677 2001-11-15 Miles Bader <miles@gnu.org>
678
679 * editfns.c (find_field): Add BEG_LIMIT and END_LIMIT parameters.
680 (Fdelete_field, Ffield_string, Ffield_string_no_properties):
681 Update arguments to find_field.
682 (Ffield_beginning, Ffield_end): Add LIMIT param, pass to find_field.
683 (Fconstrain_to_field): Use LIMIT arg to shorten search time.
684 * lisp.h (Ffield_beginning, Ffield_end): Update EXFUN decl.
685 * minibuf.c (Fminibuffer_prompt_end): Update args to Ffield_end.
686
687 2001-11-14 Richard M. Stallman <rms@gnu.org>
688
689 * editfns.c (Fpropertize): Allow call with 1 arg.
690
691 * dispextern.h (image_background, image_background_transparent):
692 Conditionalize on HAVE_X_WINDOWS.
693
694 2001-11-13 Richard M. Stallman <rms@gnu.org>
695
696 * print.c (Fprin1_to_string): Doc fix.
697
698 * sunfns.c (Fsun_change_cursor_icon): Doc fix.
699
700 * floatfns.c (Fceiling, Ffloor): Doc fixes.
701
702 * filelock.c (Funlock_buffer, Ffile_locked_p): Doc fixes.
703
704 * fileio.c (Ffile_accessible_directory_p): Doc fix.
705
706 * eval.c (syms_of_eval): Doc fix.
707
708 * coding.c (syms_of_coding): Doc fix.
709
710 * doc.c (Fsnarf_documentation): Doc fix.
711
712 * dispnew.c (syms_of_display): Doc fix.
713
714 * category.c (Fget_unused_category): Doc fix.
715
716 * buffer.c (syms_of_buffer): Doc fixes.
717
718 2001-11-14 Eli Zaretskii <eliz@is.elta.co.il>
719
720 * print.c (prin1, print): Doc fix.
721
722 2001-11-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
723
724 * fontset.h: Remove declarations of variables
725 `Vhighlight_wrong_size_font' and `Vclip_large_size_font'.
726
727 * fontset.c: Remove variables `Vhighlight_wrong_size_font' and
728 `Vclip_large_size_font'.
729
730 2001-11-13 Jason Rumney <jasonr@gnu.org>
731
732 * w32fns.c: Doc fix.
733
734 2001-11-13 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
735
736 * xfaces.c (Fface_attributes_as_vector): Doc fix.
737
738 * w32fns.c (Fx_synchronize): Reindent.
739
740 * fns.c: Doc fix.
741
742 * emacs.c: Doc fix.
743
744 * coding.c: Doc fix.
745
746 * cmds.c, composite.c, dired.c, doc.c, filelock.c, floatfns.c,
747 * fontset.c, insdel.c, keymap.c: Change doc-string comments to
748 `new style' [w/`doc:' keyword].
749
750 * xmenu.c (x-popup-menu): Reindent.
751 (x-popup-dialog): Likewise.
752
753 * xfaces.c (Finternal_set_alternative_font_family_alist): Reindent.
754
755 * xdisp.c (Fdump_tool_bar_row): Reindent.
756
757 * minibuf.c (Fminibuffer_complete_word): Reindent.
758 (Fminibuffer_complete_and_exit): Likewise.
759 (Fminibuffer_completion_help): Likewise.
760 (Fminibuffer_message): Likewise.
761
762 * fns.c (Freverse): Reindent.
763
764 * eval.c (Fif): Reindent.
765 (Fand): Likewise.
766
767 * editfns.c (Fuser_real_login_name): Reindent.
768 (Finsert_buffer_substring): Likewise.
769 (Fcompare_buffer_substrings): Likewise.
770 (Fsubst_char_in_region): Likewise.
771
772 * dispnew.c (Fsit_for): Reindent.
773 (Fframe_or_buffer_changed_p): Likewise.
774 (Finternal_show_cursor_p): Likewise.
775 (syms_of_display): Likewise.
776
777 * alloc.c (Flist): Reindent.
778 (Fvector): Likewise.
779
780 2001-11-12 Richard M. Stallman <rms@gnu.org>
781
782 * xterm.c (XTread_socket): Don't update focus for EnterNotify or
783 LeaveNotify events. Only FocusIn and FocusOut do that now.
784 (x_display_and_set_cursor): Do display hollow cursors in active
785 minibuffer windows when they are not selected.
786
787 2001-11-12 Jason Rumney <jasonr@gnu.org>
788
789 * w32console.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
790 * w32term.c: Change doc-string comments to `new style'.
791 [w/`doc:' keyword]. Doc fixes.
792
793 * w32fns.c: Don't define max.
794 (Fx_open_connection): Only execute once.
795
796 2001-11-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
797
798 * ccl.c: Change macros to use do-while block instead of if-else.
799 Use braces to follow GNU Coding Standards.
800
801 2001-11-11 Richard M. Stallman <rms@gnu.org>
802
803 * sysdep.c (child_setup_tty): Don't clear ICRNL or INLCR.
804
805 * lread.c (read_escape): Use end_of_file_error for reporting eof.
806
807 * insdel.c (replace_range): Use adjust_markers_for_replace
808 instead of adjust_markers_for_delete and adjust_markers_for_insert.
809
810 * intervals.h: Declare set_text_properties and set_text_properties_1.
811
812 * textprop.c (set_text_properties_1): New subroutine
813 broken out of set_text_properties.
814 (set_text_properties): Use set_text_properties_1.
815
816 * intervals.c (graft_intervals_into_buffer):
817 Use set_text_properties_1 to clear out properties.
818
819 * search.c (Freplace_match): Use replace_range to insert
820 and delete. Don't request property inheritance from
821 surrounding text.
822
823 2001-11-10 Jason Rumney <jasonr@gnu.org>
824
825 * w32fns.c (enum_font_cb2): Use leading @ on face name to detect
826 vertical fonts. Allow them if face name is explicitly specified.
827 Do not give up if we find a font that cannot be converted to an xlfd.
828
829 2001-11-10 Gerd Moellmann <gerd@gnu.org>
830
831 * unexelf.c (unexec): Use mmap/munmap to allocate buffers
832 instead of malloc/free.
833
834 2001-11-09 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
835
836 * xfaces.c (merge_face_vectors): Use braces to follow GNU
837 Coding Standards.
838 (Finternal_set_lisp_face_attribute): Likewise.
839
840 * buffer.c (Fbury_buffer): Likewise.
841
842 * indent.c (current_column_1): Remove unused variable `prev_col'.
843
844 * coding.c (encode_coding): Use precomputed value of `src'.
845 (encode_coding): Remove unused variable `src_end'.
846 (code_convert_region): Remove unused variables `count'.
847
848 2001-11-07 Jason Rumney <jasonr@gnu.org>
849
850 * w32term.c (x_display_and_set_cursor): Do not move system caret
851 if cursor_glyph is NULL.
852
853 2001-11-07 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
854
855 * keymap.c (access_keymap): Fix compilation error.
856
857 2001-11-07 Miles Bader <miles@gnu.org>
858
859 * xfns.c (x_set_frame_parameters): Avoid infinite recursion.
860
861 2001-11-07 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
862
863 * intervals.c (graft_intervals_into_buffer):
864 Remove #ifdef'd-out code.
865 (graft_intervals_into_buffer): Remove unused variable `middle'.
866
867 * lread.c (Feval_region): Remove obsolete #ifdef'd-out
868 code (eval-current-buffer).
869 Change doc-string comments to `new style' [w/`doc:' keyword].
870
871 2001-11-06 Richard M. Stallman <rms@gnu.org>
872
873 * keymap.c (access_keymap): Don't use initializers on Lisp_Object.
874
875 2001-11-06 Stefan Monnier <monnier@cs.yale.edu>
876
877 * lread.c (read1): Fix behavior with nested backquoting.
878
879 * keyboard.c (make_lispy_event): Check integerness and fix
880 Lisp_Object/int mixup.
881
882 2001-11-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
883
884 * fns.c (copy_hash_table): Remove unused variable `v'.
885
886 * fontset.c (fontset_font_pattern): Remove unused variable
887 `family_registry'.
888
889 * indent.c (current_column_1): Remove unused variable `prev_col'.
890
891 2001-11-05 Richard M. Stallman <rms@gnu.org>
892
893 * m/news-risc.h (BROKEN_PROTOTYPES): Defined.
894
895 * buffer.c (Fkill_buffer): Don't delete auto save file
896 if buffer is modified.
897
898 2001-11-05 Andrew Innes <andrewi@gnu.org>
899
900 * w32proc.c (Fw32_set_keyboard_layout): Use CHECK_NUMBER_CAR and
901 CHECK_NUMBER_CDR.
902
903 2001-11-05 Richard M. Stallman <rms@gnu.org>
904
905 * unexelf.c (unexec): Minor changes; clean up comments.
906
907 2001-11-05 Sam Steingold <sds@gnu.org>
908
909 * w32term.c (x_display_and_set_cursor): Fix w32 compilation error.
910
911 2001-11-05 Andreas Schwab <schwab@suse.de>
912
913 * sound.c (sound_perror): Save errno from being clobbered.
914
915 2001-11-05 Dale Hagglund <rdh@yottayotta.com>
916
917 * unexelf.c (unexec): Don't use `mmap'. Instead, read and write
918 the program image directly.
919
920 2001-11-05 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
921
922 * buffer.h (Fbuffer_local_value): Add prototype.
923
924 2001-11-04 Richard M. Stallman <rms@gnu.org>
925
926 * buffer.c (Fbuffer_local_value): Remove extra args from CHECK_SYMBOL
927 and CHECK_BUFFER.
928
929 * keyboard.c (read_char): Use Fcar and Fcdr, not Fnth.
930 (record_char): Likewise.
931
932 * keyboard.c (make_lispy_event): Don't insist a drag event must
933 move to a different buffer position. Instead, check for moving at
934 least double_click_fuzz.
935
936 * fns.c (Fmake_hash_table): Use XCAR and XCDR, not Fnth and Flength.
937
938 * keyboard.c (echo-area-clear-hook): Undo Oct 29 change.
939
940 * indent.c (current_column_1, Fmove_to_column): Separate the code
941 for display-table glyphs from the code buffer text, to fix
942 bugs in the former.
943
944 2001-11-04 Michael Welsh Duggan <md5i@cs.cmu.edu>
945
946 * buffer.c (Fbuffer_local_value): New function.
947 (syms_of_buffer): Defsubr it.
948
949 * xterm.c, w32term.c (x_display_and_set_cursor): Use buffer-local
950 value of `cursor-in-non-selected-windows'.
951
952 * lisp.h (Qcursor_in_non_selected_windows): New declaration.
953 * xdisp.c (Qcursor_in_non_selected_windows): New variable.
954 (syms_of_xdisp): Initialize it.
955
956 2001-11-04 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
957
958 * xfns.c (Fx_create_frame): Doc fix.
959
960 * coding.c: Change doc-string comments to `new style' [w/`doc:'
961 keyword].
962
963 * eval.c (top_level_value, top_level_set): Remove commented and
964 #ifdef'd-out code.
965 (Fdefvar): Fix usage in doc-string.
966
967 2001-11-03 Richard M. Stallman <rms@gnu.org>
968
969 * xfns.c: Include unistd.h, if it exists.
970
971 * editfns.c: Move the include of ctype.h after unistd.h.
972
973 * gmalloc.c: Test BROKEN_PROTOTYPES.
974
975 2001-11-03 Ken Raeburn <raeburn@gnu.org>
976
977 * lisp.h (CHECK_STRING_CAR): New macro.
978 * lread.c (Fload): Use XSETCARFASTINT, XSETCDRFASTINT instead of
979 treating XCAR and XCDR as lvalues.
980 (openp): Use CHECK_STRING_CAR.
981 (read_list): Use XSETCDR instead of treating XCDR as lvalue.
982
983 2001-11-03 Eli Zaretskii <eliz@is.elta.co.il>
984
985 * s/sco5.h (sigprocmask_set): Declare as extern SIGMASKTYPE.
986 (SIGMASKTYPE): Define.
987
988 * syssignal.h (sigunblock): Don't define if already defined.
989
990 2001-11-02 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
991
992 * eval.c (debugger_may_continue, Vdebug_ignored_errors)
993 (call_debugger, Fcondition_case, skip_debugger, unbind_to):
994 Fix typos in comments.
995
996 * mocklisp.c (Fml_defun, Fml_while, Fml_substr): Remove commented
997 and #ifdef'd-out code.
998 Fix and reindent comments.
999
1000 * mocklisp.h: Remove comment which is a copy of comment in mocklisp.c.
1001
1002 * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET): Remove unused
1003 argument `i' in macros.
1004
1005 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Remove unused argument
1006 `i' in macros.
1007
1008 * lisp.h (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
1009 (CHECK_STRING, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
1010 (CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER)
1011 (CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS, CHECK_NUMBER)
1012 (CHECK_NATNUM, CHECK_MARKER, CHECK_NUMBER_COERCE_MARKER)
1013 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
1014 (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY)
1015 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): Remove unused argument `i'
1016 in macros.
1017
1018 * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
1019 casefiddle.c, category.c, ccl.c, charset.c, cmds.c, coding.c,
1020 composite.c, data.c, dired.c, dispnew.c, doc.c, dosfns.c, emacs.c,
1021 eval.c, fileio.c, filelock.c, fns.c, fontset.c, frame.c, frame.h,
1022 indent.c, keyboard.c, keymap.c, lread.c, macros.c, marker.c,
1023 minibuf.c, mocklisp.c, msdos.c, print.c, process.c, search.c,
1024 sunfns.c, syntax.c, textprop.c, undo.c, w16select.c, w32console.c,
1025 w32fns.c, w32menu.c, w32proc.c, w32select.c, window.c, xdisp.c,
1026 xfaces.c, xmenu.c, xselect.c : Update usage of CHECK_ macros
1027 (remove unused second argument).
1028
1029 2001-11-02 Stefan Monnier <monnier@cs.yale.edu>
1030
1031 * syntax.c (describe_syntax): New wrapper.
1032 (Finternal_describe_syntax_value): Rename from describe_syntax.
1033 Don't insert space at front and \n at the end.
1034 (syms_of_syntax): Defsubr Sinternal_describe_syntax_value.
1035
1036 * regex.c (re_wctype): Try to fix some warnings.
1037 (regcomp, regexec): Don't forget the __restrict.
1038
1039 2001-11-02 Richard M. Stallman <rms@gnu.org>
1040
1041 * textprop.c (Fget_char_property): Doc fix.
1042
1043 2001-11-02 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1044
1045 * process.c (Fstart_process): Add usage to doc-string.
1046
1047 * data.c (Fsetq_default): Ditto.
1048
1049 * callint.c (Finteractive): Ditto.
1050
1051 2001-11-01 Stefan Monnier <monnier@cs.yale.edu>
1052
1053 * macros.c: Don't include keymap.h any more.
1054
1055 2001-11-01 Richard M. Stallman <rms@gnu.org>
1056
1057 * data.c (Fmake_local_variable): Doc fix.
1058
1059 * eval.c (Frun_hooks, Frun_hook_with_args_until_failure): Doc fix.
1060 (Frun_hook_with_args_until_success, Frun_hook_with_args): Doc fix.
1061
1062 * keymap.c (Fdescribe_buffer_bindings): Print character property
1063 bindings along with or instead of the buffer local map.
1064 Make the overriding maps override what they should.
1065
1066 2001-11-01 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1067
1068 * window.c (grow_mini_window): Fix typo in comment.
1069
1070 2001-11-01 Gerd Moellmann <gerd@gnu.org>
1071
1072 * xterm.c (x_scroll_bar_create): Check for width and height > 0.
1073 (XTset_vertical_scroll_bar): Likewise.
1074
1075 * xfns.c (x_build_heuristic_mask): Use four_corners_best
1076 instead of IMAGE_BACKGROUND.
1077
1078 * xfns.c (four_corners_best): Reindent.
1079
1080 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
1081 Handle :box so that it is possible to specify sexprs.
1082
1083 2001-11-01 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1084
1085 * xfaces.c (Finternal_merge_in_global_face): Reindent.
1086 (Fface_font): Ditto.
1087 (Finternal_set_alternative_font_registry_alist): Ditto.
1088 (Ftty_suppress_bold_inverse_default_colors): Ditto.
1089
1090 * xfns.c (x-get-resource): Reindent.
1091
1092 2001-10-31 Eli Zaretskii <eliz@is.elta.co.il>
1093
1094 * s/hpux11.h: New file.
1095
1096 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1097
1098 * emacs.c (USAGE1): Show command line option --no-window-system
1099 instead of --no-windows in usage.
1100 (standard_args): Rename --no-windows to --no-window-system.
1101 (bug_reporting_address): Follow Emacs coding conventions.
1102
1103 * eval.c (Fcommandp): Doc fix.
1104 Change doc-string comments to `new style' [w/`doc:' keyword].
1105
1106 * frame.c (Fframe_live_p): Doc fix.
1107
1108 * buffer.c (selective-display-ellipses): Doc fix.
1109
1110 2001-10-31 Gerd Moellmann <gerd@gnu.org>
1111
1112 * lread.c (to_multibyte): Fix computation of new read_buffer_size.
1113
1114 * xfaces.c (realize_x_face): If C is not a single-byte character,
1115 set the face's colors_copied_bitwise_p instead of the defaulted_p
1116 members which have a different meaning.
1117 (free_face_colors): Do nothing for a face whose colors have been
1118 copied bitwise.
1119
1120 * dispextern.h (struct face) <colors_copied_bitwise_p>: New member.
1121
1122 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1123
1124 * marker.c, mocklisp.c: Change doc-string comments to `new style'
1125 [w/`doc:' keyword].
1126
1127 2001-10-31 Gerd Moellmann <gerd@gnu.org>
1128
1129 * fns.c (require_unwind): Return Lisp_Object.
1130
1131 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1132
1133 * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
1134 (last-input-char): Revert doc-string to be the same as the
1135 doc-string of `last-input-event'.
1136
1137 * xdisp.c: Fix typos in comments.
1138
1139 2001-10-31 Gerd Moellmann <gerd@gnu.org>
1140
1141 * window.c (grow_mini_window): Handle case that the root
1142 window is already smaller than the nominal mininum height.
1143
1144 2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
1145
1146 * emacs.c (main): Don't call keys_of_macros any more.
1147
1148 * lisp.h (keys_of_macros): Remove.
1149
1150 * macros.c (keys_of_macros): Remove.
1151
1152 * xfaces.c (Fface_attribute_relative_p): Declare args.
1153
1154 2001-10-30 Jason Rumney <jasonr@gnu.org>
1155
1156 * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
1157 (enum_font_cb2): Ignore fonts with vertical orientation.
1158
1159 2001-10-30 Richard M. Stallman <rms@gnu.org>
1160
1161 * keyboard.c (Finput_pending_p): Doc fix.
1162
1163 2001-10-30 Gerd Moellmann <gerd@gnu.org>
1164
1165 * xterm.c (x_after_update_window_line): Don't run the code
1166 clearing in borders for rows whose visible height is 0.
1167
1168 * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
1169 resized_p flag is set. If not set, use the much less flickering
1170 method previously used.
1171
1172 * dispnew.c (change_frame_size_1): Set frame's resized_p.
1173
1174 * frame.h (struct frame) <resized_p>: New member.
1175
1176 * lread.c (to_multibyte): Ensure read_buffer is at least twice
1177 as large as the number of bytes to convert.
1178
1179 * lread.c (to_multibyte): New function.
1180 (read1): Use it.
1181
1182 2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
1183
1184 * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
1185
1186 2001-10-30 Gerd Moellmann <gerd@gnu.org>
1187
1188 * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
1189 (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
1190 if the row's fill_line_p is set and drawing the last glyph with
1191 DRAW_IMAGE_{RAISED,SUNKEN}.
1192
1193 * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
1194
1195 2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
1196
1197 * xmenu.c: Include coding.h and charset.h.
1198 (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
1199 (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
1200 (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
1201 Explicitly set wv->help. Use `TRUE' rather than `True'.
1202 (menu_help_callback): Use empty_string.
1203
1204 * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
1205 (Fx_popup_dialog): Explicitly init f.
1206 (w32_menu_display_help): Use empty_string.
1207
1208 2001-10-29 Richard M. Stallman <rms@gnu.org>
1209
1210 * fns.c (Frequire): Detect recursive try to require the same
1211 feature 3 or more levels deep, and get error.
1212 (require_unwind): New subroutine.
1213 (require_nesting_list): New variable.
1214 (syms_of_fns): Init and staticpro it.
1215
1216 * print.c (print_object): Clarify indication of insertion type.
1217
1218 2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
1219
1220 * coding.c (syms_of_coding): Document that locale-coding-system is
1221 used for decoding input on X.
1222
1223 * window.c (Fscroll_left, Fscroll_right): Doc fix.
1224
1225 2001-10-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1226
1227 * keyboard.c (Finput_pending_p): Fix typo in doc-string.
1228 (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
1229
1230 2001-10-29 Gerd Moellmann <gerd@gnu.org>
1231
1232 * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
1233 use NO_CURSOR if cursor_in_non_selected_windows is false.
1234
1235 * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
1236 the slant attribute if FRAME is t.
1237
1238 * xfns.c (x_set_internal_border_width): Set frame garbaged
1239 when X window doesn't exist yet.
1240
1241 * xterm.c (x_after_update_window_line): Clear internal border
1242 in different circumstances.
1243
1244 * xterm.c (XTread_socket) <KeyPress>: Don't use
1245 STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
1246 <handa@etl.go.jp>.
1247
1248 2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
1249
1250 * m/ibms390.h: New file. From Adam Thornton
1251 <athornton@sinenomine.net>.
1252
1253 2001-10-28 Gerd Moellmann <gerd@gnu.org>
1254
1255 * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
1256
1257 * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
1258 a loop counter.
1259
1260 2001-10-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1261
1262 * emacs.c: Use argv[0] instead of emacs when -t was specified.
1263
1264 * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
1265 keyword].
1266 Fix typos in comments.
1267
1268 * emacs.c (bug_reporting_address): New function.
1269 Use it when displaying usage message.
1270
1271 * minibuf.c (read_minibuf): Remove unused external declaration of
1272 variable `Qread_only'.
1273
1274 * keymap.c (access_keymap): Remove unused variable `charset'.
1275
1276 2001-10-28 Miles Bader <miles@gnu.org>
1277
1278 * xfaces.c (merge_face_heights): Handle TO being relative as well.
1279 Remove #ifdef'd-out code.
1280 (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
1281 (syms_of_xfaces): Initialize them.
1282
1283 2001-10-27 Jason Rumney <jasonr@gnu.org>
1284
1285 * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
1286 <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
1287 position using the system caret.
1288
1289 * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
1290 (w32_system_caret_height, w32_system_caret_x)
1291 (w32_system_caret_y): New variables for tracking system caret.
1292 (w32_initialize): Initialize them.
1293 (x_display_and_set_cursor): Make system caret follow the active cursor.
1294
1295 * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
1296 New messages types.
1297
1298 * w32term.c (note_mouse_highlight): Clear old help_echo.
1299
1300 2001-10-27 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1301
1302 * xterm.c: Fix typo in a comment.
1303
1304 * emacs.c: Fix typos in comments.
1305 Remove unnecessary spaces.
1306 Change doc-string comments to `new style' [w/`doc:' keyword].
1307 (USAGE2): Fix typos in usage string.
1308
1309 * xterm.c: Fix typo in a comment.
1310
1311 * lisp.h: (gdb_lisp_params): Remove code in #if 0 which is now in
1312 emacs.c.
1313
1314 2001-10-27 Gerd Moellmann <gerd@gnu.org>
1315
1316 * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
1317 instead of 1/2 line_height in the heuristic for skipping
1318 farther backward when target_y was not reached.
1319
1320 * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
1321 Display errno only if non-zero.
1322 (sound_warning): New function.
1323 (vox_configure): Don't treat failing to set sample rate as error.
1324 (various places): Improve error messages.
1325
1326 2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
1327
1328 * fileio.c (Faccess_file): Run the argument filename through
1329 Fexpand_file_name, before using it.
1330
1331 * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
1332 ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
1333
1334 2001-10-26 Gerd Moellmann <gerd@gnu.org>
1335
1336 * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
1337
1338 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1339 Fix clearing in the case of scroll bars on the right.
1340
1341 2001-10-26 Juanma Barranquero <lektu@terra.es>
1342
1343 * w32gui.h (XImage): Add a dummy typedef.
1344
1345 2001-10-26 Gerd Moellmann <gerd@gnu.org>
1346
1347 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
1348
1349 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
1350
1351 * frame.c (Fframe_parameter): Fix last change.
1352
1353 * fileio.c: Revert last change (which removed old commented-out
1354 version of expand-file-name). Add a comment that explains why
1355 this old version should not be removed.
1356
1357 2001-10-25 Gerd Moellmann <gerd@gnu.org>
1358
1359 * frame.c (Fframe_parameter): Fix a bug whereby some
1360 ``artificial'' frame parameters, like `minibuffer' were not
1361 obtained by calling Fframe_parameters.
1362
1363 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
1364 cursor differently.
1365
1366 * xdisp.c (move_it_vertically_backward): Compute line height
1367 differently. Add heuristic to try to be more compatible to 20.x.
1368
1369 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
1370
1371 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
1372
1373 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
1374 boolean.
1375
1376 2001-10-25 Miles Bader <miles@gnu.org>
1377
1378 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
1379 BG is a pointer to a structure, not a structure.
1380 (gif_format, png_format): Add missing commas.
1381
1382 2001-10-24 Richard M. Stallman <rms@gnu.org>
1383
1384 * xfaces.c (Fface_attributes_as_vector): New function.
1385 (syms_of_xfaces): Defsubr it.
1386
1387 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1388
1389 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
1390 variable `area'.
1391
1392 2001-10-25 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1393
1394 * search.c (scan_newline): Remove unused variable `selective_display'.
1395
1396 2001-10-25 Miles Bader <miles@gnu.org>
1397
1398 * dispextern.h (struct image): Add `background',
1399 `background_valid', and `background_transparent' fields.
1400 (image_background, image_background_transparent): New declarations.
1401 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
1402 * xfns.c (image_background, image_background_transparent)
1403 (four_corners_best): New functions.
1404 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
1405 (gs_format): Add `:background' entry.
1406 (lookup_image): Set IMG's background color if specified.
1407 (pbm_load, xbm_load_image, png_load): Set IMG's background field
1408 when appropriate.
1409 (x_clear_image_1): Reset `background_valid' and
1410 `background_transparent_valid' fields.
1411 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
1412 calculating it here. Set IMG's background_transparent field.
1413 (enum xpm_keyword_index): Add XPM_BACKGROUND.
1414 (enum png_keyword_index): Add PNG_BACKGROUND.
1415 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
1416 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
1417 (enum gif_keyword_index): Add GIF_BACKGROUND.
1418 (enum gs_keyword_index): Add GS_BACKGROUND.
1419 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
1420 Pre-calculate image background color where necessary.
1421 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
1422 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
1423 color to use for image glyph reliefs.
1424
1425 2001-10-24 Gerd Moellmann <gerd@gnu.org>
1426
1427 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
1428 in full-width rows.
1429
1430 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1431 Fix clearing of area not covered by scroll bar.
1432
1433 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1434
1435 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
1436 and `real_start'.
1437 (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
1438 (glyph_rect): Remove unused variable `area'.
1439
1440 2001-10-24 Gerd Moellmann <gerd@gnu.org>
1441
1442 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
1443
1444 * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
1445 (row_containing_pos): Take additional argument DY.
1446 Treat rows ending in middle of char differently.
1447 (display_line): Handle tabs on window systems differently.
1448
1449 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
1450 with additional argument.
1451
1452 * dispextern.h (row_containing_pos): Adjust prototype.
1453
1454 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
1455 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
1456 (try_window_id, try_window_reusing_current_matrix)
1457 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
1458 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
1459
1460 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1461
1462 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
1463 gnuemacs).
1464 (HAVE_BOXES): Fix typo in comment.
1465 (push_menu_pane): Fix typo in comment.
1466
1467 * xdisp.c: (display_prop_string_p): Remove unused local declaration
1468 of `Qwhen'.
1469 (single_display_prop_string_p): Remove unused local declarations
1470 of `Qwhen' and `Qmargin'.
1471 (string_buffer_position): Remove unused variable `around'.
1472 (store_frame_title): Remove unused variable `width'.
1473
1474 * window.c: Don't define max.
1475 (coordinates_in_window): Remove unused variable `uy'.
1476
1477 * widget.c: Don't define max.
1478
1479 * process.c: Don't define max.
1480 (create_process): Remove unused variable `buffer'.
1481
1482 2001-10-23 Gerd Moellmann <gerd@gnu.org>
1483
1484 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
1485
1486 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
1487
1488 * xfaces.c (Finternal_set_lisp_face_attribute)
1489 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
1490 frame is on a windowed display.
1491
1492 2001-10-23 Gerd Moellmann <gerd@gnu.org>
1493
1494 * dispnew.c (sync_window_with_frame_matrix_rows):
1495 Fix handling of windows which aren't full-width, fix handling
1496 of marginal areas.
1497
1498 * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
1499
1500 2001-10-23 Andreas Schwab <schwab@suse.de>
1501
1502 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
1503 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
1504
1505 2001-10-23 Gerd Moellmann <gerd@gnu.org>
1506
1507 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
1508 REAL_END. Notice if cursor gets overwritten.
1509 (notice_overwritten_cursor): Take X positions as parameters.
1510 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
1511 around call to x_draw_glyphs.
1512
1513 2001-10-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1514
1515 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
1516 instead of C) and usage.
1517
1518 * editfns.c (char-to-string): Fix argument names (use CHAR instead
1519 of C) and usage.
1520
1521 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
1522 `left', `max_width' and `max_height'.
1523
1524 2001-10-23 Gerd Moellmann <gerd@gnu.org>
1525
1526 * xdisp.c (display_line): For a tab continued to the next line,
1527 set row's ends_in_middle_of_char_p.
1528
1529 2001-10-22 Gerd Moellmann <gerd@gnu.org>
1530
1531 * xdisp.c (display_line): Fix computation of continuation lines
1532 width for TABs.
1533
1534 2001-10-22 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1535
1536 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
1537 `Qlaplace'.
1538
1539 * fileio.c: Remove unused code.
1540
1541 2001-10-22 Miles Bader <miles@gnu.org>
1542
1543 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
1544 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
1545 Remove `DOC_STRINGS_IN_COMMENTS' cases.
1546
1547 2001-10-21 Jason Rumney <jasonr@gnu.org>
1548
1549 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
1550
1551 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
1552
1553 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
1554 (Finsert_string): Avoid the multi-line string literals warning.
1555
1556 2001-10-22 Miles Bader <miles@gnu.org>
1557
1558 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
1559 (Fdocumentation): Don't use it.
1560 (syms_of_doc): Don't initialize it.
1561
1562 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
1563 * print.c (Fwith_output_to_temp_buffer): Likewise.
1564 * window.c (Fsave_window_excursion): Likewise.
1565 * editfns.c (Fsave_excursion, Fsave_current_buffer)
1566 (Fsave_restriction): Likewise.
1567 * eval.c (Frun_hooks, Frun_hook_with_args)
1568 (Frun_hook_with_args_until_failure)
1569 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
1570 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
1571 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
1572 (Funwind_protect, Fcondition_case): Likewise.
1573 * coding.c (Ffind_operation_coding_system): Likewise.
1574 * keyboard.c (Ftrack_mouse): Likewise.
1575
1576 2001-10-21 Miles Bader <miles@gnu.org>
1577
1578 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
1579 (Fmake_hash_table): Add usage: string to doc string.
1580 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
1581 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
1582 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
1583 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
1584 (Fml_prefix_argument_loop): Likewise.
1585
1586 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1587
1588 * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
1589
1590 * sysdep.c (init_sys_modes): Change doc-string comments to `new
1591 style' [w/`doc:' keyword].
1592
1593 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
1594 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
1595 comments to `new style' [w/`doc:' keyword].
1596
1597 2001-10-21 Jason Rumney <jasonr@gnu.org>
1598
1599 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
1600
1601 * w32term.c (remember_mouse_glyph): New function.
1602 (w32_mouse_position): Use it.
1603 (note_mouse_movement): If the mouse moved off the glyph, remember
1604 its new position.
1605
1606 * w32term.h (struct w32_output): Correct spelling of x_compatible.
1607 (w32_display_info): Add mouse_face_overlay.
1608
1609 * w32term.c (notice_overwritten_cursor): Renamed from
1610 note_overwritten_text_cursor. Rewritten to take glyph widths into
1611 account.
1612 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
1613 (fast_find_string_pos): New function.
1614 (fast_find_position): Return the correct vpos. Add parameter
1615 STOP. In the final row, stop before glyphs having STOP as object.
1616 Don't consider glyphs that are not from a buffer.
1617 (fast_find_position) [0]: Add a presumably more correct version
1618 for after 21.1.
1619 (expose_window_tree, expose_frame): Don't compute intersections here.
1620 (expose_window): Do it here instead.
1621 (expose_window_tree, expose_window, expose_line): Return 1 when
1622 overwriting mouse-face.
1623 (expose_window): If W is the window currently being updated, mark
1624 the frame garbaged.
1625 (expose_frame): If mouse-face was overwritten, redo it.
1626 (x_use_underline_position_properties): New variable.
1627 (syms_of_xterm): DEFVAR_BOOL it.
1628 (x_draw_glyph_string): Add comment to use it in future.
1629 (x_draw_glyph_string): Restore clipping after drawing box.
1630 Fix a computation of the underline position.
1631 (w32_get_glyph_string_clip_rect): Minor cleanup.
1632 (x_fill_stretch_glyph_string): Remove an assertion.
1633 (x_produce_glyphs): Don't convert multibyte characters
1634 to unibyte characters in unibyte buffers.
1635 (cursor_in_mouse_face_p): New function.
1636 (x_draw_stretch_glyph_string): Use it to choose a different GC
1637 when drawing a cursor within highlighted text. Don't draw
1638 background again if it has already been drawn.
1639 (x_draw_glyph_string_box): Don't draw a full-width
1640 box just because the glyph row's full_width_p flag is set.
1641 (x_draw_glyphs): Fix computation of rightmost x for
1642 full-width rows.
1643 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1644 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
1645 change bottom shadow accordingly. Some cleanup.
1646 (x_update_window_end): Handle overwritten mouse face
1647 also for tool bar windows.
1648 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
1649 DRAW is DRAW_IMAGE_RAISED.
1650 (clear_mouse_face): Return 1 if text with mouse face was
1651 actually redrawn. Make the function static. Reset
1652 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
1653 optimize away highlighting if we pass over that same overlay again.
1654 (note_mouse_highlight): Call mouse_face_overlay_overlaps
1655 to detect a case where we have to highlight a different region
1656 despite not having left the currently highlighted region.
1657 Set mouse_face_overlay in the x_display_info. Avoid changing the
1658 mouse pointer shape when show_mouse_face has already done it, or
1659 there is no need. Handle mouse-face and help-echo in strings.
1660 (glyph_rect): New function.
1661 (w32_mouse_position): Use it to raise the threshold for mouse
1662 movement event generation.
1663 (w32_initialize_display_info): Initialize the x_display_info's
1664 mouse_face_overlay.
1665 (w32_set_vertical_scroll_bar): Don't clear a zero height
1666 or width area.
1667 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
1668 a widget to zero height.
1669
1670 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
1671 Protect unibyte strings created by replacing their multibyte
1672 equivalents in menu_items.
1673 (w32_menu_show): Don't overwrite an item's name with its key
1674 description in case the description is a multibyte string.
1675 (single_submenu): Some cleanup.
1676
1677 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
1678 (postprocess_image): New function.
1679 (lookup_image): Call it for all image types except PostScript.
1680 (x_kill_gs_process): Call postprocess_image.
1681 (tiff_error_handler, tiff_warning_handler): New functions.
1682 (tiff_load): Install them as handlers.
1683 (x_kill_gs_process): Recognize if someone has cleared the image
1684 cache under us.
1685 (valid_image_p): Protect better against invalid image
1686 specifications. Previous code could signal an error.
1687 (Fx_hide_tip, Fshow_tip): Doc fix.
1688 (Fv_max_tooltip_size): New variable.
1689 (syns_of_xfns): DEFVAR_LISP it.
1690 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
1691 window buffer to *tip* right after creating the frame. Set frame's
1692 window_width. Use a maximum tooltip size specified by
1693 Vx_max_tooltip_size, if that has valid contents.
1694 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1695 Make sure the tooltip is completely visible.
1696 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1697 (Fx_create_frame): Adjust the frame's height for presence
1698 of the tool bar before calling x_figure_window_size.
1699 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
1700 when the window gets smaller.
1701 (x_set_foreground_color): Set frame's cursor_pixel.
1702 (x_set_foreground_color, x_set_background_color): Cleaned up.
1703 (x_set_font): Handle case of x_new_fontset returning the same name
1704 as before, although there was a change in fontsets.
1705
1706 2001-10-21 Miles Bader <miles@gnu.org>
1707
1708 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
1709 (Flogxor): Add usage: string to doc string.
1710 * charset.c (Fstring): Likewise.
1711 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
1712 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
1713
1714 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1715
1716 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
1717
1718 * alloc.c: Reindent DEFUNs with doc: keywords.
1719
1720 * abbrev.c (Finsert_abbrev_table_description): Reindent.
1721
1722 * frame.c: Change doc-string comments to `new style' [w/`doc:'
1723 keyword].
1724
1725 2001-10-20 Gerd Moellmann <gerd@gnu.org>
1726
1727 * (Version 21.1 released.)
1728
1729 2001-10-20 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1730
1731 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
1732
1733 * xdisp.c (invisible_text_between_p): Put prototype inside #if
1734 0 because unused.
1735
1736 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
1737 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
1738 Change doc-string comments to `new style' [w/`doc:' keyword].
1739
1740 2001-10-20 Miles Bader <miles@gnu.org>
1741
1742 The following changes remove the glyph_row `inverse_p' field,
1743 which is never set anymore, due to other changes:
1744
1745 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
1746 (reassert_line_highlight, change_line_highlight): Declarations removed.
1747 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
1748 (line_hash_code, row_equal_p, fake_current_matrices)
1749 (build_frame_matrix_from_leaf_window, update_frame_line)
1750 (update_frame_line, update_frame_line, update_frame_line):
1751 Don't use `inverse_p' field.
1752 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
1753 change_line_highlight_hook.
1754 (XTreassert_line_highlight, x_change_line_highlight):
1755 Functions removed.
1756 (x_fix_overlapping_area, x_write_glyphs, expose_area)
1757 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
1758 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
1759 `inverse_p' field.
1760 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
1761 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
1762 (w32_reassert_line_highlight, x_change_line_highlight):
1763 Functions removed.
1764 * w32console.c (reassert_line_highlight, change_line_highlight):
1765 Functions removed.
1766 (initialize_w32_display): Don't set reassert_line_highlight_hook
1767 or change_line_highlight_hook.
1768 (hl_mode): Function removed.
1769 (reset_terminal_modes, set_terminal_modes, update_begin)
1770 (update_end, w32_face_attributes, initialize_w32_display):
1771 (clear_frame, ins_del_lines): Don't call it.
1772 * termhooks.h (reassert_line_highlight_hook)
1773 (change_line_highlight_hook): Declarations removed.
1774 * term.c (reassert_line_highlight_hook)
1775 (change_line_highlight_hook): Variables removed.
1776 (reassert_line_highlight, change_line_highlight): Functions removed.
1777 * msdos.c (IT_reassert_line_highlight)
1778 (IT_change_line_highlight): Functions removed.
1779 (internal_terminal_init): Don't set reassert_line_highlight_hook
1780 or change_line_highlight_hook.
1781 (highlight): Variable removed.
1782 (IT_set_face, IT_update_begin, IT_update_end)
1783 (IT_set_terminal_modes): Don't set or use it.
1784
1785 The following changes remove inverse-video support for terminals
1786 that use a `magic cookie' standout mode. Due to changes in the
1787 way mode-lines are displayed, such support no longer works
1788 anyway, and it's probable that almost no one uses such terminals
1789 anymore:
1790
1791 * term.c (standout_requested): Variable removed.
1792 (update_end, highlight_if_desired): Don't use it.
1793 (chars_wasted, copybuf): Variables removed.
1794 (write_standout_marker): Function removed.
1795 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
1796 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
1797 Don't use `chars_wasted' or `copybuf'.
1798 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
1799 Set `costs_set' to true.
1800 (cursor_to, clear_end_of_line): Test `costs_set' instead of
1801 `chars_wasted'.
1802 (clear_end_of_line): Function removed.
1803 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
1804 (clear_to_end): Call `clear_end_of_line' instead of
1805 `clear_end_of_line_raw'.
1806 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
1807 (term_init): Don't set them.
1808 Turn off any standout/underline modes that require magic cookies.
1809 (ins_del_lines, highlight_if_desired, background_highlight)
1810 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
1811 Remove special processing for magic-cookie standout modes.
1812 (turn_off_face, turn_on_face): Remove special processing for
1813 underline magic-cookie glitch.
1814
1815 2001-10-19 Richard M. Stallman <rms@gnu.org>
1816
1817 * eval.c (syms_of_eval): Doc fixes.
1818
1819 2001-10-19 Gerd Moellmann <gerd@gnu.org>
1820
1821 * xdisp.c (redisplay_internal): Don't clear echo area if the
1822 mini-window is selected.
1823
1824 2001-10-19 Miles Bader <miles@gnu.org>
1825
1826 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
1827 doesn't take precedence if the affected property's value is nil.
1828
1829 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
1830
1831 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
1832 with fields and suggest using `forward-line' to avoid them.
1833 * editfns.c (Fline_beginning_position, Fline_end_position):
1834 Clarify documentation.
1835
1836 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
1837
1838 * keymap.c (current_minor_maps): `override' only shadows its
1839 correspondent in minor-mode-map-alist, not the whole tail.
1840
1841 2001-10-18 Andrew Innes <andrewi@gnu.org>
1842
1843 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
1844 optimization. The fontp->encoding array was not being initialized
1845 correctly when compiled with optimizations by MSVC.
1846
1847 2001-10-18 Gerd Moellmann <gerd@gnu.org>
1848
1849 * xdisp.c (display_line): Indicate empty lines in active mini-window.
1850
1851 2001-10-17 Andrew Innes <andrewi@gnu.org>
1852
1853 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
1854
1855 * w32fns.c (w32_load_system_font): Cache codepage for font, in
1856 font_info.charset field.
1857
1858 * w32term.c (w32_encode_char): Get cached codepage from font_info,
1859 rather than working it out by calling w32_codepage_for_font for
1860 every glyph.
1861
1862 2001-10-17 Andrew Innes <andrewi@gnu.org>
1863
1864 * w32term.c (w32_read_socket): Determine clipping rectangle for
1865 the entire frame, including areas covered by scrollbars and the
1866 menubar. This avoids internal arguments about whether a frame is
1867 fully obscured or not.
1868
1869 2001-10-17 Gerd Moellmann <gerd@gnu.org>
1870
1871 * xdisp.c (try_window_id): Undo last change. Give up if
1872 window ends in strings.
1873
1874 * xdisp.c (try_window_id): Don't display lines after the window
1875 end if the rest of the window after the window end was already blank.
1876
1877 * xdisp.c (try_window_id): Remove code that was only there
1878 for the release of 21.1.
1879
1880 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
1881
1882 2001-10-17 Miles Bader <miles@gnu.org>
1883
1884 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
1885 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
1886 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
1887 Change doc-string comments to `new style' [w/`doc:' keyword].
1888 (DOC_STRINGS_IN_COMMENTS): Macro removed.
1889 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
1890 out make-docfile.
1891
1892 2001-10-16 Miles Bader <miles@gnu.org>
1893
1894 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
1895
1896 2001-10-16 Gerd Moellmann <gerd@gnu.org>
1897
1898 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
1899 *scratch*.
1900
1901 2001-10-16 Ken Raeburn <raeburn@gnu.org>
1902
1903 Avoid the assumption that car and cdr slots of cons cells are
1904 addressable lvalues; this allows for easier experimentation with
1905 other lisp implementations that may not permit such accesses for
1906 various reasons. Not quite complete -- buffer.c still needs some
1907 work, and w32/mac files need rechecking -- so compile-time
1908 enforcement is left disabled for now.
1909
1910 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
1911 gcc with a union-based Lisp object rep. Redefine as no-op for now.
1912 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
1913 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
1914 (XSETCAR, XSETCDR): New macros.
1915 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
1916 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
1917 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
1918 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
1919 XSETCDR.
1920 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
1921 * buffer.c (record_buffer, Fbury_buffer)
1922 (swap_out_buffer_local_variables, recenter_overlay_lists)
1923 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
1924 fields of a cons cell respectively.
1925 * callint.c (quotify_args, Fcall_interactively): Likewise.
1926 * ccl.c (Fregister_code_conversion_map): Likewise.
1927 * coding.c (detect_coding_system): Likewise.
1928 * composite.c (get_composition_id, make_composition_value_copy):
1929 Likewise.
1930 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
1931 (swap_in_symval_forwarding, set_internal, Fset_default)
1932 (Fmake_variable_buffer_local, Fmake_local_variable)
1933 (Fmake_variable_frame_local): Likewise.
1934 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
1935 * keymap.c (Fset_keymap_parent, store_in_keymap)
1936 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
1937 * minibuf.c (get_minibuffer): Likewise.
1938 * search.c (Fmatch_data): Likewise.
1939 * textprop.c (extend_property_ranges): Likewise.
1940 * undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
1941 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
1942 Likewise.
1943 * w32term.c (x_delete_display): Likewise.
1944 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
1945 Likewise.
1946 * xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
1947 * doc.c (store_function_docstring): Use XSETCARFASTINT.
1948 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
1949 (Fread_file_name): Use XSETCAR.
1950 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
1951 CHECK_NUMBER_CDR.
1952 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
1953 * frame.c (Fmake_terminal_frame): Use XSETCDR.
1954 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
1955 CHECK_NUMBER_CDR.
1956 * keyboard.c (read_char): Alter list traversal to avoid taking the
1957 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
1958 (parse_menu_item): Use XSETCAR and XSETCDR.
1959 (reach_char_x_menu_prompt): Use XSETCAR.
1960 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
1961 (Fcommand_execute): Use XSETCDR.
1962 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
1963 (openp): Change list traversal to avoid using XCAR as lvalue.
1964 (read_list): Use XSETCDR.
1965 * process.c (wait_reading_process_input): Change wait_for_cell
1966 handling to avoid taking addresses of cons cell slots.
1967 * xselect.c (x_own_selection, x_handle_selection_clear)
1968 (x_clear_frame_selections): Use XSETCDR.
1969 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
1970 (x_handle_property_notify, x_get_foreign_selection)
1971 (x_handle_selection_notify): Use XSETCAR.
1972
1973 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1974
1975 * buffer.c: Put doc strings in comments.
1976
1977 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
1978
1979 2001-10-15 Sam Steingold <sds@gnu.org>
1980
1981 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
1982
1983 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1984
1985 * process.c (process-inherit-coding-system-flag)
1986 (get-buffer-process): Do not confuse make-docfile with doc strings
1987 in comment.
1988
1989 * editfns.c (Fchar_to_string): Make doc string consistent with
1990 arguments. Put doc strings in comments.
1991
1992 * abbrev.c, minibuf.c: Put doc strings in comments.
1993
1994 2001-10-15 Gerd Moellmann <gerd@gnu.org>
1995
1996 * window.c (window_loop): Don't check for Fother_buffer returning nil.
1997
1998 * window.c (select_window_1): Unfreeze window start. Remove a
1999 doubled test for WINDOW being live.
2000
2001 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2002
2003 * fns.c (Fmapconcat): Fix typo in a doc string.
2004
2005 * dispnew.c (Fsleep_for): Fix typo in a doc string.
2006
2007 2001-10-15 Gerd Moellmann <gerd@gnu.org>
2008
2009 * xterm.c (x_draw_glyph_string): Restore clipping after
2010 drawing box.
2011
2012 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2013
2014 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
2015
2016 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
2017
2018 * indent.c (skip_invisible): Use new retval of
2019 TEXT_PROP_MEANS_INVISIBLE.
2020
2021 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
2022 If a parent is reached and noinherit is set, exit immediately.
2023 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
2024
2025 * s/ms-w32.h (EXEC_SUFFIXES):
2026 * s/msdos.h (EXEC_SUFFIXES):
2027 * process.h (EXEC_SUFFIXES): Remove.
2028
2029 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
2030 (decode_suffixes): Remove.
2031
2032 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
2033 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
2034 (invisible_ellipsis_p): Remove.
2035
2036 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
2037 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
2038 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
2039 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
2040 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
2041
2042 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2043
2044 * lisp.h (Ftop_level): Add prototype.
2045
2046 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
2047 (XTread_socket): Improve style of comments to follow other
2048 comments.
2049
2050 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
2051 is already prototyped in included lisp.h).
2052
2053 * frame.c (Fset_mouse_position): Improve style of comment to
2054 follow other comments.
2055 (Fset_mouse_pixel_position): Improve style of comment to follow
2056 other comments.
2057 (Fmake_frame_visible): Doc fix and typo in comment.
2058 (Fmake_frame_invisible): Doc fix and typo in comment.
2059 (Ficonify_frame): Fix typo in comment.
2060
2061 2001-10-14 Gerd Moellmann <gerd@gnu.org>
2062
2063 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
2064 * term.c, alloc.c: Put doc strings in comments.
2065
2066 2001-10-13 Gerd Moellmann <gerd@gnu.org>
2067
2068 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
2069 Provide definitions for doc strings in comments.
2070
2071 * fns.c: Put doc strings in comments.
2072
2073 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
2074
2075 * dired.c (file_name_completion): Ignore a candidate directory if
2076 it matches an element in completion-ignored-extensions that ends
2077 in a slash.
2078 (syms_of_dired) <completion-ignored-extensions>: Mention the above
2079 feature in the doc string.
2080 (Ffile_name_completion): Ditto.
2081
2082 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
2083
2084 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
2085
2086 * xfns.c (syms_of_xfns): Update calls to Fprovide.
2087
2088 * lisp.h (Fprovide): Update prototype.
2089 (Ffeaturep, invisible_p): Remove.
2090
2091 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
2092 (DOLIST, LOOP_PROPVAL): New macros.
2093 (invisible_p, invisible_ellipsis_p): Use them.
2094 (invisible_noellipsis_p): New function.
2095 (syms_of_xdisp): Use empty_string.
2096
2097 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
2098
2099 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
2100 (syms_of_lread) <Vafter_load_alist>: Update docstring.
2101
2102 * print.c (Fwith_output_to_temp_buffer): Align with
2103 internal_with_output_to_temp_buffer.
2104 (print_preprocess): Use traverse_intervals_noorder.
2105 (print_object): Update call to traverse_intervals.
2106
2107 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
2108 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
2109
2110 * intervals.c (traverse_intervals_noorder): New function.
2111 (search_for_interval, count_intervals): Use it.
2112 (traverse_intervals): Use less stack space and drop `depth' arg.
2113
2114 * fns.c (Ffeaturep): Add new `subfeature' arg.
2115 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
2116 (Qsubfeatures): New var.
2117 (syms_of_fns): Initialize it.
2118
2119 * keymap.c (Fkey_description): Use empty_string.
2120 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
2121 (syms_of_keymap): Setup inheritance between maps.
2122 Don't export Sdescribe_bindings_internal any more.
2123
2124 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
2125
2126 2001-10-12 Gerd Moellmann <gerd@gnu.org>
2127
2128 * xterm.c (notice_overwritten_cursor): Renamed from
2129 note_overwritten_text_cursor. Rewritten to take glyph widths into
2130 account.
2131
2132 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
2133
2134 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
2135 multi-line strings without a trailing "\n\".
2136
2137 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2138
2139 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
2140 defined.
2141
2142 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
2143
2144 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
2145
2146 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
2147 * w32proc.c (sys_spawnve):
2148 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
2149 * w32.c (check_windows_init_file):
2150 * sound.c (Fplay_sound):
2151 * emacs.c (init_cmdargs):
2152 * process.c (Fstart_process): Update calls to openp.
2153
2154 * callproc.c (Vexec_suffixes): New var.
2155 (Fcall_process): Update call to openp.
2156 (decode_suffixes): New function.
2157 (syms_of_callproc): Init exec-suffixes.
2158
2159 * lread.c (Vload_suffixes, default_suffixes): New vars.
2160 (openp): Take a lisp list of suffixes.
2161 Check for file-name-handlers even if the file was absolute already.
2162 (syms_of_lread): Declare load-suffixes.
2163 (Fload): Fix up call to openp.
2164 Don't bother checking for file-name-handler at the very beginning.
2165
2166 * keymap.h (Fcopy_keymap): Don't export.
2167
2168 * lisp.h (empty_string): Declare.
2169 (Vload_suffixes, Vexec_suffixes): Declare.
2170 (openp): Update prototype.
2171
2172 * emacs.c (empty_string): New var.
2173 (syms_of_emacs): Initialize it.
2174
2175 * search.c (wordify): Use it.
2176
2177 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
2178 selected window if it's not displayed there. Handle the case
2179 when the window is dedicated.
2180 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
2181
2182 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
2183
2184 * syntax.h (struct gl_state_s): Change the meaning of b_property.
2185 Remove left_ok and right_ok.
2186 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
2187 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
2188 new meaning of b_property.
2189
2190 * syntax.c (update_syntax_table): Simplify.
2191 (Fforward_comment): Don't skip quoted chars when going backward.
2192
2193 2001-10-11 Gerd Moellmann <gerd@gnu.org>
2194
2195 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
2196 in case I is of some unsigned type, in which case
2197 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
2198 comparison becomes bogus.
2199
2200 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
2201 (Fuser_full_name): Fix bug treating a float as a fixnum.
2202
2203 * data.c (Fstring_to_number): Use make_fixnum_or_float.
2204
2205 * lisp.h (make_fixnum_or_float): New macro.
2206
2207 * lisp.h (circular_list_error): Add prototype.
2208
2209 * data.c (Qcircular_list): New variable.
2210 (circular_list_error): New function.
2211 (syms_of_data): Initialize it Qcircular_list.
2212
2213 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
2214
2215 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
2216 casefiddle.c, buffer.c: Include keymap.h.
2217
2218 2001-10-10 Gerd Moellmann <gerd@gnu.org>
2219
2220 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
2221 options. From Dave Love <d.love@dl.ac.uk>.
2222
2223 2001-10-09 Gerd Moellmann <gerd@gnu.org>
2224
2225 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
2226 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
2227
2228 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
2229 unsigned char.
2230 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
2231
2232 2001-10-08 Andrew Innes <andrewi@gnu.org>
2233
2234 * lisp.h [max]: Undef min and max before redefining them.
2235
2236 * w32gui.h: Do not undef min and max.
2237
2238 * w32heap.h: Do not undef min and max.
2239
2240 * s/ms-w32.h: Do not undef min and max.
2241
2242 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
2243
2244 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
2245
2246 2001-10-08 Sam Steingold <sds@gnu.org>
2247
2248 * keymap.c (current-active-maps): Quote newlines (compilation error).
2249
2250 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
2251
2252 * Makefile.in (lisp, shortlisp): Replace bindings.el with
2253 bindings.elc, since otherwise doc strings in bindings.el get wrong
2254 offsets in etc/DOC.
2255
2256 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
2257
2258 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
2259
2260 * keyboard.h (map_prompt): Remove.
2261
2262 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
2263 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
2264
2265 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
2266
2267 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
2268
2269 * keyboard.c (map_prompt): Remove.
2270 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
2271 Use Fkeymap_prompt.
2272
2273 * keymap.h: New file. Extracted from lisp.h.
2274
2275 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
2276 (accessible_keymaps_1): New function.
2277 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
2278 (Fwhere_is_internal): Use Fcurrent_active_maps.
2279 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
2280 Insert in current buffer rather than standard-output.
2281 Don't call `help-mode'. Export to elisp.
2282 (describe_buffer_bindings): New wrapper.
2283 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
2284 and Sdescribe_buffer_bindings.
2285
2286 2001-10-08 Gerd Moellmann <gerd@gnu.org>
2287
2288 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
2289 Remove code setting signal handler.
2290
2291 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
2292 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
2293
2294 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2295
2296 * keyboard.c: Don't define min/max.
2297
2298 2001-10-08 Gerd Moellmann <gerd@gnu.org>
2299
2300 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
2301 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
2302 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
2303 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
2304 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
2305 Don't define min/max.
2306
2307 * lisp.h (min, max): New macros.
2308
2309 * puresize.h (BASE_PURESIZE): Increase to 725000.
2310
2311 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2312
2313 * xfaces.c (free_frame_menubar): Add prototype.
2314
2315 * lisp.h (init_window): Add prototype.
2316
2317 * editfns.c: Include ctype.h.
2318
2319 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
2320 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
2321 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
2322 variable `sb'.
2323
2324 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
2325 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
2326 `popup_activated_flag' and `title'.
2327
2328 * doc.c (Fdocumentation_property): Fix typo in a doc string.
2329
2330 * emacs.c (main): Remove extra `;'.
2331
2332 * atimer.h (struct atimer): Fix typos in a comment.
2333
2334 * atimer.c: Fix typo.
2335
2336 * Makefile.in: Fix typo.
2337
2338 * README: Remove obsolete part mentioning removed VMS file.
2339
2340 2001-10-07 Miles Bader <miles@gnu.org>
2341
2342 * Makefile.in (lisp, shortlisp): Add `button.elc'.
2343
2344 2001-10-07 Ken Raeburn <raeburn@gnu.org>
2345
2346 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
2347 Lisp_Object.
2348
2349 * lisp.h (Ffield_end): Declare.
2350
2351 2001-10-07 Gerd Moellmann <gerd@gnu.org>
2352
2353 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
2354
2355 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
2356
2357 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
2358
2359 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
2360
2361 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
2362 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
2363
2364 * alloc.c (inhibit_garbage_collection): Simplify.
2365 (Fmemory_use_counts): Ditto.
2366
2367 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
2368 (syms_of_data): DEFVAR_INT most-positive-fixnum and
2369 most-negative-fixnum.
2370
2371 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
2372 (FIXNUM_OVERFLOW_P): New macros.
2373
2374 2001-10-06 Miles Bader <miles@gnu.org>
2375
2376 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
2377 scroll_bar_bottom_shadow_pixel fields.
2378 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
2379 for the shadows, and tell the toolkit about them if we succeed.
2380 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
2381 Free scroll-bar shadow colors.
2382 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
2383 Free scroll-bar shadow colors when the background color changes.
2384 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
2385 Initialize scroll-bar shadow-color fields.
2386
2387 2001-10-05 Gerd Moellmann <gerd@gnu.org>
2388
2389 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
2390
2391 2001-10-05 Miles Bader <miles@gnu.org>
2392
2393 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
2394 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
2395 New functions (were in simple.el).
2396 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
2397 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
2398 (syms_of_minibuf): Initialize them.
2399
2400 2001-10-05 Gerd Moellmann <gerd@gnu.org>
2401
2402 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
2403 (tiff_load): Install them as error and warning handler.
2404
2405 2001-10-04 Andrew Innes <andrewi@gnu.org>
2406
2407 * w32fns.c (x_to_w32_color): Fix argument to alloca.
2408 (w32_load_system_font): Don't believe what GetLanguageFontInfo
2409 says; query codepage info directly to determine if font is double byte.
2410 (x_to_w32_charset): Handle private format for unknown charsets.
2411 Handle wildcards in charset spec, by ignoring them.
2412 (w32_codepage_for_font): Fix argument to alloca. Don't remove
2413 "*-" prefix from charset.
2414 (x_to_w32_font): Enlarge remainder array for safety. Specifically
2415 handle the truncated font spec form constructed by font_list_1, so
2416 that we correctly identify the charset fields. Don't remove "*-"
2417 prefix from charset.
2418 (w32_list_synthesized_fonts): Fix argument to alloca.
2419
2420 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
2421
2422 * window.h (MINI_WINDOW_P): Use NILP.
2423
2424 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
2425
2426 * termhooks.h (struct input_event): Use proper type for `kind'.
2427
2428 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2429
2430 This handles unknown keysyms better than before. For example,
2431 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
2432 Emacs formerly completely ignored F5. With the change, it derives
2433 a key symbol from the name of the X keysym, `ccaron' in this case.
2434 Reported by Martin Buchholz.
2435
2436 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
2437 unknown keysyms.
2438
2439 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
2440 that EVENT->code isn't a function key, use the keysym's name.
2441
2442 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2443
2444 FOREACH is a macro that should make it easier to loop over Lisp
2445 lists with checks for cycles and proper lists.
2446
2447 * lisp.h (LIST_END_P, FOREACH): New macros.
2448
2449 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2450
2451 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
2452 called for a lost connection. Prevent dumping core in this case.
2453 Instead print the X error, and exit. On user request.
2454
2455 * xterm.c (error_msg): New variable.
2456 (x_fatal_error_signal): New function.
2457 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
2458 as fatal_error_signal_hook around the call to XtCloseDisplay.
2459
2460 * emacs.c (fatal_error_signal_hook): New variable.
2461 (fatal_error_signal): Call that function.
2462
2463 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2464
2465 With this, Emacs prints how much pure storage it will
2466 approximately need in case pure storage overflows while dumping.
2467
2468 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
2469 New variables.
2470 (init_alloc_once): Initialize new variables.
2471 (PURE_POINTER_P): Use new variables.
2472 (pure_alloc): If pure storage overflows, allocate from the heap.
2473 (check_pure_size): New function.
2474 (Fgarbage_collect): Don't GC if pure storage has overflowed.
2475
2476 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
2477 (check_pure_size): Add prototype.
2478
2479 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
2480
2481 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2482
2483 This adds a post-gc-hook that's run with GC inhibited.
2484 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
2485
2486 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
2487 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
2488 (Fgarbage_collect): Run post-gc-hook.
2489
2490 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2491
2492 This adds `defvaralias' and `indirect-variable'. Changes not
2493 directly related to this feature are there to gain the same
2494 performance again as before variable aliases.
2495
2496 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
2497 code to get and set symbol values, to take defvaralias into account.
2498
2499 (Note: the new `constant' bit-flag in symbols would make it
2500 possible to define arbitrary read-only variables, e.g. with
2501 `defconst'.)
2502
2503 Documentation is in lispref/variables.texi. Added to NEWS.
2504
2505 * lisp.h (enum symbol_interned): New enumeration.
2506 (struct Lisp_Symbol): Remove member `obarray', add
2507 `indirect_variable', `constant', and `interned'.
2508 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
2509 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
2510 (indirect_variable): Add prototype.
2511
2512 * print.c (print_preprocess, print_object): Test internedness of
2513 symbols differently.
2514
2515 * lread.c (Fintern, Funintern): Set symbol's interned and constant
2516 bit-fields.
2517 (init_obarray): Likewise for t and nil.
2518
2519 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
2520 (Fdefvaralias): New function.
2521 (specbind): Simplify the test if symbol is a constant.
2522 (syms_of_eval): Defsubr Fdefvaralias.
2523
2524 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
2525 (Qcyclic_variable_indirection): New variable.
2526 (Fkeywordp): Check for internedness differently.
2527 (Fmakunbound): Simplify the test if symbol is a constant.
2528 (indirect_variable, Findirect_variable): New functions.
2529 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
2530 aliased symbol.
2531 (let_shadows_buffer_binding_p): Check for variable aliases.
2532 (set_internal): Simplify the test if SYMBOL is a constant.
2533 If SYMBOL has a buffer-local value and is an alias, use the aliased
2534 symbol instead.
2535 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
2536 Sindirect_variable.
2537
2538 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
2539 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
2540 set directly.
2541
2542 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
2543
2544 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
2545 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
2546 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
2547
2548 2001-10-04 Gerd Moellmann <gerd@gnu.org>
2549
2550 * Branch for 21.1.
2551
2552 2001-10-03 Miles Bader <miles@gnu.org>
2553
2554 * callproc.c (syms_of_callproc): Explicitly state in the
2555 documentation for `process-environment' that earlier entries take
2556 precedence over later ones.
2557
2558 2001-10-02 Miles Bader <miles@gnu.org>
2559
2560 * textprop.c (Fnext_char_property_change)
2561 (Fprevious_char_property_change): Remove reference to non-existant
2562 argument OBJECT from doc-string.
2563
2564 2001-10-01 Gerd Moellmann <gerd@gnu.org>
2565
2566 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
2567 (try_window_id): Skip back over lines ending in a newline from a
2568 string.
2569
2570 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
2571 New bit flag
2572
2573 2001-10-01 Richard M. Stallman <rms@gnu.org>
2574
2575 * search.c (Freplace_match): Doc fix.
2576
2577 2001-09-28 Andrew Innes <andrewi@gnu.org>
2578
2579 * w32menu.c (set_frame_menubar): Take into account that
2580 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2581 <raeburn@gnu.org>.
2582
2583 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
2584
2585 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
2586
2587 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2588
2589 * s/gnu-linux.h: Fix a typo in comment.
2590
2591 2001-09-28 Andreas Schwab <schwab@suse.de>
2592
2593 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
2594 nocombreloc, in case -z combreloc is the default.
2595
2596 2001-09-28 Gerd Moellmann <gerd@gnu.org>
2597
2598 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
2599 really going on here.
2600
2601 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
2602
2603 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
2604
2605 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
2606
2607 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
2608 utf-8, menu-bar, and latin-N.
2609 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
2610 unconditionally now.
2611 (lisp): Add latin-N, since they are preloaded.
2612
2613 2001-09-27 Gerd Moellmann <gerd@gnu.org>
2614
2615 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
2616 to the left. Some cleanup.
2617
2618 * xdisp.c (display_mode_element): One more case where a string's
2619 multibyteness should be used for display.
2620
2621 2001-09-26 Gerd Moellmann <gerd@gnu.org>
2622
2623 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
2624 reading at EOF.
2625
2626 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
2627 of the only temporarily set echoing flag for deciding when
2628 the cancel echoing.
2629
2630 * keyboard.c (echo_kboard): Make externally visible.
2631
2632 * lisp.h (echo_kboard): Declare extern.
2633
2634 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
2635 fonts_changed_p if we need larger matrices due to vscrolling.
2636 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
2637 this round of redisplay if make_cursor_line_fully_visible fails.
2638 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
2639 (try_cursor_movement, try_scrolling): Use them instead of integers.
2640
2641 * dispextern.h (required_matrix_width, required_matrix_height):
2642 Add prototypes.
2643
2644 * dispnew.c (required_matrix_width, required_matrix_height):
2645 New functions.
2646 (allocate_matrices_for_window_redisplay)
2647 (allocate_matrices_for_frame_redisplay: Use them.
2648 Remove parameters CH_DIM.
2649
2650 * xdisp.c (display_mode_lines): Temporarily set selected_frame
2651 and selected_window to the frame of the window whose mode-lines
2652 are displayed, and to the window itself.
2653 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
2654 here.
2655
2656 2001-09-25 Gerd Moellmann <gerd@gnu.org>
2657
2658 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
2659 the image cache under us.
2660
2661 * xdisp.c (display_mode_element): If the mode element is a symbol
2662 with a string value, use that string's multibyteness for displaying.
2663
2664 * keyboard.c (read_char): Don't clear a message for a switch-frame
2665 event. From Stefan Monnier <monnier@cs.yale.edu>.
2666
2667 * xterm.c (fast_find_position) [0]: Add a presumably more correct
2668 version for after 21.1.
2669
2670 * xdisp.c (row_containing_pos): Make externally visible.
2671
2672 * dispextern.h (row_containing_pos): Add prototype.
2673
2674 * process.c (send_process): Disable composition if from_byte < 0.
2675 From Kenichi Handa <handa@etl.go.jp>.
2676
2677 2001-09-24 Gerd Moellmann <gerd@gnu.org>
2678
2679 * xterm.c (refreshicon): Function removed.
2680
2681 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
2682
2683 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
2684
2685 * xterm.c (toplevel): Remove includes in #if 0.
2686
2687 * process.c (sigchld_handler) [LINUX]: Don't return from
2688 the signal handler at the end of the loop.
2689
2690 2001-09-21 Gerd Moellmann <gerd@gnu.org>
2691
2692 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
2693 Terminate only if kill returns -1, and errno is ESRCH.
2694
2695 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
2696
2697 * Makefile.in (shortlisp): Add ../lisp/env.elc.
2698
2699 2001-09-20 Gerd Moellmann <gerd@gnu.org>
2700
2701 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
2702 since this function can be called during GC.
2703
2704 * callproc.c (Fcall_process): Handle errors from pipe(2).
2705 (child_setup): Delete code in #ifdef vipc.
2706
2707 2001-09-19 Gerd Moellmann <gerd@gnu.org>
2708
2709 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
2710 (display_mode_element): Display the string from decode_mode_spec
2711 depending on its multibyteness.
2712
2713 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
2714
2715 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
2716
2717 2001-09-18 Gerd Moellmann <gerd@gnu.org>
2718
2719 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
2720 recursive_edit_unwind.
2721 (recursive_edit_unwind): Set kboard state according to
2722 SINGLE-KBOARD.
2723
2724 * buffer.c (modify_overlay): Don't do nothing if START == END;
2725 This can still be a modification, for example when an overlay has
2726 a before-string or after-string.
2727 (Fdelete_overlay): Prevent redisplay optimizations when deleting
2728 an overlay with before-string or after-string.
2729
2730 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
2731 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
2732
2733 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
2734 first_unchanged_at_end_row is in front of
2735 last_unchanged_at_beg_row. This code should be removed after the
2736 release of 21.1.
2737
2738 2001-09-17 Gerd Moellmann <gerd@gnu.org>
2739
2740 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
2741 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
2742
2743 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
2744 versions >= 2.95.
2745
2746 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
2747
2748 * dired.c (Ffile_attributes): Doc fix.
2749
2750 2001-09-14 Gerd Moellmann <gerd@gnu.org>
2751
2752 * fileio.c (Ffile_symlink_p): Fix last change.
2753
2754 * filelock.c (current_lock_owner): Fix last change.
2755
2756 2001-09-13 Gerd Moellmann <gerd@gnu.org>
2757
2758 * filelock.c (current_lock_owner): If readlink returns ERANGE,
2759 take that to mean that the buffer is too small.
2760
2761 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
2762 that to mean that the buffer is too small.
2763
2764 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
2765 current buffer's multibyteness when discarding the iterator's
2766 stack.
2767
2768 * xfns.c (Fx_window_property): Handle case that property gets
2769 deleted between the two calls to XGetWindowProperty.
2770
2771 2001-09-11 Gerd Moellmann <gerd@gnu.org>
2772
2773 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
2774
2775 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
2776 in addition to read-only.
2777
2778 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
2779 to t in addition to read-only.
2780
2781 * lisp.h (Qinhibit_modification_hooks): Declare.
2782
2783 * insdel.c (Qinhibit_modification_hooks): New variable.
2784 (syms_of_insdel): Initialize and staticpro it.
2785
2786 * textprop.c (verify_interval_modification): Don't run
2787 modification-hooks if inhibit_modification_hooks.
2788
2789 * dispnew.c (set_window_cursor_after_update): Fix code
2790 finding glyph row containing cursor when cursor_in_echo_area
2791 is >= 0.
2792
2793 * xdisp.c (init_from_display_pos): Put some code in #if 0.
2794 (add_to_log): Use bcopy instead of strcpy.
2795 (init_from_display_pos): Use an explicit loop over bytes in
2796 overlay strings instead of calling index.
2797
2798 2001-09-10 Gerd Moellmann <gerd@gnu.org>
2799
2800 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
2801
2802 * dispnew.c (direct_output_for_insert): Don't change IT's
2803 stop_charpos to something in front of its current position.
2804
2805 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
2806 `format'.
2807
2808 2001-09-10 Richard M. Stallman <rms@gnu.org>
2809
2810 * frame.c (Fmouse_position): Doc fix.
2811
2812 2001-09-07 Gerd Moellmann <gerd@gnu.org>
2813
2814 * xdisp.c (init_from_display_pos): Don't compare the result
2815 of calling index with NULL.
2816
2817 2001-09-06 Gerd Moellmann <gerd@gnu.org>
2818
2819 * xfns.c (x_set_background_color): Don't change the colors
2820 of the X window of scroll bar widgets.
2821
2822 2001-09-05 Andrew Innes <andrewi@gnu.org>
2823
2824 * w32fns.c (w32_createwindow): Undo last change.
2825
2826 2001-09-05 Gerd Moellmann <gerd@gnu.org>
2827
2828 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
2829
2830 * xdisp.c (string_buffer_position): Use *single_char_property*
2831 functions instead of the *single_property* functions.
2832
2833 2001-09-04 Andrew Innes <andrewi@gnu.org>
2834
2835 * w32term.c (w32_read_socket): Add more information to debugging
2836 output.
2837
2838 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
2839 from Emacs frames, so that calls to GetClipBox in w32term.c
2840 correctly report when part of a frame is visible (including
2841 scrollbars, etc). This prevents repeated redrawing of frames when
2842 only a scrollbar is visible.
2843 (w32_wnd_proc): Add more frame information to debugging output.
2844
2845 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
2846
2847 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
2848
2849 2001-09-03 Gerd Moellmann <gerd@gnu.org>
2850
2851 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
2852 help-echo for a string which doesn't have help-echo itself, use
2853 get-char-property to obtain the help-echo from the string's buffer
2854 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
2855 have mouse-face, look ``under'' the string for mouse-face from an
2856 overlay.
2857 (fast_find_position): Add parameter STOP. In the final row, stop
2858 before glyphs having STOP as object. Don't consider glyphs that
2859 are not from a buffer.
2860
2861 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
2862
2863 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
2864
2865 * fns.c (Fmd5): Doc fix.
2866
2867 2001-08-31 Gerd Moellmann <gerd@gnu.org>
2868
2869 * composite.c (update_compositions): Do nothing if
2870 inhibit-modification-hooks is set.
2871
2872 2001-08-30 Gerd Moellmann <gerd@gnu.org>
2873
2874 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
2875 and check_message_stack if terminating abnormally. We want
2876 glyph matrices etc. in a core dump.
2877
2878 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
2879 (syms_of_xdisp): Initialize them.
2880 (handle_single_display_prop): Don't change point, bind `object',
2881 `position', and `buffer-position' instead to the object having the
2882 `display' property, position in the object and position in the buffer.
2883
2884 * fileio.c (Finsert_file_contents): Don't change the multibyteness
2885 of the buffer if REPLACE is non-nil.
2886
2887 2001-08-29 Gerd Moellmann <gerd@gnu.org>
2888
2889 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
2890
2891 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
2892
2893 * w32term.c (x_set_glyph_string_background_width)
2894 (show_mouse_face): Track the last changes in xterm.c.
2895
2896 2001-08-28 Gerd Moellmann <gerd@gnu.org>
2897
2898 * xterm.c (x_set_glyph_string_background_width): Set the glyph
2899 string's background width so that multi-line mouse-face is drawn
2900 to the right edge of the window.
2901 (show_mouse_face): Set the row's mouse_face_p flag after drawing
2902 glyphs.
2903
2904 * dispnew.c (direct_output_for_insert): Set updated_area
2905 before inserting/writing glyphs.
2906
2907 * xdisp.c (display_mode_element): Use string_byte_to_char to
2908 determine character positions in strings, use chars_in_text
2909 instead of strwidth.
2910 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
2911 a matrix as parameter; this is easier to use from GDB.
2912
2913 2001-08-28 Miles Bader <miles@gnu.org>
2914
2915 * textprop.c (Fprevious_single_char_property_change)
2916 (Fnext_single_char_property_change): Doc fixes.
2917
2918 2001-08-27 Gerd Moellmann <gerd@gnu.org>
2919
2920 * fileio.c (Finsert_file_contents): Allocate, restore, and
2921 free composition data in the case of REPLACE not being nil.
2922
2923 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
2924 there exist overlay strings with newlines at POS.
2925 (text_outside_line_unchanged_p): Return 0 if changes start at
2926 START and overlays exist at START. Likewise for END.
2927 (try_window_id): Give up if init_to_row_end returns 0.
2928
2929 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
2930 unconditionally.
2931
2932 2001-08-24 Gerd Moellmann <gerd@gnu.org>
2933
2934 * keymap.c (access_keymap): Return the cdr of the binding of
2935 a generic character instead of its definition (KEY . BINDING).
2936
2937 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
2938 to 0 also in the REPLACE case.
2939
2940 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
2941
2942 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
2943 open to determine whether file is readable (as for DOS_NT).
2944
2945 2001-08-23 Gerd Moellmann <gerd@gnu.org>
2946
2947 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
2948 coding.type is coding_type_no_conversion or coding_type_raw_text,
2949 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
2950 non-nil instead of just setting enable_multibyte_characters in the
2951 buffer to nil.
2952
2953 2001-08-22 Gerd Moellmann <gerd@gnu.org>
2954
2955 * dispextern.h (struct face_cache): Add member
2956 menu_face_changed_p.
2957
2958 * xfaces.c (menu_face_changed_default): New variable.
2959 (menu_face_changed_count): Variable removed.
2960 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
2961 the menu_face_changed_default flag, otherwise set the FRAME's
2962 menu_face_changed_p flag if the `menu' face has been changed.
2963 Prevent calling set_font_frame_param if FRAME is t.
2964 (make_face_cache): Initialize cache's menu_face_changed_p
2965 from menu_face_changed_default.
2966 (realize_basic_faces): Look into the frame's face cache to
2967 determine if the menu appearance needs updating.
2968
2969 * keymap.c (access_keymap): Fix last change to not consider
2970 IDX when it has modifiers.
2971
2972 2001-08-21 Gerd Moellmann <gerd@gnu.org>
2973
2974 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
2975 . BINDING) exists, where GENERIC-CHAR is the generic character of
2976 the charset of IDX, return BINDING unless there exists a binding
2977 for IDX itself.
2978
2979 2001-08-16 Gerd Moellmann <gerd@gnu.org>
2980
2981 * xrdb.c (SYSV): Don't define on Solaris 2.
2982 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
2983
2984 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
2985 of the screen line, not text line, containing IT's current position.
2986
2987 2001-08-15 Gerd Moellmann <gerd@gnu.org>
2988
2989 * window.c (window_scroll_pixel_based): Don't recenter if
2990 PT is partially visible in the window.
2991
2992 * xterm.c (expose_window_tree, expose_window, expose_line):
2993 Return 1 when overwriting mouse-face.
2994 (expose_frame): If mouse-face was overwritten, redo it.
2995
2996 * xfaces.c (x_update_menu_appearance): Don't call
2997 set_frame_menubar, let the next redisplay do it.
2998
2999 2001-08-14 Andrew Innes <andrewi@gnu.org>
3000
3001 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
3002 drawing glyph string.
3003
3004 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
3005
3006 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
3007 running HI-UX/MPP.
3008
3009 2001-08-14 Gerd Moellmann <gerd@gnu.org>
3010
3011 * xfaces.c (x_update_menu_appearance): Save and restore value of
3012 interrupt_input_blocked.
3013
3014 2001-08-13 Gerd Moellmann <gerd@gnu.org>
3015
3016 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
3017 a line start, move back to the line start.
3018
3019 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
3020 exactly when a mini-buffer is active.
3021
3022 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
3023 in units of 1/8 character on non window-system frames.
3024 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
3025
3026 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
3027
3028 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
3029 a doc string.
3030
3031 2001-08-09 Gerd Moellmann <gerd@gnu.org>
3032
3033 * keyboard.c (Vpre_help_message): New variable.
3034 (syms_of_keyboard): Initialize and staticpro it.
3035 (show_help_echo): Record current message before displaying a
3036 help-echo, and restore that message when clearing the help.
3037
3038 * xfns.c (x_create_im): Remove prototype.
3039
3040 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
3041
3042 * dispnew.c (adjust_glyph_matrix): Undo last change.
3043
3044 2001-08-08 Gerd Moellmann <gerd@gnu.org>
3045
3046 * dispnew.c (adjust_glyph_matrix): In the optimization for
3047 windows whose height has changed, disable partially visible lines.
3048
3049 2001-08-07 Gerd Moellmann <gerd@gnu.org>
3050
3051 * window.c (Frecenter): If ARG < 0, and on a window system
3052 frame, count in some empty lines when we can't move -ARG lines down.
3053
3054 * xdisp.c (start_display): Don't try to determine the continuation
3055 lines width if lines are truncated. It's superfluous and leads to
3056 incorrect results if POS is not visible in the window after
3057 reseating the iterator at the previous line start.
3058
3059 2001-08-06 Gerd Moellmann <gerd@gnu.org>
3060
3061 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
3062
3063 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
3064
3065 * alloc.c (init_stack): Remove declaration.
3066
3067 2001-08-03 Gerd Moellmann <gerd@gnu.org>
3068
3069 * keyboard.c (read_key_sequence): Check that key is an integer
3070 before comparing it with quit_char.
3071 (add_command_key): Use larger_vector.
3072 (read_char_x_menu_prompt): Instead of converting symbol and
3073 integer events into conses (EVENT . nil), use (EVENT . disabled)
3074 which cannot be confused with valid events.
3075 (read_char): When reading from Vunread_command_events, check for
3076 events of the form (EVENT . disabled) instead of
3077 (EVENT . nil).
3078
3079 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
3080 a float, determine the max height from the frame's height.
3081
3082 2001-08-02 Gerd Moellmann <gerd@gnu.org>
3083
3084 * xdisp.c (redisplay_internal): Take message_cleared_p into
3085 account only if minibuf_level == 0.
3086
3087 2001-08-01 Gerd Moellmann <gerd@gnu.org>
3088
3089 * xdisp.c (redisplay_internal): Add a check for the last
3090 displayed message.
3091
3092 * xdisp.c (message_cleared_p): New variable.
3093 (clear_message): Set message_cleared_p when clearing the current
3094 message.
3095 (redisplay_internal): Look at message_cleared_p to capture
3096 the case that the echo area should be cleared.
3097
3098 * keyboard.c (command_loop_1): Fix spelling of
3099 resize_echo_area_exactly.
3100
3101 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
3102
3103 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
3104
3105 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
3106 current matrix when the window gets smaller.
3107
3108 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
3109
3110 * print.c (strout): Cast the character passed to insert_char to
3111 unsigned char, to avoid sign extension when it is promoted to int.
3112
3113 2001-07-31 Gerd Moellmann <gerd@gnu.org>
3114
3115 * fileio.c (Finsert_file_contents): Don't treat a return value
3116 of 0 from emacs_read as an IO error.
3117
3118 2001-07-30 Gerd Moellmann <gerd@gnu.org>
3119
3120 * keyboard.c (abs): New macro.
3121 (double_click_fuzz): New variable.
3122 (make_lispy_event): Use it to determine what makes a double-click.
3123 (syms_of_keyboard): DEFVAR_INT it.
3124
3125 * xmenu.c (set_frame_menubar): Take into account that
3126 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
3127 <raeburn@gnu.org>.
3128
3129 2001-07-27 Gerd Moellmann <gerd@gnu.org>
3130
3131 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
3132
3133 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
3134 of row's visible height.
3135
3136 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
3137 deal with the first overlay string having an image `display' property.
3138 (try_window_reusing_current_matrix, compute_line_metrics):
3139 Fix computation of row's visible height for the case that part of the
3140 row is invisible above and part of the row is at the same time
3141 invisible below the window.
3142
3143 2001-07-26 Gerd Moellmann <gerd@gnu.org>
3144
3145 * xfns.c (x-show-tip): Doc fix.
3146
3147 * xfns.c (Vx_max_tooltip_size): New variable.
3148 (syms_of_xfns): DEFVAR_LISP it.
3149 (Fx_show_tip): Set frame's window_width to the width of the
3150 window. Use a maximum tooltip size specified by
3151 Vx_max_tooltip_size, if that has valid contents.
3152 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
3153
3154 2001-07-26 Andrew Innes <andrewi@gnu.org>
3155
3156 * w32term.c (x_display_list): New variable.
3157 (w32_term_init): Set it.
3158
3159 * w32term.h (x_display_list): New extern.
3160
3161 2001-07-26 Gerd Moellmann <gerd@gnu.org>
3162
3163 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
3164 is non-nil, instead of when redisplaying_p is non-zero.
3165 See comment there.
3166 (mark_window_display_accurate_1): Add an assertion.
3167
3168 2001-07-25 Gerd Moellmann <gerd@gnu.org>
3169
3170 * dispextern.h (struct it): Increase size of ctl_chars to 16.
3171
3172 * xfns.c (Fx_file_dialog): Block/unblock input while processing
3173 events so that we get a chance of processing expose events.
3174
3175 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
3176
3177 2001-07-24 Gerd Moellmann <gerd@gnu.org>
3178
3179 * xfns.c (valid_image_p): Protect better against invalid image
3180 specifications. Previous code could signal an error.
3181
3182 2001-07-23 Gerd Moellmann <gerd@gnu.org>
3183
3184 * indent.c (current_column): Fix column computation in the
3185 presence of display table entries.
3186 (current_column_1, Fmove_to_column, compute_motion): Likewise.
3187
3188 * dispnew.c (adjust_glyph_matrix): In the optimization for
3189 windows whose height has changed, use the new window height
3190 to compute which rows to invalidate.
3191
3192 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
3193 (MAX_10_EXP): New macro.
3194 (Fformat): Use it.
3195
3196 * coding.c (code_convert_region): Handle the multibyte case if
3197 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
3198
3199 2001-07-20 Gerd Moellmann <gerd@gnu.org>
3200
3201 * dispextern.h (struct face): Change type of `stipple' to
3202 int; it's an ID.
3203
3204 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
3205
3206 2001-07-19 Gerd Moellmann <gerd@gnu.org>
3207
3208 * dispnew.c (update_window): Don't set the cursor at the end
3209 of the update if display update has been paused.
3210
3211 * composite.h (syms_of_composite): Renamed from syms_of_composition.
3212
3213 2001-07-18 Ken Raeburn <raeburn@gnu.org>
3214
3215 * fns.c (Fset_char_table_default): Check that a charset is defined
3216 before checking its dimension.
3217
3218 2001-07-17 Ken Raeburn <raeburn@gnu.org>
3219
3220 * coding.c (setup_coding_system): Don't do any designation based
3221 on reg_bits if charset is not yet defined.
3222
3223 * lisp.h (XVECTOR): Verify correct object type before returning a
3224 pointer, using eassert.
3225
3226 2001-07-17 Gerd Moellmann <gerd@gnu.org>
3227
3228 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
3229 Increase to 4096 because of paste problems reported on GNU/Linux.
3230
3231 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
3232
3233 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
3234
3235 2001-07-16 Gerd Moellmann <gerd@gnu.org>
3236
3237 * fileio.c (unwind_read): Function removed.
3238 (read_non_regular, read_non_regular_quit): New functions.
3239 (Finsert_file_contents): When reading from non-regular files,
3240 arrange to catch a `quit' and terminate the loop. Rearrange
3241 code so that a `quit' when reading from a regular file doesn't
3242 insert text in the buffer.
3243
3244 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
3245 Clear faces afterwards.
3246 (clear_font_table): Take a x_display_info parameter. Don't free
3247 fonts being the default font of any frame on the given display.
3248
3249 2001-07-13 Gerd Moellmann <gerd@gnu.org>
3250
3251 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
3252 instead of CHAR_STRING which can signal an error.
3253
3254 * charset.c (char_to_string_1): Extracted from char_to_string.
3255 Return -1 instead of signaling an error.
3256 (char_to_string): Use it.
3257
3258 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
3259
3260 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
3261
3262 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
3263 is t, don't try to append anything to it.
3264
3265 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
3266
3267 * dired.c (file_name_completion): Pass dp->d_name to
3268 Fstring_match, not elt, which is always nil here.
3269
3270 2001-07-12 Gerd Moellmann <gerd@gnu.org>
3271
3272 * xselect.c (x_decline_selection_request): Handle errors
3273 caused by receivers that have vanished.
3274
3275 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
3276 ignoring events on foreign windows in #if 0. Always dispatch
3277 the event after checking it with x_handle_property_notify.
3278
3279 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
3280 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
3281 TRACE macros to facilitate debugging. Add additional trace statements.
3282 (toplevel): Add prototypes for file-local functions.
3283 (x_atom_to_symbol): Remove DPYINFO parameter.
3284
3285 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
3286
3287 * w32menu.c (menubar_selection_callback, w32_menu_show):
3288 Initialize `entry' to nil.
3289 (w32_dialog_show): Remove unused `save_wv' variable.
3290 (name_is_separator): Recognize "--:foo" and "--foo-bar".
3291
3292 2001-07-11 Gerd Moellmann <gerd@gnu.org>
3293
3294 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
3295
3296 * fileio.c (unwind_read): Print a message when discarding inserted
3297 text or switching the buffer to unibyte. Change parameter.
3298 (Finsert_file_contents): Don't pass VISIT to unwind_read.
3299
3300 * fileio.c (unwind_read): New function.
3301 (Finsert_file_contents): Record it as unwind-function for
3302 the case that reading is interrupted by C-g.
3303
3304 2001-07-10 Gerd Moellmann <gerd@gnu.org>
3305
3306 * dispnew.c (update_window): Don't skip the header-line
3307 update when scrolling_window returns 0.
3308
3309 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
3310
3311 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
3312 for the case that x_decode_color signals an error.
3313
3314 * xdisp.c (add_to_log): Do nothing if called asynchronously.
3315
3316 2001-07-09 Gerd Moellmann <gerd@gnu.org>
3317
3318 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
3319 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
3320 around ioctls.
3321
3322 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
3323
3324 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
3325 doc string line for dos-timezone-offset.
3326
3327 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
3328 inline assembly, to avoid compiler warnings.
3329 (syms_of_msdos): Add \n\ at the end of a line in the doc string
3330 line for dos-unsupported-char-glyph.
3331
3332 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
3333
3334 2001-07-05 Gerd Moellmann <gerd@gnu.org>
3335
3336 * sound.c: Include Emacs' header files with #include "...".
3337
3338 * eval.c (specbind): Additionally record the buffer that was
3339 current when a buffer-local or frame-local variable was bound.
3340
3341 2001-07-04 Gerd Moellmann <gerd@gnu.org>
3342
3343 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
3344 to unibyte characters in unibyte buffers.
3345
3346 2001-07-03 Gerd Moellmann <gerd@gnu.org>
3347
3348 * eval.c (specbind): If SYMBOL has a frame-local binding, record
3349 the frame on the binding stack. Change format of entries for
3350 local bindings on the binding stack to '(SYMBOL . WHERE)'.
3351 (unbind_to): Handle unbinding a frame-local variable.
3352
3353 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
3354 glyphs and truncation glyphs at the end of a row from its pixel width.
3355 (dump_glyph_row): Print row's continuation_lines_width.
3356 (try_window_id): Take the shortcut if ZV is visible in the
3357 window, but there are actually no changes at ZV.
3358
3359 2001-07-02 Gerd Moellmann <gerd@gnu.org>
3360
3361 * xterm.h (x_free_dpy_colors): Add prototype.
3362
3363 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
3364 right number of arguments.
3365
3366 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
3367 ($(lwlibdir)TAGS): New target.
3368 (TAGS): Fix dependency list.
3369
3370 * xterm.c (x_list_fonts): Make sure XFreeFont is called
3371 with input blocked.
3372
3373 2001-06-30 Gerd Moellmann <gerd@gnu.org>
3374
3375 * emacs.c (main): Remove extern declaration for sys_nerr, which
3376 isn't used and causes a compilation error with GCC 3.0 on
3377 FreeBSD 4.3.
3378
3379 2001-06-27 Gerd Moellmann <gerd@gnu.org>
3380
3381 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
3382 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
3383 (toplevel): Include <signal.h> and syssignal.h.
3384
3385 * sound.c (vox_configure, vox_close): Turn off atimers
3386 around ioctls.
3387
3388 2001-06-26 Gerd Moellmann <gerd@gnu.org>
3389
3390 * keyboard.c (read_char) <non_reread>: Record the previous idle
3391 start time before calling timer_stop_idle.
3392 (read_char) <reread_first>: After processing a help-echo event,
3393 restore the previous idle start time.
3394
3395 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
3396 the start of invisible text.
3397 (setup_for_ellipsis): New function.
3398 (next_overlay_string): After all overlay strings have been
3399 processed, display an ellipsis if necessary.
3400 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
3401 (push_it): Initialize display_ellipsis_p on the iterator's stack.
3402
3403 * dispextern.h (struct iterator_stack_entry): Add member
3404 display_ellipsis_p.
3405
3406 2001-06-25 Gerd Moellmann <gerd@gnu.org>
3407
3408 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
3409 on the value of the wait-for-wm frame parameter.
3410
3411 * xterm.h (struct x_output): Add member wait_for_wm.
3412
3413 * xfns.c (Qwait_for_wm): New variable.
3414 (x_frame_parms): Add entry for `wait-for-wm".
3415 (x_set_wait_for_wm): New function.
3416 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
3417 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
3418
3419 * xdisp.c (try_window_id) <all changes below window end>: Don't
3420 take this shortcut if ZV is visible in the window.
3421 (try_window_id): When checking for window start being in changed
3422 text, don't check that the buffer's size has changed.
3423
3424 2001-06-23 Richard M. Stallman <rms@gnu.org>
3425
3426 * minibuf.c (Fcompleting_read): Doc fix.
3427
3428 2001-06-19 Gerd Moellmann <gerd@gnu.org>
3429
3430 * composite.c (Ffind_composition_internal): Accept ZV
3431 and a string's end position as POS.
3432
3433 2001-06-18 Gerd Moellmann <gerd@gnu.org>
3434
3435 * composite.c (Ffind_composition_internal): Check POS
3436 for validity.
3437
3438 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
3439
3440 * editfns.c (Fmessage_box): If the frame is not under a window
3441 system, output the message in the echo area.
3442
3443 2001-06-14 Richard M. Stallman <rms@gnu.org>
3444
3445 * xdisp.c (try_window_id): When EOB is visible, don't treat
3446 insertion at EOB as if it were "off the bottom of the screen."
3447
3448 2001-06-11 Andrew Innes <andrewi@gnu.org>
3449
3450 * w32proc.c (create_child): Add new parameter is_gui_app.
3451 (w32_executable_type): Add new parameter is_gui_app.
3452 (sys_spawnve): Use it.
3453 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
3454 SIGQUIT. This matches better how the signals are interpreted by
3455 MSVC compiled programs.
3456 (syms_of_ntproc): Update docstring.
3457
3458 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
3459
3460 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
3461 well otherwise note_mouse_highlight might optimize away highlighting
3462 if we pass over that same overlay again.
3463
3464 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
3465
3466 * lread.c (Fload): Document that the argument is run via
3467 substitute-in-file-name.
3468
3469 2001-05-31 Gerd Moellmann <gerd@gnu.org>
3470
3471 * Makefile.in (bootstrap-doc): New target.
3472 (bootstrap-emacs): Depend on it.
3473
3474 * fileio.c (Fdo_auto_save): Don't try to create the directory of
3475 auto-save-list-file-name when shutting down Emacs, because
3476 creating the directory might signal an error, and leaves
3477 Emacs in a strange state.
3478
3479 * term.c: (tty_cursor_hidden): New variable.
3480 (update_begin): Don't call tty_hide_cursor. Clean up.
3481 (update_end, set_terminal_window, set_scroll_region): Clean up.
3482 (ring_bell, reset_terminal_modes): Clean up.
3483 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
3484 on tty_cursor_hidden.
3485 (write_glyphs): Call tty_hide_cursor.
3486
3487 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
3488
3489 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
3490
3491 2001-05-30 Gerd Moellmann <gerd@gnu.org>
3492
3493 * xfns.c (enum image_value_type): New enumerator
3494 IMAGE_STRING_OR_NIL_VALUE.
3495 (parse_image_spec): Handle it.
3496 (xbm_format, pbm_format): Use it for :foreground and :background.
3497 (xbm_load, pbm_load): Check for nil color names.
3498
3499 * xterm.c (note_mouse_highlight): If an overlapping overlay
3500 exists, but we find that we highlight the same overlay as before,
3501 don't do the highlighting again.
3502
3503 2001-05-29 Gerd Moellmann <gerd@gnu.org>
3504
3505 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
3506 Protect unibyte strings created by replacing their multibyte
3507 equivalents in menu_items.
3508
3509 * keymap.c (Fsingle_key_description): NUL-terminate the string
3510 buffer before calling build_string.
3511
3512 * callproc.c (Fcall_process): Deal with decode_coding returning
3513 CODING_FINISH_INCONSISTENT_EOL.
3514
3515 2001-05-28 Gerd Moellmann <gerd@gnu.org>
3516
3517 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
3518 an item's name with its key description in case the description
3519 is a multibyte string.
3520
3521 * keymap.c (Fsingle_key_description): Create a multibyte string
3522 only if necessary.
3523
3524 * macros.c (Fstart_kbd_macro): Doc fix.
3525
3526 * xterm.c (cursor_in_mouse_face_p): New function.
3527 (x_draw_stretch_glyph_string): Use it to choose a different GC
3528 when drawing a cursor within highlighted text.
3529
3530 * editfns.c (char_property_eq): Put in #if 0.
3531
3532 * indent.c (string_display_width): Put in #if 0.
3533
3534 * lread.c (Fload): Remove unused label.
3535
3536 * termcap.c (speeds): Put in #if 0.
3537
3538 2001-05-18 Gerd Moellmann <gerd@gnu.org>
3539
3540 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
3541
3542 * xfaces.c (xlfd_point_size): Don't divide pixel size from
3543 transformation matrix by 10.
3544
3545 2001-05-16 Gerd Moellmann <gerd@gnu.org>
3546
3547 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
3548 only if it's equal to the former foreground pixel color.
3549 (x_set_foreground_color, x_set_background_color)
3550 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
3551
3552 2001-05-16 Dave Love <fx@gnu.org>
3553
3554 * insdel.c (signal_before_change, signal_after_change): Consider a
3555 local change hook which changes the buffer.
3556
3557 * process.c (read_process_output): Don't call signal_after_change
3558 and update_compositions after insert_from_string_before_markers.
3559
3560 2001-05-16 Gerd Moellmann <gerd@gnu.org>
3561
3562 * xfaces.c (split_font_name): Use the right field when
3563 checking for `[...]' syntax.
3564
3565 * buffer.c (copy_overlays): New function.
3566 (clone_per_buffer_values): Use it.
3567
3568 * buffer.h (OVERLAY_PLIST): New macro.
3569
3570 * keymap.c (Fsingle_key_description): Replace a build_string with
3571 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
3572
3573 * fontset.c (Ffontset_info): Check that face is non-null
3574 before accessing its fields.
3575
3576 2001-05-15 Gerd Moellmann <gerd@gnu.org>
3577
3578 * keyboard.c (read_key_sequence): Prevent generating a fake
3579 prefix key twice.
3580
3581 * xfaces.c (split_font_name): Handle `[...]' for the right
3582 font name fields.
3583
3584 * ccl.c (ccl_driver): Don't copy remaining bytes in case
3585 of CCL_STAT_INVALID_CMD.
3586
3587 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
3588
3589 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
3590 in <var> has no default value yet.
3591
3592 * xfaces.c (try_alternative_families): First try the FAMILY.
3593 And if nothing is found in the end, try again with scalable fonts.
3594 (try_font_list): Let try_alternative_families do a bit more of
3595 the work. Only use FAMILY if it is not nil.
3596 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
3597
3598 2001-05-14 Gerd Moellmann <gerd@gnu.org>
3599
3600 * xterm.c (note_mouse_highlight): Avoid changing the mouse
3601 pointer shape when show_mouse_face has already done it.
3602
3603 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
3604 full-width rows.
3605
3606 * xfaces.c (split_font_name): Make sure to leave the loop
3607 with the right value of `i'.
3608
3609 * xfaces.c (split_font_name): Handle matrix transformations
3610 in the pixel and point size fields of XLFD font names.
3611 (xlfd_point_size): Likewise.
3612
3613 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
3614
3615 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
3616 (x_to_w32_font): Add prototype.
3617
3618 * regex.c (malloc, realloc, free) [emacs]: Undefine before
3619 redefining, to avoid compiler warnings.
3620
3621 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
3622
3623 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
3624 (w32_get_bdf_glyph): Cast between unsigned char and char when
3625 passing arguments to subroutines, to shut up compiler warnings.
3626 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
3627 GET_HEX_VAL.
3628
3629 * xfaces.c: Include keyboard.h before frame.h, not after it.
3630
3631 * widget.c: Include keyboard.h before frame.h.
3632
3633 * w32term.h (struct image, struct face): Forward declaration, to
3634 avoid compiler warnings.
3635
3636 2001-05-11 Gerd Moellmann <gerd@gnu.org>
3637
3638 * keyboard.c (read_key_sequence): Don't modify events when
3639 generating fake prefix keys (mode-line, scroll-bar, ...) since
3640 this prevents proper processing of such events when pushed back
3641 into unread-command-events.
3642
3643 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
3644 actually redrawn. Make the function static.
3645 (note_mouse_highlight): Fix a case where the mouse cursor
3646 was changed back to the text cursor.
3647
3648 * xterm.h (clear_mouse_face): Remove prototype.
3649
3650 * xdisp.c (try_window_id): Fix the fix and set the right
3651 window_end_vpos.
3652
3653 * xdisp.c (try_window_id): Fix computation of window end in the
3654 case that lines were deleted at the end of the window. Add some
3655 more debug_method_adds.
3656
3657 * xfaces.c (try_alternative_families): New function.
3658 (try_font_list): Use it. If ATTRS specifies a family, check
3659 fonts from that family first.
3660 (choose_face_font): Remove code setting the family part of
3661 the pattern to nil.
3662
3663 2001-05-10 Gerd Moellmann <gerd@gnu.org>
3664
3665 * xdisp.c (try_window_id): Fix case of all changes before
3666 the window start.
3667
3668 * xdisp.c (try_window_id): Add some xasserts.
3669
3670 2001-05-09 Gerd Moellmann <gerd@gnu.org>
3671
3672 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
3673
3674 2001-05-09 Dave Love <fx@gnu.org>
3675
3676 * xdisp.c (GIVE_UP): Fix for K&R C.
3677
3678 2001-05-09 Gerd Moellmann <gerd@gnu.org>
3679
3680 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
3681
3682 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
3683 back to the text cursor shape without need.
3684
3685 2001-05-07 Gerd Moellmann <gerd@gnu.org>
3686
3687 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
3688
3689 * dispextern.h (inverse_video): Declare extern.
3690
3691 * keyboard.c (delete_kboard): Handle the case that selected_frame
3692 has been deleted in the course of x_connection_closed.
3693
3694 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
3695
3696 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
3697 Fix the change from 2001-04-30.
3698
3699 2001-05-03 Gerd Moellmann <gerd@gnu.org>
3700
3701 * xfns.c (file_dialog_unmap_cb): New function.
3702 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
3703 where a dialog is closed via the window manager.
3704
3705 * xdisp.c (try_window_id): Cases of changes all in front of
3706 the window start or all below the window end mostly rewritten.
3707 (redisplay_window): Move the tests if try_window_id is
3708 applicable to try_window_id.
3709 (GIVE_UP): New macro.
3710
3711 2001-05-02 Gerd Moellmann <gerd@gnu.org>
3712
3713 * xterm.c (expose_window): Return int. If W is the window
3714 currently being updated, mark the frame garbaged.
3715 Fix computation of rows intersecting the exposed rectangle.
3716 (expose_window_tree): Stop when expose_window returns 0.
3717
3718 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
3719 again if it has already been drawn.
3720
3721 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
3722
3723 * syntax.c (update_syntax_table): Check that oldi has the same
3724 properties as old_prop before deciding not to invalidate.
3725
3726 2001-04-30 Gerd Moellmann <gerd@gnu.org>
3727
3728 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
3729 read-only text that is so because of text properties.
3730
3731 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
3732 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
3733 windows that are components of a Lucid menu bar.
3734
3735 2001-04-27 Gerd Moellmann <gerd@gnu.org>
3736
3737 * term.c (turn_on_face): Fix reverse video handling on terminals
3738 that don't support colors.
3739
3740 2001-04-26 Gerd Moellmann <gerd@gnu.org>
3741
3742 * editfns.c (save_excursion_restore): Don't use XBUFFER on
3743 a non-buffer.
3744
3745 2001-04-25 Gerd Moellmann <gerd@gnu.org>
3746
3747 * term.c (toggle_highlight): New function.
3748 (turn_on_face): Change handling of reverse video.
3749
3750 * process.c (wait_reading_process_input):
3751 Call record_asynch_buffer_change only if a timer really changed buffers.
3752
3753 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
3754 of the number of overlays to check.
3755
3756 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
3757
3758 * xdisp.c (try_window_id): Fix a case where window_end_pos
3759 and window_end_bytepos were not adjusted.
3760
3761 2001-04-23 Gerd Moellmann <gerd@gnu.org>
3762
3763 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
3764 zero instead of -1.
3765
3766 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
3767
3768 * process.c (wait_reading_process_input) [!subprocesses]:
3769 Don't reference waiting_for_user_input_p, it's not defined in the
3770 branch without async subprocesses support.
3771
3772 2001-04-19 Gerd Moellmann <gerd@gnu.org>
3773
3774 * keyboard.c (delete_kboard): Prevent a dangling reference
3775 from current_kboard to KB, which is freed.
3776
3777 * process.c (wait_reading_process_input):
3778 Call record_asynch_buffer_change after running timers, to make
3779 read_key_sequence aware of buffer changes from under it.
3780
3781 2001-04-18 Gerd Moellmann <gerd@gnu.org>
3782
3783 * xfaces.c (Qscalable_fonts_allowed): New variable.
3784 (realizing_basic_faces_p): Removed.
3785 (x_face_list_fonts): Special handling for realizing_basic_faces_p
3786 removed.
3787 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
3788 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
3789 for scalable-fonts-allowed to t.
3790
3791 * fileio.c (Finsert_file_contents): If the file size returned from
3792 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
3793 read from files on a procfs whose contents are generated dynamically.
3794
3795 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
3796
3797 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
3798 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
3799 (__memalign_hook): Make the two prototypes consistent.
3800
3801 2001-04-17 Gerd Moellmann <gerd@gnu.org>
3802
3803 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
3804 matrix of mini-windows.
3805
3806 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
3807
3808 * intervals.c (find_interval): Don't rebalance during signal handling.
3809
3810 2001-04-11 Gerd Moellmann <gerd@gnu.org>
3811
3812 * fns.c: Include blockinput.h.
3813
3814 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
3815
3816 2001-04-10 Gerd Moellmann <gerd@gnu.org>
3817
3818 * fns.c (Fcompare_strings): Fix return values.
3819
3820 * window.c (window_scroll): Change the meaning of N to mean
3821 N screen-fulls or N lines.
3822 (window_scroll_pixel_based, window_scroll_line_based)
3823 (scroll_command, Fscroll_other_window): Change accordingly.
3824
3825 * window.c (window_scroll_pixel_based, Frecenter):
3826 Call window_box_height instead of using it.last_visible_y for the
3827 height of the window.
3828
3829 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
3830 instead of using it.last_visible_y for the height of the window.
3831
3832 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
3833 From Dan Holmsand <dan@eyebee.com>.
3834
3835 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
3836 able to write to hidden and system files. From Dan Holmsand
3837 <dan@eyebee.com>.
3838
3839 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
3840 Holmsand <dan@eyebee.com>.
3841
3842 2001-04-09 Gerd Moellmann <gerd@gnu.org>
3843
3844 * fns.c (Fplist_get, Fplist_put): Add QUITs.
3845
3846 * window.c (window_internal_height): Return 1 less if the
3847 window has a header line.
3848
3849 * xdisp.c (try_window_id): When scrolling on a terminal, take
3850 the change of window_internal_height into account.
3851
3852 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
3853
3854 * gmalloc.c (align): If the argument SIZE would overflow
3855 __malloc_ptrdiff_t, fail right away.
3856
3857 2001-04-06 Gerd Moellmann <gerd@gnu.org>
3858
3859 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
3860 Make sure the tooltip is completely visible.
3861 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
3862
3863 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
3864
3865 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
3866
3867 2001-04-06 Dave Love <fx@gnu.org>
3868
3869 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
3870 Fix test of `from'.
3871
3872 2001-04-06 Gerd Moellmann <gerd@gnu.org>
3873
3874 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
3875
3876 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
3877
3878 2001-04-05 Gerd Moellmann <gerd@gnu.org>
3879
3880 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
3881
3882 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
3883
3884 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
3885 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
3886
3887 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
3888 shell widget's position only if it is non-null.
3889
3890 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
3891 Set f->output_data.x->widget to null after destroying it.
3892
3893 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
3894 FILENAME to bring it in synch with the documentation.
3895
3896 * xfaces.c (realizing_basic_faces_p): Renamed from
3897 realize_default_face_p.
3898 (realize_basic_faces): Set/clear realizing_basic_faces_p.
3899 (realize_default_face): Don't set the flag.
3900
3901 2001-04-04 Gerd Moellmann <gerd@gnu.org>
3902
3903 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
3904
3905 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
3906
3907 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
3908 the buffer that was used for echoing.
3909
3910 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
3911 (first_font_matching): Removed unused function.
3912 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
3913 (may_use_scalable_font_p): Remove parameter FONT; rename
3914 parameter NAME to FONT.
3915 (x_face_list_fonts): Fix missing bounds check.
3916 (realizing_default_face_p): New variable.
3917 (realize_default_face): Set and clear that flag.
3918 (x_face_list_fonts): When called during the realization of the
3919 default face, and no matching fonts are found when ignoring
3920 scalable fonts and fonts matching a regexp from
3921 face-ignored-fonts, try without ignoring fonts.
3922
3923 2001-04-03 Gerd Moellmann <gerd@gnu.org>
3924
3925 * xfns.c (postprocess_image): New function.
3926 (lookup_image): Call it for all image types except PostScript.
3927 (x_kill_gs_process): Call postprocess_image.
3928
3929 * xterm.c (x_use_underline_position_properties): New variable.
3930 (x_draw_glyph_string): Use it.
3931 (syms_of_xterm): DEFVAR_BOOL it.
3932
3933 2001-04-02 Gerd Moellmann <gerd@gnu.org>
3934
3935 * xterm.c (x_alloc_nearest_color_1): New function.
3936 (x_alloc_nearest_color): Use it.
3937 (x_color_cells): Take a Display as argument, instead of a frame.
3938 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
3939 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
3940 (x_initialize): Register cvt_string_to_pixel as resource converter
3941 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
3942
3943 2001-03-30 Gerd Moellmann <gerd@gnu.org>
3944
3945 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
3946 (set_iterator_to_next): If a string from a display property ends,
3947 consider the case that this might also be the end of an
3948 overlay string having the display property.
3949
3950 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
3951
3952 * xdisp.c (reseat_to_string): Undo last change.
3953
3954 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
3955 matrix of a window when the header line changes, when
3956 new rows are allocated, or when the width changes.
3957
3958 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
3959
3960 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
3961
3962 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
3963
3964 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
3965 deprecated.
3966
3967 2001-03-29 Gerd Moellmann <gerd@gnu.org>
3968
3969 * data.c (Fsubr_interactive_form): New function.
3970 (syms_of_data): Defsubr it.
3971
3972 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
3973 (live_float_p, live_misc_p): Return 1 only if the offset of the
3974 pointer in its block is >= 0.
3975
3976 2001-03-28 Paul Eggert <eggert@twinsun.com>
3977
3978 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
3979 microseconds calcuation. Avoid double-rounding problem.
3980 In doc string, warn that the result is approximate.
3981
3982 2001-03-28 Gerd Moellmann <gerd@gnu.org>
3983
3984 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
3985 bind `inhibit-eval-during-redisplay' to t.
3986
3987 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
3988
3989 * xdisp.c (inhibit_eval_during_redisplay)
3990 (Qinhibit_eval_during_redisplay): New variables.
3991 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
3992 don't eval, return nil instead.
3993 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
3994 Initialize Qinhibit_eval_during_redisplay.
3995
3996 * xdisp.c (reseat_to_string): If STRING is multibyte, set
3997 the iterator's multibyte_p flag.
3998
3999 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
4000 instead of setting it to zero; it's incremented for each frame
4001 where the menu face is changed.
4002
4003 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
4004 change bottom shadow accordingly.
4005
4006 * xterm.c (expose_window_tree, expose_frame): Don't compute
4007 intersections here.
4008 (expose_window): Do it here instead.
4009 (x_draw_glyph_string): Fix a computation of the underline position.
4010
4011 * bytecode.c (BYTE_CODE_QUIT): New macro.
4012 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
4013
4014 2001-03-27 Gerd Moellmann <gerd@gnu.org>
4015
4016 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
4017 Give up if matrix starts in an ellipsis.
4018 (init_from_display_pos): Do nothing if POS doesn't specify
4019 a dpvec_index but the iterator has such a position.
4020
4021 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
4022
4023 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
4024 x/y position is (0, 0) after destroying the menu bar, restore
4025 its original position.
4026
4027 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
4028 (init_from_display_pos): Use it.
4029 (try_window_reusing_current_matrix): Don't use cursor_row_p.
4030
4031 2001-03-26 Gerd Moellmann <gerd@gnu.org>
4032
4033 * xdisp.c (try_window_id): Undo last change.
4034
4035 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
4036
4037 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
4038
4039 * buffer.c (syms_of_buffer): Doc fix.
4040
4041 2001-03-26 Gerd Moellmann <gerd@gnu.org>
4042
4043 * xfaces.c (x_update_menu_appearance): Use local variable
4044 popup_path for setting font resources.
4045
4046 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
4047
4048 * frame.c (Fframe_list): Don't reference tip_frame if
4049 HAVE_WINDOW_SYSTEM is not defined.
4050
4051 * emacs.c (main): Update the copyright year. From Werner LEMBERG
4052 <wl@gnu.org>.
4053
4054 2001-03-25 Gerd Moellmann <gerd@gnu.org>
4055
4056 * xdisp.c (init_from_display_pos): Test invisible property
4057 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
4058
4059 * xdisp.c (redisplay_internal) <update one window>: Make sure
4060 last_arrow_position and last_arrow_string are set.
4061
4062 * frame.c (Fframe_list): Don't return a tooltip frame.
4063
4064 2001-03-23 Gerd Moellmann <gerd@gnu.org>
4065
4066 * xdisp.c (mark_window_display_accurate_1): New function,
4067 extracted from mark_window_display_accurate.
4068 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
4069 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
4070 (mark_window_display_accurate): Use it.
4071 (redisplay_internal): Use it for the selected window.
4072 (redisplay_internal): Avoid duplicate mark_window_display_accurate
4073 for the selected frame.
4074
4075 * xdisp.c Use make_number, for readability.
4076 (try_window_id): Disable rows below the window end.
4077 (try_window_reusing_current_matrix): Use cursor_row_p.
4078 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
4079 of rows.
4080 (init_from_display_pos): If POS specifies a position in a display
4081 vector, maybe get the iterator set up for that ellipsis.
4082
4083 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
4084
4085 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
4086
4087 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
4088
4089 2001-03-23 Gerd Moellmann <gerd@gnu.org>
4090
4091 * xfaces.c (x_update_menu_appearance): Use a different path
4092 for Lucid popup menus.
4093
4094 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
4095
4096 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
4097
4098 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
4099 (string_buffer_position): Use `make_number'.
4100
4101 2001-03-22 Gerd Moellmann <gerd@gnu.org>
4102
4103 * xfaces.c (x_update_menu_appearance): Renamed from
4104 x_set_menu_face_resources. Use different resources for popups.
4105
4106 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
4107 (GC_CHECK_STRING_BYTES): Don't define.
4108
4109 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
4110 Removed, together with subroutines.
4111 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
4112 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
4113
4114 * dispextern.h (x_set_menu_resources_from_menu_face):
4115 Remove prototype.
4116
4117 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
4118 Remove calls to x_set_menu_resources_from_menu_face.
4119
4120 * xfaces.c (xm_set_menu_resources_from_menu_face):
4121 Remove #ifndef LESSTIF_VERSION.
4122
4123 * xmenu.c: Include widget.h.
4124 (single_submenu): Return int. Some cleanup.
4125 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
4126
4127 2001-03-21 Gerd Moellmann <gerd@gnu.org>
4128
4129 * xterm.c (x_update_window_end): Handle overwritten mouse face
4130 also for tool bar windows.
4131 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
4132 DRAW is DRAW_IMAGE_RAISED.
4133
4134 2001-03-20 Gerd Moellmann <gerd@gnu.org>
4135
4136 * print.c (syms_of_print): Doc fixes.
4137
4138 * fns.c (Fmd5): Doc fix.
4139
4140 2001-03-19 Gerd Moellmann <gerd@gnu.org>
4141
4142 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
4143 Clear area of the frame not occupied by the scroll bar.
4144
4145 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
4146 tip frame's root window buffer to *tip* right after creating
4147 the frame.
4148
4149 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
4150 is an integer don't have to be for space characters.
4151
4152 2001-03-16 Gerd Moellmann <gerd@gnu.org>
4153
4154 * indent.c (current_column, current_column_1, Fmove_to_column)
4155 (compute_motion): Handle characters from display vectors differently.
4156
4157 2001-03-15 Kenichi Handa <handa@etl.go.jp>
4158
4159 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
4160 drawing glyph string.
4161
4162 2001-03-15 Gerd Moellmann <gerd@gnu.org>
4163
4164 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
4165 (command_loop_1): Undo last change.
4166
4167 * xterm.c (fast_find_position): Return the correct vpos.
4168
4169 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
4170 non-null, set a per-buffer value in BUF instead of the current buffer.
4171 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
4172 Call store_symval_forwarding with BUF null.
4173 (set_internal): Call store_symval_forwarding with the BUF
4174 parameter passed to set_internal. Formerly, the value was always
4175 set in the current buffer; the buffer recorded in specbind for
4176 this case wasn't used.
4177 (arith_driver): Reindent.
4178
4179 * buffer.c (swap_out_buffer_local_variables):
4180 Call store_symval_forwarding with BUF null.
4181
4182 * lisp.h (store_symval_forwarding): Change prototype.
4183
4184 * eval.c (specbind): Call store_symval_forwarding with BUF null.
4185
4186 2001-03-14 Gerd Moellmann <gerd@gnu.org>
4187
4188 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
4189 FOR_DELETION. Avoid resizing the mini-window of the selected
4190 frame if FOR_DELETION is set.
4191 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
4192 (Fmake_frame_invisible): Change calls to do_switch_frame for new
4193 signature.
4194
4195 * window.c (Fset_window_configuration): Change call to
4196 do_switch_frame to new format.
4197
4198 * keyboard.c (quit_throw_to_read_char): Change call to
4199 do_switch_frame to new format.
4200
4201 * lisp.h (do_switch_frame): Change prototype.
4202
4203 * frame.c (Fframe_parameters): In the `buffer-list' frame
4204 parameter, store the buffer list of FRAME, not the list of the
4205 selected frame.
4206
4207 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
4208 box just because the glyph row's full_width_p flag is set.
4209
4210 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
4211
4212 * xdisp.c (highlight_trailing_whitespace): On character terminals,
4213 skip the padding blanks inserted in extend_face_to_end_of_line,
4214 before checking for trailing whitespace.
4215
4216 2001-03-13 Gerd Moellmann <gerd@gnu.org>
4217
4218 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
4219 Remove special handling for LessTif/Motif.
4220 (toplevel): Don't include Xm/Xm.h.
4221
4222 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
4223 Remove workaround code for LessTif; it doesn't work anymore.
4224
4225 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
4226 Xm/ScrollBarP.h.
4227
4228 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
4229 Don't access private scroll bar data; it's no longer necessary with
4230 contemporary LessTif.
4231
4232 * xfaces.c (xm_set_menu_resources_from_menu_face):
4233 Change #if 0 to #ifndef LESSTIF_VERSION.
4234
4235 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
4236 removing button grabs.
4237
4238 2001-03-13 Kenichi Handa <handa@etl.go.jp>
4239
4240 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
4241 and clip-large-size-font as obsolete.
4242
4243 * lread.c (read_multibyte): Check the validity of multibyte
4244 sequence. If invalid, return the first byte.
4245
4246 2001-03-12 Gerd Moellmann <gerd@gnu.org>
4247
4248 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
4249 before running the command; timer functions or process
4250 filters may have set it.
4251
4252 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
4253
4254 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
4255 Doc fix.
4256
4257 2001-03-12 Gerd Moellmann <gerd@gnu.org>
4258
4259 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
4260 to sprintf.
4261
4262 2001-03-09 Gerd Moellmann <gerd@gnu.org>
4263
4264 * dispextern.h (string_buffer_position): Add prototype.
4265
4266 * xdisp.c (string_buffer_position, display_prop_string_p)
4267 (single_display_prop_string_p): New functions.
4268
4269 * xterm.c (note_mouse_highlight): If there's no help-echo on
4270 a string, look at the buffer text ``under'' it.
4271
4272 * keyboard.c (make_lispy_event): Add string info to the event,
4273 analogous to what's done on mode lines.
4274 (read_key_sequence): For a click on a string, consider `local-map'
4275 and `keymap' of that string.
4276
4277 * keyboard.c (make_lispy_event, make_lispy_movement):
4278 Adjust calls to buffer_posn_from_coords to new format.
4279
4280 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
4281
4282 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
4283 POS; return void.
4284
4285 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
4286 flags argument to emacs_open; it seems to conflict with O_EXCL.
4287
4288 2001-03-09 Kenichi Handa <handa@etl.go.jp>
4289
4290 * composite.h (struct composition): Change types of members;
4291 glyph_len to unsigned, width to unsigned short.
4292
4293 2001-03-08 Andrew Innes <andrewi@gnu.org>
4294
4295 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
4296 menu titles.
4297
4298 2001-03-08 Gerd Moellmann <gerd@gnu.org>
4299
4300 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
4301 instead of nil.
4302
4303 * xterm.c (note_mouse_highlight): Handle mouse-face and
4304 help-echo in strings.
4305 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
4306 (fast_find_string_pos): New function.
4307
4308 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
4309 (display_string): Call face_at_string_position with new parameter.
4310
4311 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
4312 Handle `mouse-face'.
4313
4314 * dispextern.h (face_at_string_position): Change prototype.
4315
4316 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
4317
4318 * keyboard.c (make_lispy_event): Avoid generating drag events
4319 if the mouse hasn't actually moved to another buffer position.
4320
4321 2001-03-08 Dave Love <fx@gnu.org>
4322
4323 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
4324
4325 2001-03-08 Gerd Moellmann <gerd@gnu.org>
4326
4327 * process.c (Fset_process_window_size): Fix a typo.
4328
4329 2001-03-08 Kenichi Handa <handa@etl.go.jp>
4330
4331 * coding.c (detect_coding_sjis): Do more rigid check.
4332 (detect_coding_big5): Likewise.
4333 (decode_coding_sjis_big5): Likewise.
4334 (Fdetect_coding_region): Call detect_coding_system with tailing
4335 anchor byte `\0' for more rigid detection.
4336 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
4337 (Fdetect_coding_string): Likewise.
4338
4339 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
4340
4341 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
4342 a string before extracting its data.
4343
4344 2001-03-07 Gerd Moellmann <gerd@gnu.org>
4345
4346 * window.c (Frecenter): Rewrite code handling negative values
4347 of ARG on graphical frames.
4348
4349 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
4350
4351 * window.c (displayed_window_lines): If W->start is outside the
4352 accessible portion of the buffer, call start_display with BEGV or
4353 ZV instead of W->start.
4354
4355 2001-03-07 Gerd Moellmann <gerd@gnu.org>
4356
4357 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
4358
4359 * process.c (Fset_process_filter): Don't crash if the input
4360 file descriptor of PROCESS is closed.
4361 (Fset_process_window_size): Likewise.
4362
4363 2001-03-06 Kenichi Handa <handa@etl.go.jp>
4364
4365 * xterm.c (XTflash): Make the timeout of select shorter, and call
4366 select repeatedly until the desired time expires.
4367
4368 2001-03-06 Gerd Moellmann <gerd@gnu.org>
4369
4370 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
4371
4372 * xfns.c (Fx_create_frame): Clear Vwindow_list.
4373
4374 * lisp.h (Vwindow_list): Declare extern.
4375
4376 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
4377
4378 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
4379
4380 2001-03-06 Gerd Moellmann <gerd@gnu.org>
4381
4382 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
4383 to detect a case where we have to highlight a different region
4384 despite not having left the currently highlighted region.
4385 Set mouse_face_overlay in the x_display_info.
4386 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
4387
4388 * xterm.h (struct x_display_info): Add mouse_face_overlay.
4389
4390 * buffer.c (mouse_face_overlay_overlaps): New function.
4391
4392 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
4393 (Qmouse_face): Declare extern.
4394
4395 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
4396 if face_change_count is non-zero.
4397
4398 2001-03-06 Kenichi Handa <handa@etl.go.jp>
4399
4400 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
4401 that the source is unibyte.
4402
4403 2001-03-05 Dave Love <fx@gnu.org>
4404
4405 * xterm.c (XTmouse_position): Fix typo.
4406
4407 2001-03-05 Gerd Moellmann <gerd@gnu.org>
4408
4409 * minibuf.c (read_minibuf): Clean up the binding stack if
4410 called noninteractively.
4411
4412 2001-03-05 Kenichi Handa <handa@etl.go.jp>
4413
4414 * coding.c (syms_of_coding): Docstring modified.
4415
4416 2001-03-05 Kenichi Handa <handa@etl.go.jp>
4417
4418 * charset.c (char_to_string): If a single byte char has modifier
4419 bits that can't be reflected to the character code, ignore them
4420 instead of signaling an error.
4421
4422 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
4423
4424 * s/msdos.h: Update copyright notice.
4425
4426 * dosfns.h: Update copyright notice.
4427
4428 * dosfns.c: Update copyright notice.
4429
4430 * msdos.c: Update copyright notice.
4431
4432 2001-03-02 Gerd Moellmann <gerd@gnu.org>
4433
4434 * xterm.c (glyph_rect): New function.
4435 (XTmouse_position): Use it to raise the threshold for mouse
4436 movement event generation.
4437
4438 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
4439
4440 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
4441 specifies (reverse . t), reverse the initial screen colors.
4442 (IT_set_frame_parameters): If the property is foreground-color,
4443 but we are reversing the colors, set bg_set, not fg_set.
4444 Likewise for setting background-color and reversing: set fg_set.
4445 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
4446 in effect.
4447
4448 * xfaces.c (Finternal_set_lisp_face_attribute)
4449 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
4450 parameters alist.
4451
4452 2001-03-02 Gerd Moellmann <gerd@gnu.org>
4453
4454 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
4455 to a single slash in the middle of file names.
4456
4457 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
4458 Accept only alphanumeric time zone names.
4459
4460 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
4461 or width area.
4462 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
4463 a widget to zero height.
4464
4465 2001-03-01 Gerd Moellmann <gerd@gnu.org>
4466
4467 * window.c (Fwindow_end): Call move_it_past_eol only if
4468 ending up on a partially visible line.
4469
4470 2001-03-01 Dave Love <fx@gnu.org>
4471
4472 * ccl.c (Fccl_execute): Doc fix.
4473
4474 2001-03-01 Gerd Moellmann <gerd@gnu.org>
4475
4476 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
4477 of the tool bar before calling x_figure_window_size.
4478
4479 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
4480 NULL after destroying it, otherwise XTread_socket can access a
4481 destroyed widget when input is unblocked.
4482
4483 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
4484
4485 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
4486 same name as before, although there was a change in fontsets.
4487
4488 2001-02-28 Ken Raeburn <raeburn@gnu.org>
4489
4490 * lisp.h (Fframe_parameter): Declare.
4491
4492 * window.c (set_window_buffer): Field vscroll is an int, not a
4493 Lisp_Object.
4494
4495 2001-02-28 Gerd Moellmann <gerd@gnu.org>
4496
4497 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
4498 NULL instead.
4499
4500 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
4501 NULL instead.
4502
4503 * alloc.c (toplevel): Include process.h.
4504 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
4505 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
4506 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
4507 (allocate_vector, allocate_hash_table, allocate_window)
4508 (allocate_frame, allocate_process, allocate_other_vector):
4509 New functions.
4510 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
4511 (mark_maybe_pointer): New function.
4512 (mark_memory): Also mark Lisp data to which only pointers
4513 remain and not Lisp_Objects.
4514 (min_heap_address, max_heap_address): New variables.
4515 (mem_find): Return MEM_NIL if START is below min_heap_address or
4516 above max_heap_address.
4517 (mem_insert): Compute min_heap_address and max_heap_address.
4518
4519 * process.c (make_process): Use allocate_process.
4520
4521 * frame.c (make_frame): Use allocate_frame.
4522
4523 * window.c (make_window, make_dummy_parent): Use allocate_window.
4524 (Fcurrent_window_configuration): Use allocate_other_vector.
4525
4526 * lisp.h (allocate_vectorlike): Remove prototype.
4527 (allocate_vector, allocate_other_vector, allocate_frame)
4528 (allocate_window, allocate_process, allocate_hash_table):
4529 Add prototypes.
4530
4531 * fns.c (Fdelete, larger_vector): Use allocate_vector.
4532 (make_hash_table, copy_hash_table): Use allocate_hash_table.
4533
4534 2001-02-27 Kenichi Handa <handa@etl.go.jp>
4535
4536 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
4537 treat the produced bytes as a valid multibyte sequence.
4538
4539 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
4540 (ccl_driver) <CCL_WriteMultibyteChar2>:
4541 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
4542 <ccl_finish>: Set ccl->eight_bit_control properly.
4543
4544 * ccl.h (struct ccl_program): New member eight_bit_control.
4545
4546 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
4547
4548 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
4549 accessible_keymaps_char_table.
4550 (accessible_keymaps_char_table): Obey `is_metized'.
4551 (where_is_internal, Fwhere_is_internal): Don't confuse int and
4552 Lisp_Object.
4553
4554 2001-02-26 Gerd Moellmann <gerd@gnu.org>
4555
4556 * dispnew.c: Check HAVE_TERM_H before including term.h.
4557
4558 2001-02-24 Andrew Innes <andrewi@gnu.org>
4559
4560 * makefile.w32-in: Update copyright notice.
4561
4562 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
4563
4564 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
4565
4566 2001-02-24 Kenichi Handa <handa@etl.go.jp>
4567
4568 * Makefile.in (lisp): Add international/utf-8.elc.
4569
4570 * fontset.c (Fnew_fontset): Fix handling of the case that an
4571 element of FONTLIST is a cons of family and registry.
4572
4573 2001-02-23 Jason Rumney <jasonr@gnu.org>
4574
4575 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
4576 to height unconditionally.
4577
4578 * w32term.c (x_set_glyph_string_background_width): Extend the
4579 background face to the end of the drawing area in the text area, only.
4580 (x_insert_glyphs): Call window_box_left to obtain the left
4581 x-coordinate of the area to shift.
4582
4583 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
4584 safe_run_hooks.
4585
4586 2001-02-22 Andrew Innes <andrewi@gnu.org>
4587
4588 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
4589 ($(BLD)\dispnew.obj):
4590 ($(BLD)\editfns.obj):
4591 ($(BLD)\fileio.obj):
4592 ($(BLD)\filelock.obj):
4593 ($(BLD)\keyboard.obj):
4594 ($(BLD)\w32proc.obj):
4595 ($(BLD)\process.obj):
4596 ($(BLD)\sysdep.obj): Ditto.
4597
4598 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
4599 header files.
4600 ($(BLD)/dispnew.$(O)):
4601 ($(BLD)/editfns.$(O)):
4602 ($(BLD)/fileio.$(O)):
4603 ($(BLD)/filelock.$(O)):
4604 ($(BLD)/keyboard.$(O)):
4605 ($(BLD)/w32proc.$(O)):
4606 ($(BLD)/process.$(O)):
4607 ($(BLD)/sysdep.$(O)): Ditto.
4608
4609 2001-02-22 Gerd Moellmann <gerd@gnu.org>
4610
4611 * xdisp.c (forward_to_next_line_start): When taking the shortcut
4612 at the start of the function, check that the \n in it->c is
4613 from the iterator's current position.
4614
4615 * xdisp.c (handle_single_display_prop): Add parameter
4616 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
4617 properties which replace the display of text with something else.
4618 (handle_display_prop): Call handle_single_display_prop with
4619 additional argument saying if we already replaced text display
4620 with something else. Use AREF.
4621 (with_echo_area_buffer_unwind_data, display_menu_bar)
4622 (decode_mode_spec_coding): Use AREF and ASIZE.
4623
4624 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
4625 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
4626 * vmstime.h: Files removed.
4627
4628 * unexencap.c, unexfx2800.c: Files removed.
4629
4630 * dispnew.c (direct_output_for_insert): Give up if we are showing
4631 a message or just cleared the message because we might need to
4632 resize the echo area window or display an empty echo area.
4633
4634 2001-02-21 Gerd Moellmann <gerd@gnu.org>
4635
4636 * xdisp.c (redisplay_internal): Do the
4637 mark_window_display_accurate after all windows have been
4638 redisplayed because this call resets flags in buffers which are
4639 needed for proper redisplay.
4640
4641 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
4642 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
4643 the old names.
4644
4645 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
4646 busy_window to hourglass_window, busy_p to hourglass_p.
4647
4648 * msdos.h (struct x_output): Rename busy_window to
4649 hourglass_window, busy_p to hourglass_p.
4650
4651 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
4652 busy_window to hourglass_window, busy_p to hourglass_p.
4653
4654 * xfns.c: Rename everything containing *busy_cursor* and similar
4655 to *hourglass*.
4656 (syms_of_w32fns): Rename x-busy-pointer-shape to
4657 x-hourglass-pointer-shape, display-busy-cursor to
4658 display-hourglass, busy-cursor-delay to hourglass-delay.
4659
4660 * w32fns.c: Rename everything containing *busy_cursor* and similar
4661 to *hourglass*.
4662 (syms_of_w32fns): Rename x-busy-pointer-shape to
4663 x-hourglass-pointer-shape, display-busy-cursor to
4664 display-hourglass, busy-cursor-delay to hourglass-delay.
4665
4666 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
4667 of its busy_p flag.
4668
4669 * dispextern.h (start_hourglass, cancel_hourglass)
4670 (display_hourglass_p): Renamed from *busy_cursor*.
4671
4672 2001-02-20 Gerd Moellmann <gerd@gnu.org>
4673
4674 * keyboard.c (read_char): When an event from unread-command-events
4675 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
4676
4677 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
4678 equal to the current buffer.
4679
4680 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
4681 nil, otherwise we're left with truncate_lines t when a message
4682 is printed with message-truncate-lines bound to t.
4683
4684 2001-02-19 Gerd Moellmann <gerd@gnu.org>
4685
4686 * window.c (Fmove_to_window_line): Undo last change.
4687 (displayed_window_lines): Call line_bottom_y to determine
4688 the line's bottom position.
4689
4690 * dispextern.h (line_bottom_y): Add prototype.
4691
4692 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
4693 (pos_visible_p): Use it.
4694
4695 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
4696 set redisplaying_p to 0 here instead of in Frecursive_edit.
4697 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
4698 set redisplaying_p.
4699
4700 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
4701 New variables.
4702 (syms_of_xdisp): Initialize new variables.
4703 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
4704 Specbind `inhibit-menubar-update' when updating the menu bar.
4705
4706 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
4707 safe_run_hooks.
4708
4709 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
4710 safe_run_hooks.
4711
4712 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
4713 is null.
4714
4715 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
4716 to the start of the file.
4717
4718 2001-02-16 Gerd Moellmann <gerd@gnu.org>
4719
4720 * window.c (set_window_buffer): Fix last change.
4721
4722 * window.c (set_window_buffer): Set window's vscroll to 0.
4723
4724 * window.c (coordinates_in_window): Increase width of area
4725 where the vertical line can be dragged.
4726
4727 * xterm.c (x_set_glyph_string_background_width): Extend the
4728 background face to the end of the drawing area in the text
4729 area, only.
4730
4731 * xdisp.c (handle_single_display_prop): Set iterator's position
4732 to where the `display' property starts, like for images.
4733 (dump_glyph): New function.
4734 (dump_glyph_row): Use it. Dump info about marginal areas.
4735
4736 * dispnew.c (direct_output_for_insert): Recognize more cases where
4737 glyphs can be written instead of being inserted.
4738
4739 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
4740 the left x-coordinate of the area to shift.
4741
4742 * dired.c (directory_files_internal): Set result list to nil
4743 before retrying.
4744
4745 2001-02-15 Kenichi Handa <handa@etl.go.jp>
4746
4747 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
4748 invalid multibyte sequence, treat *SRC as a character of
4749 eight-bit-graphic.
4750
4751 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
4752
4753 * textprop.c (Fset_text_properties): Doc fix.
4754
4755 2001-02-15 Gerd Moellmann <gerd@gnu.org>
4756
4757 * dispnew.c (update_text_area): Undo change of 2001-01-12.
4758
4759 2001-02-14 Dave Love <fx@gnu.org>
4760
4761 * coding.c: Doc and message fixes.
4762
4763 2001-02-14 Andrew Innes <andrewi@gnu.org>
4764
4765 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
4766 Emacs frame above the screen size.
4767
4768 2001-02-14 Gerd Moellmann <gerd@gnu.org>
4769
4770 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
4771
4772 2001-02-13 Gerd Moellmann <gerd@gnu.org>
4773
4774 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
4775 case that TO ends up beyond ZV after running before-change-functions.
4776
4777 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
4778 the selected window if it is showing the buffer in question.
4779
4780 * dired.c (directory_files_internal): Initialize errno.
4781 (toplevel): Include errno.h.
4782
4783 2001-02-13 Kenichi Handa <handa@etl.go.jp>
4784
4785 * xfaces.c (best_matching_font): New parameter width_ratio.
4786 Multiply avgwidth by width_ratio.
4787 (choose_face_font): Call best_matching_font with width_ratio
4788 calculated from the column width of C.
4789
4790 2001-02-12 Andrew Innes <andrewi@gnu.org>
4791
4792 The following changes are to draw box lines inside characters area
4793 if line-width is negative.
4794
4795 * w32term.c (x_produce_image_glyph): Pay attention to the case that
4796 face->box_line_width is negative.
4797 (x_produce_stretch_glyph): Likewise.
4798 (x_produce_glyphs): Likewise.
4799 (x_estimate_mode_line_height): Likewise.
4800 (x_draw_glyph_string_background): Likewise.
4801 (x_draw_glyph_string_foreground): Likewise.
4802 (x_draw_composite_glyph_string_foreground): Likewise.
4803 (x_draw_glyph_string_box): Likewise.
4804 (x_draw_image_foreground): Likewise.
4805 (x_draw_image_relief): Likewise.
4806 (x_draw_image_foreground_1): Likewise.
4807 (x_draw_image_glyph_string): Likewise.
4808
4809 2001-02-09 Kenichi Handa <handa@etl.go.jp>
4810
4811 The following changes are to draw box lines inside characters area
4812 if line-width is negative.
4813
4814 * xterm.c (x_produce_image_glyph): Pay attention to the case that
4815 face->box_line_width is negative.
4816 (x_produce_stretch_glyph): Likewise.
4817 (x_produce_glyphs): Likewise.
4818 (x_estimate_mode_line_height): Likewise.
4819 (x_draw_glyph_string_background): Likewise.
4820 (x_draw_glyph_string_foreground): Likewise.
4821 (x_draw_composite_glyph_string_foreground): Likewise.
4822 (x_draw_glyph_string_box): Likewise.
4823 (x_draw_image_foreground): Likewise.
4824 (x_draw_image_relief): Likewise.
4825 (x_draw_image_foreground_1): Likewise.
4826 (x_draw_image_glyph_string): Likewise.
4827
4828 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
4829 and :line-width can be negative.
4830 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
4831
4832 2001-02-09 Jason Rumney <jasonr@gnu.org>
4833
4834 * w32term.c (w32_encode_char): Treat eight bit graphic and control
4835 characters the same as ASCII and latin-1.
4836 (x_display_and_set_cursor): Check for the focus frame's selected
4837 window instead of selected_window.
4838 (x_after_update_window_line): Don't clear if frame's internal
4839 border width is zero.
4840 (x_new_font): Don't change a tooltip's size.
4841 (w32_initialize): Set char_ins_del_ok to 1.
4842
4843 * w32fns.c (Fx_show_tip): Fix calls to make_number.
4844 (x_set_font): If font hasn't changed, avoid recomputing
4845 faces and other things.
4846 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
4847 (Fx_create_frame): Add the tool bar height to the frame height.
4848 (x_create_tip_frame): Prevent changing the tooltip's
4849 background color by specifying a color for the default font
4850 in .Xdefaults.
4851 (Qcancel_timer): New variable.
4852 (syms_of_w32fns): Initialize and staticpro it.
4853 (Fx_hide_tip, Fx_show_tip): Use it.
4854 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
4855 the timer.
4856 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
4857
4858 * w32.c (init_environment): Duplicate local string before putenv.
4859
4860 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
4861
4862 * charset.c (Fstring): A typo.
4863
4864 2001-02-09 Kenichi Handa <handa@etl.go.jp>
4865
4866 * charset.c (Fstring): If all arguments are less than 256, return
4867 a unibyte string.
4868
4869 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
4870 return a unibyte string.
4871
4872 * coding.c (code_convert_region): After detecting a coding, if
4873 nothing found, set coding->composing to COMPOSITION_NO.
4874 (decode_coding_string): Likewise.
4875
4876 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
4877
4878 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
4879 to avoid overflow.
4880
4881 2001-02-07 Kenichi Handa <handa@etl.go.jp>
4882
4883 * charset.c (parse_str_to_multibyte): New function.
4884
4885 * charset.h (parse_str_to_multibyte): Extern it.
4886
4887 * print.c (print_string): If we are going to print a unibyte
4888 string into a multibyte buffer, convert the string to multibyte by
4889 str_to_multibyte.
4890
4891 2001-02-06 Andrew Innes <andrewi@gnu.org>
4892
4893 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
4894 been created. It seems we can get sent window messages such as
4895 WM_ERASEBKGND before we properly update a frame.
4896
4897 2001-02-06 Gerd Moellmann <gerd@gnu.org>
4898
4899 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
4900 Avoid some unnecessary cursor positioning.
4901
4902 2001-02-05 Gerd Moellmann <gerd@gnu.org>
4903
4904 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
4905 (LFACE_AVGWIDTH): New macro.
4906 (LFACEP): Use AREF.
4907 (check_lface_attrs): Check LFACE_AVGWIDTH.
4908 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
4909 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
4910 (merge_face_vectors): Check LFACE_AVGWIDTH.
4911 (Finternal_make_lisp_face): Use AREF.
4912 (xm_set_menu_resources_from_menu_face)
4913 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
4914 (Finternal_lisp_face_empty_p): Use AREF.
4915 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
4916 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
4917 Compare average widths..
4918 (best_matching_font): Arrange for comparing average widths.
4919
4920 * dispextern.h (enum lface_attribute_index):
4921 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
4922
4923 2001-02-05 Dave Love <fx@gnu.org>
4924
4925 * puresize.h: Revert last change following loadup.el change.
4926
4927 2001-02-05 Andrew Innes <andrewi@gnu.org>
4928
4929 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
4930 invocation of temacs, to work with Windows 2000.
4931 (bootstrap-emacs): Ditto.
4932
4933 2001-02-05 Gerd Moellmann <gerd@gnu.org>
4934
4935 * xterm.c (x_display_and_set_cursor): Check for the focus
4936 frame's selected window instead of selected_window.
4937
4938 * xdisp.c (try_scrolling): If point is in the line below the
4939 window, make sure to move the iterator at least a canonical
4940 char height down.
4941
4942 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
4943
4944 2001-02-05 Kenichi Handa <handa@etl.go.jp>
4945
4946 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
4947 If invalid, execute CCL_INVALID_CMD.
4948 (ccl_driver): If the CCL program is terminated because of
4949 CCL_STAT_INVALID_CMD, copy the remaining source data to the
4950 destination instead of throwing them away.
4951
4952 2001-02-02 Gerd Moellmann <gerd@gnu.org>
4953
4954 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
4955 faces and other things.
4956
4957 * xdisp.c (get_next_display_element): Fix case of empty
4958 display table entry.
4959
4960 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
4961
4962 * editfns.c (Fconstrain_to_field): Doc fix.
4963
4964 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
4965 into `thoroughly', to make it consistent with the doc string.
4966
4967 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
4968
4969 2001-02-01 Gerd Moellmann <gerd@gnu.org>
4970
4971 * search.c (search_buffer): Call set_search_regs with a byte
4972 position, not a character position.
4973
4974 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
4975 minibuffer-only,
4976
4977 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
4978
4979 * frame.c (Fmodify_frame_parameters): Doc fix.
4980
4981 2001-01-31 Gerd Moellmann <gerd@gnu.org>
4982
4983 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
4984 identifier which is not reserved by Standard C.
4985
4986 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
4987
4988 * window.c (enum window_part): New enumeration.
4989 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
4990 Qright_bitmap_area.
4991 (coordinates_in_window): Return an enumerator from enum
4992 window_part. Fix handling of right scroll bar.
4993 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
4994 `right-fringe' instead of `left-bitmap-area' and
4995 `right-bitmap-area'. Use enumerators from enum window_part
4996 instead of hard-coded integers.
4997 (check_window_containing, window_from_coordinates):
4998 Use enumerators from enum window_part instead of hard-coded integers.
4999 (syms_of_window): Replace Qleft_bitmap_area and
5000 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
5001
5002 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
5003
5004 * editfns.c (Fformat_time_string): Doc fix.
5005
5006 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
5007
5008 * keymap.c (Fwhere_is_internal): Use the first valid binding
5009 if no ascii binding is found (when firstonly is t).
5010
5011 2001-01-31 Gerd Moellmann <gerd@gnu.org>
5012
5013 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
5014 instead of Finteractive_p.
5015
5016 * lisp.h (interactive_p): Add prototype.
5017
5018 * eval.c (interactive_p): New function.
5019 (Finteractive_p): Use it.
5020
5021 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
5022
5023 2001-01-31 Dave Love <fx@gnu.org>
5024
5025 * .gdbinit (hook-run): Define to run xreload.
5026
5027 * textprop.c (Fset_text_properties): Fix newline in doc string.
5028
5029 2001-01-30 Gerd Moellmann <gerd@gnu.org>
5030
5031 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
5032 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
5033
5034 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
5035 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
5036 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
5037
5038 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
5039 height.
5040
5041 2001-01-30 Dave Love <fx@gnu.org>
5042
5043 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
5044 AFTER_POTENTIAL_GC.
5045
5046 2001-01-29 Gerd Moellmann <gerd@gnu.org>
5047
5048 * bytecode.c (Fbyte_code) <Bcurrent_column>:
5049 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
5050
5051 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
5052
5053 * textprop.c (Fset_text_properties): Doc fix.
5054
5055 2001-01-29 Gerd Moellmann <gerd@gnu.org>
5056
5057 * xdisp.c (forward_to_next_line_start): Remove xassert.
5058
5059 2001-01-29 Jason Rumney <jasonr@gnu.org>
5060
5061 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
5062 returning without releasing it.
5063
5064 2001-01-29 Kenichi Handa <handa@etl.go.jp>
5065
5066 * w32fns.c (w32_font_match): Allocate three more bytes to regex
5067 for '^', '$', and '\0'.
5068
5069 2001-01-28 Andrew Choi <akochoi@i-cable.com>
5070
5071 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
5072 regex for '^', '$', and '\0'.
5073
5074 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
5075 only if current_sblock has been initialized.
5076
5077 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
5078 terminal frame even if it is the only visible frame.
5079
5080 2001-01-28 Kenichi Handa <handa@etl.go.jp>
5081
5082 * fontset.c (font_family_registry): Even if FONTNAME conform to
5083 XLFD, if it specifies other fields than family and registry,
5084 return FONTANME. New argument FORCE if nonzero cancel that feature.
5085 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
5086 a signle byte character. Don't set FAMILY part to nil here.
5087 It is handled by the caller choose_face_font.
5088 (Fnew_fontset): Call font_family_registry with FORCE 0.
5089 (Fset_fontset_font): Likewise.
5090
5091 2001-01-27 Gerd Moellmann <gerd@gnu.org>
5092
5093 * xdisp.c (display_line): Don't treat a newline as fitting
5094 on the line.
5095
5096 2001-01-26 Gerd Moellmann <gerd@gnu.org>
5097
5098 * window.c (size_window): Set the window's orig_top to nil when
5099 changing heights, so that a future shrink_mini_window won't
5100 restore a bogus height.
5101
5102 * frame.c (do_switch_frame): If selected frame has a mini-window,
5103 resize that to exact size.
5104
5105 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
5106
5107 * xdisp.c (display_line): Simplify check for glyphs fitting
5108 entirely in the line.
5109
5110 * xfns.c (xic_style): New variable.
5111 (create_frame_xic): Move static variable to global scope for
5112 the case that `static' gets defined away.
5113
5114 2001-01-26 Kenichi Handa <handa@etl.go.jp>
5115
5116 * coding.c (decode_coding): Set a flag for inhibiting
5117 inconsistent eol.
5118 (code_convert_region): Always set saved_coding_symbol.
5119 (decode_coding_string): Likewise. Update coding->symbol when we
5120 encounter a inconsistent eol by the same way as code_convert_region.
5121
5122 2001-01-25 Gerd Moellmann <gerd@gnu.org>
5123
5124 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
5125 XClearArea.
5126
5127 * xterm.c (x_after_update_window_line): Don't clear if frame's
5128 internal border width is zero.
5129 (x_clear_area): New function.
5130 (x_after_update_window_line, x_clear_end_of_line)
5131 (x_scroll_bar_create, x_scroll_bar_set_handle)
5132 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
5133 instead of XClearArea.
5134
5135 * xterm.h (x_clear_area): Add prototype.
5136
5137 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
5138 which doesn't seem necessary anymore with Lesstif 0.92.
5139
5140 2001-01-25 Dave Love <fx@gnu.org>
5141
5142 * puresize.h (BASE_PURESIZE): Up to 720000.
5143
5144 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
5145
5146 2001-01-25 Gerd Moellmann <gerd@gnu.org>
5147
5148 * xdisp.c (echo_area_display): Don't call redisplay_internal
5149 when Emacs is shutting down. We can't run hooks etc. that
5150 would be necessary to do a redisplay.
5151
5152 * lread.c (read_integer): Use type EMACS_INT instead of int.
5153
5154 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
5155
5156 * ccl.c (ccl_driver): Fix last change.
5157
5158 2001-01-25 Kenichi Handa <handa@etl.go.jp>
5159
5160 * ccl.h (sturct ccl_program): New member suppress_error.
5161
5162 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
5163 insert error message to the output.
5164 (setup_ccl_program): Initialize ccl->suppress_error to 0.
5165
5166 * coding.h (struct coding_system): New member suppress_error.
5167
5168 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
5169 (Fset_terminal_coding_system_internal): Set the member
5170 suppress_error to 1.
5171 (Fset_safe_terminal_coding_system_internal): Likewise.
5172
5173 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
5174
5175 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
5176 as if it was a `charset'.
5177
5178 2001-01-24 Gerd Moellmann <gerd@gnu.org>
5179
5180 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
5181 value in where_is_cache; the next lookup in the cache returns
5182 something bogus if we do.
5183
5184 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
5185
5186 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
5187 if HAVE_WINDOW_SYSTEM isn't defined.
5188
5189 2001-01-24 Gerd Moellmann <gerd@gnu.org>
5190
5191 * fns.c (sweep_weak_table): Fix code taking items out of
5192 the hash collision chain. Some cleanup.
5193
5194 * xterm.c (x_new_font): Don't change a tooltip's size.
5195
5196 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
5197 background color by specifying a color for the default font
5198 in .Xdefaults.
5199
5200 2001-01-24 Kenichi Handa <handa@etl.go.jp>
5201
5202 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
5203 a workaround for SunOS 4's cc.
5204 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
5205 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
5206 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
5207 statement.
5208
5209 2001-01-23 Gerd Moellmann <gerd@gnu.org>
5210
5211 * xterm.c (x_set_window_size_1): New function extracted from
5212 x_set_window_size.
5213 (x_set_window_size): Use it.
5214 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
5215 doesn't have a widget, like tooltips.
5216
5217 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
5218
5219 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
5220
5221 2001-01-23 Kenichi Handa <handa@etl.go.jp>
5222
5223 * fns.c (Fset_char_table_default): Fix to make sub char-table
5224 correctly.
5225
5226 2001-01-22 Gerd Moellmann <gerd@gnu.org>
5227
5228 * xdisp.c (build_desired_tool_bar_string): Make sure we have
5229 a desired tool bar string, even if there are no tool bar items.
5230
5231 * xdisp.c (Ftool_bar_lines_needed): New function.
5232 (syms_of_xdisp): Defsubr it.
5233
5234 * editfns.c (Fformat): Don't extend text properties from arguments
5235 to padding chars in the result.
5236
5237 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
5238
5239 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
5240
5241 2001-01-20 Andrew Innes <andrewi@gnu.org>
5242
5243 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
5244 (w32_initialize): Don't set term hooks that aren't actually needed
5245 in windowed mode.
5246
5247 * xfaces.c (realize_default_face):
5248 (realize_face):
5249 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
5250
5251 * xdisp.c (handle_single_display_prop): Remove references to
5252 FRAME_W32_CONSOLE_P.
5253
5254 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
5255
5256 * frame.h (output_method): Remove output_w32_console method.
5257 (FRAME_W32_CONSOLE_P): Remove macro.
5258
5259 * frame.c (Qw32_console): Remove variable.
5260 (Fframep): Remove references to it.
5261 (syms_of_frame): Ditto.
5262 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
5263
5264 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
5265 redefinition.
5266
5267 2001-01-20 Kenichi Handa <handa@etl.go.jp>
5268
5269 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
5270
5271 2001-01-19 Andrew Innes <andrewi@gnu.org>
5272
5273 * w32.c (init_environment): Add a version-independent site-lisp
5274 directory to EMACSLOADPATH, after the version dependent one.
5275
5276 2001-01-19 Gerd Moellmann <gerd@gnu.org>
5277
5278 * editfns.c (Fbuffer_substring): Doc fix.
5279
5280 * xdisp.c (message_dolog, message2, message2_nolog):
5281 Rename parameter LEN to NBYTES.
5282
5283 2001-01-19 Kenichi Handa <handa@etl.go.jp>
5284
5285 * charset.c (strwidth): Use c_string_width.
5286 (c_string_width): New function.
5287 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
5288 Caller changed.
5289
5290 * charset.h (c_string_width, lisp_string_width): Extern them.
5291
5292 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
5293
5294 * indent.c (check_composition): Check validity of composition.
5295
5296 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
5297 characters by calling c_string_width.
5298 (x_consider_frame_title): Get byte length of frame tile string
5299 correctly.
5300 (display_mode_element): Pay attention to width of non-ASCII
5301 characters by calling strwidth.
5302
5303 2001-01-18 Gerd Moellmann <gerd@gnu.org>
5304
5305 * xfns.c (Qcancel_timer): New variable.
5306 (syms_of_xfns): Initialize and staticpro it.
5307 (Fx_hide_tip, Fx_show_tip): Use it.
5308 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
5309 the timer.
5310 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
5311
5312 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
5313
5314 * window.h (WINDOW_LIVE_P): New macro.
5315
5316 * window.c (window_size_fixed): New variable.
5317 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
5318 the doc string.
5319
5320 * eval.c (specbind): If binding a per-buffer variable which
5321 doesn't have a buffer-local value in the current buffer, change
5322 the global value by changing the value of the symbol bound in all
5323 buffers not having their own value, to make it consistent with
5324 what happens with other buffer-local variables.
5325
5326 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
5327
5328 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
5329 when searching for a newline.
5330
5331 2001-01-18 Kenichi Handa <handa@etl.go.jp>
5332
5333 * xdisp.c (display_string): Fix previous change.
5334
5335 2001-01-18 Jason Rumney <jasonr@gnu.org>
5336
5337 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
5338 GLYPH_DEBUG is defined.
5339 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
5340 true for images with `:ascent 100'.
5341 (x_set_mouse_face_gc): If the last used mouse face has gone in the
5342 meantime, use face MOUSE_FACE_ID.
5343 If first glyph isn't a character glyph, use the ASCII NUL
5344 character to determine the face.
5345 (expose_area): Do not treat left margin specially.
5346 (note_mode_line_highlight): If no local_map, check global keymap.
5347 (note_mouse_highlight): Initialize overlay.
5348 (clear_mouse_face): Don't return if tip_frame is non-nil.
5349 (show_scroll_bars): Remove unused function.
5350 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
5351 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
5352 Clip to row.
5353 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
5354 (x_free_frame_resources): Unload relief colors.
5355
5356 2001-01-17 Gerd Moellmann <gerd@gnu.org>
5357
5358 * xdisp.c (forward_to_next_line_start): Avoid calling
5359 get_next_display_element when the newline is already found.
5360 This may change the iterator's position, when its current position is
5361 equal to the iterator's stop_charpos.
5362
5363 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
5364 zero, use this method only at the end of a line.
5365
5366 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
5367 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
5368 if SCALABLE_FONTS_P is set.
5369
5370 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
5371 so that scalable fonts are included.
5372
5373 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
5374 In the cache, use a key containing the information if scalable
5375 fonts are included.
5376 (x_load_font): Adapt to change of keys in the font cache.
5377
5378 2001-01-17 Kim F. Storm <storm@filanet.dk>
5379
5380 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
5381 XListFonts to take advantage of font caching.
5382
5383 * xterm.c (x_list_fonts): Ensure caching font information when
5384 called for a null frame, which is the case frequently when Emacs
5385 starts.
5386
5387 2001-01-17 Gerd Moellmann <gerd@gnu.org>
5388
5389 * xfns.c (QCconversion): Replaces QCalgorithm.
5390
5391 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
5392
5393 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
5394 of :algorithm.
5395
5396 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
5397 not everything could be displayed.
5398
5399 * line.h, x-list-font.c: Files removed because unused.
5400
5401 2001-01-17 Andrew Innes <andrewi@gnu.org>
5402
5403 * dired.c (directory_files_internal): Convert result from readdir
5404 to a unibyte string initially, to avoid possible misinterpretation
5405 of some bytes as the internal form of Emacs characters.
5406
5407 2001-01-17 Kenichi Handa <handa@etl.go.jp>
5408
5409 * fns.c (concat): Be sure to avoid putting the same `composition'
5410 property on the adjacent regions.
5411
5412 2001-01-16 Gerd Moellmann <gerd@gnu.org>
5413
5414 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
5415 (Fscroll_right, Fscroll_left): Set it here instead, if called
5416 interactively.
5417
5418 * buffer.c (Fset_buffer_modified_p): Set buffer's
5419 prevent_redisplay_optimizations_p flag.
5420
5421 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
5422 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
5423 with additional arg.
5424
5425 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
5426 Change prototype.
5427
5428 * xdisp.c (redisplay_preserve_echo_area): Add parameter
5429 FROM_WHERE, for debugging.
5430
5431 2001-01-16 Kenichi Handa <handa@etl.go.jp>
5432
5433 * ccl.c (Fregister_ccl_program): Handle the return value of
5434 resolve_symbol_ccl_program correctly.
5435 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
5436
5437 2001-01-15 Gerd Moellmann <gerd@gnu.org>
5438
5439 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
5440 has gone in the meantime, use face MOUSE_FACE_ID.
5441
5442 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
5443 If x_display_info_for_display returns null, don't try to close
5444 the display; we didn't open it.
5445
5446 * dispnew.c (save_or_restore_current_matrices): Function removed.
5447 (save_current_matrix, restore_current_matrix): New functions.
5448 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
5449 restore the frame's current matrix. Due to the glyph pointer
5450 setup done in adjust_glyph_matrix, there is no easy way to make
5451 saving the current matrix in the desired matrix generally correct,
5452 so don't try it.
5453
5454 2001-01-15 Kenichi Handa <handa@etl.go.jp>
5455
5456 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
5457 truncation glyphs.
5458 (display_line): Optimize for wide characters.
5459 (display_string): Don't try to display a multi-column character
5460 partially. On ttys, produce more than one truncation glyph for
5461 multi-column characters that don't fit on the line.
5462
5463 2001-01-13 Kenichi Handa <handa@etl.go.jp>
5464
5465 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
5466 Define it instead of WORDS_BIGENDIAN. Caller changed.
5467
5468 2001-01-13 Jason Rumney <jasonr@gnu.org>
5469
5470 * w32fns.c (Fimage_size, image_ascent, lookup_image)
5471 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
5472 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
5473 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
5474
5475 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
5476 (x_draw_image_relief, x_draw_image_foreground_1)
5477 (x_draw_image_glyph_string): Adapt to change of image margins.
5478
5479 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
5480 variables.
5481
5482 * w32bdf.c (search_file_line, get_cached_font_char)
5483 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
5484
5485 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
5486
5487 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
5488 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
5489 (Fw32_send_sys_command): Remove unused variables.
5490 (w32_msg_pump): Add parentheses.
5491
5492 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
5493 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
5494 Add parentheses.
5495
5496 2001-01-12 Gerd Moellmann <gerd@gnu.org>
5497
5498 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
5499 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
5500 being a pair of margins.
5501 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
5502 to DEFVAR_LISP. Extend doc.
5503
5504 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
5505 margins.
5506 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
5507 pair of integers `(X . Y)', use X for the horizontal and Y for the
5508 vertical margin.
5509 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
5510 (parse_image_spec): Check it.
5511 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
5512 (tiff_format, gif_format, gs_format):
5513 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
5514
5515 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
5516 (x_draw_image_relief, x_draw_image_foreground_1)
5517 (x_draw_image_glyph_string): Adapt to the change of image margins.
5518
5519 * dispextern.h (struct image): Replace member `margin' with
5520 `hmargin' and `vmargin'.
5521
5522 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
5523 and GLYPHS.
5524
5525 * dispnew.c (update_text_area): Put code which decrements the
5526 stop position when the row's face extends to the end of the
5527 line in #if 0.
5528
5529 * xfns.c (x_set_mouse_color): Fix color allocation.
5530
5531 * keyboard.c: Call get_local_map with new argument list.
5532
5533 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
5534
5535 * intervals.h (enum map_property): Removed.
5536 (get_local_map): Change prototype.
5537
5538 * keymap.c: Call get_local_map with new argument list.
5539 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
5540
5541 2001-01-11 Gerd Moellmann <gerd@gnu.org>
5542
5543 * xdisp.c (build_desired_tool_bar_string): Correct the computation
5544 of the size needed for the tool bar string. For the last image,
5545 use a `display' property that reaches to the end of the string.
5546
5547 * xselect.c (selection_request_dpyinfo): New variable.
5548 (x_handle_selection_request): Set it.
5549 (x_selection_request_lisp_error): Don't call
5550 x_decline_selection_request if selection request's display has
5551 been closed.
5552
5553 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
5554 Do the unregister_colors before calling XFreeColors.
5555
5556 2001-01-10 Dave Love <fx@gnu.org>
5557
5558 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
5559 ${SOME_MACHINE_LISP}, not ${lisp}.
5560
5561 2001-01-10 Gerd Moellmann <gerd@gnu.org>
5562
5563 * xdisp.c (display_line): On ttys, produce more than one truncation
5564 glyph for multi-column characters that don't fit on the line.
5565
5566 * xselect.c (x_reply_selection_request): Add a comment.
5567
5568 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
5569 XkbGetNames instead of XkbGetKeyboard.
5570
5571 2001-01-10 Dave Love <fx@gnu.org>
5572
5573 * sysdep.c (random): Revert the declaration.
5574
5575 2001-01-09 Gerd Moellmann <gerd@gnu.org>
5576
5577 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
5578 Call function string_bytes.
5579 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
5580
5581 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
5582 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
5583 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
5584 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
5585 the current sblock.
5586 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
5587 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
5588 after sweeping strings, and at the end.
5589 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
5590
5591 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
5592 ensure that pop_message is called.
5593
5594 * keyboard.c (Fexecute_extended_command): Use a
5595 record_unwind_protect to ensure that pop_message is called.
5596
5597 * lisp.h (push_message_unwind): Add prototype.
5598
5599 * xdisp.c (push_message_unwind): New function.
5600
5601 * fileio.c (do_auto_save_unwind): Do the pop_message here
5602 instead of in Fdo_auto_save.
5603 (Fdo_auto_save): Don't call pop_message.
5604
5605 2001-01-08 Ken Raeburn <raeburn@gnu.org>
5606
5607 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
5608 in inner block.
5609
5610 2001-01-08 Gerd Moellmann <gerd@gnu.org>
5611
5612 * window.c (window_scroll_pixel_based): Adjust glyph matrices
5613 when increasing window's vscroll.
5614
5615 * macros.c (Qkbd_macro_termination_hook): New variable.
5616 (syms_of_macros): Initialize and staticpro it.
5617 (pop_kbd_macro): Run kbd-macro-termination-hook.
5618
5619 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
5620
5621 2001-01-07 Dave Love <fx@gnu.org>
5622
5623 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
5624 arglist, for documentation's sake.
5625
5626 2001-01-06 Andrew Innes <andrewi@gnu.org>
5627
5628 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
5629 of *.pdb.
5630
5631 2001-01-05 Andrew Innes <andrewi@gnu.org>
5632
5633 * term.c (update_end): Don't check updating_frame; for some reason
5634 this can be 0 sometimes, such as after dismissing a popup menu,
5635 and isn't necessary given the explicit frame argument.
5636
5637 2001-01-05 Gerd Moellmann <gerd@gnu.org>
5638
5639 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
5640 on some systems, and an unsigned long on others, like FreeBSD 4.1.
5641
5642 2001-01-04 Gerd Moellmann <gerd@gnu.org>
5643
5644 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
5645
5646 * xfns.c (x_create_tip_frame): Preserve the value of
5647 face_change_count around the creation of the tip frame.
5648
5649 * xfns.c (last_show_tip_args): New variable.
5650 (compute_tip_xy): New function.
5651 (Fx_show_tip): Reuse an existing tip frame, if possible.
5652 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
5653
5654 2001-01-04 Dave Love <fx@gnu.org>
5655
5656 * editfns.c (Fformat): Doc fix.
5657
5658 * systime.h (set_file_times): Prototype.
5659
5660 * widget.h (EmacsFrameSetCharSize_): Prototype.
5661
5662 * sysdep.c (random, srandom): Declare explicitly.
5663
5664 * dispextern.h (move_it_vertically_backward): Declare.
5665
5666 2001-01-04 Gerd Moellmann <gerd@gnu.org>
5667
5668 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
5669 like in Fx_create_frame.
5670
5671 * xfaces.c (set_font_frame_param): Don't do anything for
5672 non-graphical frames.
5673
5674 * window.c (Fdelete_other_windows): Set window's window_end_valid
5675 to nil when changing the window's start. Don't change the
5676 window's start when its top position hasn't changed. If we do,
5677 this will set the window's optional_new_start, which act's like a
5678 force_start during redisplay with C-x 1 M-> under particular
5679 circumstances (see report from Per Starback to emacs-pretest-bug
5680 from 2000-12-13.).
5681
5682 2001-01-03 Gerd Moellmann <gerd@gnu.org>
5683
5684 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
5685 short cut at the start of the function. Add an assertion.
5686 (reseat_at_next_visible_line_start): Add an assertion.
5687
5688 * window.c (Frecenter): When changing the window start, set the
5689 window's window_end_valid to nil.
5690 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
5691
5692 * dispextern.h (move_it_past_eol): Add prototype.
5693
5694 * xdisp.c (move_it_past_eol): New function.
5695
5696 * window.c (Fwindow_end): Doc fix.
5697
5698 2001-01-03 Dave Love <fx@gnu.org>
5699
5700 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
5701
5702 2001-01-03 Gerd Moellmann <gerd@gnu.org>
5703
5704 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
5705 the enabled_p flag of the glyph row at window_end_vpos to 0.
5706 (handle_single_display_prop): Fix last change.
5707
5708 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
5709
5710 * window.c (Frecenter): Doc fix.
5711
5712 2001-01-02 Andrew Innes <andrewi@gnu.org>
5713
5714 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
5715
5716 * frame.h (output_method): Add output_w32_console method.
5717 (FRAME_W32_CONSOLE_P): New macro.
5718
5719 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
5720 use output_w32_console method.
5721 (Qw32_console): New Lisp_Object.
5722 (Fframep): Return it.
5723 (syms_of_frame): Init it.
5724 (Fframe_parameters): Report w32console as font for w32_console frames.
5725
5726 * xfaces.c (realize_default_face): Set face foreground and
5727 background to unspecified for w32_console frames.
5728 (realize_face): Realize face cache for w32_console frames.
5729 (realize_tty_face): Accept w32_console frames.
5730
5731 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
5732 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
5733 necessary, even if running interactively.
5734
5735 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
5736 w32_console frames.
5737
5738 * w32term.c (x_update_begin):
5739 (x_update_end):
5740 (x_clear_frame):
5741 (x_ins_del_lines):
5742 (x_change_line_highlight):
5743 (x_delete_glyphs):
5744 (w32_ring_bell):
5745 (x_update_begin):
5746 (x_update_end):
5747 (w32_reassert_line_highlight):
5748 (w32_frame_rehighlight):
5749 (w32_frame_raise_lower): Do nothing if not w32 frame.
5750
5751 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
5752
5753 * w32fns.c (Fx_display_color_cells): Determine correct value, when
5754 system doesn't tell us directly.
5755 (Fx_display_visual_class): Implement properly.
5756
5757 2001-01-02 Gerd Moellmann <gerd@gnu.org>
5758
5759 * window.c (Frecenter): Handle centering in graphical frames
5760 specially. Centering on the basis of line counts doesn't work
5761 reliably with variable-height lines.
5762
5763 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5764
5765 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
5766 and al[].
5767
5768 * composite.c (run_composition_function): Remove unused var `val'.
5769 (update_compositions): Remove unused variable `hook'.
5770
5771 * intervals.c (get_local_map): Remove unused variable `tem'.
5772
5773 * doprnt.c (doprnt1): Remove unused variable `size'.
5774
5775 * fns.c (Flength): Remove unused variable `tail'.
5776 (Fdelete): Remove unused variable `size'.
5777
5778 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
5779 and `gcpro2'.
5780
5781 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
5782
5783 * data.c (find_symbol_value): Remove extra 3rd argument in the
5784 call to swap_in_symval_forwarding.
5785
5786 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
5787
5788 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
5789 (trivial_regexp_p): Remove unused variable `c'.
5790 (boyer_moore): Remove unused variable `k'.
5791
5792 * indent.c (current_column): Remove unused variable `stopchar'.
5793 (Fcompute_motion): Remove unused variable `contin'.
5794
5795 * casefiddle.c (casify_object): Remove unused variable `tolen'.
5796
5797 * dired.c (directory_files_internal): Fix a typo in a comment.
5798 Remove an unused variable `handler'.
5799 (file_name_completion): Remove unused function-scope variable `dp'.
5800 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
5801 on BSD4_2.
5802
5803 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
5804
5805 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
5806 and `buf'.
5807 (Fmarker_insertion_type): Remove unused variable `buf'.
5808
5809 * insdel.c (make_gap): Remove unused variable `result'.
5810
5811 * keyboard.c (record_char): Remove unused function-scope var `help'.
5812 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
5813 (menu_bar_items): Remove unused function-scope variable `tem'.
5814
5815 * fontset.c (fontset_ref): Remove unused variable `i'.
5816 (fontset_set): Remove unused variables `j' and `tmp'.
5817 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
5818 (make_fontset_for_ascii_face): Remove unused variable `name'.
5819 (fs_load_font): Remove unused variable `font_idx'.
5820 (fs_query_fontset): Remove unused function-local variable `fontset'.
5821 (list_fontsets): Remove unused variable `tail'.
5822 (Fnew_fontset): Remove unused variables `family' and `registry'.
5823 (accumulate_font_info): Remove unused variable `tmp'.
5824 (Ffontset_font): Remove unused variable `id'.
5825 (syms_of_fontset): Remove unused variable `i'.
5826
5827 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
5828 to x_term_init.
5829 (lookup_image): Remove unused variable `file'.
5830 (xbm_load): Remove unused variables `bitmap_data', `height', and
5831 `width'. Remove function-local variable `i', leave the
5832 block-local one.
5833 (gif_load): Remove unused variable `inc'.
5834
5835 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
5836 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
5837 leave only the one in the inner block.
5838
5839 * xfaces.c (face_fontset, realize_default_face): Remove unused
5840 variable `fontset'.
5841 (face_at_buffer_position): Remove unused variable `multibyte_p'.
5842
5843 * term.c (encode_terminal_code): Remove unused variable `c'.
5844
5845 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
5846 char *' instead of `char *'.
5847
5848 * category.c (Fcategory_docstring): Remove unused variable `doc'.
5849 (Fget_unused_category): Remove unused variable `docstring_vector'.
5850 (Fchar_category_set): Remove unused variables `val', `charset',
5851 `c1' and `c2'.
5852
5853 * coding.c (detect_coding_iso2022, setup_coding_system):
5854 Remove unused variable `i'.
5855 (detect_coding_mask): Remove unused variable `idx'.
5856 (detect_coding): Remove unused variable `i'.
5857 (ccl_coding_driver): Remove unused variable `result'.
5858 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
5859 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
5860 (encode_coding_string): Remove unused variables `gcpro1' and
5861 `saved_coding_symbol'.
5862 (Ffind_coding_systems_region_internal): Remove function-local
5863 variable args[], leave only the block-local one.
5864 (code_convert_region1): Remove unused variable `len'.
5865
5866 * charset.c (char_printable_p): Remove unused variable `chars'.
5867 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
5868 (str_to_multibyte): Remove unused variable `c'.
5869
5870 * window.c (size_window): Remove block-local variable `min_size'.
5871
5872 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
5873 `header_line_height'.
5874 (append_space, extend_face_to_end_of_line): Declare `saved_what'
5875 enum display_element_type.
5876
5877 2001-01-02 Gerd Moellmann <gerd@gnu.org>
5878
5879 * xterm.c (x_connection_closed): Catch X errors around all
5880 statements that call X. Save away the error message in a local copy.
5881
5882 * xterm.c (x_connection_closed): Set handling_signal to 0 at
5883 the start.
5884
5885 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
5886 in or at the start of invisible text.
5887
5888 * dispnew.c (update_window): Don't check_current_matrix_flags.
5889
5890 2001-01-01 Jason Rumney <jasonr@gnu.org>
5891
5892 * w32fns.c (x_figure_window_size): Do not allow new_height and
5893 new_width of frame to override specified values.
5894
5895 2000-12-30 Kenichi Handa <handa@etl.go.jp>
5896
5897 * composite.c (find_composition): Fix a code for searching backward.
5898
5899 2000-12-29 Gerd Moellmann <gerd@gnu.org>
5900
5901 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
5902 (update_window) [GLYPH_DEBUG]: Call it.
5903 (scrolling_window): Prevent including current rows which are below
5904 what's displayed in the window.
5905
5906 * xdisp.c (try_window_reusing_current_matrix)
5907 <new start <= old start>: Disable rows in the current matrix
5908 which are below the window after scrolling.
5909
5910 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
5911 is zero. It's not worth the complexity.
5912 (invisible_text_between_p): Put in #if 0 because unused.
5913
5914 2000-12-28 Gerd Moellmann <gerd@gnu.org>
5915
5916 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
5917 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
5918
5919 * keyboard.c (echo_char): If C is an integer, always call
5920 push_key_description. Former code could signal an invalid
5921 character error.
5922
5923 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
5924 If set, print multibyte text.
5925 (Fsingle_key_description): Call push_key_description with
5926 FORCE_MULTIBYTE set.
5927 (describe_buffer_bindings): Likewise.
5928
5929 * lisp.h (push_key_description): Add prototype.
5930
5931 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
5932 around the call to redisplay_internal.
5933
5934 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
5935
5936 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
5937
5938 2000-12-28 Kenichi Handa <handa@etl.go.jp>
5939
5940 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
5941 (ccl_driver): New local variable `extra_bytes'.
5942
5943 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
5944
5945 * coding.c (setup_coding_system):
5946 Initialize coding->spec.ccl.eight_bit_carryover.
5947 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
5948
5949 2000-12-28 Kenichi Handa <handa@etl.go.jp>
5950
5951 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
5952 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
5953 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
5954 (decode_composition_emacs_mule): New function.
5955 (decode_coding_emacs_mule): Decode composition sequence by calling
5956 decode_composition_emacs_mule.
5957 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
5958 (encode_coding_emacs_mule): Changed from macro to function.
5959 If a text contains compositions, encode them correctly.
5960 (setup_coding_system): Set coding->commong_flags for emacs-mule so
5961 that decoding and encoding are required.
5962
5963 2000-12-27 Gerd Moellmann <gerd@gnu.org>
5964
5965 * xfaces.c (PT_PER_INCH): New macro.
5966 (xlfd_point_size): Compute real point size from font's pixel size.
5967 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
5968 instead of 72.
5969
5970 * .gdbinit: Comment out the line pointing to the Lesstif source
5971 directory.
5972
5973 * window.c (Frecenter): Use displayed_window_lines instead
5974 of window_internal_height.
5975
5976 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
5977 instead of x-toolkit-scroll-bars-p.
5978 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
5979
5980 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
5981 instead of x-toolkit-scroll-bars-p.
5982 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
5983
5984 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
5985 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
5986 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
5987 New variables.
5988 (add_window_display_history, add_frame_display_history)
5989 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
5990 (build_frame_matrix_from_leaf_window): Remove unused code.
5991 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
5992 redisplay history.
5993 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
5994 (update_window) [GLYPH_DEBUG]: Likewise.
5995 (syms_of_display): Defsubr dump-redisplay-history.
5996
5997 2000-12-23 Gerd Moellmann <gerd@gnu.org>
5998
5999 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
6000 the end of the prompt. Set echo_after_prompt to the offset
6001 of echoptr in echobuf.
6002
6003 * xdisp.c (init_from_display_pos): Pop until the iterator's
6004 stack is empty; there may be frames for stretch or images
6005 on the stack.
6006
6007 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
6008 (save_or_restore_current_matrix): New function for the same
6009 purpose, but more efficient.
6010 (adjust_frame_glyphs_for_frame_redisplay): Use it.
6011
6012 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
6013
6014 * xdisp.c (syms_of_xdisp): Fix last change.
6015
6016 2000-12-23 Gerd Moellmann <gerd@gnu.org>
6017
6018 * xdisp.c (syms_of_xdisp): Doc fix.
6019
6020 * xdisp.c (redisplay_window): Remove label restore_buffers;
6021 use finish_scroll_bars instead to make sure that scroll bars
6022 are redeemed. If we don't do this, flickering can result from
6023 scroll bars being destroyed and recreated.
6024
6025 2000-12-22 Jason Rumney <jasonr@gnu.org>
6026
6027 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
6028 in the wrong colors when the foreground is not black.
6029 (expose_window): Don't redraw the window that's currently being
6030 updated.
6031
6032 2000-12-22 Gerd Moellmann <gerd@gnu.org>
6033
6034 * window.c (size_window): When setting the window's too_small_ok
6035 flag, compare old size with minimum size depending on WIDTH_P,
6036 don't compare with window_min_width.
6037
6038 * window.c (delete_window): Simplify somewhat.
6039 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
6040 freeing window matrices. The flag windows_or_buffers_changed is
6041 set, so the next redisplay will consider all windows; this should
6042 suffice.
6043
6044 2000-12-22 Kenichi Handa <handa@etl.go.jp>
6045
6046 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
6047
6048 * ccl.h (struct ccl_program): New member cr_consumed.
6049
6050 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
6051 (CCL_READ_CHAR): Handle EOL conversion here.
6052 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
6053
6054 2000-12-21 Gerd Moellmann <gerd@gnu.org>
6055
6056 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
6057
6058 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
6059 otherwise tabs of different size compare equal.
6060
6061 * callint.c (Fcall_interactively): Prevent a compiler warning.
6062
6063 * print.c (print_unwind): Return nil.
6064 (PRINTDECLARE): Initialize all local variables.
6065 (print_preprocess): Add a default case.
6066
6067 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
6068
6069 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
6070
6071 * window.c (delete_window, Fsplit_window)
6072 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
6073
6074 * dispextern.h (ensure_frame_matrix): Function declaration removed.
6075
6076 * dispnew.c (ensure_frame_matrix): Removed.
6077 (save_frame_matrix, restore_frame_matrix): New functions.
6078 (adjust_frame_glyphs_for_frame_redisplay): Use them.
6079
6080 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
6081 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
6082
6083 2000-12-21 Andrew Innes <andrewi@gnu.org>
6084
6085 * w32term.c (x_update_begin): Regenerate the palette here, rather
6086 than for each window.
6087
6088 * w32xfns.c (select_palette): Avoid calling SelectPalette if
6089 palette is NULL, since this corrupts memory! Also get
6090 display_info reference from frame.
6091
6092 2000-12-21 Jason Rumney <jasonr@gnu.org>
6093
6094 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
6095
6096 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
6097 to avoid returning without releasing it.
6098
6099 2000-12-21 Kenichi Handa <handa@etl.go.jp>
6100
6101 * keymap.c (push_key_description): Don't convert eight-bit-control
6102 and eight-bit-graphic to multibyte character.
6103
6104 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
6105 generic character and CODE1 is nil, return the smallest character
6106 in CHARSET.
6107
6108 2000-12-20 Dave Love <fx@gnu.org>
6109
6110 * s/osf5-0.h (NSIG): Don't redefine.
6111
6112 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
6113
6114 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
6115 excluding menu-bar and tool-bar.
6116 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
6117 (menu_item_p): Remove.
6118 (where_is_internal_1): Don't ignore menu-items.
6119
6120 2000-12-20 Gerd Moellmann <gerd@gnu.org>
6121
6122 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
6123 into account.
6124
6125 * window.c (make_window): Initialize window's min_hscroll.
6126 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
6127 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
6128 to zero.
6129 (struct saved_window): New member min_hscroll.
6130 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
6131 (Fset_window_configuration): Set window's min_hscroll.
6132 (save_window_save): Save window's min_hscroll.
6133 (compare_window_configurations): Compare min_hscroll values.
6134
6135 * window.h (struct window): New member min_hscroll.
6136
6137 * keyboard.c (echo_prompt): Prevent a compiler warning.
6138
6139 * xdisp.c (try_cursor_movement): Fix last change. The real
6140 condition is that PT is at the end of the row, and should
6141 be displayed at the start of the next row.
6142
6143 * xdisp.c (try_cursor_movement): If we end on a partially
6144 visible line, end we already decided to scroll, return -1.
6145
6146 * dispextern.h (ensure_frame_matrix): Add prototype.
6147
6148 * window.c (delete_window, Fsplit_window)
6149 (Fset_window_configuration): Call ensure_frame_matrix.
6150
6151 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
6152 New functions.
6153 (adjust_frame_glyphs_for_frame_redisplay): If display has been
6154 completed, call fake_current_matrices instead of marking frame
6155 garbaged.
6156
6157 2000-12-20 Jason Rumney <jasonr@gnu.org>
6158
6159 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
6160
6161 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
6162
6163 * fns.c (Frequire): Doc fix.
6164
6165 2000-12-19 Gerd Moellmann <gerd@gnu.org>
6166
6167 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
6168
6169 * dispnew.c (direct_output_for_insert): Fix check for mini-window
6170 currently displaying a message.
6171
6172 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
6173 xterm.h.
6174 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
6175
6176 2000-12-18 Andrew Innes <andrewi@gnu.org>
6177
6178 * w32.c (w32_strerror): New function.
6179
6180 * w32.h (w32_strerror): New extern.
6181
6182 * w32fns.c (Fw32_shell_execute): Use it.
6183
6184 2000-12-18 Gerd Moellmann <gerd@gnu.org>
6185
6186 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
6187
6188 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
6189
6190 * msdos.c (IT_set_face): Obey inverse_video.
6191
6192 2000-12-18 Kenichi Handa <handa@etl.go.jp>
6193
6194 * dired.c (directory_files_internal): Always return decoded filenames.
6195
6196 2000-12-18 Gerd Moellmann <gerd@gnu.org>
6197
6198 * xterm.c (x_connection_closed): Prevent being called recursively
6199 because of an error condition in XtCloseDisplay.
6200
6201 * xdisp.c (init_iterator): If noninteractive, and the frame's
6202 face cache is null, make one.
6203
6204 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
6205
6206 * process.c (wait_reading_process_input): Check for pending
6207 input when running timers.
6208
6209 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
6210
6211 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
6212
6213 2000-12-18 Kenichi Handa <handa@etl.go.jp>
6214
6215 * process.c (read_process_output): Don't run a filter if the code
6216 decoder produces nothing but carryover.
6217
6218 2000-12-17 Andrew Innes <andrewi@gnu.org>
6219
6220 * w32.c (sys_rename): Only check errno against EEXIST, and not
6221 EACCES, when determining whether rename failed because the target
6222 exists. This was resulting in indefinite looping on Windows 9x if
6223 the source file was locked by another process.
6224
6225 * w32fns.c (Ffile_system_info): New function.
6226 (syms_of_w32fns): Defsubr it.
6227
6228 2000-12-17 Gerd Moellmann <gerd@gnu.org>
6229
6230 * window.c (coordinates_in_window): Fix computation for
6231 position on vertical line between mode lines.
6232
6233 * xfns.c (unwind_create_frame): Return t if frame was deleted.
6234 Don't alter tip_frame or tip_window.
6235 (unwind_create_tip_frame): Set tip_frame to nil only if frame
6236 was deleted.
6237
6238 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
6239 Don't alter tip_frame or tip_window.
6240 (unwind_create_tip_frame): Set tip_frame to nil only if frame
6241 was deleted.
6242
6243 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
6244
6245 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
6246 be consistent with the doc string. Reported by NAKAJIMA Mikio
6247 <minakaji@osaka.email.ne.jp>.
6248
6249 2000-12-16 Kenichi Handa <handa@etl.go.jp>
6250
6251 * xfaces.c (Vface_ignored_fonts): New variable.
6252 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
6253 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
6254
6255 2000-12-15 Gerd Moellmann <gerd@gnu.org>
6256
6257 * dispnew.c (update_window): Detect pending input every nth line
6258 updated, i.e. do it depending on real work done, and not on the
6259 vpos of the line.
6260
6261 * xterm.c (expose_window): Don't redraw the window that's
6262 currently being updated.
6263
6264 * window.c (Fset_window_point): Remove test for
6265 cursor_in_non_selected_windows.
6266
6267 * lread.c (read1): Recognize end of file after `\\'.
6268
6269 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
6270 not unwind_create_frame.
6271
6272 2000-12-15 Dave Love <fx@gnu.org>
6273
6274 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
6275 bcopy & al.
6276
6277 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
6278
6279 2000-12-15 Kenichi Handa <handa@etl.go.jp>
6280
6281 * coding.c (setup_coding_system): Clear all members of the struct
6282 coding_system at first.
6283 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
6284 argument.
6285 (code_convert_region): Don't override coding->src_multibyte and
6286 coding->dst_multibyte.
6287
6288 * fns.c (Fmd5): Docstring improved.
6289
6290 2000-12-15 Miles Bader <miles@gnu.org>
6291
6292 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
6293 are actually marked as mode-lines; otherwise use
6294 estimate_mode_line_height.
6295
6296 2000-12-14 Gerd Moellmann <gerd@gnu.org>
6297
6298 * editfns.c (Fformat): Prevent a buffer overrun when the format
6299 specifies a precision.
6300
6301 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
6302
6303 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
6304 argument is outside the range [2..3].
6305
6306 2000-12-14 Andrew Innes <andrewi@gnu.org>
6307
6308 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
6309 nothing to do. Bind inhibit-quit.
6310 (tip_frame): Make it a Lisp_Object.
6311 (x_create_tip_frame): Set tip_frame after it has been added to
6312 Vframe_list.
6313 (Fx_show_tip): Don't set tip_frame here.
6314 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
6315 (unwind_create_frame, unwind_create_tip_frame): New functions.
6316 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
6317 while a frame is only partially constructed.
6318
6319 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
6320 (x_free_frame_resources): New function.
6321 (x_destroy_window): Use it.
6322
6323 2000-12-14 Gerd Moellmann <gerd@gnu.org>
6324
6325 * xfns.c (Fx_backspace_delete_keys_p): New function.
6326 (syms_of_xfns): Defsubr it.
6327
6328 * config.in (HAVE_XKBGETKEYBOARD): Add.
6329
6330 2000-12-14 Kenichi Handa <handa@etl.go.jp>
6331
6332 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
6333 Always store string in multibyte representation in echobuf.
6334 (echo_char): Always store string in multibyte representation in
6335 echobuf.
6336 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
6337 (read_key_sequence): Adjusted for the change of echo_prompt.
6338
6339 * fns.c (Fmd5): Docstring improved.
6340
6341 * lisp.h (detect_coding_system): Prototype adjusted.
6342
6343 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
6344 (detect_coding_emacs_mule, detect_coding_iso2022,)
6345 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
6346 (detect_coding_utf_16, detect_coding_ccl): Make them static.
6347 New argument MULTIBYTEP. Callers changed.
6348 (detect_coding_mask, detect_coding_system): New argument
6349 MULTIBYTEP. Callers changed.
6350 (decode_coding_string): Set coding->src_multibyte and
6351 coding->dst_multibyte before calling detect_coding and detect_eol.
6352 Update them after some coding system is detected.
6353
6354 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
6355
6356 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
6357
6358 * keyboard.c (menu_bar_items, tool_bar_items):
6359 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
6360
6361 2000-12-13 Gerd Moellmann <gerd@gnu.org>
6362
6363 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
6364 New variables.
6365 (unwind_create_frame, unwind_create_tip_frame): New functions.
6366 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
6367 while a frame is only partially constructed.
6368
6369 * xterm.h (x_free_frame_resources): Declare.
6370
6371 * xterm.c (x_free_frame_resources): New function.
6372 (x_destroy_window): Use it.
6373
6374 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
6375 don't interrupt the update for pending input initially, i.e.
6376 update at least some lines.
6377
6378 * keyboard.c (do_mouse_tracking): Make externally visible.
6379
6380 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
6381
6382 * xfns.c (gray_bitmap_bits): Declare `char *'.
6383
6384 2000-12-12 Gerd Moellmann <gerd@gnu.org>
6385
6386 * xdisp.c (display_tool_bar_line): Make sure that tool bar
6387 lines start with a relief line.
6388
6389 2000-12-12 Dave Love <fx@gnu.org>
6390
6391 * window.c (Fdisplay_buffer): Doc fix.
6392 (Fwindow_list): Remove unused var.
6393
6394 * buffer.h (mmap_set_vars): Declare.
6395
6396 * window.h (Fset_window_point): Declare.
6397
6398 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
6399
6400 * msdos.c (fast_find_position): Don't overstep the last window row.
6401 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
6402 variable `area'. When looking for a row under (X,Y), give up if some
6403 of the previous rows is not enabled.
6404
6405 2000-12-12 Gerd Moellmann <gerd@gnu.org>
6406
6407 * window.c (Fset_window_point): If displaying cursors in windows
6408 other than the selected window, make sure redisplay updates
6409 other windows to show the new value of point in the window.
6410
6411 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
6412
6413 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
6414 the buffer is the sole visible buffer when in the mini-buffer.
6415
6416 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
6417 Bind `inhibit-read-only' to t.
6418 (unwind_with_echo_area_buffer): Use AREF.
6419
6420 * xfns.c (Fx_hide_tip): Simplified.
6421
6422 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
6423 instead of `1'.
6424
6425 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
6426
6427 2000-12-11 Gerd Moellmann <gerd@gnu.org>
6428
6429 * xfns.c (Fx_hide_tip): Fix last change.
6430
6431 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
6432 nothing to do. Bind inhibit-quit.
6433 (tip_frame): Make it a Lisp_Object.
6434 (x_create_tip_frame): Set tip_frame after it has been added to
6435 Vframe_list.
6436 (Fx_show_tip): Don't set tip_frame here.
6437
6438 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
6439
6440 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
6441 Lisp_Object.
6442
6443 * dispextern.h: Change external declaration of tip_frame.
6444
6445 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
6446 return an empty string.
6447
6448 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
6449 of the window's update_mode_line flag, since the former is set by
6450 force-mode-line-update, not the latter. This makes
6451 column-number-mode slightly faster.
6452
6453 * xdisp.c (try_window_id) <all changes above window start>:
6454 Set the cursor.
6455
6456 2000-12-11 Paul Eggert <eggert@twinsun.com>
6457
6458 * config.in (HAVE_FTELLO): Remove.
6459 (HAVE_FSEEKO): Add.
6460 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
6461 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
6462 HAVE_FTELLO.
6463 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
6464 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
6465
6466 2000-12-11 Miles Bader <miles@gnu.org>
6467
6468 * window.c (displayed_window_lines): Don't round up when
6469 converting empty space at bottom to lines.
6470 Handle non-newline-terminated final lines properly.
6471 (Fwindow_text_height): New function (used to be in lisp).
6472 (syms_of_window): Initialize it.
6473
6474 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
6475
6476 * syntax.c (scan_lists): Check that the right quote char has the
6477 right Sstring syntax when jumping over strings.
6478 (init_syntax_once): Use Smax rather than 13.
6479
6480 2000-12-09 Miles Bader <miles@gnu.org>
6481
6482 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
6483 with PARTIALLY, inverting the sense.
6484 (window_scroll_pixel_based): Scroll partially visible lines into
6485 place if we hit the beginning or end of the buffer.
6486 (displayed_window_lines): Don't include partially visible lines.
6487 (Fmove_to_window_line): Skip past any partially visible first line.
6488
6489 2000-12-08 Gerd Moellmann <gerd@gnu.org>
6490
6491 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
6492
6493 * tparam.c (tparam1): Change the way buffers are reallocated to be
6494 portable and less obfuscated.
6495
6496 * termcap.c (tgetent): Change the way buffers are reallocated to
6497 be portable and less obfuscated.
6498
6499 * macros.c (store_kbd_macro_char): Change the way buffers are
6500 reallocated to be portable and less obfuscated.
6501
6502 * lread.c (read1): Change the way buffers are reallocated to be
6503 portable and less obfuscated.
6504
6505 * doc.c (Fsubstitute_command_keys): Change the way buffers
6506 are reallocated so that it is portable.
6507
6508 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
6509
6510 * dosfns.c (Ffile_system_info): New function.
6511 (syms_of_dosfns): Defsubr it.
6512
6513 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
6514
6515 * alloc.c (gc_sweep): Add comment.
6516
6517 2000-12-07 Gerd Moellmann <gerd@gnu.org>
6518
6519 * sound.c (vox_configure): Change order of ioctls.
6520 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
6521 Ignore errors when changing volume.
6522 (vox_close): Don't reset the device.
6523
6524 * process.c (read_process_output): Make sure the process marker's
6525 position is valid when the process buffer is changed in
6526 after-change functions. W3 does that.
6527
6528 * xfns.c (x_free_gcs): New function.
6529
6530 * xterm.h (x_free_gcs): Add prototype.
6531
6532 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
6533 freeing GCs here.
6534
6535 * xterm.c (x_destroy_window): Call x_free_gcs so that
6536 resources of non-toolkit X windows will be freed.
6537
6538 2000-12-07 Andrew Innes <andrewi@gnu.org>
6539
6540 * w32fns.c (xlfd_charset_of_font): Fix last change.
6541
6542 2000-12-06 Dave Love <fx@gnu.org>
6543
6544 * md5.h (__P): Don't define -- it comes from config.h.
6545
6546 * strftime.c: Change some #if foo to #ifdef foo.
6547
6548 2000-12-06 Andrew Innes <andrewi@gnu.org>
6549
6550 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
6551
6552 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
6553 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
6554 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
6555
6556 2000-12-06 Gerd Moellmann <gerd@gnu.org>
6557
6558 * alloc.c (gc_sweep): Prevent symbols read during loadup
6559 from being freed.
6560
6561 * xdisp.c (underlying_face_id): New function.
6562 (handle_face_prop, face_before_or_after_it_pos): Use it
6563 to determine the face ``under'' a string. Let strings inherit
6564 the face of the buffer under them.
6565
6566 * xfaces.c (face_at_string_position): Update function comment.
6567
6568 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
6569 matrix if the window's left position has changed; we need to
6570 redraw it in this case.
6571
6572 * dispextern.h (struct glyph_matrix): Add member window_left_x.
6573
6574 * window.c (coordinates_in_window): Check mouse on mode-line or
6575 header-line first.
6576
6577 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
6578 advertized by the function documentation.
6579
6580 * window.c (syms_of_window): Doc fix.
6581
6582 * sound.c (vox_configure): Set volume for left and right channel.
6583 (sound_cleanup): Return nil.
6584
6585 * xdisp.c (move_it_by_lines): Fix paren typo.
6586
6587 * xterm.c (x_load_font): Don't use the font's max_bounds for
6588 computing the height of the font. If max_bounds' ascent or
6589 descent are greater than the font's ascent or descent, this means
6590 glyphs overlap, which should be handled now by redisplay.
6591
6592 * window.c (Veven_window_heights): New variable.
6593 (syms_of_window): DEFVAR_LISP it.
6594 (Fdisplay_buffer): Check Veven_window_heights before evening the
6595 window heights.
6596
6597 2000-12-06 Miles Bader <miles@gnu.org>
6598
6599 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
6600 update `default-frame-alist' instead of setting no frame parameters.
6601
6602 2000-12-06 Kenichi Handa <handa@etl.go.jp>
6603
6604 * composite.c (update_compositions): Fix typo (use the correct
6605 variable).
6606
6607 2000-12-05 Jason Rumney <jasonr@gnu.org>
6608
6609 * md5.h: Remove underscores from function declarations.
6610 (__attribute__, __alignof__) [!__GNUC__]: Define.
6611
6612 * md5.c: Delay include of md5.h until after namespace cleaning.
6613
6614 * makefile.w32-in (fns.o): Depend on md5.h
6615 (md5.o): New target.
6616 (sunfns.o): Remove.
6617
6618 * makefile.nt: Likewise.
6619
6620 2000-12-05 Jason Rumney <jasonr@altavista.net>
6621
6622 * w32term.c (expose_area): Complete last change.
6623
6624 2000-12-05 Ken Raeburn <raeburn@gnu.org>
6625
6626 * minibuf.c: Include intervals.h.
6627
6628 2000-12-05 Jason Rumney <jasonr@gnu.org>
6629
6630 * w32term.c (x_produce_glyphs): If a font for a component of
6631 a composition is not found, use 1 pixel dot ascent and 0 dot
6632 descent value to avoid displaying terribly tall empty boxes.
6633 (expose_area): Pass x-coordinate relative to the exposed
6634 area to x_draw_glyphs instead of a window-relative coordinate.
6635
6636 2000-12-05 Gerd Moellmann <gerd@gnu.org>
6637
6638 * xdisp.c (next_element_from_ellipsis): Save face before selective
6639 display in saved_face_id, and set face_before_selective_p.
6640 (reseat_1): Reset face_before_selective_p.
6641 (append_space, extend_face_to_end_of_line): If iterator's
6642 face_before_selective_p is set, use the face from saved_face_id.
6643 (extend_face_to_end_of_line): For tty frames, make sure to
6644 use the right face id when producing spaces at the end of
6645 the line.
6646
6647 * dispextern.h (struct it): Add face_before_selective_p.
6648
6649 * keyboard.c (record_char): Don't record identical help-echo
6650 events in recent_keys.
6651
6652 * xterm.c [USE_X_TOOLKIT]: Close the display.
6653 (xim_close_dpy): Handle case that the display has been closed.
6654
6655 * xterm.c (x_destroy_window): Reset the frame's X window after
6656 destroying it.
6657
6658 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
6659 variable window_width.
6660 (line_draw_cost): Fix code skipping over spaces at the end of the
6661 line when must_write_spaces is not set.
6662 (scrolling_window): Fix code inserting runs in list of all runs.
6663
6664 2000-12-05 Kenichi Handa <handa@etl.go.jp>
6665
6666 * coding.c (setup_coding_system): Be sure to initialize
6667 coding->category_idx.
6668
6669 2000-12-04 Gerd Moellmann <gerd@gnu.org>
6670
6671 * xterm.c (PER_CHAR_METRIC): Removed because not used.
6672
6673 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
6674 area to x_draw_glyphs instead of a window-relative coordinate.
6675
6676 * fileio.c (auto_save_error): Add parameter ERROR. Show the
6677 error in the message.
6678
6679 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
6680 timer after having read a key. It's not good for code reading
6681 several keys in a loop, like an input method.
6682
6683 * fileio.c (Finsert_file_contents): When VISIT is t, don't
6684 record undo information for format-decode.
6685
6686 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
6687 current buffer is read-only, not if it isn't.
6688
6689 * keyboard.c (record_char): Record `help-echo' input events
6690 in recent_keys only if they display some help. Don't record
6691 `help-echo' events as macro char.
6692
6693 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
6694
6695 * editfns.c (save_excursion_restore): Don't move point
6696 in another window if it is showing the wrong buffer.
6697 Avoid the call to Fwindow_live_p, for speed.
6698
6699 2000-12-04 Kenichi Handa <handa@etl.go.jp>
6700
6701 * xfaces.c (struct font_name): New member registry_priority.
6702 (split_font_name): Initialize the above member to zero.
6703 (concat_font_list): New function.
6704 (font_list): Include fonts of all alternative registries.
6705 (FONT_POINT_SIZE_QUANTUM): New macro.
6706 (better_font_p): Ignore point size difference less than
6707 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
6708
6709 * xterm.c (x_produce_glyphs): If a font for a component of
6710 a composition is not found, use 1 pixel dot ascent and 0 dot
6711 descent value to avoid displaying terribly tall empty boxes.
6712
6713 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
6714
6715 2000-12-03 Ken Raeburn <raeburn@gnu.org>
6716
6717 * coding.h (code_convert_string1): Declare.
6718
6719 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
6720
6721 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
6722
6723 2000-12-02 Jason Rumney <jasonr@gnu.org>
6724
6725 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
6726 correctly for single byte character case.
6727 (w32_per_char_metric): Do not try to make any assumptions about
6728 the metrics of BDF fonts.
6729 (x_estimate_mode_line_height): If `mode-line' face
6730 hasn't a font, use that of the frame, as drawing glyphs does.
6731 (note_mouse_highlight): Change the cursor shape on the vertical
6732 border between windows [not enabled].
6733
6734 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
6735
6736 * w32fns.c (Fx_create_frame): Reintroduce the call to
6737 face-set-after-frame-defaults.
6738 (Vx_window_horizontal_drag_shape): New variable.
6739 (syms_of_xfns): DEFVAR_LISP it.
6740 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
6741 enabled].
6742
6743 2000-12-02 Simon Josefsson <simon@josefsson.org>
6744
6745 * fns.c (Fmd5): Use a different logic to decide the coding system
6746 to use.
6747
6748 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
6749
6750 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
6751
6752 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
6753
6754 2000-12-01 Gerd Moellmann <gerd@gnu.org>
6755
6756 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
6757 height for YNegative.
6758 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
6759 height; also see comment there.
6760
6761 * window.c (coordinates_in_window): Handle computations for
6762 positions on the vertical bar and fringes differently for
6763 window-system frames. Consider some pixels near the vertical bar
6764 as on the bar if the frame doesn't have vertical scroll bars.
6765 Associate positions between mode or header lines with the
6766 right window, the left one.
6767
6768 2000-12-01 Jason Rumney <jasonr@gnu.org>
6769
6770 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
6771
6772 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
6773 invalid frame.
6774
6775 2000-12-01 Gerd Moellmann <gerd@gnu.org>
6776
6777 * window.c (struct saved_window): Add members orig_top and orig_height.
6778 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
6779 (save_window_save, Fset_window_configuration): Save/restore
6780 window's orig_top and orig_height.
6781
6782 2000-12-01 Jason Rumney <jasonr@gnu.org>
6783
6784 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
6785
6786 * w32fns.c (x_set_cursor_color): Fix last change.
6787
6788 2000-11-30 Gerd Moellmann <gerd@gnu.org>
6789
6790 * xdisp.c (echo_area_display): If cursor is in the echo area, make
6791 sure that the next redisplay displays the minibuffer, so that
6792 the cursor will be replaced with what the minibuffer wants.
6793
6794 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
6795 #ifndef instead of using #if.
6796 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
6797 USE_TOOLKIT_SCROLL_BARS is defined.
6798
6799 2000-11-30 Jason Rumney <jasonr@gnu.org>
6800
6801 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
6802 x_display_cursor.
6803
6804 2000-11-30 Gerd Moellmann <gerd@gnu.org>
6805
6806 * fns.c (Fmd5): Doc fix.
6807
6808 2000-11-30 Simon Josefsson <simon@josefsson.org>
6809
6810 * fns.c (Fmd5): New function.
6811 (syms_of_fns): Defsubr md5.
6812
6813 * Makefile.in (obj): Add md5.o
6814
6815 2000-11-30 Gerd Moellmann <gerd@gnu.org>
6816
6817 * md5.h, md5.c: New files, taken from glibc.
6818
6819 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
6820
6821 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
6822 hasn't a font, use that of the frame, as drawing glyphs does.
6823
6824 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
6825
6826 * eval.c (Frun_hooks): Allow 0 arguments.
6827
6828 2000-11-29 Gerd Moellmann <gerd@gnu.org>
6829
6830 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
6831 is over the menu bar widget, say it's not on the frame.
6832
6833 * xfns.c (Fx_create_frame): Reintroduce the call to
6834 face-set-after-frame-defaults.
6835
6836 * eval.c (Fsignal): Reset handling_signal.
6837
6838 2000-11-28 Jason Rumney <jasonr@gnu.org>
6839
6840 * w32menu.c (add_menu_item): Reset menu item text when changing
6841 type to radio button.
6842
6843 2000-11-28 Gerd Moellmann <gerd@gnu.org>
6844
6845 * xselect.c: Update copyright.
6846
6847 * window.c (coordinates_in_window): If on a mode or header line,
6848 but sufficiently close to its start, return ``on vertical
6849 border''. This gives us a way to drag windows horizontally when
6850 using toolkit scroll bars.
6851
6852 * xterm.c (note_mouse_highlight): Change the cursor shape
6853 on the vertical border between windows.
6854
6855 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
6856
6857 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
6858 (syms_of_xfns): DEFVAR_LISP it.
6859 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
6860
6861 * textprop.c (text_read_only): New function.
6862 (verify_interval_modification): Use it instead of signaling
6863 `text-read-only'. This makes it easier to catch this error
6864 with a breakpoint.:
6865
6866 * xdisp.c (forward_to_next_line_start): Check for newlines,
6867 not end of line, which includes CR.
6868
6869 2000-11-28 Kenichi Handa <handa@etl.go.jp>
6870
6871 * coding.c (Ffind_coding_systems_region_internal): Be sure to
6872 include no-conversion.
6873
6874 2000-11-27 Jason Rumney <jasonr@gnu.org>
6875
6876 * w32fns.c (w32_load_system_font): Always mark font as double byte
6877 if codepage is unicode.
6878
6879 2000-11-27 Gerd Moellmann <gerd@gnu.org>
6880
6881 * xdisp.c (forward_to_next_line_start): If already on a newline,
6882 just consume it to avoid unintended skipping over invisible text below.
6883
6884 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
6885 `vertical-line', `mode-line' and `header-line' events.
6886
6887 * xdisp.c (try_window_id): Avoid starting to display in the middle
6888 of a character, a TAB for instance. This is easier than to set
6889 up the iterator exactly, and it's not a frequent case, so the
6890 additional effort wouldn't really pay off.
6891
6892 2000-11-26 Andrew Choi <akochoi@i-cable.com>
6893
6894 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
6895 init_window_once.
6896
6897 2000-11-25 Jason Rumney <jasonr@gnu.org>
6898
6899 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
6900 Args to window_from_coordinates should be pixel coordinates.
6901
6902 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
6903 redisplay handles them properly.
6904
6905 2000-11-25 Miles Bader <miles@gnu.org>
6906
6907 * indent.c (compute_motion): Keep pos_byte in sync with pos.
6908
6909 2000-11-24 Jason Rumney <jasonr@gnu.org>
6910
6911 * w32.c (init_environment): Set LANG environment variable based on
6912 locale settings, if not set.
6913
6914 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
6915 making tool bar smaller. When clearing the frame, also
6916 clear current matrices. Clear frame when tool bar disappears.
6917 Don't use more lines for the tool-bar than is available.
6918 (x_change_window_heights): New function.
6919
6920 2000-11-24 Gerd Moellmann <gerd@gnu.org>
6921
6922 * xdisp.c (init_from_display_pos): If POS says we're already after
6923 an overlay string ending at POS, make sure to pop the iterator
6924 because it will be in front of that overlay string. When POS is
6925 ZV, we've thereby also ``processed'' overlay strings at ZV.
6926
6927 * xfaces.c (lface_from_face_name): Function comment fix.
6928
6929 2000-11-24 Miles Bader <miles@gnu.org>
6930
6931 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
6932 apply `mode-line-inverse-video' -- zero means force display using
6933 the default face, non-zero means display using the specialized face.
6934 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
6935
6936 2000-11-23 Kenichi Handa <handa@etl.go.jp>
6937
6938 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
6939 hard coded `4'.
6940
6941 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
6942
6943 * coding.c (decode_coding_emacs_mule): Fix the case of
6944 CODING_EOL_LF, which used uninitialized value of c.
6945
6946 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
6947
6948 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
6949
6950 2000-11-22 Gerd Moellmann <gerd@gnu.org>
6951
6952 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
6953 buffer object.
6954
6955 * frame.h (struct frame): Replace desired_tool_bar_items,
6956 current_tool_bar_items, n_desired_tool_bar_items,
6957 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
6958
6959 * frame.c (make_frame): Change initialization of tool bar
6960 items accordingly.
6961
6962 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
6963 Change references to members deleted from struct frame to use the
6964 new ones.
6965
6966 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
6967 references to members deleted from struct frame to use the new ones.
6968
6969 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
6970
6971 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
6972
6973 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
6974 (note_tool_bar_highlight): Change references to members deleted
6975 from struct frame to use the new ones.
6976
6977 2000-11-23 Miles Bader <miles@gnu.org>
6978
6979 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
6980 the face's inverse-video attribute, rather than overriding it.
6981
6982 2000-11-22 Gerd Moellmann <gerd@gnu.org>
6983
6984 * xfns.c (x_set_tool_bar_lines): Clear internal border when
6985 making tool bar smaller.
6986
6987 2000-11-22 Dave Love <fx@gnu.org>
6988
6989 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
6990
6991 2000-11-22 Miles Bader <miles@gnu.org>
6992
6993 * keyboard.c (Vminibuffer_message_timeout): New variable.
6994 (command_loop_1): Use it to determine message timeout.
6995 (syms_of_keyboard): Initialize it.
6996
6997 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
6998
6999 2000-11-22 Kenichi Handa <handa@etl.go.jp>
7000
7001 * sysdep.c: Move the code for declaring h_errno after #include
7002 <netdb.h>.
7003
7004 2000-11-21 Gerd Moellmann <gerd@gnu.org>
7005
7006 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
7007 the menu bar when the tooltip is unmapped.
7008
7009 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
7010 sole visible buffer when we're currently in the mini-buffer, and
7011 give up if so.
7012
7013 2000-11-21 Jason Rumney <jasonr@gnu.org>
7014
7015 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
7016 put on the clipboard.
7017 (Fw32_get_clipboard_data): Compare data on clipboard with saved
7018 copy of what Emacs last put there. If they are the same, do not
7019 use the clipboard copy to avoid losing data due to coding conversions.
7020
7021 2000-11-22 Miles Bader <miles@gnu.org>
7022
7023 * minibuf.c (Vminibuffer_prompt_properties): New variable.
7024 (syms_of_minibuf): Initialize it.
7025 (read_minibuf): Add properties from Vminibuffer_prompt_properties
7026 to prompt, don't make read-only.
7027
7028 2000-11-21 Gerd Moellmann <gerd@gnu.org>
7029
7030 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
7031 Add BEFORE/AFTER_POTENTIAL_GC.
7032
7033 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
7034
7035 * buffer.c (mmap_free_1): Avoid a compiler warning.
7036
7037 * term.c, cm.c: Don't try to include termcap.h; see comment there.
7038
7039 2000-11-21 Kenichi Handa <handa@etl.go.jp>
7040
7041 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
7042 ... #endif scope.
7043
7044 2000-11-20 Gerd Moellmann <gerd@gnu.org>
7045
7046 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
7047 screen supports it.
7048
7049 * s/gnu-linux.h: Don't use `#cpu'.
7050
7051 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
7052 not defined in mman.h.
7053
7054 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
7055 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
7056 and store an index in the XClientMessageEvent. Storing a
7057 Lisp_Object or pointer can fail on a 64 bit system, since X only
7058 transfers 32 bits.
7059 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
7060
7061 2000-11-20 Dave Love <fx@gnu.org>
7062
7063 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
7064
7065 2000-11-20 Gerd Moellmann <gerd@gnu.org>
7066
7067 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
7068
7069 2000-11-20 Kenichi Handa <handa@etl.go.jp>
7070
7071 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
7072 by WIDTH.
7073
7074 * alloc.c (make_string): Fix previous change. Be sure to make
7075 unibyte string correctly.
7076
7077 2000-11-19 Gerd Moellmann <gerd@gnu.org>
7078
7079 * window.c (Fwindow_list): Change parameter list to be XEmacs
7080 compatible.
7081 (window_list_1): New function.
7082 (window_loop): Use it instead of Fwindow_list.
7083
7084 * sysdep.c (emacs_ospeed): New variable.
7085 (toplevel): Don't declare ospeed extern.
7086 (init_baud_rate): Use emacs_ospeed instead of ospeed.
7087
7088 * termcap.c (ospeed): Remove.
7089 (tputs) [!emacs]: Remove unused code.
7090 (tgetent): Avoid a compiler warning.
7091
7092 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
7093 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
7094 SCROLL_BAR_X_WIDGET with additional argument DPY.
7095
7096 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
7097 removed.
7098 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
7099 Take the X display as additional argument.
7100 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
7101 `Widget' is a pointer type that's not easily stored in Lisp_Object
7102 form in a portable way.
7103
7104 * dispnew.c (update_text_area): Fix last change.
7105
7106 2000-11-18 Gerd Moellmann <gerd@gnu.org>
7107
7108 * xdisp.c: Use BINDING_STACK_SIZE throughout.
7109
7110 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
7111 clear current matrices.
7112
7113 * buffer.c (mmap_enlarge): Don't print a message on stderr
7114 if mapping new memory at the end of the existing region fails.
7115
7116 * dispnew.c (update_text_area): Don't skip over equal glyphs
7117 when the last current glyph overlaps the glyph to its right.
7118
7119 2000-11-18 Miles Bader <miles@gnu.org>
7120
7121 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
7122 lines that *end* with "..." too (that's the most common case!).
7123
7124 2000-11-18 Gerd Moellmann <gerd@gnu.org>
7125
7126 * xdisp.c (resize_mini_window): Temporarily change to the
7127 mini-window's buffer if necessary.
7128
7129 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
7130 the tooltip obscures less text under it.
7131
7132 2000-11-17 Gerd Moellmann <gerd@gnu.org>
7133
7134 * puresize.h (BASE_PURESIZE): Increase to 700000.
7135
7136 2000-11-18 Jason Rumney <jasonr@gnu.org>
7137
7138 * w32term.c (w32_draw_bitmap): Use face to set colors.
7139
7140 2000-11-17 Dave Love <fx@gnu.org>
7141
7142 * lread.c (Fload): Fix #ifdef for pcc.
7143
7144 2000-11-17 Gerd Moellmann <gerd@gnu.org>
7145
7146 * xdisp.c (pos_visible_p): Compute the default character height
7147 differently.
7148
7149 2000-11-16 Gerd Moellmann <gerd@gnu.org>
7150
7151 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
7152 knowing the line's height; use the default font's height in that case.
7153
7154 * xfaces.c (weight_table): Add `demi' with the same meaning as
7155 `demibold'.
7156
7157 2000-11-16 Kenichi Handa <handa@etl.go.jp>
7158
7159 * dispnew.c (null_row): New global static variable.
7160 (clear_glyph_row): Delete local static variable null_row.
7161
7162 2000-11-15 Jason Rumney <jasonr@gnu.org>
7163
7164 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
7165 (w32_alloc_lighter_color): Use new brightness calculations from
7166 xterm.c. Scale delta to be in the range expected by W32.
7167 (w32_draw_relief_rect): Use frame relief colors.
7168
7169 2000-11-15 Gerd Moellmann <gerd@gnu.org>
7170
7171 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
7172 (Qinhibit_default_face_x_resources): New variable.
7173 (syms_of_frame): Initialize it.
7174 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
7175
7176 * xdisp.c (pos_visible_p): Improve function comment.
7177
7178 * lisp.h (BINDING_STACK_SIZE): New macro.
7179
7180 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
7181 reading the directory if readdir returns null and errno is EAGAIN
7182 or EINTR.
7183
7184 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
7185
7186 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
7187 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
7188 Set amount_to_scroll to max of dx and scroll_step so that
7189 scroll-conservatively doesn't defeat scroll-step>1.
7190 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
7191 scroll-conservatively for line-at-a-time scrolling.
7192
7193 2000-11-14 Gerd Moellmann <gerd@gnu.org>
7194
7195 * window.c (Fpos_visible_in_window_p): Call pos_visible with
7196 extra argument.
7197
7198 * xdisp.c (current_mode_line_height, current_header_line_height):
7199 New variables.
7200 (init_xdisp): Initialize them.
7201 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
7202 and use exact mode line heights if it is set.
7203
7204 * lisp.h (pos_visible_p): Change prototype.
7205
7206 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
7207 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
7208 and current_header_line_height first.
7209 (current_mode_line_height, current_header_line_height):
7210 Declare extern.
7211
7212 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
7213
7214 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
7215 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
7216 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
7217
7218 2000-11-14 Miles Bader <miles@gnu.org>
7219
7220 * xterm.c (x_alloc_lighter_color): Include an additive component
7221 too for dark colors, because FACTOR isn't enough.
7222 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
7223 New macros.
7224
7225 2000-11-13 Gerd Moellmann <gerd@gnu.org>
7226
7227 * keyboard.c (show_help_echo): Call message3_nolog with number of
7228 bytes in the help string as 2nd parameter, instead of the number
7229 of characters.
7230
7231 2000-11-13 Miles Bader <miles@gnu.org>
7232
7233 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
7234 (Fload): Use new openp return protocol.
7235 Don't try to use Vload_source_file_function to load .elc files.
7236 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
7237 openp return protocol.
7238 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
7239
7240 2000-11-11 Kenichi Handa <handa@etl.go.jp>
7241
7242 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
7243
7244 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
7245 Defined these macros.
7246 (NLIST_STRUCT): Avoid re-defining it.
7247
7248 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
7249 -I/usr/contrib/X11R6/include.
7250 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
7251
7252 2000-11-10 Jason Rumney <jasonr@gnu.org>
7253
7254 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
7255
7256 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
7257 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
7258
7259 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
7260 (Qw32_charset_vietnamese): New symbol.
7261 (xlfd_charset_of_font): New function.
7262 (w32_load_system_font): Use it.
7263 (x_to_w32_charset): Use Fassoc to find charset info. Special case
7264 when Vw32_charset_info_alist is nil to ensure default face always
7265 has font. Use Fcar and Fcdr for safety.
7266 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
7267 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
7268 pseudo-codepages for special cases.
7269 (w32_to_x_font): New parameter to allow charset portion to be
7270 specified where there is many to one mapping. Callers changed.
7271 (w32_list_fonts): Avoid listing fonts that won't display.
7272
7273 2000-11-10 Gerd Moellmann <gerd@gnu.org>
7274
7275 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
7276 (font_list_1): Renamed from font_list.
7277 (font_list): New function, trying alternative registries from
7278 Vface_alternative_font_registry_alist.
7279 (Finternal_set_alternative_font_registry_alist): New function.
7280 (syms_of_xfaces): Initialize and Staticpro
7281 Vface_alternative_font_registry_alist.
7282 Defsubr Finternal_set_alternative_font_registry_alist.
7283
7284 2000-11-09 Ken Raeburn <raeburn@gnu.org>
7285
7286 * lisp.h (Flooking_at): Declare.
7287
7288 2000-11-09 Gerd Moellmann <gerd@gnu.org>
7289
7290 * dired.c (directory_files_internal): Fix a braino.
7291
7292 * dired.c (directory_files_internal): Add missing GCPRO's.
7293 Some cleanup.
7294
7295 2000-11-08 Gerd Moellmann <gerd@gnu.org>
7296
7297 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
7298 (resize_mini_window): Return quickly if Vresize_mini_window is
7299 nil. Don't return if Vmax_mini_window_height is nil.
7300
7301 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
7302 (syms_of_xdisp): Initialize them.
7303 (resize_mini_window): Act according to the setting of
7304 Vresize_mini_window.
7305 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
7306
7307 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
7308 scroll bar widget after configuring it, so that it will appear at
7309 the right position from the start.
7310 (XTredeem_scroll_bar): Cleaned up.
7311
7312 2000-11-08 Kenichi Handa <handa@etl.go.jp>
7313
7314 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
7315 font is taller than the frame line, we don't have to bias the
7316 division by two.
7317
7318 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
7319
7320 2000-11-07 Dave Love <fx@gnu.org>
7321
7322 * config.in (HAVE_MKSTEMP): Add.
7323
7324 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
7325
7326 2000-11-07 Gerd Moellmann <gerd@gnu.org>
7327
7328 * window.c (Fset_window_configuration): Don't try to preserve
7329 point in the current buffer, if that buffer is displayed in more
7330 than one window.
7331
7332 * xfaces.c (lookup_named_face): If default face isn't realized,
7333 try to realize it. Return -1 if not successful.
7334 (Fx_list_fonts): Handle case that face cannot be determined.
7335 (Fface_font): Likewise.
7336
7337 2000-11-06 Gerd Moellmann <gerd@gnu.org>
7338
7339 * window.c (displayed_window_lines): Detect partially
7340 visible lines at the bottom correctly.
7341
7342 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
7343
7344 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
7345 when ensuring we don't do visit in indirect buffer.
7346
7347 2000-11-06 Kenichi Handa <handa@etl.go.jp>
7348
7349 * composite.h (compose_chars_in_text): Add prototype.
7350
7351 * composite.c (Vcomposition_function_table): New variable.
7352 (Qcomposition_function_table): New variable.
7353 (run_composition_function): Call
7354 Vcompose_chars_after_function with three arguments.
7355 (compose_chars_in_text): New function.
7356 (syms_of_composite): Modified the doc-string of
7357 Vcompose_chars_after_function. Declare composition-function-table
7358 as a lisp variable, and initialize it.
7359
7360 * xfns.c (x_encode_text): Suppress producing escape sequences for
7361 composition.
7362
7363 * xselect.c: Include composite.h.
7364 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
7365
7366 2000-11-05 Andrew Innes <andrewi@gnu.org>
7367
7368 * w32term.c (x_produce_glyphs): Fix typo in enum name.
7369
7370 * sysdep.c (read_input_waiting): Remove extraneous argument to
7371 read_socket_hook.
7372
7373 * w32fns.c (Fx_server_version): Include w32_build_number in the
7374 return list.
7375
7376 * w32heap.c (w32_build_number): New variable.
7377 (cache_system_info): Set it.
7378
7379 * w32heap.h (w32_build_number): Add extern.
7380
7381 * emacs.c (syms_of_emacs): Update docstring for
7382 system-configuration, to reflect the actual usage on MS-Windows.
7383
7384 2000-10-31 Gerd Moellmann <gerd@gnu.org>
7385
7386 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
7387 process idle timers while waiting for another event.
7388
7389 * dispnew.c (update_frame_line): Handle case where spaces in
7390 the default face are colored.
7391
7392 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
7393 window height hasn't changed.
7394
7395 2000-10-31 Jason Rumney <jasonr@gnu.org>
7396
7397 * w32term.c (x_produce_glyphs): Handle composite characters.
7398 (x_draw_glyph_string_foreground)
7399 (x_draw_composite_glyph_string_foreground): Restore old font.
7400
7401 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
7402
7403 * minibuf.c (read_minibuf): Reset the undo history just before
7404 starting the recursive-edit.
7405
7406 2000-10-30 Gerd Moellmann <gerd@gnu.org>
7407
7408 * xfaces.c (menu_face_change_count): New variable.
7409 (Finternal_set_lisp_face_attribute): Increment it for changes
7410 of the `menu' face.
7411 (realize_basic_faces): Reflect changes in the `menu' faces
7412 in menu bars.
7413
7414 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
7415 dy obtained from the iterator's y-position after moving from
7416 scroll_margin_pos to PT; see comment there.
7417
7418 * xdisp.c (safe_eval_handler): Call add_to_log.
7419
7420 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
7421 is not a symbol or string.
7422
7423 * xdisp.c (echo_area_display): Don't perform a display update from
7424 inside redisplay. The update will happen anyway at the end of
7425 redisplay, and it can confuse redisplay (GC messages while
7426 redisplaying, for instance.)
7427
7428 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
7429
7430 * xrdb.c (x_load_resources): Use the class name in the defaults.
7431
7432 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
7433 (regex_compile): Catch bogus \(\1\).
7434
7435 2000-10-30 Gerd Moellmann <gerd@gnu.org>
7436
7437 * xterm.c (x_alloc_nearest_color): Fix last change to compare
7438 RGB values.
7439
7440 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
7441 we have a color cache, check that the cached color equals the
7442 allocated color. If not, clear the color cache.
7443
7444 * window.c (displayed_window_lines): Change buffers if necessary.
7445 Fix computation of displayed lines.
7446
7447 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
7448 update_menu_bindings to DEFVAR_BOOL.
7449
7450 2000-10-30 Kenichi Handa <handa@etl.go.jp>
7451
7452 * search.c (Fset_match_data): Be sure to make search_regs always sane.
7453
7454 * puresize.h (BASE_PURESIZE): Increase to 680000.
7455
7456 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
7457
7458 2000-10-29 Jason Rumney <jasonr@gnu.org>
7459
7460 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
7461
7462 * w32term.c (w32_bdf_per_char_metric): Negate descent.
7463 (w32_cache_char_metrics): Handle possibility that 'x' does not
7464 exist in a BDF font.
7465 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
7466
7467 * w32bdf.h (bdffont): Add nchars.
7468
7469 * w32bdf.c (set_bdf_font_info): Set it.
7470 (w32_BDF_TextOut): Swap byte order of double byte characters.
7471 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
7472
7473 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
7474
7475 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
7476 don't override the colors in frame's param_alist, unless they are
7477 unspecified.
7478
7479 * term.c (reassert_line_highlight): If inverse_video is non-zero,
7480 reverse the effect of the highlight flag.
7481
7482 2000-10-27 Ken Raeburn <raeburn@gnu.org>
7483
7484 * window.h (Fwindow_live_p): Declare.
7485
7486 * undo.c (record_delete): Check that last_undo_buffer is really a
7487 buffer before applying XBUFFER to it.
7488
7489 * keymap.c (where_is_internal): Pass lisp object, not integer, to
7490 Faref.
7491
7492 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
7493
7494 * lisp.h (KEYMAPP): New macro.
7495 (get_keymap): Remove.
7496 (get_keymap_1): Rename get_keymap.
7497
7498 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
7499
7500 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
7501
7502 * xmenu.c (single_submenu): Use KEYMAPP.
7503 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
7504 Use KEYMAPP rather than Fkeymapp.
7505
7506 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
7507
7508 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
7509 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
7510 Use KEYMAPP rather than Fkeymapp.
7511 (single_submenu): Use KEYMAPP.
7512 (w32_menu_show, w32_dialog_show): Use TRUE.
7513
7514 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
7515
7516 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
7517 (Fkeymapp): Use KEYMAPP.
7518 (get_keymap): Rename from get_keymap_1. Remove old def.
7519 Return t when autoload=0 and error=0 and the keymap needs autoloading.
7520 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
7521 (Fminor_mode_key_binding): Don't raise an error if the binding
7522 is not a keymap.
7523 (Fuse_global_map, Fuse_local_map): Allow autoloading.
7524 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
7525
7526 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
7527 Allow Vspecial_event_map to be autoloaded.
7528 (menu_bar_items): Fetch the keymap rather than using keymapp.
7529 (menu_bar_one_keymap): No need to follow func-indirect any more.
7530 (parse_menu_item): get_keymap_1 -> get_keymap.
7531 (tool_bar_items): Fetch the keymap rather than using keymapp.
7532 (read_key_sequence): Use KEYMAPP.
7533
7534 * intervals.c (get_local_map): Use get_keymap rather than following
7535 function-indirections explicitly.
7536
7537 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
7538
7539 2000-10-27 Jason Rumney <jasonr@gnu.org>
7540
7541 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
7542 point, as Windows has oversized fonts.
7543
7544 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
7545
7546 2000-10-27 Gerd Moellmann <gerd@gnu.org>
7547
7548 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
7549 (freehook, reallochook): Handle null pointer arguments.
7550 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
7551
7552 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
7553
7554 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
7555 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
7556 Giving in to popular pressure to shut up the compiler with casts.
7557
7558 2000-10-27 Gerd Moellmann <gerd@gnu.org>
7559
7560 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
7561 signed value, and use a default value computed from the font's
7562 maximum descent.
7563
7564 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
7565
7566 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
7567 that specify a negative underline position can still use underlines.
7568
7569 * window.c (Fpos_visible_in_window_p): Make POS default to
7570 WINDOW's point, not the current buffer's point.
7571
7572 2000-10-26 Dave Love <fx@gnu.org>
7573
7574 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
7575 when it's necessary.
7576
7577 2000-10-26 Gerd Moellmann <gerd@gnu.org>
7578
7579 * window.c (size_window): Compute size difference from sum of old
7580 child window sizes instead of from parent's size.
7581
7582 * xdisp.c (pos_visible_p): Change current buffer if necessary.
7583 Handle obscured lines at the top of the window.
7584
7585 * frame.c (Fdelete_frame): Doc fix. Move running the hook
7586 down after the last error condition check.
7587
7588 * frame.c (Fdelete_frame): Run delete-frame-hook.
7589
7590 2000-10-26 Kenichi Handa <handa@etl.go.jp>
7591
7592 * coding.c (decode_coding): Fix previous change (check also
7593 CODING_MODE_LAST_BLOCK).
7594
7595 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
7596
7597 * regex.c: More `unsigned char' -> `re_char' changes.
7598 Also change several `int' into `re_wchar_t'.
7599 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
7600 (PUSH_FAILURE_POINTER): Don't cast any more.
7601 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
7602 We want GCC to complain, since this piece of code makes
7603 re_match non-reentrant, which *should* be fixed.
7604 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
7605 (EXTEND_BUFFER): Use RETALLOC.
7606 (SET_LIST_BIT): Don't cast.
7607 (re_wchar_t): New type.
7608 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
7609 that those two functions will always properly return.
7610 (IMMEDIATE_QUIT_CHECK): Cast to void.
7611 (analyse_first): Use recursion rather than an explicit stack.
7612 (re_compile_fastmap): Can't fail anymore.
7613 (re_search_2): Don't check re_compile_fastmap for failure.
7614 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
7615 Now also sets the new value (passed in a new argument).
7616 (re_match_2_internal): Use it.
7617 Also, use a new var `reg' of type size_t when looping through regs
7618 rather than reuse the inappropriate `mcnt'.
7619
7620 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
7621 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
7622 (where_is_internal): Renamed from Fwhere_is_internal.
7623 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
7624 (Fwhere_is_internal): New function wrapping where_is_internal.
7625 (where_is_internal_1): Handle the case where we're filling the cache.
7626 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
7627
7628 2000-10-25 Miles Bader <miles@gnu.org>
7629
7630 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
7631
7632 2000-10-25 Gerd Moellmann <gerd@gnu.org>
7633
7634 * window.c (pos_fully_visible_p): Removed.
7635 (Fpos_visible_in_window_p): Use pos_visible_p to determine
7636 if position is visible and/or fully visible.
7637
7638 * lisp.h (pos_visible_p): Add prototype.
7639
7640 * xdisp.c (pos_visible_p): New function.
7641
7642 2000-10-25 Kenichi Handa <handa@etl.go.jp>
7643
7644 * process.c (send_process): If OBJECT is t, it means that the data
7645 is from C string, but we should encode it. Before calling
7646 setup_raw_text_coding_system, be sure to flush out data by the
7647 previous coding system.
7648
7649 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
7650
7651 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
7652 assignment of startpos to prev when startpos == pos.
7653
7654 * editfns.c (find_field): Set the field stickiness correctly from
7655 overlay fields. Use renamed `text_property_stickiness'.
7656 (text_property_stickiness): Renamed from `char_property_stickiness'.
7657 Only check text properties, not overlays.
7658 * textprop.c (get_char_property_and_overlay): New function.
7659 (Fget_char_property): Use it.
7660 * intervals.h (get_char_property_and_overlay): Add declaration.
7661
7662 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
7663
7664 * keymap.c: Use AREF, ASET and ASIZE macros.
7665 (Fmake_sparse_keymap): Docstring fix.
7666 (synkey): Remove.
7667 (shadow_lookup): Move up.
7668 Handle the case where lookup-key returns an integer.
7669 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
7670 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
7671 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
7672 Simplify/rewrite the keymap-finding code.
7673 Add check for command shadowing, using shadow_lookup.
7674
7675 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
7676
7677 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
7678 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
7679 a symbol.
7680
7681 2000-10-24 Andrew Innes <andrewi@gnu.org>
7682
7683 * dired.c (directory_files_internal_unwind): New function.
7684 (directory_files_internal): Use it to ensure closedir is called
7685 even if expand-file-name or file-attributes throw, eg. because of
7686 a user interrupt. Also enable immediate_quit while calling
7687 re_search, so that matching can be interrupted as well.
7688
7689 2000-10-24 Andrew Innes <andrewi@gnu.org>
7690
7691 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
7692 NT-Emacs only.
7693 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
7694 so that re_search functions only quit when callers expect them to.
7695
7696 2000-10-24 Kenichi Handa <handa@etl.go.jp>
7697
7698 * regex.c (regex_compile): Change the way of handling a range from
7699 a char less than 256 to a char not less than 256.
7700
7701 2000-10-24 Gerd Moellmann <gerd@gnu.org>
7702
7703 * window.c (size_window): Prevent setting window's width or
7704 height to a negative value (esp. with XSETFASTINT).
7705
7706 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
7707 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
7708 (protect_malloc_state) [GC_MALLOC_CHECK &&
7709 GC_PROTECT_MALLOC_STATE]: New function.
7710 (PROTECT_MALLOC_STATE): New macro.
7711 (__malloc_initialize, morecore, _malloc_internal)
7712 (_free_internal) _realloc_internal): Use it to make _heapinfo
7713 read-only outside of gmalloc.
7714
7715 * keymap.c: Update copyright.
7716
7717 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
7718 a symbol.
7719
7720 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
7721
7722 * filelock.c (unlock_all_files): Use unlock_file to expand each
7723 buffer's file_truename before trying remove its lock file.
7724
7725 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
7726
7727 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
7728 or CRLF, decode EOLs.
7729
7730 2000-10-24 Kenichi Handa <handa@etl.go.jp>
7731
7732 * window.c (Fdisplay_buffer): Fix doc.
7733
7734 2000-10-23 Jason Rumney <jasonr@gnu.org>
7735
7736 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
7737 ASCII font of default fontset on Windows.
7738
7739 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
7740 xterm.c comment below).
7741
7742 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
7743
7744 2000-10-23 Gerd Moellmann <gerd@gnu.org>
7745
7746 * xterm.c (x_connection_closed): Reset handling_signal.
7747
7748 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
7749
7750 2000-10-23 Miles Bader <miles@gnu.org>
7751
7752 * window.c (window_scroll_pixel_based, window_scroll_line_based):
7753 Pass nil for FULLY argument to Fpos_visible_in_window_p to
7754 maintain old behavior.
7755 * minibuf.c (Fminibuffer_complete): Likewise.
7756
7757 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
7758
7759 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
7760 that when a font can't be exactly centered, it errs up rather than
7761 down.
7762
7763 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
7764
7765 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
7766
7767 2000-10-23 Andrew Choi <akochoi@i-cable.com>
7768
7769 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
7770
7771 * dispnew.c [macintosh]: Include macterm.h.
7772 (init_display) [macintosh]: Initialization for window system.
7773
7774 * emacs.c (main) [macintosh]: Call syms_of_textprop,
7775 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
7776 syms_of_search, x_term_init, and init_keyboard before calling
7777 init_window_once. Also, call syms_of_xmenu.
7778
7779 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
7780 default fontset to Monaco.
7781
7782 * frame.c [macintosh]: Include macterm.h. Remove declarations of
7783 NewMacWindow and DisposeMacWindow.
7784 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
7785 instead of calling NewMacWindow and setting fields of
7786 f->output_data.mac directly. Call init_frame_faces.
7787 (Fdelete_frame) [macintosh]: Remove unused code.
7788 (Fmodify_frame_parameters) [macintosh]: Call
7789 x_set_frame_parameters instead of mac_set_frame_parameters.
7790
7791 * frame.h [macintosh]: Define menu_bar_lines field in struct
7792 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
7793
7794 * keyboard.c [macintosh]: Include macterm.h.
7795 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
7796 and menu_bar_activate_event type events as for X and NT.
7797 (make_lispy_event) [macintosh]: Construct lisp events of type
7798 MENU_BAR_EVENT as for X and NT.
7799
7800 * sysdep.c [macintosh]: Remove declaration for sys_signal.
7801 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
7802 (sys_subshell) [macintosh]: Remove definition entirely.
7803 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
7804 Vwindow_system_version here. Remove initialization of
7805 Vx_bitmap_file_path.
7806 (read_input_waiting): Correct the number of parameters passed to
7807 read_socket_hook.
7808 Move all Macintosh functions to mac/mac.c.
7809
7810 * term.c [macintosh]: Include macterm.h.
7811
7812 * window.c [macintosh]: Include macterm.h.
7813
7814 * xdisp.c [macintosh]: Include macterm.h. Declare
7815 set_frame_menubar and pending_menu_activation.
7816 (echo_area_display) [macintosh]: Do not return if terminal frame
7817 is the selected frame.
7818 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
7819 Allow only the selected frame to set menu bar.
7820 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
7821 calling FRAME_EXTERNAL_MENU_BAR (f).
7822 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
7823
7824 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
7825 and check_x. Declare XCreateGC. Define x_create_gc and
7826 x_free_gc. Initialize font_sort_order.
7827 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
7828 but call x_list_fonts instead of w32_list_fonts.
7829 (Finternal_face_x_get_resource) [macintosh]: Do not call
7830 display_x_get_resource.
7831 (prepare_face_for_display) [macintosh]: Set xgcv.font.
7832 (realize_x_face) [macintosh]: Load the font if it is specified in
7833 ATTRS.
7834 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
7835
7836 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
7837
7838 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
7839 is nil: since we go to the end of submap anyway, we'd end up
7840 setting nil to nil.
7841 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
7842 doesn't obey autoload.
7843
7844 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
7845
7846 * msdos.c (dos_set_window_size): Update screen dimension variables.
7847
7848 2000-10-21 Jason Rumney <jasonr@gnu.org>
7849
7850 * w32term.c (w32_cache_char_metrics): Double check that font is
7851 really fixed pitch before trusting tmPitchAndFamily.
7852
7853 2000-10-21 Andrew Innes <andrewi@gnu.org>
7854
7855 * w32gui.h (w32_char_font_type): Move enum from w32term.c
7856
7857 * w32term.h: Extern decl for w32_cache_char_metrics.
7858
7859 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
7860
7861 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
7862 (w32_unload_font): Free per_char array if present.
7863
7864 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
7865 cached information in emulated XFontStruct to handle common cases
7866 quickly. Do not allocate XCharStruct for return.
7867 (w32_native_per_char_metric): New function.
7868 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
7869 allocating one.
7870 (x_produce_glyphs): Don't get an HDC. Change calls to
7871 w32_per_char_metric to match arg change above. Remove calls to
7872 free results.
7873 (w32_get_glyph_overhangs): Ditto.
7874 (w32_cache_char_metrics): New function.
7875
7876 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
7877 ($(BLD)/casefiddle.$(O)): Remove compile command.
7878 ($(BLD)/gmalloc.$(O)): Remove compile command.
7879 ($(BLD)/dispnew.obj):
7880 ($(BLD)/keyboard.obj):
7881 ($(BLD)/w32inevt.obj):
7882 ($(BLD)/w32bdf.obj):
7883 ($(BLD)/alloc.obj):
7884 ($(BLD)/buffer.obj):
7885 ($(BLD)/editfns.obj):
7886 ($(BLD)/emacs.obj):
7887 ($(BLD)/fileio.obj):
7888 ($(BLD)/fns.obj):
7889 ($(BLD)/indent.obj):
7890 ($(BLD)/insdel.obj):
7891 ($(BLD)/intervals.obj):
7892 ($(BLD)/minibuf.obj):
7893 ($(BLD)/print.obj):
7894 ($(BLD)/scroll.obj):
7895 ($(BLD)/sysdep.obj):
7896 ($(BLD)/textprop.obj):
7897 ($(BLD)/widget.obj):
7898 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
7899 ($(BLD)/term.obj): Add dependency on dispextern.h.
7900
7901 * makefile.nt ($(BLD)\dispnew.obj):
7902 ($(BLD)\keyboard.obj):
7903 ($(BLD)\w32inevt.obj):
7904 ($(BLD)\w32bdf.obj):
7905 ($(BLD)\alloc.obj):
7906 ($(BLD)\buffer.obj):
7907 ($(BLD)\editfns.obj):
7908 ($(BLD)\emacs.obj):
7909 ($(BLD)\fileio.obj):
7910 ($(BLD)\fns.obj):
7911 ($(BLD)\indent.obj):
7912 ($(BLD)\insdel.obj):
7913 ($(BLD)\intervals.obj):
7914 ($(BLD)\minibuf.obj):
7915 ($(BLD)\print.obj):
7916 ($(BLD)\scroll.obj):
7917 ($(BLD)\sysdep.obj):
7918 ($(BLD)\textprop.obj):
7919 ($(BLD)\widget.obj):
7920 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
7921 ($(BLD)\term.obj): Add dependency on dispextern.h
7922
7923 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
7924
7925 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
7926 with an additional argument of Qt.
7927
7928 2000-10-21 Miles Bader <miles@gnu.org>
7929
7930 * window.c (pos_fully_visible_in_window_p): New function.
7931 (Fpos_visible_in_window_p): Add FULLY argument.
7932 Use pos_fully_visible_in_window_p.
7933 (window_scroll_pixel_based, window_scroll_line_based): Update
7934 calls to Fpos_visible_in_window_p.
7935 * lisp.h (Fpos_visible_in_window_p): Update prototype
7936
7937 2000-10-20 Gerd Moellmann <gerd@gnu.org>
7938
7939 * alloc.c (toplevel): Conditionalize compilation of mem_*
7940 functions differently.
7941
7942 2000-10-20 Jason Rumney <jasonr@gnu.org>
7943
7944 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
7945 mem_init where it used to be. mem_z etc not defined otherwise.
7946
7947 2000-10-20 Gerd Moellmann <gerd@gnu.org>
7948
7949 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
7950 GC_MALLOC_CHECK.
7951 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
7952 structure definition and related variabled to the top of the file.
7953 Include this code when GC_MALLOC_CHECK is defined.
7954 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
7955 register/unregister allocated region.
7956 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
7957 which isn't allocated.
7958 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
7959 something which is already in use.
7960 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
7961 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
7962 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
7963 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
7964
7965 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
7966 _malloc_internal instead of malloc.
7967 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
7968 of free.
7969
7970 2000-10-20 Andrew Innes <andrewi@gnu.org>
7971
7972 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
7973 Windows.
7974 (my_strftime) <macro>: Don't use macro arg list when redefining as
7975 _strftime_copytm.
7976 (my_strftime) <function>: Supply 0 as ut argument.
7977
7978 2000-10-19 Jason Rumney <jasonr@altavista.net>
7979
7980 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
7981 including dispextern.h, as it stops faces from working.
7982
7983 * w32fns.c (Fx_create_frame): Don't bother calling
7984 face-set-after-frame-default since the caller does it for us
7985 anyway. Clean up calls to x_get_arg to be consistent with X.
7986
7987 * w32term.c (x_produce_glyphs): Handle
7988 unibyte_display_via_language_environment correctly.
7989 (w32_draw_box_rect): Fix the calculation of width and height.
7990
7991 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
7992 as it has stopped working.
7993 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
7994 menu-bar.
7995
7996 2000-10-19 Gerd Moellmann <gerd@gnu.org>
7997
7998 * eval.c (skip_debugger): Prevent a compiler warning.
7999 (Fcondition_case): Likewise.
8000 (Fbacktrace_frame): Use a null interactive spec.
8001
8002 2000-10-19 Kenichi Handa <handa@etl.go.jp>
8003
8004 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
8005
8006 2000-10-18 Gerd Moellmann <gerd@gnu.org>
8007
8008 * strftime.c: Sync with glibc, file version 1.78.
8009 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
8010 should no longer be used according to ISO 8601.
8011
8012 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
8013 no map for meta_prefix_char, don't try to use it as a keymap.
8014 Instead, if T_OK is non-zero, look up a default binding, if any,
8015 otherwise, if T_OK is zero, return nil.
8016
8017 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
8018 (x_to_xcolors, png_load): Use x_query_color.
8019
8020 * xterm.c (x_color_cells, x_query_colors, x_query_color):
8021 New functions.
8022 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
8023 which can be slow.
8024 (x_copy_color, x_alloc_lighter_color): Likewise.
8025
8026 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
8027 (x_query_color, x_query_colors): Add prototype.
8028
8029 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
8030 check_string_bytes only if not noninteractive, increase count to 50.
8031
8032 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
8033
8034 * insdel.c (adjust_markers_for_delete): Handle before-insertion
8035 markers correctly.
8036
8037 2000-10-17 Gerd Moellmann <gerd@gnu.org>
8038
8039 * alloc.c (pure_bytes_used): Renamed from pureptr.
8040 (ALIGN): New macro.
8041 (pure_alloc): New function.
8042 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
8043 Use it.
8044 (Fpurecopy): Use PURE_POINTER_P.
8045
8046 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
8047 PT has moved backward.
8048
8049 * xdisp.c (cursor_row_p): Take continued lines into account.
8050
8051 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
8052 string's size_byte.
8053 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
8054 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
8055 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
8056 string allocated.
8057
8058 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
8059 of selective display off while searching for the next line start.
8060
8061 2000-10-17 Kenichi Handa <handa@etl.go.jp>
8062
8063 * Makefile.in (term.o): Depend on dispextern.h.
8064
8065 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
8066
8067 * keymap.c (keymap_memberp): Ensure that nil is not a member.
8068
8069 2000-10-16 Gerd Moellmann <gerd@gnu.org>
8070
8071 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
8072 the iterator at the beginning, so that they can be set later on,
8073 for instance in reseat_at_next_visible_line_start, without being
8074 overwritten.
8075
8076 * xfns.c (pbm_format): Add :foreground and :background keywords.
8077 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
8078 (xbm_load): Recognize foreground and background color specifications.
8079
8080 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
8081
8082 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
8083
8084 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
8085
8086 * msdos.c (IT_set_face): Compare highlighted face with the default
8087 face, and invert colors if these faces' colors are identical.
8088 (Fmsdos_remember_default_colors): Don't swap foreground and
8089 background colors in initial_colors[].
8090 (IT_set_frame_parameters): Don't swap frame's foreground and
8091 background pixels. If ALIST includes "(reverse . t)", swap
8092 foreground-color and background-color properties in frame's
8093 param_alist. If the original frame's param_alist doesn't specify
8094 the colors, store unspecified-fg and unspecified-bg, reversed if
8095 required.
8096
8097 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
8098 the colors are unspecified and reversed, reverse fore- and back-
8099 ground in the returned value.
8100 (Fframe_parameter): Ditto.
8101
8102 2000-10-16 Gerd Moellmann <gerd@gnu.org>
8103
8104 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
8105 get_last_unchanged_at_beg_row.
8106 (find_first_unchanged_at_end_row): Renamed from
8107 get_first_unchanged_at_end_row.
8108 (find_first_unchanged_at_end_row): Convert assertions to
8109 unconditional tests which abort. When looking for a row in
8110 unchanged text, don't go further back than first_text_row.
8111
8112 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
8113 Don't add in the last line's height when deciding if the new
8114 position is below the scroll margin.
8115
8116 2000-10-16 Miles Bader <miles@gnu.org>
8117
8118 * editfns.c (Fconstrain_to_field): Check carefully for field
8119 boundaries if either OLD_POS or NEW_POS has a non-nil field
8120 property, even if they're the same.
8121
8122 2000-10-16 Kenichi Handa <handa@etl.go.jp>
8123
8124 * xterm.c (x_draw_box_rect): Fix the calculation of width and
8125 height for XFillRectangle.
8126
8127 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
8128
8129 * syntax.c (Fstring_to_syntax): New function extracted from
8130 Fmodify_syntax_entry.
8131 (Fmodify_syntax_entry): Use it and document the ! and | fences.
8132 (skip_chars, Fforward_comment): Remove unused variables.
8133 (syms_of_syntax): Add defsubr for string-to-syntax.
8134 (describe_syntax): Add code for comment and string fences.
8135
8136 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
8137
8138 * keymap.c (access_keymap): Add AUTOLOAD parameter.
8139 Do the meta->esc mapping. Call get_keyelt before returning.
8140 Start scanning from the second element (the first is always `keymap')
8141 to make it easier to detect when we reach a parent map.
8142 Handle the case of inheriting from a symbol whose function is a map.
8143 (Fkeymap_parent): Also handle the `inherit from symbol' case.
8144 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
8145 (get_keyelt, Flookup_key): Update call to access_keymap.
8146 Remove the meta->esc mappings.
8147 (define_as_prefix): Delete old disabled code.
8148 (menu_item_p): New function.
8149 (where_is_internal_1): Skip over the few remaining menu items.
8150 * lisp.h (access_keymap): Update prototype.
8151 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
8152 Update call to access_keymap.
8153 (follow_key, read_key_sequence): Update calls to access_keymap.
8154 Remove the meta->esc mappings.
8155
8156 2000-10-13 Gerd Moellmann <gerd@gnu.org>
8157
8158 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
8159 with additional argument.
8160
8161 * xdisp.c (cursor_row_p): New function.
8162 (try_cursor_movement, display_line): Use it.
8163
8164 * xdisp.c (append_space): Also save/restore iterator's current
8165 character and its length.
8166
8167 * xdisp.c (init_from_display_pos): Add an assertion.
8168 (handle_stop): Don't set iterator's add_overlay_start.
8169 (handle_invisible_prop): Likewise.
8170 (load_overlay_strings): If text under an overlay is invisible,
8171 take both before- and after-strings into account when the iterator
8172 is positioned either at the start or at the end of the overlay.
8173 (forward_to_next_line_start): Rewritten.
8174 (reseat_at_next_visible_line_start): Rewritten.
8175 (set_iterator_to_next): Add parameter RESEAT_P.
8176
8177 * dispextern.h (struct it): Remove member add_overlay_start.
8178 (set_iterator_to_next): Change prototype.
8179
8180 2000-10-13 Kenichi Handa <handa@etl.go.jp>
8181
8182 * coding.c (code_convert_region): Be sure to initialize
8183 coding->category_idx.
8184 (decode_coding_string): Set coding->src_multibyte and
8185 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
8186 (encode_coding_string): Set coding->src_multibyte and
8187 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
8188
8189 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
8190
8191 * xfns.c (Fx_create_frame): Don't bother calling
8192 face-set-after-frame-default since the caller does it for us anyway.
8193
8194 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
8195
8196 * window.c (coordinates_in_window): Fix detection of vertical line
8197 on character terminals.
8198
8199 2000-10-12 Gerd Moellmann <gerd@gnu.org>
8200
8201 * editfns.c (save_excursion_save): Additionally record the
8202 selected window.
8203 (save_excursion_restore): If buffer was visible in a window, and a
8204 different window was selected, and the old selected window is
8205 still live, restore point in that window.
8206
8207 2000-10-12 Kenichi Handa <handa@etl.go.jp>
8208
8209 * xterm.c (x_produce_glyphs): Handle
8210 unibyte_display_via_language_environment correctly.
8211
8212 * regex.c (regex_compile): Change the way of handling a range from
8213 unibyte char to multibyte char.
8214
8215 * syntax.c (skip_chars): Change the way of handling a range from
8216 unibyte char to multibyte char.
8217
8218 * process.c (read_process_output): Cancel previous change.
8219
8220 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
8221
8222 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
8223
8224 * charset.c (Ffind_charset_string): Doc fix.
8225 (Ffind_charset_region): Doc fix.
8226
8227 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
8228
8229 * process.c (read_process_output): Fix previous change. Adjust
8230 multibyteness of text to insert in a buffer by
8231 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
8232
8233 2000-10-10 Andreas Schwab <schwab@suse.de>
8234
8235 * alloc.c (mark_object): Remove all workarounds installed on
8236 1993-08-08.
8237
8238 2000-10-10 Kenichi Handa <handa@etl.go.jp>
8239
8240 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
8241 (base64_encode_1): Make it work for a text of multibyte form.
8242 (Fbase64_decode_region): Allocate sufficient memory for multibyte
8243 case. Don't call str_to_multibyte because base64_decode_1
8244 produces correct multibyte form for eight-bit codes.
8245 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
8246 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
8247 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
8248 codes.
8249
8250 * charset.h (CHAR_STRING): Optimized for single byte characters.
8251
8252 2000-10-09 Andreas Schwab <schwab@suse.de>
8253
8254 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
8255 -1 after socket is closed, to fall through to error processing.
8256
8257 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
8258
8259 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
8260 variables. If ALIST includes foreground-color or
8261 background-color, change also the colors of the default face for
8262 this frame.
8263
8264 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
8265
8266 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
8267 them extern (they are defined on xfaces.c).
8268 (syms_of_msdos): Don't intern and don't staticpro
8269 Qbackground_color and Qforeground_color.
8270
8271 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
8272
8273 * frame.c (Fframe_parameter): For non-windowed frames, if
8274 f->param_alist says foreground or background color is unspecified,
8275 call tty_color_name to return the color name computed from the
8276 frame's current colors.
8277
8278 2000-10-06 Dave Love <fx@gnu.org>
8279
8280 * terminfo.c (ospeed): Don't declare.
8281
8282 * sysdep.c: Don't include string.h.
8283 (h_errno): Declare conditional also on TRY_AGAIN.
8284
8285 * charset.c (Ffind_charset_string): Doc fix.
8286
8287 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
8288 (Fbase64_decode_region, Fbase64_decode_string): More explicit
8289 error messages.
8290
8291 2000-10-05 Dave Love <fx@gnu.org>
8292
8293 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
8294 position like menu-bar.
8295
8296 2000-10-05 Gerd Moellmann <gerd@gnu.org>
8297
8298 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
8299
8300 * xdisp.c (handle_single_display_prop): Use safe_call1.
8301 (safe_call): Renamed from call_function.
8302 (safe_call1): New function.
8303 (handle_fontified_prop): Use safe_call1 instead of call1.
8304 (safe_eval): Renamed from eval_form.
8305 (safe_eval_handler): Renamed from eval_handler.
8306 (handle_single_display_prop, display_mode_element): Use safe_eval
8307 instead of eval_form.
8308
8309 * xfaces.c (merge_face_heights): Use safe_call instead of
8310 call_function.
8311
8312 * keyboard.c (show_help_echo): Use safe_call instead of
8313 call_function; use safe_eval instead of eval_form.
8314
8315 * lisp.h (safe_call): Renamed from call_function.
8316 (safe_eval): Renamed from eval_form.
8317 (safe_call1): Add prototype.
8318
8319 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
8320
8321 * xfns.c (image_ascent): Rearrange ascent calculation for the
8322 has-a-font case.
8323
8324 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
8325
8326 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
8327 (where_is_internal_1): Don't bother ignoring menu-items any more.
8328
8329 2000-10-04 Gerd Moellmann <gerd@gnu.org>
8330
8331 * keyboard.c (update_menu_bindings): New variable.
8332 (parse_menu_item): Use AREF. If update_menu_bindings
8333 is 0, don't update menu bindings.
8334 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
8335
8336 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
8337
8338 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
8339 to `mark_object'.
8340
8341 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
8342
8343 * syntax.c (forw_comment): Match nestedness of ender/starter.
8344 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
8345 (prev_char_comstart_first): Remove.
8346 (back_comment): Check two-char comment markers more carefully
8347 to better handle overlapping cases like *//* or /* */* */ ...
8348 Match nestedness of ender/starter.
8349
8350 2000-10-02 Dave Love <fx@gnu.org>
8351
8352 * config.in (HAVE_GAI_STRERROR): Add undef.
8353
8354 * process.c (Fopen_network_stream): Use it.
8355
8356 * m/alpha.h (NO_REMAP): Don't define.
8357
8358 2000-10-02 Gerd Moellmann <gerd@gnu.org>
8359
8360 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
8361 return with a string converted to an integer or vice versa when
8362 Vmocklisp_arguments is t.
8363 (Fsignal): Likewise. The function can return for `quit'.
8364 (struct gcpro): Declare member `var' to point to a volatile
8365 Lisp_Object.
8366
8367 * eval.c (error): Prevent compiler warning.
8368
8369 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
8370
8371 * keymap.c (keymap_memberp): New function.
8372 (Fset_keymap_parent): Use it.
8373 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
8374 Use keymap_memberp to avoid creating cycles.
8375 (access_keymap): Use KEYMAPP.
8376
8377 2000-09-30 Gerd Moellmann <gerd@gnu.org>
8378
8379 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
8380 gai_strerror. Make sure xerrno is set if connect fails. Improve
8381 error recovery.
8382
8383 2000-09-29 Jason Rumney <jasonr@gnu.org>
8384
8385 * w32term.c (w32_char_font_type, w32_encode_char)
8386 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
8387 (w32_bdf_per_char_metric): New function.
8388 (w32_per_char_metric): Use it.
8389 (x_draw_glyph_string_background): Always draw background for BDF
8390 glyphs.
8391
8392 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
8393 GDI object which is a scarce resource.
8394
8395 * w32bdf.c (search_file_line): Fix skipping of whitespace.
8396 (get_quoted_string): Fix limit on memchr search.
8397 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
8398 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
8399 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
8400 (get_cached_font_char, cache_char_offset): Use macro
8401 BDF_CODEPOINT_RANGE_COVER_P.
8402 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
8403 (clear_cached_bitmap_slots): New function.
8404 (GET_HEX_VALUE): G-Z, g-z are not hex.
8405 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
8406 (get_bitmap_with_cache): Use new cache implementation.
8407 (create_offscreen_bitmap): New function.
8408 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
8409
8410 * w32term.c (x_produce_glyphs): If the distance from the current
8411 position to the next tab stop is less than a canonical character
8412 width, use the tab stop after that.
8413 (x_draw_glyphs): Handle case START and END are out of bounds more
8414 carefully.
8415 (x_clear_mouse_face): Block/unblock input.
8416 (x_display_and_set_cursor): Don't show a hollow box cursor for
8417 buffers whose cursor_type is nil.
8418
8419 2000-09-29 Gerd Moellmann <gerd@gnu.org>
8420
8421 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
8422
8423 * dispextern.h (updating_frame): Declare extern.
8424
8425 2000-09-29 Andreas Schwab <schwab@suse.de>
8426
8427 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
8428
8429 2000-09-29 Gerd Moellmann <gerd@gnu.org>
8430
8431 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
8432 use its function definition.
8433 (tool_bar_items): Likewise.
8434
8435 * lisp.h (fatal): Declare NO_RETURN.
8436
8437 2000-09-29 Kenichi Handa <handa@etl.go.jp>
8438
8439 * keymap.c: Remove the line "#undef NULL".
8440
8441 2000-09-28 Gerd Moellmann <gerd@gnu.org>
8442
8443 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
8444
8445 2000-09-28 Dave Love <fx@gnu.org>
8446
8447 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
8448
8449 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
8450
8451 * .gdbinit (xreload): Note its need on GNU/Linux.
8452
8453 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
8454 r_alloc, r_alloc_free.
8455
8456 2000-09-28 Kenichi Handa <handa@etl.go.jp>
8457
8458 * syntax.c (skip_chars): Handle negation correctly.
8459
8460 2000-09-27 Gerd Moellmann <gerd@gnu.org>
8461
8462 * xfaces.c (realize_default_face): Call set_lface_from_font_name
8463 with non-zero FORCE_P argument.
8464
8465 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
8466 Add assertions.
8467
8468 * xdisp.c (window_box_height): Add an assertion.
8469
8470 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
8471 tool-bar than is available.
8472 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
8473
8474 2000-09-27 Dave Love <fx@gnu.org>
8475
8476 * s/irix6-5.h: Now works 64-bit. Tidied.
8477
8478 2000-09-26 Gerd Moellmann <gerd@gnu.org>
8479
8480 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
8481 instead of BITS_PER_INT.
8482 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
8483 EMACS_UINT, respectively.
8484 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
8485
8486 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
8487
8488 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
8489
8490 * window.c (freeze_window_starts): Construct last argument for
8491 foreach_window differently.
8492
8493 * xfns.c (x_decode_color): Don't return a Lisp_Object.
8494
8495 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
8496 EMACS_UINT instead of `int' and `unsigned int'.
8497 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
8498
8499 * frame.h (struct frame): Make the `nothing' member of union
8500 output_data an EMACS_INT.
8501
8502 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
8503 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
8504 size in the sdata structure.
8505 (SDATA_NBYTES, SDATA_DATA): New macros.
8506 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
8507 differently for the different layout of the sdata structure.
8508 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
8509 in sdata.
8510 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
8511 Check that size recorded in the string size and size recorded in
8512 the sdata structure agree.
8513
8514 2000-09-25 Dave Love <fx@gnu.org>
8515
8516 * buffer.c: Include stdio.h.
8517
8518 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
8519
8520 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
8521
8522 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
8523 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
8524 (__malloc_extra_blocks): Declare as __malloc_size_t.
8525
8526 2000-09-25 Gerd Moellmann <gerd@gnu.org>
8527
8528 * alloc.c (mark_image): Use GC_NILP instead of NILP.
8529
8530 * keyboard.c (show_help_echo): Set help_echo_showing_p.
8531 (read_char): If help-echo is showing, preserve the echo area
8532 when redisplaying.
8533
8534 * xdisp.c (help_echo_showing_p): New variable.
8535 (set_message): Reset it to 0.
8536 (init_xdisp): Initialize help_echo_showing_p.
8537
8538 * dispextern.h (help_echo_showing_p): Declare extern.
8539
8540 * config.in: Fix typo in __GNUC_MINOR__.
8541
8542 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
8543
8544 * s/freebsd.h (POSIX_SIGNALS): Define.
8545
8546 * xterm.c (x_clear_mouse_face): Block/unblock input.
8547
8548 2000-09-24 Dave Love <fx@gnu.org>
8549
8550 * fns.c (base64_encode_1): Fix last change.
8551
8552 2000-09-22 Gerd Moellmann <gerd@gnu.org>
8553
8554 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
8555
8556 * xdisp.c (try_window_reusing_current_matrix): More fixes
8557 for the case window has a header-line.
8558
8559 2000-09-22 Dave Love <fx@gnu.org>
8560
8561 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
8562 a doc string.
8563
8564 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
8565
8566 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
8567
8568 2000-09-21 Gerd Moellmann <gerd@gnu.org>
8569
8570 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
8571 for GCC >= 2.5.
8572
8573 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
8574 Declare NO_RETURN.
8575
8576 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
8577 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
8578 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
8579 warnings.
8580
8581 * marker.c (byte_char_debug_check): Return void.
8582
8583 * xfns.c (Fx_create_frame): Set default frame parameter value
8584 for tool-bar-lines to 1.
8585
8586 * dispnew.c (scrolling_window): Compare y-positions of rows
8587 equal at the start. Some simplification.
8588
8589 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
8590 reused rows' y-position in the case window has a header-line, and
8591 new window start is greater than old window start.
8592
8593 * process.c (process_sent_to): New variable.
8594 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
8595 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
8596 Declare more parameters volatile.
8597
8598 * lread.c (Vrecursive_load_depth_limit): New variable.
8599 (Fload): Check recursive loads whose recursion depth exceeds
8600 Vrecursive_load_depth_limit.
8601 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
8602
8603 2000-09-20 Gerd Moellmann <gerd@gnu.org>
8604
8605 * fileio.c (Fread_file_name): Doc fix.
8606
8607 * editfns.c (Fmessage_or_box): Doc fix.
8608
8609 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
8610
8611 * xfns.c (xbm_scan): Allow C-style comments.
8612
8613 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
8614 symbols are specified, add color translations to the cache.
8615 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
8616 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
8617 xpm_cache_color.
8618 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
8619 structures to xpm_init_color_cache.
8620
8621 2000-09-19 Gerd Moellmann <gerd@gnu.org>
8622
8623 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
8624
8625 2000-09-19 Andrew Innes <andrewi@gnu.org>
8626
8627 * makefile.nt (bootstrap-emacs): Don't change directory.
8628
8629 2000-09-19 Kenichi Handa <handa@etl.go.jp>
8630
8631 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
8632
8633 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
8634 If output buffer is too small, signal an appropriated error.
8635
8636 2000-09-18 Dave Love <fx@gnu.org>
8637
8638 * keyboard.c (menu_bar_items, tool_bar_items)
8639 (current_active_maps): Remove redundant get_local_map call.
8640
8641 2000-09-18 Gerd Moellmann <gerd@gnu.org>
8642
8643 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
8644 cursor for buffers whose cursor_type is nil.
8645
8646 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
8647 a feature to implement that is already implemented.
8648 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
8649 warnings.
8650
8651 * xfns.c (x_clear_image_1): New function.
8652 (x_clear_image): Use it.
8653 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
8654
8655 * dispnew.c (update_window): Move test for invisible lines
8656 at the top to update_window_line.
8657 (update_window_line): Handle invisible lines here.
8658
8659 * xfns.c (clear_image_cache): Clear current matrices of all
8660 frames sharing an image cache. Block input while freeing
8661 images. Fix timestamp comparison.
8662 (x_clear_image): Also free the mask.
8663
8664 * xfns.c (lookup_image): Block input while loading the image so
8665 that we won't get interrupted in a state where the image isn't yet
8666 set up completely.
8667 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
8668 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
8669 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
8670 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
8671
8672 2000-09-16 Gerd Moellmann <gerd@gnu.org>
8673
8674 * dispnew.c (update_window): Make sure to make desired rows
8675 current even if they are completely invisible at the top
8676 of a window.
8677
8678 2000-09-15 Gerd Moellmann <gerd@gnu.org>
8679
8680 * xfns.c (lookup_image): Build mask before applying an algorithm.
8681 Recognize algorithm `disabled'.
8682 (cross_disabled_images): New variable.
8683 (COLOR_INTENSITY): New macro.
8684 (x_detect_edges): Use COLOR_INTENSITY.
8685 (x_disable_image): New function.
8686 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
8687
8688 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
8689 disabled state, don't apply an image transformation algorithm if
8690 the user specified an image for the disabled state. Use
8691 `:algorithm disabled' for creating a disabled item's image if the
8692 user hasn't specified an image.
8693
8694 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
8695 allocation functions with the XPM lib.
8696 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
8697 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
8698 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
8699 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
8700 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
8701 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
8702 functions, if possible, because these handle color allocation
8703 failure more gracefully.
8704 (Fimage_mask_p): New function.
8705
8706 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
8707 (Qedge_detection, Qheuristic): New symbols.
8708 (syms_of_xfns): Initialize new symbols.
8709 (lookup_image): Handle `:mask X', `:algorithm emboss', and
8710 `algorithm (edge-detection ...)'.
8711 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
8712 (tiff_format, gif_format, gs_format): Add `:mask'.
8713 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
8714 (GIF_MASK, GS_MASK): New enumerators.
8715 (x_laplace_read_row, x_laplace_write_row): Functions removed.
8716 (emboss_matrix, laplace_matrix): New variables.
8717 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
8718 (x_edge_detection): New functions.
8719 (x_laplace): Rewritten in terms of x_detect_edges.
8720 (x_build_heuristic_mask): If image has a mask, free it.
8721
8722 2000-09-14 Andrew Innes <andrewi@gnu.org>
8723
8724 * makefile.w32-in: Revert to Unix line endings.
8725
8726 2000-09-14 Andrew Innes <andrewi@gnu.org>
8727
8728 * makefile.w32-in: Standardize indentation somewhat.
8729 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
8730 cater for differences between shells.
8731
8732 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
8733
8734 2000-09-14 Gerd Moellmann <gerd@gnu.org>
8735
8736 * xterm.c (x_produce_glyphs): If the distance from the current
8737 position to the next tab stop is less than a canonical character
8738 width, use the tab stop after that.
8739
8740 2000-09-14 Dave Love <fx@gnu.org>
8741
8742 * buffer.c (alloc_buffer_text): Fix xmalloc call.
8743
8744 2000-09-14 Gerd Moellmann <gerd@gnu.org>
8745
8746 * xdisp.c (handle_fontified_prop): While running fontification
8747 functions, bind `fontification-functions' and
8748 `after-change-functions' to nil.
8749
8750 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
8751 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
8752
8753 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
8754
8755 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
8756 USE_MMAP_FOR_BUFFERS.
8757
8758 * insdel.c (make_gap): Use enlarge_buffer_text.
8759
8760 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
8761 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
8762 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
8763 from former r_alloc_* functions in ralloc.c.
8764 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
8765 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
8766 (mmap_init) [REL_ALLOC_MMAP]: New function.
8767 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
8768 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
8769 BUFFER_FREE.
8770
8771 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
8772 (enlarge_buffer_text): Add prototype.
8773
8774 * ralloc.c: Remove everything having to do with the use of mmap.
8775
8776 2000-09-13 Gerd Moellmann <gerd@gnu.org>
8777
8778 * sound.c (Fplay_sound): Doc fix.
8779
8780 * keyboard.c: Avoid some more compiler warnings.
8781 (parse_tool_bar_item): Ignore cached key bindings.
8782
8783 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
8784 and allocation of Lisp data.
8785
8786 2000-09-12 Gerd Moellmann <gerd@gnu.org>
8787
8788 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
8789 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
8790 defaults first.
8791
8792 * lread.c (Fload): Put code checking for recursive loads in #if 0.
8793
8794 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
8795
8796 * ccl.c: Comment fixed.
8797 (MAX_MAP_SET_LEVEL): Increased to 30.
8798 (PUSH_MAPPING_STACK): Enclose with do-while block.
8799 (POP_MAPPING_STACK): Likewise.
8800 (stack_idx_of_map_multiple): New variable.
8801 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
8802 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
8803 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
8804 (ccl_driver) <CCL_MapSingle>: Likewise.
8805 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
8806 with the case where looking up process reaches to the end of
8807 map-set, and call CCL programs as the above change.
8808
8809 2000-09-11 Gerd Moellmann <gerd@gnu.org>
8810
8811 * xfns.c (png_load, jpeg_load): Declare some variables volatile
8812 that might be clobbered by longjmp.
8813 (check_x_display_info, x_decode_color, create_frame_xic)
8814 (Fx_display_backing_store, Fx_display_visual_class)
8815 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
8816
8817 * lread.c (init_lread): Set Vloads_in_progress to nil.
8818 (Fload): Show list of recursively loaded files, when signaling an
8819 error.
8820
8821 * lread.c (Vloads_in_progress): New variable.
8822 (record_load_unwind): New function.
8823 (Fload): Check for recursive loads.
8824 (syms_of_lread): Initialize Vloads_in_progress.
8825 (read_integer, read1): Avoid some compiler warnings.
8826
8827 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
8828 compiler warnings.
8829
8830 2000-09-11 Miles Bader <miles@gnu.org>
8831
8832 * editfns.c (Fbuffer_string): Doc fix.
8833
8834 2000-09-10 Gerd Moellmann <gerd@gnu.org>
8835
8836 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
8837
8838 2000-09-09 Ken Raeburn <raeburn@gnu.org>
8839
8840 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
8841 whether to include other header files.
8842
8843 2000-09-09 Gerd Moellmann <gerd@gnu.org>
8844
8845 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
8846 by Fmemq as a boolean.
8847
8848 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
8849
8850 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
8851
8852 2000-09-08 Gerd Moellmann <gerd@gnu.org>
8853
8854 * ralloc.c (mmap_fd): Remove initializer which can make it
8855 read-only in a dumped Emacs.
8856 (mmap_fd_1): New variable.
8857 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
8858 restore it from there.
8859 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
8860 unconditionally so that mmap_fd can be initialized there.
8861 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
8862 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
8863 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
8864
8865 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
8866
8867 * xdisp.c (dump_glyph_row): Fix printf format string.
8868 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
8869
8870 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
8871
8872 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
8873 inheritance.
8874
8875 * xdisp.c (try_window_id): When trying to locate cursor in
8876 unchanged rows at the top, handle the case that we can't find it.
8877
8878 * xterm.c (x_draw_glyphs): Handle case START and END are out
8879 of bounds more carefully.
8880
8881 2000-09-08 Dave Love <fx@gnu.org>
8882
8883 * s/sol2.h (REL_ALLOC_MMAP): Define.
8884 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
8885
8886 * ralloc.c: Don't include string.h (redundant).
8887 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
8888 [!MAP_ANON]: Include fcntl.h.
8889 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
8890 (r_alloc, r_re_alloc, r_alloc_free)
8891 (mmap_enlarge, mmap_set_vars): Use it.
8892 (r_alloc_init_fd): New function.
8893 (__morecore) [SYSTEM_MALLOC]: Don't declare.
8894 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
8895 malloc type.
8896
8897 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
8898 Remove vm-limit.o.
8899
8900 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
8901 change to __NetBSD__.
8902
8903 2000-09-08 Kenichi Handa <handa@etl.go.jp>
8904
8905 * search.c (compile_pattern): Check the multibyteness of cached
8906 string and PATTERN.
8907
8908 2000-09-08 Miles Bader <miles@gnu.org>
8909
8910 * xfaces.c (default_face_vector): Function removed.
8911 (Finternal_merge_in_global_face): Restore old global/local
8912 attribute override order. Use inline loop instead of calling
8913 default_face_vector.
8914
8915 2000-09-07 Gerd Moellmann <gerd@gnu.org>
8916
8917 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
8918 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
8919 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
8920 where necessary, in case POINTER_TYPE is `void'.
8921
8922 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
8923
8924 * frame.c (make_terminal_frame): Initialize frame foreground and
8925 background colors to unspecified, for the initial instance of an
8926 MSDOS frame.
8927
8928 2000-09-07 Gerd Moellmann <gerd@gnu.org>
8929
8930 * ralloc.c (mmap_find): Fix overlap computation.
8931 (mmap_enlarge): Compute nbytes before trying to find an
8932 overlapping region.
8933
8934 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
8935 instead of `!='.
8936
8937 * lread.c (syms_of_lread): Change value of regexp
8938 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
8939
8940 * xmenu.c (xdialog_show): When looking up the selection in
8941 menu_items, take `quote' boundaries into account; this corresponds
8942 to a nil ITEM in x-popup-dialog.
8943
8944 2000-09-07 Kenichi Handa <handa@etl.go.jp>
8945
8946 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
8947 not 0x81.
8948 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
8949
8950 * coding.c (encode_coding_sjis_big5): Use translation table for
8951 encoding, not decoding. Fix the handling of latin-jisx0201.
8952 Check for the charset katakana-jisx0201 too.
8953 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
8954 (detect_coding_sjis): Check the byte sequence more rigidly.
8955
8956 2000-09-07 Gerd Moellmann <gerd@gnu.org>
8957
8958 * xfaces.c (Vparam_value_alist): New variable.
8959 (syms_of_xfaces): Initialize it.
8960 (Finternal_set_lisp_face_attribute): Avoid more consing.
8961
8962 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
8963 specially.
8964 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
8965 (Qbackground_mode): New variable.
8966 (syms_of_frame_1): Initialize Qbackground_mode.
8967
8968 * lisp.h (Qdisplay): Declare extern.
8969
8970 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
8971 change face on all frames, and change the default for new frames.
8972
8973 2000-09-07 Dave Love <fx@gnu.org>
8974
8975 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
8976
8977 2000-09-07 Kenichi Handa <handa@etl.go.jp>
8978
8979 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
8980
8981 * charset.c: Include composite.h
8982 (lisp_string_width): New function.
8983 (Fstring_width): Call lisp_string_width instead of strwidth.
8984
8985 * Makefile.in (charset.o): Depends on composite.h.
8986
8987 * process.c (read_process_output): Before inserting the decoded
8988 text in the buffer, adjust the multibyteness.
8989
8990 2000-09-06 Gerd Moellmann <gerd@gnu.org>
8991
8992 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
8993 buffer's text buffer is null, map new memory.
8994
8995 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
8996 POINTER_TYPE and size_t.
8997 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
8998 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
8999 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
9000 [REL_ALLOC_MMAP]: New macros.
9001 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
9002 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
9003 [REL_ALLOC_MMAP]: New functions.
9004
9005 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
9006 before and after unexec.
9007
9008 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
9009 text buffers if necessary.
9010
9011 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
9012 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
9013 in prototypes.
9014
9015 * config.in (HAVE_MMAP): Add #undef.
9016
9017 2000-09-05 Gerd Moellmann <gerd@gnu.org>
9018
9019 * frame.c (Qdisplay_type): New variable.
9020 (syms_of_frame_1): Initialize it.
9021 (Fframe_parameter): New function that avoids consing.
9022 (syms_of_frame): Defsubr it.
9023
9024 * buffer.c (Fother_buffer): Consider buffers as invisible when
9025 they are displayed in a window on an invisible frame.
9026
9027 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
9028 get-largest-window always return nil.
9029
9030 2000-09-04 Gerd Moellmann <gerd@gnu.org>
9031
9032 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
9033 variable; recognize Emacs 19 elc files.
9034
9035 2000-09-04 Miles Bader <miles@gnu.org>
9036
9037 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
9038 before initially popping up the menu, so the menu doesn't flash
9039 when the face settings are significantly different from the defaults.
9040
9041 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
9042
9043 * regex.c (WIDE_CHAR_SUPPORT): New macro.
9044 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
9045 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
9046 (BIT_UNIBYTE): Remove.
9047 (re_match_2_internal): Delete corresponding code and streamline the
9048 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
9049 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
9050 (re_wctype_t): New type.
9051 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
9052 (regex_compile): Use them and fix handling of overly long char classes.
9053
9054 2000-09-03 Andrew Innes <andrewi@gnu.org>
9055
9056 * makefile.w32-in: Change to DOS line endings.
9057
9058 * s/ms-w32.h (ORDINARY_LINK): New define.
9059
9060 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
9061 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
9062
9063 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
9064 (distclean): Delete them here instead.
9065
9066 * w32proc.c (compare_env): Convert to uppercase for comparison,
9067 not lowercase, to match how the native Windows shell works.
9068
9069 2000-09-03 Jason Rumney <jasonr@gnu.org>
9070
9071 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
9072 CVS changes the line-ends when checking in/out on DOS/Windows.
9073
9074 * makefile.nt (emacs): Do not change directory to run temacs, as
9075 the load-path is set relative to current directory.
9076
9077 2000-09-03 Miles Bader <miles@gnu.org>
9078
9079 * xterm.c (x_alloc_lighter_color_for_widget): New function.
9080
9081 2000-09-02 Gerd Moellmann <gerd@gnu.org>
9082
9083 * xdisp.c (redisplay_mode_lines): New function.
9084 (display_mode_lines): Return number of mode lines displayed.
9085 (echo_area_display): Use redisplay_mode_lines to draw garbaged
9086 mode lines. Don't temporarily bind redisplay-dont-pause to t.
9087
9088 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
9089 string.h and strings.h.
9090 (index) [HAVE_INDEX]: Add prototype.
9091
9092 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
9093 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
9094
9095 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
9096 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
9097
9098 2000-09-01 Gerd Moellmann <gerd@gnu.org>
9099
9100 * lread.c (read1): Accept `?' as symbol constituent, for
9101 compatiblity with XEmacs.
9102
9103 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
9104
9105 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
9106 (struct re_pattern_buffer): Remove newline_anchor.
9107 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
9108 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
9109 (re_max_failures, fail_stack): Use size_t rather than unsigned.
9110 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
9111 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
9112 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
9113 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
9114 Get rid of references to newline_anchor.
9115 (regcomp): Allocate and precompute a fastmap.
9116
9117 2000-08-31 Gerd Moellmann <gerd@gnu.org>
9118
9119 * lread.c (openp): GCPRO local variable `filename'.
9120
9121 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
9122
9123 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
9124
9125 * regex.c: Merge some changes from GNU libc. Add prototypes.
9126 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
9127 Use memcmp and memcpy instead of bcopy and bcmp.
9128 (init_syntax_once): Use ISALNUM.
9129 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
9130 (REG_UNSET_VALUE): Remove. Use NULL instead.
9131 (REG_UNSET, re_match_2_internal): Use NULL.
9132 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
9133 New macros.
9134 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
9135 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
9136 (regex_compile): In handle_interval, return an error rather than try to
9137 unfetch the interval if we can't find the closing brace.
9138 Obey the RE_NO_GNU_OPS syntax bit.
9139 (TOLOWER): New macro.
9140 (regcomp): Use it.
9141 (regexec): Allocate regs.start and regs.end as one block.
9142
9143 2000-08-30 Gerd Moellmann <gerd@gnu.org>
9144
9145 * xdisp.c (echo_area_display): Check display_completed instead
9146 of calling detect_input_pending.
9147
9148 * dispnew.c (update_frame): Only set display_completed here; move
9149 the update_begin and update_end calls here from update_frame_1.
9150 (update_frame_1): Don't set display_completed here, don't call
9151 update_begin/update_end.
9152
9153 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
9154 instead of store_frame_param.
9155
9156 2000-08-29 Gerd Moellmann <gerd@gnu.org>
9157
9158 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
9159 desired window matrix hasn't been displayed, use the current row
9160 instead. Make sure that only those frame rows are updated for
9161 which there exists a corresponding enabled desired row.
9162
9163 2000-08-29 Miles Bader <miles@gnu.org>
9164
9165 * xfaces.c (default_face_vector): New function.
9166 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
9167
9168 2000-08-29 Gerd Moellmann <gerd@gnu.org>
9169
9170 * lread.c (openp): Prevent temporary string passed to
9171 Ffile_readable_p from being garbage collected.
9172
9173 2000-08-28 Dave Love <fx@gnu.org>
9174
9175 * keymap.c (store_in_keymap): Add `static' to declaration.
9176
9177 2000-08-28 Gerd Moellmann <gerd@gnu.org>
9178
9179 * emacs.c, callint.c, doc.c, editfns.c
9180 (toplevel) [HAVE_STRING_H]: Include string.h.
9181 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
9182 (index): Remove prototypes which might conflict with non-standard
9183 definitions of index/strchr.
9184
9185 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
9186 (rindex): Define only if !HAVE_RINDEX.
9187
9188 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
9189
9190 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
9191
9192 2000-08-28 Miles Bader <miles@gnu.org>
9193
9194 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
9195 made inconsistent by a font-related attribute in FROM.
9196 (merge_face_inheritance): Add function comment.
9197
9198 2000-08-28 Kenichi Handa <handa@etl.go.jp>
9199
9200 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
9201 the 4th arg (PREV_EVENT) Qt to suppress input method.
9202
9203 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
9204
9205 * regex.c: Indent cpp directives and remove parens after `defined'.
9206 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
9207 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
9208 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
9209 (re_compile_pattern): Use size_t for length.
9210 (init_syntax_once): Move to a better place.
9211 * regex.h: Merge changes from GNU libc. Indent cpp directives.
9212 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
9213
9214 * syntax.c (back_comment): Detect cases where a comment-starter is
9215 actually inside another comment as in: /* a // b */ c // d \n.
9216 Make it clear that `comstart_pos' is unused for nested comments.
9217
9218 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
9219 (KEYMAPP): New macro.
9220 (Fkeymap_parent, Fset_keymap_parent): Use it.
9221 (fix_submap_inheritance): Mark it static.
9222 (define_as_prefix, describe_buffer_bindings, describe_command)
9223 (describe_translation, describe_map): Complete prototypes.
9224
9225 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
9226
9227 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
9228 to better match the key-lookup behavior.
9229
9230 2000-08-27 Gerd Moellmann <gerd@gnu.org>
9231
9232 * xfaces.c (lface_fully_specified_p): Handle :inherit.
9233 (Finternal_set_lisp_face_attribute): Fix typo in error message.
9234
9235 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
9236
9237 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
9238 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
9239 (xterm.o): Depend on coding.h
9240
9241 2000-08-26 Kenichi Handa <handa@etl.go.jp>
9242
9243 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
9244 the corresponding '#endif'.
9245
9246 2000-08-26 Miles Bader <miles@gnu.org>
9247
9248 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
9249 * xfaces.c (QCinherit): New variable.
9250 (syms_of_xfaces): Initialize it.
9251 (LFACE_INHERIT): New macro.
9252 (Finternal_get_lisp_face_attribute)
9253 (merge_face_vector_with_property)
9254 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
9255 (check_lface_attrs): Allow new types of face height. Check
9256 inherit attribute.
9257 (CYCLE_CHECK): New macro.
9258 (merge_face_inheritance): New function.
9259 (merge_face_vectors): Merge inherited faces too. Add F and
9260 CYCLE_CHECK arguments.
9261 (merge_face_vector_with_property, Finternal_merge_in_global_face)
9262 (lookup_named_face, lookup_derived_face, realize_named_face)
9263 (face_at_string_position, face_at_buffer_position): Supply
9264 new F and CYCLE_CHECK arguments to merge_face_vectors.
9265 (merge_face_heights): New function.
9266 (merge_face_vectors, merge_face_vector_with_property)
9267 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
9268 handle relative face heights.
9269 (lface_same_font_attributes_p): Compare heights using EQ.
9270
9271 2000-08-26 Kenichi Handa <handa@etl.go.jp>
9272
9273 * charset.c (char_to_string): Check the character validity.
9274 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
9275
9276 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
9277
9278 * regex.c (PUSH_FAILURE_COUNT): New macro.
9279 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
9280 Handle popping of a register's or a counter's data.
9281 (POP_FAILURE_POINT): Use the new name.
9282 (re_match_2_internal): Push counter data on the stack for succeed_n,
9283 jump_n and set_number_at and remove misleading dead code in succeed_n.
9284
9285 2000-08-25 Gerd Moellmann <gerd@gnu.org>
9286
9287 * xdisp.c (redisplay_internal): If considering all windows on all
9288 frames, update the display for each frame as soon as possible,
9289 instead of first building all desired matrices for all frames, and
9290 then updating them all.
9291 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
9292
9293 2000-08-24 Gerd Moellmann <gerd@gnu.org>
9294
9295 * bytecode.c (mark_byte_stack): Add a comment.
9296
9297 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
9298 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
9299 a graphical frame.
9300
9301 2000-08-24 Kenichi Handa <handa@etl.go.jp>
9302
9303 * minibuf.c (do_completion): Always use compare-string, not
9304 string-equal because the latter doesn't pay attention to
9305 multibyteness of strings.
9306
9307 * process.c (create_process): Don't setup raw-text coding here.
9308 (Fopen_network_stream): Don't set coding->src_multibyte and
9309 coding->dst_multibyte here.
9310 (read_process_output): For process filter, return unibyte string
9311 if default-enable-multibyte-characters is nil.
9312 (send_process): If OBJECT is multibyte text, be sure to encoded it
9313 by the specified coding system for the process. Otherwise, setup
9314 raw-text coding.
9315 (init_process): Don't initialize default-process-coding-system here.
9316
9317 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
9318
9319 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
9320 <scroll-down-aggressively>: Likewise.
9321
9322 2000-08-23 Kenichi Handa <handa@etl.go.jp>
9323
9324 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
9325 zero. Set coding->produced_char correctly.
9326
9327 2000-08-22 Andrew Innes <andrewi@gnu.org>
9328
9329 * makefile.w32-in: New file.
9330
9331 * unexw32.c (unexec): Ignore old_name, and use the actual location
9332 of the current executable instead. Base new_name on this.
9333
9334 * w32proc.c (create_child): Remove reference to security
9335 descriptor, which isn't needed and doesn't compile with mingw32.
9336
9337 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9338 up dllimport attributes.
9339 (x_update_window_end): Update prototype.
9340
9341 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
9342 extern, which screws up dllimport attributes.
9343
9344 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9345 up dllimport attributes.
9346
9347 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
9348 screws up dllimport attributes.
9349
9350 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9351 up dllimport attributes.
9352 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
9353 screws up dllimport attributes.
9354
9355 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9356 up dllimport attributes.
9357
9358 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
9359 screws up dllimport attributes.
9360
9361 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
9362 screws up dllimport attributes.
9363
9364 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9365 up dllimport attributes.
9366
9367 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
9368 unnecessary extern, which screws up dllimport attributes.
9369 (main): Ditto.
9370
9371 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9372 up dllimport attributes.
9373
9374 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
9375 unnecessary extern, which screws up dllimport attributes.
9376
9377 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
9378 screws up dllimport attributes.
9379
9380 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
9381 up dllimport attributes.
9382
9383 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
9384
9385 * w32bdf.c (search_file_line):
9386 (set_bdf_font_info):
9387 (seek_char):
9388 (w32_get_bdf_glyph):
9389 (w32_BDF_to_x_font): Fix compile warnings.
9390
9391 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
9392
9393 * w32select.c: Include keyboard.h before frame.h.
9394
9395 * w32fns.c (max): Define macro.
9396 (JOHAB_CHARSET): Define if not known.
9397 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
9398 (Fx_show_tip): Synch with X version.
9399
9400 * w32xfns.c: Include keyboard.h before frame.h.
9401
9402 * w32fns.c: Include keyboard.h before frame.h.
9403
9404 * w32term.c: Include keyboard.h before frame.h.
9405
9406 * fontset.c: Include keyboard.h before frame.h.
9407
9408 * w32inevt.c: Include keyboard.h before frame.h.
9409 (MOUSE_MOVED): Define if not known.
9410
9411 * minibuf.c: Include keyboard.h before frame.h.
9412
9413 * keyboard.c: Include keyboard.h before frame.h.
9414
9415 * indent.c: Include keyboard.h before frame.h.
9416
9417 * dispnew.c: Include keyboard.h before frame.h.
9418
9419 * buffer.c: Include keyboard.h before frame.h.
9420
9421 * alloc.c: Include keyboard.h before frame.h.
9422
9423 * print.c: Include keyboard.h before frame.h.
9424
9425 * process.c: Include keyboard.h before frame.h.
9426
9427 * scroll.c: Include keyboard.h before frame.h.
9428
9429 * sysdep.c: Include keyboard.h before frame.h.
9430
9431 * term.c: Include keyboard.h before frame.h.
9432
9433 * window.c: Include keyboard.h before frame.h.
9434
9435 * xdisp.c: Include keyboard.h before frame.h.
9436 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
9437
9438 * frame.c: Include keyboard.h before frame.h.
9439
9440 * w32heap.h: Undefine min, max.
9441
9442 * w32gui.h: Undefine min, max.
9443
9444 * unexw32.c: Change PUCHAR to PCHAR.
9445 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
9446 (relocate_offset):
9447 (get_section_info):
9448 (copy_executable_and_dump_data): Remove unnecessary static defs.
9449 (copy_executable_and_dump_data): Fix compile warnings.
9450
9451 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
9452
9453 * w32console.c (min): Define macro.
9454 (clear_frame, write_glyphs): Fix compile warning.
9455
9456 * w32proc.c (compare_env):
9457 (find_child_console): Fix compile warning.
9458
9459 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
9460 sys_errlist instead of _sys_errlist.
9461 (get_emacs_configuration_options): New function.
9462
9463 * s/ms-w32.h (sys_nerr): Provide default definition.
9464 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
9465 name with _ prepended.
9466 (NSIG): Define if not known.
9467 (get_emacs_configuration): Provide extern declaration.
9468 (get_emacs_configuration_options): Provide extern declaration.
9469 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
9470
9471 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
9472 (map_w32_filename):
9473 (read_unc_volume): Fix compile warning.
9474
9475 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
9476 definitions from being used.
9477
9478 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
9479
9480 * w32.c (unc_volume_file_attributes):
9481 (open_unc_volume): Make arg const.
9482
9483 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
9484 (read_input_waiting): Remove excess parameter.
9485
9486 * w32.c (init_environment): Call _access.
9487 (check_windows_init_file): Call _close.
9488 (init_user_info): Call _putenv.
9489 (init_environment): Call _putenv and _strdup.
9490 (init_ntproc): Reset volume info cache on startup.
9491
9492 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
9493 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
9494 cannot override the CRT malloc.
9495
9496 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
9497 (LINK_FLAGS): Append to original value of LINK_FLAGS.
9498
9499 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
9500 unless we are linking with a static CRT.
9501 (RVA_TO_PTR): Cast result to unsigned char*.
9502
9503 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
9504 (add_volume_info): Use xstrdup.
9505
9506 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
9507
9508 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
9509 (do_completion, Fminibuffer_complete_word): Use it.
9510 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
9511 var so it can take non-boolean values.
9512
9513 2000-08-21 Gerd Moellmann <gerd@gnu.org>
9514
9515 * editfns.c (find_field): Formatting changes.
9516 (toplevel): Some old-style function forward declarations
9517 changed to prototypes, some new protypes added, some functions
9518 made static.
9519
9520 * lisp.h (set_time_zone_rule): Add prototype.
9521 (use_dialog_box): External declaration.
9522
9523 * keyboard.c (gen_help_event): Add parameter SIZE.
9524 (kbd_buffer_events_waiting): Slightly rewritten.
9525 (clear_event): New function.
9526 (kbd_buffer_get_event): Use it, and clear the input_events of
9527 HELP_EVENTs.
9528 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
9529 don't fill the newly created array with nils.
9530 (toplevel): Convert some old-style function forward declarations
9531 to prototypes.
9532
9533 * keyboard.h (gen_help_event): Change prototype.
9534
9535 * xterm.c (XTread_socket): Change calls to gen_help_event.
9536
9537 * w32term.c (w32_read_socket): Change calls to gen_help_event.
9538
9539 * eval.c (Fmacroexpand): Doc fix.
9540
9541 2000-08-20 Jason Rumney <jasonr@gnu.org>
9542
9543 * w32term.h (x_display_info_for_display): Remove as this function
9544 does not exist on W32.
9545
9546 * w32term.c (help_echo_window): New variable.
9547 (syms_of_w32term): staticpro it.
9548 (note_mode_line_highlight): Set it.
9549 (XTextExtents16): Removed as there is no equivalent on W32.
9550 (x_compute_glyph_string_overhangs): Incomplete body removed, as
9551 the X way of doing this will not work for W32.
9552 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
9553 (x_draw_image_foreground): Avoid drawing outside of the clip area
9554 when image doesn't have a mask.
9555 (note_mouse_highlight): Process overlays in the right order of
9556 priority. Set help_echo_window.
9557 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
9558 because that's more visible for large images.
9559
9560 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
9561 name to single_keymap_panes.
9562 (w32_menu_show): Set wv->title when dealing with titles.
9563 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
9564
9565 2000-08-21 Miles Bader <miles@gnu.org>
9566
9567 * minibuf.c (do_completion): Try again if we rewrite the input
9568 string, but no completion was done, so that any completion message
9569 will be correct.
9570
9571 2000-08-20 Gerd Moellmann <gerd@gnu.org>
9572
9573 * xfaces.c (lface_equal_p): Compare strings differently.
9574 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
9575 (realize_tty_face): Use them.
9576 (syms_of_xfaces): Initialize new variables.
9577 (map_tty_color): New function, extracted from realize_tty_face.
9578 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
9579 foreground or background color, store the new color name in the
9580 realized face; previous code trying to do this had no effect.
9581 (realize_tty_face): Use map_tty_color.
9582 (Fclear_face_cache): Set face_change_count and ensure thorough
9583 redisplay.
9584
9585 2000-08-19 Gerd Moellmann <gerd@gnu.org>
9586
9587 * undo.c (record_first_change, record_marker_adjustment): Don't
9588 use XBUFFER on last_undo_buffer which might not be a buffer.
9589
9590 2000-08-18 Kenichi Handa <handa@etl.go.jp>
9591
9592 * coding.c (decode_coding_string): Set members consumed,
9593 consumed_char, produced, produced_char of *coding correctly. If
9594 decode_coding doesn't consume any byte, don't try anymore.
9595 (encode_coding_string): Likewise.
9596
9597 2000-08-18 Gerd Moellmann <gerd@gnu.org>
9598
9599 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
9600 conditional have void type, for Standard C compilers.
9601
9602 * xdisp.c (redisplay_internal): Compare windows for equality with
9603 EQ, instead of applying XWINDOW to something that might not
9604 be a window.
9605
9606 2000-08-18 Kenichi Handa <handa@etl.go.jp>
9607
9608 * fontset.c (Finternal_char_font): Search only the selected frame
9609 for a window of the current buffer.
9610
9611 2000-08-18 Gerd Moellmann <gerd@gnu.org>
9612
9613 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
9614 Lisp_Objects.
9615
9616 * keyboard.c (kbd_buffer_get_event): Handle the case that the
9617 second half of a HELP_EVENT is found at the start of kbd_buffer.
9618
9619 2000-08-18 Miles Bader <miles@gnu.org>
9620
9621 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
9622
9623 * editfns.c (save_restriction_save): Rewrite to use markers.
9624 (save_restriction_restore): Rewrite to understand new form of data
9625 saved by save_restriction_save.
9626 (Fsave_restriction): Remove cautionary note in doc-string.
9627
9628 2000-08-17 Gerd Moellmann <gerd@gnu.org>
9629
9630 * fileio.c (build_annotations): Add a comment explaining the
9631 return value of format-annotate-function. Replace a spurious call
9632 to Flength with a CONSP test. Call format-annotate-function with
9633 a fifth arg specifying how many times the function is been called
9634 in a row, to let it choose temporary buffers appropriately.
9635
9636 2000-08-17 Dave Love <fx@gnu.org>
9637
9638 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
9639 declare make_temp_name twice.
9640
9641 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
9642 (unreadpure): Give it an arg.
9643
9644 * unexalpha.c: Prototype fatal_unexec, mark_x,
9645 update_dynamic_symbols. Declare unexec as void.
9646
9647 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
9648 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
9649
9650 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
9651 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
9652
9653 * alloca.c: Use #error.
9654 [POINTER_TYPE]: Use it.
9655
9656 * eval.c (Fdefvar): Doc fix.
9657
9658 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
9659 INITIALIZE_INTERVAL.
9660
9661 * buffer.h: Avoid DECLARE_INTERVALS.
9662
9663 * config.in: Add size_t.
9664
9665 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
9666
9667 * w16select.c (set_clipboard_data): If there's not enough memory
9668 to put text into clipboard, return 1, as Fw16_set_clipboard_data
9669 expects. In case of other failures, return 3.
9670 (system_error_msg): New error message.
9671 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
9672 system_error_msg.
9673
9674 2000-08-16 Gerd Moellmann <gerd@gnu.org>
9675
9676 * term.c (write_glyphs): Also turn off inverse video after turning
9677 off other appearances in case TS_exit_attribute_mode is not equal
9678 to TS_end_standout_mode.
9679 (insert_glyphs): Turn inverse video on/off for each run of glyphs
9680 with the same face.
9681 (turn_off_face): Reset standout_mode only if
9682 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
9683 is equal to TS_end_standout_mode.
9684
9685 2000-08-16 Kenichi Handa <handa@etl.go.jp>
9686
9687 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
9688 sequence at the end of the source block.
9689
9690 * ccl.c (Fccl_program_p): Docstring modified.
9691 (Fccl_execute): Likewise.
9692 (Fccl_execute_on_string): Likewise.
9693
9694 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
9695
9696 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
9697
9698 2000-08-16 Kenichi Handa <handa@etl.go.jp>
9699
9700 The following changes are mainly to fix bugs of
9701 encode/decode-coding-string failing if encoding/decoding return
9702 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
9703 variable conversion_buffer.
9704
9705 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
9706 decrement dst_end to avoid buffer overflow in the later call of
9707 string_as_multibyte
9708
9709 * coding.h (conversion_buffer_size, conversion_buffer)
9710 (get_conversion_buffer): Extern deleted.
9711
9712 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
9713 (conversion_buffer, conversion_buffer_size): Variables deleted.
9714 (get_conversion_buffer): Function deleted.
9715 (struct conversion_buffer): New structure.
9716 (MAX_ALLOCA): New macro.
9717 (allocate_conversion_buffer): New macro.
9718 (extend_conversion_buffer, free_conversion_buffer): New functions.
9719 (ccl_coding_driver): Set coding->result.
9720 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
9721 this is the last block of source.
9722 (encode_coding): Likewise. Handle the source block as the last
9723 one only when the whole source text is consumed.
9724 (decode_coding_string): Handle the case that the output buffer is
9725 too small to decode the whole source text. Use
9726 allocate_conversion_buffer, extend_conversion_buffer and
9727 free_conversion_buffer, not get_conversion_buffer.
9728 (encode_coding_string): Likewise.
9729 (init_coding): Function deleted.
9730 (init_coding_once): Delete code to initialize conversion_buffer_size.
9731
9732 * emacs.c (main): Don't call init_coding.
9733
9734 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
9735
9736 * term.c (write_glyphs): Use a locally declared conversion_buffer.
9737 (insert_glyphs): Likewise.
9738
9739 * w32console.c (write_glyphs): Use a locally declared
9740 conversion_buffer.
9741
9742 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
9743
9744 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
9745 member of display_info is NULL.
9746
9747 2000-08-15 Gerd Moellmann <gerd@gnu.org>
9748
9749 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
9750
9751 * term.c (turn_off_face): Reset standout_mode when resetting
9752 appearances with capability `me'.
9753 (write_glyphs): Switch on inverse video before each face change.
9754
9755 2000-08-14 Dave Love <fx@gnu.org>
9756
9757 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
9758 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
9759 (lisp_free): Declare and make static.
9760
9761 * window.c: Fix embedded comment.
9762 (syms_of_window): Fix doc string.
9763
9764 2000-08-14 Gerd Moellmann <gerd@gnu.org>
9765
9766 * keymap.c (push_key_description): If C without modifiers is < 32,
9767 make sure to print `C-' before `M-', like in the manual.
9768
9769 2000-08-11 Gerd Moellmann <gerd@gnu.org>
9770
9771 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
9772 since they aren't relocated anymore.
9773 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
9774
9775 * xdisp.c (try_cursor_movement): Fix handling of cursor in
9776 partially visible line which is smaller than the window's height.
9777
9778 2000-08-11 Kenichi Handa <handa@etl.go.jp>
9779
9780 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
9781 the multibyte form of eight-bit-control characters.
9782 (Fccl_execute_on_string): Initialize ccl->multibyte.
9783
9784 * ccl.h (struct ccl_program): New member multibyte.
9785
9786 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
9787
9788 2000-08-11 Kenichi Handa <handa@etl.go.jp>
9789
9790 * regex.c (regex_compile) <normal_char>: Pay attention to
9791 multibyteness.
9792 (analyse_first) <exactn>: Setup fastmap correctly for
9793 eight-bit-control characters.
9794
9795 2000-08-11 Kenichi Handa <handa@etl.go.jp>
9796
9797 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
9798
9799 * keyboard.c (make_lispy_event): Handle the new event type
9800 multibyte_char_keystroke.
9801
9802 * xterm.c: Include coding.h.
9803 (XTread_socket): Work around a bug of XmbLookupString. If the
9804 input is from XIM, decode it according to the current locale. In
9805 that case, generate multibyte_char_keystroke events.
9806
9807 2000-08-11 Kenichi Handa <handa@etl.go.jp>
9808
9809 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
9810 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
9811
9812 2000-08-10 Gerd Moellmann <gerd@gnu.org>
9813
9814 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
9815 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
9816 (move_it_in_display_line_to): Record iterator's ascent and descent
9817 before producing glyphs, and restore them when we know the glyph
9818 doesn't fit on the line.
9819 (move_it_to): Restructured so that it's easier to debug. If
9820 moving to a vpos, and not moving to an x or character position,
9821 stop as soon as the specified vpos is reached; don't move further
9822 into that line because that might change the computed line height.
9823 (try_cursor_movement): New function, extracted from the cursor
9824 movement branch of redisplay_window. If ending on a partially
9825 visible line, don't try to scroll if the cursor line is taller
9826 than the window.
9827 (redisplay_window): Use try_cursor_movement.
9828
9829 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
9830 because that function doesn't cope with variable-height lines.
9831
9832 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
9833 box cursor because that's better visible for large images.
9834
9835 2000-08-10 Miles Bader <miles@gnu.org>
9836
9837 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
9838
9839 2000-08-10 Gerd Moellmann <gerd@gnu.org>
9840
9841 * xdisp.c (Vmessages_buffer_name): New variable.
9842 (message_dolog): Use it.
9843 (syms_of_xdisp): Initialize it.
9844
9845 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
9846
9847 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
9848 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
9849 redundant now that keyboard.h is included.
9850
9851 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
9852
9853 * keyboard.c (kbd_buffer_events_waiting): New function.
9854
9855 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
9856
9857 * msdos.c: Include keyboard.h.
9858 (XMenuActivate): Empty no_event events from the event buffer. If
9859 no events are left after that, call clear_input_pending.
9860 (mouse_clear_clicks): New function, code moved from mouse_init.
9861 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
9862 mouse driver to ``forget'' any past clicks.
9863
9864 * Makefile.in (msdos.o): Depend on keyboard.h.
9865
9866 2000-08-09 Gerd Moellmann <gerd@gnu.org>
9867
9868 * lisp.h (input_pending): External declaration.
9869
9870 * dispextern.h (Qredisplay_dont_pause): Declare extern.
9871
9872 * xdisp.c (echo_area_display): Display thoroughly if input is
9873 pending. Bind redisplay-dont-pause to t during the redisplay.
9874 in case input is pending.
9875
9876 * dispnew.c (Qredisplay_dont_pause): New variable.
9877 (syms_of_display): Initialize and staticpro it.
9878 (update_frame_1): Don't interrupt the display for pending input if
9879 redisplay_dont_pause is set.
9880
9881 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
9882
9883 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
9884
9885 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
9886
9887 * callproc.c (Fcall_process): Terminate the unwind-protect around
9888 the post-read-conversion of coding system.
9889
9890 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
9891 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
9892 * buffer.h (overlays_at): Update prototype.
9893 * xdisp.c (next_overlay_change): Update call to overlays_at.
9894 * xfaces.c (face_at_buffer_position): Likewise.
9895 * textprop.c (Fget_char_property): Likewise.
9896 * xterm.c (note_mouse_highlight): Likewise.
9897
9898 * minibuf.c (do_completion): Don't consider a simple change of
9899 case as `completion'.
9900
9901 2000-08-08 Ken Raeburn <raeburn@gnu.org>
9902
9903 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
9904 * undo.c (record_delete): Make sure last_point_position_buffer is
9905 a buffer before comparing pointers.
9906
9907 * coding.h (decode_coding_string): Declare.
9908
9909 * intervals.h (Fprevious_single_char_property_change): Declare.
9910
9911 * textprop.c (Fprevious_single_char_property_change): Don't do
9912 arithmetic directly on lisp objects.
9913
9914 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
9915
9916 * keyboard.h (menu_item_eval_property): Declare.
9917
9918 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
9919 reuse as buffer name, instead of recreating (and discarding) every
9920 time a message is logged.
9921 (with_echo_area_buffer): Make callback arg A2 a lisp object.
9922 (current_message_1, truncate_message_1, set_message_1)
9923 (display_echo_area_1, resize_mini_window_1): Signatures changed.
9924 (current_message, truncate_echo_area, display_echo_area)
9925 (resize_echo_area_axactly): Changed calls.
9926
9927 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
9928 Lisp object.
9929 (Ffind_coding_systems_region_internal): First argument to Fappend
9930 must be an integer, not a Lisp object.
9931
9932 2000-08-08 Kenichi Handa <handa@etl.go.jp>
9933
9934 * charset.c (Fchar_width): Doc fix.
9935
9936 2000-08-08 Gerd Moellmann <gerd@gnu.org>
9937
9938 * charset.c (Fstring_width): Doc fix.
9939
9940 2000-08-07 Gerd Moellmann <gerd@gnu.org>
9941
9942 * xdisp.c (start_display): When starting display on a continuation
9943 line, clear ascent and descent members of the iterator structure;
9944 the height of the continued line does not affect the height of the
9945 continuation line.
9946 (make_cursor_line_fully_visible): Do nothing if cursor is on a
9947 line taller than the window.
9948 (redisplay_window) <forced window start>: Handle case that the
9949 middle of the window is not found in any row.
9950 (dump_glyph_row): Show more information.
9951 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
9952 first text line in a glyph matrix.
9953
9954 * xterm.c (x_draw_image_foreground): Avoid drawing outside
9955 of the clip area when image doesn't have a mask.
9956
9957 * fns.c (sweep_weak_table): Fix survival conditions for
9958 key-or-value and key-and-value weakness.
9959
9960 * .gdbinit (xhashtable): New command.
9961
9962 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
9963 tables out of the list of all weak hash tables.
9964
9965 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
9966 a new buffer is created, make sure echo_area_buffer[] references
9967 the new buffer.
9968
9969 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
9970
9971 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
9972 the doc string.
9973
9974 2000-08-07 Kenichi Handa <handa@etl.go.jp>
9975
9976 * syntax.c (skip_chars): Fix previous change. Make the handling
9977 of unibyte string consistent with that of regex search.
9978
9979 2000-08-05 Gerd Moellmann <gerd@gnu.org>
9980
9981 * xmenu.c (popup_get_selection): Use xfree instead of free.
9982
9983 * fileio.c (Finsert_file_contents): Use xfree instead of free.
9984
9985 * editfns.c (Ftranspose_regions): Use xfree instead of free.
9986
9987 * callproc.c (child_setup): Use xfree instead of free.
9988
9989 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
9990 instead of malloc.
9991 (run_mac_command, closedir): Use `xfree' instead of `free'.
9992
9993 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
9994
9995 * eval.c (error): Use xfree instead of free.
9996
9997 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
9998
9999 * fns.c: Replace `illegal' with `invalid'.
10000 (Fmake_hash_table, make_hash_table): Allow table size of 0.
10001
10002 2000-08-05 Kenichi Handa <handa@etl.go.jp>
10003
10004 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
10005 conversion.
10006
10007 2000-08-04 Noah Friedman <friedman@splode.com>
10008
10009 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
10010 docstring.
10011
10012 2000-08-04 Gerd Moellmann <gerd@gnu.org>
10013
10014 * syntax.c (skip_chars): Fix typo in error message.
10015
10016 2000-08-04 Andreas Schwab <schwab@suse.de>
10017
10018 * m/ia64.h: Moved from s/ia64.h.
10019
10020 2000-08-04 Kenichi Handa <handa@etl.go.jp>
10021
10022 * process.c (read_process_output): Big simplification. Handle
10023 composition and post-read-conversion of coding system correctly.
10024 (send_process): Handle composition correctly.
10025
10026 * callproc.c (Fcall_process): Handle post-read-conversion of
10027 coding system if any.
10028
10029 * coding.c (decode_coding_iso2022): More strict check for handling
10030 single shifting.
10031 (coding_restore_composition): Pay attention to the case that
10032 cmp_data is not set properly (because of invalid code in the
10033 source text).
10034 (run_pre_post_conversion_on_str): Include text properties in the
10035 resulting string.
10036 (decode_coding_string): Set members of coding correctly.
10037
10038 2000-08-03 Gerd Moellmann <gerd@gnu.org>
10039
10040 * s/ia64.h: New file.
10041
10042 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
10043 Use NULL instead of 0 at the end of variable argument list of
10044 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
10045 sizeof (int) < sizeof (void *).
10046
10047 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
10048 of variable argument lists of XtVaGetValues and XtVaSetValues.
10049
10050 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
10051 variable argument lists of XtVaGetValues and XtVaSetValues.
10052
10053 2000-08-02 Gerd Moellmann <gerd@gnu.org>
10054
10055 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
10056 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
10057
10058 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
10059 prototype.
10060
10061 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
10062 in call to Fsingle_key_description.
10063
10064 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
10065 Callers changed.
10066
10067 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
10068
10069 * window.c (display_buffer_reuse_frames): New variable.
10070 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
10071 frames displaying BUFFER.
10072 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
10073
10074 2000-08-01 Miles Bader <miles@gnu.org>
10075
10076 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
10077 when to constrain NEW_POS (they were pretty screwed up before).
10078
10079 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
10080
10081 * msdos.c (run_msdos_command): Save and restore the master
10082 environment, for the case that child_setup signals an error.
10083 When mirroring slashes in DOS shell commands, don't fail when
10084 argv[2] has embedded blanks.
10085 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
10086 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
10087 (dos_ttraw): Call mouse_setup_buttons.
10088
10089 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
10090 using alloca; free it after run_msdos_command returns.
10091
10092 2000-07-27 Dave Love <fx@gnu.org>
10093
10094 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
10095 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
10096
10097 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
10098
10099 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
10100
10101 * editfns.c (lisp_time_argument): Fix last change.
10102
10103 2000-07-27 Gerd Moellmann <gerd@gnu.org>
10104
10105 * fns.c (Fdelete): Make it work on vectors and strings in addition
10106 to lists.
10107
10108 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
10109 (syms_of_fns): Initialize new variables.
10110 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
10111 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
10112 weakness, with t meaning the same as `key-and-value'.
10113
10114 2000-07-27 Kenichi Handa <handa@etl.go.jp>
10115
10116 * coding.h (struct coding_system): Member safe_charset deleted.
10117
10118 * coding.c (Qsafe_charsets): This variable deleted.
10119 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
10120 New variables.
10121 (coding_safe_chars): New function.
10122 (CODING_SAFE_CHAR_P): New macro.
10123 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
10124 checking safe_charsets member of the coding system. Caller changed.
10125 (detect_coding_iso2022): New local variable safe_chars.
10126 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
10127 safe_charsets member of the coding system.
10128 (decode_coding_iso2022): New local variable safe_chars.
10129 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
10130 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
10131 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
10132 (ENCODE_UNSAFE_CHARACTER): New macro.
10133 (encode_coding_iso2022): New local variable safe_chars. Check
10134 unsafe chars.
10135 (setup_coding_system): Delete the code to initialize
10136 coding->safe_charses
10137 (intersection, find_safe_codings): New functions.
10138 (Ffind_coding_systems_region_internal): New function.
10139 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
10140 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
10141 variable and initialize it.
10142
10143 * fns.c (char_table_ref_and_index): New function.
10144
10145 * lisp.h (char_table_ref_and_index): Add prototype.
10146
10147 2000-07-26 Sam Steingold <sds@gnu.org>
10148
10149 * editfns.c (lisp_time_argument): Added third argument `usec'.
10150 (Ffloat_time): New built-in Lisp function.
10151
10152 2000-07-26 Gerd Moellmann <gerd@gnu.org>
10153
10154 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
10155 for the character code.
10156
10157 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
10158 GNU/Linux.
10159
10160 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
10161 if called for a popup menu.
10162 (xmenu_show): Store help string in widget values.
10163
10164 2000-07-26 Dave Love <fx@gnu.org>
10165
10166 * syswait.h: Move some definitions.
10167 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
10168 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
10169 perspicuous definitions.
10170 (WTERMSIG): Fix bit pattern used.
10171
10172 2000-07-26 Kenichi Handa <handa@etl.go.jp>
10173
10174 * print.c (print_object): If vector printing is truncated, print
10175 "..." to indicate it as well as the case of list printing.
10176
10177 2000-07-25 Gerd Moellmann <gerd@gnu.org>
10178
10179 * xdisp.c (next_element_from_display_vector): Improve comments.
10180
10181 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
10182 for the character code, and the rest for the face id as in 20.x.
10183 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
10184
10185 * window.c (window_display_table): Cleaned up.
10186
10187 * syntax.c (Fforward_word): Add last arg nil in call of
10188 Fconstrain_to_field.
10189
10190 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
10191
10192 * fileio.c (Frename_file) [DOS_NT]: If the file names are
10193 identical but for the letter-case, don't call
10194 barf_or_query_if_file_exists.
10195
10196 2000-07-25 Miles Bader <miles@gnu.org>
10197
10198 * editfns.c (find_field): Honor special `boundary' fields.
10199 (Qboundary): New variables.
10200 (syms_of_editfns): Initialize Qboundary.
10201 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
10202 Use scan_buffer instead of find_before_next_newline, because it
10203 allows us to detect the boundary case where there's a newline at
10204 the search limit.
10205 * lisp.h (Fconstrain_to_field): Update external declaration.
10206
10207 2000-07-24 Gerd Moellmann <gerd@gnu.org>
10208
10209 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
10210 if that is nil.
10211
10212 2000-07-24 Dave Love <fx@gnu.org>
10213
10214 * s/sunos4-0.h, s/sol2.h:
10215 (LIBS_TERMCAP): Move from m/sparc.h.
10216
10217 * m/sparc.h (TERMINFO): Moved to system files (probably only
10218 relevant for sunos4 judging by its vintage).
10219 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
10220 __arch64__.
10221
10222 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
10223
10224 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
10225 name to single_keymap_panes.
10226
10227 2000-07-24 Andreas Schwab <schwab@suse.de>
10228
10229 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
10230
10231 2000-07-24 Gerd Moellmann <gerd@gnu.org>
10232
10233 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
10234 parameters instead of using int parameters. Expect FN to accept
10235 EMACS_INT parameters.
10236 (display_echo_area, resize_echo_area_axactly, current_message)
10237 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
10238 with new argument list.
10239 (resize_mini_window_1): New callback function.
10240 (current_message_1, truncate_message_1, set_message_1): Change
10241 parameter lists to the new format expected by with_echo_area_buffer.
10242
10243 2000-07-24 Kenichi Handa <handa@etl.go.jp>
10244
10245 * fontset.c (fontset_ref): Remove INLINE declaration.
10246 (fontset_ref_via_base): Likewise.
10247 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
10248 to downcase.
10249
10250 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
10251
10252 * msdos.c (IT_note_mouse_highlight): Process overlays in the
10253 correct order of priority. If help echo was found in an overlay,
10254 use that overlay as the object in which the help echo was found.
10255
10256 2000-07-22 Miles Bader <miles@gnu.org>
10257
10258 * textprop.c (Fprevious_single_char_property_change): The initial
10259 property value should be from the position preceding POSITION, not
10260 following it.
10261
10262 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
10263
10264 * coding.c (syms_of_coding): Doc fix for
10265 inhibit-iso-escape-detection.
10266
10267 2000-07-21 Gerd Moellmann <gerd@gnu.org>
10268
10269 * xterm.c (note_mouse_highlight): Process overlays in the right
10270 order of priority.
10271
10272 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
10273
10274 * xterm.c (note_mouse_highlight): If help-echo was found in an
10275 overlay, use that overlay as the object in which the help was found.
10276
10277 * window.c (foreach_window_1): Fix typo reversing an if-condition.
10278
10279 * window.c (foreach_window): Instead of a fake variable argument
10280 list, take one USER_DATA argument.
10281 (foreach_window_1): Likewise, and call callback functions with two
10282 args, the window and USER_DATA.
10283 (struct check_window_data): New struct.
10284 (check_window_containing): Use it.
10285 (window_from_coordinates): Set up a struct check_window_data for
10286 foreach_window.
10287 (add_window_to_list, freeze_window_start): Change parameters
10288 according to new calling convention.
10289
10290 * window.h (foreach_window): Change prototype.
10291
10292 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
10293
10294 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
10295
10296 * xmenu.c (menu_help_callback): Call show_help_echo with
10297 additional arguments OBJECT and POS.
10298
10299 2000-07-21 Kenichi Handa <handa@etl.go.jp>
10300
10301 * data.c (Faset): Allow storing any multibyte character in a
10302 string. Convert unibyte string to multibyte if necessary.
10303
10304 * xfns.c (x_encode_text): New function.
10305 (x_set_name): Use x_encode_text.
10306 (x_set_title): Likewise.
10307
10308 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
10309
10310 * xterm.h (x_encode_text): Add prototype.
10311
10312 2000-07-20 Dave Love <fx@gnu.org>
10313
10314 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
10315 xfree, not free.
10316
10317 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
10318
10319 * msdos.c (help_echo_window): New variable.
10320 (syms_of_msdos): Initialize and staticpro it.
10321 (IT_note_mode_line_highlight): Set help_echo_window.
10322 (IT_note_mouse_highlight): Ditto.
10323 (dos_rawgetc): Store help_echo_window in the second event produced
10324 for HELP_EVENTs.
10325
10326 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
10327 Record the object that generated the help echo and the position of
10328 that object in help_echo_object and help_echo_pos. Record that
10329 some glyphs in a row are displayed in mouse-face.
10330 (IT_update_begin): Don't clear mouse highlight unless one of the
10331 enabled glyph rows is marked as being displayed in mouse-face.
10332 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
10333 and position recorded in help_echo_object and help_echo_pos to the
10334 event queue.
10335 (IT_menu_display): Accept a new argument PN: the pane number of
10336 the current menu pane. Record the pane number and the item
10337 number of the item which has associated help string.
10338 (XMenuActivate): Update the prototype for help_callback in
10339 function declaration. Call IT_menu_display with the current menu
10340 pane number as an additional argument. Call help_callback with
10341 two additional arguments: the pane number and the item number of
10342 the menu item associated with the help text.
10343 (help_echo_object, help_echo_pos): New variables.
10344 (syms_of_msdos): Initialize them and staticpro help_echo_object.
10345
10346 * msdos.h (XMenuActivate): Update prototype.
10347
10348 2000-07-19 Gerd Moellmann <gerd@gnu.org>
10349
10350 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
10351 Add some more prototypes.
10352
10353 * xterm.c, xterm.h: Add some more prototypes.
10354
10355 * lisp.h (Fnext_single_char_property_change): Add prototype.
10356
10357 * dispnew.c (direct_output_for_insert): Remove confusing
10358 outer local variable mouse_face_overwritten_p.
10359 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
10360
10361 * alloc.c (allocate_string_data): Don't copy old string contents.
10362
10363 2000-07-19 Kenichi Handa <handa@etl.go.jp>
10364
10365 * coding.c (code_convert_region): Delete text properties before
10366 shrinking the conversion region.
10367
10368 2000-07-18 Gerd Moellmann <gerd@gnu.org>
10369
10370 * dispnew.c (update_text_area): Write the whole row if it
10371 has mouse-face in it.
10372
10373 * xfaces.c (face-alternative-font-family-alist): Remove
10374 DEFVAR_LISP; staticpro instead.
10375
10376 * xmenu.c (menu_help_callback): Call show_help_echo with
10377 new arguments.
10378
10379 * keyboard.c (show_help_echo): Add parameter WINDOW.
10380 (read_char): Call show_help_echo with window extracted from Lisp
10381 help event.
10382 (gen_help_event): Add parameter WINDOW.
10383
10384 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
10385
10386 * xterm.c (help_echo_window): New variable.
10387 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
10388 (XTread_socket): Pass help_echo_window to gen_help_event.
10389 (syms_of_xterm): Initialize and staticpro help_echo_window.
10390
10391 2000-07-18 Dave Love <fx@gnu.org>
10392
10393 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
10394
10395 2000-07-18 Gerd Moellmann <gerd@gnu.org>
10396
10397 * alloc.c (allocate_string_data): If string had already data
10398 assigned, copy old contents to new string data.
10399
10400 * coding.c (syms_of_coding): Fix typo in spelling of variable
10401 `inhibit-iso-escape-detection'.
10402
10403 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
10404
10405 * Makefile.in: Add dependencies on dispextern.h.
10406 (alloca.o): Don't define malloc and define EMACS_FREE instead of
10407 `free'; both can conflict with system header files.
10408
10409 2000-07-18 Kenichi Handa <handa@etl.go.jp>
10410
10411 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
10412 undefined.
10413
10414 2000-07-18 Dave Love <fx@gnu.org>
10415
10416 * window.c (Fwindow_list): Declare arg `window'.
10417
10418 2000-07-18 Kenichi Handa <handa@etl.go.jp>
10419
10420 * coding.c (setup_coding_system): Don't override the explicitly
10421 specified designations.
10422
10423 2000-07-15 Miles Bader <miles@gnu.org>
10424
10425 * editfns.c (char_property_eq, char_property_stickiness): Renamed
10426 from `text_property_eq' and `text_property_stickiness', respectively.
10427 (find_field, Fconstrain_to_field, char_property_eq)
10428 (char_property_stickiness): Changed to call char-property functions
10429 instead of text-property-only ones.
10430
10431 * textprop.c (Fnext_single_char_property_change): Made a subr (was
10432 `next_single_char_property_change'). Do more error checking, and
10433 cleanup limit behavior.
10434 (Fprevious_single_char_property_change): New function.
10435 (syms_of_textprop): Initialize new subrs.
10436
10437 * xdisp.c (display_prop_end, invisible_text_between_p):
10438 Call Fnext_single_char_property_change instead of
10439 next_single_char_property_change.
10440
10441 2000-07-15 Jason Rumney <jasonr@gnu.org>
10442
10443 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
10444 after menu is finished with.
10445 (add_menu_item): Only consider wv->title as a menu title.
10446 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
10447
10448 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
10449 null title.
10450 (FONT_REGEXP): Remove unused macro, and its sub-components.
10451 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
10452
10453 * w32term.c (help_echo_object, help_echo_pos): New variables.
10454 (note_mode_line_highlight): Store additional information about the
10455 help-echo in help_echo_object and help_echo_pos. Check both
10456 `local-map' and `keymap' properties for changing the cursor
10457 (note_mouse_highlight): Store additional information about the
10458 help-echo in help_echo_object and help_echo_pos.
10459 (note_tool_bar_highlight): Set help_echo_object to nil and
10460 help_echo_pos to -1.
10461 (w32_read_socket): Use gen_help_event instead of filling
10462 input_events manually.
10463 (syms_of_w32term): Staticpro help_echo_object.
10464 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
10465 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
10466 (x_clear_mouse_face): New function.
10467 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
10468 (x_update_window_begin): No need to turn off the mouse
10469 highlight here.
10470 (show_mouse_face): Set the mouse_face_p flag of glyph rows
10471 depending on whether they contain glyphs highlighted in mouse-face.
10472 (x_fill_stretch_glyph_string): Consume runs of stretch
10473 glyphs instead of a single one.
10474 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
10475 with new argument list.
10476 (x_set_glyph_string_gc): Make sure the face's GC is valid.
10477 (x_append_glyph, x_append_composite_glyph)
10478 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
10479 changes in struct glyph starting 1999-12-27. See comments for
10480 xterm.c on 2000-07-05.
10481
10482 2000-07-14 Sam Steingold <sds@gnu.org>
10483
10484 * xfaces.c (realize_x_face): Fix the last patch:
10485 check `default_face' before dereferencing.
10486
10487 2000-07-14 Dave Love <fx@gnu.org>
10488
10489 * syntax.c (back_comment): Add null default in switch (for pcc).
10490
10491 2000-07-14 Kenichi Handa <handa@etl.go.jp>
10492
10493 * xfaces.c (realize_x_face): Make fontset using the base of the
10494 default_face's fontset, not using the default fontset.
10495
10496 * coding.c (inhibit_iso_escape_detection): New variable.
10497 (syms_of_coding): Make it a Lisp variable.
10498 (detect_coding_iso2022): If inhibit_iso_escape_detection is
10499 nonzero, ignore ISO2022's escape sequence.
10500
10501 2000-07-14 Gerd Moellmann <gerd@gnu.org>
10502
10503 * alloca.c (malloc) [emacs]: Define as xmalloc.
10504
10505 * xfns.c (Fx_show_tip): If frame parameters contain a position,
10506 use that instead of the mouse position. Add parameters DX and DY.
10507
10508 * dispextern.h (Fx_show_tip): Adjust number of parameters
10509 in prototype.
10510
10511 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
10512 if HELP is a function, call it with OBJECT and POS as parameters
10513 to get the help to display.
10514 (gen_help_event, kbd_buffer_store_help_event): New functions.
10515 (kbd_buffer_get_event): Construct the Lisp help-event differently.
10516 (read_char): Call show_help_echo with new parameters.
10517
10518 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
10519 Add prototypes.
10520
10521 * xterm.c (help_echo_object, help_echo_pos): New variables.
10522 (note_mode_line_highlight): Store additional information about the
10523 help-echo in help_echo_object and help_echo_pos. Check both
10524 `local-map' and `keymap' properties for changing the cursor
10525 (note_mouse_highlight): Store additional information about the
10526 help-echo in help_echo_object and help_echo_pos.
10527 (note_tool_bar_highlight): Set help_echo_object to nil and
10528 help_echo_pos to -1.
10529 (XTread_socket): Use gen_help_event instead of filling
10530 input_events manually.
10531 (syms_of_xterm): Staticpro help_echo_object.
10532
10533 * xmenu.c (menu_highlight_callback): Use
10534 kbd_buffer_store_help_event instead of setting up and input_event
10535 structure manually.
10536
10537 * xdisp.c (eval_form): GCPRO argument sexpr.
10538 (call_function): New function.
10539 (handle_single_display_prop): Use call_function and FUNCTIONP
10540 instead of checking whether if font_height is a symbol and
10541 using eval_form.
10542
10543 * eval.c (internal_condition_case_2): New function.
10544
10545 * lisp.h (FUNCTIONP): New macro.
10546 (internal_condition_case_2, call_function): Add prototypes.
10547
10548 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
10549 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
10550 Always set `arg' member of input_events.
10551 (construct_menu_click): Unused function removed.
10552
10553 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
10554
10555 * w32term.c (construct_mouse_click, construct_mouse_wheel)
10556 (construct_drag_n_drop, x_scroll_bar_handle_click)
10557 (w32_read_socket): Always set `arg' member of input_events.
10558
10559 * keyboard.c (show_help_echo): Use eval_form. Add comment.
10560
10561 * lisp.h (eval_form): Add prototype.
10562
10563 * xdisp.c (eval_form): Make it externally visible.
10564
10565 2000-07-13 Gerd Moellmann <gerd@gnu.org>
10566
10567 * xterm.c (x_handle_tool_bar_click): Store the frame in the
10568 frame_or_window slot of TOOL_BAR_EVENT input events instead of
10569 consing. For prefix events, store the frame in the `arg' slot of
10570 the event, otherwise store the key there.
10571 (XTread_socket): Instead of consing, use the frame_or_window slot
10572 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
10573
10574 * xmenu.c (menu_highlight_callback): Store help string in the
10575 `arg' member of the input event; don't cons.
10576 (menubar_selection_callback): Use the `arg' slot of input events
10577 to queue additional information, instead of consing.
10578
10579 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
10580
10581 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
10582 TOOL_BAR_EVENTs.
10583 (w32_read_socket): Adapt to changes in HELP_EVENTs.
10584
10585 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
10586 input events to queue additional information, instead of consing.
10587
10588 * keyboard.c (kbd_buffer_gcpro): Renamed from
10589 kbd_buffer_frame_or_window. Now used for all Lisp objects
10590 referenced from the input queue.
10591 (kbd_buffer_store_event): Always use structure assignment for
10592 copying input events. Record all Lisp objects referenced from
10593 events in kbd_buffer_gcpro.
10594 (kbd_buffer_get_event): Construct Lisp `help-echo' events
10595 differently from input events. Test for prefix menu_bar_events
10596 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
10597 event in kbd_buffer_gcpro to nil.
10598 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
10599 frame_or_window is equal to its arg member as prefix events.
10600 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
10601 used by an input event to nil.
10602 (init_keyboard): Use two times the size of the input queue
10603 for kbd_buffer_gcpro.
10604 (syms_of_keyboard): Likewise.
10605
10606 * emacs.c (handle_USR2_signal, handle_USR1_signal):
10607 Use USER_SIGNAL_EVENT.
10608
10609 * termhooks.h (struct input_event): Add member `arg'.
10610 (MENU_BAR_EVENT): Renamed from menu_bar_event.
10611 (USER_SIGNAL_EVENT): Renamed from user_signal.
10612
10613 * xfaces.c (ASET): Remove definition.
10614
10615 * lisp.h (AREF, ASET, ASIZE): New macros.
10616
10617 * fontset.c (AREF, ASIZE): Remove definitions.
10618
10619 * fns.c (AREF): Remove definition.
10620
10621 * composite.c (AREF): Remove definition.
10622
10623 2000-07-12 Gerd Moellmann <gerd@gnu.org>
10624
10625 * dispnew.c (redraw_overlapped_rows): Add missing local.
10626 (scrolling_window): Remove debug code.
10627
10628 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
10629 Before scrolling, turn off a mouse-highlight in the window
10630 being scrolled.
10631
10632 * xterm.c (x_update_window_end): Add parameter
10633 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
10634 redisplay in XTframe_up_to_date.
10635 (x_clear_mouse_face): New function.
10636 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
10637
10638 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
10639 current glyph row.
10640 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
10641 it when any row is written to that contains glyphs highlighted in
10642 mouse-face.
10643 (update_window): Call the window update end hook with new
10644 parameter MOUSE_FACE_OVERWRITTEN_P.
10645 (direct_output_for_insert): Give up if row contains mouse-face.
10646
10647 * dispextern.h (struct redisplay_interface): Add parameter
10648 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
10649 (clear_mouse_face): New function pointer member.
10650
10651 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
10652
10653 * syntax.c (back_comment): Use one switch rather than a few `if's.
10654 Obey open_paren_in_column_0_is_defun_start.
10655 When reverting to the `slow' method, try to nicely handle the case
10656 of nested comments by checking that the comment-starter we found
10657 does indeed match the comment-ender.
10658 (scan_sexps_forward, scan_sexps_forward):
10659 Ignore excessive opening parenthesis rather than throwing an error.
10660
10661 2000-07-11 Gerd Moellmann <gerd@gnu.org>
10662
10663 * doc.c (Fsubstitute_command_keys): Handle case that a GC
10664 in Fwhere_is_internal or get_keymap_1 relocates string contents.
10665
10666 * dispnew.c (direct_output_forward_char): Give up if currently
10667 displaying a message instead of the minibuffer contents.
10668
10669 * xterm.c (x_update_window_begin): No need to turn off the mouse
10670 highlight here.
10671 (show_mouse_face): Set the mouse_face_p flag of glyph rows
10672 depending on whether they contain glyphs highlighted in mouse-face.
10673
10674 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
10675 compare the mouse_face_p flags of both rows.
10676
10677 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
10678
10679 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
10680
10681 * keyboard.c (show_help_echo): Accept additional parameter
10682 ok_to_overwrite_keystroke_echo.
10683 (read_char): Call show_help_echo with a zero
10684 ok_to_overwrite_keystroke_echo argument.
10685 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
10686 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
10687 ok_to_overwrite_keystroke_echo argument.
10688 * w32menu.c (w32_menu_display_help): Call show_help_echo with
10689 non-zero ok_to_overwrite_keystroke_echo argument.
10690
10691 2000-07-10 Gerd Moellmann <gerd@gnu.org>
10692
10693 * xdisp.c (try_window_id): If changes are all below what is
10694 displayed in the window, and point is in the window, we still
10695 might have to find point on the display.
10696
10697 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
10698 glyphs instead of a single one.
10699 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
10700 with new argument list.
10701 (x_set_glyph_string_gc): Make sure the face's GC is valid.
10702
10703 * keymap.c (get_keymap_1): Add comment that this function can GC.
10704 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
10705 comment that functions can GC.
10706 (Fset_keymap_parent): GCPRO arg KEYMAP.
10707
10708 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
10709
10710 * msdos.c (XMenuActivate): After exiting the menu, restore the
10711 echo area message and erase it.
10712
10713 2000-07-10 Kenichi Handa <handa@etl.go.jp>
10714
10715 * fontset.c (Ffontset_info): Make the return value more compatible
10716 with that of Emacs 20.
10717
10718 2000-07-07 Gerd Moellmann <gerd@gnu.org>
10719
10720 * eval.c (Fsignal): Handle case that backtrace_list is null.
10721
10722 2000-07-07 Kenichi Handa <handa@etl.go.jp>
10723
10724 * ccl.c (Fccl_execute): Typo fixed.
10725
10726 2000-07-06 Gerd Moellmann <gerd@gnu.org>
10727
10728 * window.c (window_loop): Add missing gcpro1 local variable.
10729
10730 * window.c (Fwindow_list): Reverse list at the end.
10731 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
10732 means allow windows on OWINDOW's frame, only.
10733 (window_loop): Simplified; use Fwindow_list.
10734
10735 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
10736
10737 2000-07-05 Gerd Moellmann <gerd@gnu.org>
10738
10739 * xterm.c (XTread_socket): Increment handling_signal at the start,
10740 decrement it at the end.
10741
10742 * eval.c (handling_signal): New variable.
10743 (Fsignal): Abort if handling_signal is non-zero.
10744
10745 * lisp.h (handling_signal): External declaration.
10746
10747 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
10748
10749 2000-07-05 Ken Raeburn <raeburn@gnu.org>
10750
10751 Sound support for NetBSD through "Linux emulation" support:
10752 * config.in (HAVE_SOUNDCARD_H): Undef.
10753 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
10754 * Makefile.in (LIBSOUND): New variable.
10755 (LIBES): Include it.
10756 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
10757 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
10758 (vox_open): Use DEFAULT_SOUND_DEVICE.
10759 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
10760
10761 2000-07-05 Gerd Moellmann <gerd@gnu.org>
10762
10763 * print.c (print_error_message): If Vsignaling_function is set,
10764 show it in *Messages*.
10765
10766 * lisp.h (Vsignaling_function): External declaration.
10767
10768 * eval.c (Vsignaling_function): New variable.
10769 (Fsignal): Compute it.
10770 (syms_of_eval): Staticpro it.
10771
10772 2000-07-05 Dave Love <fx@gnu.org>
10773
10774 * syswait.h: Use the autoconf recommended approach. Old code
10775 #if'd out in case we need to revert.
10776
10777 * config.in (HAVE_SYS_WAIT_H): Added.
10778
10779 2000-07-05 Andrew Innes <andrewi@gnu.org>
10780
10781 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
10782 when non-NULL instead of __morecore, to take account of buffer
10783 memory. This also solves a problem with spurious memory warnings
10784 on Windows.
10785
10786 * ralloc.c: Make real_morecore non-static.
10787
10788 * eval.c (internal_condition_case): Comment out abort if
10789 interrupt_input_blocked is not zero.
10790
10791 * makefile.nt: Add support for `bootstrap' and related targets.
10792 Include minimal debug info in emacs.exe in release build.
10793 Remove all dependencies on lisp.h, and fixup some others.
10794
10795 * w32.c (init_environment): Install code from 20.7 for providing
10796 default values for environment variables, based on the
10797 executable's own location.
10798 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
10799 (sys_socket): Install socket inheritance bug fix from 20.7.
10800
10801 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
10802 here via blockinput.h).
10803
10804 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
10805
10806 * w32menu.c (w32_menu_display_help):
10807 * xmenu.c (menu_help_callback): Use show_help_echo.
10808
10809 * keyboard.h (show_help_echo): Declare.
10810
10811 * keyboard.c (show_help_echo): New function, extracted from read_char.
10812 Feval its `msg' argument if it's a cons cell.
10813 (read_char): Use it.
10814 (follow_key): Pass `autoload' to get_keyelt.
10815
10816 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
10817 (note_tool_bar_highlight, XTread_socket):
10818 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
10819 (dos_rawgetc):
10820 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
10821 (note_tool_bar_highlight, w32_read_socket):
10822 Do not gratuitously ignore non-string `help-echo' properties.
10823
10824 2000-07-05 Gerd Moellmann <gerd@gnu.org>
10825
10826 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
10827
10828 * window.c (delete_all_subwindows): Reset Vwindow_list.
10829
10830 * xterm.c (x_append_glyph, x_append_composite_glyph)
10831 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
10832 changes in struct glyph starting 1999-12-27. Some bit-fields of
10833 struct glyph were not set, which made glyphs unequal when compared
10834 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
10835 effects were the result. This also depended on the contents of
10836 memory returned by xmalloc. If flickering happens again, activate
10837 the code in clear_glyph_row that's in #if 0. If the flickering is
10838 gone with that, chances are that it is caused by something similar.
10839
10840 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
10841
10842 * dispextern.h: Add some comments.
10843
10844 * window.c (add_window_to_list): Add parameter LIST.
10845 (window_list): Order list so that, for each frame, windows are
10846 in canonical order, and so that frames appear in the list in
10847 the order given by Vframe_list.
10848 (next_window): Reverse the handling of NEXT_P.
10849
10850 2000-07-04 Gerd Moellmann <gerd@gnu.org>
10851
10852 * window.c (Vwindow_list): New variable.
10853 (make_window, delete_window): Set Vwindow_list to nil.
10854 (check_window_containing): New function.
10855 (window_from_coordinates): Rewritten.
10856 (add_window_to_list, window_list, candidate_window_p)
10857 (decode_next_window_args, next_window): New functions.
10858 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
10859 (Fwindow_list): New function.
10860 (Fother_window): Cleaned up.
10861 (foreach_window): Add a longer "variable argument list". Let
10862 callback function return 0 to indicate that cycling over windows
10863 should stop.
10864 (foreach_window_1): Likewise.
10865 (freeze_window_start): Return int.
10866 (init_window): New function.
10867 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
10868
10869 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
10870 input_event with bzero.
10871 (main): Call init_window.
10872
10873 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
10874 a menu filter.
10875
10876 2000-07-04 Kenichi Handa <handa@etl.go.jp>
10877
10878 * composite.h (make_composition_value_copy): Extern it.
10879
10880 * composite.c (make_composition_value_copy): New function.
10881
10882 * editfns.c (Fformat): While copying text properties, make each
10883 composition property value a copy.
10884
10885 * fns.c (concat): While copying text properties, make each
10886 composition property value a copy.
10887
10888 2000-07-03 Gerd Moellmann <gerd@gnu.org>
10889
10890 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
10891
10892 * fns.c (sweep_weak_table): Mark only objects that are not
10893 marked already.
10894
10895 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
10896 include those frames as candidates which have their focus
10897 redirected to the minibuffer frame.
10898
10899 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
10900
10901 * fns.c (Fputhash): Return `value' rather than nil.
10902
10903 2000-06-30 Gerd Moellmann <gerd@gnu.org>
10904
10905 * frame.c (next_frame): Don't check focus redirection in case
10906 MINIBUF is a window. Doing so excludes frames using MINIBUF
10907 unless their focus is redirected, which contradicts the
10908 specification of next-frame, and leads to infinite loops in
10909 certain situations when cycling through windows with next-window.
10910
10911 2000-06-30 Kenichi Handa <handa@etl.go.jp>
10912
10913 * coding.c (code_convert_region): Even if the length of text is
10914 zero, try to convert it if coding->type is coding_type_ccl.
10915 (decode_coding_string, encode_coding_string): Likewise.
10916
10917 2000-06-28 Gerd Moellmann <gerd@gnu.org>
10918
10919 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
10920 the display if windows_or_buffers_changed.
10921
10922 * dispnew.c (struct row_entry): New structure.
10923 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
10924 (row_table_size, old_lines, new_lines, old_lines_size)
10925 (new_lines_size, run_pool, runs_size, runs): New variables.
10926 (add_row_entry): New function.
10927 (scrolling_window): Use data structures allocated with xmalloc and
10928 held in global variables, instead of allocating them with alloca and
10929 holding them in local variables. Use a larger hash table whose
10930 size depends on glyph matrix sizes. Don't use bzero to clear the
10931 hash table; instead, clear used slots only.
10932
10933 * fns.c (next_almost_prime): Make it externally visible.
10934
10935 * lisp.h (next_almost_prime): Add prototype.
10936
10937 * s/isc4-0.h (sigunblock): Define.
10938
10939 * s/sco5.h (sigunblock): Define.
10940
10941 2000-06-27 Dave Love <fx@gnu.org>
10942
10943 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
10944 (moved to osf5-0.h).
10945 [!NOT_C_CODE]: Protect string.h stuff.
10946
10947 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
10948 (sys_siglist, NSIG): Definitions moved here from osf1.h.
10949
10950 2000-06-27 Gerd Moellmann <gerd@gnu.org>
10951
10952 * xdisp.c (resize_mini_window): Subtract the extra line spacing
10953 below the last line from the needed window height.
10954
10955 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
10956
10957 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
10958 (Fwidget_get): Use it.
10959 (syms_of_fns): Defsubr it.
10960
10961 2000-06-26 Gerd Moellmann <gerd@gnu.org>
10962
10963 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
10964 display info for XIM.
10965 (xim_open_dpy): Likewise.
10966 (xim_close_dpy): Don't free the display info's XIM.
10967
10968 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
10969
10970 * config.in (USE_XIM): New define.
10971
10972 * keymap.c (get_keyelt): For menu-items containing a `:filter
10973 FILTER', apply FILTER to the menu-item's definition to get the
10974 real definition to use.
10975
10976 * lisp.h (QCfilter): External declaration.
10977
10978 * xfns.c (Fimage_size): New function.
10979 (syms_of_xfns): Defsubr it.
10980
10981 2000-06-26 Andreas Schwab <schwab@suse.de>
10982
10983 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
10984 Fstring_as_unibyte.
10985
10986 2000-06-25 Dave Love <fx@gnu.org>
10987
10988 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
10989
10990 * Makefile.in (blockinput.h): Depend on atimer.h.
10991 (atimer.h): Depend on systime.h.
10992
10993 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
10994
10995 * atimer.h: Protect against multiple inclusion. Include systime.h.
10996
10997 * lisp.h (swap_in_global_binding): Declare.
10998
10999 2000-06-24 Ken Raeburn <raeburn@gnu.org>
11000
11001 * process.c (Fopen_network_stream): Turn off atimers for duration
11002 of call to connect. (Patch from Gerd.)
11003
11004 2000-06-23 Dave Love <fx@gnu.org>
11005
11006 * ralloc.c: Maybe include unistd.h
11007
11008 * emacs.c (setgrp): Undefine before defining.
11009 (malloc_warning, set_time_zone_rule, index): Prototype.
11010
11011 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
11012 HAVE_STRUCT_TIMEZONE.
11013
11014 * s/osf1.h: Move string.h hack here from alpha.h and make it
11015 conditional.
11016 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
11017 _XOPEN_SOURCE.
11018 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
11019 (SOCKLEN_TYPE): Don't define.
11020
11021 * m/alpha.h: Remove string.h hack.
11022
11023 * s/osf5-0.h: New file.
11024
11025 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
11026 include time.h, done by systime.h.
11027 [__FreeBSD__]: Remove redundant includes.
11028
11029 * callproc.c (setpgrp): Undefine before defining.
11030 (delete_temp_file): Return Qnil to avoid warning.
11031
11032 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
11033
11034 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
11035 HAVE_X_WINDOWS.
11036
11037 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
11038
11039 * composite.h (compose_text): Declare.
11040
11041 * xterm.c: Don't include sys/types.h unconditionally. Don't
11042 protect its inclusion with !USG (following xmenu.c).
11043
11044 2000-06-23 Gerd Moellmann <gerd@gnu.org>
11045
11046 * xfns.c (x_create_tip_frame): Initialize frame's colors like
11047 in x_create_frame.
11048
11049 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
11050
11051 * coding.c (decode_eol_post_ccl): Special handling for undecided
11052 and inconsistent EOL types.
11053
11054 2000-06-22 Gerd Moellmann <gerd@gnu.org>
11055
11056 * xrdb.c (x_load_resources): Add default resource for scroll bar's
11057 trough color and main window's background color.
11058
11059 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
11060
11061 * xterm.h (Xt_app_con): External declaration.
11062
11063 * widget.c (EmacsFrameRealize): Fix typo.
11064
11065 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
11066
11067 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
11068 (handle_invisible_prop): Record the start of invisible text in
11069 it->add_overlay_start.
11070 (struct overlay_entry): Add member `overlay'.
11071 (handle_overlay_change): Simplify.
11072 (next_overlay_string): After having processed overlay strings at the
11073 end of the buffer, record that fact in
11074 it->overlay_strings_at_end_processed_p.
11075 (compare_overlay_entries): If before- and after-strings come
11076 from the same overlay, let before-strings come first.
11077 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
11078 (load_overlay_strings): Take it->add_overlay_start into account
11079 when adding overlay strings.
11080
11081 * dispextern.h (struct it): Add member add_overlay_start.
11082
11083 2000-06-22 Dave Love <fx@gnu.org>
11084
11085 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
11086
11087 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
11088
11089 2000-06-22 Kenichi Handa <handa@etl.go.jp>
11090
11091 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
11092 is greater than 0.
11093
11094 2000-06-21 Dave Love <fx@gnu.org>
11095
11096 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
11097
11098 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
11099
11100 * syntax.c (back_comment): Simplify string-parity counting (with
11101 the added benefit of handling multiple string-styles as long as
11102 they are not intertwined).
11103 Jump to the slow code as soon as a comment starter is found in
11104 a "string_lossage" position. Fixes the case: " /* " /* " */.
11105
11106 2000-06-21 Dave Love <fx@gnu.org>
11107
11108 * Makefile.in: Use GETLOADAVG_LIBS.
11109
11110 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
11111 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
11112
11113 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
11114
11115 * syntax.c (describe_syntax): Recognize the `n'estable bit.
11116 (Fforward_comment, scan_lists):
11117 Check the comstyle of single-char comment-starters.
11118 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
11119 we're just at the beginning of the comment (f.ex with (*) ... (*)).
11120 Check the comstyle of single-char comment-starters.
11121 Clarify control-flow around the Scomment case.
11122
11123 2000-06-20 Dave Love <fx@gnu.org>
11124
11125 * fns.c (make_hash_table, maybe_resize_hash_table):
11126 Cast arg of next_almost_prime.
11127
11128 * tparam.c [emacs]: Include lisp.h.
11129
11130 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
11131 and unistd.h.
11132
11133 2000-06-20 Gerd Moellmann <gerd@gnu.org>
11134
11135 * keyboard.c (adjust_point_for_property): Check if display
11136 property should be treated as intangible by looking at its value.
11137
11138 * xdisp.c (single_display_prop_intangible_p)
11139 (display_prop_intangible_p): New functions.
11140
11141 * dispextern.h (display_prop_intangible_p): Add prototype.
11142
11143 * xdisp.c (dump_glyph_row): Show type of glyph->object.
11144
11145 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
11146 argument to sigprocmask.
11147
11148 * s/sco5.h (sigblock): Redefined to pass a pointer as second
11149 argument to sigprocmask.
11150
11151 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
11152 sigprocmask_set, and pass a pointer to it to sigprocmask.
11153
11154 * sysdep.c (sigprocmask_set): New variable.
11155
11156 * fileio.c (make_temp_name): Don't use `%s' in string passed to
11157 report_file_error.
11158
11159 2000-06-20 Sam Steingold <sds@gnu.org>
11160
11161 * xrdb.c: Don't declare xmalloc, xrealloc.
11162
11163 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
11164
11165 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
11166 (re_comp): Cast gettext return value to avoid complaints when
11167 !HAVE_LIBINTL.
11168
11169 2000-06-20 Dave Love <fx@gnu.org>
11170
11171 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
11172
11173 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
11174
11175 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
11176
11177 * m/alpha.h: Don't declare xmalloc, xrealloc.
11178
11179 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
11180
11181 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
11182
11183 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
11184
11185 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
11186 HAVE_GETWD.
11187
11188 * keyboard.h (poll_for_input_1): Declare.
11189
11190 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
11191
11192 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
11193
11194 * doprnt.c: Don't declare xmalloc, xrealloc.
11195
11196 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
11197 (getenv, ctime, getwd): Removed.
11198 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
11199
11200 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
11201 x_set_tool_bar_lines.
11202
11203 * config.in: Add HAVE_GETWD. Move some definitions above
11204 machine/system includes.
11205
11206 2000-06-20 Kenichi Handa <handa@etl.go.jp>
11207
11208 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
11209
11210 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
11211 contain information about ENCODING.
11212
11213 * fontset.c (FONTSET_ASCII): Use the first element of char table
11214 for an ASCII font, not defalt slot.
11215 (fontset_ref_via_base): If FONTSET doesn't contain information for
11216 C, try the default fontset.
11217 (make_fontset): Don't copy the default fontset.
11218 (fontset_font_pattern): Likewise.
11219 (accumulate_font_info): If ELT is nil, use the corresponding
11220 element in the default fontset.
11221
11222 2000-06-19 Dave Love <fx@gnu.org>
11223
11224 * syntax.c (Fparse_partial_sexp): Doc fix.
11225
11226 * regex.h: Test PROTOTYPES as well as __STDC__.
11227
11228 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
11229 errno, strerror. Put text after #endif in comment.
11230
11231 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
11232
11233 * xterm.c (x_frame_of_widget): Likewise.
11234
11235 2000-06-19 Gerd Moellmann <gerd@gnu.org>
11236
11237 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
11238 to Vfundamental_mode_abbrev_table.
11239
11240 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
11241 bogus objects are marked. This slows down GC by ~80 percent, but
11242 it might be worth trying when debugging GC-related problems.
11243 This feature requires conservative stack marking to be enabled.
11244
11245 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
11246 returns XLookupChars, reset `modifiers' to zero.
11247
11248 2000-06-19 Dave Love <fx@gnu.org>
11249
11250 * mktime.c: Unprotoized.
11251
11252 2000-06-19 Richard Stallman <rms@gnu.org>
11253
11254 * data.c (set_internal): If variable is frame-local,
11255 store the new value immediately into the frame parameter alist.
11256
11257 2000-06-19 Ken Raeburn <raeburn@gnu.org>
11258
11259 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
11260 in the custom handler pointer.
11261
11262 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
11263 value, or checks for CHAR_META can fail when Lisp_Object is a
11264 union type.
11265 * keymap.c (get_keyelt): Likewise.
11266
11267 2000-06-19 Kenichi Handa <handa@etl.go.jp>
11268
11269 * ccl.h (struct ccl_program): New member eol_type.
11270 (struct ccl_spec): New member cr_carryover.
11271
11272 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
11273 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
11274
11275 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
11276 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
11277 (decode_eol_post_ccl): New function.
11278 (decode_coding): Don't detect EOL format here for CCL based coding
11279 systems.
11280 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
11281 decode_eol_post_ccl after running the CCL program.
11282 (code_convert_region): Don't detect EOL format here for CCL based
11283 coding systems.
11284 (decode_coding_string): Likewise.
11285
11286 2000-06-18 Ken Raeburn <raeburn@gnu.org>
11287
11288 * charset.c (update_charset_table): Use XINT on "iso_final_char"
11289 when treating it as an integer.
11290
11291 * coding.h (encode_coding_string): Declare.
11292
11293 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
11294 it as an integer.
11295
11296 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
11297 "xkeymap" to avoid shadowing the "enum map_type" value that needs
11298 to be passed to get_local_map.
11299
11300 * sound.c (Fplay_sound): Don't call make_number on
11301 Frun_hook_with_args count argument.
11302
11303 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
11304 for lisp objects in X event structure data field, when lisp
11305 objects are represented with unions.
11306 (x_scroll_bar_to_input_event): Ditto.
11307
11308 2000-06-16 Ken Raeburn <raeburn@gnu.org>
11309
11310 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
11311 termination of string. Fix sense of test whether
11312 Vline_number_display_limit is an integer.
11313
11314 2000-06-16 Gerd Moellmann <gerd@gnu.org>
11315
11316 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
11317 only if HAVE_X_WINDOWS.
11318
11319 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
11320 of titles.
11321
11322 * dispnew.c (update_frame_1): Handle case that cursor vpos is
11323 out of bounds.
11324
11325 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
11326
11327 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
11328 of its headers.
11329
11330 2000-06-15 Kenichi Handa <handa@etl.go.jp>
11331
11332 * coding.c (decode_coding_emacs_mule): Always set src_base at the
11333 start of the while loop.
11334
11335 2000-06-15 Gerd Moellmann <gerd@gnu.org>
11336
11337 * atimer.c (alarm_signal_handler): Add forward declaration.
11338
11339 * data.c (set_internal): Remove debug code.
11340
11341 2000-06-14 Gerd Moellmann <gerd@gnu.org>
11342
11343 * Makefile.in (bootstrap-temacs): Add `-I../src'.
11344
11345 * unexec.c (toplevel) [COFF]: Include coff.h.
11346
11347 * s/lynxos.h: New file.
11348
11349 * keymap.c (Fsingle_key_description): Enclose function key and
11350 event symbol names in angle brackets.
11351
11352 * xdisp.c (setup_echo_area_for_printing): Call
11353 message_log_maybe_newline if message_buf_print is not set.
11354
11355 * print.c (printchar, strout): Don't check message_buf_print
11356 before calling setup_echo_area_for_printing because that
11357 function does something useful even when message_buf_print is
11358 already set.
11359
11360 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
11361 New variables.
11362 (ensure_echo_area_buffers): Initialize echo buffer's
11363 truncate lines setting to nil.
11364 (with_echo_area_buffer): Don't set the echo buffer's truncate
11365 lines setting here.
11366 (set_message_1): Set it here instead, based on the value
11367 of message_truncate_lines.
11368 (resize_mini_window): Handle case that lines are truncated.
11369 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
11370 DEFVAR_BOOL message-truncate-lines.
11371
11372 * keyboard.c (read_char): Bind message-truncate-lines to t
11373 while displaying a help-echo.
11374
11375 * lisp.h (Qmessage_truncate_lines): External declaration.
11376
11377 2000-06-13 Gerd Moellmann <gerd@gnu.org>
11378
11379 * xdisp.c (Vline_number_display_limit): Renamed from
11380 line_number_display_limit.
11381 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
11382 Extend documentation string. Initialize
11383 Vline_number_display_limit to nil meaning no limit.
11384 (decode_mode_spec): Use Vline_number_display_limit with its new
11385 meaning.
11386
11387 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
11388
11389 2000-06-13 Richard Stallman <rms@gnu.org>
11390
11391 * frame.c (Fmodify_frame_parameters): Doc fix.
11392
11393 * xfns.c (x_set_frame_parameters): Comment fix.
11394
11395 * frame.c (store_frame_param): Call swap_in_global_binding if the
11396 variable's current binding was chosen based on this frame.
11397
11398 * data.c (swap_in_global_binding): New function.
11399
11400 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
11401
11402 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
11403 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
11404
11405 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
11406
11407 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
11408
11409 2000-06-12 Jason Rumney <jasonr@gnu.org>
11410
11411 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
11412
11413 * w32.h (EMACS_W32_H): Renamed from _NT_H_
11414
11415 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
11416
11417 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
11418
11419 2000-06-12 Gerd Moellmann <gerd@gnu.org>
11420
11421 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
11422 (syms_of_xfaces): Defsubr Sdump_colors.
11423 (x_free_colors): Don't treat b&w specially on default visual.
11424 (x_free_dpy_colors): New function.
11425 (free_face_colors): Don't check visual class; it's done
11426 in x_free_colors.
11427
11428 * xterm.c (x_frame_of_widget): New function.
11429 (x_alloc_nearest_color_for_widget): Use it.
11430 (x_copy_dpy_color): New function.
11431 (x_destroy_window): Free various colors.
11432
11433 2000-06-12 Kenichi Handa <handa@etl.go.jp>
11434
11435 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
11436
11437 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
11438
11439 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
11440
11441 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
11442
11443 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
11444
11445 2000-06-11 Dave Love <fx@gnu.org>
11446
11447 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
11448
11449 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
11450
11451 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
11452
11453 2000-06-11 Gerd Moellmann <gerd@gnu.org>
11454
11455 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
11456 to `XEvent *'.
11457
11458 2000-06-10 Kenichi Handa <handa@etl.go.jp>
11459
11460 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
11461 (regex_compile): Fix the code for handling the case of single byte
11462 char and multibyte char being mixed in a range within [...].
11463
11464 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
11465 and dst_multibyte members of coding.
11466
11467 * charset.c (update_charset_table): Update the table
11468 bytes_by_char_head.
11469 (init_charset_once): Initialize elements of bytes_by_char_head to
11470 1 except for leading codes for private charases.
11471
11472 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
11473 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
11474
11475 2000-06-09 Ken Raeburn <raeburn@gnu.org>
11476
11477 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
11478 access the data it doesn't point to.
11479
11480 2000-06-08 Gerd Moellmann <gerd@gnu.org>
11481
11482 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
11483 will be translated to a switch-frame event when reading the
11484 event queue. This is necessary because Emacs otherwise won't
11485 perform a switch-frame to a new frame until some other event, for
11486 example a keystroke event, forces it to do so. This has various
11487 effects, one visible being that the cursor of a frame created with
11488 C-x 5 2 or switched to with a window manager key binding like
11489 A-TAB stays hollow because selected_window isn't on the newly
11490 focused frame until the switch-frame is performed.
11491
11492 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
11493 generating a switch-frame event if necessary.
11494
11495 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
11496
11497 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
11498 it's an integer.
11499
11500 2000-06-08 Kenichi Handa <handa@etl.go.jp>
11501
11502 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
11503
11504 2000-06-07 Gerd Moellmann <gerd@gnu.org>
11505
11506 * window.c (displayed_window_lines): Take empty lines at
11507 the bottom of a window into account.
11508
11509 * window.c (displayed_window_lines): New function.
11510 (Fmove_to_window_line): Use displayed_window_lines to determine
11511 the number of lines to move, instead of using the window's height.
11512
11513 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
11514 to stop reading, even if the form read sets point to a different
11515 value when evaluated.
11516
11517 * xdisp.c (display_line): Fix code deciding in which line to
11518 put the cursor.
11519
11520 2000-06-07 Kenichi Handa <handa@etl.go.jp>
11521
11522 * fileio.c (e_write): Free composition data if stored in
11523 coding->cmp_data.
11524
11525 2000-06-06 Gerd Moellmann <gerd@gnu.org>
11526
11527 * xdisp.c (display_line): Set row's and iterator's
11528 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
11529 Set cursor even if row ends in the middle of a character.
11530 (dump_glyph_row): Print values of new flags.
11531 (redisplay_window) <cursor movement in unchanged window>: When
11532 point has been moved forward, and PT is at the end of the cursor
11533 row, don't place the cursor in the next row if the cursor row ends
11534 in the middle of a character or at ZV.
11535
11536 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
11537 (struct glyph_row): Add starts_in_middle_of_char_p and
11538 ends_in_middle_of_char_p.
11539 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
11540 ends_in_middle_of_char_p flag.
11541 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
11542
11543 * term.c (append_glyph): Revert change of 2000-06-06.
11544
11545 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
11546 padding glyph not fitting on line as whole character not
11547 fitting on line.
11548
11549 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
11550 this isn't true for images with `:ascent 100'.
11551
11552 2000-06-06 Kenichi Handa <handa@etl.go.jp>
11553
11554 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
11555 as modified if it is originally unmodified.
11556
11557 * term.c (encode_terminal_code): Change the way to check if
11558 terminal coding does any conversion.
11559 (append_glyph): Set glyph->pixel_width correctly.
11560
11561 * xdisp.c (display_line): While checking line continuation, pay
11562 attention to a padding glyph.
11563
11564 2000-06-05 Gerd Moellmann <gerd@gnu.org>
11565
11566 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
11567
11568 2000-06-05 Dave Love <fx@gnu.org>
11569
11570 * xdisp.c: Include fontset.h.
11571
11572 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
11573
11574 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
11575
11576 * dispnew.c: Conditionally include term.h.
11577
11578 * coding.h: Declare code_convert_string_norecord.
11579
11580 * frame.h (struct frame): Use volatile unconditionally.
11581
11582 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
11583
11584 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
11585
11586 * systime.h: Protect against multiple inclusion.
11587 (timezone) [USG5_4]: Define as time_t.
11588
11589 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
11590 (Foptimize_char_table, make_temp_name): Declare.
11591
11592 * Makefile.in (xdisp.o): Depend on fontset.h.
11593
11594 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
11595
11596 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
11597 (Foptimize_char_table, make_temp_name): Declare.
11598
11599 * s/irix4-0.h:
11600 * s/irix5-0.h:
11601 * s/netbsd.h: Don't define autoconfiscated MATHERR.
11602
11603 2000-06-02 Dave Love <fx@gnu.org>
11604
11605 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
11606
11607 2000-06-02 Gerd Moellmann <gerd@gnu.org>
11608
11609 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
11610 result face, set flags in that face indicating that colors may not
11611 be freed.
11612
11613 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
11614 glyph, use the ASCII NUL character to determine the face.
11615
11616 2000-06-02 Dave Love <fx@gnu.org>
11617
11618 * sysdep.c: Conditionally include stdlib.h, unistd.h.
11619 (VFORK_RETURN_TYPE): Remove.
11620
11621 * config.in: Add NO_MATHERR.
11622
11623 2000-06-01 Dave Love <fx@gnu.org>
11624
11625 * cmds.c (internal_self_insert): Don't check
11626 Vbefore_change_function, Vafter_change_function.
11627
11628 * insdel.c (signal_before_change, signal_after_change): Likewise.
11629
11630 * buffer.c (Vbefore_change_function, Vafter_change_function):
11631 Variables and their initializations deleted.
11632
11633 * callint.c (Fcall_interactively): Doc fix.
11634
11635 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
11636
11637 2000-05-31 Dave Love <fx@gnu.org>
11638
11639 * textprop.c: Revert last change -- duplicated.
11640
11641 2000-05-31 Gerd Moellmann <gerd@gnu.org>
11642
11643 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
11644 in #if 0.
11645
11646 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
11647
11648 2000-05-31 Jason Rumney <jasonr@gnu.org>
11649
11650 * search.c (Fre_search_forward, Fre_search_backward)
11651 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
11652
11653 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
11654
11655 2000-05-30 Jason Rumney <jasonr@gnu.org>
11656
11657 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
11658 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
11659
11660 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
11661
11662 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
11663 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
11664 expand a nil default_filename.
11665
11666 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
11667 pointer to glyph_to_pixel_coords, not a frame.
11668
11669 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
11670 coding.h to dependencies.
11671
11672 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
11673
11674 * w32console.c (glyph_to_pixel_coords): Change first parameter to
11675 window pointer to be consistent with w32term.c and xterm.c.
11676
11677 * w32fns.c: Format and doc changes to bring closer to xfns.c.
11678 (VIETNAMESE_CHARSET): Define if not defined in system headers.
11679 (Qline_spacing, Qcenter): New variables.
11680 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
11681 (x_set_line_spacing): New function.
11682 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
11683 (x_specified_cursor_type): New function.
11684 (x_set_cursor_type): Use it.
11685 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
11686 and icon strings.
11687 (validate_x_resource_name, x_get_resource_string): Measure lengths
11688 of external strings in bytes.
11689 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
11690 GetTextExtentPoint32 with NULL title.
11691 (Fx_create_frame): Initialize Qline_spacing.
11692 (w32_load_system_font): Initialize font->double_byte_p.
11693 (x_to_w32_charset): Use Vw32_charset_info_alist.
11694 (Image, busy cursor, tooltip functions): Merged changes from
11695 xfns.c. Not yet functional on Windows.
11696
11697 * w32gui.h (W32FontStruct): Add double_byte_p member.
11698
11699 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
11700 (emacs_button_translation): Use it.
11701 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
11702 in `mask' to be set.
11703
11704 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
11705 menu strings.
11706
11707 * w32term.c: Format and doc changes to bring closer to xterm.c.
11708 (w32_char_font_type): New enum.
11709 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
11710 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
11711 (w32_encode_char): New function.
11712 (x_encode_char): Removed.
11713 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
11714 x_encode_char and w32_font_is_double_byte.
11715 (x_produce_image_glyph): Use image_ascent.
11716 (x_produce_glyphs): Use new version of w32_per_char_metric and
11717 handle NULL return value. Allow extra line spacing.
11718 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
11719 (w32_get_glyph_overhangs): Remove unicode_p param. Use
11720 w32_font_type member of glyph instead.
11721 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
11722 (fast_find_position): Make sure not to consider rows not visible
11723 in the window.
11724 (w32_read_socket) [WM_MENUSELECT]: Cannot call
11725 w32_menu_display_help with input blocked, as it can abort.
11726 (x_display_and_set_cursor): Choose cursor depending
11727 on buffer-local value of cursor_type.
11728 (x_draw_bar_cursor): Add parameter WIDTH.
11729
11730 * w32term.h (CP_DEFAULT): Define.
11731 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
11732
11733 2000-05-30 Gerd Moellmann <gerd@gnu.org>
11734
11735 * search.c (Fre_search_forward, Fre_search_backward)
11736 (Fposix_search_backward, Fposix_search_forward): Doc fix.
11737
11738 2000-05-30 Kenichi Handa <handa@etl.go.jp>
11739
11740 * coding.c (detect_coding_iso2022): Fix code for checking
11741 CODING_CATEGORY_MASK_ISO_8_2.
11742
11743 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
11744
11745 * regex.c (PREFETCH_NOLIMIT): New function.
11746 (re_match_2_internal): Use it and adjust the end_match_2 logic.
11747
11748 2000-05-29 Gerd Moellmann <gerd@gnu.org>
11749
11750 * syntax.c (find_defun_start): Move test for
11751 open_paren_in_column_0_is_defun_start outside of the loop.
11752
11753 * xdisp.c (redisplay_window): Really switch buffers when
11754 displaying mode lines, and temporarily set selected_frame to the
11755 frame of the window that's redisplayed.
11756
11757 * xfaces.c (free_realized_faces): Block/unblock input.
11758 (free_realized_multibyte_face): Ditto.
11759
11760 2000-05-29 Dave Love <fx@gnu.org>
11761
11762 * textprop.c (Qkeymap): New variable.
11763 (syms_of_textprop): Intern it.
11764
11765 * keymap.c: Include intervals.h.
11766 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
11767
11768 * Makefile.in (keymap.o): Depend on intervals.h.
11769
11770 * keyboard.c (menu_bar_items, tool_bar_items)
11771 (Fexecute_extended_command): Deal with `keymap' property.
11772 (read_key_sequence): Track map from `keymap' property as well as
11773 `local_map'.
11774
11775 * intervals.c (get_local_map): Extra arg to allow looking for
11776 `keymap' too.
11777
11778 * intervals.h (map_property): New enum.
11779 (get_local_map): Extra arg using it.
11780 (Qkeymap): Declare.
11781
11782 * lisp.h (get_local_map): Don't declare here.
11783
11784 2000-05-29 Kenichi Handa <handa@etl.go.jp>
11785
11786 * Makefile.in (callproc.o): Depend on composite.h.
11787
11788 * callproc.c: Include composite.h.
11789 (Fcall_process): Handle composition correctly.
11790
11791 * coding.h (coding_allocate_composition_data): Extern it.
11792 (coding_restore_composition): Likewise.
11793
11794 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
11795 yet allocated, finish decoding with result
11796 CODING_FINISH_INSUFFICIENT_CMP.
11797 (coding_allocate_composition_data): Make it non-static.
11798 (coding_restore_composition): Likewise.
11799
11800 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
11801
11802 * charset.c (syms_of_charset): Revert last change.
11803
11804 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
11805
11806 * term.c (produce_glyphs): Treat characters from the eight-bit-*
11807 charsets as unibyte, with 1-column screen width. Sent by Kenichi
11808 Handa.
11809
11810 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
11811
11812 * charset.c (syms_of_charset): Set width of character sets
11813 eight-bit-control and eight-bit-graphic to 1 column.
11814
11815 2000-05-26 Gerd Moellmann <gerd@gnu.org>
11816
11817 * config.in (HAVE_SPEED_T): New define.
11818
11819 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
11820 `extern speed_t'.
11821
11822 2000-05-26 Dave Love <fx@gnu.org>
11823
11824 * coding.c (shrink_decoding_region): Initialize eol_conversion.
11825
11826 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
11827 (Fsubr_arity): New function.
11828 (syms_of_data): Install them.
11829
11830 2000-05-26 Kenichi Handa <handa@etl.go.jp>
11831
11832 * charset.c (init_charset_once): Set the table bytes_by_char_head
11833 correctly.
11834
11835 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
11836 the default fontset to what Emacs uses by default.
11837 (check_registry_encoding): This function deleted.
11838 (Fset_fontset_font): Remove the adhoc condition for the default
11839 fontset. Allow cons in FONTNAME.
11840
11841 * fns.c (map_char_table): Ignore char-table entries for
11842 charsets eight-bit-control and eight-bit-graphic.
11843
11844 2000-05-25 Ken Raeburn <raeburn@gnu.org>
11845
11846 * emacs.c (main): Initialize keyboard syms before initializing
11847 window code, so face names are available.
11848
11849 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
11850
11851 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
11852 of an anchor at the beginning of a shy-group.
11853
11854 2000-05-25 Gerd Moellmann <gerd@gnu.org>
11855
11856 * xdisp.c (handle_invisible_prop): Don't try to skip over
11857 invisible text if end of text is already reached.
11858
11859 2000-05-25 Dave Love <fx@gnu.org>
11860
11861 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
11862
11863 * coding.c (encode_eol): Add null statement after label.
11864
11865 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
11866
11867 * w16select.c (Fw16_set_clipboard_data): Fix the change from
11868 2000-05-20.
11869
11870 2000-05-25 Kenichi Handa <handa@etl.go.jp>
11871
11872 * ccl.c (ccl_driver): Fix previous change.
11873
11874 2000-05-25 Kenichi Handa <handa@etl.go.jp>
11875
11876 * coding.c (run_pre_post_conversion_on_str): Set point to the
11877 beginning of buffer before calling coding->post_read_conversion.
11878 (decode_coding_string): Give correct args to
11879 run_pre_post_conversion_on_str.
11880 (encode_coding_string): Likewise.
11881
11882 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
11883 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
11884 eight-bit-graphic correctly.
11885
11886 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
11887
11888 * fileio.c (Finsert_file_contents): Even if a file is not found,
11889 execute codes for setting up coding system. Call
11890 after-insert-file-functions unconditionally.
11891
11892 2000-05-24 Gerd Moellmann <gerd@gnu.org>
11893
11894 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
11895 BSD_PGRPS are not defined.
11896
11897 2000-05-24 Kenichi Handa <handa@etl.go.jp>
11898
11899 * charset.c (update_charset_table): Accept nil in LONG_NAME and
11900 DESCRIPTION.
11901 (syms_of_charset): Avoid building same strings.
11902
11903 2000-05-23 Gerd Moellmann <gerd@gnu.org>
11904
11905 * lread.c (Fload): Add a comment about the meaning of
11906 Vuser_init_file being t.
11907
11908 * puresize.h (BASE_PURESIZE): Increase to 675000.
11909
11910 * s/gnu-linux.h (setpgrp): Don't define it here because this
11911 prevents compilation on GNU/Linux systems with glib 2.2.
11912
11913 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
11914 as setpgid.
11915
11916 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
11917
11918 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
11919 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
11920 version.
11921 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
11922
11923 2000-05-23 Kenichi Handa <handa@etl.go.jp>
11924
11925 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11926
11927 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
11928
11929 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
11930
11931 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
11932
11933 2000-05-22 Kenichi Handa <handa@etl.go.jp>
11934
11935 * keyboard.c (read_char): Allow character codes 128..255 to be
11936 handled by input-method-function.
11937
11938 * insdel.c (adjust_markers_for_replace): Fix previous change.
11939 (adjust_after_replace): If PREV_TEXT is nil, call
11940 adjust_markers_for_insert, not adjust_markers_for_replace.
11941
11942 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
11943
11944 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
11945 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
11946 [HAVE_GRANDPT]: Define.
11947 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
11948
11949 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
11950 like SYSV_PTYS.
11951
11952 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
11953
11954 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
11955
11956 2000-05-20 Kenichi Handa <handa@etl.go.jp>
11957
11958 The following changes are to handle 8-bit characters in a
11959 multibyte buffer/string without facing with byte combining
11960 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
11961 eight-bit-graphic (for 0xA0..0xFF) are introduced.
11962
11963 * Makefile.in (fns.o): Depend on charset.h.
11964
11965 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
11966 convert it to unibyte.
11967 (make_string): Use parse_str_as_multibyte, not chars_in_text.
11968
11969 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
11970 apparent char boundary.
11971 (Fset_buffer_multibyte): Convert 8-bit characters in the range
11972 0x80..0x9F to/from multibyte form.
11973
11974 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
11975 to unibyte.
11976
11977 * callproc.c (Fcall_process): Always encode an argument string if
11978 it is multibyte. Setup src_multibyte and dst_multibyte members of
11979 process_coding properly.
11980
11981 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
11982 SPLIT_NON_ASCII_CHAR.
11983
11984 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
11985 as is.
11986 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
11987
11988 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
11989 (SPLIT_CHARACTER_SEQ): This macro deleted.
11990 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
11991 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
11992 and eight-bit-graphic.
11993 (char_to_string): Likewise. Signal an error for too large
11994 character code.
11995 (char_printable_p): Return 0 for 8-bit characters.
11996 (update_charset_table): Update iso_charset_table only when a final
11997 character is non-negative.
11998 (find_charset_in_text): Renamed from find_charset_in_str.
11999 Arguments and return value changed. Callers changed.
12000 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
12001 be -1 if CHARSET is used only internally.
12002 (Fmake_char_internal): Handle new charsets; eight-bit-control and
12003 eight-bit-graphic.
12004 (Fcharset_after): Simplified.
12005 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
12006 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
12007 (multibyte_chars_in_text): Simplified by assuming there's no
12008 invalid multibyte sequence.
12009 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
12010 (str_as_unibyte): New functions.
12011 (Fstring): Simpified by assuming that byte combining never happens.
12012 (init_charset_once): Initialization for
12013 LEADING_CODE_8_BIT_CONTROL.
12014 (syms_of_charset): Intern and staticpro Qeight_bit_control and
12015 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
12016 eight-bit-control and eight-bit-graphic.
12017
12018 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
12019 (CHARSET_8_BIT_GRAPHIC): New macros.
12020 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
12021 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
12022 (CHARSET_REVERSE_CHARSET): Likewise.
12023 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
12024 eight-bit-graphic.
12025 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
12026 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
12027 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
12028 encounter an invalid multibyte sequence.
12029 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
12030 sequence is always valid.
12031 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
12032 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
12033 (CHAR_STRING): For 8-bit characters, call char_to_string.
12034 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
12035 multibyte sequence is always valid.
12036 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
12037 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
12038 (str_as_unibyte): Extern them.
12039 (BCOPY_SHORT): Fix a bug.
12040 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
12041 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
12042 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
12043 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
12044
12045 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
12046 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
12047 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
12048 (EMIT_BYTES): New macros.
12049 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
12050 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
12051 macros deleted.
12052 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
12053 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
12054 check the validity of multibyte sequence.
12055 (decode_coding_emacs_mule): New function.
12056 (encode_coding_emacs_mule): New macro.
12057 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
12058 the source.
12059 (DECODE_ISO_CHARACTER): Just return a character code.
12060 (DECODE_COMPOSITION_START): Set coding->result instead of result.
12061 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
12062 EMIT_CHAR to produced decoded characters. Exit the loop only by
12063 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
12064 block here.
12065 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
12066 only position codes for an invalid character.
12067 (encode_designation_at_bol): Return new destination pointer. 5th
12068 arg DSTP is changed to DST.
12069 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
12070 from the source by ONE_MORE_CHAR. Don't handle the case of last
12071 block here.
12072 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
12073 macros deleted.
12074 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
12075 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
12076 TWO_MORE_BYTES to fetch a byte from the source.
12077 (encode_eol): Pay attention to coding->src_multibyte.
12078 (detect_coding, detect_eol): Preserve members src_multibyte and
12079 dst_multibyte.
12080 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
12081 (encoding_buffer_size): Set magnification to 3 for all coding
12082 systems that require encoding.
12083 (ccl_coding_driver): For decoding, be sure that the result is
12084 valid multibyte sequence.
12085 (decode_coding): Initialize coding->errors and coding->result.
12086 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
12087 and raw-text, always call decode_eol. Handle the case of last
12088 block here. If not coding->dst_multibyte, convert the resulting
12089 sequence to unibyte.
12090 (encode_coding): Initialize coding->errors and coding->result.
12091 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
12092 and raw-text, always call encode_eol. Handle the case of last
12093 block here.
12094 (shrink_decoding_region, shrink_encoding_region): Detect cases
12095 that we can't skip data more rigidly.
12096 (code_convert_region): Setup src_multibyte and dst_multibyte
12097 members of coding. For decoding, if the buffer is multibyte,
12098 convert the source sequence to unibyte in advance. For encoding,
12099 if the buffer is multibyte, convert the resulting sequence to
12100 multibyte afterward.
12101 (run_pre_post_conversion_on_str): New function.
12102 (code_convert_string): Deleted and divided into the following two.
12103 (decode_coding_string, encode_coding_string): New functions.
12104 (code_convert_string1, code_convert_string_norecord): Call one of
12105 above.
12106 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
12107 MAKE_NON_ASCII_CHAR.
12108 (Fset_terminal_coding_system_internal)
12109 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
12110 and dst_multibyte members.
12111 (init_coding_once): Initialize iso_code_class with new enum
12112 ISO_control_0 and ISO_control_1.
12113
12114 * coding.h (enum iso_code_class_type): Member ISO_control_code is
12115 devided into ISO_control_0 and ISO_control_1.
12116 (struct coding_system): New members src_multibyte, dst_multibyte,
12117 errors, and result. Delete member fake_multibyte.
12118 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
12119 nonzero.
12120 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
12121 nonzero.
12122
12123 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
12124 (Faset): Likewise.
12125
12126 * editfns.c (Fformat): Be sure to convert 8-bit characters to
12127 multibyte form.
12128 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
12129 combining occurs.
12130 (Ftranspose_region): Delete codes for handling byte combining.
12131
12132 * fileio.c (Finsert_file_contents): Setup src_multibyte and
12133 dst_multibyte members of coding. On handling REPLACE on unibyte
12134 buffer, convert the result of decode_coding to unibyte. On
12135 inserting into a mutibyte buffer, always call code_convert_region.
12136 (e_write): Setup coding->src_multibyte according to the
12137 multibyteness of the source (buffer or string).
12138
12139 * fns.c (concat): Handle 8-bit characters correctly.
12140 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
12141 unibyte in the result.
12142 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
12143 valid multibyte form in the result.
12144 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
12145 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
12146 return -1, signal an error.
12147 (base64_encode_1): New arg MULTIBYTE. Get each character by
12148 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
12149 character is found, return -1.
12150 (Fbase64_decode_region): Delete codes for handling byte-combining.
12151 Treat each decoded byte as a unibyte character.
12152 (Fbase64_decode_string): Return unibyte string.
12153 (Fcompare_strings, concat, string_byte_to_char): Use
12154 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
12155 FETCH_STRING_CHAR_ADVANCE.
12156 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
12157 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
12158
12159 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
12160 SPLIT_NON_ASCII_CHAR.
12161 (fontset_ref_via_base, fontset_set): Likewise
12162
12163 * insdel.c (adjust_markers_for_record_delete): Deleted.
12164 (adjust_markers_for_insert): Argument changed. Caller changed.
12165 (adjust_markers_for_replace): Likewise.
12166 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
12167 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
12168 (copy_text): Delete unused local varialbe c_save. For converting
12169 to multibyte, be sure to make all 8-bit characters in valid
12170 multibyte form.
12171 (count_size_as_multibyte): Handle 8-bit characters correctly.
12172 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
12173 (adjust_after_replace, replace_range, del_range_2)
12174 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
12175 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
12176 (adjust_after_replace, replace_range, del_range_2) Delete codes for
12177 handling byte combining.
12178 (adjust_before_replace): Deleted.
12179
12180 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
12181 SPLIT_NON_ASCII_CHAR.
12182 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
12183 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
12184 (Fkey_description): Likewise.
12185
12186 * lread.c (read1): On reading multibyte string, be sure to make
12187 all 8-bit chararacters in valid multibyte form.
12188 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
12189
12190 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
12191 unconditionally.
12192
12193 * process.c (Fstart_process): GCPRO current_dir before calling
12194 Ffind_operation_coding_system. Encode arguments here.
12195 (create_process): Don't encode arguments here. Setup
12196 src_multibyte and dst_multibyte members of struct coding.
12197 (read_process_output): Setup src_multibyte and dst_multibyte
12198 members of struct coding. If the output is to multibyte buffer,
12199 always decode the output of the process. Adjust the
12200 representation of 8-bit characters to the multibyteness of the output.
12201 (send_process): Setup coding->src_multibyte according to the
12202 multibyteness of the source.
12203
12204 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
12205 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
12206 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
12207
12208 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
12209
12210 * w16select.c (Fw16_set_clipboard_data): Setup members
12211 src_multibyte and dst_multibyte of coding. Adjusted for the
12212 change for find_charset_in_str.
12213 (Fw16_get_clipboard_data): Likewise.
12214
12215 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
12216 dst_multibyte of coding.
12217 (x_to_w32_font): Likewise.
12218
12219 * w32select.c (Fw32_set_clipboard_data): Setup members
12220 src_multibyte and dst_multibyte of coding. Adjusted for the
12221 change for find_charset_in_str.
12222 (Fw32_get_clipboard_data): Likewise.
12223
12224 * xdisp.c (get_next_display_element): Handle 8-bit characters
12225 correctly.
12226 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
12227 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
12228
12229 * xselect.c (selection_data_to_lisp_data): Setup members
12230 src_multibyte and dst_multibyte of coding. Adjusted for the
12231 change for find_charset_in_str.
12232 (lisp_data_to_selection_data): Likewise.
12233
12234 2000-05-19 Gerd Moellmann <gerd@gnu.org>
12235
12236 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
12237
12238 * dispextern.h (Vimage_types): Add extern declaration.
12239
12240 * xdisp.c (Vimage_types): Moved here from xfns.c.
12241 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
12242
12243 * xfns.c (Vimages_types): Moved to xdisp.c.
12244 (syms_of_xfns): Move `image-types' to xdisp.c.
12245
12246 * w32fns.c (Vimage_types): Removed.
12247 (syms_of_w32fns): Remove `image-types'.
12248
12249 2000-05-18 Kenichi Handa <handa@etl.go.jp>
12250
12251 * fns.c (map_char_table): Pay attention to character number of
12252 charset. Check the validity of charset at the first level. For
12253 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
12254 the default value.
12255
12256 * fontset.c: Include "buffer.h".
12257 (fs_load_font): If the face has fontset, record the face ID in
12258 that fontset.
12259 (Finternal_char_font): New function.
12260 (accumulate_font_info): New function.
12261 (Ffontset_info): Rewritten for the new fontset implementation.
12262 (syms_of_fontset): Register Vdefault_fontset in the first element
12263 of Vfontset_table. Include Vdefault_fontset in
12264 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
12265 function.
12266
12267 2000-05-16 Dave Love <fx@gnu.org>
12268
12269 * m/iris5d.h: Deleted -- unused.
12270
12271 2000-05-16 Gerd Moellmann <gerd@gnu.org>
12272
12273 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
12274 `invalid' instead of `illegal'.
12275
12276 * indent.c (Fmove_to_column): When ending within a tab, insert
12277 spaces first so that markers at the end of the tab get adjusted.
12278
12279 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
12280 buffer list that wasn't selected in that frame.
12281
12282 * filelock.c (get_boot_time): To obtain an 8 char file name, which
12283 is needed on mescaline, use a 2 char prefix, and call
12284 make_temp_name with second arg non-zero.
12285
12286 * fileio.c (make_temp_name): New function, extracted from
12287 Fmake_temp_name.
12288 (Fmake_temp_name): Use it.
12289
12290 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
12291
12292 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
12293
12294 2000-05-15 Gerd Moellmann <gerd@gnu.org>
12295
12296 * Makefile.in (lisp): Add env.elc.
12297
12298 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
12299
12300 2000-05-12 Gerd Moellmann <gerd@gnu.org>
12301
12302 * search.c (Freplace_match): Handle case of `\N' in the
12303 replacement when there's no group N.
12304
12305 2000-05-11 Gerd Moellmann <gerd@gnu.org>
12306
12307 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
12308 of the message to message_dolog.
12309
12310 * keyboard.c (read_char): Don't clear current message for help
12311 events; let the code handling help events handle this. Change
12312 code detecting help events that should be ignored.
12313
12314 * xdisp.c (handle_single_display_prop): Don't try to set PT if
12315 we're interating over a string.
12316
12317 2000-05-09 Dave Love <fx@gnu.org>
12318
12319 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
12320 that offset before writing. Move gcpro region past call of
12321 Ffile_regular_p.
12322
12323 2000-05-04 Dave Love <fx@gnu.org>
12324
12325 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
12326
12327 2000-05-04 Gerd Moellmann <gerd@gnu.org>
12328
12329 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
12330 of inserted characters when BUF equals the current buffer, and PT
12331 is in front of or equal to FROM.
12332
12333 2000-05-03 Gerd Moellmann <gerd@gnu.org>
12334
12335 * xdisp.c (handle_single_display_prop): If display property value
12336 is invalid, or something not supported on the frame, restore
12337 iterator's position to what it was initially. Make sure to return
12338 0 for invalid and unsupported property values.
12339
12340 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
12341 that x_per_char_metric returns null.
12342
12343 2000-05-02 Gerd Moellmann <gerd@gnu.org>
12344
12345 * xterm.h (struct face): Add forward declaration.
12346 (struct image): Ditto.
12347 (image_ascent): Add prototype.
12348
12349 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
12350 (x_draw_image_relief, x_draw_image_foreground_1): Call function
12351 image_ascent instead of using IMAGE_ASCENT.
12352
12353 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
12354 (IMAGE_ASCENT): Removed.
12355
12356 * xfns.c (Qcenter): New variable.
12357 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
12358 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
12359 (image_ascent): New function.
12360 (lookup_image): Recognize `:ascent center'.
12361 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
12362 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
12363 (xbm_load): Don't set image's ascent here.
12364 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
12365 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
12366 check ascent values here.
12367 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
12368 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
12369 (syms_of_xfns): Initialize Qcenter.
12370
12371 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
12372 to the limits, increase the limits.
12373
12374 2000-05-01 Kenichi Handa <handa@etl.go.jp>
12375
12376 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
12377 Check Vfont_encoding_alist against the full name of the opened font.
12378
12379 2000-04-28 Gerd Moellmann <gerd@gnu.org>
12380
12381 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
12382 taller than the window.
12383
12384 2000-04-28 Kenichi Handa <handa@etl.go.jp>
12385
12386 * xfaces.c (realize_x_face): Fix the argument of the second
12387 xassert. BASE_FACE may not be a face for ASCII.
12388
12389 2000-04-27 Gerd Moellmann <gerd@gnu.org>
12390
12391 * print.c (print_object): Treat print-length < 0 as nil.
12392
12393 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
12394
12395 * s/freebsd.h (TERMCAP_OBJ): Removed.
12396 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
12397
12398 * lread.c (read1): Don't treat period followed by certain
12399 characters as symbol start.
12400
12401 * xfns.c (slurp_file): New function.
12402 (xbm_image_p): Handle case of in-memory XBM files.
12403 (xbm_scan): Rewritten to work on memory buffers instead of files.
12404 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
12405 Work on memory buffers instead of files. If DATA is null test
12406 if buffer looks like an in-memory XBM file.
12407 (xbm_load_image): Renamed from xbm_load_image_file. Work on
12408 memory buffers instead of files.
12409 (xbm_file_p): New function.
12410 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
12411
12412 * lread.c (end_of_file_error): New function.
12413 (read1): Call it instead of signaling `end-of-file' directly.
12414
12415 * print.c (print_error_message): Print data of `end-of-file'
12416 with Fprinc instead of Fprin1.
12417
12418 2000-04-26 Ken Raeburn <raeburn@gnu.org>
12419
12420 * window.c (freeze_window_start): Check that minibuffer scroll
12421 window isn't nil before extracting the window structure pointer
12422 from it.
12423
12424 * undo.c (record_delete): If we hit the end of the undo list, stop
12425 picking elements apart.
12426
12427 2000-04-26 Gerd Moellmann <gerd@gnu.org>
12428
12429 * xdisp.c (display_line): If lines are continued, restore
12430 iterator's ascent/descent information to the values before the
12431 first glyph not fitting on the line.
12432
12433 2000-04-25 Gerd Moellmann <gerd@gnu.org>
12434
12435 * xdisp.c (try_window_id) <all changes above window start>: Adjust
12436 positions in glyph matrix. Don't compute new window end positions.
12437
12438 * dispnew.c (increment_matrix_positions): Renamed from
12439 increment_glyph_matrix_buffer_positions.
12440 (increment_row_positions): Renamed from
12441 increment_glyph_row_buffer_positions.
12442
12443 * dispextern.h: Change names of renamed functions from dispnew.c
12444 in prototypes.
12445
12446 2000-04-24 Gerd Moellmann <gerd@gnu.org>
12447
12448 * fileio.c (Fdo_auto_save): Create directories for auto-save
12449 list file if necessary.
12450
12451 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
12452 from buffer or frame.
12453 (automatic_hscrolling_p): New variable.
12454 (hscroll_windows): Scroll windows horizontally only if automatic
12455 hscrolling is allowed.
12456 (syms_of_xdisp): New variable `automatic-hscrolling'.
12457
12458 * frame.h (struct frame): Add member extra_line_spacing.
12459
12460 * xfns.c (x_set_line_spacing): New function.
12461 (Fx_create_frame): Set line spacing from resources.
12462 (Qline_spacing): New variable.
12463 (syms_of_xfns): Initialize Qline_spacing.
12464
12465 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
12466
12467 * buffer.c (init_buffer_once): Handle extra_line_spacing.
12468 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
12469 (reset_buffer): Don't initialize extra2 and extra3. Initialize
12470 extra_line_spacing from default value.
12471 (init_buffer_once): Initialize default value of extra_line_spacing.
12472
12473 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
12474 and extra3.
12475
12476 * xterm.c (x_produce_glyphs): Remove reference to struct it's
12477 prompt_width. Add extra line spacing.
12478
12479 * term.c (produce_glyphs): Remove reference to struct it's
12480 prompt_width.
12481
12482 * dispextern.h (struct it): Remove member prompt_width, add
12483 extra_line_spacing.
12484
12485 2000-04-22 Gerd Moellmann <gerd@gnu.org>
12486
12487 * dispnew.c (update_frame_line): When writing a whole line, make
12488 sure cursor is in the right row afterwards, otherwise a use of
12489 capability `ch' in cmgoto might leave the cursor in the row below.
12490
12491 2000-04-21 Gerd Moellmann <gerd@gnu.org>
12492
12493 * lisp.h (struct Lisp_Buffer_Cons): Remove.
12494
12495 * keyboard.c (timer_check): Fix typo in comment.
12496
12497 2000-04-21 Kenichi Handa <handa@etl.go.jp>
12498
12499 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
12500 name change: ch -> character.
12501
12502 2000-04-20 Gerd Moellmann <gerd@gnu.org>
12503
12504 * keyboard.c (echo_message_buffer): New variable.
12505 (echo_now): Set echo_message_buffer to the echo area buffer used
12506 to display the echo.
12507 (cancel_echoing): Reset echo_message_buffer to nil.
12508 (read_char): Code rewritten that handles canceling an echo or
12509 echoing a dash, respectively.
12510
12511 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
12512 directory doesn't exist.
12513
12514 2000-04-19 Dave Love <fx@gnu.org>
12515
12516 * fns.c (syms_of_fns): Defsubr mapc.
12517 (concat): Don't allow numeric args.
12518 (Fconcat): Doc change.
12519
12520 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
12521
12522 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
12523 instead define end_match(1|2) more carefully.
12524 Use GET_CHAR_BEFORE_2 for `begline'.
12525
12526 2000-04-19 Gerd Moellmann <gerd@gnu.org>
12527
12528 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
12529 on 64-bit systems where NULL is defined as `0'.
12530
12531 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
12532 the `variable argument list' to make it work on Alpha.
12533
12534 * m/alpha.h (_LP64) [!_LP64]: Define.
12535 (ORDINARY_LINK): Define for NetBSD.
12536
12537 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
12538
12539 2000-04-19 Dave Love <fx@gnu.org>
12540
12541 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
12542 change.
12543
12544 * Makefile.in (LIBS): Don't use.
12545 (GETLOADAVG_OBJ): Define again.
12546 (otherobj): Add GETLOADAVG_OBJ.
12547
12548 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
12549
12550 2000-04-18 Gerd Moellmann <gerd@gnu.org>
12551
12552 * lread.c (read_filtered_event): Cancel and start busy cursor.
12553
12554 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
12555 that the per-character metrics may be null.
12556
12557 2000-04-17 Gerd Moellmann <gerd@gnu.org>
12558
12559 * buffer.c (clone_per_buffer_values): New function.
12560 (Fmake_indirect_buffer): Add optional argument CLONE. Call
12561 clone_per_buffer_values if CLONE is not nil.
12562
12563 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
12564
12565 2000-04-16 Dave Love <fx@gnu.org>
12566
12567 * Makefile.in: Remove obsolete localcpp stuff.
12568 (GETLOADAVG_OBJ): Don't define.
12569 (obj): Move LIBOBJS...
12570 (otherobj): ... to here.
12571 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
12572 whitespace-only lines after the continuation (Irix).
12573
12574 2000-04-14 Gerd Moellmann <gerd@gnu.org>
12575
12576 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
12577
12578 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
12579
12580 2000-04-14 Dave Love <fx@gnu.org>
12581
12582 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
12583 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
12584 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
12585 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
12586 NLIST_STRUCT.
12587
12588 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
12589 autoconfiscated HAVE_GETLOADAVG.
12590
12591 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
12592 BROKEN_MKTIME.
12593
12594 2000-04-14 Gerd Moellmann <gerd@gnu.org>
12595
12596 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
12597 (fill_in_lock_file_name): Avoid existing files that aren't links.
12598
12599 2000-04-14 Dave Love <fx@gnu.org>
12600
12601 * Makefile.in (LIBS, LIBOBJS): New variable.
12602 (INTERVAL_SRC): Convert to make variable.
12603 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
12604 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
12605 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
12606 add LIBOBJS.
12607 (SOME_MACHINE_OBJECTS): Remove interval stuff.
12608 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
12609 (shortlisp): Add facemenu, float-sup, frame.
12610 (SOME_MACHINE_LISP): Remove them from here.
12611 (LIBES): Change unused LDLIBS to autoconf LIBS.
12612
12613 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
12614
12615 2000-04-14 Kenichi Handa <handa@etl.go.jp>
12616
12617 * composite.c (update_compositions): If FROM and TO are not in a
12618 valid range, do nothing.
12619
12620 2000-04-13 Gerd Moellmann <gerd@gnu.org>
12621
12622 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
12623
12624 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
12625
12626 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
12627 as TERMCAP_OBJ.
12628
12629 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
12630
12631 * fileio.c (a_write): Remove redundant semi-colons.
12632 (e_write): Return -1 if failed to write all the data.
12633 This fixes the changes made at 1999-12-15.
12634
12635 2000-04-12 Dave Love <fx@gnu.org>
12636
12637 * fns.c (mapcar1): Test for null vals to support mapc.
12638 (Fmapc): New function.
12639
12640 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
12641
12642 * msdos.c (NUM_MOUSE_BUTTONS): Define.
12643 (IT_frame_up_to_date): Support the buffer local value of
12644 cursor-type, if defined.
12645
12646 2000-04-10 Dave Love <fx@gnu.org>
12647
12648 * editfns.c (preceding-char, following-char): Doc fix.
12649
12650 2000-04-10 Ken Raeburn <raeburn@gnu.org>
12651
12652 * Makefile.in (temacs): Revert 2000-03-12 change.
12653
12654 2000-04-10 Jason Rumney <jasonr@gnu.org>
12655
12656 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
12657
12658 2000-04-10 Gerd Moellmann <gerd@gnu.org>
12659
12660 * xdisp.c (setup_echo_area_for_printing): Choose an echo
12661 area buffer, if it's not set up yet.
12662
12663 * indent.c (compute_motion): Set immediate_quit.
12664
12665 2000-04-09 Gerd Moellmann <gerd@gnu.org>
12666
12667 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
12668 (realize_tty_face): Suppress boldness if colors are the inverse of
12669 the default colors, and tty_suppress_bold_inverse_default_colors_p
12670 is set.
12671 (Ftty_suppress_bold_inverse_default_colors): New function.
12672 (syms_of_xfaces): Defsubr it.
12673
12674 * buffer.c (Frestore_buffer_modified_p): New function.
12675 (syms_of_buffer): Defsubr it.
12676
12677 2000-04-08 Ken Raeburn <raeburn@gnu.org>
12678
12679 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
12680 charset id (int) argument, not a charset (Lisp_Object).
12681
12682 * coding.h (code_convert_string): Declare.
12683 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
12684 object, as the fourth argument to code_convert_string.
12685
12686 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
12687 (Fset_fontset_font): Use EQ to compare lisp objects.
12688
12689 2000-04-05 Ken Raeburn <raeburn@gnu.org>
12690
12691 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
12692 a pointer that looks like a lisp object.
12693 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
12694 zero, instead see whether it's an integer object, since they can't
12695 have intervals.
12696 (GET_INTERVAL_OBJECT): Simply assign to the destination.
12697
12698 * dispnew.c (allocate_matrices_for_frame_redisplay)
12699 (direct_output_forward_char): Use X(U)INT and make_number as needed
12700 to convert between (unsigned) int values and lisp integers.
12701 * keyboard.c (read_key_sequence): Likewise.
12702 * lread.c (substitute_object_recurse): Likewise.
12703 * fns.c (concat, hash_lookup, hash_remove): Likewise.
12704 * minibuf.c (do_completion, Fminibuffer_complete_word)
12705 (Fminibuffer_completion_help): Likewise.
12706 * term.c (produce_special_glyphs): Likewise.
12707
12708 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
12709 * print.c (print_preprocess, print_object): Likewise.
12710
12711 * search.c (compile_pattern): Use NILP when checking for nil.
12712
12713 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
12714 __OPTIMIZE__]: Provide a GNU C macro version that handles
12715 lisp-object unions.
12716 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
12717 field, to better cope with ENABLE_CHECKING and calls that modify a
12718 Lisp_Object using its old value.
12719
12720 2000-04-04 Gerd Moellmann <gerd@gnu.org>
12721
12722 * window.c (compare_window_configurations): Signal an error
12723 if parameters C1 or C2 aren't window configurations.
12724
12725 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
12726 AFTER_POTENTIAL_GC calls around calls to functions that can
12727 signal an error and thus invoke the debugger.
12728
12729 2000-04-03 Gerd Moellmann <gerd@gnu.org>
12730
12731 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
12732 an error if decoding fails.
12733
12734 * keyboard.c (lispy_mouse_names): Variable removed.
12735 (Vlispy_mouse_stem): New variable.
12736 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
12737 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
12738 for any mouse button number. Increase size of mouse_syms and
12739 button_down_location as needed. Call modify_event_symbol with
12740 different arguments.
12741 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
12742 Call modify_event_symbol with different arguments.
12743 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
12744 for any button number. Call modify_event_symbol with different
12745 arguments.
12746 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
12747 Accept a string for NAME_ALIST_OR_STEM.
12748
12749 * lisp.h (larger_vector): Add prototype.
12750
12751 * fns.c (larger_vector): Make externally visible.
12752
12753 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
12754
12755 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
12756
12757 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
12758 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
12759 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
12760 we are between str1 and str2.
12761 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
12762 (PATFETCH): Use `TRANSLATE'.
12763 (PATFETCH_RAW): Fetch multibyte char if applicable.
12764 (PATUNFETCH): Remove.
12765 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
12766 When writing a char, write it directly into the pattern buffer rather
12767 than going needlessly through a temp char-array.
12768 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
12769 multibyte magic and remove the useless `#ifdef emacs'.
12770 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
12771 buffer.
12772
12773 * regex.h (struct re_pattern_buffer): Make field `multibyte'
12774 conditional on `emacs'.
12775
12776 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
12777
12778 2000-04-01 Ken Raeburn <raeburn@gnu.org>
12779
12780 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
12781 non-union-type versions of XMARK and friends here, because XMARK
12782 and friends won't work on an integer field if NO_UNION_TYPE is not
12783 defined.
12784 (make_number): Define as a function if it's not defined as a macro.
12785
12786 * composite.c (run_composite_function): Use NILP when checking for nil.
12787 (syms_of_composite): Delete local var NARGS, pass an int as first
12788 argument to Fmake_hash_table.
12789
12790 * editfns.c (text_property_stickiness): Use NILP to test
12791 Lisp_Object boolean value.
12792 (Fmessage_or_box): Don't use NILP to test int variable.
12793 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
12794 problems reading from and changing the same lisp value in an
12795 XSETSTRING call.
12796
12797 2000-04-01 Gerd Moellmann <gerd@gnu.org>
12798
12799 * term.c (TN_no_color_video): New variable.
12800 (term_init): Intitialize TN_no_color_video.
12801 (enum no_color_bit): New enumeration.
12802 (MAY_USE_WITH_COLORS_P): New macro.
12803 (turn_on_face): Use it to determine if attributes may be used
12804 combined with colors.
12805
12806 2000-04-01 Ken Raeburn <raeburn@gnu.org>
12807
12808 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
12809 with int lvalues via casts; instead, just yield lisp object lvalues.
12810 (enlarge_window): Variable sizep now points to Lisp_Object. Use
12811 proper accessor macros.
12812 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
12813 (grow_mini_window): Fix typo getting int value of root->height.
12814
12815 * xdisp.c (compute_string_pos): Fix order of arguments to
12816 string_pos_nchars_ahead.
12817 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
12818 count arg to variable-arg routines like Frun_hook_with_args and
12819 Fformat.
12820 (back_to_previous_visible_line_start)
12821 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
12822 fixed-arg routines like Fget_char_property and Fmake_string.
12823 (reconsider_clip_changes): Use XINT when comparing integer lisp
12824 objects, or passing them as int arguments.
12825 (mark_window_display_accurate, insert_left_trunc_glyphs)
12826 (append_space, extend_face_to_end_of_line): Use make_number when
12827 storing or passing integer values as lisp objects.
12828 (set_cursor_from_row, highlight_trailing_whitespace): Use
12829 INTEGERP, not implicit test against zero, for glyph object.
12830 (try_window_id): Don't use make_number when we want an int value.
12831
12832 * xfaces.c (xlfd_symbolic_value): Make last argument a
12833 Lisp_Object, to be consistent with callers.
12834 (Fbitmap_spec_p): Use XINT to get numeric value of height.
12835 (lface_hash): Apply XFASTINT to lisp values before folding in.
12836
12837 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
12838 fill in window width and height. Pass an int, not a lisp object,
12839 as first arg to Finsert.
12840
12841 2000-04-01 Gerd Moellmann <gerd@gnu.org>
12842
12843 * xfaces.c (realize_basic_faces): Block input while realizing
12844 the faces.
12845
12846 * keyboard.c (lispy_mouse_names): Add additional mouse names.
12847
12848 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
12849
12850 2000-03-31 Gerd Moellmann <gerd@gnu.org>
12851
12852 * xterm.c (x_produce_glyphs): When displaying unibyte text
12853 or ASCII, handle case that per-char metric is null.
12854
12855 2000-03-30 Ken Raeburn <raeburn@gnu.org>
12856
12857 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
12858
12859 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
12860 (XSUBR, XBUFFER): Verify correct object type before returning
12861 pointer, using eassert.
12862 * frame.h (XFRAME): Likewise.
12863
12864 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
12865 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
12866 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
12867 * data.c (set_internal): Likewise.
12868 * dispextern.h (WINDOW_WANTS_MODELINE_P)
12869 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
12870 * fileio.c (auto_save_1): Likewise.
12871 * insdel.c (check_markers): Likewise.
12872 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
12873 * undo.c (record_insert): Likewise.
12874 * vmsproc.c (child_sig): Likewise.
12875 * window.c (unshow_buffer, window_loop): Likewise.
12876 * xterm.c (x_erase_phys_cursor): Likewise.
12877
12878 2000-03-30 Gerd Moellmann <gerd@gnu.org>
12879
12880 * xfns.c (free_image_cache): Free the cache structure itself
12881 last, after all its members have been freed.
12882
12883 * lisp.h (xstrdup): Add prototype.
12884
12885 * alloc.c (xstrdup): Moved here from xfaces.c.
12886 (allocating_for_lisp): Variable removed.
12887 (lisp_malloc): Block input around the calls to malloc and mem_insert.
12888
12889 * xfaces.c (realize_tty_face): Use find_symbol_value instead
12890 of Fsymbol_value.
12891 (xstrdup): Moved to alloc.c.
12892
12893 2000-03-29 Ken Raeburn <raeburn@gnu.org>
12894
12895 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
12896
12897 * emacs.c (main): Fix sense of no-loadup test.
12898
12899 * config.in (ENABLE_CHECKING): Undef.
12900
12901 * lisp.h (struct interval): Replace "parent" field with a union of
12902 interval pointer and Lisp_Object; add new bitfield to use as
12903 discriminant. Change other flag fields to bitfields.
12904 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
12905 is defined and the supplied test fails, print a message and abort.
12906 (eassert): New macro. Use CHECK to provide an assert-like facility.
12907
12908 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
12909 pointers; abort if the value looks like a lisp object.
12910 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
12911 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
12912 Modify for new interval parent definition.
12913
12914 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
12915 (UNMARK_BALANCE_INTERVALS): Update references that need an
12916 addressable lisp object in the interval structure.
12917 (die): New function.
12918 (suppress_checking): New variable.
12919
12920 * intervals.c (interval_start_pos): Just return 0 if there's no
12921 parent object.
12922
12923 2000-03-29 Gerd Moellmann <gerd@gnu.org>
12924
12925 * lread.c (read1): Accept `.' (period) as symbol start like in CL
12926 and earlier Emacs versions.
12927
12928 * keyboard.c (Ftop_level): Cancel busy-cursor.
12929
12930 * eval.c (call_debugger): Cancel busy-cursor.
12931
12932 2000-03-29 Kenichi Handa <handa@etl.go.jp>
12933
12934 * search.c (Freplace_match): Adjust multibyteness of the current
12935 buffer and NEWTEXT. Free allocated memory before signaling an error.
12936
12937 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
12938
12939 * regex.c (analyse_first): New function obtained by ripping out most
12940 of re_compile_fastmap and generalizing it a little bit so that it
12941 can also just return whether a given (sub)pattern can match the empty
12942 string or not.
12943 (regex_compile): Use `analyse_first' to decide whether the loop-check
12944 needs to be done or not for *, +, *? and +? (the loop check is costly
12945 for non-greedy repetition).
12946 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
12947
12948 2000-03-28 Dave Love <fx@gnu.org>
12949
12950 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
12951
12952 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
12953
12954 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
12955
12956 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
12957 an expression.
12958 (enum re_opcode_t): Update description of succeed_n.
12959 (PATFETCH): Always define.
12960 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
12961 operators, char classes, shy-groups and intervals).
12962 Optimize special cases of intervals so as to only use succeed_n and
12963 jump_n when really needed.
12964 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
12965 that we don't have to handle the special cases any more.
12966 Simplify on_failure_jump handling as well.
12967
12968 2000-03-28 Jason Rumney <jasonr@gnu.org>
12969
12970 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
12971
12972 2000-03-27 Gerd Moellmann <gerd@gnu.org>
12973
12974 * s/freebsd.h (GC_SETJMP_WORKS): Define.
12975
12976 * s/msdos.h (GC_SETJMP_WORKS): Define.
12977
12978 * alloc.c (mark_maybe_object): New function.
12979 (mark_memory): Use it.
12980 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
12981 (setjmp_tested_p, longjmp_done): New variables.
12982 (test_setjmp): New function.
12983 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
12984 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
12985
12986 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
12987 to DEC_TEXT_POS and INC_TEXT_POS.
12988
12989 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
12990 with parameter MULTIBYTE_P.
12991
12992 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
12993
12994 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
12995 buffers because it looks for multibyte character byte sequences
12996 which don't exist in unibyte text.
12997
12998 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
12999
13000 * xfaces.c (register_color, unregister_color, unregister_colors)
13001 [DEBUG_X_COLORS]: New functions.
13002 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
13003
13004 * xfns.c (x_set_cursor_color): Get color reference counts right.
13005
13006 * xterm.c (x_copy_color): New function.
13007 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
13008
13009 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
13010 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
13011 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
13012 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
13013 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
13014 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
13015 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
13016 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
13017 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
13018 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
13019
13020 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
13021 names for handling per-buffer variables.
13022
13023 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
13024 instead of MAX_BUFFER_LOCAL_VARS.
13025 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
13026
13027 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
13028
13029 * xfns.c (x_specified_cursor_type): New function.
13030 (x_set_cursor_type): Use it.
13031
13032 * buffer.h (struct buffer): Add cursor_type.
13033
13034 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
13035
13036 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
13037 (print_partial_compiled_pattern, re_compile_fastmap):
13038 Handle new opcode.
13039 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
13040 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
13041 executing it as well as when popping it off the stack to find infinite
13042 loops in non-greedy repetition operators.
13043
13044 2000-03-26 Gerd Moellmann <gerd@gnu.org>
13045
13046 * doc.c (Qfunction_documentation): New variable.
13047 (syms_of_doc): Initialize Qfunction_documentation.
13048 (Fdocumentation): If FUNCTION is a symbol with non-nil
13049 `function-documentation' property, return a documentation derived
13050 from that.
13051
13052 * buffer.c (syms_of_buffer): Add default-cursor-type.
13053 (init_buffer_once): Don't let cursor_type have a local value
13054 in every buffer.
13055
13056 * xterm.c (x_display_and_set_cursor): Choose cursor depending
13057 on buffer-local value of cursor_type.
13058 (x_draw_bar_cursor): Add parameter WIDTH.
13059
13060 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
13061 (init_buffer_once): Set default cursor_type value to t.
13062 Mark cursor_type as local everywhere.
13063 (syms_of_buffer): New per-buffer variable cursor-type.
13064
13065 * buffer.h (struct buffer): Remove member local_var_flags,
13066 add local_flags.
13067 (MAX_BUFFER_LOCAL_VARS): New macro.
13068 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
13069 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
13070 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
13071 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
13072
13073 * print.c (print_object): Use new macros for per-buffer variables.
13074
13075 * category.c (Fset_category_table): Use new macros for per-buffer
13076 variables.
13077
13078 * buffer.c (buffer_permanent_local_flags): Make a char array.
13079 (max_buffer_local_idx): New variable.
13080 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
13081 for new handling of per-buffer variables.
13082 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
13083 (init_buffer_once): Initialize per-buffer vars differently.
13084 Set max_buffer_local_idx.
13085
13086 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
13087 variables.
13088
13089 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
13090
13091 * data.c (do_symval_forwarding, store_symval_forwarding)
13092 (find_symbol_value, set_internal, default_value, Fset_default)
13093 (Fkill_local_variable, Flocal_variable_p): Use new macros for
13094 per-buffer variables.
13095
13096 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
13097
13098 2000-03-24 Gerd Moellmann <gerd@gnu.org>
13099
13100 * xterm.c (x_term_init): Unblock input around call1 of
13101 Qvendor_specific_keysyms.
13102
13103 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
13104 (find_defun_start): Consider an open parenthesis in column 0
13105 a defun start only if open_paren_in_column_0_is_defun_start is set.
13106 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
13107
13108 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
13109
13110 * eval.c (Fautoload): Add entry in load-history (if after dump).
13111 * lread.c (load-history): Update docstring.
13112
13113 2000-03-24 Gerd Moellmann <gerd@gnu.org>
13114
13115 * indent.c (Fvertical_motion): Always use the current buffer.
13116 Temporarily change the window's buffer, if necessary.
13117
13118 2000-03-23 Gerd Moellmann <gerd@gnu.org>
13119
13120 * xterm.c (fast_find_position): Make sure not to consider rows
13121 not visible in the window.
13122
13123 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
13124
13125 * regex.c (enum syntaxcode): Provide default for non-Emacs.
13126 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
13127
13128 2000-03-22 Jason Rumney <jasonr@gnu.org>
13129
13130 * w32menu.c (single_submenu): Set help string to NULL if none.
13131 (w32_menu_show): Set help string correctly.
13132 (add-menu-item): Set help string in MIIM_DATA for menu item.
13133 Load SetMenuItemInfoA explicitly.
13134 (w32_menu_display_help): New function.
13135
13136 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
13137 (QCdata): Moved to xdisp.c.
13138
13139 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
13140 (Vw32_charset_to_codepage_alist): Removed.
13141 (Vw32_charset_info_alist): New variable.
13142 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
13143 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
13144 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
13145 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
13146 with TODO comment.
13147 (w32_codepage_for_font): Use Vw32_charset_info_alist.
13148 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
13149 Define Vw32_charset_info_alist and w32_charset symbols.
13150
13151 2000-03-22 Jason Rumney <jasonr@gnu.org>
13152
13153 * makefile.nt (w32bdf.obj): Update dependencies.
13154
13155 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
13156
13157 * w32fns.c: Include fontset.h after dispextern.h.
13158 (Fx_create_frame): Do not create fontset.
13159 (w32_load_system_font): Doc fix.
13160 (Fx_close_connection): Free full_name if it is not shared.
13161
13162 * w32term.c: Include fontset.h after dispextern.h.
13163 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
13164 Callers updated.
13165 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
13166 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
13167 (w32_font_is_double_byte): New function, needs body.
13168 (x_append_glyph): Set glyph->glyph_not_available_p.
13169 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
13170 it->charset. If it->multibyte_p is zero and it->c is a multibyte
13171 character, convert it to a unibyte character.
13172 (struct glyph_string): Delete member `charset'.
13173 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
13174 calculating it is found.
13175 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
13176 the case that per char metric is not available correctly.
13177 (x_fill_glyph_string): Handle the case that the specific glyph is
13178 not available correctly.
13179 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
13180 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
13181 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
13182 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
13183 fontset. Don't call FS_LOAD_FONT.
13184
13185 2000-03-22 Ken Raeburn <raeburn@gnu.org>
13186
13187 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
13188 (INT_LISPLIKE): New macro.
13189 (NULL_INTERVAL_P): Use it.
13190 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
13191 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
13192 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
13193
13194 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
13195 explicit references to "parent" field of struct interval and
13196 associated unclean type conversions.
13197 * intervals.c (create_root_interval, root_interval, rotate_right)
13198 (rotate_left, balance_possible_root_interval, split_interval_right)
13199 (split_interval_left, interval_start_pos, find_interval)
13200 (next_interval, previous_interval, update_interval)
13201 (adjust_intervals_for_insertion, delete_node, delete_interval)
13202 (adjust_intervals_for_deletion, merge_interval_right)
13203 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
13204 (copy_intervals_to_string): Likewise.
13205 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
13206 Likewise.
13207 * syntax.c (update_syntax_table): Likewise.
13208
13209 * intervals.c (reproduce_tree_obj): New function, like
13210 reproduce_tree but takes a Lisp_Object for the parent. Declare
13211 with prototype.
13212 (graft_intervals_into_buffer): Use it when appropriate.
13213 (reproduce_tree): Declare with prototype.
13214 (balance_possible_root_interval): Check that the parent is a lisp
13215 object before trying to examine its type.
13216
13217 2000-03-22 Gerd Moellmann <gerd@gnu.org>
13218
13219 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
13220 as strings only if both are known to be strings.
13221
13222 * s/openbsd.h (LIBS_TERMCAP): Undef.
13223
13224 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
13225
13226 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
13227 definitions for non-Emacs compilation.
13228 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
13229 outside of `#ifdef emacs'.
13230 (print_partial_compiled_pattern): Update.
13231 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
13232 (re_compile_fastmap): Merge handling of charset and charset_not (for
13233 emacs and non-emacs compilation as well).
13234 Similarly for (not)categoryspec and (not)syntaxspec.
13235 Don't use the fastmap when reaching `anychar' since the added
13236 complexity is not justified.
13237 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
13238 and (not)syntaxspec. Merge (not)categoryspec.
13239
13240 2000-03-22 Kenichi Handa <handa@etl.go.jp>
13241
13242 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
13243 (FACE_FOR_CHAR): Define them differently for the configuration of
13244 --without-x.
13245
13246 2000-03-21 Dave Love <fx@gnu.org>
13247
13248 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
13249 doc string.
13250
13251 2000-03-21 Gerd Moellmann <gerd@gnu.org>
13252
13253 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
13254 (lface_fully_specified_p): Don't check contents of
13255 LFACE_FONT_INDEX because that attribute is optional.
13256 (realize_x_face): Remove now unwarranted xassert.
13257
13258 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
13259
13260 The following changes are to make font selection based on
13261 characters, not charset. In addition, they recover fontset
13262 facilities while utilizing the new font selection mechanism.
13263
13264 * Makefile.in (fontset.o): Depend on dispextern.h.
13265
13266 * alloc.c (mark_face_cache): Don't mark face->registry.
13267
13268 * dispextern.h (struct glyph): New member glyph_not_available_p.
13269 Use 22 bits for face_id.
13270 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
13271 (struct face): Delete member registry, new member ascii_face.
13272 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
13273 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
13274 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
13275 (struct it): Delete member charset, new member glyph_not_available_p.
13276
13277 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
13278 (struct fontset_info, struct fontset_data): Structs removed.
13279 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
13280 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
13281 (fs_load_font, fs_query_fontset): Adjusted for new argument.
13282 (fs_free_face_fontset, fontset_font_pattern)
13283 (face_suitable_for_char_p, face_for_char)
13284 (make_fontset_for_ascii_face): Extern them.
13285 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
13286 (FS_LOAD_FACE_FONT): New macro.
13287
13288 * fontset.c: All codes rewritten or adjusted for the change of
13289 fontset implementation. Now fontset is represented by char table.
13290 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
13291 Variables removed.
13292 (my_strcasecmp): Function removed.
13293 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
13294 (AREF, ASIZE): New macros.
13295 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
13296 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
13297 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
13298 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
13299 (fontset_id_valid_p, font_family_registry, fontset_name)
13300 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
13301 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
13302 New functions.
13303 (fs_load_font): New arg FACE. Caller changed.
13304 (fs_query_fontset): Argument changed. Caller changed.
13305 (Fquery_fontset): call fs_query_fontset.
13306 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
13307 Functions removed.
13308 (clear_fontset_elements, check_registry_encoding)
13309 (check_fontset_name): New functions.
13310 (syms_of_fontset): Set char-table-extra-slots property of fontset
13311 to 3. Staticpro and initialize Vfontset_table and
13312 Vdefault_fontset. Defsubr fontset_font and fontset_list.
13313
13314 * frame.h (struct frame): Member `fontset_data' removed.
13315 (FRAME_FONTSET_DATA): Macro removed.
13316
13317 * frame.c (make_frame): Don't allocate f->fontset_data.
13318 (Fdelete_frame): Don't free f->fontset_data.
13319
13320 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
13321
13322 * xdisp.c (charset_at_position): Function removed.
13323 (init_iterator): Don't set member charset of struct `it'.
13324 (handle_face_prop, reseat_to_string, set_iterator_to_next)
13325 (next_element_from_display_vector, insert_left_trunc_glyphs):
13326 Likewise.
13327 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
13328 FACE_FOR_CHARSET.
13329 (get_next_display_element, append_space)
13330 (extend_face_to_end_of_line): Likewise.
13331
13332 * xfaces.c (Qx_charset_registry, Vface_default_registry):
13333 Variables removed.
13334 (clear_font_table, frame_update_line_height, load_face_font):
13335 Adjusted for the change of fontset implementation.
13336 (load_face_fontset_font): Function removed.
13337 (pixel_point_size): New function.
13338 (font_list): Argument type changed. Caller changed.
13339 (LFACE_FONT): New macro.
13340 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
13341 (set_lface_from_font_name): Type of arg FONTNAME is changed to
13342 Lisp_Object. Determine the font name by actually loading a font
13343 by the specified pattern. Set LFACE_FONT (lface) to the specified
13344 pattern. Even if a font is not found, don't try alternatives.
13345 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
13346 (set_font_frame_param): If `font' is specified in lface, use it.
13347 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
13348 (lface_same_font_attributes_p): Likewise.
13349 (make_realized_face): Arguent changed. Caller changed. Set
13350 face->ascii_face to face itself.
13351 (free_realized_face): Free face->fontset if face is for ASCII.
13352 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
13353 (deduce_unibyte_registry, x_charset_registry): Functions removed.
13354 (free_realized_multibyte_face): New function.
13355 (lookup_face, lookup_named_face, lookup_derived_face): Argument
13356 changed. Caller changed.
13357 (try_font_list): Argument type changed.
13358 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
13359 (choose_face_font): Argument changed. Handle fontset properly.
13360 (choose_face_fontset_font): Function removed.
13361 (realize_default_face, realize_named_face): Don't remove the
13362 former face here.
13363 (realize_face): Argument changed. Caller changed. Remove face
13364 with the arg former_face_id in advance. Load font for the new face.
13365 (realize_x_face): Argument changed. Caller changed. For a
13366 multibyte character, share fontset with base_face. For a single
13367 byte character, make a new realized fontset. Don't load a font here.
13368 (realize_tty_face): Argument changed. Caller changed.
13369 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
13370 (face_at_buffer_position): Don't check multibyte_p for returning
13371 DEFAULT_FACE_ID.
13372 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
13373 FACE_SUITABLE_FOR_CHARSET_P.
13374 (syms_of_xfaces): Remove code for Qx_charset_registry and
13375 Vface_default_registry.
13376
13377 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
13378 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
13379 (x_per_char_metric): Don't try FONT->default_char. Even if
13380 pcm->width is zero, glyph bits may exist.
13381 (x_encode_char): Always initialize char2b->byte1.
13382 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
13383 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
13384 (x_append_glyph): Set glyph->glyph_not_available_p.
13385 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
13386 it->charset. Handle the case that per char metric is not
13387 available. If it->multibyte_p is zero and it->c is a multibyte
13388 character, convert it to a unibyte character.
13389 (struct glyph_string): Delete member `charset'.
13390 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
13391 the case that per char metric is not available correctly.
13392 (x_fill_glyph_string): Handle the case that the specific glyph is
13393 not available correctly.
13394 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
13395 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
13396 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
13397 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
13398 fontset. Don't call FS_LOAD_FONT.
13399
13400 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
13401 (x_create_tip_frame): Likewise.
13402 (Fx_close_connection): Free full_name of font_info.
13403
13404 * fns.c (optimize_sub_char_table): New function.
13405 (Foptimize_char_table): New function.
13406 (syms_of_fns): Defsubr Soptimize_char_table.
13407
13408 2000-03-20 Gerd Moellmann <gerd@gnu.org>
13409
13410 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
13411 only if buffer is displayed in some window.
13412
13413 * xdisp.c (handle_single_display_prop): Initialize local `value'.
13414 (try_window_reusing_current_matrix): Don't call scroll run
13415 function if run's current and desired position are the same;
13416 this prevents cursor flickering.
13417
13418 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
13419
13420 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
13421
13422 * regex.c (RE_STRING_CHAR): New macro.
13423 (GET_CHAR_AFER_2): Remove.
13424 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
13425 (enum re_opcode_t): Remove on_failure_jump_exclusive.
13426 (print_partial_compiled_pattern, re_compile_fastmap)
13427 (re_match_2_internal): Remove on_failure_jump_exclusive.
13428 (regex_compile): Turn optimizable P+ loops into PP*, so that the
13429 optimization only need to work for * (ie. can use of_keep_string_jump).
13430 Remove the special case for .*\n since it is now covered by the general
13431 optimization.
13432 (re_search_2): Don't bother with `room'.
13433 (skip_one_char): New function.
13434 (skip_noops): Simplify since `memory' is not needed any more.
13435 (mutually_exclusive_p): Restructure slightly to use `switch' and
13436 add handling for "all" remaining cases.
13437 (re_match_2_internal): Change on_failure_jump_smart to use
13438 on_failure_keep_string_jump (and redirect the end-of-loop jump)
13439 rather than on_failure_jump_exclusive.
13440
13441 2000-03-19 Gerd Moellmann <gerd@gnu.org>
13442
13443 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
13444 number of bits per RGB because it's everywhere used as the depth
13445 of the visual.
13446
13447 * term.c (calculate_costs): Remove code dealing with X frames.
13448
13449 2000-03-19 Richard M. Stallman <rms@gnu.org>
13450
13451 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
13452
13453 2000-03-18 Gerd Moellmann <gerd@gnu.org>
13454
13455 * lread.c (read_integer): Unread the last char not consumed.
13456
13457 2000-03-17 Gerd Moellmann <gerd@gnu.org>
13458
13459 * xterm.c (x_update_window_cursor): Don't update in frames
13460 which are in the process of being deleted.
13461
13462 2000-03-16 Gerd Moellmann <gerd@gnu.org>
13463
13464 * Makefile.in (mostlyclean): Add `*.core'.
13465 (clean): Add `bootstrap-emacs'.
13466
13467 * lread.c (read_integer): New function.
13468 (read1): Support read syntax #o, #x, #b, #r.
13469
13470 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
13471
13472 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
13473 make sure POINTER_TO_OFFSET gives the same value before and after
13474 PREFETCH. Use `dfail' to guarantee "atomic" matching.
13475 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
13476 (debug): Now only active if > 0 rather than if != 0.
13477 (DEBUG_*): Update for the new meaning of `debug'.
13478 (print_partial_compiled_pattern): Add missing `succeed' case. Use
13479 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
13480 in `succeed_n', `jump_n' and `set_number_at'.
13481 (store_op1, store_op2, insert_op1, insert_op2)
13482 (at_begline_loc_p, at_endline_loc_p): Add prototype.
13483 (group_in_compile_stack): Move to after its arg's types are
13484 declared and add a prototype.
13485 (PATFETCH): Define in terms of PATFETCH_RAW.
13486 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
13487 (QUIT): Redefine as a nop except for NTemacs.
13488 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
13489 indentation of the greedy-op and shy-group code.
13490 (at_(beg|end)line_loc_p): Fix argument's types.
13491 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
13492 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
13493 (MATCHING_IN_FIRST_STRING): Remove.
13494 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
13495 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
13496 QUIT unconditionally.
13497
13498 2000-03-15 Gerd Moellmann <gerd@gnu.org>
13499
13500 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
13501 a sole completion.
13502
13503 * process.c (send_process): Add a hint that the function
13504 can call Lisp code to its comment.
13505
13506 * lread.c (load_dangerous_libraries): New variable.
13507 (Vbytecomp_version_regexp): New variable.
13508 (safe_to_load_p): New function.
13509 (Fload): Handle files not compiled with Emacs specially.
13510 (syms_of_lread): New Lisp variable load-dangerous-libraries.
13511
13512 2000-03-14 Gerd Moellmann <gerd@gnu.org>
13513
13514 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
13515
13516 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
13517 support functions only if HAVE_X11R6_XIM is defined.
13518 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
13519
13520 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
13521
13522 * xfns.c (X_I18N_INHIBITED): Don't define.
13523 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
13524 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
13525
13526 * config.in (HAVE_X_I18N): Moved here from xterm.h.
13527 (HAVE_X11R6_XIM): Define.
13528
13529 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
13530
13531 * xterm.c (x_term_init): Add support for X resource `synchronous'.
13532 If set, call XSynchronize.
13533
13534 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
13535
13536 * regex.c: Declare a new type `re_char' used throughout the code
13537 for the string char type. It's `const unsigned char' to match the
13538 rest of Emacs. Consistently make sure all pointers to strings use
13539 it and make sure all pointers into the pattern use `unsigned char'.
13540 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
13541 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
13542 code duplication.
13543
13544 * charset.h (GET_CHAR_AFTER_2): Remove.
13545 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
13546
13547 2000-03-12 Ken Raeburn <raeburn@gnu.org>
13548
13549 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
13550 variable before the invocation of YMF_PASS_LDFLAGS, in case both
13551 of them try to use backquotes.
13552
13553 2000-03-12 Dave Love <fx@gnu.org>
13554
13555 * unexelf.c: Restore changes of 1999-10-19.
13556 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
13557 fix its type and alignment; copy it from current process.
13558
13559 2000-03-12 Gerd Moellmann <gerd@gnu.org>
13560
13561 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
13562 has been found. Fix bug not computing timer's predecessor.
13563
13564 * fileio.c (Fread_file_name): Handle case that DIR contains a
13565 file name.
13566
13567 * window.c (Fsave_window_excursion): Doc fix.
13568
13569 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
13570
13571 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
13572
13573 * msdos.c (vga_installed): New function, code moved from
13574 dos_set_window_size.
13575 (Qbar, Qcursor_type, outside_cursor): New variables.
13576 (syms_of_msdos): Intern and staticpro them.
13577 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
13578 shape used outside Emacs when called for the first time.
13579 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
13580 cursor shape used outside Emacs.
13581 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
13582 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
13583 type has changed.
13584 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
13585 parameters specify the cursor. Make qreverse a global
13586 variable (renamed to Qreverse).
13587
13588 2000-03-09 Gerd Moellmann <gerd@gnu.org>
13589
13590 * fns.c (Fy_or_n_p): Cancel busy-cursor.
13591
13592 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
13593
13594 This is a big redesign of failure-stack and register handling, prompted
13595 by bugs revealed when trying to add shy-groups. Overall, what happened
13596 is that loops are now structured a little differently, groups can be
13597 shy and the code is a little simpler.
13598
13599 * regex.h: Update the copyright.
13600 (RE_SHY_GROUPS): New value.
13601 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
13602 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
13603
13604 * regex.c (enum re_opcode_t): Remove jump_past_alt,
13605 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
13606 on_failure_jump_(exclusive, loop and smart). Also fix the comment
13607 for (start|stop)_memory since they now only take one argument (the
13608 second has becomes unnecessary).
13609 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
13610 (print_compiled_pattern): Use %ld to printf long ints and flush to
13611 make debugging a little easier.
13612 (union fail_stack_elt): Make the integer unsigned.
13613 (struct fail_stack_type): Add a `frame' element.
13614 (INIT_FAIL_STACK): Init `frame' as well.
13615 (POP_PATTERN_OP): New macro for re_compile_fastmap.
13616 (DEBUG_PUSH, DEBUG_POP): Remove.
13617 (NUM_REG_ITEMS): Remove.
13618 (NUM_NONREG_ITEMS): Adjust.
13619 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
13620 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
13621 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
13622 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
13623 New macros.
13624 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
13625 address pushed is not the destination of the jump but the source
13626 of it instead.
13627 (NUM_FAILURE_ITEMS): Remove.
13628 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
13629 registers before the actual failure point). Don't hardcode any
13630 meaning for str==NULL anymore.
13631 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
13632 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
13633 Remove.
13634 (REG_UNSET_VALUE): Use NULL (why not?).
13635 (compile_range): Remove declaration since it doesn't exist.
13636 (struct compile_stack_elt_t): Remove inner_group_offset.
13637 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
13638 (regex_grow_registers): Remove dead code.
13639 (FIXUP_ALT_JUMP): New macro.
13640 (regex_compile): Add shy-groups Change loops to use
13641 on_failure_jump_smart&jump instead of
13642 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
13643 initial (dummy_failure_)jump. Remove c1_base (looks like unused
13644 variable to me). Use `jump' instead of `jump_past_alt' and don't
13645 bother with push_dummy_failure in alternatives since it is now
13646 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
13647 emacs' for (re)allocating the stack.
13648 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
13649 from loop when bufp->can_be_null rather than jumping to `done'.
13650 Avoid jumping backwards so as to ensure termination. Use
13651 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
13652 backreferences. Remove dead code in handling of `anychar'.
13653 (skip_noops, mutually_exclusive_p): New functions taken from the
13654 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
13655 improve mutually_exclusive_p to handle ".+\n".
13656 (lowest_active_reg, highest_active_reg)
13657 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
13658 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
13659 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
13660 variables. Push register (in `start_memory') on the stack rather
13661 than storing it in old_reg(start|end). Remove the cycle detection
13662 from `stop_memory', replaced by the use of on_failure_jump_loop
13663 for greedy loops. Add code for the new on_failure_jump_<foo>.
13664 Remove ad-hoc code in `on_failure_jump' to push more registers in
13665 the case of a loop. Take out code from `maybe_pop_jump' into
13666 separate functions and adapt it to the semantics of
13667 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
13668 and push_dummy_failure. Remove dummy_failure handling and
13669 handling of `failures to jump to on_failure_jump' (this last one
13670 was already dead code, it seems).
13671 (group_match_null_string_p, alt_match_null_string_p)
13672 (common_op_match_null_string_p): Remove.
13673
13674 2000-03-08 Dave Love <fx@gnu.org>
13675
13676 * config.in: Don't depend on __STDC__ for volatile.
13677 Add POINTER_TYPE, PTR, PROTOTYPES.
13678
13679 * hftctl.c, strftime.c: Use PROTOTYPES.
13680 * eval.c (find_handler_clause): Likewise.
13681
13682 * mem-limits.h: Use POINTER_TYPE.
13683
13684 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
13685 (memory_warnings): Declare using POINTER_TYPE.
13686
13687 2000-03-08 Gerd Moellmann <gerd@gnu.org>
13688
13689 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
13690
13691 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
13692
13693 * xfns.c: Remove obsolete code in #if 0.
13694 (Fx_focus_frame): New function.
13695
13696 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
13697
13698 * coding.c (coding_category_name): Add coding-category-utf-8,
13699 coding-category-utf-16-be, coding-category-utf-16-le.
13700 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
13701 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
13702 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
13703 (detect_coding_utf_8): New function.
13704 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
13705 UTF_16_LOW_SURROGATE_P): New macros.
13706 (detect_coding_utf_16): New function
13707 (detect_coding_mask): When priorities are specified, skip any
13708 categories that have `nil' coding-system. Fix bug of returning
13709 wrong mask when PRIORITIES is specified and detect_coding_XXX()
13710 returns a mask not set in PRIORITIES.
13711 (detect_eol_type_in_2_octet_form): New function.
13712 (detect_eol): selects detect_eol_type_XXX to call according to
13713 cooding->category_idx.
13714 (detect_coding_system): Remove `nil' coding-system in the result.
13715 (Fupdate_coding_systems_internal): Update all coding-categories.
13716
13717 * coding.h (CODING_CATEGORY_IDX_UTF_8)
13718 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
13719 New macros.
13720 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
13721 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
13722 (CODING_CATEGORY_IDX_UTF_16_LE)
13723 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
13724 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
13725 (CODING_CATEGORY_MASK_ANY): Include the above macros.
13726 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
13727
13728 2000-03-07 Gerd Moellmann <gerd@gnu.org>
13729
13730 * doc.c (Fdocumentation_property): If value is not a string,
13731 and doesn't refer to etc/DOC, evaluate it to obtain a string.
13732
13733 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
13734 close the display with XtCloseDisplay. This caused a bus error
13735 on OpenWindows.
13736
13737 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
13738 complete but not unique.
13739
13740 2000-03-06 Gerd Moellmann <gerd@gnu.org>
13741
13742 * process.c (send_process): Remove local variable `procname' that
13743 might become invalid when a GC happens. Instead, access the
13744 process name slot directly.
13745
13746 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
13747 orig_height if set.
13748
13749 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
13750 orig_height if set.
13751
13752 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
13753
13754 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
13755 glyph matrices have been freed.
13756
13757 2000-03-05 Gerd Moellmann <gerd@gnu.org>
13758
13759 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
13760 (bootstrap-temacs): Set LC_ALL to C like for temacs.
13761
13762 * xfns.c (QCdata): Moved to xdisp.c.
13763
13764 * xdisp.c (QCdata): Moved here from xfns.c.
13765 (syms_of_xdisp): Initialize QCdata.
13766
13767 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
13768
13769 * window.c (coordinates_in_window): Use
13770 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
13771 FRAME_INTERNAL_BORDER_WIDTH.
13772
13773 * xdisp.c (try_window_id): Recompute unchanged information if
13774 it is obviously invalid.
13775
13776 * xterm.c (x_term_init): Create a colormap if not using the
13777 default visual.
13778
13779 * xterm.h (select_visual): Change prototype.
13780
13781 * xfns.c (select_visual): Rewritten. Recognize user-specified
13782 visual classes.
13783 (visual_classes): New variable.
13784
13785 2000-03-04 Gerd Moellmann <gerd@gnu.org>
13786
13787 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
13788 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
13789 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
13790 (x_decode_color): Don't handle allocation of white and black specially.
13791 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
13792 XtNcolormap resources.
13793 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
13794 (Fx_create_frame): Initialize color members of x_output structure.
13795 (xpm_load): Pass colormap to XPM lib.
13796
13797 * xfaces.c (x_free_colors): Access colormap of frame using
13798 FRAME_X_COLORMAP. Be paranoid about freeing black and white
13799 when default colormap is used.
13800
13801 * xterm.c (x_term_init): Set Colormap member of x_display_info
13802 structure. Copy colormap if resource `privateColormap' is
13803 specified (PseudoColor only).
13804 (x_setup_relief_color): Access colormap of frame using
13805 FRAME_X_COLORMAP.
13806
13807 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
13808 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
13809
13810 2000-03-04 Jason Rumney <jasonr@gnu.org>
13811
13812 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
13813 other non-platform-specific equivalents.
13814 [WINDOWSNT]: Include w32term.h, fontset.h and define X
13815 specific functions and macros as their w32 equivalents where
13816 non-platform-specifics are not available.
13817 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
13818 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
13819 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
13820 (frame_update_line_height): Use macros to access f->output_data.
13821 (defined_color): Remove FIXME comments; fixed.
13822 (x_face_list_fonts, prepare_face_for_display): Put X specifics
13823 into #ifdef blocks. Add WINDOWSNT blocks.
13824 (Fx_list_fonts): Use macros for accessing font data.
13825 (set_lface_from_font_name): Different default fonts for X and
13826 WINDOWSNT.
13827 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
13828 scalable for backward compatibility.
13829 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
13830 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
13831
13832 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
13833 syms_of_w32faces.
13834
13835 * makefile.nt (w32faces.obj): Remove.
13836 (xfaces.obj): Add.
13837
13838 2000-03-03 Jason Rumney <jasonr@gnu.org>
13839
13840 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
13841 correct parameters.
13842
13843 2000-03-03 Ken Raeburn <raeburn@gnu.org>
13844
13845 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
13846 standard ELF definitions here if the system header does not.
13847
13848 2000-03-03 Gerd Moellmann <gerd@gnu.org>
13849
13850 * xterm.c (PER_CHAR_METRIC): Removed.
13851 (x_per_char_metric_1, x_default_char): New functions.
13852 (x_per_char_metric): If font's default char is invalid, return
13853 metrics of a suitably chosen usable default char.
13854 (x_draw_glyph_string_foreground): If font has an invalid default
13855 char, replace occurrences of unprintable chars with a suitably
13856 chosen usable default char.
13857
13858 2000-03-02 Gerd Moellmann <gerd@gnu.org>
13859
13860 * xterm.c (note_mouse_highlight): Return quickly if frame's
13861 glyph matrices have been freed.
13862
13863 * dispnew.c (free_glyphs): Block input while freeing matrices.
13864
13865 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
13866
13867 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
13868 Use x_free_colors.
13869
13870 * dispextern.h (x_free_colors): Add prototype.
13871
13872 * xfaces.c (x_free_colors): New function.
13873 (unload_color, free_face_colors): Use it.
13874
13875 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
13876
13877 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
13878
13879 * window.c [MSDOS]: Include msdos.h.
13880
13881 2000-03-02 Dave Love <fx@gnu.org>
13882
13883 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
13884
13885 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
13886 set C_OPTIMIZE_SWITCH for gcc.
13887
13888 2000-03-02 Kenichi Handa <handa@etl.go.jp>
13889
13890 * coding.c (coding_save_composition): Be sure to allocate
13891 composition data area in coding even if there's no composition in
13892 the current run.
13893
13894 2000-03-01 Jason Rumney <jasonr@gnu.org>
13895
13896 * w32term.c: Equivalent changes to those made to xterm.c on
13897 2000-02-25 and 2000-02-24.
13898
13899 * w32fns.c: Equivalent changes to those made to xfns.c on
13900 2000-02-25 and 2000-02-21.
13901
13902 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
13903 correct line-end convention is followed.
13904
13905 * w32menu.c [HAVE_BOXES]: Remove #undef.
13906 (single_keymap_panes): Remove code for simulating checkmarks.
13907 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
13908 Remove code for drawing simulated checkmarks.
13909 (w32_menu_show): make unibyte help string correctly.
13910 (add_menu_item): draw standard Windows checkmarks. Draw radio
13911 buttons as radio buttons if possible.
13912
13913 2000-03-01 Gerd Moellmann <gerd@gnu.org>
13914
13915 * sysdep.c (start_of_text): Don't define this function for NetBSD
13916 with ELF.
13917
13918 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
13919 Don't define.
13920 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
13921 (LINKER): Don't undef if __NetBSD__ is defined.
13922
13923 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
13924
13925 * fileio.c [__NetBSD__]: Define `unix'.
13926
13927 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
13928
13929 2000-02-29 Gerd Moellmann <gerd@gnu.org>
13930
13931 * atimer.c (start_atimer): Don't abort when timers are stopped.
13932 (append_atimer_lists): New function.
13933 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
13934 arbitrary lists of stopped and running atimers.
13935
13936 * atimer.c (cancel_atimer): Handle canceling an atimer when
13937 some timers are stopped.
13938
13939 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
13940 after canceling it.
13941
13942 * fns.c (maybe_resize_hash_table): Handle case of new size
13943 coming out as being the same as old size.
13944
13945 2000-02-27 Jason Rumney <jasonr@gnu.org>
13946
13947 * makefile.nt: Add atimer.h to dependencies.
13948 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
13949 * w32console.c: Only disable window system features for dispextern.h
13950 (initialize_w32_display): Build a display info for the console.
13951 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
13952 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
13953 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
13954 as 2 button mice.
13955 * w32gui.h (struct W32FontStruct): Revert last change after change
13956 to xdisp.c.
13957 * w32menu.c (single_submenu): Set up help string.
13958 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
13959 (w32_dialog_show): Set up help string.
13960 * w32term.c (w32_display_info_for_display): Remove unused function.
13961 (w32_draw_bitmap): Use pre-built bitmaps.
13962 (w32_initialize_display_info): New function to initialize parts of
13963 display info that are common to both GUI and console frames.
13964 (w32_term_init): Use w32_initialize_display_info. Do not set
13965 Vw32_num_mouse_buttons here, as it is not called for console
13966 frames. Build bitmaps for indicating truncated lines etc.
13967 (x_delete_display): Destroy pre-built bitmaps.
13968 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
13969 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
13970
13971 2000-02-27 Dave Love <fx@gnu.org>
13972
13973 * lisp.h: Add a bunch of prototypes.
13974
13975 2000-02-26 Kenichi Handa <handa@etl.go.jp>
13976
13977 * keyboard.c (read_char): Set `usec' correctly.
13978
13979 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
13980
13981 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
13982 `lambda', set reg[RRR] to the map index.
13983 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
13984 reg[RRR] to 0. Otherwise, set it to -1.
13985
13986 2000-02-25 Gerd Moellmann <gerd@gnu.org>
13987
13988 * emacs.c (main): Remove code snippet commented out with `//'.
13989
13990 2000-02-25 Richard M. Stallman <rms@gnu.org>
13991
13992 * fileio.c (Ffile_symlink_p): If result starts with a `/'
13993 and contains a `:', prepend `/:'.
13994
13995 * window.c (select_window_1): If selected_window is nil,
13996 don't "swap out" the buffer's point.
13997 (Fset_window_configuration): Set selected_window to nil
13998 before calling Fselect_window.
13999 (unshow_buffer): Don't set point in buffer from window's point
14000 if another more recently selected window also shows the buffer.
14001
14002 2000-02-25 Gerd Moellmann <gerd@gnu.org>
14003
14004 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
14005
14006 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
14007 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
14008 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
14009 New variables.
14010 (DEFAULT_BUSY_CURSOR_DELAY): New define.
14011 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
14012 (hide_busy_cursor): New functions.
14013 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
14014
14015 * minibuf.c (read_minibuf): Cancel busy-cursor.
14016
14017 * keyboard.c (command_loop_1): Call start_busy_cursor before
14018 Fcommand_execute and cancel_busy_cursor after it.
14019 (timer_check): Remove busy-cursor code.
14020 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
14021 cursor timer.
14022
14023 * process.c (wait_reading_process_input): Remove busy-cursor code.
14024
14025 * eval.c (Fsignal): Call cancel_busy_cursor instead of
14026 Fx_hide_busy_cursor.
14027
14028 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
14029 Remove prototyoes.
14030 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
14031
14032 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
14033
14034 * xterm.c (XTread_socket): Remove busy-cursor code.
14035
14036 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
14037 (build_frame_matrix_from_leaf_window): Put code handling
14038 glyph row's not being a slice of a frame row in #if 0.
14039 (sync_window_with_frame_matrix_rows): New function.
14040 (frame_row_to_window): New function.
14041 (mirror_line_dance): Handle copies between windows.
14042
14043 * lread.c (Fload): Use `xfree' instead of `free'.
14044 (init_obarray): Use `xmalloc' instead of `malloc'.
14045
14046 * window.c (Fset_window_buffer): Set WINDOW to the window
14047 after decoding.
14048 (coordinates_in_window): Take frame's internal border width
14049 into account.
14050
14051 2000-02-24 Gerd Moellmann <gerd@gnu.org>
14052
14053 * xterm.c (x_display_and_set_cursor): Display cursor of
14054 non-selected windows depending on the setting of
14055 cursor_in_non_selected_windows.
14056
14057 * xdisp.c (cursor_in_non_selected_windows): New variable.
14058 (syms_of_xdisp): DEFVAR_BOOL it.
14059
14060 2000-02-23 Gerd Moellmann <gerd@gnu.org>
14061
14062 * data.c (Fstring_to_number): If number is greater than what
14063 fits into an integer, return a float.
14064
14065 * eval.c (specbind): Remove references to
14066 keyword_symbols_constant_flag.
14067
14068 * data.c (keyword_symbols_constant_flag): Removed.
14069 (Fmakunbound, set_internal, syms_of_data): Remove references to
14070 keyword_symbols_constant_flag.
14071
14072 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
14073
14074 2000-02-23 Kenichi Handa <handa@etl.go.jp>
14075
14076 * syntax.c (multibyte_syntax_as_symbol): New variable.
14077 (syms_of_syntax): Declare it as a Lisp variable.
14078 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
14079 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
14080 nonzero, treat all multibyte characters as symbol.
14081 (init_syntax_once): Give syntax `word' to all multibyte characters.
14082
14083 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
14084
14085 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
14086 a deleted frame.
14087
14088 2000-02-21 Gerd Moellmann <gerd@gnu.org>
14089
14090 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
14091
14092 * xfns.c (x_window_to_frame, x_any_window_to_frame)
14093 (x_non_menubar_window_to_frame): Check the busy-cursor window.
14094
14095 2000-02-21 Dave Love <fx@gnu.org>
14096
14097 * frame.c (Vmouse_position_function): New variable.
14098 (Fmouse_position): Use it.
14099 (syms_of_frame): Install it.
14100
14101 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
14102
14103 2000-02-20 Gerd Moellmann <gerd@gnu.org>
14104
14105 * fileio.c (Finsert_file_contents): Unbind the binding of
14106 standard-output done by temp_output_buffer_setup.
14107
14108 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
14109 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
14110 (specbind, unbind_to): Handle most common case of non-constant
14111 symbol with trivial value specially.
14112
14113 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
14114
14115 2000-02-20 Richard M. Stallman <rms@gnu.org>
14116
14117 * data.c (Fmake_variable_buffer_local): Doc fix.
14118 Init found_for_buffer to 0.
14119 (Fmake_variable_frame_local): If the variable has already
14120 been buffer-local, set the check_frame field.
14121
14122 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
14123
14124 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
14125 produced for CODING_MODE_LAST_BLOCK requires.
14126
14127 2000-02-18 Dave Love <fx@gnu.org>
14128
14129 * keyboard.c (echo_keystrokes): Remove declaration.
14130 (Vecho_keystrokes) New variable.
14131 (read_char, record_menu_key, read_key_sequence): Use it to allow
14132 use of float value.
14133 (syms_of_keyboard): Change Vecho_keystrokes declaration.
14134
14135 * lread.c: Undef feature selection macros before defining.
14136
14137 2000-02-18 Gerd Moellmann <gerd@gnu.org>
14138
14139 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
14140 for symbols other than the symbol in question.
14141
14142 2000-02-17 Dave Love <fx@gnu.org>
14143
14144 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
14145
14146 2000-02-17 Gerd Moellmann <gerd@gnu.org>
14147
14148 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
14149
14150 * alloc.c (enum mem_type): Compile unconditionally.
14151
14152 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
14153
14154 * xfaces.c (tty_defined_color): Don't return faulire indication
14155 for unspecified-fg and unspecified-bg pseudo-colors.
14156
14157 2000-02-17 Gerd Moellmann <gerd@gnu.org>
14158
14159 * alloc.c (mark_object): Don't mark symbol names in pure space.
14160 (gc_sweep): Don't unmark symbol names in pure space.
14161
14162 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
14163 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
14164 [GC_MARK_STACK]: New defines.
14165 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
14166 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
14167
14168 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
14169
14170 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
14171 allocate_buffer instead of xmalloc.
14172
14173 * alloc.c (toplevel): Include setjmp.h.
14174 (PURE_POINTER_P): New define.
14175 (enum mem_type) [GC_MARK_STACK]: New enumeration.
14176 (Vdead) [GC_MARK_STACK]: New variable.
14177 (lisp_malloc): Add parameter TYPE, call mem_insert if
14178 GC_MARK_STACK is defined.
14179 (allocate_buffer): New function.
14180 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
14181 (free_float) [GC_MARK_STACK]: Set type to Vdead.
14182 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
14183 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
14184 (MEM_NIL) [GC_MARK_STACK]: New define.
14185 (struct mem_node) [GC_MARK_STACK]: New structure.
14186 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
14187 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
14188 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
14189 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
14190 (mark_stack) [GC_MARK_STACK]: New functions.
14191 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
14192 (clear_marks): Removed.
14193 (gc_sweep): Set free conses' car, free floats' type, free
14194 symbols' function to Vdead. Use lisp_free to free buffers.
14195 (init_alloc_once): Initialize Vdead.
14196 (survives_gc_p): Return non-zero for pure objects.
14197
14198 * alloc.c: Add comments throughout the file.
14199
14200 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
14201 that unblocks alarms.
14202
14203 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
14204 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
14205 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
14206
14207 * frame.c (make_frame): Set frame initiallly to `garbaged'.
14208
14209 2000-02-17 Kenichi Handa <handa@etl.go.jp>
14210
14211 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
14212 avoid infinite error signaling. Allocate sufficient memory for
14213 eol_str in the case that eoltype is Lisp_Int.
14214
14215 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
14216
14217 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
14218 depends on the previous behavior.
14219
14220 2000-02-16 Gerd Moellmann <gerd@gnu.org>
14221
14222 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
14223
14224 2000-02-15 Gerd Moellmann <gerd@gnu.org>
14225
14226 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
14227
14228 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
14229 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
14230 write(2).
14231
14232 2000-02-15 Richard M. Stallman <rms@gnu.org>
14233
14234 * data.c (set_internal): Don't make variable buffer-local
14235 if within a let-binding for the same buffer.
14236 (let_shadows_buffer_binding_p): New function.
14237
14238 * eval.c (specbind): For buffer-local value,
14239 record the current buffer also.
14240 (unbind_to): Cope with that change.
14241
14242 2000-02-15 Gerd Moellmann <gerd@gnu.org>
14243
14244 * window.c (Fsave_window_excursion): Doc fix.
14245
14246 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
14247
14248 * syntax.c (back_comment): Make sure we only consider comment-starters
14249 of the relevant style and return -1 in case of a failure to find the
14250 beginning of the comment.
14251 (Fforward_comment): If back_comment fails, go back to the position just
14252 after the comment-end.
14253 (scan_lists): Add comment describing a very minor bug.
14254
14255 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
14256
14257 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
14258 `completion-regexp-list' in the docstring.
14259
14260 2000-02-14 Dave Love <fx@gnu.org>
14261
14262 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
14263
14264 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
14265
14266 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
14267 to Emacs' syntax. Also fix the comment about set/not-set meanings
14268 since Emacs syntax is not the value 0 any more.
14269 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
14270 since it's now part of RE_SYNTAX_EMACS.
14271
14272 2000-02-12 Dave Love <fx@gnu.org>
14273
14274 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
14275
14276 2000-02-12 Gerd Moellmann <gerd@gnu.org>
14277
14278 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
14279
14280 2000-02-12 Dave Love <fx@gnu.org>
14281
14282 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
14283
14284 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
14285 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
14286 * s/hpux.h: Don't define HAVE_VFORK.
14287
14288 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
14289
14290 * s/nextstep.h: Don't define HAVE_ALLOCA.
14291
14292 * config.in: Add vfork bits.
14293
14294 2000-02-12 Gerd Moellmann <gerd@gnu.org>
14295
14296 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
14297 unwind function to undo the effect of stopping atimers.
14298
14299 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
14300
14301 * atimer.c (stopped_atimers): New variable.
14302 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
14303 New functions.
14304
14305 * atimer.h (stop_other_atimers, run_all_atimers)
14306 (unwind_stop_other_atimers): Add function prototypes.
14307
14308 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
14309
14310 2000-02-11 Ken Raeburn <raeburn@gnu.org>
14311
14312 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
14313 library may depend on jpeg.
14314 (atimer.o): Depends on atimer.c.
14315
14316 2000-02-11 Kenichi Handa <handa@etl.go.jp>
14317
14318 * insdel.c (del_range_1): Call update_compositions.
14319 (del_range_both): Call update_compositions just once..
14320
14321 2000-02-10 Dave Love <fx@gnu.org>
14322
14323 * xfns.c (create_frame_xic): Fix initialization of automatic
14324 aggregates for pcc.
14325
14326 2000-02-09 Kenichi Handa <handa@etl.go.jp>
14327
14328 * ccl.c (CCL_MAKE_CHAR): New macro.
14329 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
14330 registers by CCL_MAKE_CHAR before calling translate_char.
14331 <CCL_TranslateCharacterConstTbl> Likewise.
14332
14333 2000-02-08 Dave Love <fx@gnu.org>
14334
14335 * lread.c (__EXTENSIONS__): Define.
14336
14337 2000-02-08 Gerd Moellmann <gerd@gnu.org>
14338
14339 * puresize.h (BASE_PURESIZE): Increase to 650000.
14340
14341 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
14342
14343 * msdos.c (XMenuActivate): Turn off the cursor after displaying
14344 the help message.
14345
14346 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
14347
14348 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
14349 md, mh, mb, mr, and me to the fake termcap entry.
14350
14351 2000-02-06 Ken Raeburn <raeburn@gnu.org>
14352
14353 * sound.c (sound_cleanup): Don't call device close routine if the
14354 function pointer is null.
14355
14356 2000-02-06 Andrew Innes <andrewi@gnu.org>
14357
14358 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
14359 around image definitions and prototypes.
14360 (gamma_correct) [WINDOWSNT]: New prototype.
14361
14362 * w32term.c (x_make_frame_visible): Replace call to
14363 input_poll_signal with poll_for_input.
14364
14365 * window.c [WINDOWSNT]: Include w32term.h.
14366
14367 * xdisp.c [WINDOWSNT]: Include w32term.h.
14368
14369 * makefile.nt: Add dependencies on w32gui.h.
14370 (OBJ1): Include atimer.obj.
14371 ($(BLD)\atimer.obj): New dependency rule.
14372
14373 * w32.c (sigmask): New function (does nothing).
14374 (sigunblock): Ditto.
14375
14376 * frame.c [WINDOWSNT]: Include w32term.h.
14377
14378 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
14379
14380 * lread.c (syms_of_lread): Fix literal newlines.
14381
14382 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
14383 the string constant limit (2048 bytes) in MSVC.
14384 (main): Ditto.
14385
14386 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
14387
14388 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
14389 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
14390 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
14391 dispatch the event.
14392
14393 2000-02-04 Dave Love <fx@gnu.org>
14394
14395 * fileio.c: Remove some unused vars.
14396 (_GNU_SOURCE): Define (for euidaccess).
14397
14398 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
14399
14400 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
14401 gcpro1, gcpro2.
14402 (read_minibuf): Deal with allow_props correctly.
14403
14404 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
14405
14406 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
14407
14408 2000-02-03 Ken Raeburn <raeburn@gnu.org>
14409
14410 * search.c (compile_pattern): If a cache entry has a nil regexp,
14411 fill in that entry instead of clobbering a previously cached
14412 string regexp.
14413
14414 2000-02-02 Ken Raeburn <raeburn@gnu.org>
14415
14416 * puresize.h (BASE_PURESIZE): Increase to 610000.
14417
14418 2000-02-02 Gerd Moellmann <gerd@gnu.org>
14419
14420 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
14421 can GC.
14422
14423 2000-02-02 Kenichi Handa <handa@etl.go.jp>
14424
14425 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
14426 instead of incrementing ic directly.
14427 <CCL_WriteExprConst> Likewise.
14428 <ccl_set_expr>: Set ic to jump_address.
14429
14430 * fileio.c (e_write): Fix the handling of
14431 CODING_FINISH_INSUFFICIENT_SRC.
14432
14433 2000-02-01 Dave Love <fx@gnu.org>
14434
14435 * editfns.c (Fpropertize): Doc fix.
14436
14437 * process.c (Fstart_process): Doc fix.
14438
14439 * eval.c: Fix various doc strings not to duplicate information
14440 from help-manyarg-func-alist.
14441
14442 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
14443
14444 * doc.c (Vhelp_manyarg_func_alist): New variable.
14445 (Fdocumentation): Use it.
14446 (syms_of_doc): Define it.
14447
14448 2000-01-31 Gerd Moellmann <gerd@gnu.org>
14449
14450 * xterm.c (xim_open_dpy): Remove unused local variable.
14451
14452 * emacs.c (USAGE): Use term `display options' instead of `X options'.
14453
14454 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
14455 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
14456
14457 * fns.c (sweep_weak_table): New function.
14458 (sweep_weak_hash_tables): Use it. Keep on marking until there
14459 is no more change.
14460
14461 2000-01-30 Gerd Moellmann <gerd@gnu.org>
14462
14463 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
14464 that XTread_socket does not crash by trying to call XNoOp on a
14465 closed display.
14466
14467 2000-01-30 Jason Rumney <jasonr@gnu.org>
14468
14469 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
14470 Change selected_frame to SELECTED_FRAME ().
14471 (w32_console_mouse_position): Remove #ifndef MULE from around
14472 `insist' parameter.
14473
14474 * makefile.nt: Remove dosfns.obj.
14475
14476 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
14477
14478 * w32fns.c (w32_defined_color): Check for valid frame before
14479 applying gamma correction. Eliminate dependency on frame elsewhere.
14480 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
14481 (w32_to_x_font): Use resx and resy not height_in and width_in.
14482 (x_to_w32_font): Doc fix.
14483 (xlfd_strip_height): New function to strip and return font height.
14484 (w32_font_match): Compare height separately from rest of xlfd
14485 spec, using xlfd_strip_height.
14486
14487 * w32term.c (w32_term_init): Swap resx and height_in, resy and
14488 width_in. Use w32_defined_color in place of defined_color.
14489
14490 * w32faces.c: Merge more of DOS and X specifics in preparation for
14491 merge with xfaces.c.
14492 (defined_color): Remove FIXME comment.
14493 (tty_color_name): Provide w32-specific function.
14494 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
14495
14496 * w32console.c (turn_on_face, turn_off_face): Removed.
14497 (w32_face_attributes): New function.
14498 (Global_variables): Reduce scope where possible.
14499 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
14500 fill attribute.
14501 (hl_mode): Don't modify text attributes.
14502 (write_glyphs): Don't do anything if len <= 0. Use
14503 w32_face_attributes to get attributes for drawing. Write
14504 terminating codes using char_attr_normal.
14505 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
14506 (update_begin, update_end): Likewise.
14507 (vga_stdcolor_name): New function.
14508 (initialize_w32_display): Remove char_attr_reverse and char_attr.
14509 (Fset_screen_color): Remove char_attr_reverse.
14510
14511 2000-01-29 Gerd Moellmann <gerd@gnu.org>
14512
14513 * xfns.c (xic_set_preeditarea): Take window parameter and
14514 window-relative pixel-positions.
14515
14516 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
14517 is its frame's selected window.
14518 (xim_instantiate_callback): Likewise.
14519
14520 * xfns.c (x_create_im): Removed.
14521 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
14522 (supported_xim_styles): Renamed from supported_styles.
14523 (best_xim_style): Renamed from best_style.
14524 (create_frame_xic): Renamed from xic_create_frame.
14525 (free_frame_xic): Renamed from xic_destroy_frame.
14526
14527 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
14528
14529 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
14530 our frames, call XFilterEvent with 2nd parameter `None'.
14531 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
14532 returning XBufferOverflow.
14533 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
14534 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
14535 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
14536 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
14537 (xim_initialize, xim_close)
14538 [HAVE_X_I18N && HAVE_X11R6]: New functions.
14539 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
14540 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
14541 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
14542
14543 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
14544 and `xim_styles'.
14545 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
14546 `xic_style' and `xic_xfs'.
14547 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
14548 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
14549 (FRAME_XIM): Removed.
14550
14551 * xfns.c (supported_styles): New variable.
14552 (DEFAULT_STYLE, DEFAULT_FONT): New macros
14553 (xic_create_xfontset, best_style, xic_create_frame)
14554 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
14555 (xic_set_xfontset): New functions.
14556
14557 2000-01-28 Dave Love <fx@gnu.org>
14558
14559 * s/irix6-5.h: Revert last change after change to irix5-0.h.
14560
14561 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
14562
14563 2000-01-28 Gerd Moellmann <gerd@gnu.org>
14564
14565 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
14566 for *scratch* if it already existed.
14567
14568 * emacs.c (USAGE): New macro.
14569 (main): Use it to display usage information.
14570
14571 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
14572
14573 Support for the menu-help feature:
14574
14575 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
14576
14577 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
14578 part of the line to the termscript file.
14579 (IT_clear_to_end): Clear the entire line, not just its beginning.
14580 (menu_help_message, prev_menu_help_message): New variables.
14581 (IT_menu_make_room): Make room for the help_text member.
14582 (IT_menu_display): New argument disp_help; all callers changed.
14583 If disp_help is non-zero, store the help text of the active menu
14584 item in menu_help_message.
14585 (XMenuAddPane): Initialize the help_text member to NULL.
14586 (XMenuAddSelection): New argument help_text. Store it in the
14587 XMenu structure.
14588 (XMenuActivate): New argument help_callback. If the value of
14589 menu_help_message has changed since the last time, display the
14590 menu help message text while waiting for the mouse to move. Clear
14591 the echo area before exiting.
14592 (XMenuDestroy): Free the help_text member.
14593
14594 2000-01-27 Gerd Moellmann <gerd@gnu.org>
14595
14596 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
14597 XMenuAddSelection. Pass help callback to XMenuActivate.
14598 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
14599
14600 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
14601
14602 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
14603 and EMACS_SET_USECS.
14604
14605 2000-01-26 Dave Love <fx@gnu.org>
14606
14607 * editfns.c (Fchar_after, Fchar_before): Doc fix.
14608
14609 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
14610 an error may be signalled.
14611
14612 2000-01-26 Gerd Moellmann <gerd@gnu.org>
14613
14614 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
14615 LD_SWITCH_SYSTEM inherited from irix5-0.h.
14616
14617 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
14618
14619 2000-01-25 Gerd Moellmann <gerd@gnu.org>
14620
14621 * charset.c (Fstring): If there is a multibyte char among
14622 the args, always return a multibyte string.
14623
14624 2000-01-25 Gerd Moellmann <gerd@gnu.org>
14625
14626 * sysdep.c (sys_select): Turn atimers off and on instead of
14627 recording and restoring old alarm handler
14628
14629 * process.c (toplevel): Include atimer.h.
14630 (create_process_1): Rewritten.
14631 (create_process): Use atimers instead of alarm.
14632 (wait_reading_process_input) [hpux]: Turn atimers off instead
14633 of turning off SIGALRM.
14634 (wait_reading_process_input): Turn off atimers instead off
14635 calling stop_polling.
14636
14637 * emacs.c (main): Call init_atimer.
14638
14639 * keyboard.c (toplevel): Include systime.h and atimer.h.
14640 (polling_for_input): Removed because unused.
14641 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
14642 (poll_timer): New variable.
14643 (poll_for_input, poll_for_input_1): New functions.
14644 (start_polling, stop_polling): Rewritten.
14645
14646 * keyboard.h (polling_for_input): Removed.
14647
14648 * atimer.h, atimer.c: New files.
14649
14650 * Makefile.in (obj): Add atimer.o.
14651 (atimer.o): New target.
14652
14653 * blockinput.h (pending_atimers): Add extern declaration.
14654 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
14655
14656 * lisp.h (popup_activated_flag): Add extern declaration.
14657
14658 * xmenu.c (popup_activated_flag): Make externally visible.
14659 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
14660 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
14661
14662 * xterm.c (toplevel): Include atimer.h.
14663 (toolkit_scroll_bar_interaction): New variable.
14664 (Fxt_process_timeouts): Removed.
14665 (x_process_timeouts): New function.
14666 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
14667 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
14668 (x_make_frame_visible): Call poll_for_input_1 instead of
14669 input_poll_signal. Don't call alarm.
14670 (x_initialize): Install timer calling x_process_timeouts.
14671
14672 2000-01-24 Dave Love <fx@gnu.org>
14673
14674 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
14675 Don't use -cckr -- apparently not now necessary.
14676
14677 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
14678
14679 * msdos.c (IT_menu_display): Truncate long menu lines at the right
14680 screen boundary.
14681
14682 2000-01-23 Jason Rumney <jasonr@gnu.org>
14683
14684 * w32fns.c (w32_defined_color): Apply gamma correction before
14685 trying to map to the palette.
14686 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
14687 to w32_clear_rect.
14688
14689 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
14690 here. Callers changed to always pass real device context.
14691 (w32_draw_bitmap): Likewise.
14692 (w32_get_glyph_overhangs): Likewise.
14693 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
14694 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
14695 pfnSetScrollInfo and SetScrollRange.
14696 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
14697 back into MULE characters after decoding them.
14698 (x_get_glyph_face_and_encoding): Likewise.
14699 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
14700 GetCharABCWidthsW fails, since this is defined on Windows 9x.
14701 (x_produce_glyphs): Calculate per char metrics for a character
14702 that we know exists in default font when font_not_found_p is true.
14703
14704 2000-01-22 Jason Rumney <jasonr@gnu.org>
14705
14706 * makefile.nt (intervals.obj, composite.obj): New modules.
14707 (composite.h): Added as dependency where appropriate.
14708
14709 * w32gui.h (XGCValue): New struct for emulating X GCs.
14710
14711 * w32term.h (XCharStruct): New struct for emulating X.
14712
14713 * w32console.c (turn_on_face, turn_off_face): New functions.
14714 (change_line_highlight): New prototype for new redisplay.
14715 (write_glyphs): Support multibyte text. Support faces.
14716
14717 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
14718
14719 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
14720 throughout. struct frame * in place of FRAME_PTR.
14721 Skeleton support for images, toolbars, tooltips from xfns.c.
14722 (Fx_create_frame): Use system default for default scroll bar width.
14723 (w32_get_arg): Renamed from x_get_arg.
14724 (Fx_file_dialog): New function.
14725 (w32_list_fonts): Check cache before asking system.
14726 (Vw32_enable_synthesized_fonts): New variable.
14727 (Vw32_enable_italics): Obsolete, removed.
14728
14729 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
14730 Use SELECTED_FRAME macro.
14731
14732 * w32menu.c: Add skeleton support for help strings on menus.
14733 (add_menu_item): Native checkbox and radio support added, but not
14734 yet enabled due to bugs.
14735 (push_menu_item): Add parameters type, selection and help.
14736 Callers updated.
14737 Formatting changes to reduce unnecessary diffs with xmenu.c.
14738
14739 * w32select.c (Fw32_set_clipboard_data): Update call to
14740 find_charset_in_str.
14741
14742 * w32term.c: Complete rewrite for new redisplay based on new
14743 xterm.c with necessary sections merged back in from old w32term.c.
14744
14745 2000-01-21 Richard M. Stallman <rms@gnu.org>
14746
14747 * data.c (set_internal): Further fix in same criterion.
14748
14749 2000-01-20 Richard M. Stallman <rms@gnu.org>
14750
14751 * data.c (set_internal): Fix the criteria for whether
14752 to swap out the old cached binding.
14753
14754 2000-01-19 Dave Love <fx@gnu.org>
14755
14756 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
14757
14758 2000-01-18 Kenichi Handa <handa@etl.go.jp>
14759
14760 * regex.c (re_compile_fastmap): While checking a range table for
14761 `charset', skip flag bits for a character class correctly.
14762
14763 2000-01-17 Gerd Moellmann <gerd@gnu.org>
14764
14765 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
14766
14767 * xfns.c (x_window): Call lw_create_widget with new parameter list.
14768
14769 * widget.c (EmacsFrameSetCharSize): Change size of children first
14770 because of problems with main window geometry management under Lesstif.
14771
14772 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
14773 MENU_ITEMS_ITEM_.*.
14774 (MENU_ITEMS_ITEM_HELP): New enumerator.
14775 (push_menu_item): Add parameter HELP. Record help in menu_items.
14776 (single_menu_item, single_submenu, list_of_items): Call
14777 push_menu_item with new parameter.
14778 (single_submenu): Set help string in widget value.
14779 (menu_highlight_callback): New function.
14780 (set_frame_menubar): Call lw_create_widget with new
14781 parameter list.
14782 (xmenu_show, xdialog_show): Ditto.
14783
14784 2000-01-13 Gerd Moellmann <gerd@gnu.org>
14785
14786 * sound.c (Fplay_sound): Improve doc string.
14787
14788 2000-01-11 Richard M. Stallman <rms@gnu.org>
14789
14790 * lisp.h (set_internal): Enter the new arg.
14791
14792 * eval.c (specbind): Record buffer-local variables specially,
14793 indicating which buffer's binding was saved.
14794 (unbind_to): Restore buffer-local variables specially
14795 in the proper buffer.
14796
14797 * data.c (set_internal): New arg BUF.
14798
14799 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
14800 * data.c (Fset): Pass new arg to set_internal.
14801 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
14802
14803 2000-01-11 Gerd Moellmann <gerd@gnu.org>
14804
14805 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
14806
14807 2000-01-11 Richard M. Stallman <rms@gnu.org>
14808
14809 * minibuf.c (Ftry_completion): Doc fix.
14810
14811 2000-01-11 Gerd Moellmann <gerd@gnu.org>
14812
14813 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
14814 vector, too.
14815
14816 2000-01-11 Andreas Schwab <schwab@suse.de>
14817
14818 * coding.c (code_convert_region): Initialize total_skip.
14819
14820 2000-01-08 Dave Love <fx@gnu.org>
14821
14822 * eval.c (Fuser_variable_p): Check customizability too.
14823
14824 2000-01-07 Gerd Moellmann <gerd@gnu.org>
14825
14826 * minibuf.c (Fcompleting_read): Doc fix.
14827
14828 2000-01-05 Gerd Moellmann <gerd@gnu.org>
14829
14830 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
14831 -L /usr/local/lib.
14832
14833 * xfns.c (x_create_im): New function to set IM and IC of a frame.
14834 Check that input style is supported before trying to create an
14835 IC for it.
14836 (x_window): Call x_create_im.
14837
14838 2000-01-04 Gerd Moellmann <gerd@gnu.org>
14839
14840 * xfns.c (current_gif_memory_src): New variable.
14841 (gif_load): Record the address of the current memory source
14842 in current_gif_memory_src.
14843 (gif_read_from_memory): Use current_gif_memory_src.
14844
14845 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
14846 macros statement form.
14847
14848 * sound.c (struct sound): Renamed from struct sound_file.
14849 (struct sound): Add members `data' and `header_size'.
14850 (enum sound_attr): Add SOUND_DATA.
14851 (current_sound, current_sound_device): Variables renamed from
14852 sound_file and sound_device.
14853 (parse_sound): Parse :data.
14854 (parse_sound): Handle sound data in strings.
14855 (find_sound_type): Function renamed from find_sound_file_type.
14856 (wav_init, au_init): Fail if sound's header_size is smaller than
14857 needed header size.
14858 (wav_play, au_play): Play sounds from string data.
14859
14860 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
14861
14862 * lisp.h: Add prototype for allocate_string_data.
14863
14864 * alloc.c (Fgarbage_collect): Return number of live and free strings.
14865
14866 * alloc.c (mark_buffer): Remove code in #if 0.
14867 (gc_sweep): Ditto.
14868 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
14869 (strings_consed): New variable.
14870 (allocate_string): Set it.
14871 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
14872 (Fmemory_use_counts): Return strings_consed. Use Flist.
14873
14874 * alloc.c: General cleanup in comments etc. Remove conditional
14875 compilation for `standalone'.
14876
14877 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
14878
14879 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
14880 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
14881 (DONT_COPY_FLAG): Removed.
14882 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
14883 (struct sdata, struct sblock): New
14884 (struct string_block): Rewritten.
14885 (STRINGS_IN_STRING_BLOCK): New macro.
14886 (oldest_sblock, current_sblock, total_strings, total_free_strings)
14887 (large_sblocks, string_blocks, string_free_list): New variables.
14888 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
14889 (init_strings): Rewritten.
14890 (allocate_string, allocate_string_data, compact_small_strings)
14891 (free_large_strings, sweep_strings): New functions.
14892 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
14893 (struct string_block_head, current_string_block)
14894 (first_string_block, large_string_blocks, STRING_FULLSIZE)
14895 (STRING_PAD): Removed.
14896 (make_uninit_multibyte_string, make_pure_string): Rewritten.
14897 (Fgarbage_collect): Don't set mark bit in large strings.
14898 (mark_object): Mark strings differently. Mark symbol names
14899 differently.
14900 (survives_gc_p): Test marked strings differently.
14901 (gc_sweep): Sweep strings differently, unmark strings in
14902 symbol names.
14903 (compact_strings): Removed.
14904
14905 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
14906
14907 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
14908 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
14909
14910 2000-01-04 Kenichi Handa <handa@etl.go.jp>
14911
14912 * fileio.c (Finsert_file_contents): Signal error if visiting file
14913 in a non-empty buffer.
14914
14915 * term.c (encode_terminal_code): Fix the previous change.
14916
14917 2000-01-03 Gerd Moellmann <gerd@gnu.org>
14918
14919 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
14920 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
14921
14922 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
14923
14924 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
14925
14926 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
14927 need to test for MSDOS frames.
14928
14929 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
14930
14931 * dosfns.c (unspecified_colors): Remove.
14932 (msdos_stdcolor_idx): Use global variables unspecified_fg and
14933 unspecified_bg.
14934 (msdos_stdcolor_name): Return strings for unspecified fore- and
14935 back-ground colors.
14936
14937 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
14938 (syms_of_xfaces): Remove their staticpro's.
14939 (tty_color_name): Return Lisp strings for unspecified fore- and
14940 back-ground colors.
14941 (Finternal_set_lisp_face_attribute): Remove the special treatment
14942 for Qunspecified_{f,b}g.
14943 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
14944
14945 2000-01-03 Gerd Moellmann <gerd@gnu.org>
14946
14947 * xdisp.c (reseat_at_next_visible_line_start): Position before
14948 newline only if ending up on a newline.
14949 (next_element_from_ellipsis): Return success. Handle case of
14950 displaying no ellipsis. Fix case of ellipsis defined in display table.
14951 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
14952 returns 0.
14953
14954 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
14955
14956 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
14957 (Fcolor_supported_p): Renamed from face-color-supported-p.
14958
14959 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
14960
14961 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
14962 list of colors renamed to tty-defined-color-alist.
14963 (tty_color_name): Pass the frame to tty-color-by-index.
14964 (realize_tty_face): tty-color-alist is now a function which
14965 accepts the frame as argument.
14966
14967 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
14968
14969 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
14970
14971 * term.c (insert_glyphs): Pass glyph, not &glyph, to
14972 encode_terminal_code.
14973
14974 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
14975
14976 * dispnew.c (mode_line_string): Support termcap frames as well.
14977
14978 2000-01-01 Gerd Moellmann <gerd@gnu.org>
14979
14980 * syntax.c (Fforward_word): Undo previous change.
14981
14982 * editfns.c (Fconstrain_to_field): Don't constrain if
14983 inhibit-field-text-motion is non-nil.
14984 (Fline_beginning_position): Undo previous change.
14985 (Fline_end_position): Ditto.
14986
14987 * syntax.c (Fforward_word): Notice field boundaries only if
14988 inhibit-field-text-motion is nil.
14989
14990 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
14991
14992 * editfns.c (Vinhibit_field_text_motion): New variable.
14993 (inhibit-field-text-motion): New DEFVAR_LISP.
14994 (Fline_beginning_position, Fline_end_position): Notice field
14995 boundaries only if inhibit-field-text-motion is nil.
14996
14997 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
14998 All calls adjusted.
14999 (x_build_heuristic_mask): Likewise.
15000 (xbm_load_image_from_file): Change error output.
15001 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
15002 (gif_load, gs_load, x_kill_gs_process): Ditto.
15003
15004 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
15005 color indices when accessing raster pixels.
15006 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
15007 one of :file or :data.
15008 (enum pbm_keyword_index): Add PBM_DATA.
15009 (pbm_format): Add :data.
15010 (pbm_image_p): Allow either :file or :data.
15011 (pbm_read_file): New function.
15012 (pbm_scan_number): Rewritten to read from string.
15013 (pbm_load): Support :data.
15014
15015 See ChangeLog.8 for earlier changes.
15016
15017 ;; Local Variables:
15018 ;; coding: iso-2022-7bit
15019 ;; End:
15020
15021 Copyright (C) 2001 Free Software Foundation, Inc.
15022 Copying and distribution of this file, with or without modification,
15023 are permitted provided the copyright notice and this notice are preserved.