(to_multibyte): Fix computation of new read_buffer_size.
[bpt/emacs.git] / src / ChangeLog
1 2001-10-31 Gerd Moellmann <gerd@gnu.org>
2
3 * lread.c (to_multibyte): Fix computation of new read_buffer_size.
4
5 * xfaces.c (realize_x_face): If C is not a single-byte character,
6 set the face's colors_copied_bitwise_p instead of the defaulted_p
7 members which have a different meaning.
8 (free_face_colors): Do nothing for a face whose colors have been
9 copied bitwise.
10
11 * dispextern.h (struct face) <colors_copied_bitwise_p>: New
12 member.
13
14 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
15
16 * marker.c: Change doc-string comments to `new style' [w/`doc:'
17 keyword].
18
19 2001-10-31 Gerd Moellmann <gerd@gnu.org>
20
21 * fns.c (require_unwind): Return Lisp_Object.
22
23 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
24
25 * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
26 (last-input-char): Revert doc-string to be the same as the
27 doc-string of `last-input-event'.
28
29 * xdisp.c: Fix typos in comments.
30
31 2001-10-31 Gerd Moellmann <gerd@gnu.org>
32
33 * window.c (grow_mini_window): Handle case that the root
34 window is already smaller than the nominal mininum height.
35
36 2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
37
38 * emacs.c (main): Don't call keys_of_macros any more.
39
40 * lisp.h (keys_of_macros): Remove.
41
42 * macros.c (keys_of_macros): Remove.
43
44 * xfaces.c (Fface_attribute_relative_p): Declare args.
45
46 2001-10-30 Jason Rumney <jasonr@gnu.org>
47
48 * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
49 (enum_font_cb2): Ignore fonts with vertical orientation.
50
51 2001-10-30 Richard M. Stallman <rms@gnu.org>
52
53 * keyboard.c (Finput_pending_p): Doc fix.
54
55 2001-10-30 Gerd Moellmann <gerd@gnu.org>
56
57 * xterm.c (x_after_update_window_line): Don't run the code
58 clearing in borders for rows whose visible height is 0.
59
60 * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
61 resized_p flag is set. If not set, use the much less flickering
62 method previously used.
63
64 * dispnew.c (change_frame_size_1): Set frame's resized_p.
65
66 * frame.h (struct frame) <resized_p>: New member.
67
68 * lread.c (to_multibyte): Ensure read_buffer is at least twice
69 as large as the number of bytes to convert.
70
71 * lread.c (to_multibyte): New function.
72 (read1): Use it.
73
74 2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
75
76 * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
77
78 2001-10-30 Gerd Moellmann <gerd@gnu.org>
79
80 * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
81 (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
82 if the row's fill_line_p is set and drawing the last glyph with
83 DRAW_IMAGE_{RAISED,SUNKEN}.
84
85 * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
86
87 2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
88
89 * xmenu.c: Include coding.h and charset.h.
90 (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
91 (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
92 (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
93 Explicitly set wv->help. Use `TRUE' rather than `True'.
94 (menu_help_callback): Use empty_string.
95
96 * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
97 (Fx_popup_dialog): Explicitly init f.
98 (w32_menu_display_help): Use empty_string.
99
100 2001-10-29 Richard M. Stallman <rms@gnu.org>
101
102 * fns.c (Frequire): Detect recursive try to require the same
103 feature 3 or more levels deep, and get error.
104 (require_unwind): New subroutine.
105 (require_nesting_list): New variable.
106 (syms_of_fns): Init and staticpro it.
107
108 * print.c (print_object): Clarify indication of insertion type.
109
110 2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
111
112 * coding.c (syms_of_coding): Document that locale-coding-system is
113 used for decoding input on X.
114
115 * window.c (Fscroll_left, Fscroll_right): Doc fix.
116
117 2001-10-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
118
119 * keyboard.c (Finput_pending_p): Fix typo in doc-string.
120 (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
121
122 2001-10-29 Gerd Moellmann <gerd@gnu.org>
123
124 * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
125 use NO_CURSOR if cursor_in_non_selected_windows is false.
126
127 * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
128 the slant attribute if FRAME is t.
129
130 * xfns.c (x_set_internal_border_width): Set frame garbaged
131 when X window doesn't exist yet.
132
133 * xterm.c (x_after_update_window_line): Clear internal border
134 in different circumstances.
135
136 * xterm.c (XTread_socket) <KeyPress>: Don't use
137 STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
138 <handa@etl.go.jp>.
139
140 2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
141
142 * m/ibms390.h: New file. From Adam Thornton
143 <athornton@sinenomine.net>.
144
145 2001-10-28 Gerd Moellmann <gerd@gnu.org>
146
147 * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
148
149 * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
150 a loop counter.
151
152 2001-10-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
153
154 * emacs.c: Use argv[0] instead of emacs when -t was specified.
155
156 * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
157 keyword].
158 Fix typos in comments.
159
160 * emacs.c (bug_reporting_address): New function.
161 Use it when displaying usage message.
162
163 * minibuf.c (read_minibuf): Remove unused external declaration of
164 variable `Qread_only'.
165
166 * keymap.c (access_keymap): Remove unused variable `charset'.
167
168 2001-10-28 Miles Bader <miles@gnu.org>
169
170 * xfaces.c (merge_face_heights): Handle TO being relative as well.
171 Remove #ifdef'd-out code.
172 (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
173 (syms_of_xfaces): Initialize them.
174
175 2001-10-27 Jason Rumney <jasonr@gnu.org>
176
177 * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
178 <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
179 position using the system caret.
180
181 * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
182 (w32_system_caret_height, w32_system_caret_x)
183 (w32_system_caret_y): New variables for tracking system caret.
184 (w32_initialize): Initialize them.
185 (x_display_and_set_cursor): Make system caret follow the active cursor.
186
187 * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
188 New messages types.
189
190 * w32term.c (note_mouse_highlight): Clear old help_echo.
191
192 2001-10-27 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
193
194 * xterm.c: Fix typo in a comment.
195
196 * emacs.c: Fix typos in comments.
197 Remove unnecessary spaces.
198 Change doc-string comments to `new style' [w/`doc:' keyword].
199 (USAGE2): Fix typos in usage string.
200
201 * xterm.c: Fix typo in a comment.
202
203 * lisp.h: (gdb_lisp_params): Remove code in #if 0 which is now in
204 emacs.c.
205
206 2001-10-27 Gerd Moellmann <gerd@gnu.org>
207
208 * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
209 instead of 1/2 line_height in the heuristic for skipping
210 farther backward when target_y was not reached.
211
212 * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
213 Display errno only if non-zero.
214 (sound_warning): New function.
215 (vox_configure): Don't treat failing to set sample rate as error.
216 (various places): Improve error messages.
217
218 2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
219
220 * fileio.c (Faccess_file): Run the argument filename through
221 Fexpand_file_name, before using it.
222
223 * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
224 ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
225
226 2001-10-26 Gerd Moellmann <gerd@gnu.org>
227
228 * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
229
230 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
231 Fix clearing in the case of scroll bars on the right.
232
233 2001-10-26 Juanma Barranquero <lektu@terra.es>
234
235 * w32gui.h (XImage): Add a dummy typedef.
236
237 2001-10-26 Gerd Moellmann <gerd@gnu.org>
238
239 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
240
241 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
242
243 * frame.c (Fframe_parameter): Fix last change.
244
245 2001-10-25 Gerd Moellmann <gerd@gnu.org>
246
247 * frame.c (Fframe_parameter): Fix a bug whereby some
248 ``artificial'' frame parameters, like `minibuffer' were not
249 obtained by calling Fframe_parameters.
250
251 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
252 cursor differently.
253
254 * xdisp.c (move_it_vertically_backward): Compute line height
255 differently. Add heuristic to try to be more compatible to 20.x.
256
257 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
258
259 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
260
261 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
262 boolean.
263
264 2001-10-25 Miles Bader <miles@gnu.org>
265
266 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
267 BG is a pointer to a structure, not a structure.
268 (gif_format, png_format): Add missing commas.
269
270 2001-10-24 Richard M. Stallman <rms@gnu.org>
271
272 * xfaces.c (Fface_attributes_as_vector): New function.
273 (syms_of_xfaces): Defsubr it.
274
275 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
276
277 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
278 variable `area'.
279
280 2001-10-25 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
281
282 * search.c (scan_newline): Remove unused variable `selective_display'.
283
284 2001-10-25 Miles Bader <miles@gnu.org>
285
286 * dispextern.h (struct image): Add `background',
287 `background_valid', and `background_transparent' fields.
288 (image_background, image_background_transparent): New declarations.
289 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
290 * xfns.c (image_background, image_background_transparent)
291 (four_corners_best): New functions.
292 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
293 (gs_format): Add `:background' entry.
294 (lookup_image): Set IMG's background color if specified.
295 (pbm_load, xbm_load_image, png_load): Set IMG's background field
296 when appropriate.
297 (x_clear_image_1): Reset `background_valid' and
298 `background_transparent_valid' fields.
299 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
300 calculating it here. Set IMG's background_transparent field.
301 (enum xpm_keyword_index): Add XPM_BACKGROUND.
302 (enum png_keyword_index): Add PNG_BACKGROUND.
303 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
304 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
305 (enum gif_keyword_index): Add GIF_BACKGROUND.
306 (enum gs_keyword_index): Add GS_BACKGROUND.
307 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
308 Pre-calculate image background color where necessary.
309 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
310 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
311 color to use for image glyph reliefs.
312
313 2001-10-24 Gerd Moellmann <gerd@gnu.org>
314
315 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
316 in full-width rows.
317
318 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
319 Fix clearing of area not covered by scroll bar.
320
321 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
322
323 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
324 and `real_start'.
325 (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
326 (glyph_rect): Remove unused variable `area'.
327
328 2001-10-24 Gerd Moellmann <gerd@gnu.org>
329
330 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
331
332 * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
333 (row_containing_pos): Take additional argument DY.
334 Treat rows ending in middle of char differently.
335 (display_line): Handle tabs on window systems differently.
336
337 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
338 with additional argument.
339
340 * dispextern.h (row_containing_pos): Adjust prototype.
341
342 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
343 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
344 (try_window_id, try_window_reusing_current_matrix)
345 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
346 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
347
348 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
349
350 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
351 gnuemacs).
352 (HAVE_BOXES): Fix typo in comment.
353 (push_menu_pane): Fix typo in comment.
354
355 * xdisp.c: (display_prop_string_p): Remove unused local declaration
356 of `Qwhen'.
357 (single_display_prop_string_p): Remove unused local declarations
358 of `Qwhen' and `Qmargin'.
359 (string_buffer_position): Remove unused variable `around'.
360 (store_frame_title): Remove unused variable `width'.
361
362 * window.c: Don't define max.
363 (coordinates_in_window): Remove unused variable `uy'.
364
365 * widget.c: Don't define max.
366
367 * process.c: Don't define max.
368 (create_process): Remove unused variable `buffer'.
369
370 2001-10-23 Gerd Moellmann <gerd@gnu.org>
371
372 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
373
374 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
375
376 * xfaces.c (Finternal_set_lisp_face_attribute)
377 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
378 frame is on a windowed display.
379
380 2001-10-23 Gerd Moellmann <gerd@gnu.org>
381
382 * dispnew.c (sync_window_with_frame_matrix_rows):
383 Fix handling of windows which aren't full-width, fix handling
384 of marginal areas.
385
386 * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
387
388 2001-10-23 Andreas Schwab <schwab@suse.de>
389
390 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
391 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
392
393 2001-10-23 Gerd Moellmann <gerd@gnu.org>
394
395 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
396 REAL_END. Notice if cursor gets overwritten.
397 (notice_overwritten_cursor): Take X positions as parameters.
398 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
399 around call to x_draw_glyphs.
400
401 2001-10-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
402
403 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
404 instead of C) and usage.
405
406 * editfns.c (char-to-string): Fix argument names (use CHAR instead
407 of C) and usage.
408
409 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
410 `left', `max_width' and `max_height'.
411
412 2001-10-23 Gerd Moellmann <gerd@gnu.org>
413
414 * xdisp.c (display_line): For a tab continued to the next line,
415 set row's ends_in_middle_of_char_p.
416
417 2001-10-22 Gerd Moellmann <gerd@gnu.org>
418
419 * xdisp.c (display_line): Fix computation of continuation lines
420 width for TABs.
421
422 2001-10-22 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
423
424 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
425 `Qlaplace'.
426
427 * fileio.c: Remove unused code.
428
429 2001-10-22 Miles Bader <miles@gnu.org>
430
431 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
432 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
433 Remove `DOC_STRINGS_IN_COMMENTS' cases.
434
435 2001-10-21 Jason Rumney <jasonr@gnu.org>
436
437 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
438
439 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
440
441 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
442 (Finsert_string): Avoid the multi-line string literals warning.
443
444 2001-10-22 Miles Bader <miles@gnu.org>
445
446 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
447 (Fdocumentation): Don't use it.
448 (syms_of_doc): Don't initialize it.
449
450 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
451 * print.c (Fwith_output_to_temp_buffer): Likewise.
452 * window.c (Fsave_window_excursion): Likewise.
453 * editfns.c (Fsave_excursion, Fsave_current_buffer)
454 (Fsave_restriction): Likewise.
455 * eval.c (Frun_hooks, Frun_hook_with_args)
456 (Frun_hook_with_args_until_failure)
457 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
458 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
459 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
460 (Funwind_protect, Fcondition_case): Likewise.
461 * coding.c (Ffind_operation_coding_system): Likewise.
462 * keyboard.c (Ftrack_mouse): Likewise.
463
464 2001-10-21 Miles Bader <miles@gnu.org>
465
466 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
467 (Fmake_hash_table): Add usage: string to doc string.
468 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
469 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
470 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
471 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
472 (Fml_prefix_argument_loop): Likewise.
473
474 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
475
476 * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
477
478 * sysdep.c (init_sys_modes): Change doc-string comments to `new
479 style' [w/`doc:' keyword].
480
481 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
482 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
483 comments to `new style' [w/`doc:' keyword].
484
485 2001-10-21 Jason Rumney <jasonr@gnu.org>
486
487 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
488
489 * w32term.c (remember_mouse_glyph): New function.
490 (w32_mouse_position): Use it.
491 (note_mouse_movement): If the mouse moved off the glyph, remember
492 its new position.
493
494 * w32term.h (struct w32_output): Correct spelling of x_compatible.
495 (w32_display_info): Add mouse_face_overlay.
496
497 * w32term.c (notice_overwritten_cursor): Renamed from
498 note_overwritten_text_cursor. Rewritten to take glyph widths into
499 account.
500 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
501 (fast_find_string_pos): New function.
502 (fast_find_position): Return the correct vpos. Add parameter
503 STOP. In the final row, stop before glyphs having STOP as object.
504 Don't consider glyphs that are not from a buffer.
505 (fast_find_position) [0]: Add a presumably more correct version
506 for after 21.1.
507 (expose_window_tree, expose_frame): Don't compute intersections here.
508 (expose_window): Do it here instead.
509 (expose_window_tree, expose_window, expose_line): Return 1 when
510 overwriting mouse-face.
511 (expose_window): If W is the window currently being updated, mark
512 the frame garbaged.
513 (expose_frame): If mouse-face was overwritten, redo it.
514 (x_use_underline_position_properties): New variable.
515 (syms_of_xterm): DEFVAR_BOOL it.
516 (x_draw_glyph_string): Add comment to use it in future.
517 (x_draw_glyph_string): Restore clipping after drawing box.
518 Fix a computation of the underline position.
519 (w32_get_glyph_string_clip_rect): Minor cleanup.
520 (x_fill_stretch_glyph_string): Remove an assertion.
521 (x_produce_glyphs): Don't convert multibyte characters
522 to unibyte characters in unibyte buffers.
523 (cursor_in_mouse_face_p): New function.
524 (x_draw_stretch_glyph_string): Use it to choose a different GC
525 when drawing a cursor within highlighted text. Don't draw
526 background again if it has already been drawn.
527 (x_draw_glyph_string_box): Don't draw a full-width
528 box just because the glyph row's full_width_p flag is set.
529 (x_draw_glyphs): Fix computation of rightmost x for
530 full-width rows.
531 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
532 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
533 change bottom shadow accordingly. Some cleanup.
534 (x_update_window_end): Handle overwritten mouse face
535 also for tool bar windows.
536 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
537 DRAW is DRAW_IMAGE_RAISED.
538 (clear_mouse_face): Return 1 if text with mouse face was
539 actually redrawn. Make the function static. Reset
540 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
541 optimize away highlighting if we pass over that same overlay again.
542 (note_mouse_highlight): Call mouse_face_overlay_overlaps
543 to detect a case where we have to highlight a different region
544 despite not having left the currently highlighted region.
545 Set mouse_face_overlay in the x_display_info. Avoid changing the
546 mouse pointer shape when show_mouse_face has already done it, or
547 there is no need. Handle mouse-face and help-echo in strings.
548 (glyph_rect): New function.
549 (w32_mouse_position): Use it to raise the threshold for mouse
550 movement event generation.
551 (w32_initialize_display_info): Initialize the x_display_info's
552 mouse_face_overlay.
553 (w32_set_vertical_scroll_bar): Don't clear a zero height
554 or width area.
555 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
556 a widget to zero height.
557
558 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
559 Protect unibyte strings created by replacing their multibyte
560 equivalents in menu_items.
561 (w32_menu_show): Don't overwrite an item's name with its key
562 description in case the description is a multibyte string.
563 (single_submenu): Some cleanup.
564
565 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
566 (postprocess_image): New function.
567 (lookup_image): Call it for all image types except PostScript.
568 (x_kill_gs_process): Call postprocess_image.
569 (tiff_error_handler, tiff_warning_handler): New functions.
570 (tiff_load): Install them as handlers.
571 (x_kill_gs_process): Recognize if someone has cleared the image
572 cache under us.
573 (valid_image_p): Protect better against invalid image
574 specifications. Previous code could signal an error.
575 (Fx_hide_tip, Fshow_tip): Doc fix.
576 (Fv_max_tooltip_size): New variable.
577 (syns_of_xfns): DEFVAR_LISP it.
578 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
579 window buffer to *tip* right after creating the frame. Set frame's
580 window_width. Use a maximum tooltip size specified by
581 Vx_max_tooltip_size, if that has valid contents.
582 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
583 Make sure the tooltip is completely visible.
584 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
585 (Fx_create_frame): Adjust the frame's height for presence
586 of the tool bar before calling x_figure_window_size.
587 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
588 when the window gets smaller.
589 (x_set_foreground_color): Set frame's cursor_pixel.
590 (x_set_foreground_color, x_set_background_color): Cleaned up.
591 (x_set_font): Handle case of x_new_fontset returning the same name
592 as before, although there was a change in fontsets.
593
594 2001-10-21 Miles Bader <miles@gnu.org>
595
596 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
597 (Flogxor): Add usage: string to doc string.
598 * charset.c (Fstring): Likewise.
599 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
600 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
601
602 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
603
604 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
605
606 * alloc.c: Reindent DEFUNs with doc: keywords.
607
608 * abbrev.c (Finsert_abbrev_table_description): Reindent.
609
610 * frame.c: Change doc-string comments to `new style' [w/`doc:'
611 keyword].
612
613 2001-10-20 Gerd Moellmann <gerd@gnu.org>
614
615 * (Version 21.1 released.)
616
617 2001-10-20 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
618
619 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
620
621 * xdisp.c (invisible_text_between_p): Put prototype inside #if
622 0 because unused.
623
624 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
625 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
626 Change doc-string comments to `new style' [w/`doc:' keyword].
627
628 2001-10-20 Miles Bader <miles@gnu.org>
629
630 The following changes remove the glyph_row `inverse_p' field,
631 which is never set anymore, due to other changes:
632
633 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
634 (reassert_line_highlight, change_line_highlight): Declarations removed.
635 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
636 (line_hash_code, row_equal_p, fake_current_matrices)
637 (build_frame_matrix_from_leaf_window, update_frame_line)
638 (update_frame_line, update_frame_line, update_frame_line):
639 Don't use `inverse_p' field.
640 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
641 change_line_highlight_hook.
642 (XTreassert_line_highlight, x_change_line_highlight):
643 Functions removed.
644 (x_fix_overlapping_area, x_write_glyphs, expose_area)
645 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
646 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
647 `inverse_p' field.
648 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
649 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
650 (w32_reassert_line_highlight, x_change_line_highlight):
651 Functions removed.
652 * w32console.c (reassert_line_highlight, change_line_highlight):
653 Functions removed.
654 (initialize_w32_display): Don't set reassert_line_highlight_hook
655 or change_line_highlight_hook.
656 (hl_mode): Function removed.
657 (reset_terminal_modes, set_terminal_modes, update_begin)
658 (update_end, w32_face_attributes, initialize_w32_display):
659 (clear_frame, ins_del_lines): Don't call it.
660 * termhooks.h (reassert_line_highlight_hook)
661 (change_line_highlight_hook): Declarations removed.
662 * term.c (reassert_line_highlight_hook)
663 (change_line_highlight_hook): Variables removed.
664 (reassert_line_highlight, change_line_highlight): Functions removed.
665 * msdos.c (IT_reassert_line_highlight)
666 (IT_change_line_highlight): Functions removed.
667 (internal_terminal_init): Don't set reassert_line_highlight_hook
668 or change_line_highlight_hook.
669 (highlight): Variable removed.
670 (IT_set_face, IT_update_begin, IT_update_end)
671 (IT_set_terminal_modes): Don't set or use it.
672
673 The following changes remove inverse-video support for terminals
674 that use a `magic cookie' standout mode. Due to changes in the
675 way mode-lines are displayed, such support no longer works
676 anyway, and it's probable that almost no one uses such terminals
677 anymore:
678
679 * term.c (standout_requested): Variable removed.
680 (update_end, highlight_if_desired): Don't use it.
681 (chars_wasted, copybuf): Variables removed.
682 (write_standout_marker): Function removed.
683 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
684 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
685 Don't use `chars_wasted' or `copybuf'.
686 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
687 Set `costs_set' to true.
688 (cursor_to, clear_end_of_line): Test `costs_set' instead of
689 `chars_wasted'.
690 (clear_end_of_line): Function removed.
691 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
692 (clear_to_end): Call `clear_end_of_line' instead of
693 `clear_end_of_line_raw'.
694 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
695 (term_init): Don't set them.
696 Turn off any standout/underline modes that require magic cookies.
697 (ins_del_lines, highlight_if_desired, background_highlight)
698 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
699 Remove special processing for magic-cookie standout modes.
700 (turn_off_face, turn_on_face): Remove special processing for
701 underline magic-cookie glitch.
702
703 2001-10-19 Richard M. Stallman <rms@gnu.org>
704
705 * eval.c (syms_of_eval): Doc fixes.
706
707 2001-10-19 Gerd Moellmann <gerd@gnu.org>
708
709 * xdisp.c (redisplay_internal): Don't clear echo area if the
710 mini-window is selected.
711
712 2001-10-19 Miles Bader <miles@gnu.org>
713
714 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
715 doesn't take precedence if the affected property's value is nil.
716
717 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
718
719 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
720 with fields and suggest using `forward-line' to avoid them.
721 * editfns.c (Fline_beginning_position, Fline_end_position):
722 Clarify documentation.
723
724 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
725
726 * keymap.c (current_minor_maps): `override' only shadows its
727 correspondent in minor-mode-map-alist, not the whole tail.
728
729 2001-10-18 Andrew Innes <andrewi@gnu.org>
730
731 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
732 optimization. The fontp->encoding array was not being initialized
733 correctly when compiled with optimizations by MSVC.
734
735 2001-10-18 Gerd Moellmann <gerd@gnu.org>
736
737 * xdisp.c (display_line): Indicate empty lines in active mini-window.
738
739 2001-10-17 Andrew Innes <andrewi@gnu.org>
740
741 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
742
743 * w32fns.c (w32_load_system_font): Cache codepage for font, in
744 font_info.charset field.
745
746 * w32term.c (w32_encode_char): Get cached codepage from font_info,
747 rather than working it out by calling w32_codepage_for_font for
748 every glyph.
749
750 2001-10-17 Andrew Innes <andrewi@gnu.org>
751
752 * w32term.c (w32_read_socket): Determine clipping rectangle for
753 the entire frame, including areas covered by scrollbars and the
754 menubar. This avoids internal arguments about whether a frame is
755 fully obscured or not.
756
757 2001-10-17 Gerd Moellmann <gerd@gnu.org>
758
759 * xdisp.c (try_window_id): Undo last change. Give up if
760 window ends in strings.
761
762 * xdisp.c (try_window_id): Don't display lines after the window
763 end if the rest of the window after the window end was already blank.
764
765 * xdisp.c (try_window_id): Remove code that was only there
766 for the release of 21.1.
767
768 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
769
770 2001-10-17 Miles Bader <miles@gnu.org>
771
772 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
773 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
774 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
775 Change doc-string comments to `new style' [w/`doc:' keyword].
776 (DOC_STRINGS_IN_COMMENTS): Macro removed.
777 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
778 out make-docfile.
779
780 2001-10-16 Miles Bader <miles@gnu.org>
781
782 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
783
784 2001-10-16 Gerd Moellmann <gerd@gnu.org>
785
786 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
787 *scratch*.
788
789 2001-10-16 Ken Raeburn <raeburn@gnu.org>
790
791 Avoid the assumption that car and cdr slots of cons cells are
792 addressable lvalues; this allows for easier experimentation with
793 other lisp implementations that may not permit such accesses for
794 various reasons. Not quite complete -- buffer.c still needs some
795 work, and w32/mac files need rechecking -- so compile-time
796 enforcement is left disabled for now.
797
798 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
799 gcc with a union-based Lisp object rep. Redefine as no-op for now.
800 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
801 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
802 (XSETCAR, XSETCDR): New macros.
803 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
804 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
805 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
806 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
807 XSETCDR.
808 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
809 * buffer.c (record_buffer, Fbury_buffer)
810 (swap_out_buffer_local_variables, recenter_overlay_lists)
811 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
812 fields of a cons cell respectively.
813 * callint.c (quotify_args, Fcall_interactively): Likewise.
814 * ccl.c (Fregister_code_conversion_map): Likewise.
815 * coding.c (detect_coding_system): Likewise.
816 * composite.c (get_composition_id, make_composition_value_copy):
817 Likewise.
818 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
819 (swap_in_symval_forwarding, set_internal, Fset_default)
820 (Fmake_variable_buffer_local, Fmake_local_variable)
821 (Fmake_variable_frame_local): Likewise.
822 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
823 * keymap.c (Fset_keymap_parent, store_in_keymap)
824 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
825 * minibuf.c (get_minibuffer): Likewise.
826 * search.c (Fmatch_data): Likewise.
827 * textprop.c (extend_property_ranges): Likewise.
828 * undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
829 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
830 Likewise.
831 * w32term.c (x_delete_display): Likewise.
832 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
833 Likewise.
834 * xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
835 * doc.c (store_function_docstring): Use XSETCARFASTINT.
836 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
837 (Fread_file_name): Use XSETCAR.
838 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
839 CHECK_NUMBER_CDR.
840 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
841 * frame.c (Fmake_terminal_frame): Use XSETCDR.
842 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
843 CHECK_NUMBER_CDR.
844 * keyboard.c (read_char): Alter list traversal to avoid taking the
845 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
846 (parse_menu_item): Use XSETCAR and XSETCDR.
847 (reach_char_x_menu_prompt): Use XSETCAR.
848 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
849 (Fcommand_execute): Use XSETCDR.
850 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
851 (openp): Change list traversal to avoid using XCAR as lvalue.
852 (read_list): Use XSETCDR.
853 * process.c (wait_reading_process_input): Change wait_for_cell
854 handling to avoid taking addresses of cons cell slots.
855 * xselect.c (x_own_selection, x_handle_selection_clear)
856 (x_clear_frame_selections): Use XSETCDR.
857 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
858 (x_handle_property_notify, x_get_foreign_selection)
859 (x_handle_selection_notify): Use XSETCAR.
860
861 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
862
863 * buffer.c: Put doc strings in comments.
864
865 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
866
867 2001-10-15 Sam Steingold <sds@gnu.org>
868
869 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
870
871 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
872
873 * process.c (process-inherit-coding-system-flag)
874 (get-buffer-process): Do not confuse make-docfile with doc strings
875 in comment.
876
877 * editfns.c (Fchar_to_string): Make doc string consistent with
878 arguments. Put doc strings in comments.
879
880 * abbrev.c, minibuf.c: Put doc strings in comments.
881
882 2001-10-15 Gerd Moellmann <gerd@gnu.org>
883
884 * window.c (window_loop): Don't check for Fother_buffer returning nil.
885
886 * window.c (select_window_1): Unfreeze window start. Remove a
887 doubled test for WINDOW being live.
888
889 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
890
891 * fns.c (Fmapconcat): Fix typo in a doc string.
892
893 * dispnew.c (Fsleep_for): Fix typo in a doc string.
894
895 2001-10-15 Gerd Moellmann <gerd@gnu.org>
896
897 * xterm.c (x_draw_glyph_string): Restore clipping after
898 drawing box.
899
900 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
901
902 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
903
904 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
905
906 * indent.c (skip_invisible): Use new retval of
907 TEXT_PROP_MEANS_INVISIBLE.
908
909 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
910 If a parent is reached and noinherit is set, exit immediately.
911 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
912
913 * s/ms-w32.h (EXEC_SUFFIXES):
914 * s/msdos.h (EXEC_SUFFIXES):
915 * process.h (EXEC_SUFFIXES): Remove.
916
917 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
918 (decode_suffixes): Remove.
919
920 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
921 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
922 (invisible_ellipsis_p): Remove.
923
924 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
925 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
926 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
927 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
928 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
929
930 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
931
932 * lisp.h (Ftop_level): Add prototype.
933
934 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
935 (XTread_socket): Improve style of comments to follow other
936 comments.
937
938 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
939 is already prototyped in included lisp.h).
940
941 * frame.c (Fset_mouse_position): Improve style of comment to
942 follow other comments.
943 (Fset_mouse_pixel_position): Improve style of comment to follow
944 other comments.
945 (Fmake_frame_visible): Doc fix and typo in comment.
946 (Fmake_frame_invisible): Doc fix and typo in comment.
947 (Ficonify_frame): Fix typo in comment.
948
949 2001-10-14 Gerd Moellmann <gerd@gnu.org>
950
951 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
952 * term.c, alloc.c: Put doc strings in comments.
953
954 2001-10-13 Gerd Moellmann <gerd@gnu.org>
955
956 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
957 Provide definitions for doc strings in comments.
958
959 * fns.c: Put doc strings in comments.
960
961 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
962
963 * dired.c (file_name_completion): Ignore a candidate directory if
964 it matches an element in completion-ignored-extensions that ends
965 in a slash.
966 (syms_of_dired) <completion-ignored-extensions>: Mention the above
967 feature in the doc string.
968 (Ffile_name_completion): Ditto.
969
970 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
971
972 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
973
974 * xfns.c (syms_of_xfns): Update calls to Fprovide.
975
976 * lisp.h (Fprovide): Update prototype.
977 (Ffeaturep, invisible_p): Remove.
978
979 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
980 (DOLIST, LOOP_PROPVAL): New macros.
981 (invisible_p, invisible_ellipsis_p): Use them.
982 (invisible_noellipsis_p): New function.
983 (syms_of_xdisp): Use empty_string.
984
985 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
986
987 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
988 (syms_of_lread) <Vafter_load_alist>: Update docstring.
989
990 * print.c (Fwith_output_to_temp_buffer): Align with
991 internal_with_output_to_temp_buffer.
992 (print_preprocess): Use traverse_intervals_noorder.
993 (print_object): Update call to traverse_intervals.
994
995 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
996 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
997
998 * intervals.c (traverse_intervals_noorder): New function.
999 (search_for_interval, count_intervals): Use it.
1000 (traverse_intervals): Use less stack space and drop `depth' arg.
1001
1002 * fns.c (Ffeaturep): Add new `subfeature' arg.
1003 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
1004 (Qsubfeatures): New var.
1005 (syms_of_fns): Initialize it.
1006
1007 * keymap.c (Fkey_description): Use empty_string.
1008 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
1009 (syms_of_keymap): Setup inheritance between maps.
1010 Don't export Sdescribe_bindings_internal any more.
1011
1012 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
1013
1014 2001-10-12 Gerd Moellmann <gerd@gnu.org>
1015
1016 * xterm.c (notice_overwritten_cursor): Renamed from
1017 note_overwritten_text_cursor. Rewritten to take glyph widths into
1018 account.
1019
1020 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
1021
1022 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
1023 multi-line strings without a trailing "\n\".
1024
1025 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1026
1027 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
1028 defined.
1029
1030 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
1031
1032 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
1033
1034 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
1035 * w32proc.c (sys_spawnve):
1036 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
1037 * w32.c (check_windows_init_file):
1038 * sound.c (Fplay_sound):
1039 * emacs.c (init_cmdargs):
1040 * process.c (Fstart_process): Update calls to openp.
1041
1042 * callproc.c (Vexec_suffixes): New var.
1043 (Fcall_process): Update call to openp.
1044 (decode_suffixes): New function.
1045 (syms_of_callproc): Init exec-suffixes.
1046
1047 * lread.c (Vload_suffixes, default_suffixes): New vars.
1048 (openp): Take a lisp list of suffixes.
1049 Check for file-name-handlers even if the file was absolute already.
1050 (syms_of_lread): Declare load-suffixes.
1051 (Fload): Fix up call to openp.
1052 Don't bother checking for file-name-handler at the very beginning.
1053
1054 * keymap.h (Fcopy_keymap): Don't export.
1055
1056 * lisp.h (empty_string): Declare.
1057 (Vload_suffixes, Vexec_suffixes): Declare.
1058 (openp): Update prototype.
1059
1060 * emacs.c (empty_string): New var.
1061 (syms_of_emacs): Initialize it.
1062
1063 * search.c (wordify): Use it.
1064
1065 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
1066 selected window if it's not displayed there. Handle the case
1067 when the window is dedicated.
1068 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
1069
1070 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
1071
1072 * syntax.h (struct gl_state_s): Change the meaning of b_property.
1073 Remove left_ok and right_ok.
1074 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
1075 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
1076 new meaning of b_property.
1077
1078 * syntax.c (update_syntax_table): Simplify.
1079 (Fforward_comment): Don't skip quoted chars when going backward.
1080
1081 2001-10-11 Gerd Moellmann <gerd@gnu.org>
1082
1083 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
1084 in case I is of some unsigned type, in which case
1085 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
1086 comparison becomes bogus.
1087
1088 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
1089 (Fuser_full_name): Fix bug treating a float as a fixnum.
1090
1091 * data.c (Fstring_to_number): Use make_fixnum_or_float.
1092
1093 * lisp.h (make_fixnum_or_float): New macro.
1094
1095 * lisp.h (circular_list_error): Add prototype.
1096
1097 * data.c (Qcircular_list): New variable.
1098 (circular_list_error): New function.
1099 (syms_of_data): Initialize it Qcircular_list.
1100
1101 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
1102
1103 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
1104 casefiddle.c, buffer.c: Include keymap.h.
1105
1106 2001-10-10 Gerd Moellmann <gerd@gnu.org>
1107
1108 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
1109 options. From Dave Love <d.love@dl.ac.uk>.
1110
1111 2001-10-09 Gerd Moellmann <gerd@gnu.org>
1112
1113 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
1114 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1115
1116 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
1117 unsigned char.
1118 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1119
1120 2001-10-08 Andrew Innes <andrewi@gnu.org>
1121
1122 * lisp.h [max]: Undef min and max before redefining them.
1123
1124 * w32gui.h: Do not undef min and max.
1125
1126 * w32heap.h: Do not undef min and max.
1127
1128 * s/ms-w32.h: Do not undef min and max.
1129
1130 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1131
1132 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
1133
1134 2001-10-08 Sam Steingold <sds@gnu.org>
1135
1136 * keymap.c (current-active-maps): Quote newlines (compilation error).
1137
1138 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
1139
1140 * Makefile.in (lisp, shortlisp): Replace bindings.el with
1141 bindings.elc, since otherwise doc strings in bindings.el get wrong
1142 offsets in etc/DOC.
1143
1144 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1145
1146 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
1147
1148 * keyboard.h (map_prompt): Remove.
1149
1150 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
1151 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
1152
1153 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1154
1155 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1156
1157 * keyboard.c (map_prompt): Remove.
1158 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
1159 Use Fkeymap_prompt.
1160
1161 * keymap.h: New file. Extracted from lisp.h.
1162
1163 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
1164 (accessible_keymaps_1): New function.
1165 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
1166 (Fwhere_is_internal): Use Fcurrent_active_maps.
1167 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
1168 Insert in current buffer rather than standard-output.
1169 Don't call `help-mode'. Export to elisp.
1170 (describe_buffer_bindings): New wrapper.
1171 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
1172 and Sdescribe_buffer_bindings.
1173
1174 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1175
1176 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
1177 Remove code setting signal handler.
1178
1179 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
1180 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
1181
1182 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1183
1184 * keyboard.c: Don't define min/max.
1185
1186 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1187
1188 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
1189 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
1190 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
1191 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
1192 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
1193 Don't define min/max.
1194
1195 * lisp.h (min, max): New macros.
1196
1197 * puresize.h (BASE_PURESIZE): Increase to 725000.
1198
1199 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1200
1201 * xfaces.c (free_frame_menubar): Add prototype.
1202
1203 * lisp.h (init_window): Add prototype.
1204
1205 * editfns.c: Include ctype.h.
1206
1207 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
1208 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
1209 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
1210 variable `sb'.
1211
1212 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
1213 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
1214 `popup_activated_flag' and `title'.
1215
1216 * doc.c (Fdocumentation_property): Fix typo in a doc string.
1217
1218 * emacs.c (main): Remove extra `;'.
1219
1220 * atimer.h (struct atimer): Fix typos in a comment.
1221
1222 * atimer.c: Fix typo.
1223
1224 * Makefile.in: Fix typo.
1225
1226 * README: Remove obsolete part mentioning removed VMS file.
1227
1228 2001-10-07 Miles Bader <miles@gnu.org>
1229
1230 * Makefile.in (lisp, shortlisp): Add `button.elc'.
1231
1232 2001-10-07 Ken Raeburn <raeburn@gnu.org>
1233
1234 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
1235 Lisp_Object.
1236
1237 * lisp.h (Ffield_end): Declare.
1238
1239 2001-10-07 Gerd Moellmann <gerd@gnu.org>
1240
1241 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
1242
1243 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
1244
1245 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
1246
1247 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
1248
1249 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
1250 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
1251
1252 * alloc.c (inhibit_garbage_collection): Simplify.
1253 (Fmemory_use_counts): Ditto.
1254
1255 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
1256 (syms_of_data): DEFVAR_INT most-positive-fixnum and
1257 most-negative-fixnum.
1258
1259 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
1260 (FIXNUM_OVERFLOW_P): New macros.
1261
1262 2001-10-06 Miles Bader <miles@gnu.org>
1263
1264 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
1265 scroll_bar_bottom_shadow_pixel fields.
1266 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
1267 for the shadows, and tell the toolkit about them if we succeed.
1268 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
1269 Free scroll-bar shadow colors.
1270 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
1271 Free scroll-bar shadow colors when the background color changes.
1272 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
1273 Initialize scroll-bar shadow-color fields.
1274
1275 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1276
1277 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
1278
1279 2001-10-05 Miles Bader <miles@gnu.org>
1280
1281 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
1282 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
1283 New functions (were in simple.el).
1284 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
1285 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
1286 (syms_of_minibuf): Initialize them.
1287
1288 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1289
1290 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
1291 (tiff_load): Install them as error and warning handler.
1292
1293 2001-10-04 Andrew Innes <andrewi@gnu.org>
1294
1295 * w32fns.c (x_to_w32_color): Fix argument to alloca.
1296 (w32_load_system_font): Don't believe what GetLanguageFontInfo
1297 says; query codepage info directly to determine if font is double byte.
1298 (x_to_w32_charset): Handle private format for unknown charsets.
1299 Handle wildcards in charset spec, by ignoring them.
1300 (w32_codepage_for_font): Fix argument to alloca. Don't remove
1301 "*-" prefix from charset.
1302 (x_to_w32_font): Enlarge remainder array for safety. Specifically
1303 handle the truncated font spec form constructed by font_list_1, so
1304 that we correctly identify the charset fields. Don't remove "*-"
1305 prefix from charset.
1306 (w32_list_synthesized_fonts): Fix argument to alloca.
1307
1308 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
1309
1310 * window.h (MINI_WINDOW_P): Use NILP.
1311
1312 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
1313
1314 * termhooks.h (struct input_event): Use proper type for `kind'.
1315
1316 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1317
1318 This handles unknown keysyms better than before. For example,
1319 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
1320 Emacs formerly completely ignored F5. With the change, it derives
1321 a key symbol from the name of the X keysym, `ccaron' in this case.
1322 Reported by Martin Buchholz.
1323
1324 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
1325 unknown keysyms.
1326
1327 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
1328 that EVENT->code isn't a function key, use the keysym's name.
1329
1330 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1331
1332 FOREACH is a macro that should make it easier to loop over Lisp
1333 lists with checks for cycles and proper lists.
1334
1335 * lisp.h (LIST_END_P, FOREACH): New macros.
1336
1337 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1338
1339 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
1340 called for a lost connection. Prevent dumping core in this case.
1341 Instead print the X error, and exit. On user request.
1342
1343 * xterm.c (error_msg): New variable.
1344 (x_fatal_error_signal): New function.
1345 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
1346 as fatal_error_signal_hook around the call to XtCloseDisplay.
1347
1348 * emacs.c (fatal_error_signal_hook): New variable.
1349 (fatal_error_signal): Call that function.
1350
1351 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1352
1353 With this, Emacs prints how much pure storage it will
1354 approximately need in case pure storage overflows while dumping.
1355
1356 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
1357 New variables.
1358 (init_alloc_once): Initialize new variables.
1359 (PURE_POINTER_P): Use new variables.
1360 (pure_alloc): If pure storage overflows, allocate from the heap.
1361 (check_pure_size): New function.
1362 (Fgarbage_collect): Don't GC if pure storage has overflowed.
1363
1364 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
1365 (check_pure_size): Add prototype.
1366
1367 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
1368
1369 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1370
1371 This adds a post-gc-hook that's run with GC inhibited.
1372 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
1373
1374 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
1375 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
1376 (Fgarbage_collect): Run post-gc-hook.
1377
1378 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1379
1380 This adds `defvaralias' and `indirect-variable'. Changes not
1381 directly related to this feature are there to gain the same
1382 performance again as before variable aliases.
1383
1384 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
1385 code to get and set symbol values, to take defvaralias into account.
1386
1387 (Note: the new `constant' bit-flag in symbols would make it
1388 possible to define arbitrary read-only variables, e.g. with
1389 `defconst'.)
1390
1391 Documentation is in lispref/variables.texi. Added to NEWS.
1392
1393 * lisp.h (enum symbol_interned): New enumeration.
1394 (struct Lisp_Symbol): Remove member `obarray', add
1395 `indirect_variable', `constant', and `interned'.
1396 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
1397 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
1398 (indirect_variable): Add prototype.
1399
1400 * print.c (print_preprocess, print_object): Test internedness of
1401 symbols differently.
1402
1403 * lread.c (Fintern, Funintern): Set symbol's interned and constant
1404 bit-fields.
1405 (init_obarray): Likewise for t and nil.
1406
1407 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1408 (Fdefvaralias): New function.
1409 (specbind): Simplify the test if symbol is a constant.
1410 (syms_of_eval): Defsubr Fdefvaralias.
1411
1412 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1413 (Qcyclic_variable_indirection): New variable.
1414 (Fkeywordp): Check for internedness differently.
1415 (Fmakunbound): Simplify the test if symbol is a constant.
1416 (indirect_variable, Findirect_variable): New functions.
1417 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
1418 aliased symbol.
1419 (let_shadows_buffer_binding_p): Check for variable aliases.
1420 (set_internal): Simplify the test if SYMBOL is a constant.
1421 If SYMBOL has a buffer-local value and is an alias, use the aliased
1422 symbol instead.
1423 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
1424 Sindirect_variable.
1425
1426 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
1427 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
1428 set directly.
1429
1430 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
1431
1432 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
1433 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
1434 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
1435
1436 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1437
1438 * Branch for 21.1.
1439
1440 2001-10-03 Miles Bader <miles@gnu.org>
1441
1442 * callproc.c (syms_of_callproc): Explicitly state in the
1443 documentation for `process-environment' that earlier entries take
1444 precedence over later ones.
1445
1446 2001-10-02 Miles Bader <miles@gnu.org>
1447
1448 * textprop.c (Fnext_char_property_change)
1449 (Fprevious_char_property_change): Remove reference to non-existant
1450 argument OBJECT from doc-string.
1451
1452 2001-10-01 Gerd Moellmann <gerd@gnu.org>
1453
1454 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
1455 (try_window_id): Skip back over lines ending in a newline from a
1456 string.
1457
1458 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
1459 New bit flag
1460
1461 2001-10-01 Richard M. Stallman <rms@gnu.org>
1462
1463 * search.c (Freplace_match): Doc fix.
1464
1465 2001-09-28 Andrew Innes <andrewi@gnu.org>
1466
1467 * w32menu.c (set_frame_menubar): Take into account that
1468 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1469 <raeburn@gnu.org>.
1470
1471 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
1472
1473 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
1474
1475 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1476
1477 * s/gnu-linux.h: Fix a typo in comment.
1478
1479 2001-09-28 Andreas Schwab <schwab@suse.de>
1480
1481 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
1482 nocombreloc, in case -z combreloc is the default.
1483
1484 2001-09-28 Gerd Moellmann <gerd@gnu.org>
1485
1486 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
1487 really going on here.
1488
1489 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
1490
1491 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
1492
1493 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
1494
1495 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
1496 utf-8, menu-bar, and latin-N.
1497 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
1498 unconditionally now.
1499 (lisp): Add latin-N, since they are preloaded.
1500
1501 2001-09-27 Gerd Moellmann <gerd@gnu.org>
1502
1503 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
1504 to the left. Some cleanup.
1505
1506 * xdisp.c (display_mode_element): One more case where a string's
1507 multibyteness should be used for display.
1508
1509 2001-09-26 Gerd Moellmann <gerd@gnu.org>
1510
1511 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
1512 reading at EOF.
1513
1514 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
1515 of the only temporarily set echoing flag for deciding when
1516 the cancel echoing.
1517
1518 * keyboard.c (echo_kboard): Make externally visible.
1519
1520 * lisp.h (echo_kboard): Declare extern.
1521
1522 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
1523 fonts_changed_p if we need larger matrices due to vscrolling.
1524 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
1525 this round of redisplay if make_cursor_line_fully_visible fails.
1526 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
1527 (try_cursor_movement, try_scrolling): Use them instead of integers.
1528
1529 * dispextern.h (required_matrix_width, required_matrix_height):
1530 Add prototypes.
1531
1532 * dispnew.c (required_matrix_width, required_matrix_height):
1533 New functions.
1534 (allocate_matrices_for_window_redisplay)
1535 (allocate_matrices_for_frame_redisplay: Use them.
1536 Remove parameters CH_DIM.
1537
1538 * xdisp.c (display_mode_lines): Temporarily set selected_frame
1539 and selected_window to the frame of the window whose mode-lines
1540 are displayed, and to the window itself.
1541 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
1542 here.
1543
1544 2001-09-25 Gerd Moellmann <gerd@gnu.org>
1545
1546 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
1547 the image cache under us.
1548
1549 * xdisp.c (display_mode_element): If the mode element is a symbol
1550 with a string value, use that string's multibyteness for displaying.
1551
1552 * keyboard.c (read_char): Don't clear a message for a switch-frame
1553 event. From Stefan Monnier <monnier@cs.yale.edu>.
1554
1555 * xterm.c (fast_find_position) [0]: Add a presumably more correct
1556 version for after 21.1.
1557
1558 * xdisp.c (row_containing_pos): Make externally visible.
1559
1560 * dispextern.h (row_containing_pos): Add prototype.
1561
1562 * process.c (send_process): Disable composition if from_byte < 0.
1563 From Kenichi Handa <handa@etl.go.jp>.
1564
1565 2001-09-24 Gerd Moellmann <gerd@gnu.org>
1566
1567 * xterm.c (refreshicon): Function removed.
1568
1569 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
1570
1571 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
1572
1573 * xterm.c (toplevel): Remove includes in #if 0.
1574
1575 * process.c (sigchld_handler) [LINUX]: Don't return from
1576 the signal handler at the end of the loop.
1577
1578 2001-09-21 Gerd Moellmann <gerd@gnu.org>
1579
1580 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
1581 Terminate only if kill returns -1, and errno is ESRCH.
1582
1583 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
1584
1585 * Makefile.in (shortlisp): Add ../lisp/env.elc.
1586
1587 2001-09-20 Gerd Moellmann <gerd@gnu.org>
1588
1589 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
1590 since this function can be called during GC.
1591
1592 * callproc.c (Fcall_process): Handle errors from pipe(2).
1593 (child_setup): Delete code in #ifdef vipc.
1594
1595 2001-09-19 Gerd Moellmann <gerd@gnu.org>
1596
1597 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
1598 (display_mode_element): Display the string from decode_mode_spec
1599 depending on its multibyteness.
1600
1601 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
1602
1603 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
1604
1605 2001-09-18 Gerd Moellmann <gerd@gnu.org>
1606
1607 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
1608 recursive_edit_unwind.
1609 (recursive_edit_unwind): Set kboard state according to
1610 SINGLE-KBOARD.
1611
1612 * buffer.c (modify_overlay): Don't do nothing if START == END;
1613 This can still be a modification, for example when an overlay has
1614 a before-string or after-string.
1615 (Fdelete_overlay): Prevent redisplay optimizations when deleting
1616 an overlay with before-string or after-string.
1617
1618 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
1619 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
1620
1621 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
1622 first_unchanged_at_end_row is in front of
1623 last_unchanged_at_beg_row. This code should be removed after the
1624 release of 21.1.
1625
1626 2001-09-17 Gerd Moellmann <gerd@gnu.org>
1627
1628 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
1629 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
1630
1631 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
1632 versions >= 2.95.
1633
1634 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
1635
1636 * dired.c (Ffile_attributes): Doc fix.
1637
1638 2001-09-14 Gerd Moellmann <gerd@gnu.org>
1639
1640 * fileio.c (Ffile_symlink_p): Fix last change.
1641
1642 * filelock.c (current_lock_owner): Fix last change.
1643
1644 2001-09-13 Gerd Moellmann <gerd@gnu.org>
1645
1646 * filelock.c (current_lock_owner): If readlink returns ERANGE,
1647 take that to mean that the buffer is too small.
1648
1649 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
1650 that to mean that the buffer is too small.
1651
1652 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
1653 current buffer's multibyteness when discarding the iterator's
1654 stack.
1655
1656 * xfns.c (Fx_window_property): Handle case that property gets
1657 deleted between the two calls to XGetWindowProperty.
1658
1659 2001-09-11 Gerd Moellmann <gerd@gnu.org>
1660
1661 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
1662
1663 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
1664 in addition to read-only.
1665
1666 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
1667 to t in addition to read-only.
1668
1669 * lisp.h (Qinhibit_modification_hooks): Declare.
1670
1671 * insdel.c (Qinhibit_modification_hooks): New variable.
1672 (syms_of_insdel): Initialize and staticpro it.
1673
1674 * textprop.c (verify_interval_modification): Don't run
1675 modification-hooks if inhibit_modification_hooks.
1676
1677 * dispnew.c (set_window_cursor_after_update): Fix code
1678 finding glyph row containing cursor when cursor_in_echo_area
1679 is >= 0.
1680
1681 * xdisp.c (init_from_display_pos): Put some code in #if 0.
1682 (add_to_log): Use bcopy instead of strcpy.
1683 (init_from_display_pos): Use an explicit loop over bytes in
1684 overlay strings instead of calling index.
1685
1686 2001-09-10 Gerd Moellmann <gerd@gnu.org>
1687
1688 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
1689
1690 * dispnew.c (direct_output_for_insert): Don't change IT's
1691 stop_charpos to something in front of its current position.
1692
1693 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
1694 `format'.
1695
1696 2001-09-10 Richard M. Stallman <rms@gnu.org>
1697
1698 * frame.c (Fmouse_position): Doc fix.
1699
1700 2001-09-07 Gerd Moellmann <gerd@gnu.org>
1701
1702 * xdisp.c (init_from_display_pos): Don't compare the result
1703 of calling index with NULL.
1704
1705 2001-09-06 Gerd Moellmann <gerd@gnu.org>
1706
1707 * xfns.c (x_set_background_color): Don't change the colors
1708 of the X window of scroll bar widgets.
1709
1710 2001-09-05 Andrew Innes <andrewi@gnu.org>
1711
1712 * w32fns.c (w32_createwindow): Undo last change.
1713
1714 2001-09-05 Gerd Moellmann <gerd@gnu.org>
1715
1716 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
1717
1718 * xdisp.c (string_buffer_position): Use *single_char_property*
1719 functions instead of the *single_property* functions.
1720
1721 2001-09-04 Andrew Innes <andrewi@gnu.org>
1722
1723 * w32term.c (w32_read_socket): Add more information to debugging
1724 output.
1725
1726 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
1727 from Emacs frames, so that calls to GetClipBox in w32term.c
1728 correctly report when part of a frame is visible (including
1729 scrollbars, etc). This prevents repeated redrawing of frames when
1730 only a scrollbar is visible.
1731 (w32_wnd_proc): Add more frame information to debugging output.
1732
1733 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
1734
1735 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
1736
1737 2001-09-03 Gerd Moellmann <gerd@gnu.org>
1738
1739 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
1740 help-echo for a string which doesn't have help-echo itself, use
1741 get-char-property to obtain the help-echo from the string's buffer
1742 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
1743 have mouse-face, look ``under'' the string for mouse-face from an
1744 overlay.
1745 (fast_find_position): Add parameter STOP. In the final row, stop
1746 before glyphs having STOP as object. Don't consider glyphs that
1747 are not from a buffer.
1748
1749 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
1750
1751 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
1752
1753 * fns.c (Fmd5): Doc fix.
1754
1755 2001-08-31 Gerd Moellmann <gerd@gnu.org>
1756
1757 * composite.c (update_compositions): Do nothing if
1758 inhibit-modification-hooks is set.
1759
1760 2001-08-30 Gerd Moellmann <gerd@gnu.org>
1761
1762 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
1763 and check_message_stack if terminating abnormally. We want
1764 glyph matrices etc. in a core dump.
1765
1766 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
1767 (syms_of_xdisp): Initialize them.
1768 (handle_single_display_prop): Don't change point, bind `object',
1769 `position', and `buffer-position' instead to the object having the
1770 `display' property, position in the object and position in the buffer.
1771
1772 * fileio.c (Finsert_file_contents): Don't change the multibyteness
1773 of the buffer if REPLACE is non-nil.
1774
1775 2001-08-29 Gerd Moellmann <gerd@gnu.org>
1776
1777 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1778
1779 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1780
1781 * w32term.c (x_set_glyph_string_background_width)
1782 (show_mouse_face): Track the last changes in xterm.c.
1783
1784 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1785
1786 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1787 string's background width so that multi-line mouse-face is drawn
1788 to the right edge of the window.
1789 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1790 glyphs.
1791
1792 * dispnew.c (direct_output_for_insert): Set updated_area
1793 before inserting/writing glyphs.
1794
1795 * xdisp.c (display_mode_element): Use string_byte_to_char to
1796 determine character positions in strings, use chars_in_text
1797 instead of strwidth.
1798 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1799 a matrix as parameter; this is easier to use from GDB.
1800
1801 2001-08-28 Miles Bader <miles@gnu.org>
1802
1803 * textprop.c (Fprevious_single_char_property_change)
1804 (Fnext_single_char_property_change): Doc fixes.
1805
1806 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1807
1808 * fileio.c (Finsert_file_contents): Allocate, restore, and
1809 free composition data in the case of REPLACE not being nil.
1810
1811 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1812 there exist overlay strings with newlines at POS.
1813 (text_outside_line_unchanged_p): Return 0 if changes start at
1814 START and overlays exist at START. Likewise for END.
1815 (try_window_id): Give up if init_to_row_end returns 0.
1816
1817 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1818 unconditionally.
1819
1820 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1821
1822 * keymap.c (access_keymap): Return the cdr of the binding of
1823 a generic character instead of its definition (KEY . BINDING).
1824
1825 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1826 to 0 also in the REPLACE case.
1827
1828 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1829
1830 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1831 open to determine whether file is readable (as for DOS_NT).
1832
1833 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1834
1835 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1836 coding.type is coding_type_no_conversion or coding_type_raw_text,
1837 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1838 non-nil instead of just setting enable_multibyte_characters in the
1839 buffer to nil.
1840
1841 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1842
1843 * dispextern.h (struct face_cache): Add member
1844 menu_face_changed_p.
1845
1846 * xfaces.c (menu_face_changed_default): New variable.
1847 (menu_face_changed_count): Variable removed.
1848 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1849 the menu_face_changed_default flag, otherwise set the FRAME's
1850 menu_face_changed_p flag if the `menu' face has been changed.
1851 Prevent calling set_font_frame_param if FRAME is t.
1852 (make_face_cache): Initialize cache's menu_face_changed_p
1853 from menu_face_changed_default.
1854 (realize_basic_faces): Look into the frame's face cache to
1855 determine if the menu appearance needs updating.
1856
1857 * keymap.c (access_keymap): Fix last change to not consider
1858 IDX when it has modifiers.
1859
1860 2001-08-21 Gerd Moellmann <gerd@gnu.org>
1861
1862 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
1863 . BINDING) exists, where GENERIC-CHAR is the generic character of
1864 the charset of IDX, return BINDING unless there exists a binding
1865 for IDX itself.
1866
1867 2001-08-16 Gerd Moellmann <gerd@gnu.org>
1868
1869 * xrdb.c (SYSV): Don't define on Solaris 2.
1870 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
1871
1872 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
1873 of the screen line, not text line, containing IT's current position.
1874
1875 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1876
1877 * window.c (window_scroll_pixel_based): Don't recenter if
1878 PT is partially visible in the window.
1879
1880 * xterm.c (expose_window_tree, expose_window, expose_line):
1881 Return 1 when overwriting mouse-face.
1882 (expose_frame): If mouse-face was overwritten, redo it.
1883
1884 * xfaces.c (x_update_menu_appearance): Don't call
1885 set_frame_menubar, let the next redisplay do it.
1886
1887 2001-08-14 Andrew Innes <andrewi@gnu.org>
1888
1889 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1890 drawing glyph string.
1891
1892 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1893
1894 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1895 running HI-UX/MPP.
1896
1897 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1898
1899 * xfaces.c (x_update_menu_appearance): Save and restore value of
1900 interrupt_input_blocked.
1901
1902 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1903
1904 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1905 a line start, move back to the line start.
1906
1907 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1908 exactly when a mini-buffer is active.
1909
1910 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1911 in units of 1/8 character on non window-system frames.
1912 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1913
1914 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1915
1916 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1917 a doc string.
1918
1919 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1920
1921 * keyboard.c (Vpre_help_message): New variable.
1922 (syms_of_keyboard): Initialize and staticpro it.
1923 (show_help_echo): Record current message before displaying a
1924 help-echo, and restore that message when clearing the help.
1925
1926 * xfns.c (x_create_im): Remove prototype.
1927
1928 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1929
1930 * dispnew.c (adjust_glyph_matrix): Undo last change.
1931
1932 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1933
1934 * dispnew.c (adjust_glyph_matrix): In the optimization for
1935 windows whose height has changed, disable partially visible lines.
1936
1937 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1938
1939 * window.c (Frecenter): If ARG < 0, and on a window system
1940 frame, count in some empty lines when we can't move -ARG lines down.
1941
1942 * xdisp.c (start_display): Don't try to determine the continuation
1943 lines width if lines are truncated. It's superfluous and leads to
1944 incorrect results if POS is not visible in the window after
1945 reseating the iterator at the previous line start.
1946
1947 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1948
1949 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1950
1951 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1952
1953 * alloc.c (init_stack): Remove declaration.
1954
1955 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1956
1957 * keyboard.c (read_key_sequence): Check that key is an integer
1958 before comparing it with quit_char.
1959 (add_command_key): Use larger_vector.
1960 (read_char_x_menu_prompt): Instead of converting symbol and
1961 integer events into conses (EVENT . nil), use (EVENT . disabled)
1962 which cannot be confused with valid events.
1963 (read_char): When reading from Vunread_command_events, check for
1964 events of the form (EVENT . disabled) instead of
1965 (EVENT . nil).
1966
1967 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1968 a float, determine the max height from the frame's height.
1969
1970 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1971
1972 * xdisp.c (redisplay_internal): Take message_cleared_p into
1973 account only if minibuf_level == 0.
1974
1975 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1976
1977 * xdisp.c (redisplay_internal): Add a check for the last
1978 displayed message.
1979
1980 * xdisp.c (message_cleared_p): New variable.
1981 (clear_message): Set message_cleared_p when clearing the current
1982 message.
1983 (redisplay_internal): Look at message_cleared_p to capture
1984 the case that the echo area should be cleared.
1985
1986 * keyboard.c (command_loop_1): Fix spelling of
1987 resize_echo_area_exactly.
1988
1989 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
1990
1991 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
1992
1993 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
1994 current matrix when the window gets smaller.
1995
1996 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
1997
1998 * print.c (strout): Cast the character passed to insert_char to
1999 unsigned char, to avoid sign extension when it is promoted to int.
2000
2001 2001-07-31 Gerd Moellmann <gerd@gnu.org>
2002
2003 * fileio.c (Finsert_file_contents): Don't treat a return value
2004 of 0 from emacs_read as an IO error.
2005
2006 2001-07-30 Gerd Moellmann <gerd@gnu.org>
2007
2008 * keyboard.c (abs): New macro.
2009 (double_click_fuzz): New variable.
2010 (make_lispy_event): Use it to determine what makes a double-click.
2011 (syms_of_keyboard): DEFVAR_INT it.
2012
2013 * xmenu.c (set_frame_menubar): Take into account that
2014 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2015 <raeburn@gnu.org>.
2016
2017 2001-07-27 Gerd Moellmann <gerd@gnu.org>
2018
2019 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
2020
2021 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
2022 of row's visible height.
2023
2024 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
2025 deal with the first overlay string having an image `display' property.
2026 (try_window_reusing_current_matrix, compute_line_metrics):
2027 Fix computation of row's visible height for the case that part of the
2028 row is invisible above and part of the row is at the same time
2029 invisible below the window.
2030
2031 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2032
2033 * xfns.c (x-show-tip): Doc fix.
2034
2035 * xfns.c (Vx_max_tooltip_size): New variable.
2036 (syms_of_xfns): DEFVAR_LISP it.
2037 (Fx_show_tip): Set frame's window_width to the width of the
2038 window. Use a maximum tooltip size specified by
2039 Vx_max_tooltip_size, if that has valid contents.
2040 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
2041
2042 2001-07-26 Andrew Innes <andrewi@gnu.org>
2043
2044 * w32term.c (x_display_list): New variable.
2045 (w32_term_init): Set it.
2046
2047 * w32term.h (x_display_list): New extern.
2048
2049 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2050
2051 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
2052 is non-nil, instead of when redisplaying_p is non-zero.
2053 See comment there.
2054 (mark_window_display_accurate_1): Add an assertion.
2055
2056 2001-07-25 Gerd Moellmann <gerd@gnu.org>
2057
2058 * dispextern.h (struct it): Increase size of ctl_chars to 16.
2059
2060 * xfns.c (Fx_file_dialog): Block/unblock input while processing
2061 events so that we get a chance of processing expose events.
2062
2063 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
2064
2065 2001-07-24 Gerd Moellmann <gerd@gnu.org>
2066
2067 * xfns.c (valid_image_p): Protect better against invalid image
2068 specifications. Previous code could signal an error.
2069
2070 2001-07-23 Gerd Moellmann <gerd@gnu.org>
2071
2072 * indent.c (current_column): Fix column computation in the
2073 presence of display table entries.
2074 (current_column_1, Fmove_to_column, compute_motion): Likewise.
2075
2076 * dispnew.c (adjust_glyph_matrix): In the optimization for
2077 windows whose height has changed, use the new window height
2078 to compute which rows to invalidate.
2079
2080 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
2081 (MAX_10_EXP): New macro.
2082 (Fformat): Use it.
2083
2084 * coding.c (code_convert_region): Handle the multibyte case if
2085 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
2086
2087 2001-07-20 Gerd Moellmann <gerd@gnu.org>
2088
2089 * dispextern.h (struct face): Change type of `stipple' to
2090 int; it's an ID.
2091
2092 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
2093
2094 2001-07-19 Gerd Moellmann <gerd@gnu.org>
2095
2096 * dispnew.c (update_window): Don't set the cursor at the end
2097 of the update if display update has been paused.
2098
2099 * composite.h (syms_of_composite): Renamed from syms_of_composition.
2100
2101 2001-07-18 Ken Raeburn <raeburn@gnu.org>
2102
2103 * fns.c (Fset_char_table_default): Check that a charset is defined
2104 before checking its dimension.
2105
2106 2001-07-17 Ken Raeburn <raeburn@gnu.org>
2107
2108 * coding.c (setup_coding_system): Don't do any designation based
2109 on reg_bits if charset is not yet defined.
2110
2111 * lisp.h (XVECTOR): Verify correct object type before returning a
2112 pointer, using eassert.
2113
2114 2001-07-17 Gerd Moellmann <gerd@gnu.org>
2115
2116 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
2117 Increase to 4096 because of paste problems reported on GNU/Linux.
2118
2119 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
2120
2121 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
2122
2123 2001-07-16 Gerd Moellmann <gerd@gnu.org>
2124
2125 * fileio.c (unwind_read): Function removed.
2126 (read_non_regular, read_non_regular_quit): New functions.
2127 (Finsert_file_contents): When reading from non-regular files,
2128 arrange to catch a `quit' and terminate the loop. Rearrange
2129 code so that a `quit' when reading from a regular file doesn't
2130 insert text in the buffer.
2131
2132 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
2133 Clear faces afterwards.
2134 (clear_font_table): Take a x_display_info parameter. Don't free
2135 fonts being the default font of any frame on the given display.
2136
2137 2001-07-13 Gerd Moellmann <gerd@gnu.org>
2138
2139 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
2140 instead of CHAR_STRING which can signal an error.
2141
2142 * charset.c (char_to_string_1): Extracted from char_to_string.
2143 Return -1 instead of signaling an error.
2144 (char_to_string): Use it.
2145
2146 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
2147
2148 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
2149
2150 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
2151 is t, don't try to append anything to it.
2152
2153 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
2154
2155 * dired.c (file_name_completion): Pass dp->d_name to
2156 Fstring_match, not elt, which is always nil here.
2157
2158 2001-07-12 Gerd Moellmann <gerd@gnu.org>
2159
2160 * xselect.c (x_decline_selection_request): Handle errors
2161 caused by receivers that have vanished.
2162
2163 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
2164 ignoring events on foreign windows in #if 0. Always dispatch
2165 the event after checking it with x_handle_property_notify.
2166
2167 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
2168 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
2169 TRACE macros to facilitate debugging. Add additional trace statements.
2170 (toplevel): Add prototypes for file-local functions.
2171 (x_atom_to_symbol): Remove DPYINFO parameter.
2172
2173 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
2174
2175 * w32menu.c (menubar_selection_callback, w32_menu_show):
2176 Initialize `entry' to nil.
2177 (w32_dialog_show): Remove unused `save_wv' variable.
2178 (name_is_separator): Recognize "--:foo" and "--foo-bar".
2179
2180 2001-07-11 Gerd Moellmann <gerd@gnu.org>
2181
2182 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
2183
2184 * fileio.c (unwind_read): Print a message when discarding inserted
2185 text or switching the buffer to unibyte. Change parameter.
2186 (Finsert_file_contents): Don't pass VISIT to unwind_read.
2187
2188 * fileio.c (unwind_read): New function.
2189 (Finsert_file_contents): Record it as unwind-function for
2190 the case that reading is interrupted by C-g.
2191
2192 2001-07-10 Gerd Moellmann <gerd@gnu.org>
2193
2194 * dispnew.c (update_window): Don't skip the header-line
2195 update when scrolling_window returns 0.
2196
2197 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
2198
2199 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
2200 for the case that x_decode_color signals an error.
2201
2202 * xdisp.c (add_to_log): Do nothing if called asynchronously.
2203
2204 2001-07-09 Gerd Moellmann <gerd@gnu.org>
2205
2206 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
2207 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
2208 around ioctls.
2209
2210 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
2211
2212 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
2213 doc string line for dos-timezone-offset.
2214
2215 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
2216 inline assembly, to avoid compiler warnings.
2217 (syms_of_msdos): Add \n\ at the end of a line in the doc string
2218 line for dos-unsupported-char-glyph.
2219
2220 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
2221
2222 2001-07-05 Gerd Moellmann <gerd@gnu.org>
2223
2224 * sound.c: Include Emacs' header files with #include "...".
2225
2226 * eval.c (specbind): Additionally record the buffer that was
2227 current when a buffer-local or frame-local variable was bound.
2228
2229 2001-07-04 Gerd Moellmann <gerd@gnu.org>
2230
2231 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
2232 to unibyte characters in unibyte buffers.
2233
2234 2001-07-03 Gerd Moellmann <gerd@gnu.org>
2235
2236 * eval.c (specbind): If SYMBOL has a frame-local binding, record
2237 the frame on the binding stack. Change format of entries for
2238 local bindings on the binding stack to '(SYMBOL . WHERE)'.
2239 (unbind_to): Handle unbinding a frame-local variable.
2240
2241 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
2242 glyphs and truncation glyphs at the end of a row from its pixel width.
2243 (dump_glyph_row): Print row's continuation_lines_width.
2244 (try_window_id): Take the shortcut if ZV is visible in the
2245 window, but there are actually no changes at ZV.
2246
2247 2001-07-02 Gerd Moellmann <gerd@gnu.org>
2248
2249 * xterm.h (x_free_dpy_colors): Add prototype.
2250
2251 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
2252 right number of arguments.
2253
2254 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
2255 ($(lwlibdir)TAGS): New target.
2256 (TAGS): Fix dependency list.
2257
2258 * xterm.c (x_list_fonts): Make sure XFreeFont is called
2259 with input blocked.
2260
2261 2001-06-30 Gerd Moellmann <gerd@gnu.org>
2262
2263 * emacs.c (main): Remove extern declaration for sys_nerr, which
2264 isn't used and causes a compilation error with GCC 3.0 on
2265 FreeBSD 4.3.
2266
2267 2001-06-27 Gerd Moellmann <gerd@gnu.org>
2268
2269 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
2270 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
2271 (toplevel): Include <signal.h> and syssignal.h.
2272
2273 * sound.c (vox_configure, vox_close): Turn off atimers
2274 around ioctls.
2275
2276 2001-06-26 Gerd Moellmann <gerd@gnu.org>
2277
2278 * keyboard.c (read_char) <non_reread>: Record the previous idle
2279 start time before calling timer_stop_idle.
2280 (read_char) <reread_first>: After processing a help-echo event,
2281 restore the previous idle start time.
2282
2283 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
2284 the start of invisible text.
2285 (setup_for_ellipsis): New function.
2286 (next_overlay_string): After all overlay strings have been
2287 processed, display an ellipsis if necessary.
2288 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
2289 (push_it): Initialize display_ellipsis_p on the iterator's stack.
2290
2291 * dispextern.h (struct iterator_stack_entry): Add member
2292 display_ellipsis_p.
2293
2294 2001-06-25 Gerd Moellmann <gerd@gnu.org>
2295
2296 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
2297 on the value of the wait-for-wm frame parameter.
2298
2299 * xterm.h (struct x_output): Add member wait_for_wm.
2300
2301 * xfns.c (Qwait_for_wm): New variable.
2302 (x_frame_parms): Add entry for `wait-for-wm".
2303 (x_set_wait_for_wm): New function.
2304 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
2305 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
2306
2307 * xdisp.c (try_window_id) <all changes below window end>: Don't
2308 take this shortcut if ZV is visible in the window.
2309 (try_window_id): When checking for window start being in changed
2310 text, don't check that the buffer's size has changed.
2311
2312 2001-06-23 Richard M. Stallman <rms@gnu.org>
2313
2314 * minibuf.c (Fcompleting_read): Doc fix.
2315
2316 2001-06-19 Gerd Moellmann <gerd@gnu.org>
2317
2318 * composite.c (Ffind_composition_internal): Accept ZV
2319 and a string's end position as POS.
2320
2321 2001-06-18 Gerd Moellmann <gerd@gnu.org>
2322
2323 * composite.c (Ffind_composition_internal): Check POS
2324 for validity.
2325
2326 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
2327
2328 * editfns.c (Fmessage_box): If the frame is not under a window
2329 system, output the message in the echo area.
2330
2331 2001-06-14 Richard M. Stallman <rms@gnu.org>
2332
2333 * xdisp.c (try_window_id): When EOB is visible, don't treat
2334 insertion at EOB as if it were "off the bottom of the screen."
2335
2336 2001-06-11 Andrew Innes <andrewi@gnu.org>
2337
2338 * w32proc.c (create_child): Add new parameter is_gui_app.
2339 (w32_executable_type): Add new parameter is_gui_app.
2340 (sys_spawnve): Use it.
2341 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
2342 SIGQUIT. This matches better how the signals are interpreted by
2343 MSVC compiled programs.
2344 (syms_of_ntproc): Update docstring.
2345
2346 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
2347
2348 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
2349 well otherwise note_mouse_highlight might optimize away highlighting
2350 if we pass over that same overlay again.
2351
2352 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
2353
2354 * lread.c (Fload): Document that the argument is run via
2355 substitute-in-file-name.
2356
2357 2001-05-31 Gerd Moellmann <gerd@gnu.org>
2358
2359 * Makefile.in (bootstrap-doc): New target.
2360 (bootstrap-emacs): Depend on it.
2361
2362 * fileio.c (Fdo_auto_save): Don't try to create the directory of
2363 auto-save-list-file-name when shutting down Emacs, because
2364 creating the directory might signal an error, and leaves
2365 Emacs in a strange state.
2366
2367 * term.c: (tty_cursor_hidden): New variable.
2368 (update_begin): Don't call tty_hide_cursor. Clean up.
2369 (update_end, set_terminal_window, set_scroll_region): Clean up.
2370 (ring_bell, reset_terminal_modes): Clean up.
2371 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
2372 on tty_cursor_hidden.
2373 (write_glyphs): Call tty_hide_cursor.
2374
2375 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
2376
2377 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
2378
2379 2001-05-30 Gerd Moellmann <gerd@gnu.org>
2380
2381 * xfns.c (enum image_value_type): New enumerator
2382 IMAGE_STRING_OR_NIL_VALUE.
2383 (parse_image_spec): Handle it.
2384 (xbm_format, pbm_format): Use it for :foreground and :background.
2385 (xbm_load, pbm_load): Check for nil color names.
2386
2387 * xterm.c (note_mouse_highlight): If an overlapping overlay
2388 exists, but we find that we highlight the same overlay as before,
2389 don't do the highlighting again.
2390
2391 2001-05-29 Gerd Moellmann <gerd@gnu.org>
2392
2393 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
2394 Protect unibyte strings created by replacing their multibyte
2395 equivalents in menu_items.
2396
2397 * keymap.c (Fsingle_key_description): NUL-terminate the string
2398 buffer before calling build_string.
2399
2400 * callproc.c (Fcall_process): Deal with decode_coding returning
2401 CODING_FINISH_INCONSISTENT_EOL.
2402
2403 2001-05-28 Gerd Moellmann <gerd@gnu.org>
2404
2405 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
2406 an item's name with its key description in case the description
2407 is a multibyte string.
2408
2409 * keymap.c (Fsingle_key_description): Create a multibyte string
2410 only if necessary.
2411
2412 * macros.c (Fstart_kbd_macro): Doc fix.
2413
2414 * xterm.c (cursor_in_mouse_face_p): New function.
2415 (x_draw_stretch_glyph_string): Use it to choose a different GC
2416 when drawing a cursor within highlighted text.
2417
2418 * editfns.c (char_property_eq): Put in #if 0.
2419
2420 * indent.c (string_display_width): Put in #if 0.
2421
2422 * lread.c (Fload): Remove unused label.
2423
2424 * termcap.c (speeds): Put in #if 0.
2425
2426 2001-05-18 Gerd Moellmann <gerd@gnu.org>
2427
2428 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
2429
2430 * xfaces.c (xlfd_point_size): Don't divide pixel size from
2431 transformation matrix by 10.
2432
2433 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2434
2435 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
2436 only if it's equal to the former foreground pixel color.
2437 (x_set_foreground_color, x_set_background_color)
2438 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
2439
2440 2001-05-16 Dave Love <fx@gnu.org>
2441
2442 * insdel.c (signal_before_change, signal_after_change): Consider a
2443 local change hook which changes the buffer.
2444
2445 * process.c (read_process_output): Don't call signal_after_change
2446 and update_compositions after insert_from_string_before_markers.
2447
2448 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2449
2450 * xfaces.c (split_font_name): Use the right field when
2451 checking for `[...]' syntax.
2452
2453 * buffer.c (copy_overlays): New function.
2454 (clone_per_buffer_values): Use it.
2455
2456 * buffer.h (OVERLAY_PLIST): New macro.
2457
2458 * keymap.c (Fsingle_key_description): Replace a build_string with
2459 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
2460
2461 * fontset.c (Ffontset_info): Check that face is non-null
2462 before accessing its fields.
2463
2464 2001-05-15 Gerd Moellmann <gerd@gnu.org>
2465
2466 * keyboard.c (read_key_sequence): Prevent generating a fake
2467 prefix key twice.
2468
2469 * xfaces.c (split_font_name): Handle `[...]' for the right
2470 font name fields.
2471
2472 * ccl.c (ccl_driver): Don't copy remaining bytes in case
2473 of CCL_STAT_INVALID_CMD.
2474
2475 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
2476
2477 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
2478 in <var> has no default value yet.
2479
2480 * xfaces.c (try_alternative_families): First try the FAMILY.
2481 And if nothing is found in the end, try again with scalable fonts.
2482 (try_font_list): Let try_alternative_families do a bit more of
2483 the work. Only use FAMILY if it is not nil.
2484 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
2485
2486 2001-05-14 Gerd Moellmann <gerd@gnu.org>
2487
2488 * xterm.c (note_mouse_highlight): Avoid changing the mouse
2489 pointer shape when show_mouse_face has already done it.
2490
2491 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
2492 full-width rows.
2493
2494 * xfaces.c (split_font_name): Make sure to leave the loop
2495 with the right value of `i'.
2496
2497 * xfaces.c (split_font_name): Handle matrix transformations
2498 in the pixel and point size fields of XLFD font names.
2499 (xlfd_point_size): Likewise.
2500
2501 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
2502
2503 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
2504 (x_to_w32_font): Add prototype.
2505
2506 * regex.c (malloc, realloc, free) [emacs]: Undefine before
2507 redefining, to avoid compiler warnings.
2508
2509 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
2510
2511 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
2512 (w32_get_bdf_glyph): Cast between unsigned char and char when
2513 passing arguments to subroutines, to shut up compiler warnings.
2514 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
2515 GET_HEX_VAL.
2516
2517 * xfaces.c: Include keyboard.h before frame.h, not after it.
2518
2519 * widget.c: Include keyboard.h before frame.h.
2520
2521 * w32term.h (struct image, struct face): Forward declaration, to
2522 avoid compiler warnings.
2523
2524 2001-05-11 Gerd Moellmann <gerd@gnu.org>
2525
2526 * keyboard.c (read_key_sequence): Don't modify events when
2527 generating fake prefix keys (mode-line, scroll-bar, ...) since
2528 this prevents proper processing of such events when pushed back
2529 into unread-command-events.
2530
2531 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
2532 actually redrawn. Make the function static.
2533 (note_mouse_highlight): Fix a case where the mouse cursor
2534 was changed back to the text cursor.
2535
2536 * xterm.h (clear_mouse_face): Remove prototype.
2537
2538 * xdisp.c (try_window_id): Fix the fix and set the right
2539 window_end_vpos.
2540
2541 * xdisp.c (try_window_id): Fix computation of window end in the
2542 case that lines were deleted at the end of the window. Add some
2543 more debug_method_adds.
2544
2545 * xfaces.c (try_alternative_families): New function.
2546 (try_font_list): Use it. If ATTRS specifies a family, check
2547 fonts from that family first.
2548 (choose_face_font): Remove code setting the family part of
2549 the pattern to nil.
2550
2551 2001-05-10 Gerd Moellmann <gerd@gnu.org>
2552
2553 * xdisp.c (try_window_id): Fix case of all changes before
2554 the window start.
2555
2556 * xdisp.c (try_window_id): Add some xasserts.
2557
2558 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2559
2560 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
2561
2562 2001-05-09 Dave Love <fx@gnu.org>
2563
2564 * xdisp.c (GIVE_UP): Fix for K&R C.
2565
2566 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2567
2568 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
2569
2570 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
2571 back to the text cursor shape without need.
2572
2573 2001-05-07 Gerd Moellmann <gerd@gnu.org>
2574
2575 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
2576
2577 * dispextern.h (inverse_video): Declare extern.
2578
2579 * keyboard.c (delete_kboard): Handle the case that selected_frame
2580 has been deleted in the course of x_connection_closed.
2581
2582 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
2583
2584 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
2585 Fix the change from 2001-04-30.
2586
2587 2001-05-03 Gerd Moellmann <gerd@gnu.org>
2588
2589 * xfns.c (file_dialog_unmap_cb): New function.
2590 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
2591 where a dialog is closed via the window manager.
2592
2593 * xdisp.c (try_window_id): Cases of changes all in front of
2594 the window start or all below the window end mostly rewritten.
2595 (redisplay_window): Move the tests if try_window_id is
2596 applicable to try_window_id.
2597 (GIVE_UP): New macro.
2598
2599 2001-05-02 Gerd Moellmann <gerd@gnu.org>
2600
2601 * xterm.c (expose_window): Return int. If W is the window
2602 currently being updated, mark the frame garbaged.
2603 Fix computation of rows intersecting the exposed rectangle.
2604 (expose_window_tree): Stop when expose_window returns 0.
2605
2606 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
2607 again if it has already been drawn.
2608
2609 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
2610
2611 * syntax.c (update_syntax_table): Check that oldi has the same
2612 properties as old_prop before deciding not to invalidate.
2613
2614 2001-04-30 Gerd Moellmann <gerd@gnu.org>
2615
2616 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
2617 read-only text that is so because of text properties.
2618
2619 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
2620 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
2621 windows that are components of a Lucid menu bar.
2622
2623 2001-04-27 Gerd Moellmann <gerd@gnu.org>
2624
2625 * term.c (turn_on_face): Fix reverse video handling on terminals
2626 that don't support colors.
2627
2628 2001-04-26 Gerd Moellmann <gerd@gnu.org>
2629
2630 * editfns.c (save_excursion_restore): Don't use XBUFFER on
2631 a non-buffer.
2632
2633 2001-04-25 Gerd Moellmann <gerd@gnu.org>
2634
2635 * term.c (toggle_highlight): New function.
2636 (turn_on_face): Change handling of reverse video.
2637
2638 * process.c (wait_reading_process_input):
2639 Call record_asynch_buffer_change only if a timer really changed buffers.
2640
2641 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
2642 of the number of overlays to check.
2643
2644 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
2645
2646 * xdisp.c (try_window_id): Fix a case where window_end_pos
2647 and window_end_bytepos were not adjusted.
2648
2649 2001-04-23 Gerd Moellmann <gerd@gnu.org>
2650
2651 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
2652 zero instead of -1.
2653
2654 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
2655
2656 * process.c (wait_reading_process_input) [!subprocesses]:
2657 Don't reference waiting_for_user_input_p, it's not defined in the
2658 branch without async subprocesses support.
2659
2660 2001-04-19 Gerd Moellmann <gerd@gnu.org>
2661
2662 * keyboard.c (delete_kboard): Prevent a dangling reference
2663 from current_kboard to KB, which is freed.
2664
2665 * process.c (wait_reading_process_input):
2666 Call record_asynch_buffer_change after running timers, to make
2667 read_key_sequence aware of buffer changes from under it.
2668
2669 2001-04-18 Gerd Moellmann <gerd@gnu.org>
2670
2671 * xfaces.c (Qscalable_fonts_allowed): New variable.
2672 (realizing_basic_faces_p): Removed.
2673 (x_face_list_fonts): Special handling for realizing_basic_faces_p
2674 removed.
2675 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
2676 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
2677 for scalable-fonts-allowed to t.
2678
2679 * fileio.c (Finsert_file_contents): If the file size returned from
2680 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
2681 read from files on a procfs whose contents are generated dynamically.
2682
2683 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
2684
2685 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
2686 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
2687 (__memalign_hook): Make the two prototypes consistent.
2688
2689 2001-04-17 Gerd Moellmann <gerd@gnu.org>
2690
2691 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
2692 matrix of mini-windows.
2693
2694 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
2695
2696 * intervals.c (find_interval): Don't rebalance during signal handling.
2697
2698 2001-04-11 Gerd Moellmann <gerd@gnu.org>
2699
2700 * fns.c: Include blockinput.h.
2701
2702 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
2703
2704 2001-04-10 Gerd Moellmann <gerd@gnu.org>
2705
2706 * fns.c (Fcompare_strings): Fix return values.
2707
2708 * window.c (window_scroll): Change the meaning of N to mean
2709 N screen-fulls or N lines.
2710 (window_scroll_pixel_based, window_scroll_line_based)
2711 (scroll_command, Fscroll_other_window): Change accordingly.
2712
2713 * window.c (window_scroll_pixel_based, Frecenter):
2714 Call window_box_height instead of using it.last_visible_y for the
2715 height of the window.
2716
2717 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
2718 instead of using it.last_visible_y for the height of the window.
2719
2720 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
2721 From Dan Holmsand <dan@eyebee.com>.
2722
2723 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
2724 able to write to hidden and system files. From Dan Holmsand
2725 <dan@eyebee.com>.
2726
2727 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
2728 Holmsand <dan@eyebee.com>.
2729
2730 2001-04-09 Gerd Moellmann <gerd@gnu.org>
2731
2732 * fns.c (Fplist_get, Fplist_put): Add QUITs.
2733
2734 * window.c (window_internal_height): Return 1 less if the
2735 window has a header line.
2736
2737 * xdisp.c (try_window_id): When scrolling on a terminal, take
2738 the change of window_internal_height into account.
2739
2740 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
2741
2742 * gmalloc.c (align): If the argument SIZE would overflow
2743 __malloc_ptrdiff_t, fail right away.
2744
2745 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2746
2747 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
2748 Make sure the tooltip is completely visible.
2749 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
2750
2751 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
2752
2753 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
2754
2755 2001-04-06 Dave Love <fx@gnu.org>
2756
2757 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
2758 Fix test of `from'.
2759
2760 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2761
2762 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
2763
2764 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
2765
2766 2001-04-05 Gerd Moellmann <gerd@gnu.org>
2767
2768 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
2769
2770 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
2771
2772 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
2773 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
2774
2775 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
2776 shell widget's position only if it is non-null.
2777
2778 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2779 Set f->output_data.x->widget to null after destroying it.
2780
2781 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2782 FILENAME to bring it in synch with the documentation.
2783
2784 * xfaces.c (realizing_basic_faces_p): Renamed from
2785 realize_default_face_p.
2786 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2787 (realize_default_face): Don't set the flag.
2788
2789 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2790
2791 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2792
2793 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2794
2795 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2796 the buffer that was used for echoing.
2797
2798 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2799 (first_font_matching): Removed unused function.
2800 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2801 (may_use_scalable_font_p): Remove parameter FONT; rename
2802 parameter NAME to FONT.
2803 (x_face_list_fonts): Fix missing bounds check.
2804 (realizing_default_face_p): New variable.
2805 (realize_default_face): Set and clear that flag.
2806 (x_face_list_fonts): When called during the realization of the
2807 default face, and no matching fonts are found when ignoring
2808 scalable fonts and fonts matching a regexp from
2809 face-ignored-fonts, try without ignoring fonts.
2810
2811 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2812
2813 * xfns.c (postprocess_image): New function.
2814 (lookup_image): Call it for all image types except PostScript.
2815 (x_kill_gs_process): Call postprocess_image.
2816
2817 * xterm.c (x_use_underline_position_properties): New variable.
2818 (x_draw_glyph_string): Use it.
2819 (syms_of_xterm): DEFVAR_BOOL it.
2820
2821 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2822
2823 * xterm.c (x_alloc_nearest_color_1): New function.
2824 (x_alloc_nearest_color): Use it.
2825 (x_color_cells): Take a Display as argument, instead of a frame.
2826 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2827 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2828 (x_initialize): Register cvt_string_to_pixel as resource converter
2829 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2830
2831 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2832
2833 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2834 (set_iterator_to_next): If a string from a display property ends,
2835 consider the case that this might also be the end of an
2836 overlay string having the display property.
2837
2838 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2839
2840 * xdisp.c (reseat_to_string): Undo last change.
2841
2842 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2843 matrix of a window when the header line changes, when
2844 new rows are allocated, or when the width changes.
2845
2846 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2847
2848 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2849
2850 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2851
2852 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2853 deprecated.
2854
2855 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2856
2857 * data.c (Fsubr_interactive_form): New function.
2858 (syms_of_data): Defsubr it.
2859
2860 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
2861 (live_float_p, live_misc_p): Return 1 only if the offset of the
2862 pointer in its block is >= 0.
2863
2864 2001-03-28 Paul Eggert <eggert@twinsun.com>
2865
2866 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
2867 microseconds calcuation. Avoid double-rounding problem.
2868 In doc string, warn that the result is approximate.
2869
2870 2001-03-28 Gerd Moellmann <gerd@gnu.org>
2871
2872 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
2873 bind `inhibit-eval-during-redisplay' to t.
2874
2875 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2876
2877 * xdisp.c (inhibit_eval_during_redisplay)
2878 (Qinhibit_eval_during_redisplay): New variables.
2879 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2880 don't eval, return nil instead.
2881 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2882 Initialize Qinhibit_eval_during_redisplay.
2883
2884 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2885 the iterator's multibyte_p flag.
2886
2887 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2888 instead of setting it to zero; it's incremented for each frame
2889 where the menu face is changed.
2890
2891 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2892 change bottom shadow accordingly.
2893
2894 * xterm.c (expose_window_tree, expose_frame): Don't compute
2895 intersections here.
2896 (expose_window): Do it here instead.
2897 (x_draw_glyph_string): Fix a computation of the underline position.
2898
2899 * bytecode.c (BYTE_CODE_QUIT): New macro.
2900 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2901
2902 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2903
2904 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2905 Give up if matrix starts in an ellipsis.
2906 (init_from_display_pos): Do nothing if POS doesn't specify
2907 a dpvec_index but the iterator has such a position.
2908
2909 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2910
2911 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2912 x/y position is (0, 0) after destroying the menu bar, restore
2913 its original position.
2914
2915 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2916 (init_from_display_pos): Use it.
2917 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2918
2919 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2920
2921 * xdisp.c (try_window_id): Undo last change.
2922
2923 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2924
2925 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2926
2927 * buffer.c (syms_of_buffer): Doc fix.
2928
2929 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2930
2931 * xfaces.c (x_update_menu_appearance): Use local variable
2932 popup_path for setting font resources.
2933
2934 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2935
2936 * frame.c (Fframe_list): Don't reference tip_frame if
2937 HAVE_WINDOW_SYSTEM is not defined.
2938
2939 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2940 <wl@gnu.org>.
2941
2942 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2943
2944 * xdisp.c (init_from_display_pos): Test invisible property
2945 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2946
2947 * xdisp.c (redisplay_internal) <update one window>: Make sure
2948 last_arrow_position and last_arrow_string are set.
2949
2950 * frame.c (Fframe_list): Don't return a tooltip frame.
2951
2952 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2953
2954 * xdisp.c (mark_window_display_accurate_1): New function,
2955 extracted from mark_window_display_accurate.
2956 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2957 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2958 (mark_window_display_accurate): Use it.
2959 (redisplay_internal): Use it for the selected window.
2960 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2961 for the selected frame.
2962
2963 * xdisp.c Use make_number, for readability.
2964 (try_window_id): Disable rows below the window end.
2965 (try_window_reusing_current_matrix): Use cursor_row_p.
2966 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2967 of rows.
2968 (init_from_display_pos): If POS specifies a position in a display
2969 vector, maybe get the iterator set up for that ellipsis.
2970
2971 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2972
2973 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2974
2975 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2976
2977 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2978
2979 * xfaces.c (x_update_menu_appearance): Use a different path
2980 for Lucid popup menus.
2981
2982 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
2983
2984 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
2985
2986 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
2987 (string_buffer_position): Use `make_number'.
2988
2989 2001-03-22 Gerd Moellmann <gerd@gnu.org>
2990
2991 * xfaces.c (x_update_menu_appearance): Renamed from
2992 x_set_menu_face_resources. Use different resources for popups.
2993
2994 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
2995 (GC_CHECK_STRING_BYTES): Don't define.
2996
2997 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
2998 Removed, together with subroutines.
2999 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
3000 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
3001
3002 * dispextern.h (x_set_menu_resources_from_menu_face):
3003 Remove prototype.
3004
3005 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
3006 Remove calls to x_set_menu_resources_from_menu_face.
3007
3008 * xfaces.c (xm_set_menu_resources_from_menu_face):
3009 Remove #ifndef LESSTIF_VERSION.
3010
3011 * xmenu.c: Include widget.h.
3012 (single_submenu): Return int. Some cleanup.
3013 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
3014
3015 2001-03-21 Gerd Moellmann <gerd@gnu.org>
3016
3017 * xterm.c (x_update_window_end): Handle overwritten mouse face
3018 also for tool bar windows.
3019 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
3020 DRAW is DRAW_IMAGE_RAISED.
3021
3022 2001-03-20 Gerd Moellmann <gerd@gnu.org>
3023
3024 * print.c (syms_of_print): Doc fixes.
3025
3026 * fns.c (Fmd5): Doc fix.
3027
3028 2001-03-19 Gerd Moellmann <gerd@gnu.org>
3029
3030 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3031 Clear area of the frame not occupied by the scroll bar.
3032
3033 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
3034 tip frame's root window buffer to *tip* right after creating
3035 the frame.
3036
3037 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
3038 is an integer don't have to be for space characters.
3039
3040 2001-03-16 Gerd Moellmann <gerd@gnu.org>
3041
3042 * indent.c (current_column, current_column_1, Fmove_to_column)
3043 (compute_motion): Handle characters from display vectors differently.
3044
3045 2001-03-15 Kenichi Handa <handa@etl.go.jp>
3046
3047 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
3048 drawing glyph string.
3049
3050 2001-03-15 Gerd Moellmann <gerd@gnu.org>
3051
3052 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
3053 (command_loop_1): Undo last change.
3054
3055 * xterm.c (fast_find_position): Return the correct vpos.
3056
3057 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
3058 non-null, set a per-buffer value in BUF instead of the current buffer.
3059 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
3060 Call store_symval_forwarding with BUF null.
3061 (set_internal): Call store_symval_forwarding with the BUF
3062 parameter passed to set_internal. Formerly, the value was always
3063 set in the current buffer; the buffer recorded in specbind for
3064 this case wasn't used.
3065 (arith_driver): Reindent.
3066
3067 * buffer.c (swap_out_buffer_local_variables):
3068 Call store_symval_forwarding with BUF null.
3069
3070 * lisp.h (store_symval_forwarding): Change prototype.
3071
3072 * eval.c (specbind): Call store_symval_forwarding with BUF null.
3073
3074 2001-03-14 Gerd Moellmann <gerd@gnu.org>
3075
3076 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
3077 FOR_DELETION. Avoid resizing the mini-window of the selected
3078 frame if FOR_DELETION is set.
3079 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
3080 (Fmake_frame_invisible): Change calls to do_switch_frame for new
3081 signature.
3082
3083 * window.c (Fset_window_configuration): Change call to
3084 do_switch_frame to new format.
3085
3086 * keyboard.c (quit_throw_to_read_char): Change call to
3087 do_switch_frame to new format.
3088
3089 * lisp.h (do_switch_frame): Change prototype.
3090
3091 * frame.c (Fframe_parameters): In the `buffer-list' frame
3092 parameter, store the buffer list of FRAME, not the list of the
3093 selected frame.
3094
3095 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
3096 box just because the glyph row's full_width_p flag is set.
3097
3098 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
3099
3100 * xdisp.c (highlight_trailing_whitespace): On character terminals,
3101 skip the padding blanks inserted in extend_face_to_end_of_line,
3102 before checking for trailing whitespace.
3103
3104 2001-03-13 Gerd Moellmann <gerd@gnu.org>
3105
3106 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
3107 Remove special handling for LessTif/Motif.
3108 (toplevel): Don't include Xm/Xm.h.
3109
3110 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
3111 Remove workaround code for LessTif; it doesn't work anymore.
3112
3113 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
3114 Xm/ScrollBarP.h.
3115
3116 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
3117 Don't access private scroll bar data; it's no longer necessary with
3118 contemporary LessTif.
3119
3120 * xfaces.c (xm_set_menu_resources_from_menu_face):
3121 Change #if 0 to #ifndef LESSTIF_VERSION.
3122
3123 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
3124 removing button grabs.
3125
3126 2001-03-13 Kenichi Handa <handa@etl.go.jp>
3127
3128 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
3129 and clip-large-size-font as obsolete.
3130
3131 * lread.c (read_multibyte): Check the validity of multibyte
3132 sequence. If invalid, return the first byte.
3133
3134 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3135
3136 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
3137 before running the command; timer functions or process
3138 filters may have set it.
3139
3140 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3141
3142 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
3143 Doc fix.
3144
3145 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3146
3147 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
3148 to sprintf.
3149
3150 2001-03-09 Gerd Moellmann <gerd@gnu.org>
3151
3152 * dispextern.h (string_buffer_position): Add prototype.
3153
3154 * xdisp.c (string_buffer_position, display_prop_string_p)
3155 (single_display_prop_string_p): New functions.
3156
3157 * xterm.c (note_mouse_highlight): If there's no help-echo on
3158 a string, look at the buffer text ``under'' it.
3159
3160 * keyboard.c (make_lispy_event): Add string info to the event,
3161 analogous to what's done on mode lines.
3162 (read_key_sequence): For a click on a string, consider `local-map'
3163 and `keymap' of that string.
3164
3165 * keyboard.c (make_lispy_event, make_lispy_movement):
3166 Adjust calls to buffer_posn_from_coords to new format.
3167
3168 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
3169
3170 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
3171 POS; return void.
3172
3173 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
3174 flags argument to emacs_open; it seems to conflict with O_EXCL.
3175
3176 2001-03-09 Kenichi Handa <handa@etl.go.jp>
3177
3178 * composite.h (struct composition): Change types of members;
3179 glyph_len to unsigned, width to unsigned short.
3180
3181 2001-03-08 Andrew Innes <andrewi@gnu.org>
3182
3183 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
3184 menu titles.
3185
3186 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3187
3188 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
3189 instead of nil.
3190
3191 * xterm.c (note_mouse_highlight): Handle mouse-face and
3192 help-echo in strings.
3193 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
3194 (fast_find_string_pos): New function.
3195
3196 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
3197 (display_string): Call face_at_string_position with new parameter.
3198
3199 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
3200 Handle `mouse-face'.
3201
3202 * dispextern.h (face_at_string_position): Change prototype.
3203
3204 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
3205
3206 * keyboard.c (make_lispy_event): Avoid generating drag events
3207 if the mouse hasn't actually moved to another buffer position.
3208
3209 2001-03-08 Dave Love <fx@gnu.org>
3210
3211 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
3212
3213 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3214
3215 * process.c (Fset_process_window_size): Fix a typo.
3216
3217 2001-03-08 Kenichi Handa <handa@etl.go.jp>
3218
3219 * coding.c (detect_coding_sjis): Do more rigid check.
3220 (detect_coding_big5): Likewise.
3221 (decode_coding_sjis_big5): Likewise.
3222 (Fdetect_coding_region): Call detect_coding_system with tailing
3223 anchor byte `\0' for more rigid detection.
3224 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
3225 (Fdetect_coding_string): Likewise.
3226
3227 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
3228
3229 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
3230 a string before extracting its data.
3231
3232 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3233
3234 * window.c (Frecenter): Rewrite code handling negative values
3235 of ARG on graphical frames.
3236
3237 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
3238
3239 * window.c (displayed_window_lines): If W->start is outside the
3240 accessible portion of the buffer, call start_display with BEGV or
3241 ZV instead of W->start.
3242
3243 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3244
3245 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
3246
3247 * process.c (Fset_process_filter): Don't crash if the input
3248 file descriptor of PROCESS is closed.
3249 (Fset_process_window_size): Likewise.
3250
3251 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3252
3253 * xterm.c (XTflash): Make the timeout of select shorter, and call
3254 select repeatedly until the desired time expires.
3255
3256 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3257
3258 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
3259
3260 * xfns.c (Fx_create_frame): Clear Vwindow_list.
3261
3262 * lisp.h (Vwindow_list): Declare extern.
3263
3264 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3265
3266 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
3267
3268 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3269
3270 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
3271 to detect a case where we have to highlight a different region
3272 despite not having left the currently highlighted region.
3273 Set mouse_face_overlay in the x_display_info.
3274 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
3275
3276 * xterm.h (struct x_display_info): Add mouse_face_overlay.
3277
3278 * buffer.c (mouse_face_overlay_overlaps): New function.
3279
3280 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
3281 (Qmouse_face): Declare extern.
3282
3283 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
3284 if face_change_count is non-zero.
3285
3286 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3287
3288 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
3289 that the source is unibyte.
3290
3291 2001-03-05 Dave Love <fx@gnu.org>
3292
3293 * xterm.c (XTmouse_position): Fix typo.
3294
3295 2001-03-05 Gerd Moellmann <gerd@gnu.org>
3296
3297 * minibuf.c (read_minibuf): Clean up the binding stack if
3298 called noninteractively.
3299
3300 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3301
3302 * coding.c (syms_of_coding): Docstring modified.
3303
3304 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3305
3306 * charset.c (char_to_string): If a single byte char has modifier
3307 bits that can't be reflected to the character code, ignore them
3308 instead of signaling an error.
3309
3310 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
3311
3312 * s/msdos.h: Update copyright notice.
3313
3314 * dosfns.h: Update copyright notice.
3315
3316 * dosfns.c: Update copyright notice.
3317
3318 * msdos.c: Update copyright notice.
3319
3320 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3321
3322 * xterm.c (glyph_rect): New function.
3323 (XTmouse_position): Use it to raise the threshold for mouse
3324 movement event generation.
3325
3326 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3327
3328 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
3329 specifies (reverse . t), reverse the initial screen colors.
3330 (IT_set_frame_parameters): If the property is foreground-color,
3331 but we are reversing the colors, set bg_set, not fg_set.
3332 Likewise for setting background-color and reversing: set fg_set.
3333 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
3334 in effect.
3335
3336 * xfaces.c (Finternal_set_lisp_face_attribute)
3337 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
3338 parameters alist.
3339
3340 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3341
3342 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
3343 to a single slash in the middle of file names.
3344
3345 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
3346 Accept only alphanumeric time zone names.
3347
3348 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
3349 or width area.
3350 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
3351 a widget to zero height.
3352
3353 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3354
3355 * window.c (Fwindow_end): Call move_it_past_eol only if
3356 ending up on a partially visible line.
3357
3358 2001-03-01 Dave Love <fx@gnu.org>
3359
3360 * ccl.c (Fccl_execute): Doc fix.
3361
3362 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3363
3364 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
3365 of the tool bar before calling x_figure_window_size.
3366
3367 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
3368 NULL after destroying it, otherwise XTread_socket can access a
3369 destroyed widget when input is unblocked.
3370
3371 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
3372
3373 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
3374 same name as before, although there was a change in fontsets.
3375
3376 2001-02-28 Ken Raeburn <raeburn@gnu.org>
3377
3378 * lisp.h (Fframe_parameter): Declare.
3379
3380 * window.c (set_window_buffer): Field vscroll is an int, not a
3381 Lisp_Object.
3382
3383 2001-02-28 Gerd Moellmann <gerd@gnu.org>
3384
3385 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
3386 NULL instead.
3387
3388 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
3389 NULL instead.
3390
3391 * alloc.c (toplevel): Include process.h.
3392 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
3393 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
3394 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
3395 (allocate_vector, allocate_hash_table, allocate_window)
3396 (allocate_frame, allocate_process, allocate_other_vector):
3397 New functions.
3398 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
3399 (mark_maybe_pointer): New function.
3400 (mark_memory): Also mark Lisp data to which only pointers
3401 remain and not Lisp_Objects.
3402 (min_heap_address, max_heap_address): New variables.
3403 (mem_find): Return MEM_NIL if START is below min_heap_address or
3404 above max_heap_address.
3405 (mem_insert): Compute min_heap_address and max_heap_address.
3406
3407 * process.c (make_process): Use allocate_process.
3408
3409 * frame.c (make_frame): Use allocate_frame.
3410
3411 * window.c (make_window, make_dummy_parent): Use allocate_window.
3412 (Fcurrent_window_configuration): Use allocate_other_vector.
3413
3414 * lisp.h (allocate_vectorlike): Remove prototype.
3415 (allocate_vector, allocate_other_vector, allocate_frame)
3416 (allocate_window, allocate_process, allocate_hash_table):
3417 Add prototypes.
3418
3419 * fns.c (Fdelete, larger_vector): Use allocate_vector.
3420 (make_hash_table, copy_hash_table): Use allocate_hash_table.
3421
3422 2001-02-27 Kenichi Handa <handa@etl.go.jp>
3423
3424 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
3425 treat the produced bytes as a valid multibyte sequence.
3426
3427 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
3428 (ccl_driver) <CCL_WriteMultibyteChar2>:
3429 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
3430 <ccl_finish>: Set ccl->eight_bit_control properly.
3431
3432 * ccl.h (struct ccl_program): New member eight_bit_control.
3433
3434 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
3435
3436 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
3437 accessible_keymaps_char_table.
3438 (accessible_keymaps_char_table): Obey `is_metized'.
3439 (where_is_internal, Fwhere_is_internal): Don't confuse int and
3440 Lisp_Object.
3441
3442 2001-02-26 Gerd Moellmann <gerd@gnu.org>
3443
3444 * dispnew.c: Check HAVE_TERM_H before including term.h.
3445
3446 2001-02-24 Andrew Innes <andrewi@gnu.org>
3447
3448 * makefile.w32-in: Update copyright notice.
3449
3450 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
3451
3452 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
3453
3454 2001-02-24 Kenichi Handa <handa@etl.go.jp>
3455
3456 * Makefile.in (lisp): Add international/utf-8.elc.
3457
3458 * fontset.c (Fnew_fontset): Fix handling of the case that an
3459 element of FONTLIST is a cons of family and registry.
3460
3461 2001-02-23 Jason Rumney <jasonr@gnu.org>
3462
3463 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
3464 to height unconditionally.
3465
3466 * w32term.c (x_set_glyph_string_background_width): Extend the
3467 background face to the end of the drawing area in the text area, only.
3468 (x_insert_glyphs): Call window_box_left to obtain the left
3469 x-coordinate of the area to shift.
3470
3471 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
3472 safe_run_hooks.
3473
3474 2001-02-22 Andrew Innes <andrewi@gnu.org>
3475
3476 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
3477 ($(BLD)\dispnew.obj):
3478 ($(BLD)\editfns.obj):
3479 ($(BLD)\fileio.obj):
3480 ($(BLD)\filelock.obj):
3481 ($(BLD)\keyboard.obj):
3482 ($(BLD)\w32proc.obj):
3483 ($(BLD)\process.obj):
3484 ($(BLD)\sysdep.obj): Ditto.
3485
3486 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
3487 header files.
3488 ($(BLD)/dispnew.$(O)):
3489 ($(BLD)/editfns.$(O)):
3490 ($(BLD)/fileio.$(O)):
3491 ($(BLD)/filelock.$(O)):
3492 ($(BLD)/keyboard.$(O)):
3493 ($(BLD)/w32proc.$(O)):
3494 ($(BLD)/process.$(O)):
3495 ($(BLD)/sysdep.$(O)): Ditto.
3496
3497 2001-02-22 Gerd Moellmann <gerd@gnu.org>
3498
3499 * xdisp.c (forward_to_next_line_start): When taking the shortcut
3500 at the start of the function, check that the \n in it->c is
3501 from the iterator's current position.
3502
3503 * xdisp.c (handle_single_display_prop): Add parameter
3504 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
3505 properties which replace the display of text with something else.
3506 (handle_display_prop): Call handle_single_display_prop with
3507 additional argument saying if we already replaced text display
3508 with something else. Use AREF.
3509 (with_echo_area_buffer_unwind_data, display_menu_bar)
3510 (decode_mode_spec_coding): Use AREF and ASIZE.
3511
3512 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
3513 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
3514 * vmstime.h: Files removed.
3515
3516 * unexencap.c, unexfx2800.c: Files removed.
3517
3518 * dispnew.c (direct_output_for_insert): Give up if we are showing
3519 a message or just cleared the message because we might need to
3520 resize the echo area window or display an empty echo area.
3521
3522 2001-02-21 Gerd Moellmann <gerd@gnu.org>
3523
3524 * xdisp.c (redisplay_internal): Do the
3525 mark_window_display_accurate after all windows have been
3526 redisplayed because this call resets flags in buffers which are
3527 needed for proper redisplay.
3528
3529 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
3530 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
3531 the old names.
3532
3533 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3534 busy_window to hourglass_window, busy_p to hourglass_p.
3535
3536 * msdos.h (struct x_output): Rename busy_window to
3537 hourglass_window, busy_p to hourglass_p.
3538
3539 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3540 busy_window to hourglass_window, busy_p to hourglass_p.
3541
3542 * xfns.c: Rename everything containing *busy_cursor* and similar
3543 to *hourglass*.
3544 (syms_of_w32fns): Rename x-busy-pointer-shape to
3545 x-hourglass-pointer-shape, display-busy-cursor to
3546 display-hourglass, busy-cursor-delay to hourglass-delay.
3547
3548 * w32fns.c: Rename everything containing *busy_cursor* and similar
3549 to *hourglass*.
3550 (syms_of_w32fns): Rename x-busy-pointer-shape to
3551 x-hourglass-pointer-shape, display-busy-cursor to
3552 display-hourglass, busy-cursor-delay to hourglass-delay.
3553
3554 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
3555 of its busy_p flag.
3556
3557 * dispextern.h (start_hourglass, cancel_hourglass)
3558 (display_hourglass_p): Renamed from *busy_cursor*.
3559
3560 2001-02-20 Gerd Moellmann <gerd@gnu.org>
3561
3562 * keyboard.c (read_char): When an event from unread-command-events
3563 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
3564
3565 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
3566 equal to the current buffer.
3567
3568 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
3569 nil, otherwise we're left with truncate_lines t when a message
3570 is printed with message-truncate-lines bound to t.
3571
3572 2001-02-19 Gerd Moellmann <gerd@gnu.org>
3573
3574 * window.c (Fmove_to_window_line): Undo last change.
3575 (displayed_window_lines): Call line_bottom_y to determine
3576 the line's bottom position.
3577
3578 * dispextern.h (line_bottom_y): Add prototype.
3579
3580 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
3581 (pos_visible_p): Use it.
3582
3583 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
3584 set redisplaying_p to 0 here instead of in Frecursive_edit.
3585 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
3586 set redisplaying_p.
3587
3588 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
3589 New variables.
3590 (syms_of_xdisp): Initialize new variables.
3591 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
3592 Specbind `inhibit-menubar-update' when updating the menu bar.
3593
3594 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
3595 safe_run_hooks.
3596
3597 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
3598 safe_run_hooks.
3599
3600 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
3601 is null.
3602
3603 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
3604 to the start of the file.
3605
3606 2001-02-16 Gerd Moellmann <gerd@gnu.org>
3607
3608 * window.c (set_window_buffer): Fix last change.
3609
3610 * window.c (set_window_buffer): Set window's vscroll to 0.
3611
3612 * window.c (coordinates_in_window): Increase width of area
3613 where the vertical line can be dragged.
3614
3615 * xterm.c (x_set_glyph_string_background_width): Extend the
3616 background face to the end of the drawing area in the text
3617 area, only.
3618
3619 * xdisp.c (handle_single_display_prop): Set iterator's position
3620 to where the `display' property starts, like for images.
3621 (dump_glyph): New function.
3622 (dump_glyph_row): Use it. Dump info about marginal areas.
3623
3624 * dispnew.c (direct_output_for_insert): Recognize more cases where
3625 glyphs can be written instead of being inserted.
3626
3627 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
3628 the left x-coordinate of the area to shift.
3629
3630 * dired.c (directory_files_internal): Set result list to nil
3631 before retrying.
3632
3633 2001-02-15 Kenichi Handa <handa@etl.go.jp>
3634
3635 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
3636 invalid multibyte sequence, treat *SRC as a character of
3637 eight-bit-graphic.
3638
3639 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
3640
3641 * textprop.c (Fset_text_properties): Doc fix.
3642
3643 2001-02-15 Gerd Moellmann <gerd@gnu.org>
3644
3645 * dispnew.c (update_text_area): Undo change of 2001-01-12.
3646
3647 2001-02-14 Dave Love <fx@gnu.org>
3648
3649 * coding.c: Doc and message fixes.
3650
3651 2001-02-14 Andrew Innes <andrewi@gnu.org>
3652
3653 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
3654 Emacs frame above the screen size.
3655
3656 2001-02-14 Gerd Moellmann <gerd@gnu.org>
3657
3658 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
3659
3660 2001-02-13 Gerd Moellmann <gerd@gnu.org>
3661
3662 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
3663 case that TO ends up beyond ZV after running before-change-functions.
3664
3665 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
3666 the selected window if it is showing the buffer in question.
3667
3668 * dired.c (directory_files_internal): Initialize errno.
3669 (toplevel): Include errno.h.
3670
3671 2001-02-13 Kenichi Handa <handa@etl.go.jp>
3672
3673 * xfaces.c (best_matching_font): New parameter width_ratio.
3674 Multiply avgwidth by width_ratio.
3675 (choose_face_font): Call best_matching_font with width_ratio
3676 calculated from the column width of C.
3677
3678 2001-02-12 Andrew Innes <andrewi@gnu.org>
3679
3680 The following changes are to draw box lines inside characters area
3681 if line-width is negative.
3682
3683 * w32term.c (x_produce_image_glyph): Pay attention to the case that
3684 face->box_line_width is negative.
3685 (x_produce_stretch_glyph): Likewise.
3686 (x_produce_glyphs): Likewise.
3687 (x_estimate_mode_line_height): Likewise.
3688 (x_draw_glyph_string_background): Likewise.
3689 (x_draw_glyph_string_foreground): Likewise.
3690 (x_draw_composite_glyph_string_foreground): Likewise.
3691 (x_draw_glyph_string_box): Likewise.
3692 (x_draw_image_foreground): Likewise.
3693 (x_draw_image_relief): Likewise.
3694 (x_draw_image_foreground_1): Likewise.
3695 (x_draw_image_glyph_string): Likewise.
3696
3697 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3698
3699 The following changes are to draw box lines inside characters area
3700 if line-width is negative.
3701
3702 * xterm.c (x_produce_image_glyph): Pay attention to the case that
3703 face->box_line_width is negative.
3704 (x_produce_stretch_glyph): Likewise.
3705 (x_produce_glyphs): Likewise.
3706 (x_estimate_mode_line_height): Likewise.
3707 (x_draw_glyph_string_background): Likewise.
3708 (x_draw_glyph_string_foreground): Likewise.
3709 (x_draw_composite_glyph_string_foreground): Likewise.
3710 (x_draw_glyph_string_box): Likewise.
3711 (x_draw_image_foreground): Likewise.
3712 (x_draw_image_relief): Likewise.
3713 (x_draw_image_foreground_1): Likewise.
3714 (x_draw_image_glyph_string): Likewise.
3715
3716 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
3717 and :line-width can be negative.
3718 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
3719
3720 2001-02-09 Jason Rumney <jasonr@gnu.org>
3721
3722 * w32term.c (w32_encode_char): Treat eight bit graphic and control
3723 characters the same as ASCII and latin-1.
3724 (x_display_and_set_cursor): Check for the focus frame's selected
3725 window instead of selected_window.
3726 (x_after_update_window_line): Don't clear if frame's internal
3727 border width is zero.
3728 (x_new_font): Don't change a tooltip's size.
3729 (w32_initialize): Set char_ins_del_ok to 1.
3730
3731 * w32fns.c (Fx_show_tip): Fix calls to make_number.
3732 (x_set_font): If font hasn't changed, avoid recomputing
3733 faces and other things.
3734 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
3735 (Fx_create_frame): Add the tool bar height to the frame height.
3736 (x_create_tip_frame): Prevent changing the tooltip's
3737 background color by specifying a color for the default font
3738 in .Xdefaults.
3739 (Qcancel_timer): New variable.
3740 (syms_of_w32fns): Initialize and staticpro it.
3741 (Fx_hide_tip, Fx_show_tip): Use it.
3742 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3743 the timer.
3744 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
3745
3746 * w32.c (init_environment): Duplicate local string before putenv.
3747
3748 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
3749
3750 * charset.c (Fstring): A typo.
3751
3752 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3753
3754 * charset.c (Fstring): If all arguments are less than 256, return
3755 a unibyte string.
3756
3757 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
3758 return a unibyte string.
3759
3760 * coding.c (code_convert_region): After detecting a coding, if
3761 nothing found, set coding->composing to COMPOSITION_NO.
3762 (decode_coding_string): Likewise.
3763
3764 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
3765
3766 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
3767 to avoid overflow.
3768
3769 2001-02-07 Kenichi Handa <handa@etl.go.jp>
3770
3771 * charset.c (parse_str_to_multibyte): New function.
3772
3773 * charset.h (parse_str_to_multibyte): Extern it.
3774
3775 * print.c (print_string): If we are going to print a unibyte
3776 string into a multibyte buffer, convert the string to multibyte by
3777 str_to_multibyte.
3778
3779 2001-02-06 Andrew Innes <andrewi@gnu.org>
3780
3781 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3782 been created. It seems we can get sent window messages such as
3783 WM_ERASEBKGND before we properly update a frame.
3784
3785 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3786
3787 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3788 Avoid some unnecessary cursor positioning.
3789
3790 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3791
3792 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3793 (LFACE_AVGWIDTH): New macro.
3794 (LFACEP): Use AREF.
3795 (check_lface_attrs): Check LFACE_AVGWIDTH.
3796 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3797 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3798 (merge_face_vectors): Check LFACE_AVGWIDTH.
3799 (Finternal_make_lisp_face): Use AREF.
3800 (xm_set_menu_resources_from_menu_face)
3801 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3802 (Finternal_lisp_face_empty_p): Use AREF.
3803 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3804 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3805 Compare average widths..
3806 (best_matching_font): Arrange for comparing average widths.
3807
3808 * dispextern.h (enum lface_attribute_index):
3809 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3810
3811 2001-02-05 Dave Love <fx@gnu.org>
3812
3813 * puresize.h: Revert last change following loadup.el change.
3814
3815 2001-02-05 Andrew Innes <andrewi@gnu.org>
3816
3817 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3818 invocation of temacs, to work with Windows 2000.
3819 (bootstrap-emacs): Ditto.
3820
3821 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3822
3823 * xterm.c (x_display_and_set_cursor): Check for the focus
3824 frame's selected window instead of selected_window.
3825
3826 * xdisp.c (try_scrolling): If point is in the line below the
3827 window, make sure to move the iterator at least a canonical
3828 char height down.
3829
3830 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3831
3832 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3833
3834 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3835 If invalid, execute CCL_INVALID_CMD.
3836 (ccl_driver): If the CCL program is terminated because of
3837 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3838 destination instead of throwing them away.
3839
3840 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3841
3842 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3843 faces and other things.
3844
3845 * xdisp.c (get_next_display_element): Fix case of empty
3846 display table entry.
3847
3848 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3849
3850 * editfns.c (Fconstrain_to_field): Doc fix.
3851
3852 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3853 into `thoroughly', to make it consistent with the doc string.
3854
3855 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3856
3857 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3858
3859 * search.c (search_buffer): Call set_search_regs with a byte
3860 position, not a character position.
3861
3862 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
3863 minibuffer-only,
3864
3865 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
3866
3867 * frame.c (Fmodify_frame_parameters): Doc fix.
3868
3869 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3870
3871 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
3872 identifier which is not reserved by Standard C.
3873
3874 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3875
3876 * window.c (enum window_part): New enumeration.
3877 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3878 Qright_bitmap_area.
3879 (coordinates_in_window): Return an enumerator from enum
3880 window_part. Fix handling of right scroll bar.
3881 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3882 `right-fringe' instead of `left-bitmap-area' and
3883 `right-bitmap-area'. Use enumerators from enum window_part
3884 instead of hard-coded integers.
3885 (check_window_containing, window_from_coordinates):
3886 Use enumerators from enum window_part instead of hard-coded integers.
3887 (syms_of_window): Replace Qleft_bitmap_area and
3888 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3889
3890 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3891
3892 * editfns.c (Fformat_time_string): Doc fix.
3893
3894 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3895
3896 * keymap.c (Fwhere_is_internal): Use the first valid binding
3897 if no ascii binding is found (when firstonly is t).
3898
3899 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3900
3901 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3902 instead of Finteractive_p.
3903
3904 * lisp.h (interactive_p): Add prototype.
3905
3906 * eval.c (interactive_p): New function.
3907 (Finteractive_p): Use it.
3908
3909 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3910
3911 2001-01-31 Dave Love <fx@gnu.org>
3912
3913 * .gdbinit (hook-run): Define to run xreload.
3914
3915 * textprop.c (Fset_text_properties): Fix newline in doc string.
3916
3917 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3918
3919 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3920 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3921
3922 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3923 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3924 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3925
3926 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3927 height.
3928
3929 2001-01-30 Dave Love <fx@gnu.org>
3930
3931 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3932 AFTER_POTENTIAL_GC.
3933
3934 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3935
3936 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3937 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3938
3939 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3940
3941 * textprop.c (Fset_text_properties): Doc fix.
3942
3943 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3944
3945 * xdisp.c (forward_to_next_line_start): Remove xassert.
3946
3947 2001-01-29 Jason Rumney <jasonr@gnu.org>
3948
3949 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3950 returning without releasing it.
3951
3952 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3953
3954 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3955 for '^', '$', and '\0'.
3956
3957 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3958
3959 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3960 regex for '^', '$', and '\0'.
3961
3962 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3963 only if current_sblock has been initialized.
3964
3965 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3966 terminal frame even if it is the only visible frame.
3967
3968 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3969
3970 * fontset.c (font_family_registry): Even if FONTNAME conform to
3971 XLFD, if it specifies other fields than family and registry,
3972 return FONTANME. New argument FORCE if nonzero cancel that feature.
3973 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3974 a signle byte character. Don't set FAMILY part to nil here.
3975 It is handled by the caller choose_face_font.
3976 (Fnew_fontset): Call font_family_registry with FORCE 0.
3977 (Fset_fontset_font): Likewise.
3978
3979 2001-01-27 Gerd Moellmann <gerd@gnu.org>
3980
3981 * xdisp.c (display_line): Don't treat a newline as fitting
3982 on the line.
3983
3984 2001-01-26 Gerd Moellmann <gerd@gnu.org>
3985
3986 * window.c (size_window): Set the window's orig_top to nil when
3987 changing heights, so that a future shrink_mini_window won't
3988 restore a bogus height.
3989
3990 * frame.c (do_switch_frame): If selected frame has a mini-window,
3991 resize that to exact size.
3992
3993 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
3994
3995 * xdisp.c (display_line): Simplify check for glyphs fitting
3996 entirely in the line.
3997
3998 * xfns.c (xic_style): New variable.
3999 (create_frame_xic): Move static variable to global scope for
4000 the case that `static' gets defined away.
4001
4002 2001-01-26 Kenichi Handa <handa@etl.go.jp>
4003
4004 * coding.c (decode_coding): Set a flag for inhibiting
4005 inconsistent eol.
4006 (code_convert_region): Always set saved_coding_symbol.
4007 (decode_coding_string): Likewise. Update coding->symbol when we
4008 encounter a inconsistent eol by the same way as code_convert_region.
4009
4010 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4011
4012 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
4013 XClearArea.
4014
4015 * xterm.c (x_after_update_window_line): Don't clear if frame's
4016 internal border width is zero.
4017 (x_clear_area): New function.
4018 (x_after_update_window_line, x_clear_end_of_line)
4019 (x_scroll_bar_create, x_scroll_bar_set_handle)
4020 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
4021 instead of XClearArea.
4022
4023 * xterm.h (x_clear_area): Add prototype.
4024
4025 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
4026 which doesn't seem necessary anymore with Lesstif 0.92.
4027
4028 2001-01-25 Dave Love <fx@gnu.org>
4029
4030 * puresize.h (BASE_PURESIZE): Up to 720000.
4031
4032 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
4033
4034 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4035
4036 * xdisp.c (echo_area_display): Don't call redisplay_internal
4037 when Emacs is shutting down. We can't run hooks etc. that
4038 would be necessary to do a redisplay.
4039
4040 * lread.c (read_integer): Use type EMACS_INT instead of int.
4041
4042 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
4043
4044 * ccl.c (ccl_driver): Fix last change.
4045
4046 2001-01-25 Kenichi Handa <handa@etl.go.jp>
4047
4048 * ccl.h (sturct ccl_program): New member suppress_error.
4049
4050 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
4051 insert error message to the output.
4052 (setup_ccl_program): Initialize ccl->suppress_error to 0.
4053
4054 * coding.h (struct coding_system): New member suppress_error.
4055
4056 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
4057 (Fset_terminal_coding_system_internal): Set the member
4058 suppress_error to 1.
4059 (Fset_safe_terminal_coding_system_internal): Likewise.
4060
4061 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
4062
4063 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
4064 as if it was a `charset'.
4065
4066 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4067
4068 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
4069 value in where_is_cache; the next lookup in the cache returns
4070 something bogus if we do.
4071
4072 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4073
4074 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
4075 if HAVE_WINDOW_SYSTEM isn't defined.
4076
4077 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4078
4079 * fns.c (sweep_weak_table): Fix code taking items out of
4080 the hash collision chain. Some cleanup.
4081
4082 * xterm.c (x_new_font): Don't change a tooltip's size.
4083
4084 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
4085 background color by specifying a color for the default font
4086 in .Xdefaults.
4087
4088 2001-01-24 Kenichi Handa <handa@etl.go.jp>
4089
4090 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
4091 a workaround for SunOS 4's cc.
4092 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
4093 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
4094 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
4095 statement.
4096
4097 2001-01-23 Gerd Moellmann <gerd@gnu.org>
4098
4099 * xterm.c (x_set_window_size_1): New function extracted from
4100 x_set_window_size.
4101 (x_set_window_size): Use it.
4102 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
4103 doesn't have a widget, like tooltips.
4104
4105 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
4106
4107 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
4108
4109 2001-01-23 Kenichi Handa <handa@etl.go.jp>
4110
4111 * fns.c (Fset_char_table_default): Fix to make sub char-table
4112 correctly.
4113
4114 2001-01-22 Gerd Moellmann <gerd@gnu.org>
4115
4116 * xdisp.c (build_desired_tool_bar_string): Make sure we have
4117 a desired tool bar string, even if there are no tool bar items.
4118
4119 * xdisp.c (Ftool_bar_lines_needed): New function.
4120 (syms_of_xdisp): Defsubr it.
4121
4122 * editfns.c (Fformat): Don't extend text properties from arguments
4123 to padding chars in the result.
4124
4125 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
4126
4127 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
4128
4129 2001-01-20 Andrew Innes <andrewi@gnu.org>
4130
4131 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
4132 (w32_initialize): Don't set term hooks that aren't actually needed
4133 in windowed mode.
4134
4135 * xfaces.c (realize_default_face):
4136 (realize_face):
4137 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
4138
4139 * xdisp.c (handle_single_display_prop): Remove references to
4140 FRAME_W32_CONSOLE_P.
4141
4142 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
4143
4144 * frame.h (output_method): Remove output_w32_console method.
4145 (FRAME_W32_CONSOLE_P): Remove macro.
4146
4147 * frame.c (Qw32_console): Remove variable.
4148 (Fframep): Remove references to it.
4149 (syms_of_frame): Ditto.
4150 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
4151
4152 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
4153 redefinition.
4154
4155 2001-01-20 Kenichi Handa <handa@etl.go.jp>
4156
4157 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
4158
4159 2001-01-19 Andrew Innes <andrewi@gnu.org>
4160
4161 * w32.c (init_environment): Add a version-independent site-lisp
4162 directory to EMACSLOADPATH, after the version dependent one.
4163
4164 2001-01-19 Gerd Moellmann <gerd@gnu.org>
4165
4166 * editfns.c (Fbuffer_substring): Doc fix.
4167
4168 * xdisp.c (message_dolog, message2, message2_nolog):
4169 Rename parameter LEN to NBYTES.
4170
4171 2001-01-19 Kenichi Handa <handa@etl.go.jp>
4172
4173 * charset.c (strwidth): Use c_string_width.
4174 (c_string_width): New function.
4175 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
4176 Caller changed.
4177
4178 * charset.h (c_string_width, lisp_string_width): Extern them.
4179
4180 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
4181
4182 * indent.c (check_composition): Check validity of composition.
4183
4184 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
4185 characters by calling c_string_width.
4186 (x_consider_frame_title): Get byte length of frame tile string
4187 correctly.
4188 (display_mode_element): Pay attention to width of non-ASCII
4189 characters by calling strwidth.
4190
4191 2001-01-18 Gerd Moellmann <gerd@gnu.org>
4192
4193 * xfns.c (Qcancel_timer): New variable.
4194 (syms_of_xfns): Initialize and staticpro it.
4195 (Fx_hide_tip, Fx_show_tip): Use it.
4196 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
4197 the timer.
4198 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
4199
4200 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
4201
4202 * window.h (WINDOW_LIVE_P): New macro.
4203
4204 * window.c (window_size_fixed): New variable.
4205 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
4206 the doc string.
4207
4208 * eval.c (specbind): If binding a per-buffer variable which
4209 doesn't have a buffer-local value in the current buffer, change
4210 the global value by changing the value of the symbol bound in all
4211 buffers not having their own value, to make it consistent with
4212 what happens with other buffer-local variables.
4213
4214 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
4215
4216 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
4217 when searching for a newline.
4218
4219 2001-01-18 Kenichi Handa <handa@etl.go.jp>
4220
4221 * xdisp.c (display_string): Fix previous change.
4222
4223 2001-01-18 Jason Rumney <jasonr@gnu.org>
4224
4225 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
4226 GLYPH_DEBUG is defined.
4227 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
4228 true for images with `:ascent 100'.
4229 (x_set_mouse_face_gc): If the last used mouse face has gone in the
4230 meantime, use face MOUSE_FACE_ID.
4231 If first glyph isn't a character glyph, use the ASCII NUL
4232 character to determine the face.
4233 (expose_area): Do not treat left margin specially.
4234 (note_mode_line_highlight): If no local_map, check global keymap.
4235 (note_mouse_highlight): Initialize overlay.
4236 (clear_mouse_face): Don't return if tip_frame is non-nil.
4237 (show_scroll_bars): Remove unused function.
4238 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
4239 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
4240 Clip to row.
4241 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
4242 (x_free_frame_resources): Unload relief colors.
4243
4244 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4245
4246 * xdisp.c (forward_to_next_line_start): Avoid calling
4247 get_next_display_element when the newline is already found.
4248 This may change the iterator's position, when its current position is
4249 equal to the iterator's stop_charpos.
4250
4251 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
4252 zero, use this method only at the end of a line.
4253
4254 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
4255 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
4256 if SCALABLE_FONTS_P is set.
4257
4258 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
4259 so that scalable fonts are included.
4260
4261 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
4262 In the cache, use a key containing the information if scalable
4263 fonts are included.
4264 (x_load_font): Adapt to change of keys in the font cache.
4265
4266 2001-01-17 Kim F. Storm <storm@filanet.dk>
4267
4268 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
4269 XListFonts to take advantage of font caching.
4270
4271 * xterm.c (x_list_fonts): Ensure caching font information when
4272 called for a null frame, which is the case frequently when Emacs
4273 starts.
4274
4275 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4276
4277 * xfns.c (QCconversion): Replaces QCalgorithm.
4278
4279 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
4280
4281 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
4282 of :algorithm.
4283
4284 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
4285 not everything could be displayed.
4286
4287 * line.h, x-list-font.c: Files removed because unused.
4288
4289 2001-01-17 Andrew Innes <andrewi@gnu.org>
4290
4291 * dired.c (directory_files_internal): Convert result from readdir
4292 to a unibyte string initially, to avoid possible misinterpretation
4293 of some bytes as the internal form of Emacs characters.
4294
4295 2001-01-17 Kenichi Handa <handa@etl.go.jp>
4296
4297 * fns.c (concat): Be sure to avoid putting the same `composition'
4298 property on the adjacent regions.
4299
4300 2001-01-16 Gerd Moellmann <gerd@gnu.org>
4301
4302 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
4303 (Fscroll_right, Fscroll_left): Set it here instead, if called
4304 interactively.
4305
4306 * buffer.c (Fset_buffer_modified_p): Set buffer's
4307 prevent_redisplay_optimizations_p flag.
4308
4309 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
4310 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
4311 with additional arg.
4312
4313 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
4314 Change prototype.
4315
4316 * xdisp.c (redisplay_preserve_echo_area): Add parameter
4317 FROM_WHERE, for debugging.
4318
4319 2001-01-16 Kenichi Handa <handa@etl.go.jp>
4320
4321 * ccl.c (Fregister_ccl_program): Handle the return value of
4322 resolve_symbol_ccl_program correctly.
4323 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
4324
4325 2001-01-15 Gerd Moellmann <gerd@gnu.org>
4326
4327 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
4328 has gone in the meantime, use face MOUSE_FACE_ID.
4329
4330 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
4331 If x_display_info_for_display returns null, don't try to close
4332 the display; we didn't open it.
4333
4334 * dispnew.c (save_or_restore_current_matrices): Function removed.
4335 (save_current_matrix, restore_current_matrix): New functions.
4336 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
4337 restore the frame's current matrix. Due to the glyph pointer
4338 setup done in adjust_glyph_matrix, there is no easy way to make
4339 saving the current matrix in the desired matrix generally correct,
4340 so don't try it.
4341
4342 2001-01-15 Kenichi Handa <handa@etl.go.jp>
4343
4344 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
4345 truncation glyphs.
4346 (display_line): Optimize for wide characters.
4347 (display_string): Don't try to display a multi-column character
4348 partially. On ttys, produce more than one truncation glyph for
4349 multi-column characters that don't fit on the line.
4350
4351 2001-01-13 Kenichi Handa <handa@etl.go.jp>
4352
4353 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
4354 Define it instead of WORDS_BIGENDIAN. Caller changed.
4355
4356 2001-01-13 Jason Rumney <jasonr@gnu.org>
4357
4358 * w32fns.c (Fimage_size, image_ascent, lookup_image)
4359 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
4360 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4361 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
4362
4363 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
4364 (x_draw_image_relief, x_draw_image_foreground_1)
4365 (x_draw_image_glyph_string): Adapt to change of image margins.
4366
4367 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
4368 variables.
4369
4370 * w32bdf.c (search_file_line, get_cached_font_char)
4371 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
4372
4373 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
4374
4375 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
4376 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
4377 (Fw32_send_sys_command): Remove unused variables.
4378 (w32_msg_pump): Add parentheses.
4379
4380 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
4381 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
4382 Add parentheses.
4383
4384 2001-01-12 Gerd Moellmann <gerd@gnu.org>
4385
4386 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
4387 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
4388 being a pair of margins.
4389 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
4390 to DEFVAR_LISP. Extend doc.
4391
4392 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
4393 margins.
4394 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
4395 pair of integers `(X . Y)', use X for the horizontal and Y for the
4396 vertical margin.
4397 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
4398 (parse_image_spec): Check it.
4399 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4400 (tiff_format, gif_format, gs_format):
4401 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
4402
4403 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4404 (x_draw_image_relief, x_draw_image_foreground_1)
4405 (x_draw_image_glyph_string): Adapt to the change of image margins.
4406
4407 * dispextern.h (struct image): Replace member `margin' with
4408 `hmargin' and `vmargin'.
4409
4410 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
4411 and GLYPHS.
4412
4413 * dispnew.c (update_text_area): Put code which decrements the
4414 stop position when the row's face extends to the end of the
4415 line in #if 0.
4416
4417 * xfns.c (x_set_mouse_color): Fix color allocation.
4418
4419 * keyboard.c: Call get_local_map with new argument list.
4420
4421 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
4422
4423 * intervals.h (enum map_property): Removed.
4424 (get_local_map): Change prototype.
4425
4426 * keymap.c: Call get_local_map with new argument list.
4427 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
4428
4429 2001-01-11 Gerd Moellmann <gerd@gnu.org>
4430
4431 * xdisp.c (build_desired_tool_bar_string): Correct the computation
4432 of the size needed for the tool bar string. For the last image,
4433 use a `display' property that reaches to the end of the string.
4434
4435 * xselect.c (selection_request_dpyinfo): New variable.
4436 (x_handle_selection_request): Set it.
4437 (x_selection_request_lisp_error): Don't call
4438 x_decline_selection_request if selection request's display has
4439 been closed.
4440
4441 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
4442 Do the unregister_colors before calling XFreeColors.
4443
4444 2001-01-10 Dave Love <fx@gnu.org>
4445
4446 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
4447 ${SOME_MACHINE_LISP}, not ${lisp}.
4448
4449 2001-01-10 Gerd Moellmann <gerd@gnu.org>
4450
4451 * xdisp.c (display_line): On ttys, produce more than one truncation
4452 glyph for multi-column characters that don't fit on the line.
4453
4454 * xselect.c (x_reply_selection_request): Add a comment.
4455
4456 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
4457 XkbGetNames instead of XkbGetKeyboard.
4458
4459 2001-01-10 Dave Love <fx@gnu.org>
4460
4461 * sysdep.c (random): Revert the declaration.
4462
4463 2001-01-09 Gerd Moellmann <gerd@gnu.org>
4464
4465 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
4466 Call function string_bytes.
4467 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
4468
4469 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
4470 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
4471 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
4472 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
4473 the current sblock.
4474 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
4475 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
4476 after sweeping strings, and at the end.
4477 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
4478
4479 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
4480 ensure that pop_message is called.
4481
4482 * keyboard.c (Fexecute_extended_command): Use a
4483 record_unwind_protect to ensure that pop_message is called.
4484
4485 * lisp.h (push_message_unwind): Add prototype.
4486
4487 * xdisp.c (push_message_unwind): New function.
4488
4489 * fileio.c (do_auto_save_unwind): Do the pop_message here
4490 instead of in Fdo_auto_save.
4491 (Fdo_auto_save): Don't call pop_message.
4492
4493 2001-01-08 Ken Raeburn <raeburn@gnu.org>
4494
4495 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
4496 in inner block.
4497
4498 2001-01-08 Gerd Moellmann <gerd@gnu.org>
4499
4500 * window.c (window_scroll_pixel_based): Adjust glyph matrices
4501 when increasing window's vscroll.
4502
4503 * macros.c (Qkbd_macro_termination_hook): New variable.
4504 (syms_of_macros): Initialize and staticpro it.
4505 (pop_kbd_macro): Run kbd-macro-termination-hook.
4506
4507 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
4508
4509 2001-01-07 Dave Love <fx@gnu.org>
4510
4511 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
4512 arglist, for documentation's sake.
4513
4514 2001-01-06 Andrew Innes <andrewi@gnu.org>
4515
4516 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
4517 of *.pdb.
4518
4519 2001-01-05 Andrew Innes <andrewi@gnu.org>
4520
4521 * term.c (update_end): Don't check updating_frame; for some reason
4522 this can be 0 sometimes, such as after dismissing a popup menu,
4523 and isn't necessary given the explicit frame argument.
4524
4525 2001-01-05 Gerd Moellmann <gerd@gnu.org>
4526
4527 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
4528 on some systems, and an unsigned long on others, like FreeBSD 4.1.
4529
4530 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4531
4532 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
4533
4534 * xfns.c (x_create_tip_frame): Preserve the value of
4535 face_change_count around the creation of the tip frame.
4536
4537 * xfns.c (last_show_tip_args): New variable.
4538 (compute_tip_xy): New function.
4539 (Fx_show_tip): Reuse an existing tip frame, if possible.
4540 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
4541
4542 2001-01-04 Dave Love <fx@gnu.org>
4543
4544 * editfns.c (Fformat): Doc fix.
4545
4546 * systime.h (set_file_times): Prototype.
4547
4548 * widget.h (EmacsFrameSetCharSize_): Prototype.
4549
4550 * sysdep.c (random, srandom): Declare explicitly.
4551
4552 * dispextern.h (move_it_vertically_backward): Declare.
4553
4554 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4555
4556 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
4557 like in Fx_create_frame.
4558
4559 * xfaces.c (set_font_frame_param): Don't do anything for
4560 non-graphical frames.
4561
4562 * window.c (Fdelete_other_windows): Set window's window_end_valid
4563 to nil when changing the window's start. Don't change the
4564 window's start when its top position hasn't changed. If we do,
4565 this will set the window's optional_new_start, which act's like a
4566 force_start during redisplay with C-x 1 M-> under particular
4567 circumstances (see report from Per Starback to emacs-pretest-bug
4568 from 2000-12-13.).
4569
4570 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4571
4572 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
4573 short cut at the start of the function. Add an assertion.
4574 (reseat_at_next_visible_line_start): Add an assertion.
4575
4576 * window.c (Frecenter): When changing the window start, set the
4577 window's window_end_valid to nil.
4578 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
4579
4580 * dispextern.h (move_it_past_eol): Add prototype.
4581
4582 * xdisp.c (move_it_past_eol): New function.
4583
4584 * window.c (Fwindow_end): Doc fix.
4585
4586 2001-01-03 Dave Love <fx@gnu.org>
4587
4588 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
4589
4590 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4591
4592 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
4593 the enabled_p flag of the glyph row at window_end_vpos to 0.
4594 (handle_single_display_prop): Fix last change.
4595
4596 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4597
4598 * window.c (Frecenter): Doc fix.
4599
4600 2001-01-02 Andrew Innes <andrewi@gnu.org>
4601
4602 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
4603
4604 * frame.h (output_method): Add output_w32_console method.
4605 (FRAME_W32_CONSOLE_P): New macro.
4606
4607 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
4608 use output_w32_console method.
4609 (Qw32_console): New Lisp_Object.
4610 (Fframep): Return it.
4611 (syms_of_frame): Init it.
4612 (Fframe_parameters): Report w32console as font for w32_console frames.
4613
4614 * xfaces.c (realize_default_face): Set face foreground and
4615 background to unspecified for w32_console frames.
4616 (realize_face): Realize face cache for w32_console frames.
4617 (realize_tty_face): Accept w32_console frames.
4618
4619 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
4620 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
4621 necessary, even if running interactively.
4622
4623 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
4624 w32_console frames.
4625
4626 * w32term.c (x_update_begin):
4627 (x_update_end):
4628 (x_clear_frame):
4629 (x_ins_del_lines):
4630 (x_change_line_highlight):
4631 (x_delete_glyphs):
4632 (w32_ring_bell):
4633 (x_update_begin):
4634 (x_update_end):
4635 (w32_reassert_line_highlight):
4636 (w32_frame_rehighlight):
4637 (w32_frame_raise_lower): Do nothing if not w32 frame.
4638
4639 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
4640
4641 * w32fns.c (Fx_display_color_cells): Determine correct value, when
4642 system doesn't tell us directly.
4643 (Fx_display_visual_class): Implement properly.
4644
4645 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4646
4647 * window.c (Frecenter): Handle centering in graphical frames
4648 specially. Centering on the basis of line counts doesn't work
4649 reliably with variable-height lines.
4650
4651 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4652
4653 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
4654 and al[].
4655
4656 * composite.c (run_composition_function): Remove unused var `val'.
4657 (update_compositions): Remove unused variable `hook'.
4658
4659 * intervals.c (get_local_map): Remove unused variable `tem'.
4660
4661 * doprnt.c (doprnt1): Remove unused variable `size'.
4662
4663 * fns.c (Flength): Remove unused variable `tail'.
4664 (Fdelete): Remove unused variable `size'.
4665
4666 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
4667 and `gcpro2'.
4668
4669 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
4670
4671 * data.c (find_symbol_value): Remove extra 3rd argument in the
4672 call to swap_in_symval_forwarding.
4673
4674 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
4675
4676 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
4677 (trivial_regexp_p): Remove unused variable `c'.
4678 (boyer_moore): Remove unused variable `k'.
4679
4680 * indent.c (current_column): Remove unused variable `stopchar'.
4681 (Fcompute_motion): Remove unused variable `contin'.
4682
4683 * casefiddle.c (casify_object): Remove unused variable `tolen'.
4684
4685 * dired.c (directory_files_internal): Fix a typo in a comment.
4686 Remove an unused variable `handler'.
4687 (file_name_completion): Remove unused function-scope variable `dp'.
4688 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
4689 on BSD4_2.
4690
4691 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
4692
4693 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
4694 and `buf'.
4695 (Fmarker_insertion_type): Remove unused variable `buf'.
4696
4697 * insdel.c (make_gap): Remove unused variable `result'.
4698
4699 * keyboard.c (record_char): Remove unused function-scope var `help'.
4700 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
4701 (menu_bar_items): Remove unused function-scope variable `tem'.
4702
4703 * fontset.c (fontset_ref): Remove unused variable `i'.
4704 (fontset_set): Remove unused variables `j' and `tmp'.
4705 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
4706 (make_fontset_for_ascii_face): Remove unused variable `name'.
4707 (fs_load_font): Remove unused variable `font_idx'.
4708 (fs_query_fontset): Remove unused function-local variable `fontset'.
4709 (list_fontsets): Remove unused variable `tail'.
4710 (Fnew_fontset): Remove unused variables `family' and `registry'.
4711 (accumulate_font_info): Remove unused variable `tmp'.
4712 (Ffontset_font): Remove unused variable `id'.
4713 (syms_of_fontset): Remove unused variable `i'.
4714
4715 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
4716 to x_term_init.
4717 (lookup_image): Remove unused variable `file'.
4718 (xbm_load): Remove unused variables `bitmap_data', `height', and
4719 `width'. Remove function-local variable `i', leave the
4720 block-local one.
4721 (gif_load): Remove unused variable `inc'.
4722
4723 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
4724 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
4725 leave only the one in the inner block.
4726
4727 * xfaces.c (face_fontset, realize_default_face): Remove unused
4728 variable `fontset'.
4729 (face_at_buffer_position): Remove unused variable `multibyte_p'.
4730
4731 * term.c (encode_terminal_code): Remove unused variable `c'.
4732
4733 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
4734 char *' instead of `char *'.
4735
4736 * category.c (Fcategory_docstring): Remove unused variable `doc'.
4737 (Fget_unused_category): Remove unused variable `docstring_vector'.
4738 (Fchar_category_set): Remove unused variables `val', `charset',
4739 `c1' and `c2'.
4740
4741 * coding.c (detect_coding_iso2022, setup_coding_system):
4742 Remove unused variable `i'.
4743 (detect_coding_mask): Remove unused variable `idx'.
4744 (detect_coding): Remove unused variable `i'.
4745 (ccl_coding_driver): Remove unused variable `result'.
4746 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
4747 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
4748 (encode_coding_string): Remove unused variables `gcpro1' and
4749 `saved_coding_symbol'.
4750 (Ffind_coding_systems_region_internal): Remove function-local
4751 variable args[], leave only the block-local one.
4752 (code_convert_region1): Remove unused variable `len'.
4753
4754 * charset.c (char_printable_p): Remove unused variable `chars'.
4755 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
4756 (str_to_multibyte): Remove unused variable `c'.
4757
4758 * window.c (size_window): Remove block-local variable `min_size'.
4759
4760 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
4761 `header_line_height'.
4762 (append_space, extend_face_to_end_of_line): Declare `saved_what'
4763 enum display_element_type.
4764
4765 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4766
4767 * xterm.c (x_connection_closed): Catch X errors around all
4768 statements that call X. Save away the error message in a local copy.
4769
4770 * xterm.c (x_connection_closed): Set handling_signal to 0 at
4771 the start.
4772
4773 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
4774 in or at the start of invisible text.
4775
4776 * dispnew.c (update_window): Don't check_current_matrix_flags.
4777
4778 2001-01-01 Jason Rumney <jasonr@gnu.org>
4779
4780 * w32fns.c (x_figure_window_size): Do not allow new_height and
4781 new_width of frame to override specified values.
4782
4783 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4784
4785 * composite.c (find_composition): Fix a code for searching backward.
4786
4787 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4788
4789 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4790 (update_window) [GLYPH_DEBUG]: Call it.
4791 (scrolling_window): Prevent including current rows which are below
4792 what's displayed in the window.
4793
4794 * xdisp.c (try_window_reusing_current_matrix)
4795 <new start <= old start>: Disable rows in the current matrix
4796 which are below the window after scrolling.
4797
4798 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4799 is zero. It's not worth the complexity.
4800 (invisible_text_between_p): Put in #if 0 because unused.
4801
4802 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4803
4804 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4805 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4806
4807 * keyboard.c (echo_char): If C is an integer, always call
4808 push_key_description. Former code could signal an invalid
4809 character error.
4810
4811 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4812 If set, print multibyte text.
4813 (Fsingle_key_description): Call push_key_description with
4814 FORCE_MULTIBYTE set.
4815 (describe_buffer_bindings): Likewise.
4816
4817 * lisp.h (push_key_description): Add prototype.
4818
4819 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4820 around the call to redisplay_internal.
4821
4822 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4823
4824 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4825
4826 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4827
4828 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4829 (ccl_driver): New local variable `extra_bytes'.
4830
4831 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4832
4833 * coding.c (setup_coding_system):
4834 Initialize coding->spec.ccl.eight_bit_carryover.
4835 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4836
4837 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4838
4839 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4840 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4841 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4842 (decode_composition_emacs_mule): New function.
4843 (decode_coding_emacs_mule): Decode composition sequence by calling
4844 decode_composition_emacs_mule.
4845 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4846 (encode_coding_emacs_mule): Changed from macro to function.
4847 If a text contains compositions, encode them correctly.
4848 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4849 that decoding and encoding are required.
4850
4851 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4852
4853 * xfaces.c (PT_PER_INCH): New macro.
4854 (xlfd_point_size): Compute real point size from font's pixel size.
4855 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4856 instead of 72.
4857
4858 * .gdbinit: Comment out the line pointing to the Lesstif source
4859 directory.
4860
4861 * window.c (Frecenter): Use displayed_window_lines instead
4862 of window_internal_height.
4863
4864 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4865 instead of x-toolkit-scroll-bars-p.
4866 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4867
4868 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4869 instead of x-toolkit-scroll-bars-p.
4870 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4871
4872 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
4873 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
4874 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4875 New variables.
4876 (add_window_display_history, add_frame_display_history)
4877 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4878 (build_frame_matrix_from_leaf_window): Remove unused code.
4879 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4880 redisplay history.
4881 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4882 (update_window) [GLYPH_DEBUG]: Likewise.
4883 (syms_of_display): Defsubr dump-redisplay-history.
4884
4885 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4886
4887 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4888 the end of the prompt. Set echo_after_prompt to the offset
4889 of echoptr in echobuf.
4890
4891 * xdisp.c (init_from_display_pos): Pop until the iterator's
4892 stack is empty; there may be frames for stretch or images
4893 on the stack.
4894
4895 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4896 (save_or_restore_current_matrix): New function for the same
4897 purpose, but more efficient.
4898 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4899
4900 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4901
4902 * xdisp.c (syms_of_xdisp): Fix last change.
4903
4904 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4905
4906 * xdisp.c (syms_of_xdisp): Doc fix.
4907
4908 * xdisp.c (redisplay_window): Remove label restore_buffers;
4909 use finish_scroll_bars instead to make sure that scroll bars
4910 are redeemed. If we don't do this, flickering can result from
4911 scroll bars being destroyed and recreated.
4912
4913 2000-12-22 Jason Rumney <jasonr@gnu.org>
4914
4915 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4916 in the wrong colors when the foreground is not black.
4917 (expose_window): Don't redraw the window that's currently being
4918 updated.
4919
4920 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4921
4922 * window.c (size_window): When setting the window's too_small_ok
4923 flag, compare old size with minimum size depending on WIDTH_P,
4924 don't compare with window_min_width.
4925
4926 * window.c (delete_window): Simplify somewhat.
4927 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4928 freeing window matrices. The flag windows_or_buffers_changed is
4929 set, so the next redisplay will consider all windows; this should
4930 suffice.
4931
4932 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4933
4934 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4935
4936 * ccl.h (struct ccl_program): New member cr_consumed.
4937
4938 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4939 (CCL_READ_CHAR): Handle EOL conversion here.
4940 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4941
4942 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4943
4944 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4945
4946 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4947 otherwise tabs of different size compare equal.
4948
4949 * callint.c (Fcall_interactively): Prevent a compiler warning.
4950
4951 * print.c (print_unwind): Return nil.
4952 (PRINTDECLARE): Initialize all local variables.
4953 (print_preprocess): Add a default case.
4954
4955 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4956
4957 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4958
4959 * window.c (delete_window, Fsplit_window)
4960 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4961
4962 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4963
4964 * dispnew.c (ensure_frame_matrix): Removed.
4965 (save_frame_matrix, restore_frame_matrix): New functions.
4966 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4967
4968 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4969 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4970
4971 2000-12-21 Andrew Innes <andrewi@gnu.org>
4972
4973 * w32term.c (x_update_begin): Regenerate the palette here, rather
4974 than for each window.
4975
4976 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4977 palette is NULL, since this corrupts memory! Also get
4978 display_info reference from frame.
4979
4980 2000-12-21 Jason Rumney <jasonr@gnu.org>
4981
4982 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
4983
4984 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
4985 to avoid returning without releasing it.
4986
4987 2000-12-21 Kenichi Handa <handa@etl.go.jp>
4988
4989 * keymap.c (push_key_description): Don't convert eight-bit-control
4990 and eight-bit-graphic to multibyte character.
4991
4992 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
4993 generic character and CODE1 is nil, return the smallest character
4994 in CHARSET.
4995
4996 2000-12-20 Dave Love <fx@gnu.org>
4997
4998 * s/osf5-0.h (NSIG): Don't redefine.
4999
5000 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
5001
5002 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
5003 excluding menu-bar and tool-bar.
5004 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
5005 (menu_item_p): Remove.
5006 (where_is_internal_1): Don't ignore menu-items.
5007
5008 2000-12-20 Gerd Moellmann <gerd@gnu.org>
5009
5010 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
5011 into account.
5012
5013 * window.c (make_window): Initialize window's min_hscroll.
5014 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
5015 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
5016 to zero.
5017 (struct saved_window): New member min_hscroll.
5018 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
5019 (Fset_window_configuration): Set window's min_hscroll.
5020 (save_window_save): Save window's min_hscroll.
5021 (compare_window_configurations): Compare min_hscroll values.
5022
5023 * window.h (struct window): New member min_hscroll.
5024
5025 * keyboard.c (echo_prompt): Prevent a compiler warning.
5026
5027 * xdisp.c (try_cursor_movement): Fix last change. The real
5028 condition is that PT is at the end of the row, and should
5029 be displayed at the start of the next row.
5030
5031 * xdisp.c (try_cursor_movement): If we end on a partially
5032 visible line, end we already decided to scroll, return -1.
5033
5034 * dispextern.h (ensure_frame_matrix): Add prototype.
5035
5036 * window.c (delete_window, Fsplit_window)
5037 (Fset_window_configuration): Call ensure_frame_matrix.
5038
5039 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
5040 New functions.
5041 (adjust_frame_glyphs_for_frame_redisplay): If display has been
5042 completed, call fake_current_matrices instead of marking frame
5043 garbaged.
5044
5045 2000-12-20 Jason Rumney <jasonr@gnu.org>
5046
5047 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
5048
5049 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5050
5051 * fns.c (Frequire): Doc fix.
5052
5053 2000-12-19 Gerd Moellmann <gerd@gnu.org>
5054
5055 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
5056
5057 * dispnew.c (direct_output_for_insert): Fix check for mini-window
5058 currently displaying a message.
5059
5060 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
5061 xterm.h.
5062 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
5063
5064 2000-12-18 Andrew Innes <andrewi@gnu.org>
5065
5066 * w32.c (w32_strerror): New function.
5067
5068 * w32.h (w32_strerror): New extern.
5069
5070 * w32fns.c (Fw32_shell_execute): Use it.
5071
5072 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5073
5074 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
5075
5076 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5077
5078 * msdos.c (IT_set_face): Obey inverse_video.
5079
5080 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5081
5082 * dired.c (directory_files_internal): Always return decoded filenames.
5083
5084 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5085
5086 * xterm.c (x_connection_closed): Prevent being called recursively
5087 because of an error condition in XtCloseDisplay.
5088
5089 * xdisp.c (init_iterator): If noninteractive, and the frame's
5090 face cache is null, make one.
5091
5092 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
5093
5094 * process.c (wait_reading_process_input): Check for pending
5095 input when running timers.
5096
5097 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5098
5099 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
5100
5101 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5102
5103 * process.c (read_process_output): Don't run a filter if the code
5104 decoder produces nothing but carryover.
5105
5106 2000-12-17 Andrew Innes <andrewi@gnu.org>
5107
5108 * w32.c (sys_rename): Only check errno against EEXIST, and not
5109 EACCES, when determining whether rename failed because the target
5110 exists. This was resulting in indefinite looping on Windows 9x if
5111 the source file was locked by another process.
5112
5113 * w32fns.c (Ffile_system_info): New function.
5114 (syms_of_w32fns): Defsubr it.
5115
5116 2000-12-17 Gerd Moellmann <gerd@gnu.org>
5117
5118 * window.c (coordinates_in_window): Fix computation for
5119 position on vertical line between mode lines.
5120
5121 * xfns.c (unwind_create_frame): Return t if frame was deleted.
5122 Don't alter tip_frame or tip_window.
5123 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5124 was deleted.
5125
5126 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
5127 Don't alter tip_frame or tip_window.
5128 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5129 was deleted.
5130
5131 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5132
5133 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
5134 be consistent with the doc string. Reported by NAKAJIMA Mikio
5135 <minakaji@osaka.email.ne.jp>.
5136
5137 2000-12-16 Kenichi Handa <handa@etl.go.jp>
5138
5139 * xfaces.c (Vface_ignored_fonts): New variable.
5140 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
5141 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
5142
5143 2000-12-15 Gerd Moellmann <gerd@gnu.org>
5144
5145 * dispnew.c (update_window): Detect pending input every nth line
5146 updated, i.e. do it depending on real work done, and not on the
5147 vpos of the line.
5148
5149 * xterm.c (expose_window): Don't redraw the window that's
5150 currently being updated.
5151
5152 * window.c (Fset_window_point): Remove test for
5153 cursor_in_non_selected_windows.
5154
5155 * lread.c (read1): Recognize end of file after `\\'.
5156
5157 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
5158 not unwind_create_frame.
5159
5160 2000-12-15 Dave Love <fx@gnu.org>
5161
5162 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
5163 bcopy & al.
5164
5165 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
5166
5167 2000-12-15 Kenichi Handa <handa@etl.go.jp>
5168
5169 * coding.c (setup_coding_system): Clear all members of the struct
5170 coding_system at first.
5171 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
5172 argument.
5173 (code_convert_region): Don't override coding->src_multibyte and
5174 coding->dst_multibyte.
5175
5176 * fns.c (Fmd5): Docstring improved.
5177
5178 2000-12-15 Miles Bader <miles@gnu.org>
5179
5180 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
5181 are actually marked as mode-lines; otherwise use
5182 estimate_mode_line_height.
5183
5184 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5185
5186 * editfns.c (Fformat): Prevent a buffer overrun when the format
5187 specifies a precision.
5188
5189 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
5190
5191 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
5192 argument is outside the range [2..3].
5193
5194 2000-12-14 Andrew Innes <andrewi@gnu.org>
5195
5196 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
5197 nothing to do. Bind inhibit-quit.
5198 (tip_frame): Make it a Lisp_Object.
5199 (x_create_tip_frame): Set tip_frame after it has been added to
5200 Vframe_list.
5201 (Fx_show_tip): Don't set tip_frame here.
5202 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
5203 (unwind_create_frame, unwind_create_tip_frame): New functions.
5204 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5205 while a frame is only partially constructed.
5206
5207 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5208 (x_free_frame_resources): New function.
5209 (x_destroy_window): Use it.
5210
5211 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5212
5213 * xfns.c (Fx_backspace_delete_keys_p): New function.
5214 (syms_of_xfns): Defsubr it.
5215
5216 * config.in (HAVE_XKBGETKEYBOARD): Add.
5217
5218 2000-12-14 Kenichi Handa <handa@etl.go.jp>
5219
5220 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
5221 Always store string in multibyte representation in echobuf.
5222 (echo_char): Always store string in multibyte representation in
5223 echobuf.
5224 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
5225 (read_key_sequence): Adjusted for the change of echo_prompt.
5226
5227 * fns.c (Fmd5): Docstring improved.
5228
5229 * lisp.h (detect_coding_system): Prototype adjusted.
5230
5231 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
5232 (detect_coding_emacs_mule, detect_coding_iso2022,)
5233 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
5234 (detect_coding_utf_16, detect_coding_ccl): Make them static.
5235 New argument MULTIBYTEP. Callers changed.
5236 (detect_coding_mask, detect_coding_system): New argument
5237 MULTIBYTEP. Callers changed.
5238 (decode_coding_string): Set coding->src_multibyte and
5239 coding->dst_multibyte before calling detect_coding and detect_eol.
5240 Update them after some coding system is detected.
5241
5242 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
5243
5244 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
5245
5246 * keyboard.c (menu_bar_items, tool_bar_items):
5247 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
5248
5249 2000-12-13 Gerd Moellmann <gerd@gnu.org>
5250
5251 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
5252 New variables.
5253 (unwind_create_frame, unwind_create_tip_frame): New functions.
5254 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5255 while a frame is only partially constructed.
5256
5257 * xterm.h (x_free_frame_resources): Declare.
5258
5259 * xterm.c (x_free_frame_resources): New function.
5260 (x_destroy_window): Use it.
5261
5262 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
5263 don't interrupt the update for pending input initially, i.e.
5264 update at least some lines.
5265
5266 * keyboard.c (do_mouse_tracking): Make externally visible.
5267
5268 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
5269
5270 * xfns.c (gray_bitmap_bits): Declare `char *'.
5271
5272 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5273
5274 * xdisp.c (display_tool_bar_line): Make sure that tool bar
5275 lines start with a relief line.
5276
5277 2000-12-12 Dave Love <fx@gnu.org>
5278
5279 * window.c (Fdisplay_buffer): Doc fix.
5280 (Fwindow_list): Remove unused var.
5281
5282 * buffer.h (mmap_set_vars): Declare.
5283
5284 * window.h (Fset_window_point): Declare.
5285
5286 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
5287
5288 * msdos.c (fast_find_position): Don't overstep the last window row.
5289 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
5290 variable `area'. When looking for a row under (X,Y), give up if some
5291 of the previous rows is not enabled.
5292
5293 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5294
5295 * window.c (Fset_window_point): If displaying cursors in windows
5296 other than the selected window, make sure redisplay updates
5297 other windows to show the new value of point in the window.
5298
5299 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
5300
5301 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
5302 the buffer is the sole visible buffer when in the mini-buffer.
5303
5304 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
5305 Bind `inhibit-read-only' to t.
5306 (unwind_with_echo_area_buffer): Use AREF.
5307
5308 * xfns.c (Fx_hide_tip): Simplified.
5309
5310 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
5311 instead of `1'.
5312
5313 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
5314
5315 2000-12-11 Gerd Moellmann <gerd@gnu.org>
5316
5317 * xfns.c (Fx_hide_tip): Fix last change.
5318
5319 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
5320 nothing to do. Bind inhibit-quit.
5321 (tip_frame): Make it a Lisp_Object.
5322 (x_create_tip_frame): Set tip_frame after it has been added to
5323 Vframe_list.
5324 (Fx_show_tip): Don't set tip_frame here.
5325
5326 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5327
5328 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
5329 Lisp_Object.
5330
5331 * dispextern.h: Change external declaration of tip_frame.
5332
5333 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
5334 return an empty string.
5335
5336 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
5337 of the window's update_mode_line flag, since the former is set by
5338 force-mode-line-update, not the latter. This makes
5339 column-number-mode slightly faster.
5340
5341 * xdisp.c (try_window_id) <all changes above window start>:
5342 Set the cursor.
5343
5344 2000-12-11 Paul Eggert <eggert@twinsun.com>
5345
5346 * config.in (HAVE_FTELLO): Remove.
5347 (HAVE_FSEEKO): Add.
5348 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
5349 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
5350 HAVE_FTELLO.
5351 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
5352 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
5353
5354 2000-12-11 Miles Bader <miles@gnu.org>
5355
5356 * window.c (displayed_window_lines): Don't round up when
5357 converting empty space at bottom to lines.
5358 Handle non-newline-terminated final lines properly.
5359 (Fwindow_text_height): New function (used to be in lisp).
5360 (syms_of_window): Initialize it.
5361
5362 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
5363
5364 * syntax.c (scan_lists): Check that the right quote char has the
5365 right Sstring syntax when jumping over strings.
5366 (init_syntax_once): Use Smax rather than 13.
5367
5368 2000-12-09 Miles Bader <miles@gnu.org>
5369
5370 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
5371 with PARTIALLY, inverting the sense.
5372 (window_scroll_pixel_based): Scroll partially visible lines into
5373 place if we hit the beginning or end of the buffer.
5374 (displayed_window_lines): Don't include partially visible lines.
5375 (Fmove_to_window_line): Skip past any partially visible first line.
5376
5377 2000-12-08 Gerd Moellmann <gerd@gnu.org>
5378
5379 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
5380
5381 * tparam.c (tparam1): Change the way buffers are reallocated to be
5382 portable and less obfuscated.
5383
5384 * termcap.c (tgetent): Change the way buffers are reallocated to
5385 be portable and less obfuscated.
5386
5387 * macros.c (store_kbd_macro_char): Change the way buffers are
5388 reallocated to be portable and less obfuscated.
5389
5390 * lread.c (read1): Change the way buffers are reallocated to be
5391 portable and less obfuscated.
5392
5393 * doc.c (Fsubstitute_command_keys): Change the way buffers
5394 are reallocated so that it is portable.
5395
5396 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
5397
5398 * dosfns.c (Ffile_system_info): New function.
5399 (syms_of_dosfns): Defsubr it.
5400
5401 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
5402
5403 * alloc.c (gc_sweep): Add comment.
5404
5405 2000-12-07 Gerd Moellmann <gerd@gnu.org>
5406
5407 * sound.c (vox_configure): Change order of ioctls.
5408 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
5409 Ignore errors when changing volume.
5410 (vox_close): Don't reset the device.
5411
5412 * process.c (read_process_output): Make sure the process marker's
5413 position is valid when the process buffer is changed in
5414 after-change functions. W3 does that.
5415
5416 * xfns.c (x_free_gcs): New function.
5417
5418 * xterm.h (x_free_gcs): Add prototype.
5419
5420 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
5421 freeing GCs here.
5422
5423 * xterm.c (x_destroy_window): Call x_free_gcs so that
5424 resources of non-toolkit X windows will be freed.
5425
5426 2000-12-07 Andrew Innes <andrewi@gnu.org>
5427
5428 * w32fns.c (xlfd_charset_of_font): Fix last change.
5429
5430 2000-12-06 Dave Love <fx@gnu.org>
5431
5432 * md5.h (__P): Don't define -- it comes from config.h.
5433
5434 * strftime.c: Change some #if foo to #ifdef foo.
5435
5436 2000-12-06 Andrew Innes <andrewi@gnu.org>
5437
5438 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
5439
5440 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
5441 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
5442 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
5443
5444 2000-12-06 Gerd Moellmann <gerd@gnu.org>
5445
5446 * alloc.c (gc_sweep): Prevent symbols read during loadup
5447 from being freed.
5448
5449 * xdisp.c (underlying_face_id): New function.
5450 (handle_face_prop, face_before_or_after_it_pos): Use it
5451 to determine the face ``under'' a string. Let strings inherit
5452 the face of the buffer under them.
5453
5454 * xfaces.c (face_at_string_position): Update function comment.
5455
5456 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
5457 matrix if the window's left position has changed; we need to
5458 redraw it in this case.
5459
5460 * dispextern.h (struct glyph_matrix): Add member window_left_x.
5461
5462 * window.c (coordinates_in_window): Check mouse on mode-line or
5463 header-line first.
5464
5465 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
5466 advertized by the function documentation.
5467
5468 * window.c (syms_of_window): Doc fix.
5469
5470 * sound.c (vox_configure): Set volume for left and right channel.
5471 (sound_cleanup): Return nil.
5472
5473 * xdisp.c (move_it_by_lines): Fix paren typo.
5474
5475 * xterm.c (x_load_font): Don't use the font's max_bounds for
5476 computing the height of the font. If max_bounds' ascent or
5477 descent are greater than the font's ascent or descent, this means
5478 glyphs overlap, which should be handled now by redisplay.
5479
5480 * window.c (Veven_window_heights): New variable.
5481 (syms_of_window): DEFVAR_LISP it.
5482 (Fdisplay_buffer): Check Veven_window_heights before evening the
5483 window heights.
5484
5485 2000-12-06 Miles Bader <miles@gnu.org>
5486
5487 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
5488 update `default-frame-alist' instead of setting no frame parameters.
5489
5490 2000-12-06 Kenichi Handa <handa@etl.go.jp>
5491
5492 * composite.c (update_compositions): Fix typo (use the correct
5493 variable).
5494
5495 2000-12-05 Jason Rumney <jasonr@gnu.org>
5496
5497 * md5.h: Remove underscores from function declarations.
5498 (__attribute__, __alignof__) [!__GNUC__]: Define.
5499
5500 * md5.c: Delay include of md5.h until after namespace cleaning.
5501
5502 * makefile.w32-in (fns.o): Depend on md5.h
5503 (md5.o): New target.
5504 (sunfns.o): Remove.
5505
5506 * makefile.nt: Likewise.
5507
5508 2000-12-05 Jason Rumney <jasonr@altavista.net>
5509
5510 * w32term.c (expose_area): Complete last change.
5511
5512 2000-12-05 Ken Raeburn <raeburn@gnu.org>
5513
5514 * minibuf.c: Include intervals.h.
5515
5516 2000-12-05 Jason Rumney <jasonr@gnu.org>
5517
5518 * w32term.c (x_produce_glyphs): If a font for a component of
5519 a composition is not found, use 1 pixel dot ascent and 0 dot
5520 descent value to avoid displaying terribly tall empty boxes.
5521 (expose_area): Pass x-coordinate relative to the exposed
5522 area to x_draw_glyphs instead of a window-relative coordinate.
5523
5524 2000-12-05 Gerd Moellmann <gerd@gnu.org>
5525
5526 * xdisp.c (next_element_from_ellipsis): Save face before selective
5527 display in saved_face_id, and set face_before_selective_p.
5528 (reseat_1): Reset face_before_selective_p.
5529 (append_space, extend_face_to_end_of_line): If iterator's
5530 face_before_selective_p is set, use the face from saved_face_id.
5531 (extend_face_to_end_of_line): For tty frames, make sure to
5532 use the right face id when producing spaces at the end of
5533 the line.
5534
5535 * dispextern.h (struct it): Add face_before_selective_p.
5536
5537 * keyboard.c (record_char): Don't record identical help-echo
5538 events in recent_keys.
5539
5540 * xterm.c [USE_X_TOOLKIT]: Close the display.
5541 (xim_close_dpy): Handle case that the display has been closed.
5542
5543 * xterm.c (x_destroy_window): Reset the frame's X window after
5544 destroying it.
5545
5546 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
5547 variable window_width.
5548 (line_draw_cost): Fix code skipping over spaces at the end of the
5549 line when must_write_spaces is not set.
5550 (scrolling_window): Fix code inserting runs in list of all runs.
5551
5552 2000-12-05 Kenichi Handa <handa@etl.go.jp>
5553
5554 * coding.c (setup_coding_system): Be sure to initialize
5555 coding->category_idx.
5556
5557 2000-12-04 Gerd Moellmann <gerd@gnu.org>
5558
5559 * xterm.c (PER_CHAR_METRIC): Removed because not used.
5560
5561 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
5562 area to x_draw_glyphs instead of a window-relative coordinate.
5563
5564 * fileio.c (auto_save_error): Add parameter ERROR. Show the
5565 error in the message.
5566
5567 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
5568 timer after having read a key. It's not good for code reading
5569 several keys in a loop, like an input method.
5570
5571 * fileio.c (Finsert_file_contents): When VISIT is t, don't
5572 record undo information for format-decode.
5573
5574 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
5575 current buffer is read-only, not if it isn't.
5576
5577 * keyboard.c (record_char): Record `help-echo' input events
5578 in recent_keys only if they display some help. Don't record
5579 `help-echo' events as macro char.
5580
5581 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
5582
5583 * editfns.c (save_excursion_restore): Don't move point
5584 in another window if it is showing the wrong buffer.
5585 Avoid the call to Fwindow_live_p, for speed.
5586
5587 2000-12-04 Kenichi Handa <handa@etl.go.jp>
5588
5589 * xfaces.c (struct font_name): New member registry_priority.
5590 (split_font_name): Initialize the above member to zero.
5591 (concat_font_list): New function.
5592 (font_list): Include fonts of all alternative registries.
5593 (FONT_POINT_SIZE_QUANTUM): New macro.
5594 (better_font_p): Ignore point size difference less than
5595 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
5596
5597 * xterm.c (x_produce_glyphs): If a font for a component of
5598 a composition is not found, use 1 pixel dot ascent and 0 dot
5599 descent value to avoid displaying terribly tall empty boxes.
5600
5601 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
5602
5603 2000-12-03 Ken Raeburn <raeburn@gnu.org>
5604
5605 * coding.h (code_convert_string1): Declare.
5606
5607 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
5608
5609 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
5610
5611 2000-12-02 Jason Rumney <jasonr@gnu.org>
5612
5613 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
5614 correctly for single byte character case.
5615 (w32_per_char_metric): Do not try to make any assumptions about
5616 the metrics of BDF fonts.
5617 (x_estimate_mode_line_height): If `mode-line' face
5618 hasn't a font, use that of the frame, as drawing glyphs does.
5619 (note_mouse_highlight): Change the cursor shape on the vertical
5620 border between windows [not enabled].
5621
5622 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
5623
5624 * w32fns.c (Fx_create_frame): Reintroduce the call to
5625 face-set-after-frame-defaults.
5626 (Vx_window_horizontal_drag_shape): New variable.
5627 (syms_of_xfns): DEFVAR_LISP it.
5628 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
5629 enabled].
5630
5631 2000-12-02 Simon Josefsson <simon@josefsson.org>
5632
5633 * fns.c (Fmd5): Use a different logic to decide the coding system
5634 to use.
5635
5636 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
5637
5638 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
5639
5640 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
5641
5642 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5643
5644 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
5645 height for YNegative.
5646 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
5647 height; also see comment there.
5648
5649 * window.c (coordinates_in_window): Handle computations for
5650 positions on the vertical bar and fringes differently for
5651 window-system frames. Consider some pixels near the vertical bar
5652 as on the bar if the frame doesn't have vertical scroll bars.
5653 Associate positions between mode or header lines with the
5654 right window, the left one.
5655
5656 2000-12-01 Jason Rumney <jasonr@gnu.org>
5657
5658 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
5659
5660 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
5661 invalid frame.
5662
5663 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5664
5665 * window.c (struct saved_window): Add members orig_top and orig_height.
5666 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
5667 (save_window_save, Fset_window_configuration): Save/restore
5668 window's orig_top and orig_height.
5669
5670 2000-12-01 Jason Rumney <jasonr@gnu.org>
5671
5672 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
5673
5674 * w32fns.c (x_set_cursor_color): Fix last change.
5675
5676 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5677
5678 * xdisp.c (echo_area_display): If cursor is in the echo area, make
5679 sure that the next redisplay displays the minibuffer, so that
5680 the cursor will be replaced with what the minibuffer wants.
5681
5682 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
5683 #ifndef instead of using #if.
5684 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
5685 USE_TOOLKIT_SCROLL_BARS is defined.
5686
5687 2000-11-30 Jason Rumney <jasonr@gnu.org>
5688
5689 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
5690 x_display_cursor.
5691
5692 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5693
5694 * fns.c (Fmd5): Doc fix.
5695
5696 2000-11-30 Simon Josefsson <simon@josefsson.org>
5697
5698 * fns.c (Fmd5): New function.
5699 (syms_of_fns): Defsubr md5.
5700
5701 * Makefile.in (obj): Add md5.o
5702
5703 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5704
5705 * md5.h, md5.c: New files, taken from glibc.
5706
5707 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
5708
5709 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
5710 hasn't a font, use that of the frame, as drawing glyphs does.
5711
5712 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
5713
5714 * eval.c (Frun_hooks): Allow 0 arguments.
5715
5716 2000-11-29 Gerd Moellmann <gerd@gnu.org>
5717
5718 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
5719 is over the menu bar widget, say it's not on the frame.
5720
5721 * xfns.c (Fx_create_frame): Reintroduce the call to
5722 face-set-after-frame-defaults.
5723
5724 * eval.c (Fsignal): Reset handling_signal.
5725
5726 2000-11-28 Jason Rumney <jasonr@gnu.org>
5727
5728 * w32menu.c (add_menu_item): Reset menu item text when changing
5729 type to radio button.
5730
5731 2000-11-28 Gerd Moellmann <gerd@gnu.org>
5732
5733 * xselect.c: Update copyright.
5734
5735 * window.c (coordinates_in_window): If on a mode or header line,
5736 but sufficiently close to its start, return ``on vertical
5737 border''. This gives us a way to drag windows horizontally when
5738 using toolkit scroll bars.
5739
5740 * xterm.c (note_mouse_highlight): Change the cursor shape
5741 on the vertical border between windows.
5742
5743 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
5744
5745 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
5746 (syms_of_xfns): DEFVAR_LISP it.
5747 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
5748
5749 * textprop.c (text_read_only): New function.
5750 (verify_interval_modification): Use it instead of signaling
5751 `text-read-only'. This makes it easier to catch this error
5752 with a breakpoint.:
5753
5754 * xdisp.c (forward_to_next_line_start): Check for newlines,
5755 not end of line, which includes CR.
5756
5757 2000-11-28 Kenichi Handa <handa@etl.go.jp>
5758
5759 * coding.c (Ffind_coding_systems_region_internal): Be sure to
5760 include no-conversion.
5761
5762 2000-11-27 Jason Rumney <jasonr@gnu.org>
5763
5764 * w32fns.c (w32_load_system_font): Always mark font as double byte
5765 if codepage is unicode.
5766
5767 2000-11-27 Gerd Moellmann <gerd@gnu.org>
5768
5769 * xdisp.c (forward_to_next_line_start): If already on a newline,
5770 just consume it to avoid unintended skipping over invisible text below.
5771
5772 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
5773 `vertical-line', `mode-line' and `header-line' events.
5774
5775 * xdisp.c (try_window_id): Avoid starting to display in the middle
5776 of a character, a TAB for instance. This is easier than to set
5777 up the iterator exactly, and it's not a frequent case, so the
5778 additional effort wouldn't really pay off.
5779
5780 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5781
5782 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5783 init_window_once.
5784
5785 2000-11-25 Jason Rumney <jasonr@gnu.org>
5786
5787 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5788 Args to window_from_coordinates should be pixel coordinates.
5789
5790 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5791 redisplay handles them properly.
5792
5793 2000-11-25 Miles Bader <miles@gnu.org>
5794
5795 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5796
5797 2000-11-24 Jason Rumney <jasonr@gnu.org>
5798
5799 * w32.c (init_environment): Set LANG environment variable based on
5800 locale settings, if not set.
5801
5802 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5803 making tool bar smaller. When clearing the frame, also
5804 clear current matrices. Clear frame when tool bar disappears.
5805 Don't use more lines for the tool-bar than is available.
5806 (x_change_window_heights): New function.
5807
5808 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5809
5810 * xdisp.c (init_from_display_pos): If POS says we're already after
5811 an overlay string ending at POS, make sure to pop the iterator
5812 because it will be in front of that overlay string. When POS is
5813 ZV, we've thereby also ``processed'' overlay strings at ZV.
5814
5815 * xfaces.c (lface_from_face_name): Function comment fix.
5816
5817 2000-11-24 Miles Bader <miles@gnu.org>
5818
5819 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5820 apply `mode-line-inverse-video' -- zero means force display using
5821 the default face, non-zero means display using the specialized face.
5822 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5823
5824 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5825
5826 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5827 hard coded `4'.
5828
5829 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5830
5831 * coding.c (decode_coding_emacs_mule): Fix the case of
5832 CODING_EOL_LF, which used uninitialized value of c.
5833
5834 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5835
5836 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5837
5838 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5839
5840 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5841 buffer object.
5842
5843 * frame.h (struct frame): Replace desired_tool_bar_items,
5844 current_tool_bar_items, n_desired_tool_bar_items,
5845 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5846
5847 * frame.c (make_frame): Change initialization of tool bar
5848 items accordingly.
5849
5850 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5851 Change references to members deleted from struct frame to use the
5852 new ones.
5853
5854 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5855 references to members deleted from struct frame to use the new ones.
5856
5857 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5858
5859 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5860
5861 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
5862 (note_tool_bar_highlight): Change references to members deleted
5863 from struct frame to use the new ones.
5864
5865 2000-11-23 Miles Bader <miles@gnu.org>
5866
5867 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
5868 the face's inverse-video attribute, rather than overriding it.
5869
5870 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5871
5872 * xfns.c (x_set_tool_bar_lines): Clear internal border when
5873 making tool bar smaller.
5874
5875 2000-11-22 Dave Love <fx@gnu.org>
5876
5877 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5878
5879 2000-11-22 Miles Bader <miles@gnu.org>
5880
5881 * keyboard.c (Vminibuffer_message_timeout): New variable.
5882 (command_loop_1): Use it to determine message timeout.
5883 (syms_of_keyboard): Initialize it.
5884
5885 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5886
5887 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5888
5889 * sysdep.c: Move the code for declaring h_errno after #include
5890 <netdb.h>.
5891
5892 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5893
5894 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5895 the menu bar when the tooltip is unmapped.
5896
5897 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5898 sole visible buffer when we're currently in the mini-buffer, and
5899 give up if so.
5900
5901 2000-11-21 Jason Rumney <jasonr@gnu.org>
5902
5903 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5904 put on the clipboard.
5905 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5906 copy of what Emacs last put there. If they are the same, do not
5907 use the clipboard copy to avoid losing data due to coding conversions.
5908
5909 2000-11-22 Miles Bader <miles@gnu.org>
5910
5911 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5912 (syms_of_minibuf): Initialize it.
5913 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5914 to prompt, don't make read-only.
5915
5916 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5917
5918 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5919 Add BEFORE/AFTER_POTENTIAL_GC.
5920
5921 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5922
5923 * buffer.c (mmap_free_1): Avoid a compiler warning.
5924
5925 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5926
5927 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5928
5929 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5930 ... #endif scope.
5931
5932 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5933
5934 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5935 screen supports it.
5936
5937 * s/gnu-linux.h: Don't use `#cpu'.
5938
5939 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5940 not defined in mman.h.
5941
5942 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5943 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5944 and store an index in the XClientMessageEvent. Storing a
5945 Lisp_Object or pointer can fail on a 64 bit system, since X only
5946 transfers 32 bits.
5947 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5948
5949 2000-11-20 Dave Love <fx@gnu.org>
5950
5951 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5952
5953 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5954
5955 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5956
5957 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5958
5959 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5960 by WIDTH.
5961
5962 * alloc.c (make_string): Fix previous change. Be sure to make
5963 unibyte string correctly.
5964
5965 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5966
5967 * window.c (Fwindow_list): Change parameter list to be XEmacs
5968 compatible.
5969 (window_list_1): New function.
5970 (window_loop): Use it instead of Fwindow_list.
5971
5972 * sysdep.c (emacs_ospeed): New variable.
5973 (toplevel): Don't declare ospeed extern.
5974 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5975
5976 * termcap.c (ospeed): Remove.
5977 (tputs) [!emacs]: Remove unused code.
5978 (tgetent): Avoid a compiler warning.
5979
5980 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
5981 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
5982 SCROLL_BAR_X_WIDGET with additional argument DPY.
5983
5984 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
5985 removed.
5986 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
5987 Take the X display as additional argument.
5988 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
5989 `Widget' is a pointer type that's not easily stored in Lisp_Object
5990 form in a portable way.
5991
5992 * dispnew.c (update_text_area): Fix last change.
5993
5994 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5995
5996 * xdisp.c: Use BINDING_STACK_SIZE throughout.
5997
5998 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
5999 clear current matrices.
6000
6001 * buffer.c (mmap_enlarge): Don't print a message on stderr
6002 if mapping new memory at the end of the existing region fails.
6003
6004 * dispnew.c (update_text_area): Don't skip over equal glyphs
6005 when the last current glyph overlaps the glyph to its right.
6006
6007 2000-11-18 Miles Bader <miles@gnu.org>
6008
6009 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
6010 lines that *end* with "..." too (that's the most common case!).
6011
6012 2000-11-18 Gerd Moellmann <gerd@gnu.org>
6013
6014 * xdisp.c (resize_mini_window): Temporarily change to the
6015 mini-window's buffer if necessary.
6016
6017 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
6018 the tooltip obscures less text under it.
6019
6020 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6021
6022 * puresize.h (BASE_PURESIZE): Increase to 700000.
6023
6024 2000-11-18 Jason Rumney <jasonr@gnu.org>
6025
6026 * w32term.c (w32_draw_bitmap): Use face to set colors.
6027
6028 2000-11-17 Dave Love <fx@gnu.org>
6029
6030 * lread.c (Fload): Fix #ifdef for pcc.
6031
6032 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6033
6034 * xdisp.c (pos_visible_p): Compute the default character height
6035 differently.
6036
6037 2000-11-16 Gerd Moellmann <gerd@gnu.org>
6038
6039 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
6040 knowing the line's height; use the default font's height in that case.
6041
6042 * xfaces.c (weight_table): Add `demi' with the same meaning as
6043 `demibold'.
6044
6045 2000-11-16 Kenichi Handa <handa@etl.go.jp>
6046
6047 * dispnew.c (null_row): New global static variable.
6048 (clear_glyph_row): Delete local static variable null_row.
6049
6050 2000-11-15 Jason Rumney <jasonr@gnu.org>
6051
6052 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
6053 (w32_alloc_lighter_color): Use new brightness calculations from
6054 xterm.c. Scale delta to be in the range expected by W32.
6055 (w32_draw_relief_rect): Use frame relief colors.
6056
6057 2000-11-15 Gerd Moellmann <gerd@gnu.org>
6058
6059 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
6060 (Qinhibit_default_face_x_resources): New variable.
6061 (syms_of_frame): Initialize it.
6062 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
6063
6064 * xdisp.c (pos_visible_p): Improve function comment.
6065
6066 * lisp.h (BINDING_STACK_SIZE): New macro.
6067
6068 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
6069 reading the directory if readdir returns null and errno is EAGAIN
6070 or EINTR.
6071
6072 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
6073
6074 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
6075 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
6076 Set amount_to_scroll to max of dx and scroll_step so that
6077 scroll-conservatively doesn't defeat scroll-step>1.
6078 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
6079 scroll-conservatively for line-at-a-time scrolling.
6080
6081 2000-11-14 Gerd Moellmann <gerd@gnu.org>
6082
6083 * window.c (Fpos_visible_in_window_p): Call pos_visible with
6084 extra argument.
6085
6086 * xdisp.c (current_mode_line_height, current_header_line_height):
6087 New variables.
6088 (init_xdisp): Initialize them.
6089 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
6090 and use exact mode line heights if it is set.
6091
6092 * lisp.h (pos_visible_p): Change prototype.
6093
6094 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
6095 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
6096 and current_header_line_height first.
6097 (current_mode_line_height, current_header_line_height):
6098 Declare extern.
6099
6100 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
6101
6102 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
6103 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
6104 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
6105
6106 2000-11-14 Miles Bader <miles@gnu.org>
6107
6108 * xterm.c (x_alloc_lighter_color): Include an additive component
6109 too for dark colors, because FACTOR isn't enough.
6110 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
6111 New macros.
6112
6113 2000-11-13 Gerd Moellmann <gerd@gnu.org>
6114
6115 * keyboard.c (show_help_echo): Call message3_nolog with number of
6116 bytes in the help string as 2nd parameter, instead of the number
6117 of characters.
6118
6119 2000-11-13 Miles Bader <miles@gnu.org>
6120
6121 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
6122 (Fload): Use new openp return protocol.
6123 Don't try to use Vload_source_file_function to load .elc files.
6124 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
6125 openp return protocol.
6126 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
6127
6128 2000-11-11 Kenichi Handa <handa@etl.go.jp>
6129
6130 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
6131
6132 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
6133 Defined these macros.
6134 (NLIST_STRUCT): Avoid re-defining it.
6135
6136 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
6137 -I/usr/contrib/X11R6/include.
6138 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
6139
6140 2000-11-10 Jason Rumney <jasonr@gnu.org>
6141
6142 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
6143
6144 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
6145 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
6146
6147 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
6148 (Qw32_charset_vietnamese): New symbol.
6149 (xlfd_charset_of_font): New function.
6150 (w32_load_system_font): Use it.
6151 (x_to_w32_charset): Use Fassoc to find charset info. Special case
6152 when Vw32_charset_info_alist is nil to ensure default face always
6153 has font. Use Fcar and Fcdr for safety.
6154 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
6155 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
6156 pseudo-codepages for special cases.
6157 (w32_to_x_font): New parameter to allow charset portion to be
6158 specified where there is many to one mapping. Callers changed.
6159 (w32_list_fonts): Avoid listing fonts that won't display.
6160
6161 2000-11-10 Gerd Moellmann <gerd@gnu.org>
6162
6163 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
6164 (font_list_1): Renamed from font_list.
6165 (font_list): New function, trying alternative registries from
6166 Vface_alternative_font_registry_alist.
6167 (Finternal_set_alternative_font_registry_alist): New function.
6168 (syms_of_xfaces): Initialize and Staticpro
6169 Vface_alternative_font_registry_alist.
6170 Defsubr Finternal_set_alternative_font_registry_alist.
6171
6172 2000-11-09 Ken Raeburn <raeburn@gnu.org>
6173
6174 * lisp.h (Flooking_at): Declare.
6175
6176 2000-11-09 Gerd Moellmann <gerd@gnu.org>
6177
6178 * dired.c (directory_files_internal): Fix a braino.
6179
6180 * dired.c (directory_files_internal): Add missing GCPRO's.
6181 Some cleanup.
6182
6183 2000-11-08 Gerd Moellmann <gerd@gnu.org>
6184
6185 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
6186 (resize_mini_window): Return quickly if Vresize_mini_window is
6187 nil. Don't return if Vmax_mini_window_height is nil.
6188
6189 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
6190 (syms_of_xdisp): Initialize them.
6191 (resize_mini_window): Act according to the setting of
6192 Vresize_mini_window.
6193 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
6194
6195 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
6196 scroll bar widget after configuring it, so that it will appear at
6197 the right position from the start.
6198 (XTredeem_scroll_bar): Cleaned up.
6199
6200 2000-11-08 Kenichi Handa <handa@etl.go.jp>
6201
6202 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
6203 font is taller than the frame line, we don't have to bias the
6204 division by two.
6205
6206 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
6207
6208 2000-11-07 Dave Love <fx@gnu.org>
6209
6210 * config.in (HAVE_MKSTEMP): Add.
6211
6212 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
6213
6214 2000-11-07 Gerd Moellmann <gerd@gnu.org>
6215
6216 * window.c (Fset_window_configuration): Don't try to preserve
6217 point in the current buffer, if that buffer is displayed in more
6218 than one window.
6219
6220 * xfaces.c (lookup_named_face): If default face isn't realized,
6221 try to realize it. Return -1 if not successful.
6222 (Fx_list_fonts): Handle case that face cannot be determined.
6223 (Fface_font): Likewise.
6224
6225 2000-11-06 Gerd Moellmann <gerd@gnu.org>
6226
6227 * window.c (displayed_window_lines): Detect partially
6228 visible lines at the bottom correctly.
6229
6230 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
6231
6232 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
6233 when ensuring we don't do visit in indirect buffer.
6234
6235 2000-11-06 Kenichi Handa <handa@etl.go.jp>
6236
6237 * composite.h (compose_chars_in_text): Add prototype.
6238
6239 * composite.c (Vcomposition_function_table): New variable.
6240 (Qcomposition_function_table): New variable.
6241 (run_composition_function): Call
6242 Vcompose_chars_after_function with three arguments.
6243 (compose_chars_in_text): New function.
6244 (syms_of_composite): Modified the doc-string of
6245 Vcompose_chars_after_function. Declare composition-function-table
6246 as a lisp variable, and initialize it.
6247
6248 * xfns.c (x_encode_text): Suppress producing escape sequences for
6249 composition.
6250
6251 * xselect.c: Include composite.h.
6252 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
6253
6254 2000-11-05 Andrew Innes <andrewi@gnu.org>
6255
6256 * w32term.c (x_produce_glyphs): Fix typo in enum name.
6257
6258 * sysdep.c (read_input_waiting): Remove extraneous argument to
6259 read_socket_hook.
6260
6261 * w32fns.c (Fx_server_version): Include w32_build_number in the
6262 return list.
6263
6264 * w32heap.c (w32_build_number): New variable.
6265 (cache_system_info): Set it.
6266
6267 * w32heap.h (w32_build_number): Add extern.
6268
6269 * emacs.c (syms_of_emacs): Update docstring for
6270 system-configuration, to reflect the actual usage on MS-Windows.
6271
6272 2000-10-31 Gerd Moellmann <gerd@gnu.org>
6273
6274 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
6275 process idle timers while waiting for another event.
6276
6277 * dispnew.c (update_frame_line): Handle case where spaces in
6278 the default face are colored.
6279
6280 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
6281 window height hasn't changed.
6282
6283 2000-10-31 Jason Rumney <jasonr@gnu.org>
6284
6285 * w32term.c (x_produce_glyphs): Handle composite characters.
6286 (x_draw_glyph_string_foreground)
6287 (x_draw_composite_glyph_string_foreground): Restore old font.
6288
6289 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
6290
6291 * minibuf.c (read_minibuf): Reset the undo history just before
6292 starting the recursive-edit.
6293
6294 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6295
6296 * xfaces.c (menu_face_change_count): New variable.
6297 (Finternal_set_lisp_face_attribute): Increment it for changes
6298 of the `menu' face.
6299 (realize_basic_faces): Reflect changes in the `menu' faces
6300 in menu bars.
6301
6302 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
6303 dy obtained from the iterator's y-position after moving from
6304 scroll_margin_pos to PT; see comment there.
6305
6306 * xdisp.c (safe_eval_handler): Call add_to_log.
6307
6308 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
6309 is not a symbol or string.
6310
6311 * xdisp.c (echo_area_display): Don't perform a display update from
6312 inside redisplay. The update will happen anyway at the end of
6313 redisplay, and it can confuse redisplay (GC messages while
6314 redisplaying, for instance.)
6315
6316 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
6317
6318 * xrdb.c (x_load_resources): Use the class name in the defaults.
6319
6320 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
6321 (regex_compile): Catch bogus \(\1\).
6322
6323 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6324
6325 * xterm.c (x_alloc_nearest_color): Fix last change to compare
6326 RGB values.
6327
6328 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
6329 we have a color cache, check that the cached color equals the
6330 allocated color. If not, clear the color cache.
6331
6332 * window.c (displayed_window_lines): Change buffers if necessary.
6333 Fix computation of displayed lines.
6334
6335 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
6336 update_menu_bindings to DEFVAR_BOOL.
6337
6338 2000-10-30 Kenichi Handa <handa@etl.go.jp>
6339
6340 * search.c (Fset_match_data): Be sure to make search_regs always sane.
6341
6342 * puresize.h (BASE_PURESIZE): Increase to 680000.
6343
6344 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
6345
6346 2000-10-29 Jason Rumney <jasonr@gnu.org>
6347
6348 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
6349
6350 * w32term.c (w32_bdf_per_char_metric): Negate descent.
6351 (w32_cache_char_metrics): Handle possibility that 'x' does not
6352 exist in a BDF font.
6353 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
6354
6355 * w32bdf.h (bdffont): Add nchars.
6356
6357 * w32bdf.c (set_bdf_font_info): Set it.
6358 (w32_BDF_TextOut): Swap byte order of double byte characters.
6359 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
6360
6361 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
6362
6363 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
6364 don't override the colors in frame's param_alist, unless they are
6365 unspecified.
6366
6367 * term.c (reassert_line_highlight): If inverse_video is non-zero,
6368 reverse the effect of the highlight flag.
6369
6370 2000-10-27 Ken Raeburn <raeburn@gnu.org>
6371
6372 * window.h (Fwindow_live_p): Declare.
6373
6374 * undo.c (record_delete): Check that last_undo_buffer is really a
6375 buffer before applying XBUFFER to it.
6376
6377 * keymap.c (where_is_internal): Pass lisp object, not integer, to
6378 Faref.
6379
6380 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6381
6382 * lisp.h (KEYMAPP): New macro.
6383 (get_keymap): Remove.
6384 (get_keymap_1): Rename get_keymap.
6385
6386 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
6387
6388 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
6389
6390 * xmenu.c (single_submenu): Use KEYMAPP.
6391 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6392 Use KEYMAPP rather than Fkeymapp.
6393
6394 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
6395
6396 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
6397 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6398 Use KEYMAPP rather than Fkeymapp.
6399 (single_submenu): Use KEYMAPP.
6400 (w32_menu_show, w32_dialog_show): Use TRUE.
6401
6402 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
6403
6404 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
6405 (Fkeymapp): Use KEYMAPP.
6406 (get_keymap): Rename from get_keymap_1. Remove old def.
6407 Return t when autoload=0 and error=0 and the keymap needs autoloading.
6408 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
6409 (Fminor_mode_key_binding): Don't raise an error if the binding
6410 is not a keymap.
6411 (Fuse_global_map, Fuse_local_map): Allow autoloading.
6412 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
6413
6414 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
6415 Allow Vspecial_event_map to be autoloaded.
6416 (menu_bar_items): Fetch the keymap rather than using keymapp.
6417 (menu_bar_one_keymap): No need to follow func-indirect any more.
6418 (parse_menu_item): get_keymap_1 -> get_keymap.
6419 (tool_bar_items): Fetch the keymap rather than using keymapp.
6420 (read_key_sequence): Use KEYMAPP.
6421
6422 * intervals.c (get_local_map): Use get_keymap rather than following
6423 function-indirections explicitly.
6424
6425 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
6426
6427 2000-10-27 Jason Rumney <jasonr@gnu.org>
6428
6429 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
6430 point, as Windows has oversized fonts.
6431
6432 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
6433
6434 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6435
6436 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
6437 (freehook, reallochook): Handle null pointer arguments.
6438 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
6439
6440 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6441
6442 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
6443 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
6444 Giving in to popular pressure to shut up the compiler with casts.
6445
6446 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6447
6448 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
6449 signed value, and use a default value computed from the font's
6450 maximum descent.
6451
6452 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
6453
6454 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
6455 that specify a negative underline position can still use underlines.
6456
6457 * window.c (Fpos_visible_in_window_p): Make POS default to
6458 WINDOW's point, not the current buffer's point.
6459
6460 2000-10-26 Dave Love <fx@gnu.org>
6461
6462 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
6463 when it's necessary.
6464
6465 2000-10-26 Gerd Moellmann <gerd@gnu.org>
6466
6467 * window.c (size_window): Compute size difference from sum of old
6468 child window sizes instead of from parent's size.
6469
6470 * xdisp.c (pos_visible_p): Change current buffer if necessary.
6471 Handle obscured lines at the top of the window.
6472
6473 * frame.c (Fdelete_frame): Doc fix. Move running the hook
6474 down after the last error condition check.
6475
6476 * frame.c (Fdelete_frame): Run delete-frame-hook.
6477
6478 2000-10-26 Kenichi Handa <handa@etl.go.jp>
6479
6480 * coding.c (decode_coding): Fix previous change (check also
6481 CODING_MODE_LAST_BLOCK).
6482
6483 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6484
6485 * regex.c: More `unsigned char' -> `re_char' changes.
6486 Also change several `int' into `re_wchar_t'.
6487 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
6488 (PUSH_FAILURE_POINTER): Don't cast any more.
6489 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
6490 We want GCC to complain, since this piece of code makes
6491 re_match non-reentrant, which *should* be fixed.
6492 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
6493 (EXTEND_BUFFER): Use RETALLOC.
6494 (SET_LIST_BIT): Don't cast.
6495 (re_wchar_t): New type.
6496 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
6497 that those two functions will always properly return.
6498 (IMMEDIATE_QUIT_CHECK): Cast to void.
6499 (analyse_first): Use recursion rather than an explicit stack.
6500 (re_compile_fastmap): Can't fail anymore.
6501 (re_search_2): Don't check re_compile_fastmap for failure.
6502 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
6503 Now also sets the new value (passed in a new argument).
6504 (re_match_2_internal): Use it.
6505 Also, use a new var `reg' of type size_t when looping through regs
6506 rather than reuse the inappropriate `mcnt'.
6507
6508 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
6509 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
6510 (where_is_internal): Renamed from Fwhere_is_internal.
6511 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
6512 (Fwhere_is_internal): New function wrapping where_is_internal.
6513 (where_is_internal_1): Handle the case where we're filling the cache.
6514 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
6515
6516 2000-10-25 Miles Bader <miles@gnu.org>
6517
6518 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
6519
6520 2000-10-25 Gerd Moellmann <gerd@gnu.org>
6521
6522 * window.c (pos_fully_visible_p): Removed.
6523 (Fpos_visible_in_window_p): Use pos_visible_p to determine
6524 if position is visible and/or fully visible.
6525
6526 * lisp.h (pos_visible_p): Add prototype.
6527
6528 * xdisp.c (pos_visible_p): New function.
6529
6530 2000-10-25 Kenichi Handa <handa@etl.go.jp>
6531
6532 * process.c (send_process): If OBJECT is t, it means that the data
6533 is from C string, but we should encode it. Before calling
6534 setup_raw_text_coding_system, be sure to flush out data by the
6535 previous coding system.
6536
6537 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
6538
6539 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
6540 assignment of startpos to prev when startpos == pos.
6541
6542 * editfns.c (find_field): Set the field stickiness correctly from
6543 overlay fields. Use renamed `text_property_stickiness'.
6544 (text_property_stickiness): Renamed from `char_property_stickiness'.
6545 Only check text properties, not overlays.
6546 * textprop.c (get_char_property_and_overlay): New function.
6547 (Fget_char_property): Use it.
6548 * intervals.h (get_char_property_and_overlay): Add declaration.
6549
6550 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6551
6552 * keymap.c: Use AREF, ASET and ASIZE macros.
6553 (Fmake_sparse_keymap): Docstring fix.
6554 (synkey): Remove.
6555 (shadow_lookup): Move up.
6556 Handle the case where lookup-key returns an integer.
6557 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
6558 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
6559 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
6560 Simplify/rewrite the keymap-finding code.
6561 Add check for command shadowing, using shadow_lookup.
6562
6563 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
6564
6565 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
6566 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
6567 a symbol.
6568
6569 2000-10-24 Andrew Innes <andrewi@gnu.org>
6570
6571 * dired.c (directory_files_internal_unwind): New function.
6572 (directory_files_internal): Use it to ensure closedir is called
6573 even if expand-file-name or file-attributes throw, eg. because of
6574 a user interrupt. Also enable immediate_quit while calling
6575 re_search, so that matching can be interrupted as well.
6576
6577 2000-10-24 Andrew Innes <andrewi@gnu.org>
6578
6579 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
6580 NT-Emacs only.
6581 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
6582 so that re_search functions only quit when callers expect them to.
6583
6584 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6585
6586 * regex.c (regex_compile): Change the way of handling a range from
6587 a char less than 256 to a char not less than 256.
6588
6589 2000-10-24 Gerd Moellmann <gerd@gnu.org>
6590
6591 * window.c (size_window): Prevent setting window's width or
6592 height to a negative value (esp. with XSETFASTINT).
6593
6594 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
6595 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
6596 (protect_malloc_state) [GC_MALLOC_CHECK &&
6597 GC_PROTECT_MALLOC_STATE]: New function.
6598 (PROTECT_MALLOC_STATE): New macro.
6599 (__malloc_initialize, morecore, _malloc_internal)
6600 (_free_internal) _realloc_internal): Use it to make _heapinfo
6601 read-only outside of gmalloc.
6602
6603 * keymap.c: Update copyright.
6604
6605 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
6606 a symbol.
6607
6608 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
6609
6610 * filelock.c (unlock_all_files): Use unlock_file to expand each
6611 buffer's file_truename before trying remove its lock file.
6612
6613 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
6614
6615 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
6616 or CRLF, decode EOLs.
6617
6618 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6619
6620 * window.c (Fdisplay_buffer): Fix doc.
6621
6622 2000-10-23 Jason Rumney <jasonr@gnu.org>
6623
6624 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
6625 ASCII font of default fontset on Windows.
6626
6627 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
6628 xterm.c comment below).
6629
6630 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
6631
6632 2000-10-23 Gerd Moellmann <gerd@gnu.org>
6633
6634 * xterm.c (x_connection_closed): Reset handling_signal.
6635
6636 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
6637
6638 2000-10-23 Miles Bader <miles@gnu.org>
6639
6640 * window.c (window_scroll_pixel_based, window_scroll_line_based):
6641 Pass nil for FULLY argument to Fpos_visible_in_window_p to
6642 maintain old behavior.
6643 * minibuf.c (Fminibuffer_complete): Likewise.
6644
6645 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
6646
6647 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
6648 that when a font can't be exactly centered, it errs up rather than
6649 down.
6650
6651 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
6652
6653 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
6654
6655 2000-10-23 Andrew Choi <akochoi@i-cable.com>
6656
6657 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
6658
6659 * dispnew.c [macintosh]: Include macterm.h.
6660 (init_display) [macintosh]: Initialization for window system.
6661
6662 * emacs.c (main) [macintosh]: Call syms_of_textprop,
6663 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
6664 syms_of_search, x_term_init, and init_keyboard before calling
6665 init_window_once. Also, call syms_of_xmenu.
6666
6667 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
6668 default fontset to Monaco.
6669
6670 * frame.c [macintosh]: Include macterm.h. Remove declarations of
6671 NewMacWindow and DisposeMacWindow.
6672 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
6673 instead of calling NewMacWindow and setting fields of
6674 f->output_data.mac directly. Call init_frame_faces.
6675 (Fdelete_frame) [macintosh]: Remove unused code.
6676 (Fmodify_frame_parameters) [macintosh]: Call
6677 x_set_frame_parameters instead of mac_set_frame_parameters.
6678
6679 * frame.h [macintosh]: Define menu_bar_lines field in struct
6680 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
6681
6682 * keyboard.c [macintosh]: Include macterm.h.
6683 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
6684 and menu_bar_activate_event type events as for X and NT.
6685 (make_lispy_event) [macintosh]: Construct lisp events of type
6686 MENU_BAR_EVENT as for X and NT.
6687
6688 * sysdep.c [macintosh]: Remove declaration for sys_signal.
6689 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
6690 (sys_subshell) [macintosh]: Remove definition entirely.
6691 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
6692 Vwindow_system_version here. Remove initialization of
6693 Vx_bitmap_file_path.
6694 (read_input_waiting): Correct the number of parameters passed to
6695 read_socket_hook.
6696 Move all Macintosh functions to mac/mac.c.
6697
6698 * term.c [macintosh]: Include macterm.h.
6699
6700 * window.c [macintosh]: Include macterm.h.
6701
6702 * xdisp.c [macintosh]: Include macterm.h. Declare
6703 set_frame_menubar and pending_menu_activation.
6704 (echo_area_display) [macintosh]: Do not return if terminal frame
6705 is the selected frame.
6706 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
6707 Allow only the selected frame to set menu bar.
6708 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
6709 calling FRAME_EXTERNAL_MENU_BAR (f).
6710 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
6711
6712 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
6713 and check_x. Declare XCreateGC. Define x_create_gc and
6714 x_free_gc. Initialize font_sort_order.
6715 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
6716 but call x_list_fonts instead of w32_list_fonts.
6717 (Finternal_face_x_get_resource) [macintosh]: Do not call
6718 display_x_get_resource.
6719 (prepare_face_for_display) [macintosh]: Set xgcv.font.
6720 (realize_x_face) [macintosh]: Load the font if it is specified in
6721 ATTRS.
6722 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
6723
6724 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
6725
6726 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
6727 is nil: since we go to the end of submap anyway, we'd end up
6728 setting nil to nil.
6729 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
6730 doesn't obey autoload.
6731
6732 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6733
6734 * msdos.c (dos_set_window_size): Update screen dimension variables.
6735
6736 2000-10-21 Jason Rumney <jasonr@gnu.org>
6737
6738 * w32term.c (w32_cache_char_metrics): Double check that font is
6739 really fixed pitch before trusting tmPitchAndFamily.
6740
6741 2000-10-21 Andrew Innes <andrewi@gnu.org>
6742
6743 * w32gui.h (w32_char_font_type): Move enum from w32term.c
6744
6745 * w32term.h: Extern decl for w32_cache_char_metrics.
6746
6747 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
6748
6749 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
6750 (w32_unload_font): Free per_char array if present.
6751
6752 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
6753 cached information in emulated XFontStruct to handle common cases
6754 quickly. Do not allocate XCharStruct for return.
6755 (w32_native_per_char_metric): New function.
6756 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
6757 allocating one.
6758 (x_produce_glyphs): Don't get an HDC. Change calls to
6759 w32_per_char_metric to match arg change above. Remove calls to
6760 free results.
6761 (w32_get_glyph_overhangs): Ditto.
6762 (w32_cache_char_metrics): New function.
6763
6764 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
6765 ($(BLD)/casefiddle.$(O)): Remove compile command.
6766 ($(BLD)/gmalloc.$(O)): Remove compile command.
6767 ($(BLD)/dispnew.obj):
6768 ($(BLD)/keyboard.obj):
6769 ($(BLD)/w32inevt.obj):
6770 ($(BLD)/w32bdf.obj):
6771 ($(BLD)/alloc.obj):
6772 ($(BLD)/buffer.obj):
6773 ($(BLD)/editfns.obj):
6774 ($(BLD)/emacs.obj):
6775 ($(BLD)/fileio.obj):
6776 ($(BLD)/fns.obj):
6777 ($(BLD)/indent.obj):
6778 ($(BLD)/insdel.obj):
6779 ($(BLD)/intervals.obj):
6780 ($(BLD)/minibuf.obj):
6781 ($(BLD)/print.obj):
6782 ($(BLD)/scroll.obj):
6783 ($(BLD)/sysdep.obj):
6784 ($(BLD)/textprop.obj):
6785 ($(BLD)/widget.obj):
6786 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
6787 ($(BLD)/term.obj): Add dependency on dispextern.h.
6788
6789 * makefile.nt ($(BLD)\dispnew.obj):
6790 ($(BLD)\keyboard.obj):
6791 ($(BLD)\w32inevt.obj):
6792 ($(BLD)\w32bdf.obj):
6793 ($(BLD)\alloc.obj):
6794 ($(BLD)\buffer.obj):
6795 ($(BLD)\editfns.obj):
6796 ($(BLD)\emacs.obj):
6797 ($(BLD)\fileio.obj):
6798 ($(BLD)\fns.obj):
6799 ($(BLD)\indent.obj):
6800 ($(BLD)\insdel.obj):
6801 ($(BLD)\intervals.obj):
6802 ($(BLD)\minibuf.obj):
6803 ($(BLD)\print.obj):
6804 ($(BLD)\scroll.obj):
6805 ($(BLD)\sysdep.obj):
6806 ($(BLD)\textprop.obj):
6807 ($(BLD)\widget.obj):
6808 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6809 ($(BLD)\term.obj): Add dependency on dispextern.h
6810
6811 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6812
6813 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6814 with an additional argument of Qt.
6815
6816 2000-10-21 Miles Bader <miles@gnu.org>
6817
6818 * window.c (pos_fully_visible_in_window_p): New function.
6819 (Fpos_visible_in_window_p): Add FULLY argument.
6820 Use pos_fully_visible_in_window_p.
6821 (window_scroll_pixel_based, window_scroll_line_based): Update
6822 calls to Fpos_visible_in_window_p.
6823 * lisp.h (Fpos_visible_in_window_p): Update prototype
6824
6825 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6826
6827 * alloc.c (toplevel): Conditionalize compilation of mem_*
6828 functions differently.
6829
6830 2000-10-20 Jason Rumney <jasonr@gnu.org>
6831
6832 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6833 mem_init where it used to be. mem_z etc not defined otherwise.
6834
6835 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6836
6837 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6838 GC_MALLOC_CHECK.
6839 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6840 structure definition and related variabled to the top of the file.
6841 Include this code when GC_MALLOC_CHECK is defined.
6842 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6843 register/unregister allocated region.
6844 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6845 which isn't allocated.
6846 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6847 something which is already in use.
6848 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6849 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6850 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6851 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6852
6853 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6854 _malloc_internal instead of malloc.
6855 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6856 of free.
6857
6858 2000-10-20 Andrew Innes <andrewi@gnu.org>
6859
6860 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
6861 Windows.
6862 (my_strftime) <macro>: Don't use macro arg list when redefining as
6863 _strftime_copytm.
6864 (my_strftime) <function>: Supply 0 as ut argument.
6865
6866 2000-10-19 Jason Rumney <jasonr@altavista.net>
6867
6868 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
6869 including dispextern.h, as it stops faces from working.
6870
6871 * w32fns.c (Fx_create_frame): Don't bother calling
6872 face-set-after-frame-default since the caller does it for us
6873 anyway. Clean up calls to x_get_arg to be consistent with X.
6874
6875 * w32term.c (x_produce_glyphs): Handle
6876 unibyte_display_via_language_environment correctly.
6877 (w32_draw_box_rect): Fix the calculation of width and height.
6878
6879 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6880 as it has stopped working.
6881 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6882 menu-bar.
6883
6884 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6885
6886 * eval.c (skip_debugger): Prevent a compiler warning.
6887 (Fcondition_case): Likewise.
6888 (Fbacktrace_frame): Use a null interactive spec.
6889
6890 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6891
6892 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6893
6894 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6895
6896 * strftime.c: Sync with glibc, file version 1.78.
6897 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6898 should no longer be used according to ISO 8601.
6899
6900 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6901 no map for meta_prefix_char, don't try to use it as a keymap.
6902 Instead, if T_OK is non-zero, look up a default binding, if any,
6903 otherwise, if T_OK is zero, return nil.
6904
6905 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6906 (x_to_xcolors, png_load): Use x_query_color.
6907
6908 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6909 New functions.
6910 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6911 which can be slow.
6912 (x_copy_color, x_alloc_lighter_color): Likewise.
6913
6914 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6915 (x_query_color, x_query_colors): Add prototype.
6916
6917 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6918 check_string_bytes only if not noninteractive, increase count to 50.
6919
6920 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6921
6922 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6923 markers correctly.
6924
6925 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6926
6927 * alloc.c (pure_bytes_used): Renamed from pureptr.
6928 (ALIGN): New macro.
6929 (pure_alloc): New function.
6930 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6931 Use it.
6932 (Fpurecopy): Use PURE_POINTER_P.
6933
6934 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6935 PT has moved backward.
6936
6937 * xdisp.c (cursor_row_p): Take continued lines into account.
6938
6939 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6940 string's size_byte.
6941 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6942 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6943 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6944 string allocated.
6945
6946 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6947 of selective display off while searching for the next line start.
6948
6949 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6950
6951 * Makefile.in (term.o): Depend on dispextern.h.
6952
6953 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6954
6955 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6956
6957 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6958
6959 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6960 the iterator at the beginning, so that they can be set later on,
6961 for instance in reseat_at_next_visible_line_start, without being
6962 overwritten.
6963
6964 * xfns.c (pbm_format): Add :foreground and :background keywords.
6965 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6966 (xbm_load): Recognize foreground and background color specifications.
6967
6968 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6969
6970 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6971
6972 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6973
6974 * msdos.c (IT_set_face): Compare highlighted face with the default
6975 face, and invert colors if these faces' colors are identical.
6976 (Fmsdos_remember_default_colors): Don't swap foreground and
6977 background colors in initial_colors[].
6978 (IT_set_frame_parameters): Don't swap frame's foreground and
6979 background pixels. If ALIST includes "(reverse . t)", swap
6980 foreground-color and background-color properties in frame's
6981 param_alist. If the original frame's param_alist doesn't specify
6982 the colors, store unspecified-fg and unspecified-bg, reversed if
6983 required.
6984
6985 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
6986 the colors are unspecified and reversed, reverse fore- and back-
6987 ground in the returned value.
6988 (Fframe_parameter): Ditto.
6989
6990 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6991
6992 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
6993 get_last_unchanged_at_beg_row.
6994 (find_first_unchanged_at_end_row): Renamed from
6995 get_first_unchanged_at_end_row.
6996 (find_first_unchanged_at_end_row): Convert assertions to
6997 unconditional tests which abort. When looking for a row in
6998 unchanged text, don't go further back than first_text_row.
6999
7000 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
7001 Don't add in the last line's height when deciding if the new
7002 position is below the scroll margin.
7003
7004 2000-10-16 Miles Bader <miles@gnu.org>
7005
7006 * editfns.c (Fconstrain_to_field): Check carefully for field
7007 boundaries if either OLD_POS or NEW_POS has a non-nil field
7008 property, even if they're the same.
7009
7010 2000-10-16 Kenichi Handa <handa@etl.go.jp>
7011
7012 * xterm.c (x_draw_box_rect): Fix the calculation of width and
7013 height for XFillRectangle.
7014
7015 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
7016
7017 * syntax.c (Fstring_to_syntax): New function extracted from
7018 Fmodify_syntax_entry.
7019 (Fmodify_syntax_entry): Use it and document the ! and | fences.
7020 (skip_chars, Fforward_comment): Remove unused variables.
7021 (syms_of_syntax): Add defsubr for string-to-syntax.
7022 (describe_syntax): Add code for comment and string fences.
7023
7024 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
7025
7026 * keymap.c (access_keymap): Add AUTOLOAD parameter.
7027 Do the meta->esc mapping. Call get_keyelt before returning.
7028 Start scanning from the second element (the first is always `keymap')
7029 to make it easier to detect when we reach a parent map.
7030 Handle the case of inheriting from a symbol whose function is a map.
7031 (Fkeymap_parent): Also handle the `inherit from symbol' case.
7032 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
7033 (get_keyelt, Flookup_key): Update call to access_keymap.
7034 Remove the meta->esc mappings.
7035 (define_as_prefix): Delete old disabled code.
7036 (menu_item_p): New function.
7037 (where_is_internal_1): Skip over the few remaining menu items.
7038 * lisp.h (access_keymap): Update prototype.
7039 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
7040 Update call to access_keymap.
7041 (follow_key, read_key_sequence): Update calls to access_keymap.
7042 Remove the meta->esc mappings.
7043
7044 2000-10-13 Gerd Moellmann <gerd@gnu.org>
7045
7046 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
7047 with additional argument.
7048
7049 * xdisp.c (cursor_row_p): New function.
7050 (try_cursor_movement, display_line): Use it.
7051
7052 * xdisp.c (append_space): Also save/restore iterator's current
7053 character and its length.
7054
7055 * xdisp.c (init_from_display_pos): Add an assertion.
7056 (handle_stop): Don't set iterator's add_overlay_start.
7057 (handle_invisible_prop): Likewise.
7058 (load_overlay_strings): If text under an overlay is invisible,
7059 take both before- and after-strings into account when the iterator
7060 is positioned either at the start or at the end of the overlay.
7061 (forward_to_next_line_start): Rewritten.
7062 (reseat_at_next_visible_line_start): Rewritten.
7063 (set_iterator_to_next): Add parameter RESEAT_P.
7064
7065 * dispextern.h (struct it): Remove member add_overlay_start.
7066 (set_iterator_to_next): Change prototype.
7067
7068 2000-10-13 Kenichi Handa <handa@etl.go.jp>
7069
7070 * coding.c (code_convert_region): Be sure to initialize
7071 coding->category_idx.
7072 (decode_coding_string): Set coding->src_multibyte and
7073 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
7074 (encode_coding_string): Set coding->src_multibyte and
7075 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
7076
7077 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
7078
7079 * xfns.c (Fx_create_frame): Don't bother calling
7080 face-set-after-frame-default since the caller does it for us anyway.
7081
7082 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
7083
7084 * window.c (coordinates_in_window): Fix detection of vertical line
7085 on character terminals.
7086
7087 2000-10-12 Gerd Moellmann <gerd@gnu.org>
7088
7089 * editfns.c (save_excursion_save): Additionally record the
7090 selected window.
7091 (save_excursion_restore): If buffer was visible in a window, and a
7092 different window was selected, and the old selected window is
7093 still live, restore point in that window.
7094
7095 2000-10-12 Kenichi Handa <handa@etl.go.jp>
7096
7097 * xterm.c (x_produce_glyphs): Handle
7098 unibyte_display_via_language_environment correctly.
7099
7100 * regex.c (regex_compile): Change the way of handling a range from
7101 unibyte char to multibyte char.
7102
7103 * syntax.c (skip_chars): Change the way of handling a range from
7104 unibyte char to multibyte char.
7105
7106 * process.c (read_process_output): Cancel previous change.
7107
7108 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
7109
7110 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
7111
7112 * charset.c (Ffind_charset_string): Doc fix.
7113 (Ffind_charset_region): Doc fix.
7114
7115 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
7116
7117 * process.c (read_process_output): Fix previous change. Adjust
7118 multibyteness of text to insert in a buffer by
7119 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
7120
7121 2000-10-10 Andreas Schwab <schwab@suse.de>
7122
7123 * alloc.c (mark_object): Remove all workarounds installed on
7124 1993-08-08.
7125
7126 2000-10-10 Kenichi Handa <handa@etl.go.jp>
7127
7128 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
7129 (base64_encode_1): Make it work for a text of multibyte form.
7130 (Fbase64_decode_region): Allocate sufficient memory for multibyte
7131 case. Don't call str_to_multibyte because base64_decode_1
7132 produces correct multibyte form for eight-bit codes.
7133 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
7134 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
7135 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
7136 codes.
7137
7138 * charset.h (CHAR_STRING): Optimized for single byte characters.
7139
7140 2000-10-09 Andreas Schwab <schwab@suse.de>
7141
7142 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
7143 -1 after socket is closed, to fall through to error processing.
7144
7145 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
7146
7147 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
7148 variables. If ALIST includes foreground-color or
7149 background-color, change also the colors of the default face for
7150 this frame.
7151
7152 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
7153
7154 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
7155 them extern (they are defined on xfaces.c).
7156 (syms_of_msdos): Don't intern and don't staticpro
7157 Qbackground_color and Qforeground_color.
7158
7159 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
7160
7161 * frame.c (Fframe_parameter): For non-windowed frames, if
7162 f->param_alist says foreground or background color is unspecified,
7163 call tty_color_name to return the color name computed from the
7164 frame's current colors.
7165
7166 2000-10-06 Dave Love <fx@gnu.org>
7167
7168 * terminfo.c (ospeed): Don't declare.
7169
7170 * sysdep.c: Don't include string.h.
7171 (h_errno): Declare conditional also on TRY_AGAIN.
7172
7173 * charset.c (Ffind_charset_string): Doc fix.
7174
7175 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
7176 (Fbase64_decode_region, Fbase64_decode_string): More explicit
7177 error messages.
7178
7179 2000-10-05 Dave Love <fx@gnu.org>
7180
7181 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
7182 position like menu-bar.
7183
7184 2000-10-05 Gerd Moellmann <gerd@gnu.org>
7185
7186 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
7187
7188 * xdisp.c (handle_single_display_prop): Use safe_call1.
7189 (safe_call): Renamed from call_function.
7190 (safe_call1): New function.
7191 (handle_fontified_prop): Use safe_call1 instead of call1.
7192 (safe_eval): Renamed from eval_form.
7193 (safe_eval_handler): Renamed from eval_handler.
7194 (handle_single_display_prop, display_mode_element): Use safe_eval
7195 instead of eval_form.
7196
7197 * xfaces.c (merge_face_heights): Use safe_call instead of
7198 call_function.
7199
7200 * keyboard.c (show_help_echo): Use safe_call instead of
7201 call_function; use safe_eval instead of eval_form.
7202
7203 * lisp.h (safe_call): Renamed from call_function.
7204 (safe_eval): Renamed from eval_form.
7205 (safe_call1): Add prototype.
7206
7207 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
7208
7209 * xfns.c (image_ascent): Rearrange ascent calculation for the
7210 has-a-font case.
7211
7212 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
7213
7214 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
7215 (where_is_internal_1): Don't bother ignoring menu-items any more.
7216
7217 2000-10-04 Gerd Moellmann <gerd@gnu.org>
7218
7219 * keyboard.c (update_menu_bindings): New variable.
7220 (parse_menu_item): Use AREF. If update_menu_bindings
7221 is 0, don't update menu bindings.
7222 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
7223
7224 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
7225
7226 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
7227 to `mark_object'.
7228
7229 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
7230
7231 * syntax.c (forw_comment): Match nestedness of ender/starter.
7232 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
7233 (prev_char_comstart_first): Remove.
7234 (back_comment): Check two-char comment markers more carefully
7235 to better handle overlapping cases like *//* or /* */* */ ...
7236 Match nestedness of ender/starter.
7237
7238 2000-10-02 Dave Love <fx@gnu.org>
7239
7240 * config.in (HAVE_GAI_STRERROR): Add undef.
7241
7242 * process.c (Fopen_network_stream): Use it.
7243
7244 * m/alpha.h (NO_REMAP): Don't define.
7245
7246 2000-10-02 Gerd Moellmann <gerd@gnu.org>
7247
7248 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
7249 return with a string converted to an integer or vice versa when
7250 Vmocklisp_arguments is t.
7251 (Fsignal): Likewise. The function can return for `quit'.
7252 (struct gcpro): Declare member `var' to point to a volatile
7253 Lisp_Object.
7254
7255 * eval.c (error): Prevent compiler warning.
7256
7257 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
7258
7259 * keymap.c (keymap_memberp): New function.
7260 (Fset_keymap_parent): Use it.
7261 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
7262 Use keymap_memberp to avoid creating cycles.
7263 (access_keymap): Use KEYMAPP.
7264
7265 2000-09-30 Gerd Moellmann <gerd@gnu.org>
7266
7267 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
7268 gai_strerror. Make sure xerrno is set if connect fails. Improve
7269 error recovery.
7270
7271 2000-09-29 Jason Rumney <jasonr@gnu.org>
7272
7273 * w32term.c (w32_char_font_type, w32_encode_char)
7274 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
7275 (w32_bdf_per_char_metric): New function.
7276 (w32_per_char_metric): Use it.
7277 (x_draw_glyph_string_background): Always draw background for BDF
7278 glyphs.
7279
7280 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
7281 GDI object which is a scarce resource.
7282
7283 * w32bdf.c (search_file_line): Fix skipping of whitespace.
7284 (get_quoted_string): Fix limit on memchr search.
7285 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
7286 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
7287 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
7288 (get_cached_font_char, cache_char_offset): Use macro
7289 BDF_CODEPOINT_RANGE_COVER_P.
7290 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
7291 (clear_cached_bitmap_slots): New function.
7292 (GET_HEX_VALUE): G-Z, g-z are not hex.
7293 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
7294 (get_bitmap_with_cache): Use new cache implementation.
7295 (create_offscreen_bitmap): New function.
7296 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
7297
7298 * w32term.c (x_produce_glyphs): If the distance from the current
7299 position to the next tab stop is less than a canonical character
7300 width, use the tab stop after that.
7301 (x_draw_glyphs): Handle case START and END are out of bounds more
7302 carefully.
7303 (x_clear_mouse_face): Block/unblock input.
7304 (x_display_and_set_cursor): Don't show a hollow box cursor for
7305 buffers whose cursor_type is nil.
7306
7307 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7308
7309 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
7310
7311 * dispextern.h (updating_frame): Declare extern.
7312
7313 2000-09-29 Andreas Schwab <schwab@suse.de>
7314
7315 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
7316
7317 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7318
7319 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
7320 use its function definition.
7321 (tool_bar_items): Likewise.
7322
7323 * lisp.h (fatal): Declare NO_RETURN.
7324
7325 2000-09-29 Kenichi Handa <handa@etl.go.jp>
7326
7327 * keymap.c: Remove the line "#undef NULL".
7328
7329 2000-09-28 Gerd Moellmann <gerd@gnu.org>
7330
7331 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
7332
7333 2000-09-28 Dave Love <fx@gnu.org>
7334
7335 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
7336
7337 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
7338
7339 * .gdbinit (xreload): Note its need on GNU/Linux.
7340
7341 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
7342 r_alloc, r_alloc_free.
7343
7344 2000-09-28 Kenichi Handa <handa@etl.go.jp>
7345
7346 * syntax.c (skip_chars): Handle negation correctly.
7347
7348 2000-09-27 Gerd Moellmann <gerd@gnu.org>
7349
7350 * xfaces.c (realize_default_face): Call set_lface_from_font_name
7351 with non-zero FORCE_P argument.
7352
7353 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
7354 Add assertions.
7355
7356 * xdisp.c (window_box_height): Add an assertion.
7357
7358 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
7359 tool-bar than is available.
7360 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
7361
7362 2000-09-27 Dave Love <fx@gnu.org>
7363
7364 * s/irix6-5.h: Now works 64-bit. Tidied.
7365
7366 2000-09-26 Gerd Moellmann <gerd@gnu.org>
7367
7368 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
7369 instead of BITS_PER_INT.
7370 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
7371 EMACS_UINT, respectively.
7372 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
7373
7374 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
7375
7376 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
7377
7378 * window.c (freeze_window_starts): Construct last argument for
7379 foreach_window differently.
7380
7381 * xfns.c (x_decode_color): Don't return a Lisp_Object.
7382
7383 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
7384 EMACS_UINT instead of `int' and `unsigned int'.
7385 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
7386
7387 * frame.h (struct frame): Make the `nothing' member of union
7388 output_data an EMACS_INT.
7389
7390 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
7391 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
7392 size in the sdata structure.
7393 (SDATA_NBYTES, SDATA_DATA): New macros.
7394 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
7395 differently for the different layout of the sdata structure.
7396 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
7397 in sdata.
7398 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
7399 Check that size recorded in the string size and size recorded in
7400 the sdata structure agree.
7401
7402 2000-09-25 Dave Love <fx@gnu.org>
7403
7404 * buffer.c: Include stdio.h.
7405
7406 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
7407
7408 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
7409
7410 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
7411 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
7412 (__malloc_extra_blocks): Declare as __malloc_size_t.
7413
7414 2000-09-25 Gerd Moellmann <gerd@gnu.org>
7415
7416 * alloc.c (mark_image): Use GC_NILP instead of NILP.
7417
7418 * keyboard.c (show_help_echo): Set help_echo_showing_p.
7419 (read_char): If help-echo is showing, preserve the echo area
7420 when redisplaying.
7421
7422 * xdisp.c (help_echo_showing_p): New variable.
7423 (set_message): Reset it to 0.
7424 (init_xdisp): Initialize help_echo_showing_p.
7425
7426 * dispextern.h (help_echo_showing_p): Declare extern.
7427
7428 * config.in: Fix typo in __GNUC_MINOR__.
7429
7430 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
7431
7432 * s/freebsd.h (POSIX_SIGNALS): Define.
7433
7434 * xterm.c (x_clear_mouse_face): Block/unblock input.
7435
7436 2000-09-24 Dave Love <fx@gnu.org>
7437
7438 * fns.c (base64_encode_1): Fix last change.
7439
7440 2000-09-22 Gerd Moellmann <gerd@gnu.org>
7441
7442 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
7443
7444 * xdisp.c (try_window_reusing_current_matrix): More fixes
7445 for the case window has a header-line.
7446
7447 2000-09-22 Dave Love <fx@gnu.org>
7448
7449 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
7450 a doc string.
7451
7452 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
7453
7454 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
7455
7456 2000-09-21 Gerd Moellmann <gerd@gnu.org>
7457
7458 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
7459 for GCC >= 2.5.
7460
7461 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
7462 Declare NO_RETURN.
7463
7464 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
7465 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
7466 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
7467 warnings.
7468
7469 * marker.c (byte_char_debug_check): Return void.
7470
7471 * xfns.c (Fx_create_frame): Set default frame parameter value
7472 for tool-bar-lines to 1.
7473
7474 * dispnew.c (scrolling_window): Compare y-positions of rows
7475 equal at the start. Some simplification.
7476
7477 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
7478 reused rows' y-position in the case window has a header-line, and
7479 new window start is greater than old window start.
7480
7481 * process.c (process_sent_to): New variable.
7482 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
7483 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
7484 Declare more parameters volatile.
7485
7486 * lread.c (Vrecursive_load_depth_limit): New variable.
7487 (Fload): Check recursive loads whose recursion depth exceeds
7488 Vrecursive_load_depth_limit.
7489 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
7490
7491 2000-09-20 Gerd Moellmann <gerd@gnu.org>
7492
7493 * fileio.c (Fread_file_name): Doc fix.
7494
7495 * editfns.c (Fmessage_or_box): Doc fix.
7496
7497 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
7498
7499 * xfns.c (xbm_scan): Allow C-style comments.
7500
7501 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
7502 symbols are specified, add color translations to the cache.
7503 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
7504 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
7505 xpm_cache_color.
7506 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
7507 structures to xpm_init_color_cache.
7508
7509 2000-09-19 Gerd Moellmann <gerd@gnu.org>
7510
7511 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
7512
7513 2000-09-19 Andrew Innes <andrewi@gnu.org>
7514
7515 * makefile.nt (bootstrap-emacs): Don't change directory.
7516
7517 2000-09-19 Kenichi Handa <handa@etl.go.jp>
7518
7519 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
7520
7521 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
7522 If output buffer is too small, signal an appropriated error.
7523
7524 2000-09-18 Dave Love <fx@gnu.org>
7525
7526 * keyboard.c (menu_bar_items, tool_bar_items)
7527 (current_active_maps): Remove redundant get_local_map call.
7528
7529 2000-09-18 Gerd Moellmann <gerd@gnu.org>
7530
7531 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
7532 cursor for buffers whose cursor_type is nil.
7533
7534 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
7535 a feature to implement that is already implemented.
7536 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
7537 warnings.
7538
7539 * xfns.c (x_clear_image_1): New function.
7540 (x_clear_image): Use it.
7541 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
7542
7543 * dispnew.c (update_window): Move test for invisible lines
7544 at the top to update_window_line.
7545 (update_window_line): Handle invisible lines here.
7546
7547 * xfns.c (clear_image_cache): Clear current matrices of all
7548 frames sharing an image cache. Block input while freeing
7549 images. Fix timestamp comparison.
7550 (x_clear_image): Also free the mask.
7551
7552 * xfns.c (lookup_image): Block input while loading the image so
7553 that we won't get interrupted in a state where the image isn't yet
7554 set up completely.
7555 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
7556 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
7557 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
7558 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
7559
7560 2000-09-16 Gerd Moellmann <gerd@gnu.org>
7561
7562 * dispnew.c (update_window): Make sure to make desired rows
7563 current even if they are completely invisible at the top
7564 of a window.
7565
7566 2000-09-15 Gerd Moellmann <gerd@gnu.org>
7567
7568 * xfns.c (lookup_image): Build mask before applying an algorithm.
7569 Recognize algorithm `disabled'.
7570 (cross_disabled_images): New variable.
7571 (COLOR_INTENSITY): New macro.
7572 (x_detect_edges): Use COLOR_INTENSITY.
7573 (x_disable_image): New function.
7574 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
7575
7576 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
7577 disabled state, don't apply an image transformation algorithm if
7578 the user specified an image for the disabled state. Use
7579 `:algorithm disabled' for creating a disabled item's image if the
7580 user hasn't specified an image.
7581
7582 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
7583 allocation functions with the XPM lib.
7584 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
7585 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
7586 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
7587 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
7588 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
7589 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
7590 functions, if possible, because these handle color allocation
7591 failure more gracefully.
7592 (Fimage_mask_p): New function.
7593
7594 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
7595 (Qedge_detection, Qheuristic): New symbols.
7596 (syms_of_xfns): Initialize new symbols.
7597 (lookup_image): Handle `:mask X', `:algorithm emboss', and
7598 `algorithm (edge-detection ...)'.
7599 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
7600 (tiff_format, gif_format, gs_format): Add `:mask'.
7601 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
7602 (GIF_MASK, GS_MASK): New enumerators.
7603 (x_laplace_read_row, x_laplace_write_row): Functions removed.
7604 (emboss_matrix, laplace_matrix): New variables.
7605 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
7606 (x_edge_detection): New functions.
7607 (x_laplace): Rewritten in terms of x_detect_edges.
7608 (x_build_heuristic_mask): If image has a mask, free it.
7609
7610 2000-09-14 Andrew Innes <andrewi@gnu.org>
7611
7612 * makefile.w32-in: Revert to Unix line endings.
7613
7614 2000-09-14 Andrew Innes <andrewi@gnu.org>
7615
7616 * makefile.w32-in: Standardize indentation somewhat.
7617 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
7618 cater for differences between shells.
7619
7620 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
7621
7622 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7623
7624 * xterm.c (x_produce_glyphs): If the distance from the current
7625 position to the next tab stop is less than a canonical character
7626 width, use the tab stop after that.
7627
7628 2000-09-14 Dave Love <fx@gnu.org>
7629
7630 * buffer.c (alloc_buffer_text): Fix xmalloc call.
7631
7632 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7633
7634 * xdisp.c (handle_fontified_prop): While running fontification
7635 functions, bind `fontification-functions' and
7636 `after-change-functions' to nil.
7637
7638 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
7639 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
7640
7641 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
7642
7643 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
7644 USE_MMAP_FOR_BUFFERS.
7645
7646 * insdel.c (make_gap): Use enlarge_buffer_text.
7647
7648 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
7649 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
7650 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
7651 from former r_alloc_* functions in ralloc.c.
7652 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
7653 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
7654 (mmap_init) [REL_ALLOC_MMAP]: New function.
7655 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
7656 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
7657 BUFFER_FREE.
7658
7659 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
7660 (enlarge_buffer_text): Add prototype.
7661
7662 * ralloc.c: Remove everything having to do with the use of mmap.
7663
7664 2000-09-13 Gerd Moellmann <gerd@gnu.org>
7665
7666 * sound.c (Fplay_sound): Doc fix.
7667
7668 * keyboard.c: Avoid some more compiler warnings.
7669 (parse_tool_bar_item): Ignore cached key bindings.
7670
7671 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
7672 and allocation of Lisp data.
7673
7674 2000-09-12 Gerd Moellmann <gerd@gnu.org>
7675
7676 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
7677 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
7678 defaults first.
7679
7680 * lread.c (Fload): Put code checking for recursive loads in #if 0.
7681
7682 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
7683
7684 * ccl.c: Comment fixed.
7685 (MAX_MAP_SET_LEVEL): Increased to 30.
7686 (PUSH_MAPPING_STACK): Enclose with do-while block.
7687 (POP_MAPPING_STACK): Likewise.
7688 (stack_idx_of_map_multiple): New variable.
7689 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
7690 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
7691 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
7692 (ccl_driver) <CCL_MapSingle>: Likewise.
7693 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
7694 with the case where looking up process reaches to the end of
7695 map-set, and call CCL programs as the above change.
7696
7697 2000-09-11 Gerd Moellmann <gerd@gnu.org>
7698
7699 * xfns.c (png_load, jpeg_load): Declare some variables volatile
7700 that might be clobbered by longjmp.
7701 (check_x_display_info, x_decode_color, create_frame_xic)
7702 (Fx_display_backing_store, Fx_display_visual_class)
7703 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
7704
7705 * lread.c (init_lread): Set Vloads_in_progress to nil.
7706 (Fload): Show list of recursively loaded files, when signaling an
7707 error.
7708
7709 * lread.c (Vloads_in_progress): New variable.
7710 (record_load_unwind): New function.
7711 (Fload): Check for recursive loads.
7712 (syms_of_lread): Initialize Vloads_in_progress.
7713 (read_integer, read1): Avoid some compiler warnings.
7714
7715 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
7716 compiler warnings.
7717
7718 2000-09-11 Miles Bader <miles@gnu.org>
7719
7720 * editfns.c (Fbuffer_string): Doc fix.
7721
7722 2000-09-10 Gerd Moellmann <gerd@gnu.org>
7723
7724 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
7725
7726 2000-09-09 Ken Raeburn <raeburn@gnu.org>
7727
7728 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
7729 whether to include other header files.
7730
7731 2000-09-09 Gerd Moellmann <gerd@gnu.org>
7732
7733 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
7734 by Fmemq as a boolean.
7735
7736 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
7737
7738 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
7739
7740 2000-09-08 Gerd Moellmann <gerd@gnu.org>
7741
7742 * ralloc.c (mmap_fd): Remove initializer which can make it
7743 read-only in a dumped Emacs.
7744 (mmap_fd_1): New variable.
7745 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
7746 restore it from there.
7747 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
7748 unconditionally so that mmap_fd can be initialized there.
7749 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
7750 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
7751 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
7752
7753 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
7754
7755 * xdisp.c (dump_glyph_row): Fix printf format string.
7756 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
7757
7758 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
7759
7760 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
7761 inheritance.
7762
7763 * xdisp.c (try_window_id): When trying to locate cursor in
7764 unchanged rows at the top, handle the case that we can't find it.
7765
7766 * xterm.c (x_draw_glyphs): Handle case START and END are out
7767 of bounds more carefully.
7768
7769 2000-09-08 Dave Love <fx@gnu.org>
7770
7771 * s/sol2.h (REL_ALLOC_MMAP): Define.
7772 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
7773
7774 * ralloc.c: Don't include string.h (redundant).
7775 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
7776 [!MAP_ANON]: Include fcntl.h.
7777 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7778 (r_alloc, r_re_alloc, r_alloc_free)
7779 (mmap_enlarge, mmap_set_vars): Use it.
7780 (r_alloc_init_fd): New function.
7781 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7782 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7783 malloc type.
7784
7785 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7786 Remove vm-limit.o.
7787
7788 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7789 change to __NetBSD__.
7790
7791 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7792
7793 * search.c (compile_pattern): Check the multibyteness of cached
7794 string and PATTERN.
7795
7796 2000-09-08 Miles Bader <miles@gnu.org>
7797
7798 * xfaces.c (default_face_vector): Function removed.
7799 (Finternal_merge_in_global_face): Restore old global/local
7800 attribute override order. Use inline loop instead of calling
7801 default_face_vector.
7802
7803 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7804
7805 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7806 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7807 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7808 where necessary, in case POINTER_TYPE is `void'.
7809
7810 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7811
7812 * frame.c (make_terminal_frame): Initialize frame foreground and
7813 background colors to unspecified, for the initial instance of an
7814 MSDOS frame.
7815
7816 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7817
7818 * ralloc.c (mmap_find): Fix overlap computation.
7819 (mmap_enlarge): Compute nbytes before trying to find an
7820 overlapping region.
7821
7822 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7823 instead of `!='.
7824
7825 * lread.c (syms_of_lread): Change value of regexp
7826 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7827
7828 * xmenu.c (xdialog_show): When looking up the selection in
7829 menu_items, take `quote' boundaries into account; this corresponds
7830 to a nil ITEM in x-popup-dialog.
7831
7832 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7833
7834 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7835 not 0x81.
7836 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7837
7838 * coding.c (encode_coding_sjis_big5): Use translation table for
7839 encoding, not decoding. Fix the handling of latin-jisx0201.
7840 Check for the charset katakana-jisx0201 too.
7841 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7842 (detect_coding_sjis): Check the byte sequence more rigidly.
7843
7844 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7845
7846 * xfaces.c (Vparam_value_alist): New variable.
7847 (syms_of_xfaces): Initialize it.
7848 (Finternal_set_lisp_face_attribute): Avoid more consing.
7849
7850 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7851 specially.
7852 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7853 (Qbackground_mode): New variable.
7854 (syms_of_frame_1): Initialize Qbackground_mode.
7855
7856 * lisp.h (Qdisplay): Declare extern.
7857
7858 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7859 change face on all frames, and change the default for new frames.
7860
7861 2000-09-07 Dave Love <fx@gnu.org>
7862
7863 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
7864
7865 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7866
7867 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
7868
7869 * charset.c: Include composite.h
7870 (lisp_string_width): New function.
7871 (Fstring_width): Call lisp_string_width instead of strwidth.
7872
7873 * Makefile.in (charset.o): Depends on composite.h.
7874
7875 * process.c (read_process_output): Before inserting the decoded
7876 text in the buffer, adjust the multibyteness.
7877
7878 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7879
7880 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7881 buffer's text buffer is null, map new memory.
7882
7883 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7884 POINTER_TYPE and size_t.
7885 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7886 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7887 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7888 [REL_ALLOC_MMAP]: New macros.
7889 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7890 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7891 [REL_ALLOC_MMAP]: New functions.
7892
7893 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7894 before and after unexec.
7895
7896 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7897 text buffers if necessary.
7898
7899 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7900 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7901 in prototypes.
7902
7903 * config.in (HAVE_MMAP): Add #undef.
7904
7905 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7906
7907 * frame.c (Qdisplay_type): New variable.
7908 (syms_of_frame_1): Initialize it.
7909 (Fframe_parameter): New function that avoids consing.
7910 (syms_of_frame): Defsubr it.
7911
7912 * buffer.c (Fother_buffer): Consider buffers as invisible when
7913 they are displayed in a window on an invisible frame.
7914
7915 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7916 get-largest-window always return nil.
7917
7918 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7919
7920 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7921 variable; recognize Emacs 19 elc files.
7922
7923 2000-09-04 Miles Bader <miles@gnu.org>
7924
7925 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7926 before initially popping up the menu, so the menu doesn't flash
7927 when the face settings are significantly different from the defaults.
7928
7929 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7930
7931 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7932 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7933 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7934 (BIT_UNIBYTE): Remove.
7935 (re_match_2_internal): Delete corresponding code and streamline the
7936 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7937 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7938 (re_wctype_t): New type.
7939 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7940 (regex_compile): Use them and fix handling of overly long char classes.
7941
7942 2000-09-03 Andrew Innes <andrewi@gnu.org>
7943
7944 * makefile.w32-in: Change to DOS line endings.
7945
7946 * s/ms-w32.h (ORDINARY_LINK): New define.
7947
7948 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7949 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7950
7951 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7952 (distclean): Delete them here instead.
7953
7954 * w32proc.c (compare_env): Convert to uppercase for comparison,
7955 not lowercase, to match how the native Windows shell works.
7956
7957 2000-09-03 Jason Rumney <jasonr@gnu.org>
7958
7959 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7960 CVS changes the line-ends when checking in/out on DOS/Windows.
7961
7962 * makefile.nt (emacs): Do not change directory to run temacs, as
7963 the load-path is set relative to current directory.
7964
7965 2000-09-03 Miles Bader <miles@gnu.org>
7966
7967 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7968
7969 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7970
7971 * xdisp.c (redisplay_mode_lines): New function.
7972 (display_mode_lines): Return number of mode lines displayed.
7973 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7974 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7975
7976 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7977 string.h and strings.h.
7978 (index) [HAVE_INDEX]: Add prototype.
7979
7980 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
7981 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
7982
7983 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
7984 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
7985
7986 2000-09-01 Gerd Moellmann <gerd@gnu.org>
7987
7988 * lread.c (read1): Accept `?' as symbol constituent, for
7989 compatiblity with XEmacs.
7990
7991 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
7992
7993 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
7994 (struct re_pattern_buffer): Remove newline_anchor.
7995 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
7996 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
7997 (re_max_failures, fail_stack): Use size_t rather than unsigned.
7998 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
7999 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
8000 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
8001 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
8002 Get rid of references to newline_anchor.
8003 (regcomp): Allocate and precompute a fastmap.
8004
8005 2000-08-31 Gerd Moellmann <gerd@gnu.org>
8006
8007 * lread.c (openp): GCPRO local variable `filename'.
8008
8009 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
8010
8011 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
8012
8013 * regex.c: Merge some changes from GNU libc. Add prototypes.
8014 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
8015 Use memcmp and memcpy instead of bcopy and bcmp.
8016 (init_syntax_once): Use ISALNUM.
8017 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
8018 (REG_UNSET_VALUE): Remove. Use NULL instead.
8019 (REG_UNSET, re_match_2_internal): Use NULL.
8020 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
8021 New macros.
8022 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
8023 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
8024 (regex_compile): In handle_interval, return an error rather than try to
8025 unfetch the interval if we can't find the closing brace.
8026 Obey the RE_NO_GNU_OPS syntax bit.
8027 (TOLOWER): New macro.
8028 (regcomp): Use it.
8029 (regexec): Allocate regs.start and regs.end as one block.
8030
8031 2000-08-30 Gerd Moellmann <gerd@gnu.org>
8032
8033 * xdisp.c (echo_area_display): Check display_completed instead
8034 of calling detect_input_pending.
8035
8036 * dispnew.c (update_frame): Only set display_completed here; move
8037 the update_begin and update_end calls here from update_frame_1.
8038 (update_frame_1): Don't set display_completed here, don't call
8039 update_begin/update_end.
8040
8041 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
8042 instead of store_frame_param.
8043
8044 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8045
8046 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
8047 desired window matrix hasn't been displayed, use the current row
8048 instead. Make sure that only those frame rows are updated for
8049 which there exists a corresponding enabled desired row.
8050
8051 2000-08-29 Miles Bader <miles@gnu.org>
8052
8053 * xfaces.c (default_face_vector): New function.
8054 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
8055
8056 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8057
8058 * lread.c (openp): Prevent temporary string passed to
8059 Ffile_readable_p from being garbage collected.
8060
8061 2000-08-28 Dave Love <fx@gnu.org>
8062
8063 * keymap.c (store_in_keymap): Add `static' to declaration.
8064
8065 2000-08-28 Gerd Moellmann <gerd@gnu.org>
8066
8067 * emacs.c, callint.c, doc.c, editfns.c
8068 (toplevel) [HAVE_STRING_H]: Include string.h.
8069 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
8070 (index): Remove prototypes which might conflict with non-standard
8071 definitions of index/strchr.
8072
8073 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
8074 (rindex): Define only if !HAVE_RINDEX.
8075
8076 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
8077
8078 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
8079
8080 2000-08-28 Miles Bader <miles@gnu.org>
8081
8082 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
8083 made inconsistent by a font-related attribute in FROM.
8084 (merge_face_inheritance): Add function comment.
8085
8086 2000-08-28 Kenichi Handa <handa@etl.go.jp>
8087
8088 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
8089 the 4th arg (PREV_EVENT) Qt to suppress input method.
8090
8091 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
8092
8093 * regex.c: Indent cpp directives and remove parens after `defined'.
8094 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
8095 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
8096 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
8097 (re_compile_pattern): Use size_t for length.
8098 (init_syntax_once): Move to a better place.
8099 * regex.h: Merge changes from GNU libc. Indent cpp directives.
8100 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
8101
8102 * syntax.c (back_comment): Detect cases where a comment-starter is
8103 actually inside another comment as in: /* a // b */ c // d \n.
8104 Make it clear that `comstart_pos' is unused for nested comments.
8105
8106 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
8107 (KEYMAPP): New macro.
8108 (Fkeymap_parent, Fset_keymap_parent): Use it.
8109 (fix_submap_inheritance): Mark it static.
8110 (define_as_prefix, describe_buffer_bindings, describe_command)
8111 (describe_translation, describe_map): Complete prototypes.
8112
8113 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
8114
8115 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
8116 to better match the key-lookup behavior.
8117
8118 2000-08-27 Gerd Moellmann <gerd@gnu.org>
8119
8120 * xfaces.c (lface_fully_specified_p): Handle :inherit.
8121 (Finternal_set_lisp_face_attribute): Fix typo in error message.
8122
8123 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
8124
8125 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
8126 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
8127 (xterm.o): Depend on coding.h
8128
8129 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8130
8131 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
8132 the corresponding '#endif'.
8133
8134 2000-08-26 Miles Bader <miles@gnu.org>
8135
8136 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
8137 * xfaces.c (QCinherit): New variable.
8138 (syms_of_xfaces): Initialize it.
8139 (LFACE_INHERIT): New macro.
8140 (Finternal_get_lisp_face_attribute)
8141 (merge_face_vector_with_property)
8142 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
8143 (check_lface_attrs): Allow new types of face height. Check
8144 inherit attribute.
8145 (CYCLE_CHECK): New macro.
8146 (merge_face_inheritance): New function.
8147 (merge_face_vectors): Merge inherited faces too. Add F and
8148 CYCLE_CHECK arguments.
8149 (merge_face_vector_with_property, Finternal_merge_in_global_face)
8150 (lookup_named_face, lookup_derived_face, realize_named_face)
8151 (face_at_string_position, face_at_buffer_position): Supply
8152 new F and CYCLE_CHECK arguments to merge_face_vectors.
8153 (merge_face_heights): New function.
8154 (merge_face_vectors, merge_face_vector_with_property)
8155 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
8156 handle relative face heights.
8157 (lface_same_font_attributes_p): Compare heights using EQ.
8158
8159 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8160
8161 * charset.c (char_to_string): Check the character validity.
8162 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
8163
8164 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
8165
8166 * regex.c (PUSH_FAILURE_COUNT): New macro.
8167 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
8168 Handle popping of a register's or a counter's data.
8169 (POP_FAILURE_POINT): Use the new name.
8170 (re_match_2_internal): Push counter data on the stack for succeed_n,
8171 jump_n and set_number_at and remove misleading dead code in succeed_n.
8172
8173 2000-08-25 Gerd Moellmann <gerd@gnu.org>
8174
8175 * xdisp.c (redisplay_internal): If considering all windows on all
8176 frames, update the display for each frame as soon as possible,
8177 instead of first building all desired matrices for all frames, and
8178 then updating them all.
8179 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
8180
8181 2000-08-24 Gerd Moellmann <gerd@gnu.org>
8182
8183 * bytecode.c (mark_byte_stack): Add a comment.
8184
8185 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
8186 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
8187 a graphical frame.
8188
8189 2000-08-24 Kenichi Handa <handa@etl.go.jp>
8190
8191 * minibuf.c (do_completion): Always use compare-string, not
8192 string-equal because the latter doesn't pay attention to
8193 multibyteness of strings.
8194
8195 * process.c (create_process): Don't setup raw-text coding here.
8196 (Fopen_network_stream): Don't set coding->src_multibyte and
8197 coding->dst_multibyte here.
8198 (read_process_output): For process filter, return unibyte string
8199 if default-enable-multibyte-characters is nil.
8200 (send_process): If OBJECT is multibyte text, be sure to encoded it
8201 by the specified coding system for the process. Otherwise, setup
8202 raw-text coding.
8203 (init_process): Don't initialize default-process-coding-system here.
8204
8205 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
8206
8207 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
8208 <scroll-down-aggressively>: Likewise.
8209
8210 2000-08-23 Kenichi Handa <handa@etl.go.jp>
8211
8212 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
8213 zero. Set coding->produced_char correctly.
8214
8215 2000-08-22 Andrew Innes <andrewi@gnu.org>
8216
8217 * makefile.w32-in: New file.
8218
8219 * unexw32.c (unexec): Ignore old_name, and use the actual location
8220 of the current executable instead. Base new_name on this.
8221
8222 * w32proc.c (create_child): Remove reference to security
8223 descriptor, which isn't needed and doesn't compile with mingw32.
8224
8225 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8226 up dllimport attributes.
8227 (x_update_window_end): Update prototype.
8228
8229 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
8230 extern, which screws up dllimport attributes.
8231
8232 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8233 up dllimport attributes.
8234
8235 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
8236 screws up dllimport attributes.
8237
8238 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8239 up dllimport attributes.
8240 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
8241 screws up dllimport attributes.
8242
8243 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8244 up dllimport attributes.
8245
8246 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
8247 screws up dllimport attributes.
8248
8249 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
8250 screws up dllimport attributes.
8251
8252 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8253 up dllimport attributes.
8254
8255 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
8256 unnecessary extern, which screws up dllimport attributes.
8257 (main): Ditto.
8258
8259 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8260 up dllimport attributes.
8261
8262 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
8263 unnecessary extern, which screws up dllimport attributes.
8264
8265 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
8266 screws up dllimport attributes.
8267
8268 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8269 up dllimport attributes.
8270
8271 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
8272
8273 * w32bdf.c (search_file_line):
8274 (set_bdf_font_info):
8275 (seek_char):
8276 (w32_get_bdf_glyph):
8277 (w32_BDF_to_x_font): Fix compile warnings.
8278
8279 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
8280
8281 * w32select.c: Include keyboard.h before frame.h.
8282
8283 * w32fns.c (max): Define macro.
8284 (JOHAB_CHARSET): Define if not known.
8285 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
8286 (Fx_show_tip): Synch with X version.
8287
8288 * w32xfns.c: Include keyboard.h before frame.h.
8289
8290 * w32fns.c: Include keyboard.h before frame.h.
8291
8292 * w32term.c: Include keyboard.h before frame.h.
8293
8294 * fontset.c: Include keyboard.h before frame.h.
8295
8296 * w32inevt.c: Include keyboard.h before frame.h.
8297 (MOUSE_MOVED): Define if not known.
8298
8299 * minibuf.c: Include keyboard.h before frame.h.
8300
8301 * keyboard.c: Include keyboard.h before frame.h.
8302
8303 * indent.c: Include keyboard.h before frame.h.
8304
8305 * dispnew.c: Include keyboard.h before frame.h.
8306
8307 * buffer.c: Include keyboard.h before frame.h.
8308
8309 * alloc.c: Include keyboard.h before frame.h.
8310
8311 * print.c: Include keyboard.h before frame.h.
8312
8313 * process.c: Include keyboard.h before frame.h.
8314
8315 * scroll.c: Include keyboard.h before frame.h.
8316
8317 * sysdep.c: Include keyboard.h before frame.h.
8318
8319 * term.c: Include keyboard.h before frame.h.
8320
8321 * window.c: Include keyboard.h before frame.h.
8322
8323 * xdisp.c: Include keyboard.h before frame.h.
8324 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
8325
8326 * frame.c: Include keyboard.h before frame.h.
8327
8328 * w32heap.h: Undefine min, max.
8329
8330 * w32gui.h: Undefine min, max.
8331
8332 * unexw32.c: Change PUCHAR to PCHAR.
8333 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
8334 (relocate_offset):
8335 (get_section_info):
8336 (copy_executable_and_dump_data): Remove unnecessary static defs.
8337 (copy_executable_and_dump_data): Fix compile warnings.
8338
8339 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
8340
8341 * w32console.c (min): Define macro.
8342 (clear_frame, write_glyphs): Fix compile warning.
8343
8344 * w32proc.c (compare_env):
8345 (find_child_console): Fix compile warning.
8346
8347 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
8348 sys_errlist instead of _sys_errlist.
8349 (get_emacs_configuration_options): New function.
8350
8351 * s/ms-w32.h (sys_nerr): Provide default definition.
8352 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
8353 name with _ prepended.
8354 (NSIG): Define if not known.
8355 (get_emacs_configuration): Provide extern declaration.
8356 (get_emacs_configuration_options): Provide extern declaration.
8357 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
8358
8359 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
8360 (map_w32_filename):
8361 (read_unc_volume): Fix compile warning.
8362
8363 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
8364 definitions from being used.
8365
8366 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
8367
8368 * w32.c (unc_volume_file_attributes):
8369 (open_unc_volume): Make arg const.
8370
8371 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
8372 (read_input_waiting): Remove excess parameter.
8373
8374 * w32.c (init_environment): Call _access.
8375 (check_windows_init_file): Call _close.
8376 (init_user_info): Call _putenv.
8377 (init_environment): Call _putenv and _strdup.
8378 (init_ntproc): Reset volume info cache on startup.
8379
8380 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
8381 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
8382 cannot override the CRT malloc.
8383
8384 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
8385 (LINK_FLAGS): Append to original value of LINK_FLAGS.
8386
8387 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
8388 unless we are linking with a static CRT.
8389 (RVA_TO_PTR): Cast result to unsigned char*.
8390
8391 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
8392 (add_volume_info): Use xstrdup.
8393
8394 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
8395
8396 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
8397 (do_completion, Fminibuffer_complete_word): Use it.
8398 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
8399 var so it can take non-boolean values.
8400
8401 2000-08-21 Gerd Moellmann <gerd@gnu.org>
8402
8403 * editfns.c (find_field): Formatting changes.
8404 (toplevel): Some old-style function forward declarations
8405 changed to prototypes, some new protypes added, some functions
8406 made static.
8407
8408 * lisp.h (set_time_zone_rule): Add prototype.
8409 (use_dialog_box): External declaration.
8410
8411 * keyboard.c (gen_help_event): Add parameter SIZE.
8412 (kbd_buffer_events_waiting): Slightly rewritten.
8413 (clear_event): New function.
8414 (kbd_buffer_get_event): Use it, and clear the input_events of
8415 HELP_EVENTs.
8416 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
8417 don't fill the newly created array with nils.
8418 (toplevel): Convert some old-style function forward declarations
8419 to prototypes.
8420
8421 * keyboard.h (gen_help_event): Change prototype.
8422
8423 * xterm.c (XTread_socket): Change calls to gen_help_event.
8424
8425 * w32term.c (w32_read_socket): Change calls to gen_help_event.
8426
8427 * eval.c (Fmacroexpand): Doc fix.
8428
8429 2000-08-20 Jason Rumney <jasonr@gnu.org>
8430
8431 * w32term.h (x_display_info_for_display): Remove as this function
8432 does not exist on W32.
8433
8434 * w32term.c (help_echo_window): New variable.
8435 (syms_of_w32term): staticpro it.
8436 (note_mode_line_highlight): Set it.
8437 (XTextExtents16): Removed as there is no equivalent on W32.
8438 (x_compute_glyph_string_overhangs): Incomplete body removed, as
8439 the X way of doing this will not work for W32.
8440 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
8441 (x_draw_image_foreground): Avoid drawing outside of the clip area
8442 when image doesn't have a mask.
8443 (note_mouse_highlight): Process overlays in the right order of
8444 priority. Set help_echo_window.
8445 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
8446 because that's more visible for large images.
8447
8448 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
8449 name to single_keymap_panes.
8450 (w32_menu_show): Set wv->title when dealing with titles.
8451 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
8452
8453 2000-08-21 Miles Bader <miles@gnu.org>
8454
8455 * minibuf.c (do_completion): Try again if we rewrite the input
8456 string, but no completion was done, so that any completion message
8457 will be correct.
8458
8459 2000-08-20 Gerd Moellmann <gerd@gnu.org>
8460
8461 * xfaces.c (lface_equal_p): Compare strings differently.
8462 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
8463 (realize_tty_face): Use them.
8464 (syms_of_xfaces): Initialize new variables.
8465 (map_tty_color): New function, extracted from realize_tty_face.
8466 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
8467 foreground or background color, store the new color name in the
8468 realized face; previous code trying to do this had no effect.
8469 (realize_tty_face): Use map_tty_color.
8470 (Fclear_face_cache): Set face_change_count and ensure thorough
8471 redisplay.
8472
8473 2000-08-19 Gerd Moellmann <gerd@gnu.org>
8474
8475 * undo.c (record_first_change, record_marker_adjustment): Don't
8476 use XBUFFER on last_undo_buffer which might not be a buffer.
8477
8478 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8479
8480 * coding.c (decode_coding_string): Set members consumed,
8481 consumed_char, produced, produced_char of *coding correctly. If
8482 decode_coding doesn't consume any byte, don't try anymore.
8483 (encode_coding_string): Likewise.
8484
8485 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8486
8487 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
8488 conditional have void type, for Standard C compilers.
8489
8490 * xdisp.c (redisplay_internal): Compare windows for equality with
8491 EQ, instead of applying XWINDOW to something that might not
8492 be a window.
8493
8494 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8495
8496 * fontset.c (Finternal_char_font): Search only the selected frame
8497 for a window of the current buffer.
8498
8499 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8500
8501 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
8502 Lisp_Objects.
8503
8504 * keyboard.c (kbd_buffer_get_event): Handle the case that the
8505 second half of a HELP_EVENT is found at the start of kbd_buffer.
8506
8507 2000-08-18 Miles Bader <miles@gnu.org>
8508
8509 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
8510
8511 * editfns.c (save_restriction_save): Rewrite to use markers.
8512 (save_restriction_restore): Rewrite to understand new form of data
8513 saved by save_restriction_save.
8514 (Fsave_restriction): Remove cautionary note in doc-string.
8515
8516 2000-08-17 Gerd Moellmann <gerd@gnu.org>
8517
8518 * fileio.c (build_annotations): Add a comment explaining the
8519 return value of format-annotate-function. Replace a spurious call
8520 to Flength with a CONSP test. Call format-annotate-function with
8521 a fifth arg specifying how many times the function is been called
8522 in a row, to let it choose temporary buffers appropriately.
8523
8524 2000-08-17 Dave Love <fx@gnu.org>
8525
8526 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
8527 declare make_temp_name twice.
8528
8529 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
8530 (unreadpure): Give it an arg.
8531
8532 * unexalpha.c: Prototype fatal_unexec, mark_x,
8533 update_dynamic_symbols. Declare unexec as void.
8534
8535 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
8536 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
8537
8538 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
8539 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
8540
8541 * alloca.c: Use #error.
8542 [POINTER_TYPE]: Use it.
8543
8544 * eval.c (Fdefvar): Doc fix.
8545
8546 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
8547 INITIALIZE_INTERVAL.
8548
8549 * buffer.h: Avoid DECLARE_INTERVALS.
8550
8551 * config.in: Add size_t.
8552
8553 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
8554
8555 * w16select.c (set_clipboard_data): If there's not enough memory
8556 to put text into clipboard, return 1, as Fw16_set_clipboard_data
8557 expects. In case of other failures, return 3.
8558 (system_error_msg): New error message.
8559 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
8560 system_error_msg.
8561
8562 2000-08-16 Gerd Moellmann <gerd@gnu.org>
8563
8564 * term.c (write_glyphs): Also turn off inverse video after turning
8565 off other appearances in case TS_exit_attribute_mode is not equal
8566 to TS_end_standout_mode.
8567 (insert_glyphs): Turn inverse video on/off for each run of glyphs
8568 with the same face.
8569 (turn_off_face): Reset standout_mode only if
8570 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
8571 is equal to TS_end_standout_mode.
8572
8573 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8574
8575 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
8576 sequence at the end of the source block.
8577
8578 * ccl.c (Fccl_program_p): Docstring modified.
8579 (Fccl_execute): Likewise.
8580 (Fccl_execute_on_string): Likewise.
8581
8582 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
8583
8584 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
8585
8586 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8587
8588 The following changes are mainly to fix bugs of
8589 encode/decode-coding-string failing if encoding/decoding return
8590 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
8591 variable conversion_buffer.
8592
8593 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
8594 decrement dst_end to avoid buffer overflow in the later call of
8595 string_as_multibyte
8596
8597 * coding.h (conversion_buffer_size, conversion_buffer)
8598 (get_conversion_buffer): Extern deleted.
8599
8600 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
8601 (conversion_buffer, conversion_buffer_size): Variables deleted.
8602 (get_conversion_buffer): Function deleted.
8603 (struct conversion_buffer): New structure.
8604 (MAX_ALLOCA): New macro.
8605 (allocate_conversion_buffer): New macro.
8606 (extend_conversion_buffer, free_conversion_buffer): New functions.
8607 (ccl_coding_driver): Set coding->result.
8608 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
8609 this is the last block of source.
8610 (encode_coding): Likewise. Handle the source block as the last
8611 one only when the whole source text is consumed.
8612 (decode_coding_string): Handle the case that the output buffer is
8613 too small to decode the whole source text. Use
8614 allocate_conversion_buffer, extend_conversion_buffer and
8615 free_conversion_buffer, not get_conversion_buffer.
8616 (encode_coding_string): Likewise.
8617 (init_coding): Function deleted.
8618 (init_coding_once): Delete code to initialize conversion_buffer_size.
8619
8620 * emacs.c (main): Don't call init_coding.
8621
8622 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
8623
8624 * term.c (write_glyphs): Use a locally declared conversion_buffer.
8625 (insert_glyphs): Likewise.
8626
8627 * w32console.c (write_glyphs): Use a locally declared
8628 conversion_buffer.
8629
8630 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
8631
8632 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
8633 member of display_info is NULL.
8634
8635 2000-08-15 Gerd Moellmann <gerd@gnu.org>
8636
8637 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
8638
8639 * term.c (turn_off_face): Reset standout_mode when resetting
8640 appearances with capability `me'.
8641 (write_glyphs): Switch on inverse video before each face change.
8642
8643 2000-08-14 Dave Love <fx@gnu.org>
8644
8645 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
8646 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
8647 (lisp_free): Declare and make static.
8648
8649 * window.c: Fix embedded comment.
8650 (syms_of_window): Fix doc string.
8651
8652 2000-08-14 Gerd Moellmann <gerd@gnu.org>
8653
8654 * keymap.c (push_key_description): If C without modifiers is < 32,
8655 make sure to print `C-' before `M-', like in the manual.
8656
8657 2000-08-11 Gerd Moellmann <gerd@gnu.org>
8658
8659 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
8660 since they aren't relocated anymore.
8661 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
8662
8663 * xdisp.c (try_cursor_movement): Fix handling of cursor in
8664 partially visible line which is smaller than the window's height.
8665
8666 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8667
8668 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
8669 the multibyte form of eight-bit-control characters.
8670 (Fccl_execute_on_string): Initialize ccl->multibyte.
8671
8672 * ccl.h (struct ccl_program): New member multibyte.
8673
8674 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
8675
8676 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8677
8678 * regex.c (regex_compile) <normal_char>: Pay attention to
8679 multibyteness.
8680 (analyse_first) <exactn>: Setup fastmap correctly for
8681 eight-bit-control characters.
8682
8683 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8684
8685 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
8686
8687 * keyboard.c (make_lispy_event): Handle the new event type
8688 multibyte_char_keystroke.
8689
8690 * xterm.c: Include coding.h.
8691 (XTread_socket): Work around a bug of XmbLookupString. If the
8692 input is from XIM, decode it according to the current locale. In
8693 that case, generate multibyte_char_keystroke events.
8694
8695 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8696
8697 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
8698 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
8699
8700 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8701
8702 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
8703 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
8704 (move_it_in_display_line_to): Record iterator's ascent and descent
8705 before producing glyphs, and restore them when we know the glyph
8706 doesn't fit on the line.
8707 (move_it_to): Restructured so that it's easier to debug. If
8708 moving to a vpos, and not moving to an x or character position,
8709 stop as soon as the specified vpos is reached; don't move further
8710 into that line because that might change the computed line height.
8711 (try_cursor_movement): New function, extracted from the cursor
8712 movement branch of redisplay_window. If ending on a partially
8713 visible line, don't try to scroll if the cursor line is taller
8714 than the window.
8715 (redisplay_window): Use try_cursor_movement.
8716
8717 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
8718 because that function doesn't cope with variable-height lines.
8719
8720 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
8721 box cursor because that's better visible for large images.
8722
8723 2000-08-10 Miles Bader <miles@gnu.org>
8724
8725 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
8726
8727 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8728
8729 * xdisp.c (Vmessages_buffer_name): New variable.
8730 (message_dolog): Use it.
8731 (syms_of_xdisp): Initialize it.
8732
8733 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
8734
8735 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
8736 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
8737 redundant now that keyboard.h is included.
8738
8739 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
8740
8741 * keyboard.c (kbd_buffer_events_waiting): New function.
8742
8743 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
8744
8745 * msdos.c: Include keyboard.h.
8746 (XMenuActivate): Empty no_event events from the event buffer. If
8747 no events are left after that, call clear_input_pending.
8748 (mouse_clear_clicks): New function, code moved from mouse_init.
8749 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
8750 mouse driver to ``forget'' any past clicks.
8751
8752 * Makefile.in (msdos.o): Depend on keyboard.h.
8753
8754 2000-08-09 Gerd Moellmann <gerd@gnu.org>
8755
8756 * lisp.h (input_pending): External declaration.
8757
8758 * dispextern.h (Qredisplay_dont_pause): Declare extern.
8759
8760 * xdisp.c (echo_area_display): Display thoroughly if input is
8761 pending. Bind redisplay-dont-pause to t during the redisplay.
8762 in case input is pending.
8763
8764 * dispnew.c (Qredisplay_dont_pause): New variable.
8765 (syms_of_display): Initialize and staticpro it.
8766 (update_frame_1): Don't interrupt the display for pending input if
8767 redisplay_dont_pause is set.
8768
8769 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
8770
8771 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8772
8773 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
8774
8775 * callproc.c (Fcall_process): Terminate the unwind-protect around
8776 the post-read-conversion of coding system.
8777
8778 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8779 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8780 * buffer.h (overlays_at): Update prototype.
8781 * xdisp.c (next_overlay_change): Update call to overlays_at.
8782 * xfaces.c (face_at_buffer_position): Likewise.
8783 * textprop.c (Fget_char_property): Likewise.
8784 * xterm.c (note_mouse_highlight): Likewise.
8785
8786 * minibuf.c (do_completion): Don't consider a simple change of
8787 case as `completion'.
8788
8789 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8790
8791 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8792 * undo.c (record_delete): Make sure last_point_position_buffer is
8793 a buffer before comparing pointers.
8794
8795 * coding.h (decode_coding_string): Declare.
8796
8797 * intervals.h (Fprevious_single_char_property_change): Declare.
8798
8799 * textprop.c (Fprevious_single_char_property_change): Don't do
8800 arithmetic directly on lisp objects.
8801
8802 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8803
8804 * keyboard.h (menu_item_eval_property): Declare.
8805
8806 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8807 reuse as buffer name, instead of recreating (and discarding) every
8808 time a message is logged.
8809 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8810 (current_message_1, truncate_message_1, set_message_1)
8811 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8812 (current_message, truncate_echo_area, display_echo_area)
8813 (resize_echo_area_axactly): Changed calls.
8814
8815 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8816 Lisp object.
8817 (Ffind_coding_systems_region_internal): First argument to Fappend
8818 must be an integer, not a Lisp object.
8819
8820 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8821
8822 * charset.c (Fchar_width): Doc fix.
8823
8824 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8825
8826 * charset.c (Fstring_width): Doc fix.
8827
8828 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8829
8830 * xdisp.c (start_display): When starting display on a continuation
8831 line, clear ascent and descent members of the iterator structure;
8832 the height of the continued line does not affect the height of the
8833 continuation line.
8834 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8835 line taller than the window.
8836 (redisplay_window) <forced window start>: Handle case that the
8837 middle of the window is not found in any row.
8838 (dump_glyph_row): Show more information.
8839 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8840 first text line in a glyph matrix.
8841
8842 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8843 of the clip area when image doesn't have a mask.
8844
8845 * fns.c (sweep_weak_table): Fix survival conditions for
8846 key-or-value and key-and-value weakness.
8847
8848 * .gdbinit (xhashtable): New command.
8849
8850 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8851 tables out of the list of all weak hash tables.
8852
8853 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8854 a new buffer is created, make sure echo_area_buffer[] references
8855 the new buffer.
8856
8857 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8858
8859 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8860 the doc string.
8861
8862 2000-08-07 Kenichi Handa <handa@etl.go.jp>
8863
8864 * syntax.c (skip_chars): Fix previous change. Make the handling
8865 of unibyte string consistent with that of regex search.
8866
8867 2000-08-05 Gerd Moellmann <gerd@gnu.org>
8868
8869 * xmenu.c (popup_get_selection): Use xfree instead of free.
8870
8871 * fileio.c (Finsert_file_contents): Use xfree instead of free.
8872
8873 * editfns.c (Ftranspose_regions): Use xfree instead of free.
8874
8875 * callproc.c (child_setup): Use xfree instead of free.
8876
8877 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8878 instead of malloc.
8879 (run_mac_command, closedir): Use `xfree' instead of `free'.
8880
8881 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8882
8883 * eval.c (error): Use xfree instead of free.
8884
8885 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8886
8887 * fns.c: Replace `illegal' with `invalid'.
8888 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8889
8890 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8891
8892 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8893 conversion.
8894
8895 2000-08-04 Noah Friedman <friedman@splode.com>
8896
8897 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8898 docstring.
8899
8900 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8901
8902 * syntax.c (skip_chars): Fix typo in error message.
8903
8904 2000-08-04 Andreas Schwab <schwab@suse.de>
8905
8906 * m/ia64.h: Moved from s/ia64.h.
8907
8908 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8909
8910 * process.c (read_process_output): Big simplification. Handle
8911 composition and post-read-conversion of coding system correctly.
8912 (send_process): Handle composition correctly.
8913
8914 * callproc.c (Fcall_process): Handle post-read-conversion of
8915 coding system if any.
8916
8917 * coding.c (decode_coding_iso2022): More strict check for handling
8918 single shifting.
8919 (coding_restore_composition): Pay attention to the case that
8920 cmp_data is not set properly (because of invalid code in the
8921 source text).
8922 (run_pre_post_conversion_on_str): Include text properties in the
8923 resulting string.
8924 (decode_coding_string): Set members of coding correctly.
8925
8926 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8927
8928 * s/ia64.h: New file.
8929
8930 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8931 Use NULL instead of 0 at the end of variable argument list of
8932 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8933 sizeof (int) < sizeof (void *).
8934
8935 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8936 of variable argument lists of XtVaGetValues and XtVaSetValues.
8937
8938 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8939 variable argument lists of XtVaGetValues and XtVaSetValues.
8940
8941 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8942
8943 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8944 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8945
8946 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8947 prototype.
8948
8949 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8950 in call to Fsingle_key_description.
8951
8952 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8953 Callers changed.
8954
8955 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8956
8957 * window.c (display_buffer_reuse_frames): New variable.
8958 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8959 frames displaying BUFFER.
8960 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8961
8962 2000-08-01 Miles Bader <miles@gnu.org>
8963
8964 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8965 when to constrain NEW_POS (they were pretty screwed up before).
8966
8967 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8968
8969 * msdos.c (run_msdos_command): Save and restore the master
8970 environment, for the case that child_setup signals an error.
8971 When mirroring slashes in DOS shell commands, don't fail when
8972 argv[2] has embedded blanks.
8973 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8974 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8975 (dos_ttraw): Call mouse_setup_buttons.
8976
8977 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
8978 using alloca; free it after run_msdos_command returns.
8979
8980 2000-07-27 Dave Love <fx@gnu.org>
8981
8982 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
8983 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
8984
8985 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
8986
8987 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
8988
8989 * editfns.c (lisp_time_argument): Fix last change.
8990
8991 2000-07-27 Gerd Moellmann <gerd@gnu.org>
8992
8993 * fns.c (Fdelete): Make it work on vectors and strings in addition
8994 to lists.
8995
8996 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
8997 (syms_of_fns): Initialize new variables.
8998 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
8999 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
9000 weakness, with t meaning the same as `key-and-value'.
9001
9002 2000-07-27 Kenichi Handa <handa@etl.go.jp>
9003
9004 * coding.h (struct coding_system): Member safe_charset deleted.
9005
9006 * coding.c (Qsafe_charsets): This variable deleted.
9007 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
9008 New variables.
9009 (coding_safe_chars): New function.
9010 (CODING_SAFE_CHAR_P): New macro.
9011 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
9012 checking safe_charsets member of the coding system. Caller changed.
9013 (detect_coding_iso2022): New local variable safe_chars.
9014 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
9015 safe_charsets member of the coding system.
9016 (decode_coding_iso2022): New local variable safe_chars.
9017 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
9018 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
9019 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
9020 (ENCODE_UNSAFE_CHARACTER): New macro.
9021 (encode_coding_iso2022): New local variable safe_chars. Check
9022 unsafe chars.
9023 (setup_coding_system): Delete the code to initialize
9024 coding->safe_charses
9025 (intersection, find_safe_codings): New functions.
9026 (Ffind_coding_systems_region_internal): New function.
9027 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
9028 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
9029 variable and initialize it.
9030
9031 * fns.c (char_table_ref_and_index): New function.
9032
9033 * lisp.h (char_table_ref_and_index): Add prototype.
9034
9035 2000-07-26 Sam Steingold <sds@gnu.org>
9036
9037 * editfns.c (lisp_time_argument): Added third argument `usec'.
9038 (Ffloat_time): New built-in Lisp function.
9039
9040 2000-07-26 Gerd Moellmann <gerd@gnu.org>
9041
9042 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
9043 for the character code.
9044
9045 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
9046 GNU/Linux.
9047
9048 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
9049 if called for a popup menu.
9050 (xmenu_show): Store help string in widget values.
9051
9052 2000-07-26 Dave Love <fx@gnu.org>
9053
9054 * syswait.h: Move some definitions.
9055 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
9056 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
9057 perspicuous definitions.
9058 (WTERMSIG): Fix bit pattern used.
9059
9060 2000-07-26 Kenichi Handa <handa@etl.go.jp>
9061
9062 * print.c (print_object): If vector printing is truncated, print
9063 "..." to indicate it as well as the case of list printing.
9064
9065 2000-07-25 Gerd Moellmann <gerd@gnu.org>
9066
9067 * xdisp.c (next_element_from_display_vector): Improve comments.
9068
9069 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
9070 for the character code, and the rest for the face id as in 20.x.
9071 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
9072
9073 * window.c (window_display_table): Cleaned up.
9074
9075 * syntax.c (Fforward_word): Add last arg nil in call of
9076 Fconstrain_to_field.
9077
9078 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
9079
9080 * fileio.c (Frename_file) [DOS_NT]: If the file names are
9081 identical but for the letter-case, don't call
9082 barf_or_query_if_file_exists.
9083
9084 2000-07-25 Miles Bader <miles@gnu.org>
9085
9086 * editfns.c (find_field): Honor special `boundary' fields.
9087 (Qboundary): New variables.
9088 (syms_of_editfns): Initialize Qboundary.
9089 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
9090 Use scan_buffer instead of find_before_next_newline, because it
9091 allows us to detect the boundary case where there's a newline at
9092 the search limit.
9093 * lisp.h (Fconstrain_to_field): Update external declaration.
9094
9095 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9096
9097 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
9098 if that is nil.
9099
9100 2000-07-24 Dave Love <fx@gnu.org>
9101
9102 * s/sunos4-0.h, s/sol2.h:
9103 (LIBS_TERMCAP): Move from m/sparc.h.
9104
9105 * m/sparc.h (TERMINFO): Moved to system files (probably only
9106 relevant for sunos4 judging by its vintage).
9107 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
9108 __arch64__.
9109
9110 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
9111
9112 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
9113 name to single_keymap_panes.
9114
9115 2000-07-24 Andreas Schwab <schwab@suse.de>
9116
9117 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
9118
9119 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9120
9121 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
9122 parameters instead of using int parameters. Expect FN to accept
9123 EMACS_INT parameters.
9124 (display_echo_area, resize_echo_area_axactly, current_message)
9125 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
9126 with new argument list.
9127 (resize_mini_window_1): New callback function.
9128 (current_message_1, truncate_message_1, set_message_1): Change
9129 parameter lists to the new format expected by with_echo_area_buffer.
9130
9131 2000-07-24 Kenichi Handa <handa@etl.go.jp>
9132
9133 * fontset.c (fontset_ref): Remove INLINE declaration.
9134 (fontset_ref_via_base): Likewise.
9135 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
9136 to downcase.
9137
9138 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
9139
9140 * msdos.c (IT_note_mouse_highlight): Process overlays in the
9141 correct order of priority. If help echo was found in an overlay,
9142 use that overlay as the object in which the help echo was found.
9143
9144 2000-07-22 Miles Bader <miles@gnu.org>
9145
9146 * textprop.c (Fprevious_single_char_property_change): The initial
9147 property value should be from the position preceding POSITION, not
9148 following it.
9149
9150 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
9151
9152 * coding.c (syms_of_coding): Doc fix for
9153 inhibit-iso-escape-detection.
9154
9155 2000-07-21 Gerd Moellmann <gerd@gnu.org>
9156
9157 * xterm.c (note_mouse_highlight): Process overlays in the right
9158 order of priority.
9159
9160 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
9161
9162 * xterm.c (note_mouse_highlight): If help-echo was found in an
9163 overlay, use that overlay as the object in which the help was found.
9164
9165 * window.c (foreach_window_1): Fix typo reversing an if-condition.
9166
9167 * window.c (foreach_window): Instead of a fake variable argument
9168 list, take one USER_DATA argument.
9169 (foreach_window_1): Likewise, and call callback functions with two
9170 args, the window and USER_DATA.
9171 (struct check_window_data): New struct.
9172 (check_window_containing): Use it.
9173 (window_from_coordinates): Set up a struct check_window_data for
9174 foreach_window.
9175 (add_window_to_list, freeze_window_start): Change parameters
9176 according to new calling convention.
9177
9178 * window.h (foreach_window): Change prototype.
9179
9180 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
9181
9182 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
9183
9184 * xmenu.c (menu_help_callback): Call show_help_echo with
9185 additional arguments OBJECT and POS.
9186
9187 2000-07-21 Kenichi Handa <handa@etl.go.jp>
9188
9189 * data.c (Faset): Allow storing any multibyte character in a
9190 string. Convert unibyte string to multibyte if necessary.
9191
9192 * xfns.c (x_encode_text): New function.
9193 (x_set_name): Use x_encode_text.
9194 (x_set_title): Likewise.
9195
9196 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
9197
9198 * xterm.h (x_encode_text): Add prototype.
9199
9200 2000-07-20 Dave Love <fx@gnu.org>
9201
9202 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
9203 xfree, not free.
9204
9205 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
9206
9207 * msdos.c (help_echo_window): New variable.
9208 (syms_of_msdos): Initialize and staticpro it.
9209 (IT_note_mode_line_highlight): Set help_echo_window.
9210 (IT_note_mouse_highlight): Ditto.
9211 (dos_rawgetc): Store help_echo_window in the second event produced
9212 for HELP_EVENTs.
9213
9214 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
9215 Record the object that generated the help echo and the position of
9216 that object in help_echo_object and help_echo_pos. Record that
9217 some glyphs in a row are displayed in mouse-face.
9218 (IT_update_begin): Don't clear mouse highlight unless one of the
9219 enabled glyph rows is marked as being displayed in mouse-face.
9220 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
9221 and position recorded in help_echo_object and help_echo_pos to the
9222 event queue.
9223 (IT_menu_display): Accept a new argument PN: the pane number of
9224 the current menu pane. Record the pane number and the item
9225 number of the item which has associated help string.
9226 (XMenuActivate): Update the prototype for help_callback in
9227 function declaration. Call IT_menu_display with the current menu
9228 pane number as an additional argument. Call help_callback with
9229 two additional arguments: the pane number and the item number of
9230 the menu item associated with the help text.
9231 (help_echo_object, help_echo_pos): New variables.
9232 (syms_of_msdos): Initialize them and staticpro help_echo_object.
9233
9234 * msdos.h (XMenuActivate): Update prototype.
9235
9236 2000-07-19 Gerd Moellmann <gerd@gnu.org>
9237
9238 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
9239 Add some more prototypes.
9240
9241 * xterm.c, xterm.h: Add some more prototypes.
9242
9243 * lisp.h (Fnext_single_char_property_change): Add prototype.
9244
9245 * dispnew.c (direct_output_for_insert): Remove confusing
9246 outer local variable mouse_face_overwritten_p.
9247 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
9248
9249 * alloc.c (allocate_string_data): Don't copy old string contents.
9250
9251 2000-07-19 Kenichi Handa <handa@etl.go.jp>
9252
9253 * coding.c (code_convert_region): Delete text properties before
9254 shrinking the conversion region.
9255
9256 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9257
9258 * dispnew.c (update_text_area): Write the whole row if it
9259 has mouse-face in it.
9260
9261 * xfaces.c (face-alternative-font-family-alist): Remove
9262 DEFVAR_LISP; staticpro instead.
9263
9264 * xmenu.c (menu_help_callback): Call show_help_echo with
9265 new arguments.
9266
9267 * keyboard.c (show_help_echo): Add parameter WINDOW.
9268 (read_char): Call show_help_echo with window extracted from Lisp
9269 help event.
9270 (gen_help_event): Add parameter WINDOW.
9271
9272 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
9273
9274 * xterm.c (help_echo_window): New variable.
9275 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
9276 (XTread_socket): Pass help_echo_window to gen_help_event.
9277 (syms_of_xterm): Initialize and staticpro help_echo_window.
9278
9279 2000-07-18 Dave Love <fx@gnu.org>
9280
9281 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
9282
9283 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9284
9285 * alloc.c (allocate_string_data): If string had already data
9286 assigned, copy old contents to new string data.
9287
9288 * coding.c (syms_of_coding): Fix typo in spelling of variable
9289 `inhibit-iso-escape-detection'.
9290
9291 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
9292
9293 * Makefile.in: Add dependencies on dispextern.h.
9294 (alloca.o): Don't define malloc and define EMACS_FREE instead of
9295 `free'; both can conflict with system header files.
9296
9297 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9298
9299 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
9300 undefined.
9301
9302 2000-07-18 Dave Love <fx@gnu.org>
9303
9304 * window.c (Fwindow_list): Declare arg `window'.
9305
9306 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9307
9308 * coding.c (setup_coding_system): Don't override the explicitly
9309 specified designations.
9310
9311 2000-07-15 Miles Bader <miles@gnu.org>
9312
9313 * editfns.c (char_property_eq, char_property_stickiness): Renamed
9314 from `text_property_eq' and `text_property_stickiness', respectively.
9315 (find_field, Fconstrain_to_field, char_property_eq)
9316 (char_property_stickiness): Changed to call char-property functions
9317 instead of text-property-only ones.
9318
9319 * textprop.c (Fnext_single_char_property_change): Made a subr (was
9320 `next_single_char_property_change'). Do more error checking, and
9321 cleanup limit behavior.
9322 (Fprevious_single_char_property_change): New function.
9323 (syms_of_textprop): Initialize new subrs.
9324
9325 * xdisp.c (display_prop_end, invisible_text_between_p):
9326 Call Fnext_single_char_property_change instead of
9327 next_single_char_property_change.
9328
9329 2000-07-15 Jason Rumney <jasonr@gnu.org>
9330
9331 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
9332 after menu is finished with.
9333 (add_menu_item): Only consider wv->title as a menu title.
9334 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
9335
9336 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
9337 null title.
9338 (FONT_REGEXP): Remove unused macro, and its sub-components.
9339 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
9340
9341 * w32term.c (help_echo_object, help_echo_pos): New variables.
9342 (note_mode_line_highlight): Store additional information about the
9343 help-echo in help_echo_object and help_echo_pos. Check both
9344 `local-map' and `keymap' properties for changing the cursor
9345 (note_mouse_highlight): Store additional information about the
9346 help-echo in help_echo_object and help_echo_pos.
9347 (note_tool_bar_highlight): Set help_echo_object to nil and
9348 help_echo_pos to -1.
9349 (w32_read_socket): Use gen_help_event instead of filling
9350 input_events manually.
9351 (syms_of_w32term): Staticpro help_echo_object.
9352 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
9353 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
9354 (x_clear_mouse_face): New function.
9355 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
9356 (x_update_window_begin): No need to turn off the mouse
9357 highlight here.
9358 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9359 depending on whether they contain glyphs highlighted in mouse-face.
9360 (x_fill_stretch_glyph_string): Consume runs of stretch
9361 glyphs instead of a single one.
9362 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9363 with new argument list.
9364 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9365 (x_append_glyph, x_append_composite_glyph)
9366 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9367 changes in struct glyph starting 1999-12-27. See comments for
9368 xterm.c on 2000-07-05.
9369
9370 2000-07-14 Sam Steingold <sds@gnu.org>
9371
9372 * xfaces.c (realize_x_face): Fix the last patch:
9373 check `default_face' before dereferencing.
9374
9375 2000-07-14 Dave Love <fx@gnu.org>
9376
9377 * syntax.c (back_comment): Add null default in switch (for pcc).
9378
9379 2000-07-14 Kenichi Handa <handa@etl.go.jp>
9380
9381 * xfaces.c (realize_x_face): Make fontset using the base of the
9382 default_face's fontset, not using the default fontset.
9383
9384 * coding.c (inhibit_iso_escape_detection): New variable.
9385 (syms_of_coding): Make it a Lisp variable.
9386 (detect_coding_iso2022): If inhibit_iso_escape_detection is
9387 nonzero, ignore ISO2022's escape sequence.
9388
9389 2000-07-14 Gerd Moellmann <gerd@gnu.org>
9390
9391 * alloca.c (malloc) [emacs]: Define as xmalloc.
9392
9393 * xfns.c (Fx_show_tip): If frame parameters contain a position,
9394 use that instead of the mouse position. Add parameters DX and DY.
9395
9396 * dispextern.h (Fx_show_tip): Adjust number of parameters
9397 in prototype.
9398
9399 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
9400 if HELP is a function, call it with OBJECT and POS as parameters
9401 to get the help to display.
9402 (gen_help_event, kbd_buffer_store_help_event): New functions.
9403 (kbd_buffer_get_event): Construct the Lisp help-event differently.
9404 (read_char): Call show_help_echo with new parameters.
9405
9406 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9407 Add prototypes.
9408
9409 * xterm.c (help_echo_object, help_echo_pos): New variables.
9410 (note_mode_line_highlight): Store additional information about the
9411 help-echo in help_echo_object and help_echo_pos. Check both
9412 `local-map' and `keymap' properties for changing the cursor
9413 (note_mouse_highlight): Store additional information about the
9414 help-echo in help_echo_object and help_echo_pos.
9415 (note_tool_bar_highlight): Set help_echo_object to nil and
9416 help_echo_pos to -1.
9417 (XTread_socket): Use gen_help_event instead of filling
9418 input_events manually.
9419 (syms_of_xterm): Staticpro help_echo_object.
9420
9421 * xmenu.c (menu_highlight_callback): Use
9422 kbd_buffer_store_help_event instead of setting up and input_event
9423 structure manually.
9424
9425 * xdisp.c (eval_form): GCPRO argument sexpr.
9426 (call_function): New function.
9427 (handle_single_display_prop): Use call_function and FUNCTIONP
9428 instead of checking whether if font_height is a symbol and
9429 using eval_form.
9430
9431 * eval.c (internal_condition_case_2): New function.
9432
9433 * lisp.h (FUNCTIONP): New macro.
9434 (internal_condition_case_2, call_function): Add prototypes.
9435
9436 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
9437 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
9438 Always set `arg' member of input_events.
9439 (construct_menu_click): Unused function removed.
9440
9441 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
9442
9443 * w32term.c (construct_mouse_click, construct_mouse_wheel)
9444 (construct_drag_n_drop, x_scroll_bar_handle_click)
9445 (w32_read_socket): Always set `arg' member of input_events.
9446
9447 * keyboard.c (show_help_echo): Use eval_form. Add comment.
9448
9449 * lisp.h (eval_form): Add prototype.
9450
9451 * xdisp.c (eval_form): Make it externally visible.
9452
9453 2000-07-13 Gerd Moellmann <gerd@gnu.org>
9454
9455 * xterm.c (x_handle_tool_bar_click): Store the frame in the
9456 frame_or_window slot of TOOL_BAR_EVENT input events instead of
9457 consing. For prefix events, store the frame in the `arg' slot of
9458 the event, otherwise store the key there.
9459 (XTread_socket): Instead of consing, use the frame_or_window slot
9460 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
9461
9462 * xmenu.c (menu_highlight_callback): Store help string in the
9463 `arg' member of the input event; don't cons.
9464 (menubar_selection_callback): Use the `arg' slot of input events
9465 to queue additional information, instead of consing.
9466
9467 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
9468
9469 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
9470 TOOL_BAR_EVENTs.
9471 (w32_read_socket): Adapt to changes in HELP_EVENTs.
9472
9473 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
9474 input events to queue additional information, instead of consing.
9475
9476 * keyboard.c (kbd_buffer_gcpro): Renamed from
9477 kbd_buffer_frame_or_window. Now used for all Lisp objects
9478 referenced from the input queue.
9479 (kbd_buffer_store_event): Always use structure assignment for
9480 copying input events. Record all Lisp objects referenced from
9481 events in kbd_buffer_gcpro.
9482 (kbd_buffer_get_event): Construct Lisp `help-echo' events
9483 differently from input events. Test for prefix menu_bar_events
9484 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
9485 event in kbd_buffer_gcpro to nil.
9486 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
9487 frame_or_window is equal to its arg member as prefix events.
9488 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
9489 used by an input event to nil.
9490 (init_keyboard): Use two times the size of the input queue
9491 for kbd_buffer_gcpro.
9492 (syms_of_keyboard): Likewise.
9493
9494 * emacs.c (handle_USR2_signal, handle_USR1_signal):
9495 Use USER_SIGNAL_EVENT.
9496
9497 * termhooks.h (struct input_event): Add member `arg'.
9498 (MENU_BAR_EVENT): Renamed from menu_bar_event.
9499 (USER_SIGNAL_EVENT): Renamed from user_signal.
9500
9501 * xfaces.c (ASET): Remove definition.
9502
9503 * lisp.h (AREF, ASET, ASIZE): New macros.
9504
9505 * fontset.c (AREF, ASIZE): Remove definitions.
9506
9507 * fns.c (AREF): Remove definition.
9508
9509 * composite.c (AREF): Remove definition.
9510
9511 2000-07-12 Gerd Moellmann <gerd@gnu.org>
9512
9513 * dispnew.c (redraw_overlapped_rows): Add missing local.
9514 (scrolling_window): Remove debug code.
9515
9516 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
9517 Before scrolling, turn off a mouse-highlight in the window
9518 being scrolled.
9519
9520 * xterm.c (x_update_window_end): Add parameter
9521 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
9522 redisplay in XTframe_up_to_date.
9523 (x_clear_mouse_face): New function.
9524 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
9525
9526 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
9527 current glyph row.
9528 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
9529 it when any row is written to that contains glyphs highlighted in
9530 mouse-face.
9531 (update_window): Call the window update end hook with new
9532 parameter MOUSE_FACE_OVERWRITTEN_P.
9533 (direct_output_for_insert): Give up if row contains mouse-face.
9534
9535 * dispextern.h (struct redisplay_interface): Add parameter
9536 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
9537 (clear_mouse_face): New function pointer member.
9538
9539 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
9540
9541 * syntax.c (back_comment): Use one switch rather than a few `if's.
9542 Obey open_paren_in_column_0_is_defun_start.
9543 When reverting to the `slow' method, try to nicely handle the case
9544 of nested comments by checking that the comment-starter we found
9545 does indeed match the comment-ender.
9546 (scan_sexps_forward, scan_sexps_forward):
9547 Ignore excessive opening parenthesis rather than throwing an error.
9548
9549 2000-07-11 Gerd Moellmann <gerd@gnu.org>
9550
9551 * doc.c (Fsubstitute_command_keys): Handle case that a GC
9552 in Fwhere_is_internal or get_keymap_1 relocates string contents.
9553
9554 * dispnew.c (direct_output_forward_char): Give up if currently
9555 displaying a message instead of the minibuffer contents.
9556
9557 * xterm.c (x_update_window_begin): No need to turn off the mouse
9558 highlight here.
9559 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9560 depending on whether they contain glyphs highlighted in mouse-face.
9561
9562 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
9563 compare the mouse_face_p flags of both rows.
9564
9565 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
9566
9567 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
9568
9569 * keyboard.c (show_help_echo): Accept additional parameter
9570 ok_to_overwrite_keystroke_echo.
9571 (read_char): Call show_help_echo with a zero
9572 ok_to_overwrite_keystroke_echo argument.
9573 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
9574 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
9575 ok_to_overwrite_keystroke_echo argument.
9576 * w32menu.c (w32_menu_display_help): Call show_help_echo with
9577 non-zero ok_to_overwrite_keystroke_echo argument.
9578
9579 2000-07-10 Gerd Moellmann <gerd@gnu.org>
9580
9581 * xdisp.c (try_window_id): If changes are all below what is
9582 displayed in the window, and point is in the window, we still
9583 might have to find point on the display.
9584
9585 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
9586 glyphs instead of a single one.
9587 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9588 with new argument list.
9589 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9590
9591 * keymap.c (get_keymap_1): Add comment that this function can GC.
9592 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
9593 comment that functions can GC.
9594 (Fset_keymap_parent): GCPRO arg KEYMAP.
9595
9596 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
9597
9598 * msdos.c (XMenuActivate): After exiting the menu, restore the
9599 echo area message and erase it.
9600
9601 2000-07-10 Kenichi Handa <handa@etl.go.jp>
9602
9603 * fontset.c (Ffontset_info): Make the return value more compatible
9604 with that of Emacs 20.
9605
9606 2000-07-07 Gerd Moellmann <gerd@gnu.org>
9607
9608 * eval.c (Fsignal): Handle case that backtrace_list is null.
9609
9610 2000-07-07 Kenichi Handa <handa@etl.go.jp>
9611
9612 * ccl.c (Fccl_execute): Typo fixed.
9613
9614 2000-07-06 Gerd Moellmann <gerd@gnu.org>
9615
9616 * window.c (window_loop): Add missing gcpro1 local variable.
9617
9618 * window.c (Fwindow_list): Reverse list at the end.
9619 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
9620 means allow windows on OWINDOW's frame, only.
9621 (window_loop): Simplified; use Fwindow_list.
9622
9623 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
9624
9625 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9626
9627 * xterm.c (XTread_socket): Increment handling_signal at the start,
9628 decrement it at the end.
9629
9630 * eval.c (handling_signal): New variable.
9631 (Fsignal): Abort if handling_signal is non-zero.
9632
9633 * lisp.h (handling_signal): External declaration.
9634
9635 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
9636
9637 2000-07-05 Ken Raeburn <raeburn@gnu.org>
9638
9639 Sound support for NetBSD through "Linux emulation" support:
9640 * config.in (HAVE_SOUNDCARD_H): Undef.
9641 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
9642 * Makefile.in (LIBSOUND): New variable.
9643 (LIBES): Include it.
9644 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
9645 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
9646 (vox_open): Use DEFAULT_SOUND_DEVICE.
9647 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
9648
9649 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9650
9651 * print.c (print_error_message): If Vsignaling_function is set,
9652 show it in *Messages*.
9653
9654 * lisp.h (Vsignaling_function): External declaration.
9655
9656 * eval.c (Vsignaling_function): New variable.
9657 (Fsignal): Compute it.
9658 (syms_of_eval): Staticpro it.
9659
9660 2000-07-05 Dave Love <fx@gnu.org>
9661
9662 * syswait.h: Use the autoconf recommended approach. Old code
9663 #if'd out in case we need to revert.
9664
9665 * config.in (HAVE_SYS_WAIT_H): Added.
9666
9667 2000-07-05 Andrew Innes <andrewi@gnu.org>
9668
9669 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
9670 when non-NULL instead of __morecore, to take account of buffer
9671 memory. This also solves a problem with spurious memory warnings
9672 on Windows.
9673
9674 * ralloc.c: Make real_morecore non-static.
9675
9676 * eval.c (internal_condition_case): Comment out abort if
9677 interrupt_input_blocked is not zero.
9678
9679 * makefile.nt: Add support for `bootstrap' and related targets.
9680 Include minimal debug info in emacs.exe in release build.
9681 Remove all dependencies on lisp.h, and fixup some others.
9682
9683 * w32.c (init_environment): Install code from 20.7 for providing
9684 default values for environment variables, based on the
9685 executable's own location.
9686 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
9687 (sys_socket): Install socket inheritance bug fix from 20.7.
9688
9689 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
9690 here via blockinput.h).
9691
9692 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
9693
9694 * w32menu.c (w32_menu_display_help):
9695 * xmenu.c (menu_help_callback): Use show_help_echo.
9696
9697 * keyboard.h (show_help_echo): Declare.
9698
9699 * keyboard.c (show_help_echo): New function, extracted from read_char.
9700 Feval its `msg' argument if it's a cons cell.
9701 (read_char): Use it.
9702 (follow_key): Pass `autoload' to get_keyelt.
9703
9704 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
9705 (note_tool_bar_highlight, XTread_socket):
9706 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
9707 (dos_rawgetc):
9708 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
9709 (note_tool_bar_highlight, w32_read_socket):
9710 Do not gratuitously ignore non-string `help-echo' properties.
9711
9712 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9713
9714 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
9715
9716 * window.c (delete_all_subwindows): Reset Vwindow_list.
9717
9718 * xterm.c (x_append_glyph, x_append_composite_glyph)
9719 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9720 changes in struct glyph starting 1999-12-27. Some bit-fields of
9721 struct glyph were not set, which made glyphs unequal when compared
9722 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
9723 effects were the result. This also depended on the contents of
9724 memory returned by xmalloc. If flickering happens again, activate
9725 the code in clear_glyph_row that's in #if 0. If the flickering is
9726 gone with that, chances are that it is caused by something similar.
9727
9728 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
9729
9730 * dispextern.h: Add some comments.
9731
9732 * window.c (add_window_to_list): Add parameter LIST.
9733 (window_list): Order list so that, for each frame, windows are
9734 in canonical order, and so that frames appear in the list in
9735 the order given by Vframe_list.
9736 (next_window): Reverse the handling of NEXT_P.
9737
9738 2000-07-04 Gerd Moellmann <gerd@gnu.org>
9739
9740 * window.c (Vwindow_list): New variable.
9741 (make_window, delete_window): Set Vwindow_list to nil.
9742 (check_window_containing): New function.
9743 (window_from_coordinates): Rewritten.
9744 (add_window_to_list, window_list, candidate_window_p)
9745 (decode_next_window_args, next_window): New functions.
9746 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
9747 (Fwindow_list): New function.
9748 (Fother_window): Cleaned up.
9749 (foreach_window): Add a longer "variable argument list". Let
9750 callback function return 0 to indicate that cycling over windows
9751 should stop.
9752 (foreach_window_1): Likewise.
9753 (freeze_window_start): Return int.
9754 (init_window): New function.
9755 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
9756
9757 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
9758 input_event with bzero.
9759 (main): Call init_window.
9760
9761 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
9762 a menu filter.
9763
9764 2000-07-04 Kenichi Handa <handa@etl.go.jp>
9765
9766 * composite.h (make_composition_value_copy): Extern it.
9767
9768 * composite.c (make_composition_value_copy): New function.
9769
9770 * editfns.c (Fformat): While copying text properties, make each
9771 composition property value a copy.
9772
9773 * fns.c (concat): While copying text properties, make each
9774 composition property value a copy.
9775
9776 2000-07-03 Gerd Moellmann <gerd@gnu.org>
9777
9778 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9779
9780 * fns.c (sweep_weak_table): Mark only objects that are not
9781 marked already.
9782
9783 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9784 include those frames as candidates which have their focus
9785 redirected to the minibuffer frame.
9786
9787 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9788
9789 * fns.c (Fputhash): Return `value' rather than nil.
9790
9791 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9792
9793 * frame.c (next_frame): Don't check focus redirection in case
9794 MINIBUF is a window. Doing so excludes frames using MINIBUF
9795 unless their focus is redirected, which contradicts the
9796 specification of next-frame, and leads to infinite loops in
9797 certain situations when cycling through windows with next-window.
9798
9799 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9800
9801 * coding.c (code_convert_region): Even if the length of text is
9802 zero, try to convert it if coding->type is coding_type_ccl.
9803 (decode_coding_string, encode_coding_string): Likewise.
9804
9805 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9806
9807 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9808 the display if windows_or_buffers_changed.
9809
9810 * dispnew.c (struct row_entry): New structure.
9811 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9812 (row_table_size, old_lines, new_lines, old_lines_size)
9813 (new_lines_size, run_pool, runs_size, runs): New variables.
9814 (add_row_entry): New function.
9815 (scrolling_window): Use data structures allocated with xmalloc and
9816 held in global variables, instead of allocating them with alloca and
9817 holding them in local variables. Use a larger hash table whose
9818 size depends on glyph matrix sizes. Don't use bzero to clear the
9819 hash table; instead, clear used slots only.
9820
9821 * fns.c (next_almost_prime): Make it externally visible.
9822
9823 * lisp.h (next_almost_prime): Add prototype.
9824
9825 * s/isc4-0.h (sigunblock): Define.
9826
9827 * s/sco5.h (sigunblock): Define.
9828
9829 2000-06-27 Dave Love <fx@gnu.org>
9830
9831 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9832 (moved to osf5-0.h).
9833 [!NOT_C_CODE]: Protect string.h stuff.
9834
9835 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9836 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9837
9838 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9839
9840 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9841 below the last line from the needed window height.
9842
9843 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9844
9845 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9846 (Fwidget_get): Use it.
9847 (syms_of_fns): Defsubr it.
9848
9849 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9850
9851 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9852 display info for XIM.
9853 (xim_open_dpy): Likewise.
9854 (xim_close_dpy): Don't free the display info's XIM.
9855
9856 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9857
9858 * config.in (USE_XIM): New define.
9859
9860 * keymap.c (get_keyelt): For menu-items containing a `:filter
9861 FILTER', apply FILTER to the menu-item's definition to get the
9862 real definition to use.
9863
9864 * lisp.h (QCfilter): External declaration.
9865
9866 * xfns.c (Fimage_size): New function.
9867 (syms_of_xfns): Defsubr it.
9868
9869 2000-06-26 Andreas Schwab <schwab@suse.de>
9870
9871 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9872 Fstring_as_unibyte.
9873
9874 2000-06-25 Dave Love <fx@gnu.org>
9875
9876 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9877
9878 * Makefile.in (blockinput.h): Depend on atimer.h.
9879 (atimer.h): Depend on systime.h.
9880
9881 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9882
9883 * atimer.h: Protect against multiple inclusion. Include systime.h.
9884
9885 * lisp.h (swap_in_global_binding): Declare.
9886
9887 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9888
9889 * process.c (Fopen_network_stream): Turn off atimers for duration
9890 of call to connect. (Patch from Gerd.)
9891
9892 2000-06-23 Dave Love <fx@gnu.org>
9893
9894 * ralloc.c: Maybe include unistd.h
9895
9896 * emacs.c (setgrp): Undefine before defining.
9897 (malloc_warning, set_time_zone_rule, index): Prototype.
9898
9899 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9900 HAVE_STRUCT_TIMEZONE.
9901
9902 * s/osf1.h: Move string.h hack here from alpha.h and make it
9903 conditional.
9904 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9905 _XOPEN_SOURCE.
9906 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9907 (SOCKLEN_TYPE): Don't define.
9908
9909 * m/alpha.h: Remove string.h hack.
9910
9911 * s/osf5-0.h: New file.
9912
9913 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9914 include time.h, done by systime.h.
9915 [__FreeBSD__]: Remove redundant includes.
9916
9917 * callproc.c (setpgrp): Undefine before defining.
9918 (delete_temp_file): Return Qnil to avoid warning.
9919
9920 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9921
9922 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9923 HAVE_X_WINDOWS.
9924
9925 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9926
9927 * composite.h (compose_text): Declare.
9928
9929 * xterm.c: Don't include sys/types.h unconditionally. Don't
9930 protect its inclusion with !USG (following xmenu.c).
9931
9932 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9933
9934 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9935 in x_create_frame.
9936
9937 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9938
9939 * coding.c (decode_eol_post_ccl): Special handling for undecided
9940 and inconsistent EOL types.
9941
9942 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9943
9944 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9945 trough color and main window's background color.
9946
9947 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9948
9949 * xterm.h (Xt_app_con): External declaration.
9950
9951 * widget.c (EmacsFrameRealize): Fix typo.
9952
9953 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9954
9955 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9956 (handle_invisible_prop): Record the start of invisible text in
9957 it->add_overlay_start.
9958 (struct overlay_entry): Add member `overlay'.
9959 (handle_overlay_change): Simplify.
9960 (next_overlay_string): After having processed overlay strings at the
9961 end of the buffer, record that fact in
9962 it->overlay_strings_at_end_processed_p.
9963 (compare_overlay_entries): If before- and after-strings come
9964 from the same overlay, let before-strings come first.
9965 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9966 (load_overlay_strings): Take it->add_overlay_start into account
9967 when adding overlay strings.
9968
9969 * dispextern.h (struct it): Add member add_overlay_start.
9970
9971 2000-06-22 Dave Love <fx@gnu.org>
9972
9973 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9974
9975 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9976
9977 2000-06-22 Kenichi Handa <handa@etl.go.jp>
9978
9979 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
9980 is greater than 0.
9981
9982 2000-06-21 Dave Love <fx@gnu.org>
9983
9984 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9985
9986 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
9987
9988 * syntax.c (back_comment): Simplify string-parity counting (with
9989 the added benefit of handling multiple string-styles as long as
9990 they are not intertwined).
9991 Jump to the slow code as soon as a comment starter is found in
9992 a "string_lossage" position. Fixes the case: " /* " /* " */.
9993
9994 2000-06-21 Dave Love <fx@gnu.org>
9995
9996 * Makefile.in: Use GETLOADAVG_LIBS.
9997
9998 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
9999 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
10000
10001 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10002
10003 * syntax.c (describe_syntax): Recognize the `n'estable bit.
10004 (Fforward_comment, scan_lists):
10005 Check the comstyle of single-char comment-starters.
10006 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
10007 we're just at the beginning of the comment (f.ex with (*) ... (*)).
10008 Check the comstyle of single-char comment-starters.
10009 Clarify control-flow around the Scomment case.
10010
10011 2000-06-20 Dave Love <fx@gnu.org>
10012
10013 * fns.c (make_hash_table, maybe_resize_hash_table):
10014 Cast arg of next_almost_prime.
10015
10016 * tparam.c [emacs]: Include lisp.h.
10017
10018 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
10019 and unistd.h.
10020
10021 2000-06-20 Gerd Moellmann <gerd@gnu.org>
10022
10023 * keyboard.c (adjust_point_for_property): Check if display
10024 property should be treated as intangible by looking at its value.
10025
10026 * xdisp.c (single_display_prop_intangible_p)
10027 (display_prop_intangible_p): New functions.
10028
10029 * dispextern.h (display_prop_intangible_p): Add prototype.
10030
10031 * xdisp.c (dump_glyph_row): Show type of glyph->object.
10032
10033 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
10034 argument to sigprocmask.
10035
10036 * s/sco5.h (sigblock): Redefined to pass a pointer as second
10037 argument to sigprocmask.
10038
10039 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
10040 sigprocmask_set, and pass a pointer to it to sigprocmask.
10041
10042 * sysdep.c (sigprocmask_set): New variable.
10043
10044 * fileio.c (make_temp_name): Don't use `%s' in string passed to
10045 report_file_error.
10046
10047 2000-06-20 Sam Steingold <sds@gnu.org>
10048
10049 * xrdb.c: Don't declare xmalloc, xrealloc.
10050
10051 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10052
10053 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
10054 (re_comp): Cast gettext return value to avoid complaints when
10055 !HAVE_LIBINTL.
10056
10057 2000-06-20 Dave Love <fx@gnu.org>
10058
10059 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
10060
10061 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
10062
10063 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
10064
10065 * m/alpha.h: Don't declare xmalloc, xrealloc.
10066
10067 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
10068
10069 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
10070
10071 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
10072
10073 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
10074 HAVE_GETWD.
10075
10076 * keyboard.h (poll_for_input_1): Declare.
10077
10078 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
10079
10080 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
10081
10082 * doprnt.c: Don't declare xmalloc, xrealloc.
10083
10084 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
10085 (getenv, ctime, getwd): Removed.
10086 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
10087
10088 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
10089 x_set_tool_bar_lines.
10090
10091 * config.in: Add HAVE_GETWD. Move some definitions above
10092 machine/system includes.
10093
10094 2000-06-20 Kenichi Handa <handa@etl.go.jp>
10095
10096 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
10097
10098 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
10099 contain information about ENCODING.
10100
10101 * fontset.c (FONTSET_ASCII): Use the first element of char table
10102 for an ASCII font, not defalt slot.
10103 (fontset_ref_via_base): If FONTSET doesn't contain information for
10104 C, try the default fontset.
10105 (make_fontset): Don't copy the default fontset.
10106 (fontset_font_pattern): Likewise.
10107 (accumulate_font_info): If ELT is nil, use the corresponding
10108 element in the default fontset.
10109
10110 2000-06-19 Dave Love <fx@gnu.org>
10111
10112 * syntax.c (Fparse_partial_sexp): Doc fix.
10113
10114 * regex.h: Test PROTOTYPES as well as __STDC__.
10115
10116 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
10117 errno, strerror. Put text after #endif in comment.
10118
10119 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
10120
10121 * xterm.c (x_frame_of_widget): Likewise.
10122
10123 2000-06-19 Gerd Moellmann <gerd@gnu.org>
10124
10125 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
10126 to Vfundamental_mode_abbrev_table.
10127
10128 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
10129 bogus objects are marked. This slows down GC by ~80 percent, but
10130 it might be worth trying when debugging GC-related problems.
10131 This feature requires conservative stack marking to be enabled.
10132
10133 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
10134 returns XLookupChars, reset `modifiers' to zero.
10135
10136 2000-06-19 Dave Love <fx@gnu.org>
10137
10138 * mktime.c: Unprotoized.
10139
10140 2000-06-19 Richard Stallman <rms@gnu.org>
10141
10142 * data.c (set_internal): If variable is frame-local,
10143 store the new value immediately into the frame parameter alist.
10144
10145 2000-06-19 Ken Raeburn <raeburn@gnu.org>
10146
10147 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
10148 in the custom handler pointer.
10149
10150 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
10151 value, or checks for CHAR_META can fail when Lisp_Object is a
10152 union type.
10153 * keymap.c (get_keyelt): Likewise.
10154
10155 2000-06-19 Kenichi Handa <handa@etl.go.jp>
10156
10157 * ccl.h (struct ccl_program): New member eol_type.
10158 (struct ccl_spec): New member cr_carryover.
10159
10160 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
10161 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
10162
10163 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
10164 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
10165 (decode_eol_post_ccl): New function.
10166 (decode_coding): Don't detect EOL format here for CCL based coding
10167 systems.
10168 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
10169 decode_eol_post_ccl after running the CCL program.
10170 (code_convert_region): Don't detect EOL format here for CCL based
10171 coding systems.
10172 (decode_coding_string): Likewise.
10173
10174 2000-06-18 Ken Raeburn <raeburn@gnu.org>
10175
10176 * charset.c (update_charset_table): Use XINT on "iso_final_char"
10177 when treating it as an integer.
10178
10179 * coding.h (encode_coding_string): Declare.
10180
10181 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
10182 it as an integer.
10183
10184 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
10185 "xkeymap" to avoid shadowing the "enum map_type" value that needs
10186 to be passed to get_local_map.
10187
10188 * sound.c (Fplay_sound): Don't call make_number on
10189 Frun_hook_with_args count argument.
10190
10191 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
10192 for lisp objects in X event structure data field, when lisp
10193 objects are represented with unions.
10194 (x_scroll_bar_to_input_event): Ditto.
10195
10196 2000-06-16 Ken Raeburn <raeburn@gnu.org>
10197
10198 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
10199 termination of string. Fix sense of test whether
10200 Vline_number_display_limit is an integer.
10201
10202 2000-06-16 Gerd Moellmann <gerd@gnu.org>
10203
10204 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
10205 only if HAVE_X_WINDOWS.
10206
10207 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
10208 of titles.
10209
10210 * dispnew.c (update_frame_1): Handle case that cursor vpos is
10211 out of bounds.
10212
10213 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
10214
10215 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
10216 of its headers.
10217
10218 2000-06-15 Kenichi Handa <handa@etl.go.jp>
10219
10220 * coding.c (decode_coding_emacs_mule): Always set src_base at the
10221 start of the while loop.
10222
10223 2000-06-15 Gerd Moellmann <gerd@gnu.org>
10224
10225 * atimer.c (alarm_signal_handler): Add forward declaration.
10226
10227 * data.c (set_internal): Remove debug code.
10228
10229 2000-06-14 Gerd Moellmann <gerd@gnu.org>
10230
10231 * Makefile.in (bootstrap-temacs): Add `-I../src'.
10232
10233 * unexec.c (toplevel) [COFF]: Include coff.h.
10234
10235 * s/lynxos.h: New file.
10236
10237 * keymap.c (Fsingle_key_description): Enclose function key and
10238 event symbol names in angle brackets.
10239
10240 * xdisp.c (setup_echo_area_for_printing): Call
10241 message_log_maybe_newline if message_buf_print is not set.
10242
10243 * print.c (printchar, strout): Don't check message_buf_print
10244 before calling setup_echo_area_for_printing because that
10245 function does something useful even when message_buf_print is
10246 already set.
10247
10248 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
10249 New variables.
10250 (ensure_echo_area_buffers): Initialize echo buffer's
10251 truncate lines setting to nil.
10252 (with_echo_area_buffer): Don't set the echo buffer's truncate
10253 lines setting here.
10254 (set_message_1): Set it here instead, based on the value
10255 of message_truncate_lines.
10256 (resize_mini_window): Handle case that lines are truncated.
10257 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
10258 DEFVAR_BOOL message-truncate-lines.
10259
10260 * keyboard.c (read_char): Bind message-truncate-lines to t
10261 while displaying a help-echo.
10262
10263 * lisp.h (Qmessage_truncate_lines): External declaration.
10264
10265 2000-06-13 Gerd Moellmann <gerd@gnu.org>
10266
10267 * xdisp.c (Vline_number_display_limit): Renamed from
10268 line_number_display_limit.
10269 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
10270 Extend documentation string. Initialize
10271 Vline_number_display_limit to nil meaning no limit.
10272 (decode_mode_spec): Use Vline_number_display_limit with its new
10273 meaning.
10274
10275 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
10276
10277 2000-06-13 Richard Stallman <rms@gnu.org>
10278
10279 * frame.c (Fmodify_frame_parameters): Doc fix.
10280
10281 * xfns.c (x_set_frame_parameters): Comment fix.
10282
10283 * frame.c (store_frame_param): Call swap_in_global_binding if the
10284 variable's current binding was chosen based on this frame.
10285
10286 * data.c (swap_in_global_binding): New function.
10287
10288 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10289
10290 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
10291 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
10292
10293 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10294
10295 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
10296
10297 2000-06-12 Jason Rumney <jasonr@gnu.org>
10298
10299 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
10300
10301 * w32.h (EMACS_W32_H): Renamed from _NT_H_
10302
10303 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
10304
10305 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
10306
10307 2000-06-12 Gerd Moellmann <gerd@gnu.org>
10308
10309 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
10310 (syms_of_xfaces): Defsubr Sdump_colors.
10311 (x_free_colors): Don't treat b&w specially on default visual.
10312 (x_free_dpy_colors): New function.
10313 (free_face_colors): Don't check visual class; it's done
10314 in x_free_colors.
10315
10316 * xterm.c (x_frame_of_widget): New function.
10317 (x_alloc_nearest_color_for_widget): Use it.
10318 (x_copy_dpy_color): New function.
10319 (x_destroy_window): Free various colors.
10320
10321 2000-06-12 Kenichi Handa <handa@etl.go.jp>
10322
10323 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
10324
10325 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
10326
10327 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
10328
10329 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
10330
10331 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
10332
10333 2000-06-11 Dave Love <fx@gnu.org>
10334
10335 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
10336
10337 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
10338
10339 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
10340
10341 2000-06-11 Gerd Moellmann <gerd@gnu.org>
10342
10343 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
10344 to `XEvent *'.
10345
10346 2000-06-10 Kenichi Handa <handa@etl.go.jp>
10347
10348 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
10349 (regex_compile): Fix the code for handling the case of single byte
10350 char and multibyte char being mixed in a range within [...].
10351
10352 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
10353 and dst_multibyte members of coding.
10354
10355 * charset.c (update_charset_table): Update the table
10356 bytes_by_char_head.
10357 (init_charset_once): Initialize elements of bytes_by_char_head to
10358 1 except for leading codes for private charases.
10359
10360 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
10361 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
10362
10363 2000-06-09 Ken Raeburn <raeburn@gnu.org>
10364
10365 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
10366 access the data it doesn't point to.
10367
10368 2000-06-08 Gerd Moellmann <gerd@gnu.org>
10369
10370 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
10371 will be translated to a switch-frame event when reading the
10372 event queue. This is necessary because Emacs otherwise won't
10373 perform a switch-frame to a new frame until some other event, for
10374 example a keystroke event, forces it to do so. This has various
10375 effects, one visible being that the cursor of a frame created with
10376 C-x 5 2 or switched to with a window manager key binding like
10377 A-TAB stays hollow because selected_window isn't on the newly
10378 focused frame until the switch-frame is performed.
10379
10380 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
10381 generating a switch-frame event if necessary.
10382
10383 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
10384
10385 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
10386 it's an integer.
10387
10388 2000-06-08 Kenichi Handa <handa@etl.go.jp>
10389
10390 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
10391
10392 2000-06-07 Gerd Moellmann <gerd@gnu.org>
10393
10394 * window.c (displayed_window_lines): Take empty lines at
10395 the bottom of a window into account.
10396
10397 * window.c (displayed_window_lines): New function.
10398 (Fmove_to_window_line): Use displayed_window_lines to determine
10399 the number of lines to move, instead of using the window's height.
10400
10401 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
10402 to stop reading, even if the form read sets point to a different
10403 value when evaluated.
10404
10405 * xdisp.c (display_line): Fix code deciding in which line to
10406 put the cursor.
10407
10408 2000-06-07 Kenichi Handa <handa@etl.go.jp>
10409
10410 * fileio.c (e_write): Free composition data if stored in
10411 coding->cmp_data.
10412
10413 2000-06-06 Gerd Moellmann <gerd@gnu.org>
10414
10415 * xdisp.c (display_line): Set row's and iterator's
10416 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
10417 Set cursor even if row ends in the middle of a character.
10418 (dump_glyph_row): Print values of new flags.
10419 (redisplay_window) <cursor movement in unchanged window>: When
10420 point has been moved forward, and PT is at the end of the cursor
10421 row, don't place the cursor in the next row if the cursor row ends
10422 in the middle of a character or at ZV.
10423
10424 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
10425 (struct glyph_row): Add starts_in_middle_of_char_p and
10426 ends_in_middle_of_char_p.
10427 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
10428 ends_in_middle_of_char_p flag.
10429 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
10430
10431 * term.c (append_glyph): Revert change of 2000-06-06.
10432
10433 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
10434 padding glyph not fitting on line as whole character not
10435 fitting on line.
10436
10437 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
10438 this isn't true for images with `:ascent 100'.
10439
10440 2000-06-06 Kenichi Handa <handa@etl.go.jp>
10441
10442 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
10443 as modified if it is originally unmodified.
10444
10445 * term.c (encode_terminal_code): Change the way to check if
10446 terminal coding does any conversion.
10447 (append_glyph): Set glyph->pixel_width correctly.
10448
10449 * xdisp.c (display_line): While checking line continuation, pay
10450 attention to a padding glyph.
10451
10452 2000-06-05 Gerd Moellmann <gerd@gnu.org>
10453
10454 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
10455
10456 2000-06-05 Dave Love <fx@gnu.org>
10457
10458 * xdisp.c: Include fontset.h.
10459
10460 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
10461
10462 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10463
10464 * dispnew.c: Conditionally include term.h.
10465
10466 * coding.h: Declare code_convert_string_norecord.
10467
10468 * frame.h (struct frame): Use volatile unconditionally.
10469
10470 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
10471
10472 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
10473
10474 * systime.h: Protect against multiple inclusion.
10475 (timezone) [USG5_4]: Define as time_t.
10476
10477 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10478 (Foptimize_char_table, make_temp_name): Declare.
10479
10480 * Makefile.in (xdisp.o): Depend on fontset.h.
10481
10482 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10483
10484 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10485 (Foptimize_char_table, make_temp_name): Declare.
10486
10487 * s/irix4-0.h:
10488 * s/irix5-0.h:
10489 * s/netbsd.h: Don't define autoconfiscated MATHERR.
10490
10491 2000-06-02 Dave Love <fx@gnu.org>
10492
10493 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
10494
10495 2000-06-02 Gerd Moellmann <gerd@gnu.org>
10496
10497 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
10498 result face, set flags in that face indicating that colors may not
10499 be freed.
10500
10501 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
10502 glyph, use the ASCII NUL character to determine the face.
10503
10504 2000-06-02 Dave Love <fx@gnu.org>
10505
10506 * sysdep.c: Conditionally include stdlib.h, unistd.h.
10507 (VFORK_RETURN_TYPE): Remove.
10508
10509 * config.in: Add NO_MATHERR.
10510
10511 2000-06-01 Dave Love <fx@gnu.org>
10512
10513 * cmds.c (internal_self_insert): Don't check
10514 Vbefore_change_function, Vafter_change_function.
10515
10516 * insdel.c (signal_before_change, signal_after_change): Likewise.
10517
10518 * buffer.c (Vbefore_change_function, Vafter_change_function):
10519 Variables and their initializations deleted.
10520
10521 * callint.c (Fcall_interactively): Doc fix.
10522
10523 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
10524
10525 2000-05-31 Dave Love <fx@gnu.org>
10526
10527 * textprop.c: Revert last change -- duplicated.
10528
10529 2000-05-31 Gerd Moellmann <gerd@gnu.org>
10530
10531 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
10532 in #if 0.
10533
10534 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
10535
10536 2000-05-31 Jason Rumney <jasonr@gnu.org>
10537
10538 * search.c (Fre_search_forward, Fre_search_backward)
10539 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
10540
10541 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
10542
10543 2000-05-30 Jason Rumney <jasonr@gnu.org>
10544
10545 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
10546 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
10547
10548 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
10549
10550 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
10551 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
10552 expand a nil default_filename.
10553
10554 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
10555 pointer to glyph_to_pixel_coords, not a frame.
10556
10557 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
10558 coding.h to dependencies.
10559
10560 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
10561
10562 * w32console.c (glyph_to_pixel_coords): Change first parameter to
10563 window pointer to be consistent with w32term.c and xterm.c.
10564
10565 * w32fns.c: Format and doc changes to bring closer to xfns.c.
10566 (VIETNAMESE_CHARSET): Define if not defined in system headers.
10567 (Qline_spacing, Qcenter): New variables.
10568 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
10569 (x_set_line_spacing): New function.
10570 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
10571 (x_specified_cursor_type): New function.
10572 (x_set_cursor_type): Use it.
10573 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
10574 and icon strings.
10575 (validate_x_resource_name, x_get_resource_string): Measure lengths
10576 of external strings in bytes.
10577 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
10578 GetTextExtentPoint32 with NULL title.
10579 (Fx_create_frame): Initialize Qline_spacing.
10580 (w32_load_system_font): Initialize font->double_byte_p.
10581 (x_to_w32_charset): Use Vw32_charset_info_alist.
10582 (Image, busy cursor, tooltip functions): Merged changes from
10583 xfns.c. Not yet functional on Windows.
10584
10585 * w32gui.h (W32FontStruct): Add double_byte_p member.
10586
10587 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
10588 (emacs_button_translation): Use it.
10589 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
10590 in `mask' to be set.
10591
10592 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
10593 menu strings.
10594
10595 * w32term.c: Format and doc changes to bring closer to xterm.c.
10596 (w32_char_font_type): New enum.
10597 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
10598 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
10599 (w32_encode_char): New function.
10600 (x_encode_char): Removed.
10601 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
10602 x_encode_char and w32_font_is_double_byte.
10603 (x_produce_image_glyph): Use image_ascent.
10604 (x_produce_glyphs): Use new version of w32_per_char_metric and
10605 handle NULL return value. Allow extra line spacing.
10606 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
10607 (w32_get_glyph_overhangs): Remove unicode_p param. Use
10608 w32_font_type member of glyph instead.
10609 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
10610 (fast_find_position): Make sure not to consider rows not visible
10611 in the window.
10612 (w32_read_socket) [WM_MENUSELECT]: Cannot call
10613 w32_menu_display_help with input blocked, as it can abort.
10614 (x_display_and_set_cursor): Choose cursor depending
10615 on buffer-local value of cursor_type.
10616 (x_draw_bar_cursor): Add parameter WIDTH.
10617
10618 * w32term.h (CP_DEFAULT): Define.
10619 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
10620
10621 2000-05-30 Gerd Moellmann <gerd@gnu.org>
10622
10623 * search.c (Fre_search_forward, Fre_search_backward)
10624 (Fposix_search_backward, Fposix_search_forward): Doc fix.
10625
10626 2000-05-30 Kenichi Handa <handa@etl.go.jp>
10627
10628 * coding.c (detect_coding_iso2022): Fix code for checking
10629 CODING_CATEGORY_MASK_ISO_8_2.
10630
10631 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
10632
10633 * regex.c (PREFETCH_NOLIMIT): New function.
10634 (re_match_2_internal): Use it and adjust the end_match_2 logic.
10635
10636 2000-05-29 Gerd Moellmann <gerd@gnu.org>
10637
10638 * syntax.c (find_defun_start): Move test for
10639 open_paren_in_column_0_is_defun_start outside of the loop.
10640
10641 * xdisp.c (redisplay_window): Really switch buffers when
10642 displaying mode lines, and temporarily set selected_frame to the
10643 frame of the window that's redisplayed.
10644
10645 * xfaces.c (free_realized_faces): Block/unblock input.
10646 (free_realized_multibyte_face): Ditto.
10647
10648 2000-05-29 Dave Love <fx@gnu.org>
10649
10650 * textprop.c (Qkeymap): New variable.
10651 (syms_of_textprop): Intern it.
10652
10653 * keymap.c: Include intervals.h.
10654 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
10655
10656 * Makefile.in (keymap.o): Depend on intervals.h.
10657
10658 * keyboard.c (menu_bar_items, tool_bar_items)
10659 (Fexecute_extended_command): Deal with `keymap' property.
10660 (read_key_sequence): Track map from `keymap' property as well as
10661 `local_map'.
10662
10663 * intervals.c (get_local_map): Extra arg to allow looking for
10664 `keymap' too.
10665
10666 * intervals.h (map_property): New enum.
10667 (get_local_map): Extra arg using it.
10668 (Qkeymap): Declare.
10669
10670 * lisp.h (get_local_map): Don't declare here.
10671
10672 2000-05-29 Kenichi Handa <handa@etl.go.jp>
10673
10674 * Makefile.in (callproc.o): Depend on composite.h.
10675
10676 * callproc.c: Include composite.h.
10677 (Fcall_process): Handle composition correctly.
10678
10679 * coding.h (coding_allocate_composition_data): Extern it.
10680 (coding_restore_composition): Likewise.
10681
10682 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
10683 yet allocated, finish decoding with result
10684 CODING_FINISH_INSUFFICIENT_CMP.
10685 (coding_allocate_composition_data): Make it non-static.
10686 (coding_restore_composition): Likewise.
10687
10688 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
10689
10690 * charset.c (syms_of_charset): Revert last change.
10691
10692 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10693
10694 * term.c (produce_glyphs): Treat characters from the eight-bit-*
10695 charsets as unibyte, with 1-column screen width. Sent by Kenichi
10696 Handa.
10697
10698 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10699
10700 * charset.c (syms_of_charset): Set width of character sets
10701 eight-bit-control and eight-bit-graphic to 1 column.
10702
10703 2000-05-26 Gerd Moellmann <gerd@gnu.org>
10704
10705 * config.in (HAVE_SPEED_T): New define.
10706
10707 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
10708 `extern speed_t'.
10709
10710 2000-05-26 Dave Love <fx@gnu.org>
10711
10712 * coding.c (shrink_decoding_region): Initialize eol_conversion.
10713
10714 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
10715 (Fsubr_arity): New function.
10716 (syms_of_data): Install them.
10717
10718 2000-05-26 Kenichi Handa <handa@etl.go.jp>
10719
10720 * charset.c (init_charset_once): Set the table bytes_by_char_head
10721 correctly.
10722
10723 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
10724 the default fontset to what Emacs uses by default.
10725 (check_registry_encoding): This function deleted.
10726 (Fset_fontset_font): Remove the adhoc condition for the default
10727 fontset. Allow cons in FONTNAME.
10728
10729 * fns.c (map_char_table): Ignore char-table entries for
10730 charsets eight-bit-control and eight-bit-graphic.
10731
10732 2000-05-25 Ken Raeburn <raeburn@gnu.org>
10733
10734 * emacs.c (main): Initialize keyboard syms before initializing
10735 window code, so face names are available.
10736
10737 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
10738
10739 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
10740 of an anchor at the beginning of a shy-group.
10741
10742 2000-05-25 Gerd Moellmann <gerd@gnu.org>
10743
10744 * xdisp.c (handle_invisible_prop): Don't try to skip over
10745 invisible text if end of text is already reached.
10746
10747 2000-05-25 Dave Love <fx@gnu.org>
10748
10749 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
10750
10751 * coding.c (encode_eol): Add null statement after label.
10752
10753 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
10754
10755 * w16select.c (Fw16_set_clipboard_data): Fix the change from
10756 2000-05-20.
10757
10758 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10759
10760 * ccl.c (ccl_driver): Fix previous change.
10761
10762 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10763
10764 * coding.c (run_pre_post_conversion_on_str): Set point to the
10765 beginning of buffer before calling coding->post_read_conversion.
10766 (decode_coding_string): Give correct args to
10767 run_pre_post_conversion_on_str.
10768 (encode_coding_string): Likewise.
10769
10770 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10771 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10772 eight-bit-graphic correctly.
10773
10774 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
10775
10776 * fileio.c (Finsert_file_contents): Even if a file is not found,
10777 execute codes for setting up coding system. Call
10778 after-insert-file-functions unconditionally.
10779
10780 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10781
10782 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10783 BSD_PGRPS are not defined.
10784
10785 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10786
10787 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10788 DESCRIPTION.
10789 (syms_of_charset): Avoid building same strings.
10790
10791 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10792
10793 * lread.c (Fload): Add a comment about the meaning of
10794 Vuser_init_file being t.
10795
10796 * puresize.h (BASE_PURESIZE): Increase to 675000.
10797
10798 * s/gnu-linux.h (setpgrp): Don't define it here because this
10799 prevents compilation on GNU/Linux systems with glib 2.2.
10800
10801 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10802 as setpgid.
10803
10804 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10805
10806 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10807 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10808 version.
10809 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10810
10811 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10812
10813 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10814
10815 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10816
10817 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10818
10819 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10820
10821 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10822
10823 * keyboard.c (read_char): Allow character codes 128..255 to be
10824 handled by input-method-function.
10825
10826 * insdel.c (adjust_markers_for_replace): Fix previous change.
10827 (adjust_after_replace): If PREV_TEXT is nil, call
10828 adjust_markers_for_insert, not adjust_markers_for_replace.
10829
10830 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10831
10832 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10833 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10834 [HAVE_GRANDPT]: Define.
10835 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10836
10837 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10838 like SYSV_PTYS.
10839
10840 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10841
10842 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10843
10844 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10845
10846 The following changes are to handle 8-bit characters in a
10847 multibyte buffer/string without facing with byte combining
10848 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10849 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10850
10851 * Makefile.in (fns.o): Depend on charset.h.
10852
10853 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10854 convert it to unibyte.
10855 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10856
10857 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10858 apparent char boundary.
10859 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10860 0x80..0x9F to/from multibyte form.
10861
10862 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
10863 to unibyte.
10864
10865 * callproc.c (Fcall_process): Always encode an argument string if
10866 it is multibyte. Setup src_multibyte and dst_multibyte members of
10867 process_coding properly.
10868
10869 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
10870 SPLIT_NON_ASCII_CHAR.
10871
10872 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
10873 as is.
10874 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10875
10876 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10877 (SPLIT_CHARACTER_SEQ): This macro deleted.
10878 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10879 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10880 and eight-bit-graphic.
10881 (char_to_string): Likewise. Signal an error for too large
10882 character code.
10883 (char_printable_p): Return 0 for 8-bit characters.
10884 (update_charset_table): Update iso_charset_table only when a final
10885 character is non-negative.
10886 (find_charset_in_text): Renamed from find_charset_in_str.
10887 Arguments and return value changed. Callers changed.
10888 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10889 be -1 if CHARSET is used only internally.
10890 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10891 eight-bit-graphic.
10892 (Fcharset_after): Simplified.
10893 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10894 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10895 (multibyte_chars_in_text): Simplified by assuming there's no
10896 invalid multibyte sequence.
10897 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10898 (str_as_unibyte): New functions.
10899 (Fstring): Simpified by assuming that byte combining never happens.
10900 (init_charset_once): Initialization for
10901 LEADING_CODE_8_BIT_CONTROL.
10902 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10903 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10904 eight-bit-control and eight-bit-graphic.
10905
10906 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10907 (CHARSET_8_BIT_GRAPHIC): New macros.
10908 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10909 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10910 (CHARSET_REVERSE_CHARSET): Likewise.
10911 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10912 eight-bit-graphic.
10913 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10914 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10915 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10916 encounter an invalid multibyte sequence.
10917 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10918 sequence is always valid.
10919 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10920 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10921 (CHAR_STRING): For 8-bit characters, call char_to_string.
10922 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10923 multibyte sequence is always valid.
10924 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10925 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10926 (str_as_unibyte): Extern them.
10927 (BCOPY_SHORT): Fix a bug.
10928 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10929 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10930 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10931 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10932
10933 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10934 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10935 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10936 (EMIT_BYTES): New macros.
10937 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10938 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10939 macros deleted.
10940 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10941 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10942 check the validity of multibyte sequence.
10943 (decode_coding_emacs_mule): New function.
10944 (encode_coding_emacs_mule): New macro.
10945 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10946 the source.
10947 (DECODE_ISO_CHARACTER): Just return a character code.
10948 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10949 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10950 EMIT_CHAR to produced decoded characters. Exit the loop only by
10951 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10952 block here.
10953 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10954 only position codes for an invalid character.
10955 (encode_designation_at_bol): Return new destination pointer. 5th
10956 arg DSTP is changed to DST.
10957 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10958 from the source by ONE_MORE_CHAR. Don't handle the case of last
10959 block here.
10960 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10961 macros deleted.
10962 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10963 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10964 TWO_MORE_BYTES to fetch a byte from the source.
10965 (encode_eol): Pay attention to coding->src_multibyte.
10966 (detect_coding, detect_eol): Preserve members src_multibyte and
10967 dst_multibyte.
10968 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10969 (encoding_buffer_size): Set magnification to 3 for all coding
10970 systems that require encoding.
10971 (ccl_coding_driver): For decoding, be sure that the result is
10972 valid multibyte sequence.
10973 (decode_coding): Initialize coding->errors and coding->result.
10974 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10975 and raw-text, always call decode_eol. Handle the case of last
10976 block here. If not coding->dst_multibyte, convert the resulting
10977 sequence to unibyte.
10978 (encode_coding): Initialize coding->errors and coding->result.
10979 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
10980 and raw-text, always call encode_eol. Handle the case of last
10981 block here.
10982 (shrink_decoding_region, shrink_encoding_region): Detect cases
10983 that we can't skip data more rigidly.
10984 (code_convert_region): Setup src_multibyte and dst_multibyte
10985 members of coding. For decoding, if the buffer is multibyte,
10986 convert the source sequence to unibyte in advance. For encoding,
10987 if the buffer is multibyte, convert the resulting sequence to
10988 multibyte afterward.
10989 (run_pre_post_conversion_on_str): New function.
10990 (code_convert_string): Deleted and divided into the following two.
10991 (decode_coding_string, encode_coding_string): New functions.
10992 (code_convert_string1, code_convert_string_norecord): Call one of
10993 above.
10994 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
10995 MAKE_NON_ASCII_CHAR.
10996 (Fset_terminal_coding_system_internal)
10997 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
10998 and dst_multibyte members.
10999 (init_coding_once): Initialize iso_code_class with new enum
11000 ISO_control_0 and ISO_control_1.
11001
11002 * coding.h (enum iso_code_class_type): Member ISO_control_code is
11003 devided into ISO_control_0 and ISO_control_1.
11004 (struct coding_system): New members src_multibyte, dst_multibyte,
11005 errors, and result. Delete member fake_multibyte.
11006 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
11007 nonzero.
11008 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
11009 nonzero.
11010
11011 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11012 (Faset): Likewise.
11013
11014 * editfns.c (Fformat): Be sure to convert 8-bit characters to
11015 multibyte form.
11016 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
11017 combining occurs.
11018 (Ftranspose_region): Delete codes for handling byte combining.
11019
11020 * fileio.c (Finsert_file_contents): Setup src_multibyte and
11021 dst_multibyte members of coding. On handling REPLACE on unibyte
11022 buffer, convert the result of decode_coding to unibyte. On
11023 inserting into a mutibyte buffer, always call code_convert_region.
11024 (e_write): Setup coding->src_multibyte according to the
11025 multibyteness of the source (buffer or string).
11026
11027 * fns.c (concat): Handle 8-bit characters correctly.
11028 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
11029 unibyte in the result.
11030 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
11031 valid multibyte form in the result.
11032 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11033 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
11034 return -1, signal an error.
11035 (base64_encode_1): New arg MULTIBYTE. Get each character by
11036 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
11037 character is found, return -1.
11038 (Fbase64_decode_region): Delete codes for handling byte-combining.
11039 Treat each decoded byte as a unibyte character.
11040 (Fbase64_decode_string): Return unibyte string.
11041 (Fcompare_strings, concat, string_byte_to_char): Use
11042 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
11043 FETCH_STRING_CHAR_ADVANCE.
11044 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11045 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
11046
11047 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
11048 SPLIT_NON_ASCII_CHAR.
11049 (fontset_ref_via_base, fontset_set): Likewise
11050
11051 * insdel.c (adjust_markers_for_record_delete): Deleted.
11052 (adjust_markers_for_insert): Argument changed. Caller changed.
11053 (adjust_markers_for_replace): Likewise.
11054 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
11055 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
11056 (copy_text): Delete unused local varialbe c_save. For converting
11057 to multibyte, be sure to make all 8-bit characters in valid
11058 multibyte form.
11059 (count_size_as_multibyte): Handle 8-bit characters correctly.
11060 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11061 (adjust_after_replace, replace_range, del_range_2)
11062 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
11063 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11064 (adjust_after_replace, replace_range, del_range_2) Delete codes for
11065 handling byte combining.
11066 (adjust_before_replace): Deleted.
11067
11068 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
11069 SPLIT_NON_ASCII_CHAR.
11070 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11071 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11072 (Fkey_description): Likewise.
11073
11074 * lread.c (read1): On reading multibyte string, be sure to make
11075 all 8-bit chararacters in valid multibyte form.
11076 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11077
11078 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
11079 unconditionally.
11080
11081 * process.c (Fstart_process): GCPRO current_dir before calling
11082 Ffind_operation_coding_system. Encode arguments here.
11083 (create_process): Don't encode arguments here. Setup
11084 src_multibyte and dst_multibyte members of struct coding.
11085 (read_process_output): Setup src_multibyte and dst_multibyte
11086 members of struct coding. If the output is to multibyte buffer,
11087 always decode the output of the process. Adjust the
11088 representation of 8-bit characters to the multibyteness of the output.
11089 (send_process): Setup coding->src_multibyte according to the
11090 multibyteness of the source.
11091
11092 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11093 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
11094 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
11095
11096 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
11097
11098 * w16select.c (Fw16_set_clipboard_data): Setup members
11099 src_multibyte and dst_multibyte of coding. Adjusted for the
11100 change for find_charset_in_str.
11101 (Fw16_get_clipboard_data): Likewise.
11102
11103 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
11104 dst_multibyte of coding.
11105 (x_to_w32_font): Likewise.
11106
11107 * w32select.c (Fw32_set_clipboard_data): Setup members
11108 src_multibyte and dst_multibyte of coding. Adjusted for the
11109 change for find_charset_in_str.
11110 (Fw32_get_clipboard_data): Likewise.
11111
11112 * xdisp.c (get_next_display_element): Handle 8-bit characters
11113 correctly.
11114 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
11115 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11116
11117 * xselect.c (selection_data_to_lisp_data): Setup members
11118 src_multibyte and dst_multibyte of coding. Adjusted for the
11119 change for find_charset_in_str.
11120 (lisp_data_to_selection_data): Likewise.
11121
11122 2000-05-19 Gerd Moellmann <gerd@gnu.org>
11123
11124 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
11125
11126 * dispextern.h (Vimage_types): Add extern declaration.
11127
11128 * xdisp.c (Vimage_types): Moved here from xfns.c.
11129 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
11130
11131 * xfns.c (Vimages_types): Moved to xdisp.c.
11132 (syms_of_xfns): Move `image-types' to xdisp.c.
11133
11134 * w32fns.c (Vimage_types): Removed.
11135 (syms_of_w32fns): Remove `image-types'.
11136
11137 2000-05-18 Kenichi Handa <handa@etl.go.jp>
11138
11139 * fns.c (map_char_table): Pay attention to character number of
11140 charset. Check the validity of charset at the first level. For
11141 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
11142 the default value.
11143
11144 * fontset.c: Include "buffer.h".
11145 (fs_load_font): If the face has fontset, record the face ID in
11146 that fontset.
11147 (Finternal_char_font): New function.
11148 (accumulate_font_info): New function.
11149 (Ffontset_info): Rewritten for the new fontset implementation.
11150 (syms_of_fontset): Register Vdefault_fontset in the first element
11151 of Vfontset_table. Include Vdefault_fontset in
11152 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
11153 function.
11154
11155 2000-05-16 Dave Love <fx@gnu.org>
11156
11157 * m/iris5d.h: Deleted -- unused.
11158
11159 2000-05-16 Gerd Moellmann <gerd@gnu.org>
11160
11161 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
11162 `invalid' instead of `illegal'.
11163
11164 * indent.c (Fmove_to_column): When ending within a tab, insert
11165 spaces first so that markers at the end of the tab get adjusted.
11166
11167 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
11168 buffer list that wasn't selected in that frame.
11169
11170 * filelock.c (get_boot_time): To obtain an 8 char file name, which
11171 is needed on mescaline, use a 2 char prefix, and call
11172 make_temp_name with second arg non-zero.
11173
11174 * fileio.c (make_temp_name): New function, extracted from
11175 Fmake_temp_name.
11176 (Fmake_temp_name): Use it.
11177
11178 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
11179
11180 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
11181
11182 2000-05-15 Gerd Moellmann <gerd@gnu.org>
11183
11184 * Makefile.in (lisp): Add env.elc.
11185
11186 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
11187
11188 2000-05-12 Gerd Moellmann <gerd@gnu.org>
11189
11190 * search.c (Freplace_match): Handle case of `\N' in the
11191 replacement when there's no group N.
11192
11193 2000-05-11 Gerd Moellmann <gerd@gnu.org>
11194
11195 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
11196 of the message to message_dolog.
11197
11198 * keyboard.c (read_char): Don't clear current message for help
11199 events; let the code handling help events handle this. Change
11200 code detecting help events that should be ignored.
11201
11202 * xdisp.c (handle_single_display_prop): Don't try to set PT if
11203 we're interating over a string.
11204
11205 2000-05-09 Dave Love <fx@gnu.org>
11206
11207 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
11208 that offset before writing. Move gcpro region past call of
11209 Ffile_regular_p.
11210
11211 2000-05-04 Dave Love <fx@gnu.org>
11212
11213 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
11214
11215 2000-05-04 Gerd Moellmann <gerd@gnu.org>
11216
11217 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
11218 of inserted characters when BUF equals the current buffer, and PT
11219 is in front of or equal to FROM.
11220
11221 2000-05-03 Gerd Moellmann <gerd@gnu.org>
11222
11223 * xdisp.c (handle_single_display_prop): If display property value
11224 is invalid, or something not supported on the frame, restore
11225 iterator's position to what it was initially. Make sure to return
11226 0 for invalid and unsupported property values.
11227
11228 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
11229 that x_per_char_metric returns null.
11230
11231 2000-05-02 Gerd Moellmann <gerd@gnu.org>
11232
11233 * xterm.h (struct face): Add forward declaration.
11234 (struct image): Ditto.
11235 (image_ascent): Add prototype.
11236
11237 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
11238 (x_draw_image_relief, x_draw_image_foreground_1): Call function
11239 image_ascent instead of using IMAGE_ASCENT.
11240
11241 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
11242 (IMAGE_ASCENT): Removed.
11243
11244 * xfns.c (Qcenter): New variable.
11245 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
11246 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
11247 (image_ascent): New function.
11248 (lookup_image): Recognize `:ascent center'.
11249 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
11250 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
11251 (xbm_load): Don't set image's ascent here.
11252 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
11253 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
11254 check ascent values here.
11255 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
11256 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
11257 (syms_of_xfns): Initialize Qcenter.
11258
11259 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
11260 to the limits, increase the limits.
11261
11262 2000-05-01 Kenichi Handa <handa@etl.go.jp>
11263
11264 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
11265 Check Vfont_encoding_alist against the full name of the opened font.
11266
11267 2000-04-28 Gerd Moellmann <gerd@gnu.org>
11268
11269 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
11270 taller than the window.
11271
11272 2000-04-28 Kenichi Handa <handa@etl.go.jp>
11273
11274 * xfaces.c (realize_x_face): Fix the argument of the second
11275 xassert. BASE_FACE may not be a face for ASCII.
11276
11277 2000-04-27 Gerd Moellmann <gerd@gnu.org>
11278
11279 * print.c (print_object): Treat print-length < 0 as nil.
11280
11281 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
11282
11283 * s/freebsd.h (TERMCAP_OBJ): Removed.
11284 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
11285
11286 * lread.c (read1): Don't treat period followed by certain
11287 characters as symbol start.
11288
11289 * xfns.c (slurp_file): New function.
11290 (xbm_image_p): Handle case of in-memory XBM files.
11291 (xbm_scan): Rewritten to work on memory buffers instead of files.
11292 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
11293 Work on memory buffers instead of files. If DATA is null test
11294 if buffer looks like an in-memory XBM file.
11295 (xbm_load_image): Renamed from xbm_load_image_file. Work on
11296 memory buffers instead of files.
11297 (xbm_file_p): New function.
11298 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
11299
11300 * lread.c (end_of_file_error): New function.
11301 (read1): Call it instead of signaling `end-of-file' directly.
11302
11303 * print.c (print_error_message): Print data of `end-of-file'
11304 with Fprinc instead of Fprin1.
11305
11306 2000-04-26 Ken Raeburn <raeburn@gnu.org>
11307
11308 * window.c (freeze_window_start): Check that minibuffer scroll
11309 window isn't nil before extracting the window structure pointer
11310 from it.
11311
11312 * undo.c (record_delete): If we hit the end of the undo list, stop
11313 picking elements apart.
11314
11315 2000-04-26 Gerd Moellmann <gerd@gnu.org>
11316
11317 * xdisp.c (display_line): If lines are continued, restore
11318 iterator's ascent/descent information to the values before the
11319 first glyph not fitting on the line.
11320
11321 2000-04-25 Gerd Moellmann <gerd@gnu.org>
11322
11323 * xdisp.c (try_window_id) <all changes above window start>: Adjust
11324 positions in glyph matrix. Don't compute new window end positions.
11325
11326 * dispnew.c (increment_matrix_positions): Renamed from
11327 increment_glyph_matrix_buffer_positions.
11328 (increment_row_positions): Renamed from
11329 increment_glyph_row_buffer_positions.
11330
11331 * dispextern.h: Change names of renamed functions from dispnew.c
11332 in prototypes.
11333
11334 2000-04-24 Gerd Moellmann <gerd@gnu.org>
11335
11336 * fileio.c (Fdo_auto_save): Create directories for auto-save
11337 list file if necessary.
11338
11339 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
11340 from buffer or frame.
11341 (automatic_hscrolling_p): New variable.
11342 (hscroll_windows): Scroll windows horizontally only if automatic
11343 hscrolling is allowed.
11344 (syms_of_xdisp): New variable `automatic-hscrolling'.
11345
11346 * frame.h (struct frame): Add member extra_line_spacing.
11347
11348 * xfns.c (x_set_line_spacing): New function.
11349 (Fx_create_frame): Set line spacing from resources.
11350 (Qline_spacing): New variable.
11351 (syms_of_xfns): Initialize Qline_spacing.
11352
11353 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
11354
11355 * buffer.c (init_buffer_once): Handle extra_line_spacing.
11356 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
11357 (reset_buffer): Don't initialize extra2 and extra3. Initialize
11358 extra_line_spacing from default value.
11359 (init_buffer_once): Initialize default value of extra_line_spacing.
11360
11361 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
11362 and extra3.
11363
11364 * xterm.c (x_produce_glyphs): Remove reference to struct it's
11365 prompt_width. Add extra line spacing.
11366
11367 * term.c (produce_glyphs): Remove reference to struct it's
11368 prompt_width.
11369
11370 * dispextern.h (struct it): Remove member prompt_width, add
11371 extra_line_spacing.
11372
11373 2000-04-22 Gerd Moellmann <gerd@gnu.org>
11374
11375 * dispnew.c (update_frame_line): When writing a whole line, make
11376 sure cursor is in the right row afterwards, otherwise a use of
11377 capability `ch' in cmgoto might leave the cursor in the row below.
11378
11379 2000-04-21 Gerd Moellmann <gerd@gnu.org>
11380
11381 * lisp.h (struct Lisp_Buffer_Cons): Remove.
11382
11383 * keyboard.c (timer_check): Fix typo in comment.
11384
11385 2000-04-21 Kenichi Handa <handa@etl.go.jp>
11386
11387 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
11388 name change: ch -> character.
11389
11390 2000-04-20 Gerd Moellmann <gerd@gnu.org>
11391
11392 * keyboard.c (echo_message_buffer): New variable.
11393 (echo_now): Set echo_message_buffer to the echo area buffer used
11394 to display the echo.
11395 (cancel_echoing): Reset echo_message_buffer to nil.
11396 (read_char): Code rewritten that handles canceling an echo or
11397 echoing a dash, respectively.
11398
11399 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
11400 directory doesn't exist.
11401
11402 2000-04-19 Dave Love <fx@gnu.org>
11403
11404 * fns.c (syms_of_fns): Defsubr mapc.
11405 (concat): Don't allow numeric args.
11406 (Fconcat): Doc change.
11407
11408 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
11409
11410 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
11411 instead define end_match(1|2) more carefully.
11412 Use GET_CHAR_BEFORE_2 for `begline'.
11413
11414 2000-04-19 Gerd Moellmann <gerd@gnu.org>
11415
11416 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
11417 on 64-bit systems where NULL is defined as `0'.
11418
11419 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
11420 the `variable argument list' to make it work on Alpha.
11421
11422 * m/alpha.h (_LP64) [!_LP64]: Define.
11423 (ORDINARY_LINK): Define for NetBSD.
11424
11425 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
11426
11427 2000-04-19 Dave Love <fx@gnu.org>
11428
11429 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
11430 change.
11431
11432 * Makefile.in (LIBS): Don't use.
11433 (GETLOADAVG_OBJ): Define again.
11434 (otherobj): Add GETLOADAVG_OBJ.
11435
11436 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
11437
11438 2000-04-18 Gerd Moellmann <gerd@gnu.org>
11439
11440 * lread.c (read_filtered_event): Cancel and start busy cursor.
11441
11442 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
11443 that the per-character metrics may be null.
11444
11445 2000-04-17 Gerd Moellmann <gerd@gnu.org>
11446
11447 * buffer.c (clone_per_buffer_values): New function.
11448 (Fmake_indirect_buffer): Add optional argument CLONE. Call
11449 clone_per_buffer_values if CLONE is not nil.
11450
11451 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
11452
11453 2000-04-16 Dave Love <fx@gnu.org>
11454
11455 * Makefile.in: Remove obsolete localcpp stuff.
11456 (GETLOADAVG_OBJ): Don't define.
11457 (obj): Move LIBOBJS...
11458 (otherobj): ... to here.
11459 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
11460 whitespace-only lines after the continuation (Irix).
11461
11462 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11463
11464 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
11465
11466 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
11467
11468 2000-04-14 Dave Love <fx@gnu.org>
11469
11470 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
11471 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
11472 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
11473 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
11474 NLIST_STRUCT.
11475
11476 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
11477 autoconfiscated HAVE_GETLOADAVG.
11478
11479 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
11480 BROKEN_MKTIME.
11481
11482 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11483
11484 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
11485 (fill_in_lock_file_name): Avoid existing files that aren't links.
11486
11487 2000-04-14 Dave Love <fx@gnu.org>
11488
11489 * Makefile.in (LIBS, LIBOBJS): New variable.
11490 (INTERVAL_SRC): Convert to make variable.
11491 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
11492 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
11493 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
11494 add LIBOBJS.
11495 (SOME_MACHINE_OBJECTS): Remove interval stuff.
11496 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
11497 (shortlisp): Add facemenu, float-sup, frame.
11498 (SOME_MACHINE_LISP): Remove them from here.
11499 (LIBES): Change unused LDLIBS to autoconf LIBS.
11500
11501 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
11502
11503 2000-04-14 Kenichi Handa <handa@etl.go.jp>
11504
11505 * composite.c (update_compositions): If FROM and TO are not in a
11506 valid range, do nothing.
11507
11508 2000-04-13 Gerd Moellmann <gerd@gnu.org>
11509
11510 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
11511
11512 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
11513
11514 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
11515 as TERMCAP_OBJ.
11516
11517 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
11518
11519 * fileio.c (a_write): Remove redundant semi-colons.
11520 (e_write): Return -1 if failed to write all the data.
11521 This fixes the changes made at 1999-12-15.
11522
11523 2000-04-12 Dave Love <fx@gnu.org>
11524
11525 * fns.c (mapcar1): Test for null vals to support mapc.
11526 (Fmapc): New function.
11527
11528 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
11529
11530 * msdos.c (NUM_MOUSE_BUTTONS): Define.
11531 (IT_frame_up_to_date): Support the buffer local value of
11532 cursor-type, if defined.
11533
11534 2000-04-10 Dave Love <fx@gnu.org>
11535
11536 * editfns.c (preceding-char, following-char): Doc fix.
11537
11538 2000-04-10 Ken Raeburn <raeburn@gnu.org>
11539
11540 * Makefile.in (temacs): Revert 2000-03-12 change.
11541
11542 2000-04-10 Jason Rumney <jasonr@gnu.org>
11543
11544 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
11545
11546 2000-04-10 Gerd Moellmann <gerd@gnu.org>
11547
11548 * xdisp.c (setup_echo_area_for_printing): Choose an echo
11549 area buffer, if it's not set up yet.
11550
11551 * indent.c (compute_motion): Set immediate_quit.
11552
11553 2000-04-09 Gerd Moellmann <gerd@gnu.org>
11554
11555 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
11556 (realize_tty_face): Suppress boldness if colors are the inverse of
11557 the default colors, and tty_suppress_bold_inverse_default_colors_p
11558 is set.
11559 (Ftty_suppress_bold_inverse_default_colors): New function.
11560 (syms_of_xfaces): Defsubr it.
11561
11562 * buffer.c (Frestore_buffer_modified_p): New function.
11563 (syms_of_buffer): Defsubr it.
11564
11565 2000-04-08 Ken Raeburn <raeburn@gnu.org>
11566
11567 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
11568 charset id (int) argument, not a charset (Lisp_Object).
11569
11570 * coding.h (code_convert_string): Declare.
11571 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
11572 object, as the fourth argument to code_convert_string.
11573
11574 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
11575 (Fset_fontset_font): Use EQ to compare lisp objects.
11576
11577 2000-04-05 Ken Raeburn <raeburn@gnu.org>
11578
11579 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
11580 a pointer that looks like a lisp object.
11581 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
11582 zero, instead see whether it's an integer object, since they can't
11583 have intervals.
11584 (GET_INTERVAL_OBJECT): Simply assign to the destination.
11585
11586 * dispnew.c (allocate_matrices_for_frame_redisplay)
11587 (direct_output_forward_char): Use X(U)INT and make_number as needed
11588 to convert between (unsigned) int values and lisp integers.
11589 * keyboard.c (read_key_sequence): Likewise.
11590 * lread.c (substitute_object_recurse): Likewise.
11591 * fns.c (concat, hash_lookup, hash_remove): Likewise.
11592 * minibuf.c (do_completion, Fminibuffer_complete_word)
11593 (Fminibuffer_completion_help): Likewise.
11594 * term.c (produce_special_glyphs): Likewise.
11595
11596 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
11597 * print.c (print_preprocess, print_object): Likewise.
11598
11599 * search.c (compile_pattern): Use NILP when checking for nil.
11600
11601 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
11602 __OPTIMIZE__]: Provide a GNU C macro version that handles
11603 lisp-object unions.
11604 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
11605 field, to better cope with ENABLE_CHECKING and calls that modify a
11606 Lisp_Object using its old value.
11607
11608 2000-04-04 Gerd Moellmann <gerd@gnu.org>
11609
11610 * window.c (compare_window_configurations): Signal an error
11611 if parameters C1 or C2 aren't window configurations.
11612
11613 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
11614 AFTER_POTENTIAL_GC calls around calls to functions that can
11615 signal an error and thus invoke the debugger.
11616
11617 2000-04-03 Gerd Moellmann <gerd@gnu.org>
11618
11619 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
11620 an error if decoding fails.
11621
11622 * keyboard.c (lispy_mouse_names): Variable removed.
11623 (Vlispy_mouse_stem): New variable.
11624 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
11625 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
11626 for any mouse button number. Increase size of mouse_syms and
11627 button_down_location as needed. Call modify_event_symbol with
11628 different arguments.
11629 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
11630 Call modify_event_symbol with different arguments.
11631 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
11632 for any button number. Call modify_event_symbol with different
11633 arguments.
11634 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
11635 Accept a string for NAME_ALIST_OR_STEM.
11636
11637 * lisp.h (larger_vector): Add prototype.
11638
11639 * fns.c (larger_vector): Make externally visible.
11640
11641 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
11642
11643 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
11644
11645 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
11646 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
11647 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
11648 we are between str1 and str2.
11649 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
11650 (PATFETCH): Use `TRANSLATE'.
11651 (PATFETCH_RAW): Fetch multibyte char if applicable.
11652 (PATUNFETCH): Remove.
11653 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
11654 When writing a char, write it directly into the pattern buffer rather
11655 than going needlessly through a temp char-array.
11656 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
11657 multibyte magic and remove the useless `#ifdef emacs'.
11658 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
11659 buffer.
11660
11661 * regex.h (struct re_pattern_buffer): Make field `multibyte'
11662 conditional on `emacs'.
11663
11664 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
11665
11666 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11667
11668 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
11669 non-union-type versions of XMARK and friends here, because XMARK
11670 and friends won't work on an integer field if NO_UNION_TYPE is not
11671 defined.
11672 (make_number): Define as a function if it's not defined as a macro.
11673
11674 * composite.c (run_composite_function): Use NILP when checking for nil.
11675 (syms_of_composite): Delete local var NARGS, pass an int as first
11676 argument to Fmake_hash_table.
11677
11678 * editfns.c (text_property_stickiness): Use NILP to test
11679 Lisp_Object boolean value.
11680 (Fmessage_or_box): Don't use NILP to test int variable.
11681 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
11682 problems reading from and changing the same lisp value in an
11683 XSETSTRING call.
11684
11685 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11686
11687 * term.c (TN_no_color_video): New variable.
11688 (term_init): Intitialize TN_no_color_video.
11689 (enum no_color_bit): New enumeration.
11690 (MAY_USE_WITH_COLORS_P): New macro.
11691 (turn_on_face): Use it to determine if attributes may be used
11692 combined with colors.
11693
11694 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11695
11696 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
11697 with int lvalues via casts; instead, just yield lisp object lvalues.
11698 (enlarge_window): Variable sizep now points to Lisp_Object. Use
11699 proper accessor macros.
11700 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
11701 (grow_mini_window): Fix typo getting int value of root->height.
11702
11703 * xdisp.c (compute_string_pos): Fix order of arguments to
11704 string_pos_nchars_ahead.
11705 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
11706 count arg to variable-arg routines like Frun_hook_with_args and
11707 Fformat.
11708 (back_to_previous_visible_line_start)
11709 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
11710 fixed-arg routines like Fget_char_property and Fmake_string.
11711 (reconsider_clip_changes): Use XINT when comparing integer lisp
11712 objects, or passing them as int arguments.
11713 (mark_window_display_accurate, insert_left_trunc_glyphs)
11714 (append_space, extend_face_to_end_of_line): Use make_number when
11715 storing or passing integer values as lisp objects.
11716 (set_cursor_from_row, highlight_trailing_whitespace): Use
11717 INTEGERP, not implicit test against zero, for glyph object.
11718 (try_window_id): Don't use make_number when we want an int value.
11719
11720 * xfaces.c (xlfd_symbolic_value): Make last argument a
11721 Lisp_Object, to be consistent with callers.
11722 (Fbitmap_spec_p): Use XINT to get numeric value of height.
11723 (lface_hash): Apply XFASTINT to lisp values before folding in.
11724
11725 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
11726 fill in window width and height. Pass an int, not a lisp object,
11727 as first arg to Finsert.
11728
11729 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11730
11731 * xfaces.c (realize_basic_faces): Block input while realizing
11732 the faces.
11733
11734 * keyboard.c (lispy_mouse_names): Add additional mouse names.
11735
11736 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
11737
11738 2000-03-31 Gerd Moellmann <gerd@gnu.org>
11739
11740 * xterm.c (x_produce_glyphs): When displaying unibyte text
11741 or ASCII, handle case that per-char metric is null.
11742
11743 2000-03-30 Ken Raeburn <raeburn@gnu.org>
11744
11745 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
11746
11747 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
11748 (XSUBR, XBUFFER): Verify correct object type before returning
11749 pointer, using eassert.
11750 * frame.h (XFRAME): Likewise.
11751
11752 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
11753 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
11754 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
11755 * data.c (set_internal): Likewise.
11756 * dispextern.h (WINDOW_WANTS_MODELINE_P)
11757 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
11758 * fileio.c (auto_save_1): Likewise.
11759 * insdel.c (check_markers): Likewise.
11760 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
11761 * undo.c (record_insert): Likewise.
11762 * vmsproc.c (child_sig): Likewise.
11763 * window.c (unshow_buffer, window_loop): Likewise.
11764 * xterm.c (x_erase_phys_cursor): Likewise.
11765
11766 2000-03-30 Gerd Moellmann <gerd@gnu.org>
11767
11768 * xfns.c (free_image_cache): Free the cache structure itself
11769 last, after all its members have been freed.
11770
11771 * lisp.h (xstrdup): Add prototype.
11772
11773 * alloc.c (xstrdup): Moved here from xfaces.c.
11774 (allocating_for_lisp): Variable removed.
11775 (lisp_malloc): Block input around the calls to malloc and mem_insert.
11776
11777 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11778 of Fsymbol_value.
11779 (xstrdup): Moved to alloc.c.
11780
11781 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11782
11783 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11784
11785 * emacs.c (main): Fix sense of no-loadup test.
11786
11787 * config.in (ENABLE_CHECKING): Undef.
11788
11789 * lisp.h (struct interval): Replace "parent" field with a union of
11790 interval pointer and Lisp_Object; add new bitfield to use as
11791 discriminant. Change other flag fields to bitfields.
11792 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11793 is defined and the supplied test fails, print a message and abort.
11794 (eassert): New macro. Use CHECK to provide an assert-like facility.
11795
11796 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11797 pointers; abort if the value looks like a lisp object.
11798 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11799 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11800 Modify for new interval parent definition.
11801
11802 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11803 (UNMARK_BALANCE_INTERVALS): Update references that need an
11804 addressable lisp object in the interval structure.
11805 (die): New function.
11806 (suppress_checking): New variable.
11807
11808 * intervals.c (interval_start_pos): Just return 0 if there's no
11809 parent object.
11810
11811 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11812
11813 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11814 and earlier Emacs versions.
11815
11816 * keyboard.c (Ftop_level): Cancel busy-cursor.
11817
11818 * eval.c (call_debugger): Cancel busy-cursor.
11819
11820 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11821
11822 * search.c (Freplace_match): Adjust multibyteness of the current
11823 buffer and NEWTEXT. Free allocated memory before signaling an error.
11824
11825 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11826
11827 * regex.c (analyse_first): New function obtained by ripping out most
11828 of re_compile_fastmap and generalizing it a little bit so that it
11829 can also just return whether a given (sub)pattern can match the empty
11830 string or not.
11831 (regex_compile): Use `analyse_first' to decide whether the loop-check
11832 needs to be done or not for *, +, *? and +? (the loop check is costly
11833 for non-greedy repetition).
11834 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11835
11836 2000-03-28 Dave Love <fx@gnu.org>
11837
11838 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11839
11840 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11841
11842 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11843
11844 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11845 an expression.
11846 (enum re_opcode_t): Update description of succeed_n.
11847 (PATFETCH): Always define.
11848 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11849 operators, char classes, shy-groups and intervals).
11850 Optimize special cases of intervals so as to only use succeed_n and
11851 jump_n when really needed.
11852 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11853 that we don't have to handle the special cases any more.
11854 Simplify on_failure_jump handling as well.
11855
11856 2000-03-28 Jason Rumney <jasonr@gnu.org>
11857
11858 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11859
11860 2000-03-27 Gerd Moellmann <gerd@gnu.org>
11861
11862 * s/freebsd.h (GC_SETJMP_WORKS): Define.
11863
11864 * s/msdos.h (GC_SETJMP_WORKS): Define.
11865
11866 * alloc.c (mark_maybe_object): New function.
11867 (mark_memory): Use it.
11868 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
11869 (setjmp_tested_p, longjmp_done): New variables.
11870 (test_setjmp): New function.
11871 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
11872 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
11873
11874 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11875 to DEC_TEXT_POS and INC_TEXT_POS.
11876
11877 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11878 with parameter MULTIBYTE_P.
11879
11880 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11881
11882 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11883 buffers because it looks for multibyte character byte sequences
11884 which don't exist in unibyte text.
11885
11886 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11887
11888 * xfaces.c (register_color, unregister_color, unregister_colors)
11889 [DEBUG_X_COLORS]: New functions.
11890 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11891
11892 * xfns.c (x_set_cursor_color): Get color reference counts right.
11893
11894 * xterm.c (x_copy_color): New function.
11895 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11896
11897 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11898 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11899 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11900 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11901 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11902 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11903 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11904 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11905 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11906 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11907
11908 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11909 names for handling per-buffer variables.
11910
11911 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11912 instead of MAX_BUFFER_LOCAL_VARS.
11913 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11914
11915 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11916
11917 * xfns.c (x_specified_cursor_type): New function.
11918 (x_set_cursor_type): Use it.
11919
11920 * buffer.h (struct buffer): Add cursor_type.
11921
11922 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11923
11924 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11925 (print_partial_compiled_pattern, re_compile_fastmap):
11926 Handle new opcode.
11927 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11928 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11929 executing it as well as when popping it off the stack to find infinite
11930 loops in non-greedy repetition operators.
11931
11932 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11933
11934 * doc.c (Qfunction_documentation): New variable.
11935 (syms_of_doc): Initialize Qfunction_documentation.
11936 (Fdocumentation): If FUNCTION is a symbol with non-nil
11937 `function-documentation' property, return a documentation derived
11938 from that.
11939
11940 * buffer.c (syms_of_buffer): Add default-cursor-type.
11941 (init_buffer_once): Don't let cursor_type have a local value
11942 in every buffer.
11943
11944 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11945 on buffer-local value of cursor_type.
11946 (x_draw_bar_cursor): Add parameter WIDTH.
11947
11948 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11949 (init_buffer_once): Set default cursor_type value to t.
11950 Mark cursor_type as local everywhere.
11951 (syms_of_buffer): New per-buffer variable cursor-type.
11952
11953 * buffer.h (struct buffer): Remove member local_var_flags,
11954 add local_flags.
11955 (MAX_BUFFER_LOCAL_VARS): New macro.
11956 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11957 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11958 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11959 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11960
11961 * print.c (print_object): Use new macros for per-buffer variables.
11962
11963 * category.c (Fset_category_table): Use new macros for per-buffer
11964 variables.
11965
11966 * buffer.c (buffer_permanent_local_flags): Make a char array.
11967 (max_buffer_local_idx): New variable.
11968 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11969 for new handling of per-buffer variables.
11970 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11971 (init_buffer_once): Initialize per-buffer vars differently.
11972 Set max_buffer_local_idx.
11973
11974 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11975 variables.
11976
11977 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
11978
11979 * data.c (do_symval_forwarding, store_symval_forwarding)
11980 (find_symbol_value, set_internal, default_value, Fset_default)
11981 (Fkill_local_variable, Flocal_variable_p): Use new macros for
11982 per-buffer variables.
11983
11984 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
11985
11986 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11987
11988 * xterm.c (x_term_init): Unblock input around call1 of
11989 Qvendor_specific_keysyms.
11990
11991 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
11992 (find_defun_start): Consider an open parenthesis in column 0
11993 a defun start only if open_paren_in_column_0_is_defun_start is set.
11994 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
11995
11996 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
11997
11998 * eval.c (Fautoload): Add entry in load-history (if after dump).
11999 * lread.c (load-history): Update docstring.
12000
12001 2000-03-24 Gerd Moellmann <gerd@gnu.org>
12002
12003 * indent.c (Fvertical_motion): Always use the current buffer.
12004 Temporarily change the window's buffer, if necessary.
12005
12006 2000-03-23 Gerd Moellmann <gerd@gnu.org>
12007
12008 * xterm.c (fast_find_position): Make sure not to consider rows
12009 not visible in the window.
12010
12011 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
12012
12013 * regex.c (enum syntaxcode): Provide default for non-Emacs.
12014 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
12015
12016 2000-03-22 Jason Rumney <jasonr@gnu.org>
12017
12018 * w32menu.c (single_submenu): Set help string to NULL if none.
12019 (w32_menu_show): Set help string correctly.
12020 (add-menu-item): Set help string in MIIM_DATA for menu item.
12021 Load SetMenuItemInfoA explicitly.
12022 (w32_menu_display_help): New function.
12023
12024 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
12025 (QCdata): Moved to xdisp.c.
12026
12027 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
12028 (Vw32_charset_to_codepage_alist): Removed.
12029 (Vw32_charset_info_alist): New variable.
12030 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
12031 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
12032 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
12033 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
12034 with TODO comment.
12035 (w32_codepage_for_font): Use Vw32_charset_info_alist.
12036 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
12037 Define Vw32_charset_info_alist and w32_charset symbols.
12038
12039 2000-03-22 Jason Rumney <jasonr@gnu.org>
12040
12041 * makefile.nt (w32bdf.obj): Update dependencies.
12042
12043 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
12044
12045 * w32fns.c: Include fontset.h after dispextern.h.
12046 (Fx_create_frame): Do not create fontset.
12047 (w32_load_system_font): Doc fix.
12048 (Fx_close_connection): Free full_name if it is not shared.
12049
12050 * w32term.c: Include fontset.h after dispextern.h.
12051 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
12052 Callers updated.
12053 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
12054 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
12055 (w32_font_is_double_byte): New function, needs body.
12056 (x_append_glyph): Set glyph->glyph_not_available_p.
12057 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12058 it->charset. If it->multibyte_p is zero and it->c is a multibyte
12059 character, convert it to a unibyte character.
12060 (struct glyph_string): Delete member `charset'.
12061 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
12062 calculating it is found.
12063 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12064 the case that per char metric is not available correctly.
12065 (x_fill_glyph_string): Handle the case that the specific glyph is
12066 not available correctly.
12067 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12068 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12069 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12070 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12071 fontset. Don't call FS_LOAD_FONT.
12072
12073 2000-03-22 Ken Raeburn <raeburn@gnu.org>
12074
12075 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
12076 (INT_LISPLIKE): New macro.
12077 (NULL_INTERVAL_P): Use it.
12078 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
12079 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
12080 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
12081
12082 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
12083 explicit references to "parent" field of struct interval and
12084 associated unclean type conversions.
12085 * intervals.c (create_root_interval, root_interval, rotate_right)
12086 (rotate_left, balance_possible_root_interval, split_interval_right)
12087 (split_interval_left, interval_start_pos, find_interval)
12088 (next_interval, previous_interval, update_interval)
12089 (adjust_intervals_for_insertion, delete_node, delete_interval)
12090 (adjust_intervals_for_deletion, merge_interval_right)
12091 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
12092 (copy_intervals_to_string): Likewise.
12093 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
12094 Likewise.
12095 * syntax.c (update_syntax_table): Likewise.
12096
12097 * intervals.c (reproduce_tree_obj): New function, like
12098 reproduce_tree but takes a Lisp_Object for the parent. Declare
12099 with prototype.
12100 (graft_intervals_into_buffer): Use it when appropriate.
12101 (reproduce_tree): Declare with prototype.
12102 (balance_possible_root_interval): Check that the parent is a lisp
12103 object before trying to examine its type.
12104
12105 2000-03-22 Gerd Moellmann <gerd@gnu.org>
12106
12107 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
12108 as strings only if both are known to be strings.
12109
12110 * s/openbsd.h (LIBS_TERMCAP): Undef.
12111
12112 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
12113
12114 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
12115 definitions for non-Emacs compilation.
12116 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
12117 outside of `#ifdef emacs'.
12118 (print_partial_compiled_pattern): Update.
12119 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
12120 (re_compile_fastmap): Merge handling of charset and charset_not (for
12121 emacs and non-emacs compilation as well).
12122 Similarly for (not)categoryspec and (not)syntaxspec.
12123 Don't use the fastmap when reaching `anychar' since the added
12124 complexity is not justified.
12125 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
12126 and (not)syntaxspec. Merge (not)categoryspec.
12127
12128 2000-03-22 Kenichi Handa <handa@etl.go.jp>
12129
12130 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
12131 (FACE_FOR_CHAR): Define them differently for the configuration of
12132 --without-x.
12133
12134 2000-03-21 Dave Love <fx@gnu.org>
12135
12136 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
12137 doc string.
12138
12139 2000-03-21 Gerd Moellmann <gerd@gnu.org>
12140
12141 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
12142 (lface_fully_specified_p): Don't check contents of
12143 LFACE_FONT_INDEX because that attribute is optional.
12144 (realize_x_face): Remove now unwarranted xassert.
12145
12146 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
12147
12148 The following changes are to make font selection based on
12149 characters, not charset. In addition, they recover fontset
12150 facilities while utilizing the new font selection mechanism.
12151
12152 * Makefile.in (fontset.o): Depend on dispextern.h.
12153
12154 * alloc.c (mark_face_cache): Don't mark face->registry.
12155
12156 * dispextern.h (struct glyph): New member glyph_not_available_p.
12157 Use 22 bits for face_id.
12158 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
12159 (struct face): Delete member registry, new member ascii_face.
12160 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
12161 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
12162 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
12163 (struct it): Delete member charset, new member glyph_not_available_p.
12164
12165 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
12166 (struct fontset_info, struct fontset_data): Structs removed.
12167 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
12168 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
12169 (fs_load_font, fs_query_fontset): Adjusted for new argument.
12170 (fs_free_face_fontset, fontset_font_pattern)
12171 (face_suitable_for_char_p, face_for_char)
12172 (make_fontset_for_ascii_face): Extern them.
12173 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
12174 (FS_LOAD_FACE_FONT): New macro.
12175
12176 * fontset.c: All codes rewritten or adjusted for the change of
12177 fontset implementation. Now fontset is represented by char table.
12178 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
12179 Variables removed.
12180 (my_strcasecmp): Function removed.
12181 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
12182 (AREF, ASIZE): New macros.
12183 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
12184 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
12185 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
12186 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
12187 (fontset_id_valid_p, font_family_registry, fontset_name)
12188 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
12189 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
12190 New functions.
12191 (fs_load_font): New arg FACE. Caller changed.
12192 (fs_query_fontset): Argument changed. Caller changed.
12193 (Fquery_fontset): call fs_query_fontset.
12194 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
12195 Functions removed.
12196 (clear_fontset_elements, check_registry_encoding)
12197 (check_fontset_name): New functions.
12198 (syms_of_fontset): Set char-table-extra-slots property of fontset
12199 to 3. Staticpro and initialize Vfontset_table and
12200 Vdefault_fontset. Defsubr fontset_font and fontset_list.
12201
12202 * frame.h (struct frame): Member `fontset_data' removed.
12203 (FRAME_FONTSET_DATA): Macro removed.
12204
12205 * frame.c (make_frame): Don't allocate f->fontset_data.
12206 (Fdelete_frame): Don't free f->fontset_data.
12207
12208 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
12209
12210 * xdisp.c (charset_at_position): Function removed.
12211 (init_iterator): Don't set member charset of struct `it'.
12212 (handle_face_prop, reseat_to_string, set_iterator_to_next)
12213 (next_element_from_display_vector, insert_left_trunc_glyphs):
12214 Likewise.
12215 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
12216 FACE_FOR_CHARSET.
12217 (get_next_display_element, append_space)
12218 (extend_face_to_end_of_line): Likewise.
12219
12220 * xfaces.c (Qx_charset_registry, Vface_default_registry):
12221 Variables removed.
12222 (clear_font_table, frame_update_line_height, load_face_font):
12223 Adjusted for the change of fontset implementation.
12224 (load_face_fontset_font): Function removed.
12225 (pixel_point_size): New function.
12226 (font_list): Argument type changed. Caller changed.
12227 (LFACE_FONT): New macro.
12228 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
12229 (set_lface_from_font_name): Type of arg FONTNAME is changed to
12230 Lisp_Object. Determine the font name by actually loading a font
12231 by the specified pattern. Set LFACE_FONT (lface) to the specified
12232 pattern. Even if a font is not found, don't try alternatives.
12233 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
12234 (set_font_frame_param): If `font' is specified in lface, use it.
12235 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
12236 (lface_same_font_attributes_p): Likewise.
12237 (make_realized_face): Arguent changed. Caller changed. Set
12238 face->ascii_face to face itself.
12239 (free_realized_face): Free face->fontset if face is for ASCII.
12240 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
12241 (deduce_unibyte_registry, x_charset_registry): Functions removed.
12242 (free_realized_multibyte_face): New function.
12243 (lookup_face, lookup_named_face, lookup_derived_face): Argument
12244 changed. Caller changed.
12245 (try_font_list): Argument type changed.
12246 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
12247 (choose_face_font): Argument changed. Handle fontset properly.
12248 (choose_face_fontset_font): Function removed.
12249 (realize_default_face, realize_named_face): Don't remove the
12250 former face here.
12251 (realize_face): Argument changed. Caller changed. Remove face
12252 with the arg former_face_id in advance. Load font for the new face.
12253 (realize_x_face): Argument changed. Caller changed. For a
12254 multibyte character, share fontset with base_face. For a single
12255 byte character, make a new realized fontset. Don't load a font here.
12256 (realize_tty_face): Argument changed. Caller changed.
12257 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
12258 (face_at_buffer_position): Don't check multibyte_p for returning
12259 DEFAULT_FACE_ID.
12260 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
12261 FACE_SUITABLE_FOR_CHARSET_P.
12262 (syms_of_xfaces): Remove code for Qx_charset_registry and
12263 Vface_default_registry.
12264
12265 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
12266 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
12267 (x_per_char_metric): Don't try FONT->default_char. Even if
12268 pcm->width is zero, glyph bits may exist.
12269 (x_encode_char): Always initialize char2b->byte1.
12270 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
12271 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
12272 (x_append_glyph): Set glyph->glyph_not_available_p.
12273 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12274 it->charset. Handle the case that per char metric is not
12275 available. If it->multibyte_p is zero and it->c is a multibyte
12276 character, convert it to a unibyte character.
12277 (struct glyph_string): Delete member `charset'.
12278 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12279 the case that per char metric is not available correctly.
12280 (x_fill_glyph_string): Handle the case that the specific glyph is
12281 not available correctly.
12282 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12283 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12284 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12285 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12286 fontset. Don't call FS_LOAD_FONT.
12287
12288 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
12289 (x_create_tip_frame): Likewise.
12290 (Fx_close_connection): Free full_name of font_info.
12291
12292 * fns.c (optimize_sub_char_table): New function.
12293 (Foptimize_char_table): New function.
12294 (syms_of_fns): Defsubr Soptimize_char_table.
12295
12296 2000-03-20 Gerd Moellmann <gerd@gnu.org>
12297
12298 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
12299 only if buffer is displayed in some window.
12300
12301 * xdisp.c (handle_single_display_prop): Initialize local `value'.
12302 (try_window_reusing_current_matrix): Don't call scroll run
12303 function if run's current and desired position are the same;
12304 this prevents cursor flickering.
12305
12306 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
12307
12308 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
12309
12310 * regex.c (RE_STRING_CHAR): New macro.
12311 (GET_CHAR_AFER_2): Remove.
12312 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
12313 (enum re_opcode_t): Remove on_failure_jump_exclusive.
12314 (print_partial_compiled_pattern, re_compile_fastmap)
12315 (re_match_2_internal): Remove on_failure_jump_exclusive.
12316 (regex_compile): Turn optimizable P+ loops into PP*, so that the
12317 optimization only need to work for * (ie. can use of_keep_string_jump).
12318 Remove the special case for .*\n since it is now covered by the general
12319 optimization.
12320 (re_search_2): Don't bother with `room'.
12321 (skip_one_char): New function.
12322 (skip_noops): Simplify since `memory' is not needed any more.
12323 (mutually_exclusive_p): Restructure slightly to use `switch' and
12324 add handling for "all" remaining cases.
12325 (re_match_2_internal): Change on_failure_jump_smart to use
12326 on_failure_keep_string_jump (and redirect the end-of-loop jump)
12327 rather than on_failure_jump_exclusive.
12328
12329 2000-03-19 Gerd Moellmann <gerd@gnu.org>
12330
12331 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
12332 number of bits per RGB because it's everywhere used as the depth
12333 of the visual.
12334
12335 * term.c (calculate_costs): Remove code dealing with X frames.
12336
12337 2000-03-19 Richard M. Stallman <rms@gnu.org>
12338
12339 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
12340
12341 2000-03-18 Gerd Moellmann <gerd@gnu.org>
12342
12343 * lread.c (read_integer): Unread the last char not consumed.
12344
12345 2000-03-17 Gerd Moellmann <gerd@gnu.org>
12346
12347 * xterm.c (x_update_window_cursor): Don't update in frames
12348 which are in the process of being deleted.
12349
12350 2000-03-16 Gerd Moellmann <gerd@gnu.org>
12351
12352 * Makefile.in (mostlyclean): Add `*.core'.
12353 (clean): Add `bootstrap-emacs'.
12354
12355 * lread.c (read_integer): New function.
12356 (read1): Support read syntax #o, #x, #b, #r.
12357
12358 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
12359
12360 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
12361 make sure POINTER_TO_OFFSET gives the same value before and after
12362 PREFETCH. Use `dfail' to guarantee "atomic" matching.
12363 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
12364 (debug): Now only active if > 0 rather than if != 0.
12365 (DEBUG_*): Update for the new meaning of `debug'.
12366 (print_partial_compiled_pattern): Add missing `succeed' case. Use
12367 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
12368 in `succeed_n', `jump_n' and `set_number_at'.
12369 (store_op1, store_op2, insert_op1, insert_op2)
12370 (at_begline_loc_p, at_endline_loc_p): Add prototype.
12371 (group_in_compile_stack): Move to after its arg's types are
12372 declared and add a prototype.
12373 (PATFETCH): Define in terms of PATFETCH_RAW.
12374 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
12375 (QUIT): Redefine as a nop except for NTemacs.
12376 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
12377 indentation of the greedy-op and shy-group code.
12378 (at_(beg|end)line_loc_p): Fix argument's types.
12379 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
12380 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
12381 (MATCHING_IN_FIRST_STRING): Remove.
12382 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
12383 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
12384 QUIT unconditionally.
12385
12386 2000-03-15 Gerd Moellmann <gerd@gnu.org>
12387
12388 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
12389 a sole completion.
12390
12391 * process.c (send_process): Add a hint that the function
12392 can call Lisp code to its comment.
12393
12394 * lread.c (load_dangerous_libraries): New variable.
12395 (Vbytecomp_version_regexp): New variable.
12396 (safe_to_load_p): New function.
12397 (Fload): Handle files not compiled with Emacs specially.
12398 (syms_of_lread): New Lisp variable load-dangerous-libraries.
12399
12400 2000-03-14 Gerd Moellmann <gerd@gnu.org>
12401
12402 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
12403
12404 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
12405 support functions only if HAVE_X11R6_XIM is defined.
12406 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
12407
12408 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
12409
12410 * xfns.c (X_I18N_INHIBITED): Don't define.
12411 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
12412 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
12413
12414 * config.in (HAVE_X_I18N): Moved here from xterm.h.
12415 (HAVE_X11R6_XIM): Define.
12416
12417 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
12418
12419 * xterm.c (x_term_init): Add support for X resource `synchronous'.
12420 If set, call XSynchronize.
12421
12422 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
12423
12424 * regex.c: Declare a new type `re_char' used throughout the code
12425 for the string char type. It's `const unsigned char' to match the
12426 rest of Emacs. Consistently make sure all pointers to strings use
12427 it and make sure all pointers into the pattern use `unsigned char'.
12428 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
12429 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
12430 code duplication.
12431
12432 * charset.h (GET_CHAR_AFTER_2): Remove.
12433 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
12434
12435 2000-03-12 Ken Raeburn <raeburn@gnu.org>
12436
12437 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
12438 variable before the invocation of YMF_PASS_LDFLAGS, in case both
12439 of them try to use backquotes.
12440
12441 2000-03-12 Dave Love <fx@gnu.org>
12442
12443 * unexelf.c: Restore changes of 1999-10-19.
12444 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
12445 fix its type and alignment; copy it from current process.
12446
12447 2000-03-12 Gerd Moellmann <gerd@gnu.org>
12448
12449 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
12450 has been found. Fix bug not computing timer's predecessor.
12451
12452 * fileio.c (Fread_file_name): Handle case that DIR contains a
12453 file name.
12454
12455 * window.c (Fsave_window_excursion): Doc fix.
12456
12457 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
12458
12459 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
12460
12461 * msdos.c (vga_installed): New function, code moved from
12462 dos_set_window_size.
12463 (Qbar, Qcursor_type, outside_cursor): New variables.
12464 (syms_of_msdos): Intern and staticpro them.
12465 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
12466 shape used outside Emacs when called for the first time.
12467 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
12468 cursor shape used outside Emacs.
12469 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
12470 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
12471 type has changed.
12472 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
12473 parameters specify the cursor. Make qreverse a global
12474 variable (renamed to Qreverse).
12475
12476 2000-03-09 Gerd Moellmann <gerd@gnu.org>
12477
12478 * fns.c (Fy_or_n_p): Cancel busy-cursor.
12479
12480 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
12481
12482 This is a big redesign of failure-stack and register handling, prompted
12483 by bugs revealed when trying to add shy-groups. Overall, what happened
12484 is that loops are now structured a little differently, groups can be
12485 shy and the code is a little simpler.
12486
12487 * regex.h: Update the copyright.
12488 (RE_SHY_GROUPS): New value.
12489 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
12490 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
12491
12492 * regex.c (enum re_opcode_t): Remove jump_past_alt,
12493 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
12494 on_failure_jump_(exclusive, loop and smart). Also fix the comment
12495 for (start|stop)_memory since they now only take one argument (the
12496 second has becomes unnecessary).
12497 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
12498 (print_compiled_pattern): Use %ld to printf long ints and flush to
12499 make debugging a little easier.
12500 (union fail_stack_elt): Make the integer unsigned.
12501 (struct fail_stack_type): Add a `frame' element.
12502 (INIT_FAIL_STACK): Init `frame' as well.
12503 (POP_PATTERN_OP): New macro for re_compile_fastmap.
12504 (DEBUG_PUSH, DEBUG_POP): Remove.
12505 (NUM_REG_ITEMS): Remove.
12506 (NUM_NONREG_ITEMS): Adjust.
12507 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
12508 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
12509 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
12510 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
12511 New macros.
12512 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
12513 address pushed is not the destination of the jump but the source
12514 of it instead.
12515 (NUM_FAILURE_ITEMS): Remove.
12516 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
12517 registers before the actual failure point). Don't hardcode any
12518 meaning for str==NULL anymore.
12519 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
12520 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
12521 Remove.
12522 (REG_UNSET_VALUE): Use NULL (why not?).
12523 (compile_range): Remove declaration since it doesn't exist.
12524 (struct compile_stack_elt_t): Remove inner_group_offset.
12525 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
12526 (regex_grow_registers): Remove dead code.
12527 (FIXUP_ALT_JUMP): New macro.
12528 (regex_compile): Add shy-groups Change loops to use
12529 on_failure_jump_smart&jump instead of
12530 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
12531 initial (dummy_failure_)jump. Remove c1_base (looks like unused
12532 variable to me). Use `jump' instead of `jump_past_alt' and don't
12533 bother with push_dummy_failure in alternatives since it is now
12534 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
12535 emacs' for (re)allocating the stack.
12536 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
12537 from loop when bufp->can_be_null rather than jumping to `done'.
12538 Avoid jumping backwards so as to ensure termination. Use
12539 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
12540 backreferences. Remove dead code in handling of `anychar'.
12541 (skip_noops, mutually_exclusive_p): New functions taken from the
12542 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
12543 improve mutually_exclusive_p to handle ".+\n".
12544 (lowest_active_reg, highest_active_reg)
12545 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
12546 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
12547 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
12548 variables. Push register (in `start_memory') on the stack rather
12549 than storing it in old_reg(start|end). Remove the cycle detection
12550 from `stop_memory', replaced by the use of on_failure_jump_loop
12551 for greedy loops. Add code for the new on_failure_jump_<foo>.
12552 Remove ad-hoc code in `on_failure_jump' to push more registers in
12553 the case of a loop. Take out code from `maybe_pop_jump' into
12554 separate functions and adapt it to the semantics of
12555 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
12556 and push_dummy_failure. Remove dummy_failure handling and
12557 handling of `failures to jump to on_failure_jump' (this last one
12558 was already dead code, it seems).
12559 (group_match_null_string_p, alt_match_null_string_p)
12560 (common_op_match_null_string_p): Remove.
12561
12562 2000-03-08 Dave Love <fx@gnu.org>
12563
12564 * config.in: Don't depend on __STDC__ for volatile.
12565 Add POINTER_TYPE, PTR, PROTOTYPES.
12566
12567 * hftctl.c, strftime.c: Use PROTOTYPES.
12568 * eval.c (find_handler_clause): Likewise.
12569
12570 * mem-limits.h: Use POINTER_TYPE.
12571
12572 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
12573 (memory_warnings): Declare using POINTER_TYPE.
12574
12575 2000-03-08 Gerd Moellmann <gerd@gnu.org>
12576
12577 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
12578
12579 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
12580
12581 * xfns.c: Remove obsolete code in #if 0.
12582 (Fx_focus_frame): New function.
12583
12584 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12585
12586 * coding.c (coding_category_name): Add coding-category-utf-8,
12587 coding-category-utf-16-be, coding-category-utf-16-le.
12588 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
12589 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
12590 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
12591 (detect_coding_utf_8): New function.
12592 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
12593 UTF_16_LOW_SURROGATE_P): New macros.
12594 (detect_coding_utf_16): New function
12595 (detect_coding_mask): When priorities are specified, skip any
12596 categories that have `nil' coding-system. Fix bug of returning
12597 wrong mask when PRIORITIES is specified and detect_coding_XXX()
12598 returns a mask not set in PRIORITIES.
12599 (detect_eol_type_in_2_octet_form): New function.
12600 (detect_eol): selects detect_eol_type_XXX to call according to
12601 cooding->category_idx.
12602 (detect_coding_system): Remove `nil' coding-system in the result.
12603 (Fupdate_coding_systems_internal): Update all coding-categories.
12604
12605 * coding.h (CODING_CATEGORY_IDX_UTF_8)
12606 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
12607 New macros.
12608 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
12609 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
12610 (CODING_CATEGORY_IDX_UTF_16_LE)
12611 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
12612 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
12613 (CODING_CATEGORY_MASK_ANY): Include the above macros.
12614 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
12615
12616 2000-03-07 Gerd Moellmann <gerd@gnu.org>
12617
12618 * doc.c (Fdocumentation_property): If value is not a string,
12619 and doesn't refer to etc/DOC, evaluate it to obtain a string.
12620
12621 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
12622 close the display with XtCloseDisplay. This caused a bus error
12623 on OpenWindows.
12624
12625 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
12626 complete but not unique.
12627
12628 2000-03-06 Gerd Moellmann <gerd@gnu.org>
12629
12630 * process.c (send_process): Remove local variable `procname' that
12631 might become invalid when a GC happens. Instead, access the
12632 process name slot directly.
12633
12634 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
12635 orig_height if set.
12636
12637 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
12638 orig_height if set.
12639
12640 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
12641
12642 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
12643 glyph matrices have been freed.
12644
12645 2000-03-05 Gerd Moellmann <gerd@gnu.org>
12646
12647 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
12648 (bootstrap-temacs): Set LC_ALL to C like for temacs.
12649
12650 * xfns.c (QCdata): Moved to xdisp.c.
12651
12652 * xdisp.c (QCdata): Moved here from xfns.c.
12653 (syms_of_xdisp): Initialize QCdata.
12654
12655 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
12656
12657 * window.c (coordinates_in_window): Use
12658 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
12659 FRAME_INTERNAL_BORDER_WIDTH.
12660
12661 * xdisp.c (try_window_id): Recompute unchanged information if
12662 it is obviously invalid.
12663
12664 * xterm.c (x_term_init): Create a colormap if not using the
12665 default visual.
12666
12667 * xterm.h (select_visual): Change prototype.
12668
12669 * xfns.c (select_visual): Rewritten. Recognize user-specified
12670 visual classes.
12671 (visual_classes): New variable.
12672
12673 2000-03-04 Gerd Moellmann <gerd@gnu.org>
12674
12675 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
12676 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
12677 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
12678 (x_decode_color): Don't handle allocation of white and black specially.
12679 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
12680 XtNcolormap resources.
12681 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
12682 (Fx_create_frame): Initialize color members of x_output structure.
12683 (xpm_load): Pass colormap to XPM lib.
12684
12685 * xfaces.c (x_free_colors): Access colormap of frame using
12686 FRAME_X_COLORMAP. Be paranoid about freeing black and white
12687 when default colormap is used.
12688
12689 * xterm.c (x_term_init): Set Colormap member of x_display_info
12690 structure. Copy colormap if resource `privateColormap' is
12691 specified (PseudoColor only).
12692 (x_setup_relief_color): Access colormap of frame using
12693 FRAME_X_COLORMAP.
12694
12695 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
12696 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
12697
12698 2000-03-04 Jason Rumney <jasonr@gnu.org>
12699
12700 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
12701 other non-platform-specific equivalents.
12702 [WINDOWSNT]: Include w32term.h, fontset.h and define X
12703 specific functions and macros as their w32 equivalents where
12704 non-platform-specifics are not available.
12705 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
12706 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
12707 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
12708 (frame_update_line_height): Use macros to access f->output_data.
12709 (defined_color): Remove FIXME comments; fixed.
12710 (x_face_list_fonts, prepare_face_for_display): Put X specifics
12711 into #ifdef blocks. Add WINDOWSNT blocks.
12712 (Fx_list_fonts): Use macros for accessing font data.
12713 (set_lface_from_font_name): Different default fonts for X and
12714 WINDOWSNT.
12715 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
12716 scalable for backward compatibility.
12717 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
12718 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
12719
12720 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
12721 syms_of_w32faces.
12722
12723 * makefile.nt (w32faces.obj): Remove.
12724 (xfaces.obj): Add.
12725
12726 2000-03-03 Jason Rumney <jasonr@gnu.org>
12727
12728 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
12729 correct parameters.
12730
12731 2000-03-03 Ken Raeburn <raeburn@gnu.org>
12732
12733 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
12734 standard ELF definitions here if the system header does not.
12735
12736 2000-03-03 Gerd Moellmann <gerd@gnu.org>
12737
12738 * xterm.c (PER_CHAR_METRIC): Removed.
12739 (x_per_char_metric_1, x_default_char): New functions.
12740 (x_per_char_metric): If font's default char is invalid, return
12741 metrics of a suitably chosen usable default char.
12742 (x_draw_glyph_string_foreground): If font has an invalid default
12743 char, replace occurrences of unprintable chars with a suitably
12744 chosen usable default char.
12745
12746 2000-03-02 Gerd Moellmann <gerd@gnu.org>
12747
12748 * xterm.c (note_mouse_highlight): Return quickly if frame's
12749 glyph matrices have been freed.
12750
12751 * dispnew.c (free_glyphs): Block input while freeing matrices.
12752
12753 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
12754
12755 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
12756 Use x_free_colors.
12757
12758 * dispextern.h (x_free_colors): Add prototype.
12759
12760 * xfaces.c (x_free_colors): New function.
12761 (unload_color, free_face_colors): Use it.
12762
12763 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
12764
12765 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
12766
12767 * window.c [MSDOS]: Include msdos.h.
12768
12769 2000-03-02 Dave Love <fx@gnu.org>
12770
12771 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
12772
12773 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
12774 set C_OPTIMIZE_SWITCH for gcc.
12775
12776 2000-03-02 Kenichi Handa <handa@etl.go.jp>
12777
12778 * coding.c (coding_save_composition): Be sure to allocate
12779 composition data area in coding even if there's no composition in
12780 the current run.
12781
12782 2000-03-01 Jason Rumney <jasonr@gnu.org>
12783
12784 * w32term.c: Equivalent changes to those made to xterm.c on
12785 2000-02-25 and 2000-02-24.
12786
12787 * w32fns.c: Equivalent changes to those made to xfns.c on
12788 2000-02-25 and 2000-02-21.
12789
12790 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12791 correct line-end convention is followed.
12792
12793 * w32menu.c [HAVE_BOXES]: Remove #undef.
12794 (single_keymap_panes): Remove code for simulating checkmarks.
12795 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12796 Remove code for drawing simulated checkmarks.
12797 (w32_menu_show): make unibyte help string correctly.
12798 (add_menu_item): draw standard Windows checkmarks. Draw radio
12799 buttons as radio buttons if possible.
12800
12801 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12802
12803 * sysdep.c (start_of_text): Don't define this function for NetBSD
12804 with ELF.
12805
12806 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12807 Don't define.
12808 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12809 (LINKER): Don't undef if __NetBSD__ is defined.
12810
12811 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12812
12813 * fileio.c [__NetBSD__]: Define `unix'.
12814
12815 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12816
12817 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12818
12819 * atimer.c (start_atimer): Don't abort when timers are stopped.
12820 (append_atimer_lists): New function.
12821 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12822 arbitrary lists of stopped and running atimers.
12823
12824 * atimer.c (cancel_atimer): Handle canceling an atimer when
12825 some timers are stopped.
12826
12827 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12828 after canceling it.
12829
12830 * fns.c (maybe_resize_hash_table): Handle case of new size
12831 coming out as being the same as old size.
12832
12833 2000-02-27 Jason Rumney <jasonr@gnu.org>
12834
12835 * makefile.nt: Add atimer.h to dependencies.
12836 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12837 * w32console.c: Only disable window system features for dispextern.h
12838 (initialize_w32_display): Build a display info for the console.
12839 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12840 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12841 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12842 as 2 button mice.
12843 * w32gui.h (struct W32FontStruct): Revert last change after change
12844 to xdisp.c.
12845 * w32menu.c (single_submenu): Set up help string.
12846 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12847 (w32_dialog_show): Set up help string.
12848 * w32term.c (w32_display_info_for_display): Remove unused function.
12849 (w32_draw_bitmap): Use pre-built bitmaps.
12850 (w32_initialize_display_info): New function to initialize parts of
12851 display info that are common to both GUI and console frames.
12852 (w32_term_init): Use w32_initialize_display_info. Do not set
12853 Vw32_num_mouse_buttons here, as it is not called for console
12854 frames. Build bitmaps for indicating truncated lines etc.
12855 (x_delete_display): Destroy pre-built bitmaps.
12856 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12857 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12858
12859 2000-02-27 Dave Love <fx@gnu.org>
12860
12861 * lisp.h: Add a bunch of prototypes.
12862
12863 2000-02-26 Kenichi Handa <handa@etl.go.jp>
12864
12865 * keyboard.c (read_char): Set `usec' correctly.
12866
12867 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12868
12869 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
12870 `lambda', set reg[RRR] to the map index.
12871 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
12872 reg[RRR] to 0. Otherwise, set it to -1.
12873
12874 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12875
12876 * emacs.c (main): Remove code snippet commented out with `//'.
12877
12878 2000-02-25 Richard M. Stallman <rms@gnu.org>
12879
12880 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12881 and contains a `:', prepend `/:'.
12882
12883 * window.c (select_window_1): If selected_window is nil,
12884 don't "swap out" the buffer's point.
12885 (Fset_window_configuration): Set selected_window to nil
12886 before calling Fselect_window.
12887 (unshow_buffer): Don't set point in buffer from window's point
12888 if another more recently selected window also shows the buffer.
12889
12890 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12891
12892 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12893
12894 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12895 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12896 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12897 New variables.
12898 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12899 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12900 (hide_busy_cursor): New functions.
12901 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12902
12903 * minibuf.c (read_minibuf): Cancel busy-cursor.
12904
12905 * keyboard.c (command_loop_1): Call start_busy_cursor before
12906 Fcommand_execute and cancel_busy_cursor after it.
12907 (timer_check): Remove busy-cursor code.
12908 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12909 cursor timer.
12910
12911 * process.c (wait_reading_process_input): Remove busy-cursor code.
12912
12913 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12914 Fx_hide_busy_cursor.
12915
12916 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12917 Remove prototyoes.
12918 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12919
12920 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12921
12922 * xterm.c (XTread_socket): Remove busy-cursor code.
12923
12924 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12925 (build_frame_matrix_from_leaf_window): Put code handling
12926 glyph row's not being a slice of a frame row in #if 0.
12927 (sync_window_with_frame_matrix_rows): New function.
12928 (frame_row_to_window): New function.
12929 (mirror_line_dance): Handle copies between windows.
12930
12931 * lread.c (Fload): Use `xfree' instead of `free'.
12932 (init_obarray): Use `xmalloc' instead of `malloc'.
12933
12934 * window.c (Fset_window_buffer): Set WINDOW to the window
12935 after decoding.
12936 (coordinates_in_window): Take frame's internal border width
12937 into account.
12938
12939 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12940
12941 * xterm.c (x_display_and_set_cursor): Display cursor of
12942 non-selected windows depending on the setting of
12943 cursor_in_non_selected_windows.
12944
12945 * xdisp.c (cursor_in_non_selected_windows): New variable.
12946 (syms_of_xdisp): DEFVAR_BOOL it.
12947
12948 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12949
12950 * data.c (Fstring_to_number): If number is greater than what
12951 fits into an integer, return a float.
12952
12953 * eval.c (specbind): Remove references to
12954 keyword_symbols_constant_flag.
12955
12956 * data.c (keyword_symbols_constant_flag): Removed.
12957 (Fmakunbound, set_internal, syms_of_data): Remove references to
12958 keyword_symbols_constant_flag.
12959
12960 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12961
12962 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12963
12964 * syntax.c (multibyte_syntax_as_symbol): New variable.
12965 (syms_of_syntax): Declare it as a Lisp variable.
12966 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12967 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12968 nonzero, treat all multibyte characters as symbol.
12969 (init_syntax_once): Give syntax `word' to all multibyte characters.
12970
12971 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12972
12973 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12974 a deleted frame.
12975
12976 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12977
12978 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
12979
12980 * xfns.c (x_window_to_frame, x_any_window_to_frame)
12981 (x_non_menubar_window_to_frame): Check the busy-cursor window.
12982
12983 2000-02-21 Dave Love <fx@gnu.org>
12984
12985 * frame.c (Vmouse_position_function): New variable.
12986 (Fmouse_position): Use it.
12987 (syms_of_frame): Install it.
12988
12989 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
12990
12991 2000-02-20 Gerd Moellmann <gerd@gnu.org>
12992
12993 * fileio.c (Finsert_file_contents): Unbind the binding of
12994 standard-output done by temp_output_buffer_setup.
12995
12996 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
12997 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
12998 (specbind, unbind_to): Handle most common case of non-constant
12999 symbol with trivial value specially.
13000
13001 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
13002
13003 2000-02-20 Richard M. Stallman <rms@gnu.org>
13004
13005 * data.c (Fmake_variable_buffer_local): Doc fix.
13006 Init found_for_buffer to 0.
13007 (Fmake_variable_frame_local): If the variable has already
13008 been buffer-local, set the check_frame field.
13009
13010 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
13011
13012 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
13013 produced for CODING_MODE_LAST_BLOCK requires.
13014
13015 2000-02-18 Dave Love <fx@gnu.org>
13016
13017 * keyboard.c (echo_keystrokes): Remove declaration.
13018 (Vecho_keystrokes) New variable.
13019 (read_char, record_menu_key, read_key_sequence): Use it to allow
13020 use of float value.
13021 (syms_of_keyboard): Change Vecho_keystrokes declaration.
13022
13023 * lread.c: Undef feature selection macros before defining.
13024
13025 2000-02-18 Gerd Moellmann <gerd@gnu.org>
13026
13027 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
13028 for symbols other than the symbol in question.
13029
13030 2000-02-17 Dave Love <fx@gnu.org>
13031
13032 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
13033
13034 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13035
13036 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
13037
13038 * alloc.c (enum mem_type): Compile unconditionally.
13039
13040 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
13041
13042 * xfaces.c (tty_defined_color): Don't return faulire indication
13043 for unspecified-fg and unspecified-bg pseudo-colors.
13044
13045 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13046
13047 * alloc.c (mark_object): Don't mark symbol names in pure space.
13048 (gc_sweep): Don't unmark symbol names in pure space.
13049
13050 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
13051 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
13052 [GC_MARK_STACK]: New defines.
13053 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
13054 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
13055
13056 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
13057
13058 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
13059 allocate_buffer instead of xmalloc.
13060
13061 * alloc.c (toplevel): Include setjmp.h.
13062 (PURE_POINTER_P): New define.
13063 (enum mem_type) [GC_MARK_STACK]: New enumeration.
13064 (Vdead) [GC_MARK_STACK]: New variable.
13065 (lisp_malloc): Add parameter TYPE, call mem_insert if
13066 GC_MARK_STACK is defined.
13067 (allocate_buffer): New function.
13068 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
13069 (free_float) [GC_MARK_STACK]: Set type to Vdead.
13070 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
13071 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
13072 (MEM_NIL) [GC_MARK_STACK]: New define.
13073 (struct mem_node) [GC_MARK_STACK]: New structure.
13074 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
13075 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
13076 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
13077 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
13078 (mark_stack) [GC_MARK_STACK]: New functions.
13079 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
13080 (clear_marks): Removed.
13081 (gc_sweep): Set free conses' car, free floats' type, free
13082 symbols' function to Vdead. Use lisp_free to free buffers.
13083 (init_alloc_once): Initialize Vdead.
13084 (survives_gc_p): Return non-zero for pure objects.
13085
13086 * alloc.c: Add comments throughout the file.
13087
13088 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
13089 that unblocks alarms.
13090
13091 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
13092 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
13093 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
13094
13095 * frame.c (make_frame): Set frame initiallly to `garbaged'.
13096
13097 2000-02-17 Kenichi Handa <handa@etl.go.jp>
13098
13099 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
13100 avoid infinite error signaling. Allocate sufficient memory for
13101 eol_str in the case that eoltype is Lisp_Int.
13102
13103 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
13104
13105 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
13106 depends on the previous behavior.
13107
13108 2000-02-16 Gerd Moellmann <gerd@gnu.org>
13109
13110 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
13111
13112 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13113
13114 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
13115
13116 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
13117 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
13118 write(2).
13119
13120 2000-02-15 Richard M. Stallman <rms@gnu.org>
13121
13122 * data.c (set_internal): Don't make variable buffer-local
13123 if within a let-binding for the same buffer.
13124 (let_shadows_buffer_binding_p): New function.
13125
13126 * eval.c (specbind): For buffer-local value,
13127 record the current buffer also.
13128 (unbind_to): Cope with that change.
13129
13130 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13131
13132 * window.c (Fsave_window_excursion): Doc fix.
13133
13134 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
13135
13136 * syntax.c (back_comment): Make sure we only consider comment-starters
13137 of the relevant style and return -1 in case of a failure to find the
13138 beginning of the comment.
13139 (Fforward_comment): If back_comment fails, go back to the position just
13140 after the comment-end.
13141 (scan_lists): Add comment describing a very minor bug.
13142
13143 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13144
13145 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
13146 `completion-regexp-list' in the docstring.
13147
13148 2000-02-14 Dave Love <fx@gnu.org>
13149
13150 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
13151
13152 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13153
13154 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
13155 to Emacs' syntax. Also fix the comment about set/not-set meanings
13156 since Emacs syntax is not the value 0 any more.
13157 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
13158 since it's now part of RE_SYNTAX_EMACS.
13159
13160 2000-02-12 Dave Love <fx@gnu.org>
13161
13162 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
13163
13164 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13165
13166 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
13167
13168 2000-02-12 Dave Love <fx@gnu.org>
13169
13170 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
13171
13172 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
13173 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
13174 * s/hpux.h: Don't define HAVE_VFORK.
13175
13176 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
13177
13178 * s/nextstep.h: Don't define HAVE_ALLOCA.
13179
13180 * config.in: Add vfork bits.
13181
13182 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13183
13184 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
13185 unwind function to undo the effect of stopping atimers.
13186
13187 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
13188
13189 * atimer.c (stopped_atimers): New variable.
13190 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
13191 New functions.
13192
13193 * atimer.h (stop_other_atimers, run_all_atimers)
13194 (unwind_stop_other_atimers): Add function prototypes.
13195
13196 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
13197
13198 2000-02-11 Ken Raeburn <raeburn@gnu.org>
13199
13200 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
13201 library may depend on jpeg.
13202 (atimer.o): Depends on atimer.c.
13203
13204 2000-02-11 Kenichi Handa <handa@etl.go.jp>
13205
13206 * insdel.c (del_range_1): Call update_compositions.
13207 (del_range_both): Call update_compositions just once..
13208
13209 2000-02-10 Dave Love <fx@gnu.org>
13210
13211 * xfns.c (create_frame_xic): Fix initialization of automatic
13212 aggregates for pcc.
13213
13214 2000-02-09 Kenichi Handa <handa@etl.go.jp>
13215
13216 * ccl.c (CCL_MAKE_CHAR): New macro.
13217 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
13218 registers by CCL_MAKE_CHAR before calling translate_char.
13219 <CCL_TranslateCharacterConstTbl> Likewise.
13220
13221 2000-02-08 Dave Love <fx@gnu.org>
13222
13223 * lread.c (__EXTENSIONS__): Define.
13224
13225 2000-02-08 Gerd Moellmann <gerd@gnu.org>
13226
13227 * puresize.h (BASE_PURESIZE): Increase to 650000.
13228
13229 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13230
13231 * msdos.c (XMenuActivate): Turn off the cursor after displaying
13232 the help message.
13233
13234 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13235
13236 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
13237 md, mh, mb, mr, and me to the fake termcap entry.
13238
13239 2000-02-06 Ken Raeburn <raeburn@gnu.org>
13240
13241 * sound.c (sound_cleanup): Don't call device close routine if the
13242 function pointer is null.
13243
13244 2000-02-06 Andrew Innes <andrewi@gnu.org>
13245
13246 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
13247 around image definitions and prototypes.
13248 (gamma_correct) [WINDOWSNT]: New prototype.
13249
13250 * w32term.c (x_make_frame_visible): Replace call to
13251 input_poll_signal with poll_for_input.
13252
13253 * window.c [WINDOWSNT]: Include w32term.h.
13254
13255 * xdisp.c [WINDOWSNT]: Include w32term.h.
13256
13257 * makefile.nt: Add dependencies on w32gui.h.
13258 (OBJ1): Include atimer.obj.
13259 ($(BLD)\atimer.obj): New dependency rule.
13260
13261 * w32.c (sigmask): New function (does nothing).
13262 (sigunblock): Ditto.
13263
13264 * frame.c [WINDOWSNT]: Include w32term.h.
13265
13266 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
13267
13268 * lread.c (syms_of_lread): Fix literal newlines.
13269
13270 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
13271 the string constant limit (2048 bytes) in MSVC.
13272 (main): Ditto.
13273
13274 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
13275
13276 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
13277 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
13278 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
13279 dispatch the event.
13280
13281 2000-02-04 Dave Love <fx@gnu.org>
13282
13283 * fileio.c: Remove some unused vars.
13284 (_GNU_SOURCE): Define (for euidaccess).
13285
13286 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
13287
13288 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
13289 gcpro1, gcpro2.
13290 (read_minibuf): Deal with allow_props correctly.
13291
13292 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
13293
13294 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
13295
13296 2000-02-03 Ken Raeburn <raeburn@gnu.org>
13297
13298 * search.c (compile_pattern): If a cache entry has a nil regexp,
13299 fill in that entry instead of clobbering a previously cached
13300 string regexp.
13301
13302 2000-02-02 Ken Raeburn <raeburn@gnu.org>
13303
13304 * puresize.h (BASE_PURESIZE): Increase to 610000.
13305
13306 2000-02-02 Gerd Moellmann <gerd@gnu.org>
13307
13308 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
13309 can GC.
13310
13311 2000-02-02 Kenichi Handa <handa@etl.go.jp>
13312
13313 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
13314 instead of incrementing ic directly.
13315 <CCL_WriteExprConst> Likewise.
13316 <ccl_set_expr>: Set ic to jump_address.
13317
13318 * fileio.c (e_write): Fix the handling of
13319 CODING_FINISH_INSUFFICIENT_SRC.
13320
13321 2000-02-01 Dave Love <fx@gnu.org>
13322
13323 * editfns.c (Fpropertize): Doc fix.
13324
13325 * process.c (Fstart_process): Doc fix.
13326
13327 * eval.c: Fix various doc strings not to duplicate information
13328 from help-manyarg-func-alist.
13329
13330 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
13331
13332 * doc.c (Vhelp_manyarg_func_alist): New variable.
13333 (Fdocumentation): Use it.
13334 (syms_of_doc): Define it.
13335
13336 2000-01-31 Gerd Moellmann <gerd@gnu.org>
13337
13338 * xterm.c (xim_open_dpy): Remove unused local variable.
13339
13340 * emacs.c (USAGE): Use term `display options' instead of `X options'.
13341
13342 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
13343 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
13344
13345 * fns.c (sweep_weak_table): New function.
13346 (sweep_weak_hash_tables): Use it. Keep on marking until there
13347 is no more change.
13348
13349 2000-01-30 Gerd Moellmann <gerd@gnu.org>
13350
13351 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
13352 that XTread_socket does not crash by trying to call XNoOp on a
13353 closed display.
13354
13355 2000-01-30 Jason Rumney <jasonr@gnu.org>
13356
13357 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13358 Change selected_frame to SELECTED_FRAME ().
13359 (w32_console_mouse_position): Remove #ifndef MULE from around
13360 `insist' parameter.
13361
13362 * makefile.nt: Remove dosfns.obj.
13363
13364 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
13365
13366 * w32fns.c (w32_defined_color): Check for valid frame before
13367 applying gamma correction. Eliminate dependency on frame elsewhere.
13368 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
13369 (w32_to_x_font): Use resx and resy not height_in and width_in.
13370 (x_to_w32_font): Doc fix.
13371 (xlfd_strip_height): New function to strip and return font height.
13372 (w32_font_match): Compare height separately from rest of xlfd
13373 spec, using xlfd_strip_height.
13374
13375 * w32term.c (w32_term_init): Swap resx and height_in, resy and
13376 width_in. Use w32_defined_color in place of defined_color.
13377
13378 * w32faces.c: Merge more of DOS and X specifics in preparation for
13379 merge with xfaces.c.
13380 (defined_color): Remove FIXME comment.
13381 (tty_color_name): Provide w32-specific function.
13382 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
13383
13384 * w32console.c (turn_on_face, turn_off_face): Removed.
13385 (w32_face_attributes): New function.
13386 (Global_variables): Reduce scope where possible.
13387 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
13388 fill attribute.
13389 (hl_mode): Don't modify text attributes.
13390 (write_glyphs): Don't do anything if len <= 0. Use
13391 w32_face_attributes to get attributes for drawing. Write
13392 terminating codes using char_attr_normal.
13393 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
13394 (update_begin, update_end): Likewise.
13395 (vga_stdcolor_name): New function.
13396 (initialize_w32_display): Remove char_attr_reverse and char_attr.
13397 (Fset_screen_color): Remove char_attr_reverse.
13398
13399 2000-01-29 Gerd Moellmann <gerd@gnu.org>
13400
13401 * xfns.c (xic_set_preeditarea): Take window parameter and
13402 window-relative pixel-positions.
13403
13404 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
13405 is its frame's selected window.
13406 (xim_instantiate_callback): Likewise.
13407
13408 * xfns.c (x_create_im): Removed.
13409 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
13410 (supported_xim_styles): Renamed from supported_styles.
13411 (best_xim_style): Renamed from best_style.
13412 (create_frame_xic): Renamed from xic_create_frame.
13413 (free_frame_xic): Renamed from xic_destroy_frame.
13414
13415 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
13416
13417 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
13418 our frames, call XFilterEvent with 2nd parameter `None'.
13419 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
13420 returning XBufferOverflow.
13421 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
13422 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
13423 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
13424 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
13425 (xim_initialize, xim_close)
13426 [HAVE_X_I18N && HAVE_X11R6]: New functions.
13427 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
13428 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
13429 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
13430
13431 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
13432 and `xim_styles'.
13433 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
13434 `xic_style' and `xic_xfs'.
13435 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
13436 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
13437 (FRAME_XIM): Removed.
13438
13439 * xfns.c (supported_styles): New variable.
13440 (DEFAULT_STYLE, DEFAULT_FONT): New macros
13441 (xic_create_xfontset, best_style, xic_create_frame)
13442 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
13443 (xic_set_xfontset): New functions.
13444
13445 2000-01-28 Dave Love <fx@gnu.org>
13446
13447 * s/irix6-5.h: Revert last change after change to irix5-0.h.
13448
13449 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
13450
13451 2000-01-28 Gerd Moellmann <gerd@gnu.org>
13452
13453 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
13454 for *scratch* if it already existed.
13455
13456 * emacs.c (USAGE): New macro.
13457 (main): Use it to display usage information.
13458
13459 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13460
13461 Support for the menu-help feature:
13462
13463 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
13464
13465 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
13466 part of the line to the termscript file.
13467 (IT_clear_to_end): Clear the entire line, not just its beginning.
13468 (menu_help_message, prev_menu_help_message): New variables.
13469 (IT_menu_make_room): Make room for the help_text member.
13470 (IT_menu_display): New argument disp_help; all callers changed.
13471 If disp_help is non-zero, store the help text of the active menu
13472 item in menu_help_message.
13473 (XMenuAddPane): Initialize the help_text member to NULL.
13474 (XMenuAddSelection): New argument help_text. Store it in the
13475 XMenu structure.
13476 (XMenuActivate): New argument help_callback. If the value of
13477 menu_help_message has changed since the last time, display the
13478 menu help message text while waiting for the mouse to move. Clear
13479 the echo area before exiting.
13480 (XMenuDestroy): Free the help_text member.
13481
13482 2000-01-27 Gerd Moellmann <gerd@gnu.org>
13483
13484 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
13485 XMenuAddSelection. Pass help callback to XMenuActivate.
13486 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
13487
13488 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13489
13490 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
13491 and EMACS_SET_USECS.
13492
13493 2000-01-26 Dave Love <fx@gnu.org>
13494
13495 * editfns.c (Fchar_after, Fchar_before): Doc fix.
13496
13497 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
13498 an error may be signalled.
13499
13500 2000-01-26 Gerd Moellmann <gerd@gnu.org>
13501
13502 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
13503 LD_SWITCH_SYSTEM inherited from irix5-0.h.
13504
13505 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
13506
13507 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13508
13509 * charset.c (Fstring): If there is a multibyte char among
13510 the args, always return a multibyte string.
13511
13512 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13513
13514 * sysdep.c (sys_select): Turn atimers off and on instead of
13515 recording and restoring old alarm handler
13516
13517 * process.c (toplevel): Include atimer.h.
13518 (create_process_1): Rewritten.
13519 (create_process): Use atimers instead of alarm.
13520 (wait_reading_process_input) [hpux]: Turn atimers off instead
13521 of turning off SIGALRM.
13522 (wait_reading_process_input): Turn off atimers instead off
13523 calling stop_polling.
13524
13525 * emacs.c (main): Call init_atimer.
13526
13527 * keyboard.c (toplevel): Include systime.h and atimer.h.
13528 (polling_for_input): Removed because unused.
13529 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
13530 (poll_timer): New variable.
13531 (poll_for_input, poll_for_input_1): New functions.
13532 (start_polling, stop_polling): Rewritten.
13533
13534 * keyboard.h (polling_for_input): Removed.
13535
13536 * atimer.h, atimer.c: New files.
13537
13538 * Makefile.in (obj): Add atimer.o.
13539 (atimer.o): New target.
13540
13541 * blockinput.h (pending_atimers): Add extern declaration.
13542 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
13543
13544 * lisp.h (popup_activated_flag): Add extern declaration.
13545
13546 * xmenu.c (popup_activated_flag): Make externally visible.
13547 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
13548 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
13549
13550 * xterm.c (toplevel): Include atimer.h.
13551 (toolkit_scroll_bar_interaction): New variable.
13552 (Fxt_process_timeouts): Removed.
13553 (x_process_timeouts): New function.
13554 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
13555 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
13556 (x_make_frame_visible): Call poll_for_input_1 instead of
13557 input_poll_signal. Don't call alarm.
13558 (x_initialize): Install timer calling x_process_timeouts.
13559
13560 2000-01-24 Dave Love <fx@gnu.org>
13561
13562 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
13563 Don't use -cckr -- apparently not now necessary.
13564
13565 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
13566
13567 * msdos.c (IT_menu_display): Truncate long menu lines at the right
13568 screen boundary.
13569
13570 2000-01-23 Jason Rumney <jasonr@gnu.org>
13571
13572 * w32fns.c (w32_defined_color): Apply gamma correction before
13573 trying to map to the palette.
13574 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
13575 to w32_clear_rect.
13576
13577 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
13578 here. Callers changed to always pass real device context.
13579 (w32_draw_bitmap): Likewise.
13580 (w32_get_glyph_overhangs): Likewise.
13581 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
13582 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
13583 pfnSetScrollInfo and SetScrollRange.
13584 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
13585 back into MULE characters after decoding them.
13586 (x_get_glyph_face_and_encoding): Likewise.
13587 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
13588 GetCharABCWidthsW fails, since this is defined on Windows 9x.
13589 (x_produce_glyphs): Calculate per char metrics for a character
13590 that we know exists in default font when font_not_found_p is true.
13591
13592 2000-01-22 Jason Rumney <jasonr@gnu.org>
13593
13594 * makefile.nt (intervals.obj, composite.obj): New modules.
13595 (composite.h): Added as dependency where appropriate.
13596
13597 * w32gui.h (XGCValue): New struct for emulating X GCs.
13598
13599 * w32term.h (XCharStruct): New struct for emulating X.
13600
13601 * w32console.c (turn_on_face, turn_off_face): New functions.
13602 (change_line_highlight): New prototype for new redisplay.
13603 (write_glyphs): Support multibyte text. Support faces.
13604
13605 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
13606
13607 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
13608 throughout. struct frame * in place of FRAME_PTR.
13609 Skeleton support for images, toolbars, tooltips from xfns.c.
13610 (Fx_create_frame): Use system default for default scroll bar width.
13611 (w32_get_arg): Renamed from x_get_arg.
13612 (Fx_file_dialog): New function.
13613 (w32_list_fonts): Check cache before asking system.
13614 (Vw32_enable_synthesized_fonts): New variable.
13615 (Vw32_enable_italics): Obsolete, removed.
13616
13617 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13618 Use SELECTED_FRAME macro.
13619
13620 * w32menu.c: Add skeleton support for help strings on menus.
13621 (add_menu_item): Native checkbox and radio support added, but not
13622 yet enabled due to bugs.
13623 (push_menu_item): Add parameters type, selection and help.
13624 Callers updated.
13625 Formatting changes to reduce unnecessary diffs with xmenu.c.
13626
13627 * w32select.c (Fw32_set_clipboard_data): Update call to
13628 find_charset_in_str.
13629
13630 * w32term.c: Complete rewrite for new redisplay based on new
13631 xterm.c with necessary sections merged back in from old w32term.c.
13632
13633 2000-01-21 Richard M. Stallman <rms@gnu.org>
13634
13635 * data.c (set_internal): Further fix in same criterion.
13636
13637 2000-01-20 Richard M. Stallman <rms@gnu.org>
13638
13639 * data.c (set_internal): Fix the criteria for whether
13640 to swap out the old cached binding.
13641
13642 2000-01-19 Dave Love <fx@gnu.org>
13643
13644 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
13645
13646 2000-01-18 Kenichi Handa <handa@etl.go.jp>
13647
13648 * regex.c (re_compile_fastmap): While checking a range table for
13649 `charset', skip flag bits for a character class correctly.
13650
13651 2000-01-17 Gerd Moellmann <gerd@gnu.org>
13652
13653 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
13654
13655 * xfns.c (x_window): Call lw_create_widget with new parameter list.
13656
13657 * widget.c (EmacsFrameSetCharSize): Change size of children first
13658 because of problems with main window geometry management under Lesstif.
13659
13660 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
13661 MENU_ITEMS_ITEM_.*.
13662 (MENU_ITEMS_ITEM_HELP): New enumerator.
13663 (push_menu_item): Add parameter HELP. Record help in menu_items.
13664 (single_menu_item, single_submenu, list_of_items): Call
13665 push_menu_item with new parameter.
13666 (single_submenu): Set help string in widget value.
13667 (menu_highlight_callback): New function.
13668 (set_frame_menubar): Call lw_create_widget with new
13669 parameter list.
13670 (xmenu_show, xdialog_show): Ditto.
13671
13672 2000-01-13 Gerd Moellmann <gerd@gnu.org>
13673
13674 * sound.c (Fplay_sound): Improve doc string.
13675
13676 2000-01-11 Richard M. Stallman <rms@gnu.org>
13677
13678 * lisp.h (set_internal): Enter the new arg.
13679
13680 * eval.c (specbind): Record buffer-local variables specially,
13681 indicating which buffer's binding was saved.
13682 (unbind_to): Restore buffer-local variables specially
13683 in the proper buffer.
13684
13685 * data.c (set_internal): New arg BUF.
13686
13687 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
13688 * data.c (Fset): Pass new arg to set_internal.
13689 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
13690
13691 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13692
13693 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
13694
13695 2000-01-11 Richard M. Stallman <rms@gnu.org>
13696
13697 * minibuf.c (Ftry_completion): Doc fix.
13698
13699 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13700
13701 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
13702 vector, too.
13703
13704 2000-01-11 Andreas Schwab <schwab@suse.de>
13705
13706 * coding.c (code_convert_region): Initialize total_skip.
13707
13708 2000-01-08 Dave Love <fx@gnu.org>
13709
13710 * eval.c (Fuser_variable_p): Check customizability too.
13711
13712 2000-01-07 Gerd Moellmann <gerd@gnu.org>
13713
13714 * minibuf.c (Fcompleting_read): Doc fix.
13715
13716 2000-01-05 Gerd Moellmann <gerd@gnu.org>
13717
13718 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
13719 -L /usr/local/lib.
13720
13721 * xfns.c (x_create_im): New function to set IM and IC of a frame.
13722 Check that input style is supported before trying to create an
13723 IC for it.
13724 (x_window): Call x_create_im.
13725
13726 2000-01-04 Gerd Moellmann <gerd@gnu.org>
13727
13728 * xfns.c (current_gif_memory_src): New variable.
13729 (gif_load): Record the address of the current memory source
13730 in current_gif_memory_src.
13731 (gif_read_from_memory): Use current_gif_memory_src.
13732
13733 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
13734 macros statement form.
13735
13736 * sound.c (struct sound): Renamed from struct sound_file.
13737 (struct sound): Add members `data' and `header_size'.
13738 (enum sound_attr): Add SOUND_DATA.
13739 (current_sound, current_sound_device): Variables renamed from
13740 sound_file and sound_device.
13741 (parse_sound): Parse :data.
13742 (parse_sound): Handle sound data in strings.
13743 (find_sound_type): Function renamed from find_sound_file_type.
13744 (wav_init, au_init): Fail if sound's header_size is smaller than
13745 needed header size.
13746 (wav_play, au_play): Play sounds from string data.
13747
13748 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
13749
13750 * lisp.h: Add prototype for allocate_string_data.
13751
13752 * alloc.c (Fgarbage_collect): Return number of live and free strings.
13753
13754 * alloc.c (mark_buffer): Remove code in #if 0.
13755 (gc_sweep): Ditto.
13756 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
13757 (strings_consed): New variable.
13758 (allocate_string): Set it.
13759 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
13760 (Fmemory_use_counts): Return strings_consed. Use Flist.
13761
13762 * alloc.c: General cleanup in comments etc. Remove conditional
13763 compilation for `standalone'.
13764
13765 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
13766
13767 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
13768 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
13769 (DONT_COPY_FLAG): Removed.
13770 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
13771 (struct sdata, struct sblock): New
13772 (struct string_block): Rewritten.
13773 (STRINGS_IN_STRING_BLOCK): New macro.
13774 (oldest_sblock, current_sblock, total_strings, total_free_strings)
13775 (large_sblocks, string_blocks, string_free_list): New variables.
13776 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
13777 (init_strings): Rewritten.
13778 (allocate_string, allocate_string_data, compact_small_strings)
13779 (free_large_strings, sweep_strings): New functions.
13780 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13781 (struct string_block_head, current_string_block)
13782 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13783 (STRING_PAD): Removed.
13784 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13785 (Fgarbage_collect): Don't set mark bit in large strings.
13786 (mark_object): Mark strings differently. Mark symbol names
13787 differently.
13788 (survives_gc_p): Test marked strings differently.
13789 (gc_sweep): Sweep strings differently, unmark strings in
13790 symbol names.
13791 (compact_strings): Removed.
13792
13793 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13794
13795 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13796 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13797
13798 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13799
13800 * fileio.c (Finsert_file_contents): Signal error if visiting file
13801 in a non-empty buffer.
13802
13803 * term.c (encode_terminal_code): Fix the previous change.
13804
13805 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13806
13807 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13808 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13809
13810 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13811
13812 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13813
13814 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13815 need to test for MSDOS frames.
13816
13817 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13818
13819 * dosfns.c (unspecified_colors): Remove.
13820 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13821 unspecified_bg.
13822 (msdos_stdcolor_name): Return strings for unspecified fore- and
13823 back-ground colors.
13824
13825 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13826 (syms_of_xfaces): Remove their staticpro's.
13827 (tty_color_name): Return Lisp strings for unspecified fore- and
13828 back-ground colors.
13829 (Finternal_set_lisp_face_attribute): Remove the special treatment
13830 for Qunspecified_{f,b}g.
13831 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13832
13833 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13834
13835 * xdisp.c (reseat_at_next_visible_line_start): Position before
13836 newline only if ending up on a newline.
13837 (next_element_from_ellipsis): Return success. Handle case of
13838 displaying no ellipsis. Fix case of ellipsis defined in display table.
13839 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13840 returns 0.
13841
13842 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13843
13844 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13845 (Fcolor_supported_p): Renamed from face-color-supported-p.
13846
13847 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13848
13849 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13850 list of colors renamed to tty-defined-color-alist.
13851 (tty_color_name): Pass the frame to tty-color-by-index.
13852 (realize_tty_face): tty-color-alist is now a function which
13853 accepts the frame as argument.
13854
13855 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13856
13857 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13858
13859 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13860 encode_terminal_code.
13861
13862 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13863
13864 * dispnew.c (mode_line_string): Support termcap frames as well.
13865
13866 2000-01-01 Gerd Moellmann <gerd@gnu.org>
13867
13868 * syntax.c (Fforward_word): Undo previous change.
13869
13870 * editfns.c (Fconstrain_to_field): Don't constrain if
13871 inhibit-field-text-motion is non-nil.
13872 (Fline_beginning_position): Undo previous change.
13873 (Fline_end_position): Ditto.
13874
13875 * syntax.c (Fforward_word): Notice field boundaries only if
13876 inhibit-field-text-motion is nil.
13877
13878 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13879
13880 * editfns.c (Vinhibit_field_text_motion): New variable.
13881 (inhibit-field-text-motion): New DEFVAR_LISP.
13882 (Fline_beginning_position, Fline_end_position): Notice field
13883 boundaries only if inhibit-field-text-motion is nil.
13884
13885 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13886 All calls adjusted.
13887 (x_build_heuristic_mask): Likewise.
13888 (xbm_load_image_from_file): Change error output.
13889 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13890 (gif_load, gs_load, x_kill_gs_process): Ditto.
13891
13892 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13893 color indices when accessing raster pixels.
13894 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13895 one of :file or :data.
13896 (enum pbm_keyword_index): Add PBM_DATA.
13897 (pbm_format): Add :data.
13898 (pbm_image_p): Allow either :file or :data.
13899 (pbm_read_file): New function.
13900 (pbm_scan_number): Rewritten to read from string.
13901 (pbm_load): Support :data.
13902
13903 See ChangeLog.8 for earlier changes.
13904
13905 ;; Local Variables:
13906 ;; coding: iso-2022-7bit
13907 ;; End:
13908
13909 Copyright (C) 2001 Free Software Foundation, Inc.
13910 Copying and distribution of this file, with or without modification,
13911 are permitted provided the copyright notice and this notice are preserved.