]> code.delx.au - gnu-emacs/blob - src/ChangeLog
*** empty log message ***
[gnu-emacs] / src / ChangeLog
1 2001-10-31 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * s/hpux11.h: New file.
4
5 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
6
7 * emacs.c (USAGE1): Show command line option --no-window-system
8 instead of --no-windows in usage.
9 (standard_args): Rename --no-windows to --no-window-system.
10 (bug_reporting_address): Follow Emacs coding conventions.
11
12 * eval.c (Fcommandp): Doc fix.
13 Change doc-string comments to `new style' [w/`doc:' keyword].
14
15 * frame.c (Fframe_live_p): Doc fix.
16
17 * buffer.c (selective-display-ellipses): Doc fix.
18
19 2001-10-31 Gerd Moellmann <gerd@gnu.org>
20
21 * lread.c (to_multibyte): Fix computation of new read_buffer_size.
22
23 * xfaces.c (realize_x_face): If C is not a single-byte character,
24 set the face's colors_copied_bitwise_p instead of the defaulted_p
25 members which have a different meaning.
26 (free_face_colors): Do nothing for a face whose colors have been
27 copied bitwise.
28
29 * dispextern.h (struct face) <colors_copied_bitwise_p>: New
30 member.
31
32 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
33
34 * marker.c, mocklisp.c: Change doc-string comments to `new style'
35 [w/`doc:' keyword].
36
37 2001-10-31 Gerd Moellmann <gerd@gnu.org>
38
39 * fns.c (require_unwind): Return Lisp_Object.
40
41 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
42
43 * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
44 (last-input-char): Revert doc-string to be the same as the
45 doc-string of `last-input-event'.
46
47 * xdisp.c: Fix typos in comments.
48
49 2001-10-31 Gerd Moellmann <gerd@gnu.org>
50
51 * window.c (grow_mini_window): Handle case that the root
52 window is already smaller than the nominal mininum height.
53
54 2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
55
56 * emacs.c (main): Don't call keys_of_macros any more.
57
58 * lisp.h (keys_of_macros): Remove.
59
60 * macros.c (keys_of_macros): Remove.
61
62 * xfaces.c (Fface_attribute_relative_p): Declare args.
63
64 2001-10-30 Jason Rumney <jasonr@gnu.org>
65
66 * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
67 (enum_font_cb2): Ignore fonts with vertical orientation.
68
69 2001-10-30 Richard M. Stallman <rms@gnu.org>
70
71 * keyboard.c (Finput_pending_p): Doc fix.
72
73 2001-10-30 Gerd Moellmann <gerd@gnu.org>
74
75 * xterm.c (x_after_update_window_line): Don't run the code
76 clearing in borders for rows whose visible height is 0.
77
78 * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
79 resized_p flag is set. If not set, use the much less flickering
80 method previously used.
81
82 * dispnew.c (change_frame_size_1): Set frame's resized_p.
83
84 * frame.h (struct frame) <resized_p>: New member.
85
86 * lread.c (to_multibyte): Ensure read_buffer is at least twice
87 as large as the number of bytes to convert.
88
89 * lread.c (to_multibyte): New function.
90 (read1): Use it.
91
92 2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
93
94 * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
95
96 2001-10-30 Gerd Moellmann <gerd@gnu.org>
97
98 * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
99 (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
100 if the row's fill_line_p is set and drawing the last glyph with
101 DRAW_IMAGE_{RAISED,SUNKEN}.
102
103 * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
104
105 2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
106
107 * xmenu.c: Include coding.h and charset.h.
108 (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
109 (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
110 (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
111 Explicitly set wv->help. Use `TRUE' rather than `True'.
112 (menu_help_callback): Use empty_string.
113
114 * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
115 (Fx_popup_dialog): Explicitly init f.
116 (w32_menu_display_help): Use empty_string.
117
118 2001-10-29 Richard M. Stallman <rms@gnu.org>
119
120 * fns.c (Frequire): Detect recursive try to require the same
121 feature 3 or more levels deep, and get error.
122 (require_unwind): New subroutine.
123 (require_nesting_list): New variable.
124 (syms_of_fns): Init and staticpro it.
125
126 * print.c (print_object): Clarify indication of insertion type.
127
128 2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
129
130 * coding.c (syms_of_coding): Document that locale-coding-system is
131 used for decoding input on X.
132
133 * window.c (Fscroll_left, Fscroll_right): Doc fix.
134
135 2001-10-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
136
137 * keyboard.c (Finput_pending_p): Fix typo in doc-string.
138 (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
139
140 2001-10-29 Gerd Moellmann <gerd@gnu.org>
141
142 * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
143 use NO_CURSOR if cursor_in_non_selected_windows is false.
144
145 * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
146 the slant attribute if FRAME is t.
147
148 * xfns.c (x_set_internal_border_width): Set frame garbaged
149 when X window doesn't exist yet.
150
151 * xterm.c (x_after_update_window_line): Clear internal border
152 in different circumstances.
153
154 * xterm.c (XTread_socket) <KeyPress>: Don't use
155 STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
156 <handa@etl.go.jp>.
157
158 2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
159
160 * m/ibms390.h: New file. From Adam Thornton
161 <athornton@sinenomine.net>.
162
163 2001-10-28 Gerd Moellmann <gerd@gnu.org>
164
165 * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
166
167 * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
168 a loop counter.
169
170 2001-10-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
171
172 * emacs.c: Use argv[0] instead of emacs when -t was specified.
173
174 * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
175 keyword].
176 Fix typos in comments.
177
178 * emacs.c (bug_reporting_address): New function.
179 Use it when displaying usage message.
180
181 * minibuf.c (read_minibuf): Remove unused external declaration of
182 variable `Qread_only'.
183
184 * keymap.c (access_keymap): Remove unused variable `charset'.
185
186 2001-10-28 Miles Bader <miles@gnu.org>
187
188 * xfaces.c (merge_face_heights): Handle TO being relative as well.
189 Remove #ifdef'd-out code.
190 (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
191 (syms_of_xfaces): Initialize them.
192
193 2001-10-27 Jason Rumney <jasonr@gnu.org>
194
195 * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
196 <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
197 position using the system caret.
198
199 * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
200 (w32_system_caret_height, w32_system_caret_x)
201 (w32_system_caret_y): New variables for tracking system caret.
202 (w32_initialize): Initialize them.
203 (x_display_and_set_cursor): Make system caret follow the active cursor.
204
205 * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
206 New messages types.
207
208 * w32term.c (note_mouse_highlight): Clear old help_echo.
209
210 2001-10-27 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
211
212 * xterm.c: Fix typo in a comment.
213
214 * emacs.c: Fix typos in comments.
215 Remove unnecessary spaces.
216 Change doc-string comments to `new style' [w/`doc:' keyword].
217 (USAGE2): Fix typos in usage string.
218
219 * xterm.c: Fix typo in a comment.
220
221 * lisp.h: (gdb_lisp_params): Remove code in #if 0 which is now in
222 emacs.c.
223
224 2001-10-27 Gerd Moellmann <gerd@gnu.org>
225
226 * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
227 instead of 1/2 line_height in the heuristic for skipping
228 farther backward when target_y was not reached.
229
230 * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
231 Display errno only if non-zero.
232 (sound_warning): New function.
233 (vox_configure): Don't treat failing to set sample rate as error.
234 (various places): Improve error messages.
235
236 2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
237
238 * fileio.c (Faccess_file): Run the argument filename through
239 Fexpand_file_name, before using it.
240
241 * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
242 ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
243
244 2001-10-26 Gerd Moellmann <gerd@gnu.org>
245
246 * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
247
248 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
249 Fix clearing in the case of scroll bars on the right.
250
251 2001-10-26 Juanma Barranquero <lektu@terra.es>
252
253 * w32gui.h (XImage): Add a dummy typedef.
254
255 2001-10-26 Gerd Moellmann <gerd@gnu.org>
256
257 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
258
259 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
260
261 * frame.c (Fframe_parameter): Fix last change.
262
263 * fileio.c: Revert last change (which removed old commented-out
264 version of expand-file-name). Add a comment that explains why
265 this old version should not be removed.
266
267 2001-10-25 Gerd Moellmann <gerd@gnu.org>
268
269 * frame.c (Fframe_parameter): Fix a bug whereby some
270 ``artificial'' frame parameters, like `minibuffer' were not
271 obtained by calling Fframe_parameters.
272
273 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
274 cursor differently.
275
276 * xdisp.c (move_it_vertically_backward): Compute line height
277 differently. Add heuristic to try to be more compatible to 20.x.
278
279 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
280
281 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
282
283 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
284 boolean.
285
286 2001-10-25 Miles Bader <miles@gnu.org>
287
288 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
289 BG is a pointer to a structure, not a structure.
290 (gif_format, png_format): Add missing commas.
291
292 2001-10-24 Richard M. Stallman <rms@gnu.org>
293
294 * xfaces.c (Fface_attributes_as_vector): New function.
295 (syms_of_xfaces): Defsubr it.
296
297 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
298
299 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
300 variable `area'.
301
302 2001-10-25 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
303
304 * search.c (scan_newline): Remove unused variable `selective_display'.
305
306 2001-10-25 Miles Bader <miles@gnu.org>
307
308 * dispextern.h (struct image): Add `background',
309 `background_valid', and `background_transparent' fields.
310 (image_background, image_background_transparent): New declarations.
311 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
312 * xfns.c (image_background, image_background_transparent)
313 (four_corners_best): New functions.
314 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
315 (gs_format): Add `:background' entry.
316 (lookup_image): Set IMG's background color if specified.
317 (pbm_load, xbm_load_image, png_load): Set IMG's background field
318 when appropriate.
319 (x_clear_image_1): Reset `background_valid' and
320 `background_transparent_valid' fields.
321 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
322 calculating it here. Set IMG's background_transparent field.
323 (enum xpm_keyword_index): Add XPM_BACKGROUND.
324 (enum png_keyword_index): Add PNG_BACKGROUND.
325 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
326 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
327 (enum gif_keyword_index): Add GIF_BACKGROUND.
328 (enum gs_keyword_index): Add GS_BACKGROUND.
329 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
330 Pre-calculate image background color where necessary.
331 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
332 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
333 color to use for image glyph reliefs.
334
335 2001-10-24 Gerd Moellmann <gerd@gnu.org>
336
337 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
338 in full-width rows.
339
340 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
341 Fix clearing of area not covered by scroll bar.
342
343 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
344
345 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
346 and `real_start'.
347 (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
348 (glyph_rect): Remove unused variable `area'.
349
350 2001-10-24 Gerd Moellmann <gerd@gnu.org>
351
352 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
353
354 * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
355 (row_containing_pos): Take additional argument DY.
356 Treat rows ending in middle of char differently.
357 (display_line): Handle tabs on window systems differently.
358
359 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
360 with additional argument.
361
362 * dispextern.h (row_containing_pos): Adjust prototype.
363
364 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
365 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
366 (try_window_id, try_window_reusing_current_matrix)
367 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
368 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
369
370 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
371
372 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
373 gnuemacs).
374 (HAVE_BOXES): Fix typo in comment.
375 (push_menu_pane): Fix typo in comment.
376
377 * xdisp.c: (display_prop_string_p): Remove unused local declaration
378 of `Qwhen'.
379 (single_display_prop_string_p): Remove unused local declarations
380 of `Qwhen' and `Qmargin'.
381 (string_buffer_position): Remove unused variable `around'.
382 (store_frame_title): Remove unused variable `width'.
383
384 * window.c: Don't define max.
385 (coordinates_in_window): Remove unused variable `uy'.
386
387 * widget.c: Don't define max.
388
389 * process.c: Don't define max.
390 (create_process): Remove unused variable `buffer'.
391
392 2001-10-23 Gerd Moellmann <gerd@gnu.org>
393
394 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
395
396 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
397
398 * xfaces.c (Finternal_set_lisp_face_attribute)
399 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
400 frame is on a windowed display.
401
402 2001-10-23 Gerd Moellmann <gerd@gnu.org>
403
404 * dispnew.c (sync_window_with_frame_matrix_rows):
405 Fix handling of windows which aren't full-width, fix handling
406 of marginal areas.
407
408 * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
409
410 2001-10-23 Andreas Schwab <schwab@suse.de>
411
412 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
413 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
414
415 2001-10-23 Gerd Moellmann <gerd@gnu.org>
416
417 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
418 REAL_END. Notice if cursor gets overwritten.
419 (notice_overwritten_cursor): Take X positions as parameters.
420 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
421 around call to x_draw_glyphs.
422
423 2001-10-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
424
425 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
426 instead of C) and usage.
427
428 * editfns.c (char-to-string): Fix argument names (use CHAR instead
429 of C) and usage.
430
431 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
432 `left', `max_width' and `max_height'.
433
434 2001-10-23 Gerd Moellmann <gerd@gnu.org>
435
436 * xdisp.c (display_line): For a tab continued to the next line,
437 set row's ends_in_middle_of_char_p.
438
439 2001-10-22 Gerd Moellmann <gerd@gnu.org>
440
441 * xdisp.c (display_line): Fix computation of continuation lines
442 width for TABs.
443
444 2001-10-22 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
445
446 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
447 `Qlaplace'.
448
449 * fileio.c: Remove unused code.
450
451 2001-10-22 Miles Bader <miles@gnu.org>
452
453 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
454 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
455 Remove `DOC_STRINGS_IN_COMMENTS' cases.
456
457 2001-10-21 Jason Rumney <jasonr@gnu.org>
458
459 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
460
461 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
462
463 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
464 (Finsert_string): Avoid the multi-line string literals warning.
465
466 2001-10-22 Miles Bader <miles@gnu.org>
467
468 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
469 (Fdocumentation): Don't use it.
470 (syms_of_doc): Don't initialize it.
471
472 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
473 * print.c (Fwith_output_to_temp_buffer): Likewise.
474 * window.c (Fsave_window_excursion): Likewise.
475 * editfns.c (Fsave_excursion, Fsave_current_buffer)
476 (Fsave_restriction): Likewise.
477 * eval.c (Frun_hooks, Frun_hook_with_args)
478 (Frun_hook_with_args_until_failure)
479 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
480 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
481 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
482 (Funwind_protect, Fcondition_case): Likewise.
483 * coding.c (Ffind_operation_coding_system): Likewise.
484 * keyboard.c (Ftrack_mouse): Likewise.
485
486 2001-10-21 Miles Bader <miles@gnu.org>
487
488 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
489 (Fmake_hash_table): Add usage: string to doc string.
490 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
491 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
492 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
493 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
494 (Fml_prefix_argument_loop): Likewise.
495
496 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
497
498 * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
499
500 * sysdep.c (init_sys_modes): Change doc-string comments to `new
501 style' [w/`doc:' keyword].
502
503 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
504 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
505 comments to `new style' [w/`doc:' keyword].
506
507 2001-10-21 Jason Rumney <jasonr@gnu.org>
508
509 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
510
511 * w32term.c (remember_mouse_glyph): New function.
512 (w32_mouse_position): Use it.
513 (note_mouse_movement): If the mouse moved off the glyph, remember
514 its new position.
515
516 * w32term.h (struct w32_output): Correct spelling of x_compatible.
517 (w32_display_info): Add mouse_face_overlay.
518
519 * w32term.c (notice_overwritten_cursor): Renamed from
520 note_overwritten_text_cursor. Rewritten to take glyph widths into
521 account.
522 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
523 (fast_find_string_pos): New function.
524 (fast_find_position): Return the correct vpos. Add parameter
525 STOP. In the final row, stop before glyphs having STOP as object.
526 Don't consider glyphs that are not from a buffer.
527 (fast_find_position) [0]: Add a presumably more correct version
528 for after 21.1.
529 (expose_window_tree, expose_frame): Don't compute intersections here.
530 (expose_window): Do it here instead.
531 (expose_window_tree, expose_window, expose_line): Return 1 when
532 overwriting mouse-face.
533 (expose_window): If W is the window currently being updated, mark
534 the frame garbaged.
535 (expose_frame): If mouse-face was overwritten, redo it.
536 (x_use_underline_position_properties): New variable.
537 (syms_of_xterm): DEFVAR_BOOL it.
538 (x_draw_glyph_string): Add comment to use it in future.
539 (x_draw_glyph_string): Restore clipping after drawing box.
540 Fix a computation of the underline position.
541 (w32_get_glyph_string_clip_rect): Minor cleanup.
542 (x_fill_stretch_glyph_string): Remove an assertion.
543 (x_produce_glyphs): Don't convert multibyte characters
544 to unibyte characters in unibyte buffers.
545 (cursor_in_mouse_face_p): New function.
546 (x_draw_stretch_glyph_string): Use it to choose a different GC
547 when drawing a cursor within highlighted text. Don't draw
548 background again if it has already been drawn.
549 (x_draw_glyph_string_box): Don't draw a full-width
550 box just because the glyph row's full_width_p flag is set.
551 (x_draw_glyphs): Fix computation of rightmost x for
552 full-width rows.
553 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
554 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
555 change bottom shadow accordingly. Some cleanup.
556 (x_update_window_end): Handle overwritten mouse face
557 also for tool bar windows.
558 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
559 DRAW is DRAW_IMAGE_RAISED.
560 (clear_mouse_face): Return 1 if text with mouse face was
561 actually redrawn. Make the function static. Reset
562 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
563 optimize away highlighting if we pass over that same overlay again.
564 (note_mouse_highlight): Call mouse_face_overlay_overlaps
565 to detect a case where we have to highlight a different region
566 despite not having left the currently highlighted region.
567 Set mouse_face_overlay in the x_display_info. Avoid changing the
568 mouse pointer shape when show_mouse_face has already done it, or
569 there is no need. Handle mouse-face and help-echo in strings.
570 (glyph_rect): New function.
571 (w32_mouse_position): Use it to raise the threshold for mouse
572 movement event generation.
573 (w32_initialize_display_info): Initialize the x_display_info's
574 mouse_face_overlay.
575 (w32_set_vertical_scroll_bar): Don't clear a zero height
576 or width area.
577 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
578 a widget to zero height.
579
580 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
581 Protect unibyte strings created by replacing their multibyte
582 equivalents in menu_items.
583 (w32_menu_show): Don't overwrite an item's name with its key
584 description in case the description is a multibyte string.
585 (single_submenu): Some cleanup.
586
587 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
588 (postprocess_image): New function.
589 (lookup_image): Call it for all image types except PostScript.
590 (x_kill_gs_process): Call postprocess_image.
591 (tiff_error_handler, tiff_warning_handler): New functions.
592 (tiff_load): Install them as handlers.
593 (x_kill_gs_process): Recognize if someone has cleared the image
594 cache under us.
595 (valid_image_p): Protect better against invalid image
596 specifications. Previous code could signal an error.
597 (Fx_hide_tip, Fshow_tip): Doc fix.
598 (Fv_max_tooltip_size): New variable.
599 (syns_of_xfns): DEFVAR_LISP it.
600 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
601 window buffer to *tip* right after creating the frame. Set frame's
602 window_width. Use a maximum tooltip size specified by
603 Vx_max_tooltip_size, if that has valid contents.
604 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
605 Make sure the tooltip is completely visible.
606 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
607 (Fx_create_frame): Adjust the frame's height for presence
608 of the tool bar before calling x_figure_window_size.
609 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
610 when the window gets smaller.
611 (x_set_foreground_color): Set frame's cursor_pixel.
612 (x_set_foreground_color, x_set_background_color): Cleaned up.
613 (x_set_font): Handle case of x_new_fontset returning the same name
614 as before, although there was a change in fontsets.
615
616 2001-10-21 Miles Bader <miles@gnu.org>
617
618 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
619 (Flogxor): Add usage: string to doc string.
620 * charset.c (Fstring): Likewise.
621 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
622 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
623
624 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
625
626 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
627
628 * alloc.c: Reindent DEFUNs with doc: keywords.
629
630 * abbrev.c (Finsert_abbrev_table_description): Reindent.
631
632 * frame.c: Change doc-string comments to `new style' [w/`doc:'
633 keyword].
634
635 2001-10-20 Gerd Moellmann <gerd@gnu.org>
636
637 * (Version 21.1 released.)
638
639 2001-10-20 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
640
641 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
642
643 * xdisp.c (invisible_text_between_p): Put prototype inside #if
644 0 because unused.
645
646 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
647 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
648 Change doc-string comments to `new style' [w/`doc:' keyword].
649
650 2001-10-20 Miles Bader <miles@gnu.org>
651
652 The following changes remove the glyph_row `inverse_p' field,
653 which is never set anymore, due to other changes:
654
655 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
656 (reassert_line_highlight, change_line_highlight): Declarations removed.
657 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
658 (line_hash_code, row_equal_p, fake_current_matrices)
659 (build_frame_matrix_from_leaf_window, update_frame_line)
660 (update_frame_line, update_frame_line, update_frame_line):
661 Don't use `inverse_p' field.
662 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
663 change_line_highlight_hook.
664 (XTreassert_line_highlight, x_change_line_highlight):
665 Functions removed.
666 (x_fix_overlapping_area, x_write_glyphs, expose_area)
667 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
668 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
669 `inverse_p' field.
670 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
671 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
672 (w32_reassert_line_highlight, x_change_line_highlight):
673 Functions removed.
674 * w32console.c (reassert_line_highlight, change_line_highlight):
675 Functions removed.
676 (initialize_w32_display): Don't set reassert_line_highlight_hook
677 or change_line_highlight_hook.
678 (hl_mode): Function removed.
679 (reset_terminal_modes, set_terminal_modes, update_begin)
680 (update_end, w32_face_attributes, initialize_w32_display):
681 (clear_frame, ins_del_lines): Don't call it.
682 * termhooks.h (reassert_line_highlight_hook)
683 (change_line_highlight_hook): Declarations removed.
684 * term.c (reassert_line_highlight_hook)
685 (change_line_highlight_hook): Variables removed.
686 (reassert_line_highlight, change_line_highlight): Functions removed.
687 * msdos.c (IT_reassert_line_highlight)
688 (IT_change_line_highlight): Functions removed.
689 (internal_terminal_init): Don't set reassert_line_highlight_hook
690 or change_line_highlight_hook.
691 (highlight): Variable removed.
692 (IT_set_face, IT_update_begin, IT_update_end)
693 (IT_set_terminal_modes): Don't set or use it.
694
695 The following changes remove inverse-video support for terminals
696 that use a `magic cookie' standout mode. Due to changes in the
697 way mode-lines are displayed, such support no longer works
698 anyway, and it's probable that almost no one uses such terminals
699 anymore:
700
701 * term.c (standout_requested): Variable removed.
702 (update_end, highlight_if_desired): Don't use it.
703 (chars_wasted, copybuf): Variables removed.
704 (write_standout_marker): Function removed.
705 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
706 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
707 Don't use `chars_wasted' or `copybuf'.
708 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
709 Set `costs_set' to true.
710 (cursor_to, clear_end_of_line): Test `costs_set' instead of
711 `chars_wasted'.
712 (clear_end_of_line): Function removed.
713 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
714 (clear_to_end): Call `clear_end_of_line' instead of
715 `clear_end_of_line_raw'.
716 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
717 (term_init): Don't set them.
718 Turn off any standout/underline modes that require magic cookies.
719 (ins_del_lines, highlight_if_desired, background_highlight)
720 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
721 Remove special processing for magic-cookie standout modes.
722 (turn_off_face, turn_on_face): Remove special processing for
723 underline magic-cookie glitch.
724
725 2001-10-19 Richard M. Stallman <rms@gnu.org>
726
727 * eval.c (syms_of_eval): Doc fixes.
728
729 2001-10-19 Gerd Moellmann <gerd@gnu.org>
730
731 * xdisp.c (redisplay_internal): Don't clear echo area if the
732 mini-window is selected.
733
734 2001-10-19 Miles Bader <miles@gnu.org>
735
736 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
737 doesn't take precedence if the affected property's value is nil.
738
739 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
740
741 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
742 with fields and suggest using `forward-line' to avoid them.
743 * editfns.c (Fline_beginning_position, Fline_end_position):
744 Clarify documentation.
745
746 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
747
748 * keymap.c (current_minor_maps): `override' only shadows its
749 correspondent in minor-mode-map-alist, not the whole tail.
750
751 2001-10-18 Andrew Innes <andrewi@gnu.org>
752
753 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
754 optimization. The fontp->encoding array was not being initialized
755 correctly when compiled with optimizations by MSVC.
756
757 2001-10-18 Gerd Moellmann <gerd@gnu.org>
758
759 * xdisp.c (display_line): Indicate empty lines in active mini-window.
760
761 2001-10-17 Andrew Innes <andrewi@gnu.org>
762
763 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
764
765 * w32fns.c (w32_load_system_font): Cache codepage for font, in
766 font_info.charset field.
767
768 * w32term.c (w32_encode_char): Get cached codepage from font_info,
769 rather than working it out by calling w32_codepage_for_font for
770 every glyph.
771
772 2001-10-17 Andrew Innes <andrewi@gnu.org>
773
774 * w32term.c (w32_read_socket): Determine clipping rectangle for
775 the entire frame, including areas covered by scrollbars and the
776 menubar. This avoids internal arguments about whether a frame is
777 fully obscured or not.
778
779 2001-10-17 Gerd Moellmann <gerd@gnu.org>
780
781 * xdisp.c (try_window_id): Undo last change. Give up if
782 window ends in strings.
783
784 * xdisp.c (try_window_id): Don't display lines after the window
785 end if the rest of the window after the window end was already blank.
786
787 * xdisp.c (try_window_id): Remove code that was only there
788 for the release of 21.1.
789
790 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
791
792 2001-10-17 Miles Bader <miles@gnu.org>
793
794 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
795 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
796 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
797 Change doc-string comments to `new style' [w/`doc:' keyword].
798 (DOC_STRINGS_IN_COMMENTS): Macro removed.
799 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
800 out make-docfile.
801
802 2001-10-16 Miles Bader <miles@gnu.org>
803
804 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
805
806 2001-10-16 Gerd Moellmann <gerd@gnu.org>
807
808 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
809 *scratch*.
810
811 2001-10-16 Ken Raeburn <raeburn@gnu.org>
812
813 Avoid the assumption that car and cdr slots of cons cells are
814 addressable lvalues; this allows for easier experimentation with
815 other lisp implementations that may not permit such accesses for
816 various reasons. Not quite complete -- buffer.c still needs some
817 work, and w32/mac files need rechecking -- so compile-time
818 enforcement is left disabled for now.
819
820 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
821 gcc with a union-based Lisp object rep. Redefine as no-op for now.
822 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
823 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
824 (XSETCAR, XSETCDR): New macros.
825 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
826 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
827 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
828 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
829 XSETCDR.
830 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
831 * buffer.c (record_buffer, Fbury_buffer)
832 (swap_out_buffer_local_variables, recenter_overlay_lists)
833 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
834 fields of a cons cell respectively.
835 * callint.c (quotify_args, Fcall_interactively): Likewise.
836 * ccl.c (Fregister_code_conversion_map): Likewise.
837 * coding.c (detect_coding_system): Likewise.
838 * composite.c (get_composition_id, make_composition_value_copy):
839 Likewise.
840 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
841 (swap_in_symval_forwarding, set_internal, Fset_default)
842 (Fmake_variable_buffer_local, Fmake_local_variable)
843 (Fmake_variable_frame_local): Likewise.
844 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
845 * keymap.c (Fset_keymap_parent, store_in_keymap)
846 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
847 * minibuf.c (get_minibuffer): Likewise.
848 * search.c (Fmatch_data): Likewise.
849 * textprop.c (extend_property_ranges): Likewise.
850 * undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
851 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
852 Likewise.
853 * w32term.c (x_delete_display): Likewise.
854 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
855 Likewise.
856 * xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
857 * doc.c (store_function_docstring): Use XSETCARFASTINT.
858 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
859 (Fread_file_name): Use XSETCAR.
860 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
861 CHECK_NUMBER_CDR.
862 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
863 * frame.c (Fmake_terminal_frame): Use XSETCDR.
864 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
865 CHECK_NUMBER_CDR.
866 * keyboard.c (read_char): Alter list traversal to avoid taking the
867 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
868 (parse_menu_item): Use XSETCAR and XSETCDR.
869 (reach_char_x_menu_prompt): Use XSETCAR.
870 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
871 (Fcommand_execute): Use XSETCDR.
872 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
873 (openp): Change list traversal to avoid using XCAR as lvalue.
874 (read_list): Use XSETCDR.
875 * process.c (wait_reading_process_input): Change wait_for_cell
876 handling to avoid taking addresses of cons cell slots.
877 * xselect.c (x_own_selection, x_handle_selection_clear)
878 (x_clear_frame_selections): Use XSETCDR.
879 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
880 (x_handle_property_notify, x_get_foreign_selection)
881 (x_handle_selection_notify): Use XSETCAR.
882
883 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
884
885 * buffer.c: Put doc strings in comments.
886
887 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
888
889 2001-10-15 Sam Steingold <sds@gnu.org>
890
891 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
892
893 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
894
895 * process.c (process-inherit-coding-system-flag)
896 (get-buffer-process): Do not confuse make-docfile with doc strings
897 in comment.
898
899 * editfns.c (Fchar_to_string): Make doc string consistent with
900 arguments. Put doc strings in comments.
901
902 * abbrev.c, minibuf.c: Put doc strings in comments.
903
904 2001-10-15 Gerd Moellmann <gerd@gnu.org>
905
906 * window.c (window_loop): Don't check for Fother_buffer returning nil.
907
908 * window.c (select_window_1): Unfreeze window start. Remove a
909 doubled test for WINDOW being live.
910
911 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
912
913 * fns.c (Fmapconcat): Fix typo in a doc string.
914
915 * dispnew.c (Fsleep_for): Fix typo in a doc string.
916
917 2001-10-15 Gerd Moellmann <gerd@gnu.org>
918
919 * xterm.c (x_draw_glyph_string): Restore clipping after
920 drawing box.
921
922 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
923
924 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
925
926 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
927
928 * indent.c (skip_invisible): Use new retval of
929 TEXT_PROP_MEANS_INVISIBLE.
930
931 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
932 If a parent is reached and noinherit is set, exit immediately.
933 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
934
935 * s/ms-w32.h (EXEC_SUFFIXES):
936 * s/msdos.h (EXEC_SUFFIXES):
937 * process.h (EXEC_SUFFIXES): Remove.
938
939 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
940 (decode_suffixes): Remove.
941
942 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
943 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
944 (invisible_ellipsis_p): Remove.
945
946 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
947 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
948 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
949 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
950 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
951
952 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
953
954 * lisp.h (Ftop_level): Add prototype.
955
956 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
957 (XTread_socket): Improve style of comments to follow other
958 comments.
959
960 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
961 is already prototyped in included lisp.h).
962
963 * frame.c (Fset_mouse_position): Improve style of comment to
964 follow other comments.
965 (Fset_mouse_pixel_position): Improve style of comment to follow
966 other comments.
967 (Fmake_frame_visible): Doc fix and typo in comment.
968 (Fmake_frame_invisible): Doc fix and typo in comment.
969 (Ficonify_frame): Fix typo in comment.
970
971 2001-10-14 Gerd Moellmann <gerd@gnu.org>
972
973 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
974 * term.c, alloc.c: Put doc strings in comments.
975
976 2001-10-13 Gerd Moellmann <gerd@gnu.org>
977
978 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
979 Provide definitions for doc strings in comments.
980
981 * fns.c: Put doc strings in comments.
982
983 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
984
985 * dired.c (file_name_completion): Ignore a candidate directory if
986 it matches an element in completion-ignored-extensions that ends
987 in a slash.
988 (syms_of_dired) <completion-ignored-extensions>: Mention the above
989 feature in the doc string.
990 (Ffile_name_completion): Ditto.
991
992 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
993
994 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
995
996 * xfns.c (syms_of_xfns): Update calls to Fprovide.
997
998 * lisp.h (Fprovide): Update prototype.
999 (Ffeaturep, invisible_p): Remove.
1000
1001 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
1002 (DOLIST, LOOP_PROPVAL): New macros.
1003 (invisible_p, invisible_ellipsis_p): Use them.
1004 (invisible_noellipsis_p): New function.
1005 (syms_of_xdisp): Use empty_string.
1006
1007 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
1008
1009 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
1010 (syms_of_lread) <Vafter_load_alist>: Update docstring.
1011
1012 * print.c (Fwith_output_to_temp_buffer): Align with
1013 internal_with_output_to_temp_buffer.
1014 (print_preprocess): Use traverse_intervals_noorder.
1015 (print_object): Update call to traverse_intervals.
1016
1017 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
1018 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
1019
1020 * intervals.c (traverse_intervals_noorder): New function.
1021 (search_for_interval, count_intervals): Use it.
1022 (traverse_intervals): Use less stack space and drop `depth' arg.
1023
1024 * fns.c (Ffeaturep): Add new `subfeature' arg.
1025 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
1026 (Qsubfeatures): New var.
1027 (syms_of_fns): Initialize it.
1028
1029 * keymap.c (Fkey_description): Use empty_string.
1030 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
1031 (syms_of_keymap): Setup inheritance between maps.
1032 Don't export Sdescribe_bindings_internal any more.
1033
1034 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
1035
1036 2001-10-12 Gerd Moellmann <gerd@gnu.org>
1037
1038 * xterm.c (notice_overwritten_cursor): Renamed from
1039 note_overwritten_text_cursor. Rewritten to take glyph widths into
1040 account.
1041
1042 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
1043
1044 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
1045 multi-line strings without a trailing "\n\".
1046
1047 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1048
1049 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
1050 defined.
1051
1052 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
1053
1054 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
1055
1056 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
1057 * w32proc.c (sys_spawnve):
1058 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
1059 * w32.c (check_windows_init_file):
1060 * sound.c (Fplay_sound):
1061 * emacs.c (init_cmdargs):
1062 * process.c (Fstart_process): Update calls to openp.
1063
1064 * callproc.c (Vexec_suffixes): New var.
1065 (Fcall_process): Update call to openp.
1066 (decode_suffixes): New function.
1067 (syms_of_callproc): Init exec-suffixes.
1068
1069 * lread.c (Vload_suffixes, default_suffixes): New vars.
1070 (openp): Take a lisp list of suffixes.
1071 Check for file-name-handlers even if the file was absolute already.
1072 (syms_of_lread): Declare load-suffixes.
1073 (Fload): Fix up call to openp.
1074 Don't bother checking for file-name-handler at the very beginning.
1075
1076 * keymap.h (Fcopy_keymap): Don't export.
1077
1078 * lisp.h (empty_string): Declare.
1079 (Vload_suffixes, Vexec_suffixes): Declare.
1080 (openp): Update prototype.
1081
1082 * emacs.c (empty_string): New var.
1083 (syms_of_emacs): Initialize it.
1084
1085 * search.c (wordify): Use it.
1086
1087 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
1088 selected window if it's not displayed there. Handle the case
1089 when the window is dedicated.
1090 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
1091
1092 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
1093
1094 * syntax.h (struct gl_state_s): Change the meaning of b_property.
1095 Remove left_ok and right_ok.
1096 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
1097 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
1098 new meaning of b_property.
1099
1100 * syntax.c (update_syntax_table): Simplify.
1101 (Fforward_comment): Don't skip quoted chars when going backward.
1102
1103 2001-10-11 Gerd Moellmann <gerd@gnu.org>
1104
1105 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
1106 in case I is of some unsigned type, in which case
1107 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
1108 comparison becomes bogus.
1109
1110 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
1111 (Fuser_full_name): Fix bug treating a float as a fixnum.
1112
1113 * data.c (Fstring_to_number): Use make_fixnum_or_float.
1114
1115 * lisp.h (make_fixnum_or_float): New macro.
1116
1117 * lisp.h (circular_list_error): Add prototype.
1118
1119 * data.c (Qcircular_list): New variable.
1120 (circular_list_error): New function.
1121 (syms_of_data): Initialize it Qcircular_list.
1122
1123 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
1124
1125 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
1126 casefiddle.c, buffer.c: Include keymap.h.
1127
1128 2001-10-10 Gerd Moellmann <gerd@gnu.org>
1129
1130 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
1131 options. From Dave Love <d.love@dl.ac.uk>.
1132
1133 2001-10-09 Gerd Moellmann <gerd@gnu.org>
1134
1135 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
1136 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1137
1138 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
1139 unsigned char.
1140 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1141
1142 2001-10-08 Andrew Innes <andrewi@gnu.org>
1143
1144 * lisp.h [max]: Undef min and max before redefining them.
1145
1146 * w32gui.h: Do not undef min and max.
1147
1148 * w32heap.h: Do not undef min and max.
1149
1150 * s/ms-w32.h: Do not undef min and max.
1151
1152 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1153
1154 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
1155
1156 2001-10-08 Sam Steingold <sds@gnu.org>
1157
1158 * keymap.c (current-active-maps): Quote newlines (compilation error).
1159
1160 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
1161
1162 * Makefile.in (lisp, shortlisp): Replace bindings.el with
1163 bindings.elc, since otherwise doc strings in bindings.el get wrong
1164 offsets in etc/DOC.
1165
1166 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1167
1168 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
1169
1170 * keyboard.h (map_prompt): Remove.
1171
1172 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
1173 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
1174
1175 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1176
1177 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1178
1179 * keyboard.c (map_prompt): Remove.
1180 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
1181 Use Fkeymap_prompt.
1182
1183 * keymap.h: New file. Extracted from lisp.h.
1184
1185 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
1186 (accessible_keymaps_1): New function.
1187 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
1188 (Fwhere_is_internal): Use Fcurrent_active_maps.
1189 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
1190 Insert in current buffer rather than standard-output.
1191 Don't call `help-mode'. Export to elisp.
1192 (describe_buffer_bindings): New wrapper.
1193 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
1194 and Sdescribe_buffer_bindings.
1195
1196 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1197
1198 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
1199 Remove code setting signal handler.
1200
1201 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
1202 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
1203
1204 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1205
1206 * keyboard.c: Don't define min/max.
1207
1208 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1209
1210 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
1211 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
1212 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
1213 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
1214 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
1215 Don't define min/max.
1216
1217 * lisp.h (min, max): New macros.
1218
1219 * puresize.h (BASE_PURESIZE): Increase to 725000.
1220
1221 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1222
1223 * xfaces.c (free_frame_menubar): Add prototype.
1224
1225 * lisp.h (init_window): Add prototype.
1226
1227 * editfns.c: Include ctype.h.
1228
1229 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
1230 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
1231 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
1232 variable `sb'.
1233
1234 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
1235 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
1236 `popup_activated_flag' and `title'.
1237
1238 * doc.c (Fdocumentation_property): Fix typo in a doc string.
1239
1240 * emacs.c (main): Remove extra `;'.
1241
1242 * atimer.h (struct atimer): Fix typos in a comment.
1243
1244 * atimer.c: Fix typo.
1245
1246 * Makefile.in: Fix typo.
1247
1248 * README: Remove obsolete part mentioning removed VMS file.
1249
1250 2001-10-07 Miles Bader <miles@gnu.org>
1251
1252 * Makefile.in (lisp, shortlisp): Add `button.elc'.
1253
1254 2001-10-07 Ken Raeburn <raeburn@gnu.org>
1255
1256 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
1257 Lisp_Object.
1258
1259 * lisp.h (Ffield_end): Declare.
1260
1261 2001-10-07 Gerd Moellmann <gerd@gnu.org>
1262
1263 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
1264
1265 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
1266
1267 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
1268
1269 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
1270
1271 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
1272 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
1273
1274 * alloc.c (inhibit_garbage_collection): Simplify.
1275 (Fmemory_use_counts): Ditto.
1276
1277 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
1278 (syms_of_data): DEFVAR_INT most-positive-fixnum and
1279 most-negative-fixnum.
1280
1281 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
1282 (FIXNUM_OVERFLOW_P): New macros.
1283
1284 2001-10-06 Miles Bader <miles@gnu.org>
1285
1286 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
1287 scroll_bar_bottom_shadow_pixel fields.
1288 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
1289 for the shadows, and tell the toolkit about them if we succeed.
1290 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
1291 Free scroll-bar shadow colors.
1292 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
1293 Free scroll-bar shadow colors when the background color changes.
1294 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
1295 Initialize scroll-bar shadow-color fields.
1296
1297 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1298
1299 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
1300
1301 2001-10-05 Miles Bader <miles@gnu.org>
1302
1303 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
1304 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
1305 New functions (were in simple.el).
1306 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
1307 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
1308 (syms_of_minibuf): Initialize them.
1309
1310 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1311
1312 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
1313 (tiff_load): Install them as error and warning handler.
1314
1315 2001-10-04 Andrew Innes <andrewi@gnu.org>
1316
1317 * w32fns.c (x_to_w32_color): Fix argument to alloca.
1318 (w32_load_system_font): Don't believe what GetLanguageFontInfo
1319 says; query codepage info directly to determine if font is double byte.
1320 (x_to_w32_charset): Handle private format for unknown charsets.
1321 Handle wildcards in charset spec, by ignoring them.
1322 (w32_codepage_for_font): Fix argument to alloca. Don't remove
1323 "*-" prefix from charset.
1324 (x_to_w32_font): Enlarge remainder array for safety. Specifically
1325 handle the truncated font spec form constructed by font_list_1, so
1326 that we correctly identify the charset fields. Don't remove "*-"
1327 prefix from charset.
1328 (w32_list_synthesized_fonts): Fix argument to alloca.
1329
1330 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
1331
1332 * window.h (MINI_WINDOW_P): Use NILP.
1333
1334 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
1335
1336 * termhooks.h (struct input_event): Use proper type for `kind'.
1337
1338 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1339
1340 This handles unknown keysyms better than before. For example,
1341 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
1342 Emacs formerly completely ignored F5. With the change, it derives
1343 a key symbol from the name of the X keysym, `ccaron' in this case.
1344 Reported by Martin Buchholz.
1345
1346 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
1347 unknown keysyms.
1348
1349 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
1350 that EVENT->code isn't a function key, use the keysym's name.
1351
1352 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1353
1354 FOREACH is a macro that should make it easier to loop over Lisp
1355 lists with checks for cycles and proper lists.
1356
1357 * lisp.h (LIST_END_P, FOREACH): New macros.
1358
1359 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1360
1361 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
1362 called for a lost connection. Prevent dumping core in this case.
1363 Instead print the X error, and exit. On user request.
1364
1365 * xterm.c (error_msg): New variable.
1366 (x_fatal_error_signal): New function.
1367 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
1368 as fatal_error_signal_hook around the call to XtCloseDisplay.
1369
1370 * emacs.c (fatal_error_signal_hook): New variable.
1371 (fatal_error_signal): Call that function.
1372
1373 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1374
1375 With this, Emacs prints how much pure storage it will
1376 approximately need in case pure storage overflows while dumping.
1377
1378 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
1379 New variables.
1380 (init_alloc_once): Initialize new variables.
1381 (PURE_POINTER_P): Use new variables.
1382 (pure_alloc): If pure storage overflows, allocate from the heap.
1383 (check_pure_size): New function.
1384 (Fgarbage_collect): Don't GC if pure storage has overflowed.
1385
1386 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
1387 (check_pure_size): Add prototype.
1388
1389 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
1390
1391 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1392
1393 This adds a post-gc-hook that's run with GC inhibited.
1394 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
1395
1396 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
1397 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
1398 (Fgarbage_collect): Run post-gc-hook.
1399
1400 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1401
1402 This adds `defvaralias' and `indirect-variable'. Changes not
1403 directly related to this feature are there to gain the same
1404 performance again as before variable aliases.
1405
1406 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
1407 code to get and set symbol values, to take defvaralias into account.
1408
1409 (Note: the new `constant' bit-flag in symbols would make it
1410 possible to define arbitrary read-only variables, e.g. with
1411 `defconst'.)
1412
1413 Documentation is in lispref/variables.texi. Added to NEWS.
1414
1415 * lisp.h (enum symbol_interned): New enumeration.
1416 (struct Lisp_Symbol): Remove member `obarray', add
1417 `indirect_variable', `constant', and `interned'.
1418 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
1419 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
1420 (indirect_variable): Add prototype.
1421
1422 * print.c (print_preprocess, print_object): Test internedness of
1423 symbols differently.
1424
1425 * lread.c (Fintern, Funintern): Set symbol's interned and constant
1426 bit-fields.
1427 (init_obarray): Likewise for t and nil.
1428
1429 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1430 (Fdefvaralias): New function.
1431 (specbind): Simplify the test if symbol is a constant.
1432 (syms_of_eval): Defsubr Fdefvaralias.
1433
1434 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1435 (Qcyclic_variable_indirection): New variable.
1436 (Fkeywordp): Check for internedness differently.
1437 (Fmakunbound): Simplify the test if symbol is a constant.
1438 (indirect_variable, Findirect_variable): New functions.
1439 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
1440 aliased symbol.
1441 (let_shadows_buffer_binding_p): Check for variable aliases.
1442 (set_internal): Simplify the test if SYMBOL is a constant.
1443 If SYMBOL has a buffer-local value and is an alias, use the aliased
1444 symbol instead.
1445 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
1446 Sindirect_variable.
1447
1448 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
1449 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
1450 set directly.
1451
1452 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
1453
1454 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
1455 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
1456 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
1457
1458 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1459
1460 * Branch for 21.1.
1461
1462 2001-10-03 Miles Bader <miles@gnu.org>
1463
1464 * callproc.c (syms_of_callproc): Explicitly state in the
1465 documentation for `process-environment' that earlier entries take
1466 precedence over later ones.
1467
1468 2001-10-02 Miles Bader <miles@gnu.org>
1469
1470 * textprop.c (Fnext_char_property_change)
1471 (Fprevious_char_property_change): Remove reference to non-existant
1472 argument OBJECT from doc-string.
1473
1474 2001-10-01 Gerd Moellmann <gerd@gnu.org>
1475
1476 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
1477 (try_window_id): Skip back over lines ending in a newline from a
1478 string.
1479
1480 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
1481 New bit flag
1482
1483 2001-10-01 Richard M. Stallman <rms@gnu.org>
1484
1485 * search.c (Freplace_match): Doc fix.
1486
1487 2001-09-28 Andrew Innes <andrewi@gnu.org>
1488
1489 * w32menu.c (set_frame_menubar): Take into account that
1490 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1491 <raeburn@gnu.org>.
1492
1493 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
1494
1495 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
1496
1497 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1498
1499 * s/gnu-linux.h: Fix a typo in comment.
1500
1501 2001-09-28 Andreas Schwab <schwab@suse.de>
1502
1503 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
1504 nocombreloc, in case -z combreloc is the default.
1505
1506 2001-09-28 Gerd Moellmann <gerd@gnu.org>
1507
1508 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
1509 really going on here.
1510
1511 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
1512
1513 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
1514
1515 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
1516
1517 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
1518 utf-8, menu-bar, and latin-N.
1519 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
1520 unconditionally now.
1521 (lisp): Add latin-N, since they are preloaded.
1522
1523 2001-09-27 Gerd Moellmann <gerd@gnu.org>
1524
1525 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
1526 to the left. Some cleanup.
1527
1528 * xdisp.c (display_mode_element): One more case where a string's
1529 multibyteness should be used for display.
1530
1531 2001-09-26 Gerd Moellmann <gerd@gnu.org>
1532
1533 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
1534 reading at EOF.
1535
1536 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
1537 of the only temporarily set echoing flag for deciding when
1538 the cancel echoing.
1539
1540 * keyboard.c (echo_kboard): Make externally visible.
1541
1542 * lisp.h (echo_kboard): Declare extern.
1543
1544 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
1545 fonts_changed_p if we need larger matrices due to vscrolling.
1546 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
1547 this round of redisplay if make_cursor_line_fully_visible fails.
1548 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
1549 (try_cursor_movement, try_scrolling): Use them instead of integers.
1550
1551 * dispextern.h (required_matrix_width, required_matrix_height):
1552 Add prototypes.
1553
1554 * dispnew.c (required_matrix_width, required_matrix_height):
1555 New functions.
1556 (allocate_matrices_for_window_redisplay)
1557 (allocate_matrices_for_frame_redisplay: Use them.
1558 Remove parameters CH_DIM.
1559
1560 * xdisp.c (display_mode_lines): Temporarily set selected_frame
1561 and selected_window to the frame of the window whose mode-lines
1562 are displayed, and to the window itself.
1563 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
1564 here.
1565
1566 2001-09-25 Gerd Moellmann <gerd@gnu.org>
1567
1568 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
1569 the image cache under us.
1570
1571 * xdisp.c (display_mode_element): If the mode element is a symbol
1572 with a string value, use that string's multibyteness for displaying.
1573
1574 * keyboard.c (read_char): Don't clear a message for a switch-frame
1575 event. From Stefan Monnier <monnier@cs.yale.edu>.
1576
1577 * xterm.c (fast_find_position) [0]: Add a presumably more correct
1578 version for after 21.1.
1579
1580 * xdisp.c (row_containing_pos): Make externally visible.
1581
1582 * dispextern.h (row_containing_pos): Add prototype.
1583
1584 * process.c (send_process): Disable composition if from_byte < 0.
1585 From Kenichi Handa <handa@etl.go.jp>.
1586
1587 2001-09-24 Gerd Moellmann <gerd@gnu.org>
1588
1589 * xterm.c (refreshicon): Function removed.
1590
1591 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
1592
1593 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
1594
1595 * xterm.c (toplevel): Remove includes in #if 0.
1596
1597 * process.c (sigchld_handler) [LINUX]: Don't return from
1598 the signal handler at the end of the loop.
1599
1600 2001-09-21 Gerd Moellmann <gerd@gnu.org>
1601
1602 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
1603 Terminate only if kill returns -1, and errno is ESRCH.
1604
1605 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
1606
1607 * Makefile.in (shortlisp): Add ../lisp/env.elc.
1608
1609 2001-09-20 Gerd Moellmann <gerd@gnu.org>
1610
1611 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
1612 since this function can be called during GC.
1613
1614 * callproc.c (Fcall_process): Handle errors from pipe(2).
1615 (child_setup): Delete code in #ifdef vipc.
1616
1617 2001-09-19 Gerd Moellmann <gerd@gnu.org>
1618
1619 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
1620 (display_mode_element): Display the string from decode_mode_spec
1621 depending on its multibyteness.
1622
1623 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
1624
1625 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
1626
1627 2001-09-18 Gerd Moellmann <gerd@gnu.org>
1628
1629 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
1630 recursive_edit_unwind.
1631 (recursive_edit_unwind): Set kboard state according to
1632 SINGLE-KBOARD.
1633
1634 * buffer.c (modify_overlay): Don't do nothing if START == END;
1635 This can still be a modification, for example when an overlay has
1636 a before-string or after-string.
1637 (Fdelete_overlay): Prevent redisplay optimizations when deleting
1638 an overlay with before-string or after-string.
1639
1640 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
1641 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
1642
1643 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
1644 first_unchanged_at_end_row is in front of
1645 last_unchanged_at_beg_row. This code should be removed after the
1646 release of 21.1.
1647
1648 2001-09-17 Gerd Moellmann <gerd@gnu.org>
1649
1650 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
1651 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
1652
1653 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
1654 versions >= 2.95.
1655
1656 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
1657
1658 * dired.c (Ffile_attributes): Doc fix.
1659
1660 2001-09-14 Gerd Moellmann <gerd@gnu.org>
1661
1662 * fileio.c (Ffile_symlink_p): Fix last change.
1663
1664 * filelock.c (current_lock_owner): Fix last change.
1665
1666 2001-09-13 Gerd Moellmann <gerd@gnu.org>
1667
1668 * filelock.c (current_lock_owner): If readlink returns ERANGE,
1669 take that to mean that the buffer is too small.
1670
1671 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
1672 that to mean that the buffer is too small.
1673
1674 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
1675 current buffer's multibyteness when discarding the iterator's
1676 stack.
1677
1678 * xfns.c (Fx_window_property): Handle case that property gets
1679 deleted between the two calls to XGetWindowProperty.
1680
1681 2001-09-11 Gerd Moellmann <gerd@gnu.org>
1682
1683 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
1684
1685 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
1686 in addition to read-only.
1687
1688 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
1689 to t in addition to read-only.
1690
1691 * lisp.h (Qinhibit_modification_hooks): Declare.
1692
1693 * insdel.c (Qinhibit_modification_hooks): New variable.
1694 (syms_of_insdel): Initialize and staticpro it.
1695
1696 * textprop.c (verify_interval_modification): Don't run
1697 modification-hooks if inhibit_modification_hooks.
1698
1699 * dispnew.c (set_window_cursor_after_update): Fix code
1700 finding glyph row containing cursor when cursor_in_echo_area
1701 is >= 0.
1702
1703 * xdisp.c (init_from_display_pos): Put some code in #if 0.
1704 (add_to_log): Use bcopy instead of strcpy.
1705 (init_from_display_pos): Use an explicit loop over bytes in
1706 overlay strings instead of calling index.
1707
1708 2001-09-10 Gerd Moellmann <gerd@gnu.org>
1709
1710 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
1711
1712 * dispnew.c (direct_output_for_insert): Don't change IT's
1713 stop_charpos to something in front of its current position.
1714
1715 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
1716 `format'.
1717
1718 2001-09-10 Richard M. Stallman <rms@gnu.org>
1719
1720 * frame.c (Fmouse_position): Doc fix.
1721
1722 2001-09-07 Gerd Moellmann <gerd@gnu.org>
1723
1724 * xdisp.c (init_from_display_pos): Don't compare the result
1725 of calling index with NULL.
1726
1727 2001-09-06 Gerd Moellmann <gerd@gnu.org>
1728
1729 * xfns.c (x_set_background_color): Don't change the colors
1730 of the X window of scroll bar widgets.
1731
1732 2001-09-05 Andrew Innes <andrewi@gnu.org>
1733
1734 * w32fns.c (w32_createwindow): Undo last change.
1735
1736 2001-09-05 Gerd Moellmann <gerd@gnu.org>
1737
1738 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
1739
1740 * xdisp.c (string_buffer_position): Use *single_char_property*
1741 functions instead of the *single_property* functions.
1742
1743 2001-09-04 Andrew Innes <andrewi@gnu.org>
1744
1745 * w32term.c (w32_read_socket): Add more information to debugging
1746 output.
1747
1748 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
1749 from Emacs frames, so that calls to GetClipBox in w32term.c
1750 correctly report when part of a frame is visible (including
1751 scrollbars, etc). This prevents repeated redrawing of frames when
1752 only a scrollbar is visible.
1753 (w32_wnd_proc): Add more frame information to debugging output.
1754
1755 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
1756
1757 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
1758
1759 2001-09-03 Gerd Moellmann <gerd@gnu.org>
1760
1761 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
1762 help-echo for a string which doesn't have help-echo itself, use
1763 get-char-property to obtain the help-echo from the string's buffer
1764 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
1765 have mouse-face, look ``under'' the string for mouse-face from an
1766 overlay.
1767 (fast_find_position): Add parameter STOP. In the final row, stop
1768 before glyphs having STOP as object. Don't consider glyphs that
1769 are not from a buffer.
1770
1771 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
1772
1773 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
1774
1775 * fns.c (Fmd5): Doc fix.
1776
1777 2001-08-31 Gerd Moellmann <gerd@gnu.org>
1778
1779 * composite.c (update_compositions): Do nothing if
1780 inhibit-modification-hooks is set.
1781
1782 2001-08-30 Gerd Moellmann <gerd@gnu.org>
1783
1784 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
1785 and check_message_stack if terminating abnormally. We want
1786 glyph matrices etc. in a core dump.
1787
1788 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
1789 (syms_of_xdisp): Initialize them.
1790 (handle_single_display_prop): Don't change point, bind `object',
1791 `position', and `buffer-position' instead to the object having the
1792 `display' property, position in the object and position in the buffer.
1793
1794 * fileio.c (Finsert_file_contents): Don't change the multibyteness
1795 of the buffer if REPLACE is non-nil.
1796
1797 2001-08-29 Gerd Moellmann <gerd@gnu.org>
1798
1799 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1800
1801 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1802
1803 * w32term.c (x_set_glyph_string_background_width)
1804 (show_mouse_face): Track the last changes in xterm.c.
1805
1806 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1807
1808 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1809 string's background width so that multi-line mouse-face is drawn
1810 to the right edge of the window.
1811 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1812 glyphs.
1813
1814 * dispnew.c (direct_output_for_insert): Set updated_area
1815 before inserting/writing glyphs.
1816
1817 * xdisp.c (display_mode_element): Use string_byte_to_char to
1818 determine character positions in strings, use chars_in_text
1819 instead of strwidth.
1820 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1821 a matrix as parameter; this is easier to use from GDB.
1822
1823 2001-08-28 Miles Bader <miles@gnu.org>
1824
1825 * textprop.c (Fprevious_single_char_property_change)
1826 (Fnext_single_char_property_change): Doc fixes.
1827
1828 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1829
1830 * fileio.c (Finsert_file_contents): Allocate, restore, and
1831 free composition data in the case of REPLACE not being nil.
1832
1833 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1834 there exist overlay strings with newlines at POS.
1835 (text_outside_line_unchanged_p): Return 0 if changes start at
1836 START and overlays exist at START. Likewise for END.
1837 (try_window_id): Give up if init_to_row_end returns 0.
1838
1839 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1840 unconditionally.
1841
1842 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1843
1844 * keymap.c (access_keymap): Return the cdr of the binding of
1845 a generic character instead of its definition (KEY . BINDING).
1846
1847 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1848 to 0 also in the REPLACE case.
1849
1850 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1851
1852 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1853 open to determine whether file is readable (as for DOS_NT).
1854
1855 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1856
1857 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1858 coding.type is coding_type_no_conversion or coding_type_raw_text,
1859 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1860 non-nil instead of just setting enable_multibyte_characters in the
1861 buffer to nil.
1862
1863 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1864
1865 * dispextern.h (struct face_cache): Add member
1866 menu_face_changed_p.
1867
1868 * xfaces.c (menu_face_changed_default): New variable.
1869 (menu_face_changed_count): Variable removed.
1870 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1871 the menu_face_changed_default flag, otherwise set the FRAME's
1872 menu_face_changed_p flag if the `menu' face has been changed.
1873 Prevent calling set_font_frame_param if FRAME is t.
1874 (make_face_cache): Initialize cache's menu_face_changed_p
1875 from menu_face_changed_default.
1876 (realize_basic_faces): Look into the frame's face cache to
1877 determine if the menu appearance needs updating.
1878
1879 * keymap.c (access_keymap): Fix last change to not consider
1880 IDX when it has modifiers.
1881
1882 2001-08-21 Gerd Moellmann <gerd@gnu.org>
1883
1884 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
1885 . BINDING) exists, where GENERIC-CHAR is the generic character of
1886 the charset of IDX, return BINDING unless there exists a binding
1887 for IDX itself.
1888
1889 2001-08-16 Gerd Moellmann <gerd@gnu.org>
1890
1891 * xrdb.c (SYSV): Don't define on Solaris 2.
1892 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
1893
1894 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
1895 of the screen line, not text line, containing IT's current position.
1896
1897 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1898
1899 * window.c (window_scroll_pixel_based): Don't recenter if
1900 PT is partially visible in the window.
1901
1902 * xterm.c (expose_window_tree, expose_window, expose_line):
1903 Return 1 when overwriting mouse-face.
1904 (expose_frame): If mouse-face was overwritten, redo it.
1905
1906 * xfaces.c (x_update_menu_appearance): Don't call
1907 set_frame_menubar, let the next redisplay do it.
1908
1909 2001-08-14 Andrew Innes <andrewi@gnu.org>
1910
1911 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1912 drawing glyph string.
1913
1914 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1915
1916 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1917 running HI-UX/MPP.
1918
1919 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1920
1921 * xfaces.c (x_update_menu_appearance): Save and restore value of
1922 interrupt_input_blocked.
1923
1924 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1925
1926 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1927 a line start, move back to the line start.
1928
1929 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1930 exactly when a mini-buffer is active.
1931
1932 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1933 in units of 1/8 character on non window-system frames.
1934 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1935
1936 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1937
1938 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1939 a doc string.
1940
1941 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1942
1943 * keyboard.c (Vpre_help_message): New variable.
1944 (syms_of_keyboard): Initialize and staticpro it.
1945 (show_help_echo): Record current message before displaying a
1946 help-echo, and restore that message when clearing the help.
1947
1948 * xfns.c (x_create_im): Remove prototype.
1949
1950 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1951
1952 * dispnew.c (adjust_glyph_matrix): Undo last change.
1953
1954 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1955
1956 * dispnew.c (adjust_glyph_matrix): In the optimization for
1957 windows whose height has changed, disable partially visible lines.
1958
1959 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1960
1961 * window.c (Frecenter): If ARG < 0, and on a window system
1962 frame, count in some empty lines when we can't move -ARG lines down.
1963
1964 * xdisp.c (start_display): Don't try to determine the continuation
1965 lines width if lines are truncated. It's superfluous and leads to
1966 incorrect results if POS is not visible in the window after
1967 reseating the iterator at the previous line start.
1968
1969 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1970
1971 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1972
1973 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1974
1975 * alloc.c (init_stack): Remove declaration.
1976
1977 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1978
1979 * keyboard.c (read_key_sequence): Check that key is an integer
1980 before comparing it with quit_char.
1981 (add_command_key): Use larger_vector.
1982 (read_char_x_menu_prompt): Instead of converting symbol and
1983 integer events into conses (EVENT . nil), use (EVENT . disabled)
1984 which cannot be confused with valid events.
1985 (read_char): When reading from Vunread_command_events, check for
1986 events of the form (EVENT . disabled) instead of
1987 (EVENT . nil).
1988
1989 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1990 a float, determine the max height from the frame's height.
1991
1992 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1993
1994 * xdisp.c (redisplay_internal): Take message_cleared_p into
1995 account only if minibuf_level == 0.
1996
1997 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1998
1999 * xdisp.c (redisplay_internal): Add a check for the last
2000 displayed message.
2001
2002 * xdisp.c (message_cleared_p): New variable.
2003 (clear_message): Set message_cleared_p when clearing the current
2004 message.
2005 (redisplay_internal): Look at message_cleared_p to capture
2006 the case that the echo area should be cleared.
2007
2008 * keyboard.c (command_loop_1): Fix spelling of
2009 resize_echo_area_exactly.
2010
2011 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
2012
2013 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
2014
2015 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
2016 current matrix when the window gets smaller.
2017
2018 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
2019
2020 * print.c (strout): Cast the character passed to insert_char to
2021 unsigned char, to avoid sign extension when it is promoted to int.
2022
2023 2001-07-31 Gerd Moellmann <gerd@gnu.org>
2024
2025 * fileio.c (Finsert_file_contents): Don't treat a return value
2026 of 0 from emacs_read as an IO error.
2027
2028 2001-07-30 Gerd Moellmann <gerd@gnu.org>
2029
2030 * keyboard.c (abs): New macro.
2031 (double_click_fuzz): New variable.
2032 (make_lispy_event): Use it to determine what makes a double-click.
2033 (syms_of_keyboard): DEFVAR_INT it.
2034
2035 * xmenu.c (set_frame_menubar): Take into account that
2036 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2037 <raeburn@gnu.org>.
2038
2039 2001-07-27 Gerd Moellmann <gerd@gnu.org>
2040
2041 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
2042
2043 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
2044 of row's visible height.
2045
2046 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
2047 deal with the first overlay string having an image `display' property.
2048 (try_window_reusing_current_matrix, compute_line_metrics):
2049 Fix computation of row's visible height for the case that part of the
2050 row is invisible above and part of the row is at the same time
2051 invisible below the window.
2052
2053 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2054
2055 * xfns.c (x-show-tip): Doc fix.
2056
2057 * xfns.c (Vx_max_tooltip_size): New variable.
2058 (syms_of_xfns): DEFVAR_LISP it.
2059 (Fx_show_tip): Set frame's window_width to the width of the
2060 window. Use a maximum tooltip size specified by
2061 Vx_max_tooltip_size, if that has valid contents.
2062 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
2063
2064 2001-07-26 Andrew Innes <andrewi@gnu.org>
2065
2066 * w32term.c (x_display_list): New variable.
2067 (w32_term_init): Set it.
2068
2069 * w32term.h (x_display_list): New extern.
2070
2071 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2072
2073 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
2074 is non-nil, instead of when redisplaying_p is non-zero.
2075 See comment there.
2076 (mark_window_display_accurate_1): Add an assertion.
2077
2078 2001-07-25 Gerd Moellmann <gerd@gnu.org>
2079
2080 * dispextern.h (struct it): Increase size of ctl_chars to 16.
2081
2082 * xfns.c (Fx_file_dialog): Block/unblock input while processing
2083 events so that we get a chance of processing expose events.
2084
2085 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
2086
2087 2001-07-24 Gerd Moellmann <gerd@gnu.org>
2088
2089 * xfns.c (valid_image_p): Protect better against invalid image
2090 specifications. Previous code could signal an error.
2091
2092 2001-07-23 Gerd Moellmann <gerd@gnu.org>
2093
2094 * indent.c (current_column): Fix column computation in the
2095 presence of display table entries.
2096 (current_column_1, Fmove_to_column, compute_motion): Likewise.
2097
2098 * dispnew.c (adjust_glyph_matrix): In the optimization for
2099 windows whose height has changed, use the new window height
2100 to compute which rows to invalidate.
2101
2102 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
2103 (MAX_10_EXP): New macro.
2104 (Fformat): Use it.
2105
2106 * coding.c (code_convert_region): Handle the multibyte case if
2107 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
2108
2109 2001-07-20 Gerd Moellmann <gerd@gnu.org>
2110
2111 * dispextern.h (struct face): Change type of `stipple' to
2112 int; it's an ID.
2113
2114 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
2115
2116 2001-07-19 Gerd Moellmann <gerd@gnu.org>
2117
2118 * dispnew.c (update_window): Don't set the cursor at the end
2119 of the update if display update has been paused.
2120
2121 * composite.h (syms_of_composite): Renamed from syms_of_composition.
2122
2123 2001-07-18 Ken Raeburn <raeburn@gnu.org>
2124
2125 * fns.c (Fset_char_table_default): Check that a charset is defined
2126 before checking its dimension.
2127
2128 2001-07-17 Ken Raeburn <raeburn@gnu.org>
2129
2130 * coding.c (setup_coding_system): Don't do any designation based
2131 on reg_bits if charset is not yet defined.
2132
2133 * lisp.h (XVECTOR): Verify correct object type before returning a
2134 pointer, using eassert.
2135
2136 2001-07-17 Gerd Moellmann <gerd@gnu.org>
2137
2138 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
2139 Increase to 4096 because of paste problems reported on GNU/Linux.
2140
2141 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
2142
2143 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
2144
2145 2001-07-16 Gerd Moellmann <gerd@gnu.org>
2146
2147 * fileio.c (unwind_read): Function removed.
2148 (read_non_regular, read_non_regular_quit): New functions.
2149 (Finsert_file_contents): When reading from non-regular files,
2150 arrange to catch a `quit' and terminate the loop. Rearrange
2151 code so that a `quit' when reading from a regular file doesn't
2152 insert text in the buffer.
2153
2154 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
2155 Clear faces afterwards.
2156 (clear_font_table): Take a x_display_info parameter. Don't free
2157 fonts being the default font of any frame on the given display.
2158
2159 2001-07-13 Gerd Moellmann <gerd@gnu.org>
2160
2161 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
2162 instead of CHAR_STRING which can signal an error.
2163
2164 * charset.c (char_to_string_1): Extracted from char_to_string.
2165 Return -1 instead of signaling an error.
2166 (char_to_string): Use it.
2167
2168 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
2169
2170 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
2171
2172 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
2173 is t, don't try to append anything to it.
2174
2175 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
2176
2177 * dired.c (file_name_completion): Pass dp->d_name to
2178 Fstring_match, not elt, which is always nil here.
2179
2180 2001-07-12 Gerd Moellmann <gerd@gnu.org>
2181
2182 * xselect.c (x_decline_selection_request): Handle errors
2183 caused by receivers that have vanished.
2184
2185 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
2186 ignoring events on foreign windows in #if 0. Always dispatch
2187 the event after checking it with x_handle_property_notify.
2188
2189 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
2190 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
2191 TRACE macros to facilitate debugging. Add additional trace statements.
2192 (toplevel): Add prototypes for file-local functions.
2193 (x_atom_to_symbol): Remove DPYINFO parameter.
2194
2195 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
2196
2197 * w32menu.c (menubar_selection_callback, w32_menu_show):
2198 Initialize `entry' to nil.
2199 (w32_dialog_show): Remove unused `save_wv' variable.
2200 (name_is_separator): Recognize "--:foo" and "--foo-bar".
2201
2202 2001-07-11 Gerd Moellmann <gerd@gnu.org>
2203
2204 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
2205
2206 * fileio.c (unwind_read): Print a message when discarding inserted
2207 text or switching the buffer to unibyte. Change parameter.
2208 (Finsert_file_contents): Don't pass VISIT to unwind_read.
2209
2210 * fileio.c (unwind_read): New function.
2211 (Finsert_file_contents): Record it as unwind-function for
2212 the case that reading is interrupted by C-g.
2213
2214 2001-07-10 Gerd Moellmann <gerd@gnu.org>
2215
2216 * dispnew.c (update_window): Don't skip the header-line
2217 update when scrolling_window returns 0.
2218
2219 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
2220
2221 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
2222 for the case that x_decode_color signals an error.
2223
2224 * xdisp.c (add_to_log): Do nothing if called asynchronously.
2225
2226 2001-07-09 Gerd Moellmann <gerd@gnu.org>
2227
2228 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
2229 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
2230 around ioctls.
2231
2232 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
2233
2234 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
2235 doc string line for dos-timezone-offset.
2236
2237 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
2238 inline assembly, to avoid compiler warnings.
2239 (syms_of_msdos): Add \n\ at the end of a line in the doc string
2240 line for dos-unsupported-char-glyph.
2241
2242 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
2243
2244 2001-07-05 Gerd Moellmann <gerd@gnu.org>
2245
2246 * sound.c: Include Emacs' header files with #include "...".
2247
2248 * eval.c (specbind): Additionally record the buffer that was
2249 current when a buffer-local or frame-local variable was bound.
2250
2251 2001-07-04 Gerd Moellmann <gerd@gnu.org>
2252
2253 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
2254 to unibyte characters in unibyte buffers.
2255
2256 2001-07-03 Gerd Moellmann <gerd@gnu.org>
2257
2258 * eval.c (specbind): If SYMBOL has a frame-local binding, record
2259 the frame on the binding stack. Change format of entries for
2260 local bindings on the binding stack to '(SYMBOL . WHERE)'.
2261 (unbind_to): Handle unbinding a frame-local variable.
2262
2263 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
2264 glyphs and truncation glyphs at the end of a row from its pixel width.
2265 (dump_glyph_row): Print row's continuation_lines_width.
2266 (try_window_id): Take the shortcut if ZV is visible in the
2267 window, but there are actually no changes at ZV.
2268
2269 2001-07-02 Gerd Moellmann <gerd@gnu.org>
2270
2271 * xterm.h (x_free_dpy_colors): Add prototype.
2272
2273 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
2274 right number of arguments.
2275
2276 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
2277 ($(lwlibdir)TAGS): New target.
2278 (TAGS): Fix dependency list.
2279
2280 * xterm.c (x_list_fonts): Make sure XFreeFont is called
2281 with input blocked.
2282
2283 2001-06-30 Gerd Moellmann <gerd@gnu.org>
2284
2285 * emacs.c (main): Remove extern declaration for sys_nerr, which
2286 isn't used and causes a compilation error with GCC 3.0 on
2287 FreeBSD 4.3.
2288
2289 2001-06-27 Gerd Moellmann <gerd@gnu.org>
2290
2291 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
2292 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
2293 (toplevel): Include <signal.h> and syssignal.h.
2294
2295 * sound.c (vox_configure, vox_close): Turn off atimers
2296 around ioctls.
2297
2298 2001-06-26 Gerd Moellmann <gerd@gnu.org>
2299
2300 * keyboard.c (read_char) <non_reread>: Record the previous idle
2301 start time before calling timer_stop_idle.
2302 (read_char) <reread_first>: After processing a help-echo event,
2303 restore the previous idle start time.
2304
2305 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
2306 the start of invisible text.
2307 (setup_for_ellipsis): New function.
2308 (next_overlay_string): After all overlay strings have been
2309 processed, display an ellipsis if necessary.
2310 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
2311 (push_it): Initialize display_ellipsis_p on the iterator's stack.
2312
2313 * dispextern.h (struct iterator_stack_entry): Add member
2314 display_ellipsis_p.
2315
2316 2001-06-25 Gerd Moellmann <gerd@gnu.org>
2317
2318 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
2319 on the value of the wait-for-wm frame parameter.
2320
2321 * xterm.h (struct x_output): Add member wait_for_wm.
2322
2323 * xfns.c (Qwait_for_wm): New variable.
2324 (x_frame_parms): Add entry for `wait-for-wm".
2325 (x_set_wait_for_wm): New function.
2326 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
2327 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
2328
2329 * xdisp.c (try_window_id) <all changes below window end>: Don't
2330 take this shortcut if ZV is visible in the window.
2331 (try_window_id): When checking for window start being in changed
2332 text, don't check that the buffer's size has changed.
2333
2334 2001-06-23 Richard M. Stallman <rms@gnu.org>
2335
2336 * minibuf.c (Fcompleting_read): Doc fix.
2337
2338 2001-06-19 Gerd Moellmann <gerd@gnu.org>
2339
2340 * composite.c (Ffind_composition_internal): Accept ZV
2341 and a string's end position as POS.
2342
2343 2001-06-18 Gerd Moellmann <gerd@gnu.org>
2344
2345 * composite.c (Ffind_composition_internal): Check POS
2346 for validity.
2347
2348 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
2349
2350 * editfns.c (Fmessage_box): If the frame is not under a window
2351 system, output the message in the echo area.
2352
2353 2001-06-14 Richard M. Stallman <rms@gnu.org>
2354
2355 * xdisp.c (try_window_id): When EOB is visible, don't treat
2356 insertion at EOB as if it were "off the bottom of the screen."
2357
2358 2001-06-11 Andrew Innes <andrewi@gnu.org>
2359
2360 * w32proc.c (create_child): Add new parameter is_gui_app.
2361 (w32_executable_type): Add new parameter is_gui_app.
2362 (sys_spawnve): Use it.
2363 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
2364 SIGQUIT. This matches better how the signals are interpreted by
2365 MSVC compiled programs.
2366 (syms_of_ntproc): Update docstring.
2367
2368 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
2369
2370 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
2371 well otherwise note_mouse_highlight might optimize away highlighting
2372 if we pass over that same overlay again.
2373
2374 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
2375
2376 * lread.c (Fload): Document that the argument is run via
2377 substitute-in-file-name.
2378
2379 2001-05-31 Gerd Moellmann <gerd@gnu.org>
2380
2381 * Makefile.in (bootstrap-doc): New target.
2382 (bootstrap-emacs): Depend on it.
2383
2384 * fileio.c (Fdo_auto_save): Don't try to create the directory of
2385 auto-save-list-file-name when shutting down Emacs, because
2386 creating the directory might signal an error, and leaves
2387 Emacs in a strange state.
2388
2389 * term.c: (tty_cursor_hidden): New variable.
2390 (update_begin): Don't call tty_hide_cursor. Clean up.
2391 (update_end, set_terminal_window, set_scroll_region): Clean up.
2392 (ring_bell, reset_terminal_modes): Clean up.
2393 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
2394 on tty_cursor_hidden.
2395 (write_glyphs): Call tty_hide_cursor.
2396
2397 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
2398
2399 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
2400
2401 2001-05-30 Gerd Moellmann <gerd@gnu.org>
2402
2403 * xfns.c (enum image_value_type): New enumerator
2404 IMAGE_STRING_OR_NIL_VALUE.
2405 (parse_image_spec): Handle it.
2406 (xbm_format, pbm_format): Use it for :foreground and :background.
2407 (xbm_load, pbm_load): Check for nil color names.
2408
2409 * xterm.c (note_mouse_highlight): If an overlapping overlay
2410 exists, but we find that we highlight the same overlay as before,
2411 don't do the highlighting again.
2412
2413 2001-05-29 Gerd Moellmann <gerd@gnu.org>
2414
2415 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
2416 Protect unibyte strings created by replacing their multibyte
2417 equivalents in menu_items.
2418
2419 * keymap.c (Fsingle_key_description): NUL-terminate the string
2420 buffer before calling build_string.
2421
2422 * callproc.c (Fcall_process): Deal with decode_coding returning
2423 CODING_FINISH_INCONSISTENT_EOL.
2424
2425 2001-05-28 Gerd Moellmann <gerd@gnu.org>
2426
2427 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
2428 an item's name with its key description in case the description
2429 is a multibyte string.
2430
2431 * keymap.c (Fsingle_key_description): Create a multibyte string
2432 only if necessary.
2433
2434 * macros.c (Fstart_kbd_macro): Doc fix.
2435
2436 * xterm.c (cursor_in_mouse_face_p): New function.
2437 (x_draw_stretch_glyph_string): Use it to choose a different GC
2438 when drawing a cursor within highlighted text.
2439
2440 * editfns.c (char_property_eq): Put in #if 0.
2441
2442 * indent.c (string_display_width): Put in #if 0.
2443
2444 * lread.c (Fload): Remove unused label.
2445
2446 * termcap.c (speeds): Put in #if 0.
2447
2448 2001-05-18 Gerd Moellmann <gerd@gnu.org>
2449
2450 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
2451
2452 * xfaces.c (xlfd_point_size): Don't divide pixel size from
2453 transformation matrix by 10.
2454
2455 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2456
2457 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
2458 only if it's equal to the former foreground pixel color.
2459 (x_set_foreground_color, x_set_background_color)
2460 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
2461
2462 2001-05-16 Dave Love <fx@gnu.org>
2463
2464 * insdel.c (signal_before_change, signal_after_change): Consider a
2465 local change hook which changes the buffer.
2466
2467 * process.c (read_process_output): Don't call signal_after_change
2468 and update_compositions after insert_from_string_before_markers.
2469
2470 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2471
2472 * xfaces.c (split_font_name): Use the right field when
2473 checking for `[...]' syntax.
2474
2475 * buffer.c (copy_overlays): New function.
2476 (clone_per_buffer_values): Use it.
2477
2478 * buffer.h (OVERLAY_PLIST): New macro.
2479
2480 * keymap.c (Fsingle_key_description): Replace a build_string with
2481 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
2482
2483 * fontset.c (Ffontset_info): Check that face is non-null
2484 before accessing its fields.
2485
2486 2001-05-15 Gerd Moellmann <gerd@gnu.org>
2487
2488 * keyboard.c (read_key_sequence): Prevent generating a fake
2489 prefix key twice.
2490
2491 * xfaces.c (split_font_name): Handle `[...]' for the right
2492 font name fields.
2493
2494 * ccl.c (ccl_driver): Don't copy remaining bytes in case
2495 of CCL_STAT_INVALID_CMD.
2496
2497 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
2498
2499 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
2500 in <var> has no default value yet.
2501
2502 * xfaces.c (try_alternative_families): First try the FAMILY.
2503 And if nothing is found in the end, try again with scalable fonts.
2504 (try_font_list): Let try_alternative_families do a bit more of
2505 the work. Only use FAMILY if it is not nil.
2506 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
2507
2508 2001-05-14 Gerd Moellmann <gerd@gnu.org>
2509
2510 * xterm.c (note_mouse_highlight): Avoid changing the mouse
2511 pointer shape when show_mouse_face has already done it.
2512
2513 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
2514 full-width rows.
2515
2516 * xfaces.c (split_font_name): Make sure to leave the loop
2517 with the right value of `i'.
2518
2519 * xfaces.c (split_font_name): Handle matrix transformations
2520 in the pixel and point size fields of XLFD font names.
2521 (xlfd_point_size): Likewise.
2522
2523 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
2524
2525 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
2526 (x_to_w32_font): Add prototype.
2527
2528 * regex.c (malloc, realloc, free) [emacs]: Undefine before
2529 redefining, to avoid compiler warnings.
2530
2531 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
2532
2533 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
2534 (w32_get_bdf_glyph): Cast between unsigned char and char when
2535 passing arguments to subroutines, to shut up compiler warnings.
2536 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
2537 GET_HEX_VAL.
2538
2539 * xfaces.c: Include keyboard.h before frame.h, not after it.
2540
2541 * widget.c: Include keyboard.h before frame.h.
2542
2543 * w32term.h (struct image, struct face): Forward declaration, to
2544 avoid compiler warnings.
2545
2546 2001-05-11 Gerd Moellmann <gerd@gnu.org>
2547
2548 * keyboard.c (read_key_sequence): Don't modify events when
2549 generating fake prefix keys (mode-line, scroll-bar, ...) since
2550 this prevents proper processing of such events when pushed back
2551 into unread-command-events.
2552
2553 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
2554 actually redrawn. Make the function static.
2555 (note_mouse_highlight): Fix a case where the mouse cursor
2556 was changed back to the text cursor.
2557
2558 * xterm.h (clear_mouse_face): Remove prototype.
2559
2560 * xdisp.c (try_window_id): Fix the fix and set the right
2561 window_end_vpos.
2562
2563 * xdisp.c (try_window_id): Fix computation of window end in the
2564 case that lines were deleted at the end of the window. Add some
2565 more debug_method_adds.
2566
2567 * xfaces.c (try_alternative_families): New function.
2568 (try_font_list): Use it. If ATTRS specifies a family, check
2569 fonts from that family first.
2570 (choose_face_font): Remove code setting the family part of
2571 the pattern to nil.
2572
2573 2001-05-10 Gerd Moellmann <gerd@gnu.org>
2574
2575 * xdisp.c (try_window_id): Fix case of all changes before
2576 the window start.
2577
2578 * xdisp.c (try_window_id): Add some xasserts.
2579
2580 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2581
2582 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
2583
2584 2001-05-09 Dave Love <fx@gnu.org>
2585
2586 * xdisp.c (GIVE_UP): Fix for K&R C.
2587
2588 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2589
2590 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
2591
2592 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
2593 back to the text cursor shape without need.
2594
2595 2001-05-07 Gerd Moellmann <gerd@gnu.org>
2596
2597 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
2598
2599 * dispextern.h (inverse_video): Declare extern.
2600
2601 * keyboard.c (delete_kboard): Handle the case that selected_frame
2602 has been deleted in the course of x_connection_closed.
2603
2604 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
2605
2606 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
2607 Fix the change from 2001-04-30.
2608
2609 2001-05-03 Gerd Moellmann <gerd@gnu.org>
2610
2611 * xfns.c (file_dialog_unmap_cb): New function.
2612 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
2613 where a dialog is closed via the window manager.
2614
2615 * xdisp.c (try_window_id): Cases of changes all in front of
2616 the window start or all below the window end mostly rewritten.
2617 (redisplay_window): Move the tests if try_window_id is
2618 applicable to try_window_id.
2619 (GIVE_UP): New macro.
2620
2621 2001-05-02 Gerd Moellmann <gerd@gnu.org>
2622
2623 * xterm.c (expose_window): Return int. If W is the window
2624 currently being updated, mark the frame garbaged.
2625 Fix computation of rows intersecting the exposed rectangle.
2626 (expose_window_tree): Stop when expose_window returns 0.
2627
2628 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
2629 again if it has already been drawn.
2630
2631 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
2632
2633 * syntax.c (update_syntax_table): Check that oldi has the same
2634 properties as old_prop before deciding not to invalidate.
2635
2636 2001-04-30 Gerd Moellmann <gerd@gnu.org>
2637
2638 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
2639 read-only text that is so because of text properties.
2640
2641 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
2642 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
2643 windows that are components of a Lucid menu bar.
2644
2645 2001-04-27 Gerd Moellmann <gerd@gnu.org>
2646
2647 * term.c (turn_on_face): Fix reverse video handling on terminals
2648 that don't support colors.
2649
2650 2001-04-26 Gerd Moellmann <gerd@gnu.org>
2651
2652 * editfns.c (save_excursion_restore): Don't use XBUFFER on
2653 a non-buffer.
2654
2655 2001-04-25 Gerd Moellmann <gerd@gnu.org>
2656
2657 * term.c (toggle_highlight): New function.
2658 (turn_on_face): Change handling of reverse video.
2659
2660 * process.c (wait_reading_process_input):
2661 Call record_asynch_buffer_change only if a timer really changed buffers.
2662
2663 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
2664 of the number of overlays to check.
2665
2666 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
2667
2668 * xdisp.c (try_window_id): Fix a case where window_end_pos
2669 and window_end_bytepos were not adjusted.
2670
2671 2001-04-23 Gerd Moellmann <gerd@gnu.org>
2672
2673 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
2674 zero instead of -1.
2675
2676 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
2677
2678 * process.c (wait_reading_process_input) [!subprocesses]:
2679 Don't reference waiting_for_user_input_p, it's not defined in the
2680 branch without async subprocesses support.
2681
2682 2001-04-19 Gerd Moellmann <gerd@gnu.org>
2683
2684 * keyboard.c (delete_kboard): Prevent a dangling reference
2685 from current_kboard to KB, which is freed.
2686
2687 * process.c (wait_reading_process_input):
2688 Call record_asynch_buffer_change after running timers, to make
2689 read_key_sequence aware of buffer changes from under it.
2690
2691 2001-04-18 Gerd Moellmann <gerd@gnu.org>
2692
2693 * xfaces.c (Qscalable_fonts_allowed): New variable.
2694 (realizing_basic_faces_p): Removed.
2695 (x_face_list_fonts): Special handling for realizing_basic_faces_p
2696 removed.
2697 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
2698 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
2699 for scalable-fonts-allowed to t.
2700
2701 * fileio.c (Finsert_file_contents): If the file size returned from
2702 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
2703 read from files on a procfs whose contents are generated dynamically.
2704
2705 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
2706
2707 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
2708 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
2709 (__memalign_hook): Make the two prototypes consistent.
2710
2711 2001-04-17 Gerd Moellmann <gerd@gnu.org>
2712
2713 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
2714 matrix of mini-windows.
2715
2716 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
2717
2718 * intervals.c (find_interval): Don't rebalance during signal handling.
2719
2720 2001-04-11 Gerd Moellmann <gerd@gnu.org>
2721
2722 * fns.c: Include blockinput.h.
2723
2724 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
2725
2726 2001-04-10 Gerd Moellmann <gerd@gnu.org>
2727
2728 * fns.c (Fcompare_strings): Fix return values.
2729
2730 * window.c (window_scroll): Change the meaning of N to mean
2731 N screen-fulls or N lines.
2732 (window_scroll_pixel_based, window_scroll_line_based)
2733 (scroll_command, Fscroll_other_window): Change accordingly.
2734
2735 * window.c (window_scroll_pixel_based, Frecenter):
2736 Call window_box_height instead of using it.last_visible_y for the
2737 height of the window.
2738
2739 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
2740 instead of using it.last_visible_y for the height of the window.
2741
2742 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
2743 From Dan Holmsand <dan@eyebee.com>.
2744
2745 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
2746 able to write to hidden and system files. From Dan Holmsand
2747 <dan@eyebee.com>.
2748
2749 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
2750 Holmsand <dan@eyebee.com>.
2751
2752 2001-04-09 Gerd Moellmann <gerd@gnu.org>
2753
2754 * fns.c (Fplist_get, Fplist_put): Add QUITs.
2755
2756 * window.c (window_internal_height): Return 1 less if the
2757 window has a header line.
2758
2759 * xdisp.c (try_window_id): When scrolling on a terminal, take
2760 the change of window_internal_height into account.
2761
2762 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
2763
2764 * gmalloc.c (align): If the argument SIZE would overflow
2765 __malloc_ptrdiff_t, fail right away.
2766
2767 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2768
2769 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
2770 Make sure the tooltip is completely visible.
2771 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
2772
2773 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
2774
2775 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
2776
2777 2001-04-06 Dave Love <fx@gnu.org>
2778
2779 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
2780 Fix test of `from'.
2781
2782 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2783
2784 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
2785
2786 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
2787
2788 2001-04-05 Gerd Moellmann <gerd@gnu.org>
2789
2790 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
2791
2792 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
2793
2794 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
2795 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
2796
2797 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
2798 shell widget's position only if it is non-null.
2799
2800 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2801 Set f->output_data.x->widget to null after destroying it.
2802
2803 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2804 FILENAME to bring it in synch with the documentation.
2805
2806 * xfaces.c (realizing_basic_faces_p): Renamed from
2807 realize_default_face_p.
2808 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2809 (realize_default_face): Don't set the flag.
2810
2811 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2812
2813 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2814
2815 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2816
2817 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2818 the buffer that was used for echoing.
2819
2820 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2821 (first_font_matching): Removed unused function.
2822 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2823 (may_use_scalable_font_p): Remove parameter FONT; rename
2824 parameter NAME to FONT.
2825 (x_face_list_fonts): Fix missing bounds check.
2826 (realizing_default_face_p): New variable.
2827 (realize_default_face): Set and clear that flag.
2828 (x_face_list_fonts): When called during the realization of the
2829 default face, and no matching fonts are found when ignoring
2830 scalable fonts and fonts matching a regexp from
2831 face-ignored-fonts, try without ignoring fonts.
2832
2833 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2834
2835 * xfns.c (postprocess_image): New function.
2836 (lookup_image): Call it for all image types except PostScript.
2837 (x_kill_gs_process): Call postprocess_image.
2838
2839 * xterm.c (x_use_underline_position_properties): New variable.
2840 (x_draw_glyph_string): Use it.
2841 (syms_of_xterm): DEFVAR_BOOL it.
2842
2843 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2844
2845 * xterm.c (x_alloc_nearest_color_1): New function.
2846 (x_alloc_nearest_color): Use it.
2847 (x_color_cells): Take a Display as argument, instead of a frame.
2848 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2849 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2850 (x_initialize): Register cvt_string_to_pixel as resource converter
2851 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2852
2853 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2854
2855 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2856 (set_iterator_to_next): If a string from a display property ends,
2857 consider the case that this might also be the end of an
2858 overlay string having the display property.
2859
2860 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2861
2862 * xdisp.c (reseat_to_string): Undo last change.
2863
2864 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2865 matrix of a window when the header line changes, when
2866 new rows are allocated, or when the width changes.
2867
2868 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2869
2870 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2871
2872 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2873
2874 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2875 deprecated.
2876
2877 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2878
2879 * data.c (Fsubr_interactive_form): New function.
2880 (syms_of_data): Defsubr it.
2881
2882 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
2883 (live_float_p, live_misc_p): Return 1 only if the offset of the
2884 pointer in its block is >= 0.
2885
2886 2001-03-28 Paul Eggert <eggert@twinsun.com>
2887
2888 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
2889 microseconds calcuation. Avoid double-rounding problem.
2890 In doc string, warn that the result is approximate.
2891
2892 2001-03-28 Gerd Moellmann <gerd@gnu.org>
2893
2894 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
2895 bind `inhibit-eval-during-redisplay' to t.
2896
2897 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2898
2899 * xdisp.c (inhibit_eval_during_redisplay)
2900 (Qinhibit_eval_during_redisplay): New variables.
2901 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2902 don't eval, return nil instead.
2903 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2904 Initialize Qinhibit_eval_during_redisplay.
2905
2906 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2907 the iterator's multibyte_p flag.
2908
2909 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2910 instead of setting it to zero; it's incremented for each frame
2911 where the menu face is changed.
2912
2913 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2914 change bottom shadow accordingly.
2915
2916 * xterm.c (expose_window_tree, expose_frame): Don't compute
2917 intersections here.
2918 (expose_window): Do it here instead.
2919 (x_draw_glyph_string): Fix a computation of the underline position.
2920
2921 * bytecode.c (BYTE_CODE_QUIT): New macro.
2922 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2923
2924 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2925
2926 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2927 Give up if matrix starts in an ellipsis.
2928 (init_from_display_pos): Do nothing if POS doesn't specify
2929 a dpvec_index but the iterator has such a position.
2930
2931 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2932
2933 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2934 x/y position is (0, 0) after destroying the menu bar, restore
2935 its original position.
2936
2937 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2938 (init_from_display_pos): Use it.
2939 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2940
2941 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2942
2943 * xdisp.c (try_window_id): Undo last change.
2944
2945 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2946
2947 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2948
2949 * buffer.c (syms_of_buffer): Doc fix.
2950
2951 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2952
2953 * xfaces.c (x_update_menu_appearance): Use local variable
2954 popup_path for setting font resources.
2955
2956 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2957
2958 * frame.c (Fframe_list): Don't reference tip_frame if
2959 HAVE_WINDOW_SYSTEM is not defined.
2960
2961 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2962 <wl@gnu.org>.
2963
2964 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2965
2966 * xdisp.c (init_from_display_pos): Test invisible property
2967 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2968
2969 * xdisp.c (redisplay_internal) <update one window>: Make sure
2970 last_arrow_position and last_arrow_string are set.
2971
2972 * frame.c (Fframe_list): Don't return a tooltip frame.
2973
2974 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2975
2976 * xdisp.c (mark_window_display_accurate_1): New function,
2977 extracted from mark_window_display_accurate.
2978 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2979 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2980 (mark_window_display_accurate): Use it.
2981 (redisplay_internal): Use it for the selected window.
2982 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2983 for the selected frame.
2984
2985 * xdisp.c Use make_number, for readability.
2986 (try_window_id): Disable rows below the window end.
2987 (try_window_reusing_current_matrix): Use cursor_row_p.
2988 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2989 of rows.
2990 (init_from_display_pos): If POS specifies a position in a display
2991 vector, maybe get the iterator set up for that ellipsis.
2992
2993 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2994
2995 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2996
2997 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2998
2999 2001-03-23 Gerd Moellmann <gerd@gnu.org>
3000
3001 * xfaces.c (x_update_menu_appearance): Use a different path
3002 for Lucid popup menus.
3003
3004 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
3005
3006 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
3007
3008 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
3009 (string_buffer_position): Use `make_number'.
3010
3011 2001-03-22 Gerd Moellmann <gerd@gnu.org>
3012
3013 * xfaces.c (x_update_menu_appearance): Renamed from
3014 x_set_menu_face_resources. Use different resources for popups.
3015
3016 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
3017 (GC_CHECK_STRING_BYTES): Don't define.
3018
3019 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
3020 Removed, together with subroutines.
3021 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
3022 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
3023
3024 * dispextern.h (x_set_menu_resources_from_menu_face):
3025 Remove prototype.
3026
3027 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
3028 Remove calls to x_set_menu_resources_from_menu_face.
3029
3030 * xfaces.c (xm_set_menu_resources_from_menu_face):
3031 Remove #ifndef LESSTIF_VERSION.
3032
3033 * xmenu.c: Include widget.h.
3034 (single_submenu): Return int. Some cleanup.
3035 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
3036
3037 2001-03-21 Gerd Moellmann <gerd@gnu.org>
3038
3039 * xterm.c (x_update_window_end): Handle overwritten mouse face
3040 also for tool bar windows.
3041 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
3042 DRAW is DRAW_IMAGE_RAISED.
3043
3044 2001-03-20 Gerd Moellmann <gerd@gnu.org>
3045
3046 * print.c (syms_of_print): Doc fixes.
3047
3048 * fns.c (Fmd5): Doc fix.
3049
3050 2001-03-19 Gerd Moellmann <gerd@gnu.org>
3051
3052 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3053 Clear area of the frame not occupied by the scroll bar.
3054
3055 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
3056 tip frame's root window buffer to *tip* right after creating
3057 the frame.
3058
3059 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
3060 is an integer don't have to be for space characters.
3061
3062 2001-03-16 Gerd Moellmann <gerd@gnu.org>
3063
3064 * indent.c (current_column, current_column_1, Fmove_to_column)
3065 (compute_motion): Handle characters from display vectors differently.
3066
3067 2001-03-15 Kenichi Handa <handa@etl.go.jp>
3068
3069 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
3070 drawing glyph string.
3071
3072 2001-03-15 Gerd Moellmann <gerd@gnu.org>
3073
3074 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
3075 (command_loop_1): Undo last change.
3076
3077 * xterm.c (fast_find_position): Return the correct vpos.
3078
3079 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
3080 non-null, set a per-buffer value in BUF instead of the current buffer.
3081 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
3082 Call store_symval_forwarding with BUF null.
3083 (set_internal): Call store_symval_forwarding with the BUF
3084 parameter passed to set_internal. Formerly, the value was always
3085 set in the current buffer; the buffer recorded in specbind for
3086 this case wasn't used.
3087 (arith_driver): Reindent.
3088
3089 * buffer.c (swap_out_buffer_local_variables):
3090 Call store_symval_forwarding with BUF null.
3091
3092 * lisp.h (store_symval_forwarding): Change prototype.
3093
3094 * eval.c (specbind): Call store_symval_forwarding with BUF null.
3095
3096 2001-03-14 Gerd Moellmann <gerd@gnu.org>
3097
3098 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
3099 FOR_DELETION. Avoid resizing the mini-window of the selected
3100 frame if FOR_DELETION is set.
3101 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
3102 (Fmake_frame_invisible): Change calls to do_switch_frame for new
3103 signature.
3104
3105 * window.c (Fset_window_configuration): Change call to
3106 do_switch_frame to new format.
3107
3108 * keyboard.c (quit_throw_to_read_char): Change call to
3109 do_switch_frame to new format.
3110
3111 * lisp.h (do_switch_frame): Change prototype.
3112
3113 * frame.c (Fframe_parameters): In the `buffer-list' frame
3114 parameter, store the buffer list of FRAME, not the list of the
3115 selected frame.
3116
3117 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
3118 box just because the glyph row's full_width_p flag is set.
3119
3120 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
3121
3122 * xdisp.c (highlight_trailing_whitespace): On character terminals,
3123 skip the padding blanks inserted in extend_face_to_end_of_line,
3124 before checking for trailing whitespace.
3125
3126 2001-03-13 Gerd Moellmann <gerd@gnu.org>
3127
3128 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
3129 Remove special handling for LessTif/Motif.
3130 (toplevel): Don't include Xm/Xm.h.
3131
3132 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
3133 Remove workaround code for LessTif; it doesn't work anymore.
3134
3135 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
3136 Xm/ScrollBarP.h.
3137
3138 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
3139 Don't access private scroll bar data; it's no longer necessary with
3140 contemporary LessTif.
3141
3142 * xfaces.c (xm_set_menu_resources_from_menu_face):
3143 Change #if 0 to #ifndef LESSTIF_VERSION.
3144
3145 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
3146 removing button grabs.
3147
3148 2001-03-13 Kenichi Handa <handa@etl.go.jp>
3149
3150 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
3151 and clip-large-size-font as obsolete.
3152
3153 * lread.c (read_multibyte): Check the validity of multibyte
3154 sequence. If invalid, return the first byte.
3155
3156 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3157
3158 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
3159 before running the command; timer functions or process
3160 filters may have set it.
3161
3162 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3163
3164 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
3165 Doc fix.
3166
3167 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3168
3169 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
3170 to sprintf.
3171
3172 2001-03-09 Gerd Moellmann <gerd@gnu.org>
3173
3174 * dispextern.h (string_buffer_position): Add prototype.
3175
3176 * xdisp.c (string_buffer_position, display_prop_string_p)
3177 (single_display_prop_string_p): New functions.
3178
3179 * xterm.c (note_mouse_highlight): If there's no help-echo on
3180 a string, look at the buffer text ``under'' it.
3181
3182 * keyboard.c (make_lispy_event): Add string info to the event,
3183 analogous to what's done on mode lines.
3184 (read_key_sequence): For a click on a string, consider `local-map'
3185 and `keymap' of that string.
3186
3187 * keyboard.c (make_lispy_event, make_lispy_movement):
3188 Adjust calls to buffer_posn_from_coords to new format.
3189
3190 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
3191
3192 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
3193 POS; return void.
3194
3195 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
3196 flags argument to emacs_open; it seems to conflict with O_EXCL.
3197
3198 2001-03-09 Kenichi Handa <handa@etl.go.jp>
3199
3200 * composite.h (struct composition): Change types of members;
3201 glyph_len to unsigned, width to unsigned short.
3202
3203 2001-03-08 Andrew Innes <andrewi@gnu.org>
3204
3205 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
3206 menu titles.
3207
3208 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3209
3210 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
3211 instead of nil.
3212
3213 * xterm.c (note_mouse_highlight): Handle mouse-face and
3214 help-echo in strings.
3215 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
3216 (fast_find_string_pos): New function.
3217
3218 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
3219 (display_string): Call face_at_string_position with new parameter.
3220
3221 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
3222 Handle `mouse-face'.
3223
3224 * dispextern.h (face_at_string_position): Change prototype.
3225
3226 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
3227
3228 * keyboard.c (make_lispy_event): Avoid generating drag events
3229 if the mouse hasn't actually moved to another buffer position.
3230
3231 2001-03-08 Dave Love <fx@gnu.org>
3232
3233 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
3234
3235 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3236
3237 * process.c (Fset_process_window_size): Fix a typo.
3238
3239 2001-03-08 Kenichi Handa <handa@etl.go.jp>
3240
3241 * coding.c (detect_coding_sjis): Do more rigid check.
3242 (detect_coding_big5): Likewise.
3243 (decode_coding_sjis_big5): Likewise.
3244 (Fdetect_coding_region): Call detect_coding_system with tailing
3245 anchor byte `\0' for more rigid detection.
3246 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
3247 (Fdetect_coding_string): Likewise.
3248
3249 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
3250
3251 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
3252 a string before extracting its data.
3253
3254 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3255
3256 * window.c (Frecenter): Rewrite code handling negative values
3257 of ARG on graphical frames.
3258
3259 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
3260
3261 * window.c (displayed_window_lines): If W->start is outside the
3262 accessible portion of the buffer, call start_display with BEGV or
3263 ZV instead of W->start.
3264
3265 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3266
3267 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
3268
3269 * process.c (Fset_process_filter): Don't crash if the input
3270 file descriptor of PROCESS is closed.
3271 (Fset_process_window_size): Likewise.
3272
3273 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3274
3275 * xterm.c (XTflash): Make the timeout of select shorter, and call
3276 select repeatedly until the desired time expires.
3277
3278 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3279
3280 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
3281
3282 * xfns.c (Fx_create_frame): Clear Vwindow_list.
3283
3284 * lisp.h (Vwindow_list): Declare extern.
3285
3286 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3287
3288 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
3289
3290 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3291
3292 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
3293 to detect a case where we have to highlight a different region
3294 despite not having left the currently highlighted region.
3295 Set mouse_face_overlay in the x_display_info.
3296 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
3297
3298 * xterm.h (struct x_display_info): Add mouse_face_overlay.
3299
3300 * buffer.c (mouse_face_overlay_overlaps): New function.
3301
3302 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
3303 (Qmouse_face): Declare extern.
3304
3305 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
3306 if face_change_count is non-zero.
3307
3308 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3309
3310 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
3311 that the source is unibyte.
3312
3313 2001-03-05 Dave Love <fx@gnu.org>
3314
3315 * xterm.c (XTmouse_position): Fix typo.
3316
3317 2001-03-05 Gerd Moellmann <gerd@gnu.org>
3318
3319 * minibuf.c (read_minibuf): Clean up the binding stack if
3320 called noninteractively.
3321
3322 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3323
3324 * coding.c (syms_of_coding): Docstring modified.
3325
3326 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3327
3328 * charset.c (char_to_string): If a single byte char has modifier
3329 bits that can't be reflected to the character code, ignore them
3330 instead of signaling an error.
3331
3332 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
3333
3334 * s/msdos.h: Update copyright notice.
3335
3336 * dosfns.h: Update copyright notice.
3337
3338 * dosfns.c: Update copyright notice.
3339
3340 * msdos.c: Update copyright notice.
3341
3342 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3343
3344 * xterm.c (glyph_rect): New function.
3345 (XTmouse_position): Use it to raise the threshold for mouse
3346 movement event generation.
3347
3348 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3349
3350 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
3351 specifies (reverse . t), reverse the initial screen colors.
3352 (IT_set_frame_parameters): If the property is foreground-color,
3353 but we are reversing the colors, set bg_set, not fg_set.
3354 Likewise for setting background-color and reversing: set fg_set.
3355 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
3356 in effect.
3357
3358 * xfaces.c (Finternal_set_lisp_face_attribute)
3359 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
3360 parameters alist.
3361
3362 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3363
3364 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
3365 to a single slash in the middle of file names.
3366
3367 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
3368 Accept only alphanumeric time zone names.
3369
3370 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
3371 or width area.
3372 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
3373 a widget to zero height.
3374
3375 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3376
3377 * window.c (Fwindow_end): Call move_it_past_eol only if
3378 ending up on a partially visible line.
3379
3380 2001-03-01 Dave Love <fx@gnu.org>
3381
3382 * ccl.c (Fccl_execute): Doc fix.
3383
3384 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3385
3386 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
3387 of the tool bar before calling x_figure_window_size.
3388
3389 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
3390 NULL after destroying it, otherwise XTread_socket can access a
3391 destroyed widget when input is unblocked.
3392
3393 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
3394
3395 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
3396 same name as before, although there was a change in fontsets.
3397
3398 2001-02-28 Ken Raeburn <raeburn@gnu.org>
3399
3400 * lisp.h (Fframe_parameter): Declare.
3401
3402 * window.c (set_window_buffer): Field vscroll is an int, not a
3403 Lisp_Object.
3404
3405 2001-02-28 Gerd Moellmann <gerd@gnu.org>
3406
3407 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
3408 NULL instead.
3409
3410 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
3411 NULL instead.
3412
3413 * alloc.c (toplevel): Include process.h.
3414 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
3415 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
3416 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
3417 (allocate_vector, allocate_hash_table, allocate_window)
3418 (allocate_frame, allocate_process, allocate_other_vector):
3419 New functions.
3420 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
3421 (mark_maybe_pointer): New function.
3422 (mark_memory): Also mark Lisp data to which only pointers
3423 remain and not Lisp_Objects.
3424 (min_heap_address, max_heap_address): New variables.
3425 (mem_find): Return MEM_NIL if START is below min_heap_address or
3426 above max_heap_address.
3427 (mem_insert): Compute min_heap_address and max_heap_address.
3428
3429 * process.c (make_process): Use allocate_process.
3430
3431 * frame.c (make_frame): Use allocate_frame.
3432
3433 * window.c (make_window, make_dummy_parent): Use allocate_window.
3434 (Fcurrent_window_configuration): Use allocate_other_vector.
3435
3436 * lisp.h (allocate_vectorlike): Remove prototype.
3437 (allocate_vector, allocate_other_vector, allocate_frame)
3438 (allocate_window, allocate_process, allocate_hash_table):
3439 Add prototypes.
3440
3441 * fns.c (Fdelete, larger_vector): Use allocate_vector.
3442 (make_hash_table, copy_hash_table): Use allocate_hash_table.
3443
3444 2001-02-27 Kenichi Handa <handa@etl.go.jp>
3445
3446 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
3447 treat the produced bytes as a valid multibyte sequence.
3448
3449 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
3450 (ccl_driver) <CCL_WriteMultibyteChar2>:
3451 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
3452 <ccl_finish>: Set ccl->eight_bit_control properly.
3453
3454 * ccl.h (struct ccl_program): New member eight_bit_control.
3455
3456 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
3457
3458 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
3459 accessible_keymaps_char_table.
3460 (accessible_keymaps_char_table): Obey `is_metized'.
3461 (where_is_internal, Fwhere_is_internal): Don't confuse int and
3462 Lisp_Object.
3463
3464 2001-02-26 Gerd Moellmann <gerd@gnu.org>
3465
3466 * dispnew.c: Check HAVE_TERM_H before including term.h.
3467
3468 2001-02-24 Andrew Innes <andrewi@gnu.org>
3469
3470 * makefile.w32-in: Update copyright notice.
3471
3472 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
3473
3474 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
3475
3476 2001-02-24 Kenichi Handa <handa@etl.go.jp>
3477
3478 * Makefile.in (lisp): Add international/utf-8.elc.
3479
3480 * fontset.c (Fnew_fontset): Fix handling of the case that an
3481 element of FONTLIST is a cons of family and registry.
3482
3483 2001-02-23 Jason Rumney <jasonr@gnu.org>
3484
3485 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
3486 to height unconditionally.
3487
3488 * w32term.c (x_set_glyph_string_background_width): Extend the
3489 background face to the end of the drawing area in the text area, only.
3490 (x_insert_glyphs): Call window_box_left to obtain the left
3491 x-coordinate of the area to shift.
3492
3493 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
3494 safe_run_hooks.
3495
3496 2001-02-22 Andrew Innes <andrewi@gnu.org>
3497
3498 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
3499 ($(BLD)\dispnew.obj):
3500 ($(BLD)\editfns.obj):
3501 ($(BLD)\fileio.obj):
3502 ($(BLD)\filelock.obj):
3503 ($(BLD)\keyboard.obj):
3504 ($(BLD)\w32proc.obj):
3505 ($(BLD)\process.obj):
3506 ($(BLD)\sysdep.obj): Ditto.
3507
3508 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
3509 header files.
3510 ($(BLD)/dispnew.$(O)):
3511 ($(BLD)/editfns.$(O)):
3512 ($(BLD)/fileio.$(O)):
3513 ($(BLD)/filelock.$(O)):
3514 ($(BLD)/keyboard.$(O)):
3515 ($(BLD)/w32proc.$(O)):
3516 ($(BLD)/process.$(O)):
3517 ($(BLD)/sysdep.$(O)): Ditto.
3518
3519 2001-02-22 Gerd Moellmann <gerd@gnu.org>
3520
3521 * xdisp.c (forward_to_next_line_start): When taking the shortcut
3522 at the start of the function, check that the \n in it->c is
3523 from the iterator's current position.
3524
3525 * xdisp.c (handle_single_display_prop): Add parameter
3526 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
3527 properties which replace the display of text with something else.
3528 (handle_display_prop): Call handle_single_display_prop with
3529 additional argument saying if we already replaced text display
3530 with something else. Use AREF.
3531 (with_echo_area_buffer_unwind_data, display_menu_bar)
3532 (decode_mode_spec_coding): Use AREF and ASIZE.
3533
3534 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
3535 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
3536 * vmstime.h: Files removed.
3537
3538 * unexencap.c, unexfx2800.c: Files removed.
3539
3540 * dispnew.c (direct_output_for_insert): Give up if we are showing
3541 a message or just cleared the message because we might need to
3542 resize the echo area window or display an empty echo area.
3543
3544 2001-02-21 Gerd Moellmann <gerd@gnu.org>
3545
3546 * xdisp.c (redisplay_internal): Do the
3547 mark_window_display_accurate after all windows have been
3548 redisplayed because this call resets flags in buffers which are
3549 needed for proper redisplay.
3550
3551 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
3552 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
3553 the old names.
3554
3555 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3556 busy_window to hourglass_window, busy_p to hourglass_p.
3557
3558 * msdos.h (struct x_output): Rename busy_window to
3559 hourglass_window, busy_p to hourglass_p.
3560
3561 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3562 busy_window to hourglass_window, busy_p to hourglass_p.
3563
3564 * xfns.c: Rename everything containing *busy_cursor* and similar
3565 to *hourglass*.
3566 (syms_of_w32fns): Rename x-busy-pointer-shape to
3567 x-hourglass-pointer-shape, display-busy-cursor to
3568 display-hourglass, busy-cursor-delay to hourglass-delay.
3569
3570 * w32fns.c: Rename everything containing *busy_cursor* and similar
3571 to *hourglass*.
3572 (syms_of_w32fns): Rename x-busy-pointer-shape to
3573 x-hourglass-pointer-shape, display-busy-cursor to
3574 display-hourglass, busy-cursor-delay to hourglass-delay.
3575
3576 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
3577 of its busy_p flag.
3578
3579 * dispextern.h (start_hourglass, cancel_hourglass)
3580 (display_hourglass_p): Renamed from *busy_cursor*.
3581
3582 2001-02-20 Gerd Moellmann <gerd@gnu.org>
3583
3584 * keyboard.c (read_char): When an event from unread-command-events
3585 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
3586
3587 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
3588 equal to the current buffer.
3589
3590 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
3591 nil, otherwise we're left with truncate_lines t when a message
3592 is printed with message-truncate-lines bound to t.
3593
3594 2001-02-19 Gerd Moellmann <gerd@gnu.org>
3595
3596 * window.c (Fmove_to_window_line): Undo last change.
3597 (displayed_window_lines): Call line_bottom_y to determine
3598 the line's bottom position.
3599
3600 * dispextern.h (line_bottom_y): Add prototype.
3601
3602 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
3603 (pos_visible_p): Use it.
3604
3605 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
3606 set redisplaying_p to 0 here instead of in Frecursive_edit.
3607 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
3608 set redisplaying_p.
3609
3610 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
3611 New variables.
3612 (syms_of_xdisp): Initialize new variables.
3613 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
3614 Specbind `inhibit-menubar-update' when updating the menu bar.
3615
3616 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
3617 safe_run_hooks.
3618
3619 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
3620 safe_run_hooks.
3621
3622 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
3623 is null.
3624
3625 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
3626 to the start of the file.
3627
3628 2001-02-16 Gerd Moellmann <gerd@gnu.org>
3629
3630 * window.c (set_window_buffer): Fix last change.
3631
3632 * window.c (set_window_buffer): Set window's vscroll to 0.
3633
3634 * window.c (coordinates_in_window): Increase width of area
3635 where the vertical line can be dragged.
3636
3637 * xterm.c (x_set_glyph_string_background_width): Extend the
3638 background face to the end of the drawing area in the text
3639 area, only.
3640
3641 * xdisp.c (handle_single_display_prop): Set iterator's position
3642 to where the `display' property starts, like for images.
3643 (dump_glyph): New function.
3644 (dump_glyph_row): Use it. Dump info about marginal areas.
3645
3646 * dispnew.c (direct_output_for_insert): Recognize more cases where
3647 glyphs can be written instead of being inserted.
3648
3649 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
3650 the left x-coordinate of the area to shift.
3651
3652 * dired.c (directory_files_internal): Set result list to nil
3653 before retrying.
3654
3655 2001-02-15 Kenichi Handa <handa@etl.go.jp>
3656
3657 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
3658 invalid multibyte sequence, treat *SRC as a character of
3659 eight-bit-graphic.
3660
3661 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
3662
3663 * textprop.c (Fset_text_properties): Doc fix.
3664
3665 2001-02-15 Gerd Moellmann <gerd@gnu.org>
3666
3667 * dispnew.c (update_text_area): Undo change of 2001-01-12.
3668
3669 2001-02-14 Dave Love <fx@gnu.org>
3670
3671 * coding.c: Doc and message fixes.
3672
3673 2001-02-14 Andrew Innes <andrewi@gnu.org>
3674
3675 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
3676 Emacs frame above the screen size.
3677
3678 2001-02-14 Gerd Moellmann <gerd@gnu.org>
3679
3680 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
3681
3682 2001-02-13 Gerd Moellmann <gerd@gnu.org>
3683
3684 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
3685 case that TO ends up beyond ZV after running before-change-functions.
3686
3687 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
3688 the selected window if it is showing the buffer in question.
3689
3690 * dired.c (directory_files_internal): Initialize errno.
3691 (toplevel): Include errno.h.
3692
3693 2001-02-13 Kenichi Handa <handa@etl.go.jp>
3694
3695 * xfaces.c (best_matching_font): New parameter width_ratio.
3696 Multiply avgwidth by width_ratio.
3697 (choose_face_font): Call best_matching_font with width_ratio
3698 calculated from the column width of C.
3699
3700 2001-02-12 Andrew Innes <andrewi@gnu.org>
3701
3702 The following changes are to draw box lines inside characters area
3703 if line-width is negative.
3704
3705 * w32term.c (x_produce_image_glyph): Pay attention to the case that
3706 face->box_line_width is negative.
3707 (x_produce_stretch_glyph): Likewise.
3708 (x_produce_glyphs): Likewise.
3709 (x_estimate_mode_line_height): Likewise.
3710 (x_draw_glyph_string_background): Likewise.
3711 (x_draw_glyph_string_foreground): Likewise.
3712 (x_draw_composite_glyph_string_foreground): Likewise.
3713 (x_draw_glyph_string_box): Likewise.
3714 (x_draw_image_foreground): Likewise.
3715 (x_draw_image_relief): Likewise.
3716 (x_draw_image_foreground_1): Likewise.
3717 (x_draw_image_glyph_string): Likewise.
3718
3719 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3720
3721 The following changes are to draw box lines inside characters area
3722 if line-width is negative.
3723
3724 * xterm.c (x_produce_image_glyph): Pay attention to the case that
3725 face->box_line_width is negative.
3726 (x_produce_stretch_glyph): Likewise.
3727 (x_produce_glyphs): Likewise.
3728 (x_estimate_mode_line_height): Likewise.
3729 (x_draw_glyph_string_background): Likewise.
3730 (x_draw_glyph_string_foreground): Likewise.
3731 (x_draw_composite_glyph_string_foreground): Likewise.
3732 (x_draw_glyph_string_box): Likewise.
3733 (x_draw_image_foreground): Likewise.
3734 (x_draw_image_relief): Likewise.
3735 (x_draw_image_foreground_1): Likewise.
3736 (x_draw_image_glyph_string): Likewise.
3737
3738 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
3739 and :line-width can be negative.
3740 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
3741
3742 2001-02-09 Jason Rumney <jasonr@gnu.org>
3743
3744 * w32term.c (w32_encode_char): Treat eight bit graphic and control
3745 characters the same as ASCII and latin-1.
3746 (x_display_and_set_cursor): Check for the focus frame's selected
3747 window instead of selected_window.
3748 (x_after_update_window_line): Don't clear if frame's internal
3749 border width is zero.
3750 (x_new_font): Don't change a tooltip's size.
3751 (w32_initialize): Set char_ins_del_ok to 1.
3752
3753 * w32fns.c (Fx_show_tip): Fix calls to make_number.
3754 (x_set_font): If font hasn't changed, avoid recomputing
3755 faces and other things.
3756 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
3757 (Fx_create_frame): Add the tool bar height to the frame height.
3758 (x_create_tip_frame): Prevent changing the tooltip's
3759 background color by specifying a color for the default font
3760 in .Xdefaults.
3761 (Qcancel_timer): New variable.
3762 (syms_of_w32fns): Initialize and staticpro it.
3763 (Fx_hide_tip, Fx_show_tip): Use it.
3764 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3765 the timer.
3766 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
3767
3768 * w32.c (init_environment): Duplicate local string before putenv.
3769
3770 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
3771
3772 * charset.c (Fstring): A typo.
3773
3774 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3775
3776 * charset.c (Fstring): If all arguments are less than 256, return
3777 a unibyte string.
3778
3779 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
3780 return a unibyte string.
3781
3782 * coding.c (code_convert_region): After detecting a coding, if
3783 nothing found, set coding->composing to COMPOSITION_NO.
3784 (decode_coding_string): Likewise.
3785
3786 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
3787
3788 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
3789 to avoid overflow.
3790
3791 2001-02-07 Kenichi Handa <handa@etl.go.jp>
3792
3793 * charset.c (parse_str_to_multibyte): New function.
3794
3795 * charset.h (parse_str_to_multibyte): Extern it.
3796
3797 * print.c (print_string): If we are going to print a unibyte
3798 string into a multibyte buffer, convert the string to multibyte by
3799 str_to_multibyte.
3800
3801 2001-02-06 Andrew Innes <andrewi@gnu.org>
3802
3803 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3804 been created. It seems we can get sent window messages such as
3805 WM_ERASEBKGND before we properly update a frame.
3806
3807 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3808
3809 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3810 Avoid some unnecessary cursor positioning.
3811
3812 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3813
3814 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3815 (LFACE_AVGWIDTH): New macro.
3816 (LFACEP): Use AREF.
3817 (check_lface_attrs): Check LFACE_AVGWIDTH.
3818 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3819 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3820 (merge_face_vectors): Check LFACE_AVGWIDTH.
3821 (Finternal_make_lisp_face): Use AREF.
3822 (xm_set_menu_resources_from_menu_face)
3823 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3824 (Finternal_lisp_face_empty_p): Use AREF.
3825 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3826 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3827 Compare average widths..
3828 (best_matching_font): Arrange for comparing average widths.
3829
3830 * dispextern.h (enum lface_attribute_index):
3831 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3832
3833 2001-02-05 Dave Love <fx@gnu.org>
3834
3835 * puresize.h: Revert last change following loadup.el change.
3836
3837 2001-02-05 Andrew Innes <andrewi@gnu.org>
3838
3839 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3840 invocation of temacs, to work with Windows 2000.
3841 (bootstrap-emacs): Ditto.
3842
3843 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3844
3845 * xterm.c (x_display_and_set_cursor): Check for the focus
3846 frame's selected window instead of selected_window.
3847
3848 * xdisp.c (try_scrolling): If point is in the line below the
3849 window, make sure to move the iterator at least a canonical
3850 char height down.
3851
3852 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3853
3854 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3855
3856 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3857 If invalid, execute CCL_INVALID_CMD.
3858 (ccl_driver): If the CCL program is terminated because of
3859 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3860 destination instead of throwing them away.
3861
3862 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3863
3864 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3865 faces and other things.
3866
3867 * xdisp.c (get_next_display_element): Fix case of empty
3868 display table entry.
3869
3870 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3871
3872 * editfns.c (Fconstrain_to_field): Doc fix.
3873
3874 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3875 into `thoroughly', to make it consistent with the doc string.
3876
3877 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3878
3879 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3880
3881 * search.c (search_buffer): Call set_search_regs with a byte
3882 position, not a character position.
3883
3884 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
3885 minibuffer-only,
3886
3887 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
3888
3889 * frame.c (Fmodify_frame_parameters): Doc fix.
3890
3891 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3892
3893 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
3894 identifier which is not reserved by Standard C.
3895
3896 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3897
3898 * window.c (enum window_part): New enumeration.
3899 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3900 Qright_bitmap_area.
3901 (coordinates_in_window): Return an enumerator from enum
3902 window_part. Fix handling of right scroll bar.
3903 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3904 `right-fringe' instead of `left-bitmap-area' and
3905 `right-bitmap-area'. Use enumerators from enum window_part
3906 instead of hard-coded integers.
3907 (check_window_containing, window_from_coordinates):
3908 Use enumerators from enum window_part instead of hard-coded integers.
3909 (syms_of_window): Replace Qleft_bitmap_area and
3910 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3911
3912 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3913
3914 * editfns.c (Fformat_time_string): Doc fix.
3915
3916 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3917
3918 * keymap.c (Fwhere_is_internal): Use the first valid binding
3919 if no ascii binding is found (when firstonly is t).
3920
3921 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3922
3923 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3924 instead of Finteractive_p.
3925
3926 * lisp.h (interactive_p): Add prototype.
3927
3928 * eval.c (interactive_p): New function.
3929 (Finteractive_p): Use it.
3930
3931 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3932
3933 2001-01-31 Dave Love <fx@gnu.org>
3934
3935 * .gdbinit (hook-run): Define to run xreload.
3936
3937 * textprop.c (Fset_text_properties): Fix newline in doc string.
3938
3939 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3940
3941 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3942 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3943
3944 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3945 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3946 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3947
3948 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3949 height.
3950
3951 2001-01-30 Dave Love <fx@gnu.org>
3952
3953 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3954 AFTER_POTENTIAL_GC.
3955
3956 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3957
3958 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3959 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3960
3961 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3962
3963 * textprop.c (Fset_text_properties): Doc fix.
3964
3965 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3966
3967 * xdisp.c (forward_to_next_line_start): Remove xassert.
3968
3969 2001-01-29 Jason Rumney <jasonr@gnu.org>
3970
3971 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3972 returning without releasing it.
3973
3974 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3975
3976 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3977 for '^', '$', and '\0'.
3978
3979 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3980
3981 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3982 regex for '^', '$', and '\0'.
3983
3984 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3985 only if current_sblock has been initialized.
3986
3987 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3988 terminal frame even if it is the only visible frame.
3989
3990 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3991
3992 * fontset.c (font_family_registry): Even if FONTNAME conform to
3993 XLFD, if it specifies other fields than family and registry,
3994 return FONTANME. New argument FORCE if nonzero cancel that feature.
3995 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3996 a signle byte character. Don't set FAMILY part to nil here.
3997 It is handled by the caller choose_face_font.
3998 (Fnew_fontset): Call font_family_registry with FORCE 0.
3999 (Fset_fontset_font): Likewise.
4000
4001 2001-01-27 Gerd Moellmann <gerd@gnu.org>
4002
4003 * xdisp.c (display_line): Don't treat a newline as fitting
4004 on the line.
4005
4006 2001-01-26 Gerd Moellmann <gerd@gnu.org>
4007
4008 * window.c (size_window): Set the window's orig_top to nil when
4009 changing heights, so that a future shrink_mini_window won't
4010 restore a bogus height.
4011
4012 * frame.c (do_switch_frame): If selected frame has a mini-window,
4013 resize that to exact size.
4014
4015 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
4016
4017 * xdisp.c (display_line): Simplify check for glyphs fitting
4018 entirely in the line.
4019
4020 * xfns.c (xic_style): New variable.
4021 (create_frame_xic): Move static variable to global scope for
4022 the case that `static' gets defined away.
4023
4024 2001-01-26 Kenichi Handa <handa@etl.go.jp>
4025
4026 * coding.c (decode_coding): Set a flag for inhibiting
4027 inconsistent eol.
4028 (code_convert_region): Always set saved_coding_symbol.
4029 (decode_coding_string): Likewise. Update coding->symbol when we
4030 encounter a inconsistent eol by the same way as code_convert_region.
4031
4032 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4033
4034 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
4035 XClearArea.
4036
4037 * xterm.c (x_after_update_window_line): Don't clear if frame's
4038 internal border width is zero.
4039 (x_clear_area): New function.
4040 (x_after_update_window_line, x_clear_end_of_line)
4041 (x_scroll_bar_create, x_scroll_bar_set_handle)
4042 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
4043 instead of XClearArea.
4044
4045 * xterm.h (x_clear_area): Add prototype.
4046
4047 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
4048 which doesn't seem necessary anymore with Lesstif 0.92.
4049
4050 2001-01-25 Dave Love <fx@gnu.org>
4051
4052 * puresize.h (BASE_PURESIZE): Up to 720000.
4053
4054 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
4055
4056 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4057
4058 * xdisp.c (echo_area_display): Don't call redisplay_internal
4059 when Emacs is shutting down. We can't run hooks etc. that
4060 would be necessary to do a redisplay.
4061
4062 * lread.c (read_integer): Use type EMACS_INT instead of int.
4063
4064 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
4065
4066 * ccl.c (ccl_driver): Fix last change.
4067
4068 2001-01-25 Kenichi Handa <handa@etl.go.jp>
4069
4070 * ccl.h (sturct ccl_program): New member suppress_error.
4071
4072 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
4073 insert error message to the output.
4074 (setup_ccl_program): Initialize ccl->suppress_error to 0.
4075
4076 * coding.h (struct coding_system): New member suppress_error.
4077
4078 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
4079 (Fset_terminal_coding_system_internal): Set the member
4080 suppress_error to 1.
4081 (Fset_safe_terminal_coding_system_internal): Likewise.
4082
4083 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
4084
4085 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
4086 as if it was a `charset'.
4087
4088 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4089
4090 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
4091 value in where_is_cache; the next lookup in the cache returns
4092 something bogus if we do.
4093
4094 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4095
4096 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
4097 if HAVE_WINDOW_SYSTEM isn't defined.
4098
4099 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4100
4101 * fns.c (sweep_weak_table): Fix code taking items out of
4102 the hash collision chain. Some cleanup.
4103
4104 * xterm.c (x_new_font): Don't change a tooltip's size.
4105
4106 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
4107 background color by specifying a color for the default font
4108 in .Xdefaults.
4109
4110 2001-01-24 Kenichi Handa <handa@etl.go.jp>
4111
4112 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
4113 a workaround for SunOS 4's cc.
4114 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
4115 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
4116 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
4117 statement.
4118
4119 2001-01-23 Gerd Moellmann <gerd@gnu.org>
4120
4121 * xterm.c (x_set_window_size_1): New function extracted from
4122 x_set_window_size.
4123 (x_set_window_size): Use it.
4124 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
4125 doesn't have a widget, like tooltips.
4126
4127 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
4128
4129 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
4130
4131 2001-01-23 Kenichi Handa <handa@etl.go.jp>
4132
4133 * fns.c (Fset_char_table_default): Fix to make sub char-table
4134 correctly.
4135
4136 2001-01-22 Gerd Moellmann <gerd@gnu.org>
4137
4138 * xdisp.c (build_desired_tool_bar_string): Make sure we have
4139 a desired tool bar string, even if there are no tool bar items.
4140
4141 * xdisp.c (Ftool_bar_lines_needed): New function.
4142 (syms_of_xdisp): Defsubr it.
4143
4144 * editfns.c (Fformat): Don't extend text properties from arguments
4145 to padding chars in the result.
4146
4147 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
4148
4149 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
4150
4151 2001-01-20 Andrew Innes <andrewi@gnu.org>
4152
4153 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
4154 (w32_initialize): Don't set term hooks that aren't actually needed
4155 in windowed mode.
4156
4157 * xfaces.c (realize_default_face):
4158 (realize_face):
4159 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
4160
4161 * xdisp.c (handle_single_display_prop): Remove references to
4162 FRAME_W32_CONSOLE_P.
4163
4164 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
4165
4166 * frame.h (output_method): Remove output_w32_console method.
4167 (FRAME_W32_CONSOLE_P): Remove macro.
4168
4169 * frame.c (Qw32_console): Remove variable.
4170 (Fframep): Remove references to it.
4171 (syms_of_frame): Ditto.
4172 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
4173
4174 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
4175 redefinition.
4176
4177 2001-01-20 Kenichi Handa <handa@etl.go.jp>
4178
4179 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
4180
4181 2001-01-19 Andrew Innes <andrewi@gnu.org>
4182
4183 * w32.c (init_environment): Add a version-independent site-lisp
4184 directory to EMACSLOADPATH, after the version dependent one.
4185
4186 2001-01-19 Gerd Moellmann <gerd@gnu.org>
4187
4188 * editfns.c (Fbuffer_substring): Doc fix.
4189
4190 * xdisp.c (message_dolog, message2, message2_nolog):
4191 Rename parameter LEN to NBYTES.
4192
4193 2001-01-19 Kenichi Handa <handa@etl.go.jp>
4194
4195 * charset.c (strwidth): Use c_string_width.
4196 (c_string_width): New function.
4197 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
4198 Caller changed.
4199
4200 * charset.h (c_string_width, lisp_string_width): Extern them.
4201
4202 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
4203
4204 * indent.c (check_composition): Check validity of composition.
4205
4206 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
4207 characters by calling c_string_width.
4208 (x_consider_frame_title): Get byte length of frame tile string
4209 correctly.
4210 (display_mode_element): Pay attention to width of non-ASCII
4211 characters by calling strwidth.
4212
4213 2001-01-18 Gerd Moellmann <gerd@gnu.org>
4214
4215 * xfns.c (Qcancel_timer): New variable.
4216 (syms_of_xfns): Initialize and staticpro it.
4217 (Fx_hide_tip, Fx_show_tip): Use it.
4218 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
4219 the timer.
4220 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
4221
4222 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
4223
4224 * window.h (WINDOW_LIVE_P): New macro.
4225
4226 * window.c (window_size_fixed): New variable.
4227 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
4228 the doc string.
4229
4230 * eval.c (specbind): If binding a per-buffer variable which
4231 doesn't have a buffer-local value in the current buffer, change
4232 the global value by changing the value of the symbol bound in all
4233 buffers not having their own value, to make it consistent with
4234 what happens with other buffer-local variables.
4235
4236 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
4237
4238 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
4239 when searching for a newline.
4240
4241 2001-01-18 Kenichi Handa <handa@etl.go.jp>
4242
4243 * xdisp.c (display_string): Fix previous change.
4244
4245 2001-01-18 Jason Rumney <jasonr@gnu.org>
4246
4247 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
4248 GLYPH_DEBUG is defined.
4249 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
4250 true for images with `:ascent 100'.
4251 (x_set_mouse_face_gc): If the last used mouse face has gone in the
4252 meantime, use face MOUSE_FACE_ID.
4253 If first glyph isn't a character glyph, use the ASCII NUL
4254 character to determine the face.
4255 (expose_area): Do not treat left margin specially.
4256 (note_mode_line_highlight): If no local_map, check global keymap.
4257 (note_mouse_highlight): Initialize overlay.
4258 (clear_mouse_face): Don't return if tip_frame is non-nil.
4259 (show_scroll_bars): Remove unused function.
4260 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
4261 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
4262 Clip to row.
4263 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
4264 (x_free_frame_resources): Unload relief colors.
4265
4266 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4267
4268 * xdisp.c (forward_to_next_line_start): Avoid calling
4269 get_next_display_element when the newline is already found.
4270 This may change the iterator's position, when its current position is
4271 equal to the iterator's stop_charpos.
4272
4273 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
4274 zero, use this method only at the end of a line.
4275
4276 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
4277 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
4278 if SCALABLE_FONTS_P is set.
4279
4280 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
4281 so that scalable fonts are included.
4282
4283 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
4284 In the cache, use a key containing the information if scalable
4285 fonts are included.
4286 (x_load_font): Adapt to change of keys in the font cache.
4287
4288 2001-01-17 Kim F. Storm <storm@filanet.dk>
4289
4290 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
4291 XListFonts to take advantage of font caching.
4292
4293 * xterm.c (x_list_fonts): Ensure caching font information when
4294 called for a null frame, which is the case frequently when Emacs
4295 starts.
4296
4297 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4298
4299 * xfns.c (QCconversion): Replaces QCalgorithm.
4300
4301 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
4302
4303 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
4304 of :algorithm.
4305
4306 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
4307 not everything could be displayed.
4308
4309 * line.h, x-list-font.c: Files removed because unused.
4310
4311 2001-01-17 Andrew Innes <andrewi@gnu.org>
4312
4313 * dired.c (directory_files_internal): Convert result from readdir
4314 to a unibyte string initially, to avoid possible misinterpretation
4315 of some bytes as the internal form of Emacs characters.
4316
4317 2001-01-17 Kenichi Handa <handa@etl.go.jp>
4318
4319 * fns.c (concat): Be sure to avoid putting the same `composition'
4320 property on the adjacent regions.
4321
4322 2001-01-16 Gerd Moellmann <gerd@gnu.org>
4323
4324 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
4325 (Fscroll_right, Fscroll_left): Set it here instead, if called
4326 interactively.
4327
4328 * buffer.c (Fset_buffer_modified_p): Set buffer's
4329 prevent_redisplay_optimizations_p flag.
4330
4331 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
4332 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
4333 with additional arg.
4334
4335 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
4336 Change prototype.
4337
4338 * xdisp.c (redisplay_preserve_echo_area): Add parameter
4339 FROM_WHERE, for debugging.
4340
4341 2001-01-16 Kenichi Handa <handa@etl.go.jp>
4342
4343 * ccl.c (Fregister_ccl_program): Handle the return value of
4344 resolve_symbol_ccl_program correctly.
4345 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
4346
4347 2001-01-15 Gerd Moellmann <gerd@gnu.org>
4348
4349 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
4350 has gone in the meantime, use face MOUSE_FACE_ID.
4351
4352 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
4353 If x_display_info_for_display returns null, don't try to close
4354 the display; we didn't open it.
4355
4356 * dispnew.c (save_or_restore_current_matrices): Function removed.
4357 (save_current_matrix, restore_current_matrix): New functions.
4358 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
4359 restore the frame's current matrix. Due to the glyph pointer
4360 setup done in adjust_glyph_matrix, there is no easy way to make
4361 saving the current matrix in the desired matrix generally correct,
4362 so don't try it.
4363
4364 2001-01-15 Kenichi Handa <handa@etl.go.jp>
4365
4366 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
4367 truncation glyphs.
4368 (display_line): Optimize for wide characters.
4369 (display_string): Don't try to display a multi-column character
4370 partially. On ttys, produce more than one truncation glyph for
4371 multi-column characters that don't fit on the line.
4372
4373 2001-01-13 Kenichi Handa <handa@etl.go.jp>
4374
4375 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
4376 Define it instead of WORDS_BIGENDIAN. Caller changed.
4377
4378 2001-01-13 Jason Rumney <jasonr@gnu.org>
4379
4380 * w32fns.c (Fimage_size, image_ascent, lookup_image)
4381 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
4382 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4383 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
4384
4385 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
4386 (x_draw_image_relief, x_draw_image_foreground_1)
4387 (x_draw_image_glyph_string): Adapt to change of image margins.
4388
4389 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
4390 variables.
4391
4392 * w32bdf.c (search_file_line, get_cached_font_char)
4393 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
4394
4395 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
4396
4397 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
4398 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
4399 (Fw32_send_sys_command): Remove unused variables.
4400 (w32_msg_pump): Add parentheses.
4401
4402 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
4403 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
4404 Add parentheses.
4405
4406 2001-01-12 Gerd Moellmann <gerd@gnu.org>
4407
4408 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
4409 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
4410 being a pair of margins.
4411 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
4412 to DEFVAR_LISP. Extend doc.
4413
4414 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
4415 margins.
4416 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
4417 pair of integers `(X . Y)', use X for the horizontal and Y for the
4418 vertical margin.
4419 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
4420 (parse_image_spec): Check it.
4421 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4422 (tiff_format, gif_format, gs_format):
4423 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
4424
4425 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4426 (x_draw_image_relief, x_draw_image_foreground_1)
4427 (x_draw_image_glyph_string): Adapt to the change of image margins.
4428
4429 * dispextern.h (struct image): Replace member `margin' with
4430 `hmargin' and `vmargin'.
4431
4432 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
4433 and GLYPHS.
4434
4435 * dispnew.c (update_text_area): Put code which decrements the
4436 stop position when the row's face extends to the end of the
4437 line in #if 0.
4438
4439 * xfns.c (x_set_mouse_color): Fix color allocation.
4440
4441 * keyboard.c: Call get_local_map with new argument list.
4442
4443 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
4444
4445 * intervals.h (enum map_property): Removed.
4446 (get_local_map): Change prototype.
4447
4448 * keymap.c: Call get_local_map with new argument list.
4449 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
4450
4451 2001-01-11 Gerd Moellmann <gerd@gnu.org>
4452
4453 * xdisp.c (build_desired_tool_bar_string): Correct the computation
4454 of the size needed for the tool bar string. For the last image,
4455 use a `display' property that reaches to the end of the string.
4456
4457 * xselect.c (selection_request_dpyinfo): New variable.
4458 (x_handle_selection_request): Set it.
4459 (x_selection_request_lisp_error): Don't call
4460 x_decline_selection_request if selection request's display has
4461 been closed.
4462
4463 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
4464 Do the unregister_colors before calling XFreeColors.
4465
4466 2001-01-10 Dave Love <fx@gnu.org>
4467
4468 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
4469 ${SOME_MACHINE_LISP}, not ${lisp}.
4470
4471 2001-01-10 Gerd Moellmann <gerd@gnu.org>
4472
4473 * xdisp.c (display_line): On ttys, produce more than one truncation
4474 glyph for multi-column characters that don't fit on the line.
4475
4476 * xselect.c (x_reply_selection_request): Add a comment.
4477
4478 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
4479 XkbGetNames instead of XkbGetKeyboard.
4480
4481 2001-01-10 Dave Love <fx@gnu.org>
4482
4483 * sysdep.c (random): Revert the declaration.
4484
4485 2001-01-09 Gerd Moellmann <gerd@gnu.org>
4486
4487 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
4488 Call function string_bytes.
4489 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
4490
4491 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
4492 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
4493 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
4494 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
4495 the current sblock.
4496 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
4497 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
4498 after sweeping strings, and at the end.
4499 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
4500
4501 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
4502 ensure that pop_message is called.
4503
4504 * keyboard.c (Fexecute_extended_command): Use a
4505 record_unwind_protect to ensure that pop_message is called.
4506
4507 * lisp.h (push_message_unwind): Add prototype.
4508
4509 * xdisp.c (push_message_unwind): New function.
4510
4511 * fileio.c (do_auto_save_unwind): Do the pop_message here
4512 instead of in Fdo_auto_save.
4513 (Fdo_auto_save): Don't call pop_message.
4514
4515 2001-01-08 Ken Raeburn <raeburn@gnu.org>
4516
4517 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
4518 in inner block.
4519
4520 2001-01-08 Gerd Moellmann <gerd@gnu.org>
4521
4522 * window.c (window_scroll_pixel_based): Adjust glyph matrices
4523 when increasing window's vscroll.
4524
4525 * macros.c (Qkbd_macro_termination_hook): New variable.
4526 (syms_of_macros): Initialize and staticpro it.
4527 (pop_kbd_macro): Run kbd-macro-termination-hook.
4528
4529 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
4530
4531 2001-01-07 Dave Love <fx@gnu.org>
4532
4533 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
4534 arglist, for documentation's sake.
4535
4536 2001-01-06 Andrew Innes <andrewi@gnu.org>
4537
4538 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
4539 of *.pdb.
4540
4541 2001-01-05 Andrew Innes <andrewi@gnu.org>
4542
4543 * term.c (update_end): Don't check updating_frame; for some reason
4544 this can be 0 sometimes, such as after dismissing a popup menu,
4545 and isn't necessary given the explicit frame argument.
4546
4547 2001-01-05 Gerd Moellmann <gerd@gnu.org>
4548
4549 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
4550 on some systems, and an unsigned long on others, like FreeBSD 4.1.
4551
4552 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4553
4554 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
4555
4556 * xfns.c (x_create_tip_frame): Preserve the value of
4557 face_change_count around the creation of the tip frame.
4558
4559 * xfns.c (last_show_tip_args): New variable.
4560 (compute_tip_xy): New function.
4561 (Fx_show_tip): Reuse an existing tip frame, if possible.
4562 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
4563
4564 2001-01-04 Dave Love <fx@gnu.org>
4565
4566 * editfns.c (Fformat): Doc fix.
4567
4568 * systime.h (set_file_times): Prototype.
4569
4570 * widget.h (EmacsFrameSetCharSize_): Prototype.
4571
4572 * sysdep.c (random, srandom): Declare explicitly.
4573
4574 * dispextern.h (move_it_vertically_backward): Declare.
4575
4576 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4577
4578 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
4579 like in Fx_create_frame.
4580
4581 * xfaces.c (set_font_frame_param): Don't do anything for
4582 non-graphical frames.
4583
4584 * window.c (Fdelete_other_windows): Set window's window_end_valid
4585 to nil when changing the window's start. Don't change the
4586 window's start when its top position hasn't changed. If we do,
4587 this will set the window's optional_new_start, which act's like a
4588 force_start during redisplay with C-x 1 M-> under particular
4589 circumstances (see report from Per Starback to emacs-pretest-bug
4590 from 2000-12-13.).
4591
4592 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4593
4594 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
4595 short cut at the start of the function. Add an assertion.
4596 (reseat_at_next_visible_line_start): Add an assertion.
4597
4598 * window.c (Frecenter): When changing the window start, set the
4599 window's window_end_valid to nil.
4600 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
4601
4602 * dispextern.h (move_it_past_eol): Add prototype.
4603
4604 * xdisp.c (move_it_past_eol): New function.
4605
4606 * window.c (Fwindow_end): Doc fix.
4607
4608 2001-01-03 Dave Love <fx@gnu.org>
4609
4610 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
4611
4612 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4613
4614 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
4615 the enabled_p flag of the glyph row at window_end_vpos to 0.
4616 (handle_single_display_prop): Fix last change.
4617
4618 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4619
4620 * window.c (Frecenter): Doc fix.
4621
4622 2001-01-02 Andrew Innes <andrewi@gnu.org>
4623
4624 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
4625
4626 * frame.h (output_method): Add output_w32_console method.
4627 (FRAME_W32_CONSOLE_P): New macro.
4628
4629 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
4630 use output_w32_console method.
4631 (Qw32_console): New Lisp_Object.
4632 (Fframep): Return it.
4633 (syms_of_frame): Init it.
4634 (Fframe_parameters): Report w32console as font for w32_console frames.
4635
4636 * xfaces.c (realize_default_face): Set face foreground and
4637 background to unspecified for w32_console frames.
4638 (realize_face): Realize face cache for w32_console frames.
4639 (realize_tty_face): Accept w32_console frames.
4640
4641 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
4642 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
4643 necessary, even if running interactively.
4644
4645 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
4646 w32_console frames.
4647
4648 * w32term.c (x_update_begin):
4649 (x_update_end):
4650 (x_clear_frame):
4651 (x_ins_del_lines):
4652 (x_change_line_highlight):
4653 (x_delete_glyphs):
4654 (w32_ring_bell):
4655 (x_update_begin):
4656 (x_update_end):
4657 (w32_reassert_line_highlight):
4658 (w32_frame_rehighlight):
4659 (w32_frame_raise_lower): Do nothing if not w32 frame.
4660
4661 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
4662
4663 * w32fns.c (Fx_display_color_cells): Determine correct value, when
4664 system doesn't tell us directly.
4665 (Fx_display_visual_class): Implement properly.
4666
4667 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4668
4669 * window.c (Frecenter): Handle centering in graphical frames
4670 specially. Centering on the basis of line counts doesn't work
4671 reliably with variable-height lines.
4672
4673 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4674
4675 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
4676 and al[].
4677
4678 * composite.c (run_composition_function): Remove unused var `val'.
4679 (update_compositions): Remove unused variable `hook'.
4680
4681 * intervals.c (get_local_map): Remove unused variable `tem'.
4682
4683 * doprnt.c (doprnt1): Remove unused variable `size'.
4684
4685 * fns.c (Flength): Remove unused variable `tail'.
4686 (Fdelete): Remove unused variable `size'.
4687
4688 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
4689 and `gcpro2'.
4690
4691 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
4692
4693 * data.c (find_symbol_value): Remove extra 3rd argument in the
4694 call to swap_in_symval_forwarding.
4695
4696 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
4697
4698 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
4699 (trivial_regexp_p): Remove unused variable `c'.
4700 (boyer_moore): Remove unused variable `k'.
4701
4702 * indent.c (current_column): Remove unused variable `stopchar'.
4703 (Fcompute_motion): Remove unused variable `contin'.
4704
4705 * casefiddle.c (casify_object): Remove unused variable `tolen'.
4706
4707 * dired.c (directory_files_internal): Fix a typo in a comment.
4708 Remove an unused variable `handler'.
4709 (file_name_completion): Remove unused function-scope variable `dp'.
4710 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
4711 on BSD4_2.
4712
4713 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
4714
4715 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
4716 and `buf'.
4717 (Fmarker_insertion_type): Remove unused variable `buf'.
4718
4719 * insdel.c (make_gap): Remove unused variable `result'.
4720
4721 * keyboard.c (record_char): Remove unused function-scope var `help'.
4722 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
4723 (menu_bar_items): Remove unused function-scope variable `tem'.
4724
4725 * fontset.c (fontset_ref): Remove unused variable `i'.
4726 (fontset_set): Remove unused variables `j' and `tmp'.
4727 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
4728 (make_fontset_for_ascii_face): Remove unused variable `name'.
4729 (fs_load_font): Remove unused variable `font_idx'.
4730 (fs_query_fontset): Remove unused function-local variable `fontset'.
4731 (list_fontsets): Remove unused variable `tail'.
4732 (Fnew_fontset): Remove unused variables `family' and `registry'.
4733 (accumulate_font_info): Remove unused variable `tmp'.
4734 (Ffontset_font): Remove unused variable `id'.
4735 (syms_of_fontset): Remove unused variable `i'.
4736
4737 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
4738 to x_term_init.
4739 (lookup_image): Remove unused variable `file'.
4740 (xbm_load): Remove unused variables `bitmap_data', `height', and
4741 `width'. Remove function-local variable `i', leave the
4742 block-local one.
4743 (gif_load): Remove unused variable `inc'.
4744
4745 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
4746 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
4747 leave only the one in the inner block.
4748
4749 * xfaces.c (face_fontset, realize_default_face): Remove unused
4750 variable `fontset'.
4751 (face_at_buffer_position): Remove unused variable `multibyte_p'.
4752
4753 * term.c (encode_terminal_code): Remove unused variable `c'.
4754
4755 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
4756 char *' instead of `char *'.
4757
4758 * category.c (Fcategory_docstring): Remove unused variable `doc'.
4759 (Fget_unused_category): Remove unused variable `docstring_vector'.
4760 (Fchar_category_set): Remove unused variables `val', `charset',
4761 `c1' and `c2'.
4762
4763 * coding.c (detect_coding_iso2022, setup_coding_system):
4764 Remove unused variable `i'.
4765 (detect_coding_mask): Remove unused variable `idx'.
4766 (detect_coding): Remove unused variable `i'.
4767 (ccl_coding_driver): Remove unused variable `result'.
4768 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
4769 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
4770 (encode_coding_string): Remove unused variables `gcpro1' and
4771 `saved_coding_symbol'.
4772 (Ffind_coding_systems_region_internal): Remove function-local
4773 variable args[], leave only the block-local one.
4774 (code_convert_region1): Remove unused variable `len'.
4775
4776 * charset.c (char_printable_p): Remove unused variable `chars'.
4777 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
4778 (str_to_multibyte): Remove unused variable `c'.
4779
4780 * window.c (size_window): Remove block-local variable `min_size'.
4781
4782 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
4783 `header_line_height'.
4784 (append_space, extend_face_to_end_of_line): Declare `saved_what'
4785 enum display_element_type.
4786
4787 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4788
4789 * xterm.c (x_connection_closed): Catch X errors around all
4790 statements that call X. Save away the error message in a local copy.
4791
4792 * xterm.c (x_connection_closed): Set handling_signal to 0 at
4793 the start.
4794
4795 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
4796 in or at the start of invisible text.
4797
4798 * dispnew.c (update_window): Don't check_current_matrix_flags.
4799
4800 2001-01-01 Jason Rumney <jasonr@gnu.org>
4801
4802 * w32fns.c (x_figure_window_size): Do not allow new_height and
4803 new_width of frame to override specified values.
4804
4805 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4806
4807 * composite.c (find_composition): Fix a code for searching backward.
4808
4809 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4810
4811 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4812 (update_window) [GLYPH_DEBUG]: Call it.
4813 (scrolling_window): Prevent including current rows which are below
4814 what's displayed in the window.
4815
4816 * xdisp.c (try_window_reusing_current_matrix)
4817 <new start <= old start>: Disable rows in the current matrix
4818 which are below the window after scrolling.
4819
4820 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4821 is zero. It's not worth the complexity.
4822 (invisible_text_between_p): Put in #if 0 because unused.
4823
4824 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4825
4826 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4827 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4828
4829 * keyboard.c (echo_char): If C is an integer, always call
4830 push_key_description. Former code could signal an invalid
4831 character error.
4832
4833 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4834 If set, print multibyte text.
4835 (Fsingle_key_description): Call push_key_description with
4836 FORCE_MULTIBYTE set.
4837 (describe_buffer_bindings): Likewise.
4838
4839 * lisp.h (push_key_description): Add prototype.
4840
4841 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4842 around the call to redisplay_internal.
4843
4844 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4845
4846 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4847
4848 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4849
4850 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4851 (ccl_driver): New local variable `extra_bytes'.
4852
4853 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4854
4855 * coding.c (setup_coding_system):
4856 Initialize coding->spec.ccl.eight_bit_carryover.
4857 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4858
4859 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4860
4861 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4862 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4863 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4864 (decode_composition_emacs_mule): New function.
4865 (decode_coding_emacs_mule): Decode composition sequence by calling
4866 decode_composition_emacs_mule.
4867 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4868 (encode_coding_emacs_mule): Changed from macro to function.
4869 If a text contains compositions, encode them correctly.
4870 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4871 that decoding and encoding are required.
4872
4873 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4874
4875 * xfaces.c (PT_PER_INCH): New macro.
4876 (xlfd_point_size): Compute real point size from font's pixel size.
4877 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4878 instead of 72.
4879
4880 * .gdbinit: Comment out the line pointing to the Lesstif source
4881 directory.
4882
4883 * window.c (Frecenter): Use displayed_window_lines instead
4884 of window_internal_height.
4885
4886 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4887 instead of x-toolkit-scroll-bars-p.
4888 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4889
4890 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4891 instead of x-toolkit-scroll-bars-p.
4892 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4893
4894 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
4895 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
4896 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4897 New variables.
4898 (add_window_display_history, add_frame_display_history)
4899 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4900 (build_frame_matrix_from_leaf_window): Remove unused code.
4901 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4902 redisplay history.
4903 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4904 (update_window) [GLYPH_DEBUG]: Likewise.
4905 (syms_of_display): Defsubr dump-redisplay-history.
4906
4907 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4908
4909 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4910 the end of the prompt. Set echo_after_prompt to the offset
4911 of echoptr in echobuf.
4912
4913 * xdisp.c (init_from_display_pos): Pop until the iterator's
4914 stack is empty; there may be frames for stretch or images
4915 on the stack.
4916
4917 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4918 (save_or_restore_current_matrix): New function for the same
4919 purpose, but more efficient.
4920 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4921
4922 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4923
4924 * xdisp.c (syms_of_xdisp): Fix last change.
4925
4926 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4927
4928 * xdisp.c (syms_of_xdisp): Doc fix.
4929
4930 * xdisp.c (redisplay_window): Remove label restore_buffers;
4931 use finish_scroll_bars instead to make sure that scroll bars
4932 are redeemed. If we don't do this, flickering can result from
4933 scroll bars being destroyed and recreated.
4934
4935 2000-12-22 Jason Rumney <jasonr@gnu.org>
4936
4937 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4938 in the wrong colors when the foreground is not black.
4939 (expose_window): Don't redraw the window that's currently being
4940 updated.
4941
4942 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4943
4944 * window.c (size_window): When setting the window's too_small_ok
4945 flag, compare old size with minimum size depending on WIDTH_P,
4946 don't compare with window_min_width.
4947
4948 * window.c (delete_window): Simplify somewhat.
4949 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4950 freeing window matrices. The flag windows_or_buffers_changed is
4951 set, so the next redisplay will consider all windows; this should
4952 suffice.
4953
4954 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4955
4956 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4957
4958 * ccl.h (struct ccl_program): New member cr_consumed.
4959
4960 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4961 (CCL_READ_CHAR): Handle EOL conversion here.
4962 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4963
4964 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4965
4966 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4967
4968 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4969 otherwise tabs of different size compare equal.
4970
4971 * callint.c (Fcall_interactively): Prevent a compiler warning.
4972
4973 * print.c (print_unwind): Return nil.
4974 (PRINTDECLARE): Initialize all local variables.
4975 (print_preprocess): Add a default case.
4976
4977 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4978
4979 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4980
4981 * window.c (delete_window, Fsplit_window)
4982 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4983
4984 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4985
4986 * dispnew.c (ensure_frame_matrix): Removed.
4987 (save_frame_matrix, restore_frame_matrix): New functions.
4988 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4989
4990 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4991 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4992
4993 2000-12-21 Andrew Innes <andrewi@gnu.org>
4994
4995 * w32term.c (x_update_begin): Regenerate the palette here, rather
4996 than for each window.
4997
4998 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4999 palette is NULL, since this corrupts memory! Also get
5000 display_info reference from frame.
5001
5002 2000-12-21 Jason Rumney <jasonr@gnu.org>
5003
5004 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
5005
5006 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
5007 to avoid returning without releasing it.
5008
5009 2000-12-21 Kenichi Handa <handa@etl.go.jp>
5010
5011 * keymap.c (push_key_description): Don't convert eight-bit-control
5012 and eight-bit-graphic to multibyte character.
5013
5014 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
5015 generic character and CODE1 is nil, return the smallest character
5016 in CHARSET.
5017
5018 2000-12-20 Dave Love <fx@gnu.org>
5019
5020 * s/osf5-0.h (NSIG): Don't redefine.
5021
5022 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
5023
5024 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
5025 excluding menu-bar and tool-bar.
5026 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
5027 (menu_item_p): Remove.
5028 (where_is_internal_1): Don't ignore menu-items.
5029
5030 2000-12-20 Gerd Moellmann <gerd@gnu.org>
5031
5032 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
5033 into account.
5034
5035 * window.c (make_window): Initialize window's min_hscroll.
5036 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
5037 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
5038 to zero.
5039 (struct saved_window): New member min_hscroll.
5040 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
5041 (Fset_window_configuration): Set window's min_hscroll.
5042 (save_window_save): Save window's min_hscroll.
5043 (compare_window_configurations): Compare min_hscroll values.
5044
5045 * window.h (struct window): New member min_hscroll.
5046
5047 * keyboard.c (echo_prompt): Prevent a compiler warning.
5048
5049 * xdisp.c (try_cursor_movement): Fix last change. The real
5050 condition is that PT is at the end of the row, and should
5051 be displayed at the start of the next row.
5052
5053 * xdisp.c (try_cursor_movement): If we end on a partially
5054 visible line, end we already decided to scroll, return -1.
5055
5056 * dispextern.h (ensure_frame_matrix): Add prototype.
5057
5058 * window.c (delete_window, Fsplit_window)
5059 (Fset_window_configuration): Call ensure_frame_matrix.
5060
5061 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
5062 New functions.
5063 (adjust_frame_glyphs_for_frame_redisplay): If display has been
5064 completed, call fake_current_matrices instead of marking frame
5065 garbaged.
5066
5067 2000-12-20 Jason Rumney <jasonr@gnu.org>
5068
5069 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
5070
5071 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5072
5073 * fns.c (Frequire): Doc fix.
5074
5075 2000-12-19 Gerd Moellmann <gerd@gnu.org>
5076
5077 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
5078
5079 * dispnew.c (direct_output_for_insert): Fix check for mini-window
5080 currently displaying a message.
5081
5082 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
5083 xterm.h.
5084 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
5085
5086 2000-12-18 Andrew Innes <andrewi@gnu.org>
5087
5088 * w32.c (w32_strerror): New function.
5089
5090 * w32.h (w32_strerror): New extern.
5091
5092 * w32fns.c (Fw32_shell_execute): Use it.
5093
5094 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5095
5096 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
5097
5098 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5099
5100 * msdos.c (IT_set_face): Obey inverse_video.
5101
5102 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5103
5104 * dired.c (directory_files_internal): Always return decoded filenames.
5105
5106 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5107
5108 * xterm.c (x_connection_closed): Prevent being called recursively
5109 because of an error condition in XtCloseDisplay.
5110
5111 * xdisp.c (init_iterator): If noninteractive, and the frame's
5112 face cache is null, make one.
5113
5114 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
5115
5116 * process.c (wait_reading_process_input): Check for pending
5117 input when running timers.
5118
5119 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5120
5121 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
5122
5123 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5124
5125 * process.c (read_process_output): Don't run a filter if the code
5126 decoder produces nothing but carryover.
5127
5128 2000-12-17 Andrew Innes <andrewi@gnu.org>
5129
5130 * w32.c (sys_rename): Only check errno against EEXIST, and not
5131 EACCES, when determining whether rename failed because the target
5132 exists. This was resulting in indefinite looping on Windows 9x if
5133 the source file was locked by another process.
5134
5135 * w32fns.c (Ffile_system_info): New function.
5136 (syms_of_w32fns): Defsubr it.
5137
5138 2000-12-17 Gerd Moellmann <gerd@gnu.org>
5139
5140 * window.c (coordinates_in_window): Fix computation for
5141 position on vertical line between mode lines.
5142
5143 * xfns.c (unwind_create_frame): Return t if frame was deleted.
5144 Don't alter tip_frame or tip_window.
5145 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5146 was deleted.
5147
5148 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
5149 Don't alter tip_frame or tip_window.
5150 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5151 was deleted.
5152
5153 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5154
5155 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
5156 be consistent with the doc string. Reported by NAKAJIMA Mikio
5157 <minakaji@osaka.email.ne.jp>.
5158
5159 2000-12-16 Kenichi Handa <handa@etl.go.jp>
5160
5161 * xfaces.c (Vface_ignored_fonts): New variable.
5162 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
5163 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
5164
5165 2000-12-15 Gerd Moellmann <gerd@gnu.org>
5166
5167 * dispnew.c (update_window): Detect pending input every nth line
5168 updated, i.e. do it depending on real work done, and not on the
5169 vpos of the line.
5170
5171 * xterm.c (expose_window): Don't redraw the window that's
5172 currently being updated.
5173
5174 * window.c (Fset_window_point): Remove test for
5175 cursor_in_non_selected_windows.
5176
5177 * lread.c (read1): Recognize end of file after `\\'.
5178
5179 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
5180 not unwind_create_frame.
5181
5182 2000-12-15 Dave Love <fx@gnu.org>
5183
5184 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
5185 bcopy & al.
5186
5187 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
5188
5189 2000-12-15 Kenichi Handa <handa@etl.go.jp>
5190
5191 * coding.c (setup_coding_system): Clear all members of the struct
5192 coding_system at first.
5193 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
5194 argument.
5195 (code_convert_region): Don't override coding->src_multibyte and
5196 coding->dst_multibyte.
5197
5198 * fns.c (Fmd5): Docstring improved.
5199
5200 2000-12-15 Miles Bader <miles@gnu.org>
5201
5202 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
5203 are actually marked as mode-lines; otherwise use
5204 estimate_mode_line_height.
5205
5206 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5207
5208 * editfns.c (Fformat): Prevent a buffer overrun when the format
5209 specifies a precision.
5210
5211 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
5212
5213 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
5214 argument is outside the range [2..3].
5215
5216 2000-12-14 Andrew Innes <andrewi@gnu.org>
5217
5218 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
5219 nothing to do. Bind inhibit-quit.
5220 (tip_frame): Make it a Lisp_Object.
5221 (x_create_tip_frame): Set tip_frame after it has been added to
5222 Vframe_list.
5223 (Fx_show_tip): Don't set tip_frame here.
5224 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
5225 (unwind_create_frame, unwind_create_tip_frame): New functions.
5226 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5227 while a frame is only partially constructed.
5228
5229 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5230 (x_free_frame_resources): New function.
5231 (x_destroy_window): Use it.
5232
5233 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5234
5235 * xfns.c (Fx_backspace_delete_keys_p): New function.
5236 (syms_of_xfns): Defsubr it.
5237
5238 * config.in (HAVE_XKBGETKEYBOARD): Add.
5239
5240 2000-12-14 Kenichi Handa <handa@etl.go.jp>
5241
5242 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
5243 Always store string in multibyte representation in echobuf.
5244 (echo_char): Always store string in multibyte representation in
5245 echobuf.
5246 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
5247 (read_key_sequence): Adjusted for the change of echo_prompt.
5248
5249 * fns.c (Fmd5): Docstring improved.
5250
5251 * lisp.h (detect_coding_system): Prototype adjusted.
5252
5253 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
5254 (detect_coding_emacs_mule, detect_coding_iso2022,)
5255 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
5256 (detect_coding_utf_16, detect_coding_ccl): Make them static.
5257 New argument MULTIBYTEP. Callers changed.
5258 (detect_coding_mask, detect_coding_system): New argument
5259 MULTIBYTEP. Callers changed.
5260 (decode_coding_string): Set coding->src_multibyte and
5261 coding->dst_multibyte before calling detect_coding and detect_eol.
5262 Update them after some coding system is detected.
5263
5264 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
5265
5266 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
5267
5268 * keyboard.c (menu_bar_items, tool_bar_items):
5269 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
5270
5271 2000-12-13 Gerd Moellmann <gerd@gnu.org>
5272
5273 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
5274 New variables.
5275 (unwind_create_frame, unwind_create_tip_frame): New functions.
5276 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5277 while a frame is only partially constructed.
5278
5279 * xterm.h (x_free_frame_resources): Declare.
5280
5281 * xterm.c (x_free_frame_resources): New function.
5282 (x_destroy_window): Use it.
5283
5284 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
5285 don't interrupt the update for pending input initially, i.e.
5286 update at least some lines.
5287
5288 * keyboard.c (do_mouse_tracking): Make externally visible.
5289
5290 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
5291
5292 * xfns.c (gray_bitmap_bits): Declare `char *'.
5293
5294 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5295
5296 * xdisp.c (display_tool_bar_line): Make sure that tool bar
5297 lines start with a relief line.
5298
5299 2000-12-12 Dave Love <fx@gnu.org>
5300
5301 * window.c (Fdisplay_buffer): Doc fix.
5302 (Fwindow_list): Remove unused var.
5303
5304 * buffer.h (mmap_set_vars): Declare.
5305
5306 * window.h (Fset_window_point): Declare.
5307
5308 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
5309
5310 * msdos.c (fast_find_position): Don't overstep the last window row.
5311 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
5312 variable `area'. When looking for a row under (X,Y), give up if some
5313 of the previous rows is not enabled.
5314
5315 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5316
5317 * window.c (Fset_window_point): If displaying cursors in windows
5318 other than the selected window, make sure redisplay updates
5319 other windows to show the new value of point in the window.
5320
5321 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
5322
5323 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
5324 the buffer is the sole visible buffer when in the mini-buffer.
5325
5326 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
5327 Bind `inhibit-read-only' to t.
5328 (unwind_with_echo_area_buffer): Use AREF.
5329
5330 * xfns.c (Fx_hide_tip): Simplified.
5331
5332 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
5333 instead of `1'.
5334
5335 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
5336
5337 2000-12-11 Gerd Moellmann <gerd@gnu.org>
5338
5339 * xfns.c (Fx_hide_tip): Fix last change.
5340
5341 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
5342 nothing to do. Bind inhibit-quit.
5343 (tip_frame): Make it a Lisp_Object.
5344 (x_create_tip_frame): Set tip_frame after it has been added to
5345 Vframe_list.
5346 (Fx_show_tip): Don't set tip_frame here.
5347
5348 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5349
5350 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
5351 Lisp_Object.
5352
5353 * dispextern.h: Change external declaration of tip_frame.
5354
5355 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
5356 return an empty string.
5357
5358 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
5359 of the window's update_mode_line flag, since the former is set by
5360 force-mode-line-update, not the latter. This makes
5361 column-number-mode slightly faster.
5362
5363 * xdisp.c (try_window_id) <all changes above window start>:
5364 Set the cursor.
5365
5366 2000-12-11 Paul Eggert <eggert@twinsun.com>
5367
5368 * config.in (HAVE_FTELLO): Remove.
5369 (HAVE_FSEEKO): Add.
5370 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
5371 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
5372 HAVE_FTELLO.
5373 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
5374 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
5375
5376 2000-12-11 Miles Bader <miles@gnu.org>
5377
5378 * window.c (displayed_window_lines): Don't round up when
5379 converting empty space at bottom to lines.
5380 Handle non-newline-terminated final lines properly.
5381 (Fwindow_text_height): New function (used to be in lisp).
5382 (syms_of_window): Initialize it.
5383
5384 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
5385
5386 * syntax.c (scan_lists): Check that the right quote char has the
5387 right Sstring syntax when jumping over strings.
5388 (init_syntax_once): Use Smax rather than 13.
5389
5390 2000-12-09 Miles Bader <miles@gnu.org>
5391
5392 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
5393 with PARTIALLY, inverting the sense.
5394 (window_scroll_pixel_based): Scroll partially visible lines into
5395 place if we hit the beginning or end of the buffer.
5396 (displayed_window_lines): Don't include partially visible lines.
5397 (Fmove_to_window_line): Skip past any partially visible first line.
5398
5399 2000-12-08 Gerd Moellmann <gerd@gnu.org>
5400
5401 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
5402
5403 * tparam.c (tparam1): Change the way buffers are reallocated to be
5404 portable and less obfuscated.
5405
5406 * termcap.c (tgetent): Change the way buffers are reallocated to
5407 be portable and less obfuscated.
5408
5409 * macros.c (store_kbd_macro_char): Change the way buffers are
5410 reallocated to be portable and less obfuscated.
5411
5412 * lread.c (read1): Change the way buffers are reallocated to be
5413 portable and less obfuscated.
5414
5415 * doc.c (Fsubstitute_command_keys): Change the way buffers
5416 are reallocated so that it is portable.
5417
5418 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
5419
5420 * dosfns.c (Ffile_system_info): New function.
5421 (syms_of_dosfns): Defsubr it.
5422
5423 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
5424
5425 * alloc.c (gc_sweep): Add comment.
5426
5427 2000-12-07 Gerd Moellmann <gerd@gnu.org>
5428
5429 * sound.c (vox_configure): Change order of ioctls.
5430 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
5431 Ignore errors when changing volume.
5432 (vox_close): Don't reset the device.
5433
5434 * process.c (read_process_output): Make sure the process marker's
5435 position is valid when the process buffer is changed in
5436 after-change functions. W3 does that.
5437
5438 * xfns.c (x_free_gcs): New function.
5439
5440 * xterm.h (x_free_gcs): Add prototype.
5441
5442 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
5443 freeing GCs here.
5444
5445 * xterm.c (x_destroy_window): Call x_free_gcs so that
5446 resources of non-toolkit X windows will be freed.
5447
5448 2000-12-07 Andrew Innes <andrewi@gnu.org>
5449
5450 * w32fns.c (xlfd_charset_of_font): Fix last change.
5451
5452 2000-12-06 Dave Love <fx@gnu.org>
5453
5454 * md5.h (__P): Don't define -- it comes from config.h.
5455
5456 * strftime.c: Change some #if foo to #ifdef foo.
5457
5458 2000-12-06 Andrew Innes <andrewi@gnu.org>
5459
5460 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
5461
5462 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
5463 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
5464 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
5465
5466 2000-12-06 Gerd Moellmann <gerd@gnu.org>
5467
5468 * alloc.c (gc_sweep): Prevent symbols read during loadup
5469 from being freed.
5470
5471 * xdisp.c (underlying_face_id): New function.
5472 (handle_face_prop, face_before_or_after_it_pos): Use it
5473 to determine the face ``under'' a string. Let strings inherit
5474 the face of the buffer under them.
5475
5476 * xfaces.c (face_at_string_position): Update function comment.
5477
5478 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
5479 matrix if the window's left position has changed; we need to
5480 redraw it in this case.
5481
5482 * dispextern.h (struct glyph_matrix): Add member window_left_x.
5483
5484 * window.c (coordinates_in_window): Check mouse on mode-line or
5485 header-line first.
5486
5487 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
5488 advertized by the function documentation.
5489
5490 * window.c (syms_of_window): Doc fix.
5491
5492 * sound.c (vox_configure): Set volume for left and right channel.
5493 (sound_cleanup): Return nil.
5494
5495 * xdisp.c (move_it_by_lines): Fix paren typo.
5496
5497 * xterm.c (x_load_font): Don't use the font's max_bounds for
5498 computing the height of the font. If max_bounds' ascent or
5499 descent are greater than the font's ascent or descent, this means
5500 glyphs overlap, which should be handled now by redisplay.
5501
5502 * window.c (Veven_window_heights): New variable.
5503 (syms_of_window): DEFVAR_LISP it.
5504 (Fdisplay_buffer): Check Veven_window_heights before evening the
5505 window heights.
5506
5507 2000-12-06 Miles Bader <miles@gnu.org>
5508
5509 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
5510 update `default-frame-alist' instead of setting no frame parameters.
5511
5512 2000-12-06 Kenichi Handa <handa@etl.go.jp>
5513
5514 * composite.c (update_compositions): Fix typo (use the correct
5515 variable).
5516
5517 2000-12-05 Jason Rumney <jasonr@gnu.org>
5518
5519 * md5.h: Remove underscores from function declarations.
5520 (__attribute__, __alignof__) [!__GNUC__]: Define.
5521
5522 * md5.c: Delay include of md5.h until after namespace cleaning.
5523
5524 * makefile.w32-in (fns.o): Depend on md5.h
5525 (md5.o): New target.
5526 (sunfns.o): Remove.
5527
5528 * makefile.nt: Likewise.
5529
5530 2000-12-05 Jason Rumney <jasonr@altavista.net>
5531
5532 * w32term.c (expose_area): Complete last change.
5533
5534 2000-12-05 Ken Raeburn <raeburn@gnu.org>
5535
5536 * minibuf.c: Include intervals.h.
5537
5538 2000-12-05 Jason Rumney <jasonr@gnu.org>
5539
5540 * w32term.c (x_produce_glyphs): If a font for a component of
5541 a composition is not found, use 1 pixel dot ascent and 0 dot
5542 descent value to avoid displaying terribly tall empty boxes.
5543 (expose_area): Pass x-coordinate relative to the exposed
5544 area to x_draw_glyphs instead of a window-relative coordinate.
5545
5546 2000-12-05 Gerd Moellmann <gerd@gnu.org>
5547
5548 * xdisp.c (next_element_from_ellipsis): Save face before selective
5549 display in saved_face_id, and set face_before_selective_p.
5550 (reseat_1): Reset face_before_selective_p.
5551 (append_space, extend_face_to_end_of_line): If iterator's
5552 face_before_selective_p is set, use the face from saved_face_id.
5553 (extend_face_to_end_of_line): For tty frames, make sure to
5554 use the right face id when producing spaces at the end of
5555 the line.
5556
5557 * dispextern.h (struct it): Add face_before_selective_p.
5558
5559 * keyboard.c (record_char): Don't record identical help-echo
5560 events in recent_keys.
5561
5562 * xterm.c [USE_X_TOOLKIT]: Close the display.
5563 (xim_close_dpy): Handle case that the display has been closed.
5564
5565 * xterm.c (x_destroy_window): Reset the frame's X window after
5566 destroying it.
5567
5568 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
5569 variable window_width.
5570 (line_draw_cost): Fix code skipping over spaces at the end of the
5571 line when must_write_spaces is not set.
5572 (scrolling_window): Fix code inserting runs in list of all runs.
5573
5574 2000-12-05 Kenichi Handa <handa@etl.go.jp>
5575
5576 * coding.c (setup_coding_system): Be sure to initialize
5577 coding->category_idx.
5578
5579 2000-12-04 Gerd Moellmann <gerd@gnu.org>
5580
5581 * xterm.c (PER_CHAR_METRIC): Removed because not used.
5582
5583 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
5584 area to x_draw_glyphs instead of a window-relative coordinate.
5585
5586 * fileio.c (auto_save_error): Add parameter ERROR. Show the
5587 error in the message.
5588
5589 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
5590 timer after having read a key. It's not good for code reading
5591 several keys in a loop, like an input method.
5592
5593 * fileio.c (Finsert_file_contents): When VISIT is t, don't
5594 record undo information for format-decode.
5595
5596 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
5597 current buffer is read-only, not if it isn't.
5598
5599 * keyboard.c (record_char): Record `help-echo' input events
5600 in recent_keys only if they display some help. Don't record
5601 `help-echo' events as macro char.
5602
5603 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
5604
5605 * editfns.c (save_excursion_restore): Don't move point
5606 in another window if it is showing the wrong buffer.
5607 Avoid the call to Fwindow_live_p, for speed.
5608
5609 2000-12-04 Kenichi Handa <handa@etl.go.jp>
5610
5611 * xfaces.c (struct font_name): New member registry_priority.
5612 (split_font_name): Initialize the above member to zero.
5613 (concat_font_list): New function.
5614 (font_list): Include fonts of all alternative registries.
5615 (FONT_POINT_SIZE_QUANTUM): New macro.
5616 (better_font_p): Ignore point size difference less than
5617 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
5618
5619 * xterm.c (x_produce_glyphs): If a font for a component of
5620 a composition is not found, use 1 pixel dot ascent and 0 dot
5621 descent value to avoid displaying terribly tall empty boxes.
5622
5623 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
5624
5625 2000-12-03 Ken Raeburn <raeburn@gnu.org>
5626
5627 * coding.h (code_convert_string1): Declare.
5628
5629 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
5630
5631 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
5632
5633 2000-12-02 Jason Rumney <jasonr@gnu.org>
5634
5635 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
5636 correctly for single byte character case.
5637 (w32_per_char_metric): Do not try to make any assumptions about
5638 the metrics of BDF fonts.
5639 (x_estimate_mode_line_height): If `mode-line' face
5640 hasn't a font, use that of the frame, as drawing glyphs does.
5641 (note_mouse_highlight): Change the cursor shape on the vertical
5642 border between windows [not enabled].
5643
5644 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
5645
5646 * w32fns.c (Fx_create_frame): Reintroduce the call to
5647 face-set-after-frame-defaults.
5648 (Vx_window_horizontal_drag_shape): New variable.
5649 (syms_of_xfns): DEFVAR_LISP it.
5650 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
5651 enabled].
5652
5653 2000-12-02 Simon Josefsson <simon@josefsson.org>
5654
5655 * fns.c (Fmd5): Use a different logic to decide the coding system
5656 to use.
5657
5658 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
5659
5660 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
5661
5662 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
5663
5664 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5665
5666 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
5667 height for YNegative.
5668 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
5669 height; also see comment there.
5670
5671 * window.c (coordinates_in_window): Handle computations for
5672 positions on the vertical bar and fringes differently for
5673 window-system frames. Consider some pixels near the vertical bar
5674 as on the bar if the frame doesn't have vertical scroll bars.
5675 Associate positions between mode or header lines with the
5676 right window, the left one.
5677
5678 2000-12-01 Jason Rumney <jasonr@gnu.org>
5679
5680 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
5681
5682 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
5683 invalid frame.
5684
5685 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5686
5687 * window.c (struct saved_window): Add members orig_top and orig_height.
5688 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
5689 (save_window_save, Fset_window_configuration): Save/restore
5690 window's orig_top and orig_height.
5691
5692 2000-12-01 Jason Rumney <jasonr@gnu.org>
5693
5694 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
5695
5696 * w32fns.c (x_set_cursor_color): Fix last change.
5697
5698 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5699
5700 * xdisp.c (echo_area_display): If cursor is in the echo area, make
5701 sure that the next redisplay displays the minibuffer, so that
5702 the cursor will be replaced with what the minibuffer wants.
5703
5704 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
5705 #ifndef instead of using #if.
5706 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
5707 USE_TOOLKIT_SCROLL_BARS is defined.
5708
5709 2000-11-30 Jason Rumney <jasonr@gnu.org>
5710
5711 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
5712 x_display_cursor.
5713
5714 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5715
5716 * fns.c (Fmd5): Doc fix.
5717
5718 2000-11-30 Simon Josefsson <simon@josefsson.org>
5719
5720 * fns.c (Fmd5): New function.
5721 (syms_of_fns): Defsubr md5.
5722
5723 * Makefile.in (obj): Add md5.o
5724
5725 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5726
5727 * md5.h, md5.c: New files, taken from glibc.
5728
5729 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
5730
5731 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
5732 hasn't a font, use that of the frame, as drawing glyphs does.
5733
5734 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
5735
5736 * eval.c (Frun_hooks): Allow 0 arguments.
5737
5738 2000-11-29 Gerd Moellmann <gerd@gnu.org>
5739
5740 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
5741 is over the menu bar widget, say it's not on the frame.
5742
5743 * xfns.c (Fx_create_frame): Reintroduce the call to
5744 face-set-after-frame-defaults.
5745
5746 * eval.c (Fsignal): Reset handling_signal.
5747
5748 2000-11-28 Jason Rumney <jasonr@gnu.org>
5749
5750 * w32menu.c (add_menu_item): Reset menu item text when changing
5751 type to radio button.
5752
5753 2000-11-28 Gerd Moellmann <gerd@gnu.org>
5754
5755 * xselect.c: Update copyright.
5756
5757 * window.c (coordinates_in_window): If on a mode or header line,
5758 but sufficiently close to its start, return ``on vertical
5759 border''. This gives us a way to drag windows horizontally when
5760 using toolkit scroll bars.
5761
5762 * xterm.c (note_mouse_highlight): Change the cursor shape
5763 on the vertical border between windows.
5764
5765 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
5766
5767 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
5768 (syms_of_xfns): DEFVAR_LISP it.
5769 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
5770
5771 * textprop.c (text_read_only): New function.
5772 (verify_interval_modification): Use it instead of signaling
5773 `text-read-only'. This makes it easier to catch this error
5774 with a breakpoint.:
5775
5776 * xdisp.c (forward_to_next_line_start): Check for newlines,
5777 not end of line, which includes CR.
5778
5779 2000-11-28 Kenichi Handa <handa@etl.go.jp>
5780
5781 * coding.c (Ffind_coding_systems_region_internal): Be sure to
5782 include no-conversion.
5783
5784 2000-11-27 Jason Rumney <jasonr@gnu.org>
5785
5786 * w32fns.c (w32_load_system_font): Always mark font as double byte
5787 if codepage is unicode.
5788
5789 2000-11-27 Gerd Moellmann <gerd@gnu.org>
5790
5791 * xdisp.c (forward_to_next_line_start): If already on a newline,
5792 just consume it to avoid unintended skipping over invisible text below.
5793
5794 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
5795 `vertical-line', `mode-line' and `header-line' events.
5796
5797 * xdisp.c (try_window_id): Avoid starting to display in the middle
5798 of a character, a TAB for instance. This is easier than to set
5799 up the iterator exactly, and it's not a frequent case, so the
5800 additional effort wouldn't really pay off.
5801
5802 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5803
5804 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5805 init_window_once.
5806
5807 2000-11-25 Jason Rumney <jasonr@gnu.org>
5808
5809 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5810 Args to window_from_coordinates should be pixel coordinates.
5811
5812 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5813 redisplay handles them properly.
5814
5815 2000-11-25 Miles Bader <miles@gnu.org>
5816
5817 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5818
5819 2000-11-24 Jason Rumney <jasonr@gnu.org>
5820
5821 * w32.c (init_environment): Set LANG environment variable based on
5822 locale settings, if not set.
5823
5824 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5825 making tool bar smaller. When clearing the frame, also
5826 clear current matrices. Clear frame when tool bar disappears.
5827 Don't use more lines for the tool-bar than is available.
5828 (x_change_window_heights): New function.
5829
5830 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5831
5832 * xdisp.c (init_from_display_pos): If POS says we're already after
5833 an overlay string ending at POS, make sure to pop the iterator
5834 because it will be in front of that overlay string. When POS is
5835 ZV, we've thereby also ``processed'' overlay strings at ZV.
5836
5837 * xfaces.c (lface_from_face_name): Function comment fix.
5838
5839 2000-11-24 Miles Bader <miles@gnu.org>
5840
5841 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5842 apply `mode-line-inverse-video' -- zero means force display using
5843 the default face, non-zero means display using the specialized face.
5844 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5845
5846 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5847
5848 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5849 hard coded `4'.
5850
5851 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5852
5853 * coding.c (decode_coding_emacs_mule): Fix the case of
5854 CODING_EOL_LF, which used uninitialized value of c.
5855
5856 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5857
5858 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5859
5860 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5861
5862 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5863 buffer object.
5864
5865 * frame.h (struct frame): Replace desired_tool_bar_items,
5866 current_tool_bar_items, n_desired_tool_bar_items,
5867 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5868
5869 * frame.c (make_frame): Change initialization of tool bar
5870 items accordingly.
5871
5872 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5873 Change references to members deleted from struct frame to use the
5874 new ones.
5875
5876 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5877 references to members deleted from struct frame to use the new ones.
5878
5879 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5880
5881 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5882
5883 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
5884 (note_tool_bar_highlight): Change references to members deleted
5885 from struct frame to use the new ones.
5886
5887 2000-11-23 Miles Bader <miles@gnu.org>
5888
5889 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
5890 the face's inverse-video attribute, rather than overriding it.
5891
5892 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5893
5894 * xfns.c (x_set_tool_bar_lines): Clear internal border when
5895 making tool bar smaller.
5896
5897 2000-11-22 Dave Love <fx@gnu.org>
5898
5899 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5900
5901 2000-11-22 Miles Bader <miles@gnu.org>
5902
5903 * keyboard.c (Vminibuffer_message_timeout): New variable.
5904 (command_loop_1): Use it to determine message timeout.
5905 (syms_of_keyboard): Initialize it.
5906
5907 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5908
5909 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5910
5911 * sysdep.c: Move the code for declaring h_errno after #include
5912 <netdb.h>.
5913
5914 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5915
5916 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5917 the menu bar when the tooltip is unmapped.
5918
5919 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5920 sole visible buffer when we're currently in the mini-buffer, and
5921 give up if so.
5922
5923 2000-11-21 Jason Rumney <jasonr@gnu.org>
5924
5925 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5926 put on the clipboard.
5927 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5928 copy of what Emacs last put there. If they are the same, do not
5929 use the clipboard copy to avoid losing data due to coding conversions.
5930
5931 2000-11-22 Miles Bader <miles@gnu.org>
5932
5933 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5934 (syms_of_minibuf): Initialize it.
5935 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5936 to prompt, don't make read-only.
5937
5938 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5939
5940 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5941 Add BEFORE/AFTER_POTENTIAL_GC.
5942
5943 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5944
5945 * buffer.c (mmap_free_1): Avoid a compiler warning.
5946
5947 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5948
5949 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5950
5951 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5952 ... #endif scope.
5953
5954 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5955
5956 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5957 screen supports it.
5958
5959 * s/gnu-linux.h: Don't use `#cpu'.
5960
5961 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5962 not defined in mman.h.
5963
5964 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5965 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5966 and store an index in the XClientMessageEvent. Storing a
5967 Lisp_Object or pointer can fail on a 64 bit system, since X only
5968 transfers 32 bits.
5969 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5970
5971 2000-11-20 Dave Love <fx@gnu.org>
5972
5973 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5974
5975 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5976
5977 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5978
5979 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5980
5981 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5982 by WIDTH.
5983
5984 * alloc.c (make_string): Fix previous change. Be sure to make
5985 unibyte string correctly.
5986
5987 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5988
5989 * window.c (Fwindow_list): Change parameter list to be XEmacs
5990 compatible.
5991 (window_list_1): New function.
5992 (window_loop): Use it instead of Fwindow_list.
5993
5994 * sysdep.c (emacs_ospeed): New variable.
5995 (toplevel): Don't declare ospeed extern.
5996 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5997
5998 * termcap.c (ospeed): Remove.
5999 (tputs) [!emacs]: Remove unused code.
6000 (tgetent): Avoid a compiler warning.
6001
6002 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
6003 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
6004 SCROLL_BAR_X_WIDGET with additional argument DPY.
6005
6006 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
6007 removed.
6008 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
6009 Take the X display as additional argument.
6010 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
6011 `Widget' is a pointer type that's not easily stored in Lisp_Object
6012 form in a portable way.
6013
6014 * dispnew.c (update_text_area): Fix last change.
6015
6016 2000-11-18 Gerd Moellmann <gerd@gnu.org>
6017
6018 * xdisp.c: Use BINDING_STACK_SIZE throughout.
6019
6020 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
6021 clear current matrices.
6022
6023 * buffer.c (mmap_enlarge): Don't print a message on stderr
6024 if mapping new memory at the end of the existing region fails.
6025
6026 * dispnew.c (update_text_area): Don't skip over equal glyphs
6027 when the last current glyph overlaps the glyph to its right.
6028
6029 2000-11-18 Miles Bader <miles@gnu.org>
6030
6031 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
6032 lines that *end* with "..." too (that's the most common case!).
6033
6034 2000-11-18 Gerd Moellmann <gerd@gnu.org>
6035
6036 * xdisp.c (resize_mini_window): Temporarily change to the
6037 mini-window's buffer if necessary.
6038
6039 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
6040 the tooltip obscures less text under it.
6041
6042 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6043
6044 * puresize.h (BASE_PURESIZE): Increase to 700000.
6045
6046 2000-11-18 Jason Rumney <jasonr@gnu.org>
6047
6048 * w32term.c (w32_draw_bitmap): Use face to set colors.
6049
6050 2000-11-17 Dave Love <fx@gnu.org>
6051
6052 * lread.c (Fload): Fix #ifdef for pcc.
6053
6054 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6055
6056 * xdisp.c (pos_visible_p): Compute the default character height
6057 differently.
6058
6059 2000-11-16 Gerd Moellmann <gerd@gnu.org>
6060
6061 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
6062 knowing the line's height; use the default font's height in that case.
6063
6064 * xfaces.c (weight_table): Add `demi' with the same meaning as
6065 `demibold'.
6066
6067 2000-11-16 Kenichi Handa <handa@etl.go.jp>
6068
6069 * dispnew.c (null_row): New global static variable.
6070 (clear_glyph_row): Delete local static variable null_row.
6071
6072 2000-11-15 Jason Rumney <jasonr@gnu.org>
6073
6074 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
6075 (w32_alloc_lighter_color): Use new brightness calculations from
6076 xterm.c. Scale delta to be in the range expected by W32.
6077 (w32_draw_relief_rect): Use frame relief colors.
6078
6079 2000-11-15 Gerd Moellmann <gerd@gnu.org>
6080
6081 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
6082 (Qinhibit_default_face_x_resources): New variable.
6083 (syms_of_frame): Initialize it.
6084 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
6085
6086 * xdisp.c (pos_visible_p): Improve function comment.
6087
6088 * lisp.h (BINDING_STACK_SIZE): New macro.
6089
6090 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
6091 reading the directory if readdir returns null and errno is EAGAIN
6092 or EINTR.
6093
6094 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
6095
6096 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
6097 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
6098 Set amount_to_scroll to max of dx and scroll_step so that
6099 scroll-conservatively doesn't defeat scroll-step>1.
6100 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
6101 scroll-conservatively for line-at-a-time scrolling.
6102
6103 2000-11-14 Gerd Moellmann <gerd@gnu.org>
6104
6105 * window.c (Fpos_visible_in_window_p): Call pos_visible with
6106 extra argument.
6107
6108 * xdisp.c (current_mode_line_height, current_header_line_height):
6109 New variables.
6110 (init_xdisp): Initialize them.
6111 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
6112 and use exact mode line heights if it is set.
6113
6114 * lisp.h (pos_visible_p): Change prototype.
6115
6116 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
6117 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
6118 and current_header_line_height first.
6119 (current_mode_line_height, current_header_line_height):
6120 Declare extern.
6121
6122 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
6123
6124 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
6125 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
6126 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
6127
6128 2000-11-14 Miles Bader <miles@gnu.org>
6129
6130 * xterm.c (x_alloc_lighter_color): Include an additive component
6131 too for dark colors, because FACTOR isn't enough.
6132 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
6133 New macros.
6134
6135 2000-11-13 Gerd Moellmann <gerd@gnu.org>
6136
6137 * keyboard.c (show_help_echo): Call message3_nolog with number of
6138 bytes in the help string as 2nd parameter, instead of the number
6139 of characters.
6140
6141 2000-11-13 Miles Bader <miles@gnu.org>
6142
6143 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
6144 (Fload): Use new openp return protocol.
6145 Don't try to use Vload_source_file_function to load .elc files.
6146 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
6147 openp return protocol.
6148 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
6149
6150 2000-11-11 Kenichi Handa <handa@etl.go.jp>
6151
6152 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
6153
6154 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
6155 Defined these macros.
6156 (NLIST_STRUCT): Avoid re-defining it.
6157
6158 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
6159 -I/usr/contrib/X11R6/include.
6160 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
6161
6162 2000-11-10 Jason Rumney <jasonr@gnu.org>
6163
6164 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
6165
6166 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
6167 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
6168
6169 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
6170 (Qw32_charset_vietnamese): New symbol.
6171 (xlfd_charset_of_font): New function.
6172 (w32_load_system_font): Use it.
6173 (x_to_w32_charset): Use Fassoc to find charset info. Special case
6174 when Vw32_charset_info_alist is nil to ensure default face always
6175 has font. Use Fcar and Fcdr for safety.
6176 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
6177 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
6178 pseudo-codepages for special cases.
6179 (w32_to_x_font): New parameter to allow charset portion to be
6180 specified where there is many to one mapping. Callers changed.
6181 (w32_list_fonts): Avoid listing fonts that won't display.
6182
6183 2000-11-10 Gerd Moellmann <gerd@gnu.org>
6184
6185 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
6186 (font_list_1): Renamed from font_list.
6187 (font_list): New function, trying alternative registries from
6188 Vface_alternative_font_registry_alist.
6189 (Finternal_set_alternative_font_registry_alist): New function.
6190 (syms_of_xfaces): Initialize and Staticpro
6191 Vface_alternative_font_registry_alist.
6192 Defsubr Finternal_set_alternative_font_registry_alist.
6193
6194 2000-11-09 Ken Raeburn <raeburn@gnu.org>
6195
6196 * lisp.h (Flooking_at): Declare.
6197
6198 2000-11-09 Gerd Moellmann <gerd@gnu.org>
6199
6200 * dired.c (directory_files_internal): Fix a braino.
6201
6202 * dired.c (directory_files_internal): Add missing GCPRO's.
6203 Some cleanup.
6204
6205 2000-11-08 Gerd Moellmann <gerd@gnu.org>
6206
6207 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
6208 (resize_mini_window): Return quickly if Vresize_mini_window is
6209 nil. Don't return if Vmax_mini_window_height is nil.
6210
6211 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
6212 (syms_of_xdisp): Initialize them.
6213 (resize_mini_window): Act according to the setting of
6214 Vresize_mini_window.
6215 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
6216
6217 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
6218 scroll bar widget after configuring it, so that it will appear at
6219 the right position from the start.
6220 (XTredeem_scroll_bar): Cleaned up.
6221
6222 2000-11-08 Kenichi Handa <handa@etl.go.jp>
6223
6224 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
6225 font is taller than the frame line, we don't have to bias the
6226 division by two.
6227
6228 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
6229
6230 2000-11-07 Dave Love <fx@gnu.org>
6231
6232 * config.in (HAVE_MKSTEMP): Add.
6233
6234 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
6235
6236 2000-11-07 Gerd Moellmann <gerd@gnu.org>
6237
6238 * window.c (Fset_window_configuration): Don't try to preserve
6239 point in the current buffer, if that buffer is displayed in more
6240 than one window.
6241
6242 * xfaces.c (lookup_named_face): If default face isn't realized,
6243 try to realize it. Return -1 if not successful.
6244 (Fx_list_fonts): Handle case that face cannot be determined.
6245 (Fface_font): Likewise.
6246
6247 2000-11-06 Gerd Moellmann <gerd@gnu.org>
6248
6249 * window.c (displayed_window_lines): Detect partially
6250 visible lines at the bottom correctly.
6251
6252 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
6253
6254 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
6255 when ensuring we don't do visit in indirect buffer.
6256
6257 2000-11-06 Kenichi Handa <handa@etl.go.jp>
6258
6259 * composite.h (compose_chars_in_text): Add prototype.
6260
6261 * composite.c (Vcomposition_function_table): New variable.
6262 (Qcomposition_function_table): New variable.
6263 (run_composition_function): Call
6264 Vcompose_chars_after_function with three arguments.
6265 (compose_chars_in_text): New function.
6266 (syms_of_composite): Modified the doc-string of
6267 Vcompose_chars_after_function. Declare composition-function-table
6268 as a lisp variable, and initialize it.
6269
6270 * xfns.c (x_encode_text): Suppress producing escape sequences for
6271 composition.
6272
6273 * xselect.c: Include composite.h.
6274 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
6275
6276 2000-11-05 Andrew Innes <andrewi@gnu.org>
6277
6278 * w32term.c (x_produce_glyphs): Fix typo in enum name.
6279
6280 * sysdep.c (read_input_waiting): Remove extraneous argument to
6281 read_socket_hook.
6282
6283 * w32fns.c (Fx_server_version): Include w32_build_number in the
6284 return list.
6285
6286 * w32heap.c (w32_build_number): New variable.
6287 (cache_system_info): Set it.
6288
6289 * w32heap.h (w32_build_number): Add extern.
6290
6291 * emacs.c (syms_of_emacs): Update docstring for
6292 system-configuration, to reflect the actual usage on MS-Windows.
6293
6294 2000-10-31 Gerd Moellmann <gerd@gnu.org>
6295
6296 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
6297 process idle timers while waiting for another event.
6298
6299 * dispnew.c (update_frame_line): Handle case where spaces in
6300 the default face are colored.
6301
6302 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
6303 window height hasn't changed.
6304
6305 2000-10-31 Jason Rumney <jasonr@gnu.org>
6306
6307 * w32term.c (x_produce_glyphs): Handle composite characters.
6308 (x_draw_glyph_string_foreground)
6309 (x_draw_composite_glyph_string_foreground): Restore old font.
6310
6311 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
6312
6313 * minibuf.c (read_minibuf): Reset the undo history just before
6314 starting the recursive-edit.
6315
6316 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6317
6318 * xfaces.c (menu_face_change_count): New variable.
6319 (Finternal_set_lisp_face_attribute): Increment it for changes
6320 of the `menu' face.
6321 (realize_basic_faces): Reflect changes in the `menu' faces
6322 in menu bars.
6323
6324 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
6325 dy obtained from the iterator's y-position after moving from
6326 scroll_margin_pos to PT; see comment there.
6327
6328 * xdisp.c (safe_eval_handler): Call add_to_log.
6329
6330 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
6331 is not a symbol or string.
6332
6333 * xdisp.c (echo_area_display): Don't perform a display update from
6334 inside redisplay. The update will happen anyway at the end of
6335 redisplay, and it can confuse redisplay (GC messages while
6336 redisplaying, for instance.)
6337
6338 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
6339
6340 * xrdb.c (x_load_resources): Use the class name in the defaults.
6341
6342 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
6343 (regex_compile): Catch bogus \(\1\).
6344
6345 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6346
6347 * xterm.c (x_alloc_nearest_color): Fix last change to compare
6348 RGB values.
6349
6350 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
6351 we have a color cache, check that the cached color equals the
6352 allocated color. If not, clear the color cache.
6353
6354 * window.c (displayed_window_lines): Change buffers if necessary.
6355 Fix computation of displayed lines.
6356
6357 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
6358 update_menu_bindings to DEFVAR_BOOL.
6359
6360 2000-10-30 Kenichi Handa <handa@etl.go.jp>
6361
6362 * search.c (Fset_match_data): Be sure to make search_regs always sane.
6363
6364 * puresize.h (BASE_PURESIZE): Increase to 680000.
6365
6366 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
6367
6368 2000-10-29 Jason Rumney <jasonr@gnu.org>
6369
6370 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
6371
6372 * w32term.c (w32_bdf_per_char_metric): Negate descent.
6373 (w32_cache_char_metrics): Handle possibility that 'x' does not
6374 exist in a BDF font.
6375 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
6376
6377 * w32bdf.h (bdffont): Add nchars.
6378
6379 * w32bdf.c (set_bdf_font_info): Set it.
6380 (w32_BDF_TextOut): Swap byte order of double byte characters.
6381 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
6382
6383 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
6384
6385 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
6386 don't override the colors in frame's param_alist, unless they are
6387 unspecified.
6388
6389 * term.c (reassert_line_highlight): If inverse_video is non-zero,
6390 reverse the effect of the highlight flag.
6391
6392 2000-10-27 Ken Raeburn <raeburn@gnu.org>
6393
6394 * window.h (Fwindow_live_p): Declare.
6395
6396 * undo.c (record_delete): Check that last_undo_buffer is really a
6397 buffer before applying XBUFFER to it.
6398
6399 * keymap.c (where_is_internal): Pass lisp object, not integer, to
6400 Faref.
6401
6402 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6403
6404 * lisp.h (KEYMAPP): New macro.
6405 (get_keymap): Remove.
6406 (get_keymap_1): Rename get_keymap.
6407
6408 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
6409
6410 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
6411
6412 * xmenu.c (single_submenu): Use KEYMAPP.
6413 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6414 Use KEYMAPP rather than Fkeymapp.
6415
6416 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
6417
6418 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
6419 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6420 Use KEYMAPP rather than Fkeymapp.
6421 (single_submenu): Use KEYMAPP.
6422 (w32_menu_show, w32_dialog_show): Use TRUE.
6423
6424 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
6425
6426 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
6427 (Fkeymapp): Use KEYMAPP.
6428 (get_keymap): Rename from get_keymap_1. Remove old def.
6429 Return t when autoload=0 and error=0 and the keymap needs autoloading.
6430 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
6431 (Fminor_mode_key_binding): Don't raise an error if the binding
6432 is not a keymap.
6433 (Fuse_global_map, Fuse_local_map): Allow autoloading.
6434 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
6435
6436 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
6437 Allow Vspecial_event_map to be autoloaded.
6438 (menu_bar_items): Fetch the keymap rather than using keymapp.
6439 (menu_bar_one_keymap): No need to follow func-indirect any more.
6440 (parse_menu_item): get_keymap_1 -> get_keymap.
6441 (tool_bar_items): Fetch the keymap rather than using keymapp.
6442 (read_key_sequence): Use KEYMAPP.
6443
6444 * intervals.c (get_local_map): Use get_keymap rather than following
6445 function-indirections explicitly.
6446
6447 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
6448
6449 2000-10-27 Jason Rumney <jasonr@gnu.org>
6450
6451 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
6452 point, as Windows has oversized fonts.
6453
6454 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
6455
6456 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6457
6458 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
6459 (freehook, reallochook): Handle null pointer arguments.
6460 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
6461
6462 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6463
6464 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
6465 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
6466 Giving in to popular pressure to shut up the compiler with casts.
6467
6468 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6469
6470 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
6471 signed value, and use a default value computed from the font's
6472 maximum descent.
6473
6474 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
6475
6476 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
6477 that specify a negative underline position can still use underlines.
6478
6479 * window.c (Fpos_visible_in_window_p): Make POS default to
6480 WINDOW's point, not the current buffer's point.
6481
6482 2000-10-26 Dave Love <fx@gnu.org>
6483
6484 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
6485 when it's necessary.
6486
6487 2000-10-26 Gerd Moellmann <gerd@gnu.org>
6488
6489 * window.c (size_window): Compute size difference from sum of old
6490 child window sizes instead of from parent's size.
6491
6492 * xdisp.c (pos_visible_p): Change current buffer if necessary.
6493 Handle obscured lines at the top of the window.
6494
6495 * frame.c (Fdelete_frame): Doc fix. Move running the hook
6496 down after the last error condition check.
6497
6498 * frame.c (Fdelete_frame): Run delete-frame-hook.
6499
6500 2000-10-26 Kenichi Handa <handa@etl.go.jp>
6501
6502 * coding.c (decode_coding): Fix previous change (check also
6503 CODING_MODE_LAST_BLOCK).
6504
6505 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6506
6507 * regex.c: More `unsigned char' -> `re_char' changes.
6508 Also change several `int' into `re_wchar_t'.
6509 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
6510 (PUSH_FAILURE_POINTER): Don't cast any more.
6511 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
6512 We want GCC to complain, since this piece of code makes
6513 re_match non-reentrant, which *should* be fixed.
6514 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
6515 (EXTEND_BUFFER): Use RETALLOC.
6516 (SET_LIST_BIT): Don't cast.
6517 (re_wchar_t): New type.
6518 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
6519 that those two functions will always properly return.
6520 (IMMEDIATE_QUIT_CHECK): Cast to void.
6521 (analyse_first): Use recursion rather than an explicit stack.
6522 (re_compile_fastmap): Can't fail anymore.
6523 (re_search_2): Don't check re_compile_fastmap for failure.
6524 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
6525 Now also sets the new value (passed in a new argument).
6526 (re_match_2_internal): Use it.
6527 Also, use a new var `reg' of type size_t when looping through regs
6528 rather than reuse the inappropriate `mcnt'.
6529
6530 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
6531 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
6532 (where_is_internal): Renamed from Fwhere_is_internal.
6533 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
6534 (Fwhere_is_internal): New function wrapping where_is_internal.
6535 (where_is_internal_1): Handle the case where we're filling the cache.
6536 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
6537
6538 2000-10-25 Miles Bader <miles@gnu.org>
6539
6540 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
6541
6542 2000-10-25 Gerd Moellmann <gerd@gnu.org>
6543
6544 * window.c (pos_fully_visible_p): Removed.
6545 (Fpos_visible_in_window_p): Use pos_visible_p to determine
6546 if position is visible and/or fully visible.
6547
6548 * lisp.h (pos_visible_p): Add prototype.
6549
6550 * xdisp.c (pos_visible_p): New function.
6551
6552 2000-10-25 Kenichi Handa <handa@etl.go.jp>
6553
6554 * process.c (send_process): If OBJECT is t, it means that the data
6555 is from C string, but we should encode it. Before calling
6556 setup_raw_text_coding_system, be sure to flush out data by the
6557 previous coding system.
6558
6559 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
6560
6561 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
6562 assignment of startpos to prev when startpos == pos.
6563
6564 * editfns.c (find_field): Set the field stickiness correctly from
6565 overlay fields. Use renamed `text_property_stickiness'.
6566 (text_property_stickiness): Renamed from `char_property_stickiness'.
6567 Only check text properties, not overlays.
6568 * textprop.c (get_char_property_and_overlay): New function.
6569 (Fget_char_property): Use it.
6570 * intervals.h (get_char_property_and_overlay): Add declaration.
6571
6572 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6573
6574 * keymap.c: Use AREF, ASET and ASIZE macros.
6575 (Fmake_sparse_keymap): Docstring fix.
6576 (synkey): Remove.
6577 (shadow_lookup): Move up.
6578 Handle the case where lookup-key returns an integer.
6579 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
6580 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
6581 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
6582 Simplify/rewrite the keymap-finding code.
6583 Add check for command shadowing, using shadow_lookup.
6584
6585 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
6586
6587 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
6588 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
6589 a symbol.
6590
6591 2000-10-24 Andrew Innes <andrewi@gnu.org>
6592
6593 * dired.c (directory_files_internal_unwind): New function.
6594 (directory_files_internal): Use it to ensure closedir is called
6595 even if expand-file-name or file-attributes throw, eg. because of
6596 a user interrupt. Also enable immediate_quit while calling
6597 re_search, so that matching can be interrupted as well.
6598
6599 2000-10-24 Andrew Innes <andrewi@gnu.org>
6600
6601 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
6602 NT-Emacs only.
6603 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
6604 so that re_search functions only quit when callers expect them to.
6605
6606 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6607
6608 * regex.c (regex_compile): Change the way of handling a range from
6609 a char less than 256 to a char not less than 256.
6610
6611 2000-10-24 Gerd Moellmann <gerd@gnu.org>
6612
6613 * window.c (size_window): Prevent setting window's width or
6614 height to a negative value (esp. with XSETFASTINT).
6615
6616 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
6617 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
6618 (protect_malloc_state) [GC_MALLOC_CHECK &&
6619 GC_PROTECT_MALLOC_STATE]: New function.
6620 (PROTECT_MALLOC_STATE): New macro.
6621 (__malloc_initialize, morecore, _malloc_internal)
6622 (_free_internal) _realloc_internal): Use it to make _heapinfo
6623 read-only outside of gmalloc.
6624
6625 * keymap.c: Update copyright.
6626
6627 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
6628 a symbol.
6629
6630 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
6631
6632 * filelock.c (unlock_all_files): Use unlock_file to expand each
6633 buffer's file_truename before trying remove its lock file.
6634
6635 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
6636
6637 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
6638 or CRLF, decode EOLs.
6639
6640 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6641
6642 * window.c (Fdisplay_buffer): Fix doc.
6643
6644 2000-10-23 Jason Rumney <jasonr@gnu.org>
6645
6646 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
6647 ASCII font of default fontset on Windows.
6648
6649 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
6650 xterm.c comment below).
6651
6652 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
6653
6654 2000-10-23 Gerd Moellmann <gerd@gnu.org>
6655
6656 * xterm.c (x_connection_closed): Reset handling_signal.
6657
6658 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
6659
6660 2000-10-23 Miles Bader <miles@gnu.org>
6661
6662 * window.c (window_scroll_pixel_based, window_scroll_line_based):
6663 Pass nil for FULLY argument to Fpos_visible_in_window_p to
6664 maintain old behavior.
6665 * minibuf.c (Fminibuffer_complete): Likewise.
6666
6667 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
6668
6669 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
6670 that when a font can't be exactly centered, it errs up rather than
6671 down.
6672
6673 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
6674
6675 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
6676
6677 2000-10-23 Andrew Choi <akochoi@i-cable.com>
6678
6679 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
6680
6681 * dispnew.c [macintosh]: Include macterm.h.
6682 (init_display) [macintosh]: Initialization for window system.
6683
6684 * emacs.c (main) [macintosh]: Call syms_of_textprop,
6685 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
6686 syms_of_search, x_term_init, and init_keyboard before calling
6687 init_window_once. Also, call syms_of_xmenu.
6688
6689 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
6690 default fontset to Monaco.
6691
6692 * frame.c [macintosh]: Include macterm.h. Remove declarations of
6693 NewMacWindow and DisposeMacWindow.
6694 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
6695 instead of calling NewMacWindow and setting fields of
6696 f->output_data.mac directly. Call init_frame_faces.
6697 (Fdelete_frame) [macintosh]: Remove unused code.
6698 (Fmodify_frame_parameters) [macintosh]: Call
6699 x_set_frame_parameters instead of mac_set_frame_parameters.
6700
6701 * frame.h [macintosh]: Define menu_bar_lines field in struct
6702 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
6703
6704 * keyboard.c [macintosh]: Include macterm.h.
6705 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
6706 and menu_bar_activate_event type events as for X and NT.
6707 (make_lispy_event) [macintosh]: Construct lisp events of type
6708 MENU_BAR_EVENT as for X and NT.
6709
6710 * sysdep.c [macintosh]: Remove declaration for sys_signal.
6711 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
6712 (sys_subshell) [macintosh]: Remove definition entirely.
6713 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
6714 Vwindow_system_version here. Remove initialization of
6715 Vx_bitmap_file_path.
6716 (read_input_waiting): Correct the number of parameters passed to
6717 read_socket_hook.
6718 Move all Macintosh functions to mac/mac.c.
6719
6720 * term.c [macintosh]: Include macterm.h.
6721
6722 * window.c [macintosh]: Include macterm.h.
6723
6724 * xdisp.c [macintosh]: Include macterm.h. Declare
6725 set_frame_menubar and pending_menu_activation.
6726 (echo_area_display) [macintosh]: Do not return if terminal frame
6727 is the selected frame.
6728 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
6729 Allow only the selected frame to set menu bar.
6730 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
6731 calling FRAME_EXTERNAL_MENU_BAR (f).
6732 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
6733
6734 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
6735 and check_x. Declare XCreateGC. Define x_create_gc and
6736 x_free_gc. Initialize font_sort_order.
6737 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
6738 but call x_list_fonts instead of w32_list_fonts.
6739 (Finternal_face_x_get_resource) [macintosh]: Do not call
6740 display_x_get_resource.
6741 (prepare_face_for_display) [macintosh]: Set xgcv.font.
6742 (realize_x_face) [macintosh]: Load the font if it is specified in
6743 ATTRS.
6744 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
6745
6746 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
6747
6748 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
6749 is nil: since we go to the end of submap anyway, we'd end up
6750 setting nil to nil.
6751 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
6752 doesn't obey autoload.
6753
6754 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6755
6756 * msdos.c (dos_set_window_size): Update screen dimension variables.
6757
6758 2000-10-21 Jason Rumney <jasonr@gnu.org>
6759
6760 * w32term.c (w32_cache_char_metrics): Double check that font is
6761 really fixed pitch before trusting tmPitchAndFamily.
6762
6763 2000-10-21 Andrew Innes <andrewi@gnu.org>
6764
6765 * w32gui.h (w32_char_font_type): Move enum from w32term.c
6766
6767 * w32term.h: Extern decl for w32_cache_char_metrics.
6768
6769 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
6770
6771 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
6772 (w32_unload_font): Free per_char array if present.
6773
6774 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
6775 cached information in emulated XFontStruct to handle common cases
6776 quickly. Do not allocate XCharStruct for return.
6777 (w32_native_per_char_metric): New function.
6778 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
6779 allocating one.
6780 (x_produce_glyphs): Don't get an HDC. Change calls to
6781 w32_per_char_metric to match arg change above. Remove calls to
6782 free results.
6783 (w32_get_glyph_overhangs): Ditto.
6784 (w32_cache_char_metrics): New function.
6785
6786 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
6787 ($(BLD)/casefiddle.$(O)): Remove compile command.
6788 ($(BLD)/gmalloc.$(O)): Remove compile command.
6789 ($(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 * makefile.nt ($(BLD)\dispnew.obj):
6812 ($(BLD)\keyboard.obj):
6813 ($(BLD)\w32inevt.obj):
6814 ($(BLD)\w32bdf.obj):
6815 ($(BLD)\alloc.obj):
6816 ($(BLD)\buffer.obj):
6817 ($(BLD)\editfns.obj):
6818 ($(BLD)\emacs.obj):
6819 ($(BLD)\fileio.obj):
6820 ($(BLD)\fns.obj):
6821 ($(BLD)\indent.obj):
6822 ($(BLD)\insdel.obj):
6823 ($(BLD)\intervals.obj):
6824 ($(BLD)\minibuf.obj):
6825 ($(BLD)\print.obj):
6826 ($(BLD)\scroll.obj):
6827 ($(BLD)\sysdep.obj):
6828 ($(BLD)\textprop.obj):
6829 ($(BLD)\widget.obj):
6830 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6831 ($(BLD)\term.obj): Add dependency on dispextern.h
6832
6833 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6834
6835 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6836 with an additional argument of Qt.
6837
6838 2000-10-21 Miles Bader <miles@gnu.org>
6839
6840 * window.c (pos_fully_visible_in_window_p): New function.
6841 (Fpos_visible_in_window_p): Add FULLY argument.
6842 Use pos_fully_visible_in_window_p.
6843 (window_scroll_pixel_based, window_scroll_line_based): Update
6844 calls to Fpos_visible_in_window_p.
6845 * lisp.h (Fpos_visible_in_window_p): Update prototype
6846
6847 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6848
6849 * alloc.c (toplevel): Conditionalize compilation of mem_*
6850 functions differently.
6851
6852 2000-10-20 Jason Rumney <jasonr@gnu.org>
6853
6854 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6855 mem_init where it used to be. mem_z etc not defined otherwise.
6856
6857 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6858
6859 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6860 GC_MALLOC_CHECK.
6861 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6862 structure definition and related variabled to the top of the file.
6863 Include this code when GC_MALLOC_CHECK is defined.
6864 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6865 register/unregister allocated region.
6866 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6867 which isn't allocated.
6868 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6869 something which is already in use.
6870 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6871 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6872 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6873 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6874
6875 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6876 _malloc_internal instead of malloc.
6877 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6878 of free.
6879
6880 2000-10-20 Andrew Innes <andrewi@gnu.org>
6881
6882 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
6883 Windows.
6884 (my_strftime) <macro>: Don't use macro arg list when redefining as
6885 _strftime_copytm.
6886 (my_strftime) <function>: Supply 0 as ut argument.
6887
6888 2000-10-19 Jason Rumney <jasonr@altavista.net>
6889
6890 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
6891 including dispextern.h, as it stops faces from working.
6892
6893 * w32fns.c (Fx_create_frame): Don't bother calling
6894 face-set-after-frame-default since the caller does it for us
6895 anyway. Clean up calls to x_get_arg to be consistent with X.
6896
6897 * w32term.c (x_produce_glyphs): Handle
6898 unibyte_display_via_language_environment correctly.
6899 (w32_draw_box_rect): Fix the calculation of width and height.
6900
6901 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6902 as it has stopped working.
6903 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6904 menu-bar.
6905
6906 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6907
6908 * eval.c (skip_debugger): Prevent a compiler warning.
6909 (Fcondition_case): Likewise.
6910 (Fbacktrace_frame): Use a null interactive spec.
6911
6912 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6913
6914 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6915
6916 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6917
6918 * strftime.c: Sync with glibc, file version 1.78.
6919 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6920 should no longer be used according to ISO 8601.
6921
6922 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6923 no map for meta_prefix_char, don't try to use it as a keymap.
6924 Instead, if T_OK is non-zero, look up a default binding, if any,
6925 otherwise, if T_OK is zero, return nil.
6926
6927 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6928 (x_to_xcolors, png_load): Use x_query_color.
6929
6930 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6931 New functions.
6932 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6933 which can be slow.
6934 (x_copy_color, x_alloc_lighter_color): Likewise.
6935
6936 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6937 (x_query_color, x_query_colors): Add prototype.
6938
6939 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6940 check_string_bytes only if not noninteractive, increase count to 50.
6941
6942 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6943
6944 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6945 markers correctly.
6946
6947 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6948
6949 * alloc.c (pure_bytes_used): Renamed from pureptr.
6950 (ALIGN): New macro.
6951 (pure_alloc): New function.
6952 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6953 Use it.
6954 (Fpurecopy): Use PURE_POINTER_P.
6955
6956 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6957 PT has moved backward.
6958
6959 * xdisp.c (cursor_row_p): Take continued lines into account.
6960
6961 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6962 string's size_byte.
6963 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6964 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6965 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6966 string allocated.
6967
6968 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6969 of selective display off while searching for the next line start.
6970
6971 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6972
6973 * Makefile.in (term.o): Depend on dispextern.h.
6974
6975 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6976
6977 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6978
6979 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6980
6981 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6982 the iterator at the beginning, so that they can be set later on,
6983 for instance in reseat_at_next_visible_line_start, without being
6984 overwritten.
6985
6986 * xfns.c (pbm_format): Add :foreground and :background keywords.
6987 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6988 (xbm_load): Recognize foreground and background color specifications.
6989
6990 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6991
6992 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6993
6994 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6995
6996 * msdos.c (IT_set_face): Compare highlighted face with the default
6997 face, and invert colors if these faces' colors are identical.
6998 (Fmsdos_remember_default_colors): Don't swap foreground and
6999 background colors in initial_colors[].
7000 (IT_set_frame_parameters): Don't swap frame's foreground and
7001 background pixels. If ALIST includes "(reverse . t)", swap
7002 foreground-color and background-color properties in frame's
7003 param_alist. If the original frame's param_alist doesn't specify
7004 the colors, store unspecified-fg and unspecified-bg, reversed if
7005 required.
7006
7007 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
7008 the colors are unspecified and reversed, reverse fore- and back-
7009 ground in the returned value.
7010 (Fframe_parameter): Ditto.
7011
7012 2000-10-16 Gerd Moellmann <gerd@gnu.org>
7013
7014 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
7015 get_last_unchanged_at_beg_row.
7016 (find_first_unchanged_at_end_row): Renamed from
7017 get_first_unchanged_at_end_row.
7018 (find_first_unchanged_at_end_row): Convert assertions to
7019 unconditional tests which abort. When looking for a row in
7020 unchanged text, don't go further back than first_text_row.
7021
7022 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
7023 Don't add in the last line's height when deciding if the new
7024 position is below the scroll margin.
7025
7026 2000-10-16 Miles Bader <miles@gnu.org>
7027
7028 * editfns.c (Fconstrain_to_field): Check carefully for field
7029 boundaries if either OLD_POS or NEW_POS has a non-nil field
7030 property, even if they're the same.
7031
7032 2000-10-16 Kenichi Handa <handa@etl.go.jp>
7033
7034 * xterm.c (x_draw_box_rect): Fix the calculation of width and
7035 height for XFillRectangle.
7036
7037 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
7038
7039 * syntax.c (Fstring_to_syntax): New function extracted from
7040 Fmodify_syntax_entry.
7041 (Fmodify_syntax_entry): Use it and document the ! and | fences.
7042 (skip_chars, Fforward_comment): Remove unused variables.
7043 (syms_of_syntax): Add defsubr for string-to-syntax.
7044 (describe_syntax): Add code for comment and string fences.
7045
7046 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
7047
7048 * keymap.c (access_keymap): Add AUTOLOAD parameter.
7049 Do the meta->esc mapping. Call get_keyelt before returning.
7050 Start scanning from the second element (the first is always `keymap')
7051 to make it easier to detect when we reach a parent map.
7052 Handle the case of inheriting from a symbol whose function is a map.
7053 (Fkeymap_parent): Also handle the `inherit from symbol' case.
7054 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
7055 (get_keyelt, Flookup_key): Update call to access_keymap.
7056 Remove the meta->esc mappings.
7057 (define_as_prefix): Delete old disabled code.
7058 (menu_item_p): New function.
7059 (where_is_internal_1): Skip over the few remaining menu items.
7060 * lisp.h (access_keymap): Update prototype.
7061 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
7062 Update call to access_keymap.
7063 (follow_key, read_key_sequence): Update calls to access_keymap.
7064 Remove the meta->esc mappings.
7065
7066 2000-10-13 Gerd Moellmann <gerd@gnu.org>
7067
7068 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
7069 with additional argument.
7070
7071 * xdisp.c (cursor_row_p): New function.
7072 (try_cursor_movement, display_line): Use it.
7073
7074 * xdisp.c (append_space): Also save/restore iterator's current
7075 character and its length.
7076
7077 * xdisp.c (init_from_display_pos): Add an assertion.
7078 (handle_stop): Don't set iterator's add_overlay_start.
7079 (handle_invisible_prop): Likewise.
7080 (load_overlay_strings): If text under an overlay is invisible,
7081 take both before- and after-strings into account when the iterator
7082 is positioned either at the start or at the end of the overlay.
7083 (forward_to_next_line_start): Rewritten.
7084 (reseat_at_next_visible_line_start): Rewritten.
7085 (set_iterator_to_next): Add parameter RESEAT_P.
7086
7087 * dispextern.h (struct it): Remove member add_overlay_start.
7088 (set_iterator_to_next): Change prototype.
7089
7090 2000-10-13 Kenichi Handa <handa@etl.go.jp>
7091
7092 * coding.c (code_convert_region): Be sure to initialize
7093 coding->category_idx.
7094 (decode_coding_string): Set coding->src_multibyte and
7095 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
7096 (encode_coding_string): Set coding->src_multibyte and
7097 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
7098
7099 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
7100
7101 * xfns.c (Fx_create_frame): Don't bother calling
7102 face-set-after-frame-default since the caller does it for us anyway.
7103
7104 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
7105
7106 * window.c (coordinates_in_window): Fix detection of vertical line
7107 on character terminals.
7108
7109 2000-10-12 Gerd Moellmann <gerd@gnu.org>
7110
7111 * editfns.c (save_excursion_save): Additionally record the
7112 selected window.
7113 (save_excursion_restore): If buffer was visible in a window, and a
7114 different window was selected, and the old selected window is
7115 still live, restore point in that window.
7116
7117 2000-10-12 Kenichi Handa <handa@etl.go.jp>
7118
7119 * xterm.c (x_produce_glyphs): Handle
7120 unibyte_display_via_language_environment correctly.
7121
7122 * regex.c (regex_compile): Change the way of handling a range from
7123 unibyte char to multibyte char.
7124
7125 * syntax.c (skip_chars): Change the way of handling a range from
7126 unibyte char to multibyte char.
7127
7128 * process.c (read_process_output): Cancel previous change.
7129
7130 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
7131
7132 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
7133
7134 * charset.c (Ffind_charset_string): Doc fix.
7135 (Ffind_charset_region): Doc fix.
7136
7137 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
7138
7139 * process.c (read_process_output): Fix previous change. Adjust
7140 multibyteness of text to insert in a buffer by
7141 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
7142
7143 2000-10-10 Andreas Schwab <schwab@suse.de>
7144
7145 * alloc.c (mark_object): Remove all workarounds installed on
7146 1993-08-08.
7147
7148 2000-10-10 Kenichi Handa <handa@etl.go.jp>
7149
7150 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
7151 (base64_encode_1): Make it work for a text of multibyte form.
7152 (Fbase64_decode_region): Allocate sufficient memory for multibyte
7153 case. Don't call str_to_multibyte because base64_decode_1
7154 produces correct multibyte form for eight-bit codes.
7155 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
7156 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
7157 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
7158 codes.
7159
7160 * charset.h (CHAR_STRING): Optimized for single byte characters.
7161
7162 2000-10-09 Andreas Schwab <schwab@suse.de>
7163
7164 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
7165 -1 after socket is closed, to fall through to error processing.
7166
7167 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
7168
7169 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
7170 variables. If ALIST includes foreground-color or
7171 background-color, change also the colors of the default face for
7172 this frame.
7173
7174 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
7175
7176 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
7177 them extern (they are defined on xfaces.c).
7178 (syms_of_msdos): Don't intern and don't staticpro
7179 Qbackground_color and Qforeground_color.
7180
7181 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
7182
7183 * frame.c (Fframe_parameter): For non-windowed frames, if
7184 f->param_alist says foreground or background color is unspecified,
7185 call tty_color_name to return the color name computed from the
7186 frame's current colors.
7187
7188 2000-10-06 Dave Love <fx@gnu.org>
7189
7190 * terminfo.c (ospeed): Don't declare.
7191
7192 * sysdep.c: Don't include string.h.
7193 (h_errno): Declare conditional also on TRY_AGAIN.
7194
7195 * charset.c (Ffind_charset_string): Doc fix.
7196
7197 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
7198 (Fbase64_decode_region, Fbase64_decode_string): More explicit
7199 error messages.
7200
7201 2000-10-05 Dave Love <fx@gnu.org>
7202
7203 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
7204 position like menu-bar.
7205
7206 2000-10-05 Gerd Moellmann <gerd@gnu.org>
7207
7208 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
7209
7210 * xdisp.c (handle_single_display_prop): Use safe_call1.
7211 (safe_call): Renamed from call_function.
7212 (safe_call1): New function.
7213 (handle_fontified_prop): Use safe_call1 instead of call1.
7214 (safe_eval): Renamed from eval_form.
7215 (safe_eval_handler): Renamed from eval_handler.
7216 (handle_single_display_prop, display_mode_element): Use safe_eval
7217 instead of eval_form.
7218
7219 * xfaces.c (merge_face_heights): Use safe_call instead of
7220 call_function.
7221
7222 * keyboard.c (show_help_echo): Use safe_call instead of
7223 call_function; use safe_eval instead of eval_form.
7224
7225 * lisp.h (safe_call): Renamed from call_function.
7226 (safe_eval): Renamed from eval_form.
7227 (safe_call1): Add prototype.
7228
7229 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
7230
7231 * xfns.c (image_ascent): Rearrange ascent calculation for the
7232 has-a-font case.
7233
7234 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
7235
7236 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
7237 (where_is_internal_1): Don't bother ignoring menu-items any more.
7238
7239 2000-10-04 Gerd Moellmann <gerd@gnu.org>
7240
7241 * keyboard.c (update_menu_bindings): New variable.
7242 (parse_menu_item): Use AREF. If update_menu_bindings
7243 is 0, don't update menu bindings.
7244 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
7245
7246 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
7247
7248 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
7249 to `mark_object'.
7250
7251 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
7252
7253 * syntax.c (forw_comment): Match nestedness of ender/starter.
7254 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
7255 (prev_char_comstart_first): Remove.
7256 (back_comment): Check two-char comment markers more carefully
7257 to better handle overlapping cases like *//* or /* */* */ ...
7258 Match nestedness of ender/starter.
7259
7260 2000-10-02 Dave Love <fx@gnu.org>
7261
7262 * config.in (HAVE_GAI_STRERROR): Add undef.
7263
7264 * process.c (Fopen_network_stream): Use it.
7265
7266 * m/alpha.h (NO_REMAP): Don't define.
7267
7268 2000-10-02 Gerd Moellmann <gerd@gnu.org>
7269
7270 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
7271 return with a string converted to an integer or vice versa when
7272 Vmocklisp_arguments is t.
7273 (Fsignal): Likewise. The function can return for `quit'.
7274 (struct gcpro): Declare member `var' to point to a volatile
7275 Lisp_Object.
7276
7277 * eval.c (error): Prevent compiler warning.
7278
7279 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
7280
7281 * keymap.c (keymap_memberp): New function.
7282 (Fset_keymap_parent): Use it.
7283 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
7284 Use keymap_memberp to avoid creating cycles.
7285 (access_keymap): Use KEYMAPP.
7286
7287 2000-09-30 Gerd Moellmann <gerd@gnu.org>
7288
7289 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
7290 gai_strerror. Make sure xerrno is set if connect fails. Improve
7291 error recovery.
7292
7293 2000-09-29 Jason Rumney <jasonr@gnu.org>
7294
7295 * w32term.c (w32_char_font_type, w32_encode_char)
7296 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
7297 (w32_bdf_per_char_metric): New function.
7298 (w32_per_char_metric): Use it.
7299 (x_draw_glyph_string_background): Always draw background for BDF
7300 glyphs.
7301
7302 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
7303 GDI object which is a scarce resource.
7304
7305 * w32bdf.c (search_file_line): Fix skipping of whitespace.
7306 (get_quoted_string): Fix limit on memchr search.
7307 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
7308 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
7309 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
7310 (get_cached_font_char, cache_char_offset): Use macro
7311 BDF_CODEPOINT_RANGE_COVER_P.
7312 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
7313 (clear_cached_bitmap_slots): New function.
7314 (GET_HEX_VALUE): G-Z, g-z are not hex.
7315 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
7316 (get_bitmap_with_cache): Use new cache implementation.
7317 (create_offscreen_bitmap): New function.
7318 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
7319
7320 * w32term.c (x_produce_glyphs): If the distance from the current
7321 position to the next tab stop is less than a canonical character
7322 width, use the tab stop after that.
7323 (x_draw_glyphs): Handle case START and END are out of bounds more
7324 carefully.
7325 (x_clear_mouse_face): Block/unblock input.
7326 (x_display_and_set_cursor): Don't show a hollow box cursor for
7327 buffers whose cursor_type is nil.
7328
7329 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7330
7331 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
7332
7333 * dispextern.h (updating_frame): Declare extern.
7334
7335 2000-09-29 Andreas Schwab <schwab@suse.de>
7336
7337 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
7338
7339 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7340
7341 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
7342 use its function definition.
7343 (tool_bar_items): Likewise.
7344
7345 * lisp.h (fatal): Declare NO_RETURN.
7346
7347 2000-09-29 Kenichi Handa <handa@etl.go.jp>
7348
7349 * keymap.c: Remove the line "#undef NULL".
7350
7351 2000-09-28 Gerd Moellmann <gerd@gnu.org>
7352
7353 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
7354
7355 2000-09-28 Dave Love <fx@gnu.org>
7356
7357 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
7358
7359 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
7360
7361 * .gdbinit (xreload): Note its need on GNU/Linux.
7362
7363 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
7364 r_alloc, r_alloc_free.
7365
7366 2000-09-28 Kenichi Handa <handa@etl.go.jp>
7367
7368 * syntax.c (skip_chars): Handle negation correctly.
7369
7370 2000-09-27 Gerd Moellmann <gerd@gnu.org>
7371
7372 * xfaces.c (realize_default_face): Call set_lface_from_font_name
7373 with non-zero FORCE_P argument.
7374
7375 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
7376 Add assertions.
7377
7378 * xdisp.c (window_box_height): Add an assertion.
7379
7380 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
7381 tool-bar than is available.
7382 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
7383
7384 2000-09-27 Dave Love <fx@gnu.org>
7385
7386 * s/irix6-5.h: Now works 64-bit. Tidied.
7387
7388 2000-09-26 Gerd Moellmann <gerd@gnu.org>
7389
7390 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
7391 instead of BITS_PER_INT.
7392 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
7393 EMACS_UINT, respectively.
7394 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
7395
7396 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
7397
7398 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
7399
7400 * window.c (freeze_window_starts): Construct last argument for
7401 foreach_window differently.
7402
7403 * xfns.c (x_decode_color): Don't return a Lisp_Object.
7404
7405 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
7406 EMACS_UINT instead of `int' and `unsigned int'.
7407 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
7408
7409 * frame.h (struct frame): Make the `nothing' member of union
7410 output_data an EMACS_INT.
7411
7412 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
7413 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
7414 size in the sdata structure.
7415 (SDATA_NBYTES, SDATA_DATA): New macros.
7416 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
7417 differently for the different layout of the sdata structure.
7418 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
7419 in sdata.
7420 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
7421 Check that size recorded in the string size and size recorded in
7422 the sdata structure agree.
7423
7424 2000-09-25 Dave Love <fx@gnu.org>
7425
7426 * buffer.c: Include stdio.h.
7427
7428 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
7429
7430 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
7431
7432 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
7433 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
7434 (__malloc_extra_blocks): Declare as __malloc_size_t.
7435
7436 2000-09-25 Gerd Moellmann <gerd@gnu.org>
7437
7438 * alloc.c (mark_image): Use GC_NILP instead of NILP.
7439
7440 * keyboard.c (show_help_echo): Set help_echo_showing_p.
7441 (read_char): If help-echo is showing, preserve the echo area
7442 when redisplaying.
7443
7444 * xdisp.c (help_echo_showing_p): New variable.
7445 (set_message): Reset it to 0.
7446 (init_xdisp): Initialize help_echo_showing_p.
7447
7448 * dispextern.h (help_echo_showing_p): Declare extern.
7449
7450 * config.in: Fix typo in __GNUC_MINOR__.
7451
7452 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
7453
7454 * s/freebsd.h (POSIX_SIGNALS): Define.
7455
7456 * xterm.c (x_clear_mouse_face): Block/unblock input.
7457
7458 2000-09-24 Dave Love <fx@gnu.org>
7459
7460 * fns.c (base64_encode_1): Fix last change.
7461
7462 2000-09-22 Gerd Moellmann <gerd@gnu.org>
7463
7464 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
7465
7466 * xdisp.c (try_window_reusing_current_matrix): More fixes
7467 for the case window has a header-line.
7468
7469 2000-09-22 Dave Love <fx@gnu.org>
7470
7471 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
7472 a doc string.
7473
7474 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
7475
7476 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
7477
7478 2000-09-21 Gerd Moellmann <gerd@gnu.org>
7479
7480 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
7481 for GCC >= 2.5.
7482
7483 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
7484 Declare NO_RETURN.
7485
7486 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
7487 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
7488 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
7489 warnings.
7490
7491 * marker.c (byte_char_debug_check): Return void.
7492
7493 * xfns.c (Fx_create_frame): Set default frame parameter value
7494 for tool-bar-lines to 1.
7495
7496 * dispnew.c (scrolling_window): Compare y-positions of rows
7497 equal at the start. Some simplification.
7498
7499 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
7500 reused rows' y-position in the case window has a header-line, and
7501 new window start is greater than old window start.
7502
7503 * process.c (process_sent_to): New variable.
7504 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
7505 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
7506 Declare more parameters volatile.
7507
7508 * lread.c (Vrecursive_load_depth_limit): New variable.
7509 (Fload): Check recursive loads whose recursion depth exceeds
7510 Vrecursive_load_depth_limit.
7511 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
7512
7513 2000-09-20 Gerd Moellmann <gerd@gnu.org>
7514
7515 * fileio.c (Fread_file_name): Doc fix.
7516
7517 * editfns.c (Fmessage_or_box): Doc fix.
7518
7519 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
7520
7521 * xfns.c (xbm_scan): Allow C-style comments.
7522
7523 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
7524 symbols are specified, add color translations to the cache.
7525 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
7526 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
7527 xpm_cache_color.
7528 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
7529 structures to xpm_init_color_cache.
7530
7531 2000-09-19 Gerd Moellmann <gerd@gnu.org>
7532
7533 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
7534
7535 2000-09-19 Andrew Innes <andrewi@gnu.org>
7536
7537 * makefile.nt (bootstrap-emacs): Don't change directory.
7538
7539 2000-09-19 Kenichi Handa <handa@etl.go.jp>
7540
7541 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
7542
7543 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
7544 If output buffer is too small, signal an appropriated error.
7545
7546 2000-09-18 Dave Love <fx@gnu.org>
7547
7548 * keyboard.c (menu_bar_items, tool_bar_items)
7549 (current_active_maps): Remove redundant get_local_map call.
7550
7551 2000-09-18 Gerd Moellmann <gerd@gnu.org>
7552
7553 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
7554 cursor for buffers whose cursor_type is nil.
7555
7556 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
7557 a feature to implement that is already implemented.
7558 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
7559 warnings.
7560
7561 * xfns.c (x_clear_image_1): New function.
7562 (x_clear_image): Use it.
7563 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
7564
7565 * dispnew.c (update_window): Move test for invisible lines
7566 at the top to update_window_line.
7567 (update_window_line): Handle invisible lines here.
7568
7569 * xfns.c (clear_image_cache): Clear current matrices of all
7570 frames sharing an image cache. Block input while freeing
7571 images. Fix timestamp comparison.
7572 (x_clear_image): Also free the mask.
7573
7574 * xfns.c (lookup_image): Block input while loading the image so
7575 that we won't get interrupted in a state where the image isn't yet
7576 set up completely.
7577 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
7578 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
7579 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
7580 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
7581
7582 2000-09-16 Gerd Moellmann <gerd@gnu.org>
7583
7584 * dispnew.c (update_window): Make sure to make desired rows
7585 current even if they are completely invisible at the top
7586 of a window.
7587
7588 2000-09-15 Gerd Moellmann <gerd@gnu.org>
7589
7590 * xfns.c (lookup_image): Build mask before applying an algorithm.
7591 Recognize algorithm `disabled'.
7592 (cross_disabled_images): New variable.
7593 (COLOR_INTENSITY): New macro.
7594 (x_detect_edges): Use COLOR_INTENSITY.
7595 (x_disable_image): New function.
7596 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
7597
7598 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
7599 disabled state, don't apply an image transformation algorithm if
7600 the user specified an image for the disabled state. Use
7601 `:algorithm disabled' for creating a disabled item's image if the
7602 user hasn't specified an image.
7603
7604 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
7605 allocation functions with the XPM lib.
7606 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
7607 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
7608 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
7609 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
7610 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
7611 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
7612 functions, if possible, because these handle color allocation
7613 failure more gracefully.
7614 (Fimage_mask_p): New function.
7615
7616 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
7617 (Qedge_detection, Qheuristic): New symbols.
7618 (syms_of_xfns): Initialize new symbols.
7619 (lookup_image): Handle `:mask X', `:algorithm emboss', and
7620 `algorithm (edge-detection ...)'.
7621 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
7622 (tiff_format, gif_format, gs_format): Add `:mask'.
7623 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
7624 (GIF_MASK, GS_MASK): New enumerators.
7625 (x_laplace_read_row, x_laplace_write_row): Functions removed.
7626 (emboss_matrix, laplace_matrix): New variables.
7627 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
7628 (x_edge_detection): New functions.
7629 (x_laplace): Rewritten in terms of x_detect_edges.
7630 (x_build_heuristic_mask): If image has a mask, free it.
7631
7632 2000-09-14 Andrew Innes <andrewi@gnu.org>
7633
7634 * makefile.w32-in: Revert to Unix line endings.
7635
7636 2000-09-14 Andrew Innes <andrewi@gnu.org>
7637
7638 * makefile.w32-in: Standardize indentation somewhat.
7639 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
7640 cater for differences between shells.
7641
7642 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
7643
7644 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7645
7646 * xterm.c (x_produce_glyphs): If the distance from the current
7647 position to the next tab stop is less than a canonical character
7648 width, use the tab stop after that.
7649
7650 2000-09-14 Dave Love <fx@gnu.org>
7651
7652 * buffer.c (alloc_buffer_text): Fix xmalloc call.
7653
7654 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7655
7656 * xdisp.c (handle_fontified_prop): While running fontification
7657 functions, bind `fontification-functions' and
7658 `after-change-functions' to nil.
7659
7660 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
7661 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
7662
7663 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
7664
7665 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
7666 USE_MMAP_FOR_BUFFERS.
7667
7668 * insdel.c (make_gap): Use enlarge_buffer_text.
7669
7670 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
7671 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
7672 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
7673 from former r_alloc_* functions in ralloc.c.
7674 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
7675 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
7676 (mmap_init) [REL_ALLOC_MMAP]: New function.
7677 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
7678 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
7679 BUFFER_FREE.
7680
7681 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
7682 (enlarge_buffer_text): Add prototype.
7683
7684 * ralloc.c: Remove everything having to do with the use of mmap.
7685
7686 2000-09-13 Gerd Moellmann <gerd@gnu.org>
7687
7688 * sound.c (Fplay_sound): Doc fix.
7689
7690 * keyboard.c: Avoid some more compiler warnings.
7691 (parse_tool_bar_item): Ignore cached key bindings.
7692
7693 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
7694 and allocation of Lisp data.
7695
7696 2000-09-12 Gerd Moellmann <gerd@gnu.org>
7697
7698 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
7699 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
7700 defaults first.
7701
7702 * lread.c (Fload): Put code checking for recursive loads in #if 0.
7703
7704 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
7705
7706 * ccl.c: Comment fixed.
7707 (MAX_MAP_SET_LEVEL): Increased to 30.
7708 (PUSH_MAPPING_STACK): Enclose with do-while block.
7709 (POP_MAPPING_STACK): Likewise.
7710 (stack_idx_of_map_multiple): New variable.
7711 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
7712 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
7713 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
7714 (ccl_driver) <CCL_MapSingle>: Likewise.
7715 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
7716 with the case where looking up process reaches to the end of
7717 map-set, and call CCL programs as the above change.
7718
7719 2000-09-11 Gerd Moellmann <gerd@gnu.org>
7720
7721 * xfns.c (png_load, jpeg_load): Declare some variables volatile
7722 that might be clobbered by longjmp.
7723 (check_x_display_info, x_decode_color, create_frame_xic)
7724 (Fx_display_backing_store, Fx_display_visual_class)
7725 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
7726
7727 * lread.c (init_lread): Set Vloads_in_progress to nil.
7728 (Fload): Show list of recursively loaded files, when signaling an
7729 error.
7730
7731 * lread.c (Vloads_in_progress): New variable.
7732 (record_load_unwind): New function.
7733 (Fload): Check for recursive loads.
7734 (syms_of_lread): Initialize Vloads_in_progress.
7735 (read_integer, read1): Avoid some compiler warnings.
7736
7737 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
7738 compiler warnings.
7739
7740 2000-09-11 Miles Bader <miles@gnu.org>
7741
7742 * editfns.c (Fbuffer_string): Doc fix.
7743
7744 2000-09-10 Gerd Moellmann <gerd@gnu.org>
7745
7746 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
7747
7748 2000-09-09 Ken Raeburn <raeburn@gnu.org>
7749
7750 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
7751 whether to include other header files.
7752
7753 2000-09-09 Gerd Moellmann <gerd@gnu.org>
7754
7755 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
7756 by Fmemq as a boolean.
7757
7758 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
7759
7760 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
7761
7762 2000-09-08 Gerd Moellmann <gerd@gnu.org>
7763
7764 * ralloc.c (mmap_fd): Remove initializer which can make it
7765 read-only in a dumped Emacs.
7766 (mmap_fd_1): New variable.
7767 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
7768 restore it from there.
7769 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
7770 unconditionally so that mmap_fd can be initialized there.
7771 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
7772 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
7773 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
7774
7775 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
7776
7777 * xdisp.c (dump_glyph_row): Fix printf format string.
7778 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
7779
7780 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
7781
7782 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
7783 inheritance.
7784
7785 * xdisp.c (try_window_id): When trying to locate cursor in
7786 unchanged rows at the top, handle the case that we can't find it.
7787
7788 * xterm.c (x_draw_glyphs): Handle case START and END are out
7789 of bounds more carefully.
7790
7791 2000-09-08 Dave Love <fx@gnu.org>
7792
7793 * s/sol2.h (REL_ALLOC_MMAP): Define.
7794 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
7795
7796 * ralloc.c: Don't include string.h (redundant).
7797 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
7798 [!MAP_ANON]: Include fcntl.h.
7799 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7800 (r_alloc, r_re_alloc, r_alloc_free)
7801 (mmap_enlarge, mmap_set_vars): Use it.
7802 (r_alloc_init_fd): New function.
7803 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7804 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7805 malloc type.
7806
7807 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7808 Remove vm-limit.o.
7809
7810 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7811 change to __NetBSD__.
7812
7813 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7814
7815 * search.c (compile_pattern): Check the multibyteness of cached
7816 string and PATTERN.
7817
7818 2000-09-08 Miles Bader <miles@gnu.org>
7819
7820 * xfaces.c (default_face_vector): Function removed.
7821 (Finternal_merge_in_global_face): Restore old global/local
7822 attribute override order. Use inline loop instead of calling
7823 default_face_vector.
7824
7825 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7826
7827 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7828 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7829 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7830 where necessary, in case POINTER_TYPE is `void'.
7831
7832 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7833
7834 * frame.c (make_terminal_frame): Initialize frame foreground and
7835 background colors to unspecified, for the initial instance of an
7836 MSDOS frame.
7837
7838 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7839
7840 * ralloc.c (mmap_find): Fix overlap computation.
7841 (mmap_enlarge): Compute nbytes before trying to find an
7842 overlapping region.
7843
7844 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7845 instead of `!='.
7846
7847 * lread.c (syms_of_lread): Change value of regexp
7848 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7849
7850 * xmenu.c (xdialog_show): When looking up the selection in
7851 menu_items, take `quote' boundaries into account; this corresponds
7852 to a nil ITEM in x-popup-dialog.
7853
7854 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7855
7856 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7857 not 0x81.
7858 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7859
7860 * coding.c (encode_coding_sjis_big5): Use translation table for
7861 encoding, not decoding. Fix the handling of latin-jisx0201.
7862 Check for the charset katakana-jisx0201 too.
7863 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7864 (detect_coding_sjis): Check the byte sequence more rigidly.
7865
7866 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7867
7868 * xfaces.c (Vparam_value_alist): New variable.
7869 (syms_of_xfaces): Initialize it.
7870 (Finternal_set_lisp_face_attribute): Avoid more consing.
7871
7872 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7873 specially.
7874 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7875 (Qbackground_mode): New variable.
7876 (syms_of_frame_1): Initialize Qbackground_mode.
7877
7878 * lisp.h (Qdisplay): Declare extern.
7879
7880 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7881 change face on all frames, and change the default for new frames.
7882
7883 2000-09-07 Dave Love <fx@gnu.org>
7884
7885 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
7886
7887 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7888
7889 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
7890
7891 * charset.c: Include composite.h
7892 (lisp_string_width): New function.
7893 (Fstring_width): Call lisp_string_width instead of strwidth.
7894
7895 * Makefile.in (charset.o): Depends on composite.h.
7896
7897 * process.c (read_process_output): Before inserting the decoded
7898 text in the buffer, adjust the multibyteness.
7899
7900 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7901
7902 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7903 buffer's text buffer is null, map new memory.
7904
7905 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7906 POINTER_TYPE and size_t.
7907 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7908 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7909 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7910 [REL_ALLOC_MMAP]: New macros.
7911 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7912 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7913 [REL_ALLOC_MMAP]: New functions.
7914
7915 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7916 before and after unexec.
7917
7918 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7919 text buffers if necessary.
7920
7921 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7922 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7923 in prototypes.
7924
7925 * config.in (HAVE_MMAP): Add #undef.
7926
7927 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7928
7929 * frame.c (Qdisplay_type): New variable.
7930 (syms_of_frame_1): Initialize it.
7931 (Fframe_parameter): New function that avoids consing.
7932 (syms_of_frame): Defsubr it.
7933
7934 * buffer.c (Fother_buffer): Consider buffers as invisible when
7935 they are displayed in a window on an invisible frame.
7936
7937 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7938 get-largest-window always return nil.
7939
7940 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7941
7942 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7943 variable; recognize Emacs 19 elc files.
7944
7945 2000-09-04 Miles Bader <miles@gnu.org>
7946
7947 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7948 before initially popping up the menu, so the menu doesn't flash
7949 when the face settings are significantly different from the defaults.
7950
7951 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7952
7953 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7954 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7955 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7956 (BIT_UNIBYTE): Remove.
7957 (re_match_2_internal): Delete corresponding code and streamline the
7958 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7959 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7960 (re_wctype_t): New type.
7961 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7962 (regex_compile): Use them and fix handling of overly long char classes.
7963
7964 2000-09-03 Andrew Innes <andrewi@gnu.org>
7965
7966 * makefile.w32-in: Change to DOS line endings.
7967
7968 * s/ms-w32.h (ORDINARY_LINK): New define.
7969
7970 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7971 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7972
7973 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7974 (distclean): Delete them here instead.
7975
7976 * w32proc.c (compare_env): Convert to uppercase for comparison,
7977 not lowercase, to match how the native Windows shell works.
7978
7979 2000-09-03 Jason Rumney <jasonr@gnu.org>
7980
7981 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7982 CVS changes the line-ends when checking in/out on DOS/Windows.
7983
7984 * makefile.nt (emacs): Do not change directory to run temacs, as
7985 the load-path is set relative to current directory.
7986
7987 2000-09-03 Miles Bader <miles@gnu.org>
7988
7989 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7990
7991 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7992
7993 * xdisp.c (redisplay_mode_lines): New function.
7994 (display_mode_lines): Return number of mode lines displayed.
7995 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7996 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7997
7998 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7999 string.h and strings.h.
8000 (index) [HAVE_INDEX]: Add prototype.
8001
8002 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
8003 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
8004
8005 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
8006 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
8007
8008 2000-09-01 Gerd Moellmann <gerd@gnu.org>
8009
8010 * lread.c (read1): Accept `?' as symbol constituent, for
8011 compatiblity with XEmacs.
8012
8013 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
8014
8015 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
8016 (struct re_pattern_buffer): Remove newline_anchor.
8017 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
8018 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
8019 (re_max_failures, fail_stack): Use size_t rather than unsigned.
8020 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
8021 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
8022 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
8023 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
8024 Get rid of references to newline_anchor.
8025 (regcomp): Allocate and precompute a fastmap.
8026
8027 2000-08-31 Gerd Moellmann <gerd@gnu.org>
8028
8029 * lread.c (openp): GCPRO local variable `filename'.
8030
8031 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
8032
8033 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
8034
8035 * regex.c: Merge some changes from GNU libc. Add prototypes.
8036 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
8037 Use memcmp and memcpy instead of bcopy and bcmp.
8038 (init_syntax_once): Use ISALNUM.
8039 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
8040 (REG_UNSET_VALUE): Remove. Use NULL instead.
8041 (REG_UNSET, re_match_2_internal): Use NULL.
8042 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
8043 New macros.
8044 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
8045 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
8046 (regex_compile): In handle_interval, return an error rather than try to
8047 unfetch the interval if we can't find the closing brace.
8048 Obey the RE_NO_GNU_OPS syntax bit.
8049 (TOLOWER): New macro.
8050 (regcomp): Use it.
8051 (regexec): Allocate regs.start and regs.end as one block.
8052
8053 2000-08-30 Gerd Moellmann <gerd@gnu.org>
8054
8055 * xdisp.c (echo_area_display): Check display_completed instead
8056 of calling detect_input_pending.
8057
8058 * dispnew.c (update_frame): Only set display_completed here; move
8059 the update_begin and update_end calls here from update_frame_1.
8060 (update_frame_1): Don't set display_completed here, don't call
8061 update_begin/update_end.
8062
8063 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
8064 instead of store_frame_param.
8065
8066 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8067
8068 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
8069 desired window matrix hasn't been displayed, use the current row
8070 instead. Make sure that only those frame rows are updated for
8071 which there exists a corresponding enabled desired row.
8072
8073 2000-08-29 Miles Bader <miles@gnu.org>
8074
8075 * xfaces.c (default_face_vector): New function.
8076 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
8077
8078 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8079
8080 * lread.c (openp): Prevent temporary string passed to
8081 Ffile_readable_p from being garbage collected.
8082
8083 2000-08-28 Dave Love <fx@gnu.org>
8084
8085 * keymap.c (store_in_keymap): Add `static' to declaration.
8086
8087 2000-08-28 Gerd Moellmann <gerd@gnu.org>
8088
8089 * emacs.c, callint.c, doc.c, editfns.c
8090 (toplevel) [HAVE_STRING_H]: Include string.h.
8091 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
8092 (index): Remove prototypes which might conflict with non-standard
8093 definitions of index/strchr.
8094
8095 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
8096 (rindex): Define only if !HAVE_RINDEX.
8097
8098 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
8099
8100 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
8101
8102 2000-08-28 Miles Bader <miles@gnu.org>
8103
8104 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
8105 made inconsistent by a font-related attribute in FROM.
8106 (merge_face_inheritance): Add function comment.
8107
8108 2000-08-28 Kenichi Handa <handa@etl.go.jp>
8109
8110 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
8111 the 4th arg (PREV_EVENT) Qt to suppress input method.
8112
8113 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
8114
8115 * regex.c: Indent cpp directives and remove parens after `defined'.
8116 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
8117 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
8118 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
8119 (re_compile_pattern): Use size_t for length.
8120 (init_syntax_once): Move to a better place.
8121 * regex.h: Merge changes from GNU libc. Indent cpp directives.
8122 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
8123
8124 * syntax.c (back_comment): Detect cases where a comment-starter is
8125 actually inside another comment as in: /* a // b */ c // d \n.
8126 Make it clear that `comstart_pos' is unused for nested comments.
8127
8128 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
8129 (KEYMAPP): New macro.
8130 (Fkeymap_parent, Fset_keymap_parent): Use it.
8131 (fix_submap_inheritance): Mark it static.
8132 (define_as_prefix, describe_buffer_bindings, describe_command)
8133 (describe_translation, describe_map): Complete prototypes.
8134
8135 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
8136
8137 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
8138 to better match the key-lookup behavior.
8139
8140 2000-08-27 Gerd Moellmann <gerd@gnu.org>
8141
8142 * xfaces.c (lface_fully_specified_p): Handle :inherit.
8143 (Finternal_set_lisp_face_attribute): Fix typo in error message.
8144
8145 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
8146
8147 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
8148 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
8149 (xterm.o): Depend on coding.h
8150
8151 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8152
8153 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
8154 the corresponding '#endif'.
8155
8156 2000-08-26 Miles Bader <miles@gnu.org>
8157
8158 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
8159 * xfaces.c (QCinherit): New variable.
8160 (syms_of_xfaces): Initialize it.
8161 (LFACE_INHERIT): New macro.
8162 (Finternal_get_lisp_face_attribute)
8163 (merge_face_vector_with_property)
8164 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
8165 (check_lface_attrs): Allow new types of face height. Check
8166 inherit attribute.
8167 (CYCLE_CHECK): New macro.
8168 (merge_face_inheritance): New function.
8169 (merge_face_vectors): Merge inherited faces too. Add F and
8170 CYCLE_CHECK arguments.
8171 (merge_face_vector_with_property, Finternal_merge_in_global_face)
8172 (lookup_named_face, lookup_derived_face, realize_named_face)
8173 (face_at_string_position, face_at_buffer_position): Supply
8174 new F and CYCLE_CHECK arguments to merge_face_vectors.
8175 (merge_face_heights): New function.
8176 (merge_face_vectors, merge_face_vector_with_property)
8177 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
8178 handle relative face heights.
8179 (lface_same_font_attributes_p): Compare heights using EQ.
8180
8181 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8182
8183 * charset.c (char_to_string): Check the character validity.
8184 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
8185
8186 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
8187
8188 * regex.c (PUSH_FAILURE_COUNT): New macro.
8189 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
8190 Handle popping of a register's or a counter's data.
8191 (POP_FAILURE_POINT): Use the new name.
8192 (re_match_2_internal): Push counter data on the stack for succeed_n,
8193 jump_n and set_number_at and remove misleading dead code in succeed_n.
8194
8195 2000-08-25 Gerd Moellmann <gerd@gnu.org>
8196
8197 * xdisp.c (redisplay_internal): If considering all windows on all
8198 frames, update the display for each frame as soon as possible,
8199 instead of first building all desired matrices for all frames, and
8200 then updating them all.
8201 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
8202
8203 2000-08-24 Gerd Moellmann <gerd@gnu.org>
8204
8205 * bytecode.c (mark_byte_stack): Add a comment.
8206
8207 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
8208 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
8209 a graphical frame.
8210
8211 2000-08-24 Kenichi Handa <handa@etl.go.jp>
8212
8213 * minibuf.c (do_completion): Always use compare-string, not
8214 string-equal because the latter doesn't pay attention to
8215 multibyteness of strings.
8216
8217 * process.c (create_process): Don't setup raw-text coding here.
8218 (Fopen_network_stream): Don't set coding->src_multibyte and
8219 coding->dst_multibyte here.
8220 (read_process_output): For process filter, return unibyte string
8221 if default-enable-multibyte-characters is nil.
8222 (send_process): If OBJECT is multibyte text, be sure to encoded it
8223 by the specified coding system for the process. Otherwise, setup
8224 raw-text coding.
8225 (init_process): Don't initialize default-process-coding-system here.
8226
8227 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
8228
8229 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
8230 <scroll-down-aggressively>: Likewise.
8231
8232 2000-08-23 Kenichi Handa <handa@etl.go.jp>
8233
8234 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
8235 zero. Set coding->produced_char correctly.
8236
8237 2000-08-22 Andrew Innes <andrewi@gnu.org>
8238
8239 * makefile.w32-in: New file.
8240
8241 * unexw32.c (unexec): Ignore old_name, and use the actual location
8242 of the current executable instead. Base new_name on this.
8243
8244 * w32proc.c (create_child): Remove reference to security
8245 descriptor, which isn't needed and doesn't compile with mingw32.
8246
8247 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8248 up dllimport attributes.
8249 (x_update_window_end): Update prototype.
8250
8251 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
8252 extern, which screws up dllimport attributes.
8253
8254 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8255 up dllimport attributes.
8256
8257 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
8258 screws up dllimport attributes.
8259
8260 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8261 up dllimport attributes.
8262 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
8263 screws up dllimport attributes.
8264
8265 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8266 up dllimport attributes.
8267
8268 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
8269 screws up dllimport attributes.
8270
8271 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
8272 screws up dllimport attributes.
8273
8274 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8275 up dllimport attributes.
8276
8277 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
8278 unnecessary extern, which screws up dllimport attributes.
8279 (main): Ditto.
8280
8281 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8282 up dllimport attributes.
8283
8284 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
8285 unnecessary extern, which screws up dllimport attributes.
8286
8287 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
8288 screws up dllimport attributes.
8289
8290 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8291 up dllimport attributes.
8292
8293 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
8294
8295 * w32bdf.c (search_file_line):
8296 (set_bdf_font_info):
8297 (seek_char):
8298 (w32_get_bdf_glyph):
8299 (w32_BDF_to_x_font): Fix compile warnings.
8300
8301 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
8302
8303 * w32select.c: Include keyboard.h before frame.h.
8304
8305 * w32fns.c (max): Define macro.
8306 (JOHAB_CHARSET): Define if not known.
8307 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
8308 (Fx_show_tip): Synch with X version.
8309
8310 * w32xfns.c: Include keyboard.h before frame.h.
8311
8312 * w32fns.c: Include keyboard.h before frame.h.
8313
8314 * w32term.c: Include keyboard.h before frame.h.
8315
8316 * fontset.c: Include keyboard.h before frame.h.
8317
8318 * w32inevt.c: Include keyboard.h before frame.h.
8319 (MOUSE_MOVED): Define if not known.
8320
8321 * minibuf.c: Include keyboard.h before frame.h.
8322
8323 * keyboard.c: Include keyboard.h before frame.h.
8324
8325 * indent.c: Include keyboard.h before frame.h.
8326
8327 * dispnew.c: Include keyboard.h before frame.h.
8328
8329 * buffer.c: Include keyboard.h before frame.h.
8330
8331 * alloc.c: Include keyboard.h before frame.h.
8332
8333 * print.c: Include keyboard.h before frame.h.
8334
8335 * process.c: Include keyboard.h before frame.h.
8336
8337 * scroll.c: Include keyboard.h before frame.h.
8338
8339 * sysdep.c: Include keyboard.h before frame.h.
8340
8341 * term.c: Include keyboard.h before frame.h.
8342
8343 * window.c: Include keyboard.h before frame.h.
8344
8345 * xdisp.c: Include keyboard.h before frame.h.
8346 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
8347
8348 * frame.c: Include keyboard.h before frame.h.
8349
8350 * w32heap.h: Undefine min, max.
8351
8352 * w32gui.h: Undefine min, max.
8353
8354 * unexw32.c: Change PUCHAR to PCHAR.
8355 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
8356 (relocate_offset):
8357 (get_section_info):
8358 (copy_executable_and_dump_data): Remove unnecessary static defs.
8359 (copy_executable_and_dump_data): Fix compile warnings.
8360
8361 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
8362
8363 * w32console.c (min): Define macro.
8364 (clear_frame, write_glyphs): Fix compile warning.
8365
8366 * w32proc.c (compare_env):
8367 (find_child_console): Fix compile warning.
8368
8369 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
8370 sys_errlist instead of _sys_errlist.
8371 (get_emacs_configuration_options): New function.
8372
8373 * s/ms-w32.h (sys_nerr): Provide default definition.
8374 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
8375 name with _ prepended.
8376 (NSIG): Define if not known.
8377 (get_emacs_configuration): Provide extern declaration.
8378 (get_emacs_configuration_options): Provide extern declaration.
8379 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
8380
8381 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
8382 (map_w32_filename):
8383 (read_unc_volume): Fix compile warning.
8384
8385 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
8386 definitions from being used.
8387
8388 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
8389
8390 * w32.c (unc_volume_file_attributes):
8391 (open_unc_volume): Make arg const.
8392
8393 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
8394 (read_input_waiting): Remove excess parameter.
8395
8396 * w32.c (init_environment): Call _access.
8397 (check_windows_init_file): Call _close.
8398 (init_user_info): Call _putenv.
8399 (init_environment): Call _putenv and _strdup.
8400 (init_ntproc): Reset volume info cache on startup.
8401
8402 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
8403 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
8404 cannot override the CRT malloc.
8405
8406 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
8407 (LINK_FLAGS): Append to original value of LINK_FLAGS.
8408
8409 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
8410 unless we are linking with a static CRT.
8411 (RVA_TO_PTR): Cast result to unsigned char*.
8412
8413 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
8414 (add_volume_info): Use xstrdup.
8415
8416 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
8417
8418 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
8419 (do_completion, Fminibuffer_complete_word): Use it.
8420 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
8421 var so it can take non-boolean values.
8422
8423 2000-08-21 Gerd Moellmann <gerd@gnu.org>
8424
8425 * editfns.c (find_field): Formatting changes.
8426 (toplevel): Some old-style function forward declarations
8427 changed to prototypes, some new protypes added, some functions
8428 made static.
8429
8430 * lisp.h (set_time_zone_rule): Add prototype.
8431 (use_dialog_box): External declaration.
8432
8433 * keyboard.c (gen_help_event): Add parameter SIZE.
8434 (kbd_buffer_events_waiting): Slightly rewritten.
8435 (clear_event): New function.
8436 (kbd_buffer_get_event): Use it, and clear the input_events of
8437 HELP_EVENTs.
8438 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
8439 don't fill the newly created array with nils.
8440 (toplevel): Convert some old-style function forward declarations
8441 to prototypes.
8442
8443 * keyboard.h (gen_help_event): Change prototype.
8444
8445 * xterm.c (XTread_socket): Change calls to gen_help_event.
8446
8447 * w32term.c (w32_read_socket): Change calls to gen_help_event.
8448
8449 * eval.c (Fmacroexpand): Doc fix.
8450
8451 2000-08-20 Jason Rumney <jasonr@gnu.org>
8452
8453 * w32term.h (x_display_info_for_display): Remove as this function
8454 does not exist on W32.
8455
8456 * w32term.c (help_echo_window): New variable.
8457 (syms_of_w32term): staticpro it.
8458 (note_mode_line_highlight): Set it.
8459 (XTextExtents16): Removed as there is no equivalent on W32.
8460 (x_compute_glyph_string_overhangs): Incomplete body removed, as
8461 the X way of doing this will not work for W32.
8462 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
8463 (x_draw_image_foreground): Avoid drawing outside of the clip area
8464 when image doesn't have a mask.
8465 (note_mouse_highlight): Process overlays in the right order of
8466 priority. Set help_echo_window.
8467 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
8468 because that's more visible for large images.
8469
8470 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
8471 name to single_keymap_panes.
8472 (w32_menu_show): Set wv->title when dealing with titles.
8473 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
8474
8475 2000-08-21 Miles Bader <miles@gnu.org>
8476
8477 * minibuf.c (do_completion): Try again if we rewrite the input
8478 string, but no completion was done, so that any completion message
8479 will be correct.
8480
8481 2000-08-20 Gerd Moellmann <gerd@gnu.org>
8482
8483 * xfaces.c (lface_equal_p): Compare strings differently.
8484 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
8485 (realize_tty_face): Use them.
8486 (syms_of_xfaces): Initialize new variables.
8487 (map_tty_color): New function, extracted from realize_tty_face.
8488 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
8489 foreground or background color, store the new color name in the
8490 realized face; previous code trying to do this had no effect.
8491 (realize_tty_face): Use map_tty_color.
8492 (Fclear_face_cache): Set face_change_count and ensure thorough
8493 redisplay.
8494
8495 2000-08-19 Gerd Moellmann <gerd@gnu.org>
8496
8497 * undo.c (record_first_change, record_marker_adjustment): Don't
8498 use XBUFFER on last_undo_buffer which might not be a buffer.
8499
8500 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8501
8502 * coding.c (decode_coding_string): Set members consumed,
8503 consumed_char, produced, produced_char of *coding correctly. If
8504 decode_coding doesn't consume any byte, don't try anymore.
8505 (encode_coding_string): Likewise.
8506
8507 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8508
8509 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
8510 conditional have void type, for Standard C compilers.
8511
8512 * xdisp.c (redisplay_internal): Compare windows for equality with
8513 EQ, instead of applying XWINDOW to something that might not
8514 be a window.
8515
8516 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8517
8518 * fontset.c (Finternal_char_font): Search only the selected frame
8519 for a window of the current buffer.
8520
8521 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8522
8523 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
8524 Lisp_Objects.
8525
8526 * keyboard.c (kbd_buffer_get_event): Handle the case that the
8527 second half of a HELP_EVENT is found at the start of kbd_buffer.
8528
8529 2000-08-18 Miles Bader <miles@gnu.org>
8530
8531 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
8532
8533 * editfns.c (save_restriction_save): Rewrite to use markers.
8534 (save_restriction_restore): Rewrite to understand new form of data
8535 saved by save_restriction_save.
8536 (Fsave_restriction): Remove cautionary note in doc-string.
8537
8538 2000-08-17 Gerd Moellmann <gerd@gnu.org>
8539
8540 * fileio.c (build_annotations): Add a comment explaining the
8541 return value of format-annotate-function. Replace a spurious call
8542 to Flength with a CONSP test. Call format-annotate-function with
8543 a fifth arg specifying how many times the function is been called
8544 in a row, to let it choose temporary buffers appropriately.
8545
8546 2000-08-17 Dave Love <fx@gnu.org>
8547
8548 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
8549 declare make_temp_name twice.
8550
8551 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
8552 (unreadpure): Give it an arg.
8553
8554 * unexalpha.c: Prototype fatal_unexec, mark_x,
8555 update_dynamic_symbols. Declare unexec as void.
8556
8557 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
8558 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
8559
8560 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
8561 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
8562
8563 * alloca.c: Use #error.
8564 [POINTER_TYPE]: Use it.
8565
8566 * eval.c (Fdefvar): Doc fix.
8567
8568 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
8569 INITIALIZE_INTERVAL.
8570
8571 * buffer.h: Avoid DECLARE_INTERVALS.
8572
8573 * config.in: Add size_t.
8574
8575 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
8576
8577 * w16select.c (set_clipboard_data): If there's not enough memory
8578 to put text into clipboard, return 1, as Fw16_set_clipboard_data
8579 expects. In case of other failures, return 3.
8580 (system_error_msg): New error message.
8581 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
8582 system_error_msg.
8583
8584 2000-08-16 Gerd Moellmann <gerd@gnu.org>
8585
8586 * term.c (write_glyphs): Also turn off inverse video after turning
8587 off other appearances in case TS_exit_attribute_mode is not equal
8588 to TS_end_standout_mode.
8589 (insert_glyphs): Turn inverse video on/off for each run of glyphs
8590 with the same face.
8591 (turn_off_face): Reset standout_mode only if
8592 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
8593 is equal to TS_end_standout_mode.
8594
8595 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8596
8597 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
8598 sequence at the end of the source block.
8599
8600 * ccl.c (Fccl_program_p): Docstring modified.
8601 (Fccl_execute): Likewise.
8602 (Fccl_execute_on_string): Likewise.
8603
8604 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
8605
8606 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
8607
8608 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8609
8610 The following changes are mainly to fix bugs of
8611 encode/decode-coding-string failing if encoding/decoding return
8612 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
8613 variable conversion_buffer.
8614
8615 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
8616 decrement dst_end to avoid buffer overflow in the later call of
8617 string_as_multibyte
8618
8619 * coding.h (conversion_buffer_size, conversion_buffer)
8620 (get_conversion_buffer): Extern deleted.
8621
8622 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
8623 (conversion_buffer, conversion_buffer_size): Variables deleted.
8624 (get_conversion_buffer): Function deleted.
8625 (struct conversion_buffer): New structure.
8626 (MAX_ALLOCA): New macro.
8627 (allocate_conversion_buffer): New macro.
8628 (extend_conversion_buffer, free_conversion_buffer): New functions.
8629 (ccl_coding_driver): Set coding->result.
8630 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
8631 this is the last block of source.
8632 (encode_coding): Likewise. Handle the source block as the last
8633 one only when the whole source text is consumed.
8634 (decode_coding_string): Handle the case that the output buffer is
8635 too small to decode the whole source text. Use
8636 allocate_conversion_buffer, extend_conversion_buffer and
8637 free_conversion_buffer, not get_conversion_buffer.
8638 (encode_coding_string): Likewise.
8639 (init_coding): Function deleted.
8640 (init_coding_once): Delete code to initialize conversion_buffer_size.
8641
8642 * emacs.c (main): Don't call init_coding.
8643
8644 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
8645
8646 * term.c (write_glyphs): Use a locally declared conversion_buffer.
8647 (insert_glyphs): Likewise.
8648
8649 * w32console.c (write_glyphs): Use a locally declared
8650 conversion_buffer.
8651
8652 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
8653
8654 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
8655 member of display_info is NULL.
8656
8657 2000-08-15 Gerd Moellmann <gerd@gnu.org>
8658
8659 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
8660
8661 * term.c (turn_off_face): Reset standout_mode when resetting
8662 appearances with capability `me'.
8663 (write_glyphs): Switch on inverse video before each face change.
8664
8665 2000-08-14 Dave Love <fx@gnu.org>
8666
8667 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
8668 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
8669 (lisp_free): Declare and make static.
8670
8671 * window.c: Fix embedded comment.
8672 (syms_of_window): Fix doc string.
8673
8674 2000-08-14 Gerd Moellmann <gerd@gnu.org>
8675
8676 * keymap.c (push_key_description): If C without modifiers is < 32,
8677 make sure to print `C-' before `M-', like in the manual.
8678
8679 2000-08-11 Gerd Moellmann <gerd@gnu.org>
8680
8681 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
8682 since they aren't relocated anymore.
8683 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
8684
8685 * xdisp.c (try_cursor_movement): Fix handling of cursor in
8686 partially visible line which is smaller than the window's height.
8687
8688 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8689
8690 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
8691 the multibyte form of eight-bit-control characters.
8692 (Fccl_execute_on_string): Initialize ccl->multibyte.
8693
8694 * ccl.h (struct ccl_program): New member multibyte.
8695
8696 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
8697
8698 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8699
8700 * regex.c (regex_compile) <normal_char>: Pay attention to
8701 multibyteness.
8702 (analyse_first) <exactn>: Setup fastmap correctly for
8703 eight-bit-control characters.
8704
8705 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8706
8707 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
8708
8709 * keyboard.c (make_lispy_event): Handle the new event type
8710 multibyte_char_keystroke.
8711
8712 * xterm.c: Include coding.h.
8713 (XTread_socket): Work around a bug of XmbLookupString. If the
8714 input is from XIM, decode it according to the current locale. In
8715 that case, generate multibyte_char_keystroke events.
8716
8717 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8718
8719 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
8720 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
8721
8722 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8723
8724 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
8725 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
8726 (move_it_in_display_line_to): Record iterator's ascent and descent
8727 before producing glyphs, and restore them when we know the glyph
8728 doesn't fit on the line.
8729 (move_it_to): Restructured so that it's easier to debug. If
8730 moving to a vpos, and not moving to an x or character position,
8731 stop as soon as the specified vpos is reached; don't move further
8732 into that line because that might change the computed line height.
8733 (try_cursor_movement): New function, extracted from the cursor
8734 movement branch of redisplay_window. If ending on a partially
8735 visible line, don't try to scroll if the cursor line is taller
8736 than the window.
8737 (redisplay_window): Use try_cursor_movement.
8738
8739 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
8740 because that function doesn't cope with variable-height lines.
8741
8742 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
8743 box cursor because that's better visible for large images.
8744
8745 2000-08-10 Miles Bader <miles@gnu.org>
8746
8747 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
8748
8749 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8750
8751 * xdisp.c (Vmessages_buffer_name): New variable.
8752 (message_dolog): Use it.
8753 (syms_of_xdisp): Initialize it.
8754
8755 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
8756
8757 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
8758 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
8759 redundant now that keyboard.h is included.
8760
8761 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
8762
8763 * keyboard.c (kbd_buffer_events_waiting): New function.
8764
8765 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
8766
8767 * msdos.c: Include keyboard.h.
8768 (XMenuActivate): Empty no_event events from the event buffer. If
8769 no events are left after that, call clear_input_pending.
8770 (mouse_clear_clicks): New function, code moved from mouse_init.
8771 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
8772 mouse driver to ``forget'' any past clicks.
8773
8774 * Makefile.in (msdos.o): Depend on keyboard.h.
8775
8776 2000-08-09 Gerd Moellmann <gerd@gnu.org>
8777
8778 * lisp.h (input_pending): External declaration.
8779
8780 * dispextern.h (Qredisplay_dont_pause): Declare extern.
8781
8782 * xdisp.c (echo_area_display): Display thoroughly if input is
8783 pending. Bind redisplay-dont-pause to t during the redisplay.
8784 in case input is pending.
8785
8786 * dispnew.c (Qredisplay_dont_pause): New variable.
8787 (syms_of_display): Initialize and staticpro it.
8788 (update_frame_1): Don't interrupt the display for pending input if
8789 redisplay_dont_pause is set.
8790
8791 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
8792
8793 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8794
8795 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
8796
8797 * callproc.c (Fcall_process): Terminate the unwind-protect around
8798 the post-read-conversion of coding system.
8799
8800 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8801 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8802 * buffer.h (overlays_at): Update prototype.
8803 * xdisp.c (next_overlay_change): Update call to overlays_at.
8804 * xfaces.c (face_at_buffer_position): Likewise.
8805 * textprop.c (Fget_char_property): Likewise.
8806 * xterm.c (note_mouse_highlight): Likewise.
8807
8808 * minibuf.c (do_completion): Don't consider a simple change of
8809 case as `completion'.
8810
8811 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8812
8813 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8814 * undo.c (record_delete): Make sure last_point_position_buffer is
8815 a buffer before comparing pointers.
8816
8817 * coding.h (decode_coding_string): Declare.
8818
8819 * intervals.h (Fprevious_single_char_property_change): Declare.
8820
8821 * textprop.c (Fprevious_single_char_property_change): Don't do
8822 arithmetic directly on lisp objects.
8823
8824 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8825
8826 * keyboard.h (menu_item_eval_property): Declare.
8827
8828 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8829 reuse as buffer name, instead of recreating (and discarding) every
8830 time a message is logged.
8831 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8832 (current_message_1, truncate_message_1, set_message_1)
8833 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8834 (current_message, truncate_echo_area, display_echo_area)
8835 (resize_echo_area_axactly): Changed calls.
8836
8837 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8838 Lisp object.
8839 (Ffind_coding_systems_region_internal): First argument to Fappend
8840 must be an integer, not a Lisp object.
8841
8842 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8843
8844 * charset.c (Fchar_width): Doc fix.
8845
8846 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8847
8848 * charset.c (Fstring_width): Doc fix.
8849
8850 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8851
8852 * xdisp.c (start_display): When starting display on a continuation
8853 line, clear ascent and descent members of the iterator structure;
8854 the height of the continued line does not affect the height of the
8855 continuation line.
8856 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8857 line taller than the window.
8858 (redisplay_window) <forced window start>: Handle case that the
8859 middle of the window is not found in any row.
8860 (dump_glyph_row): Show more information.
8861 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8862 first text line in a glyph matrix.
8863
8864 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8865 of the clip area when image doesn't have a mask.
8866
8867 * fns.c (sweep_weak_table): Fix survival conditions for
8868 key-or-value and key-and-value weakness.
8869
8870 * .gdbinit (xhashtable): New command.
8871
8872 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8873 tables out of the list of all weak hash tables.
8874
8875 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8876 a new buffer is created, make sure echo_area_buffer[] references
8877 the new buffer.
8878
8879 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8880
8881 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8882 the doc string.
8883
8884 2000-08-07 Kenichi Handa <handa@etl.go.jp>
8885
8886 * syntax.c (skip_chars): Fix previous change. Make the handling
8887 of unibyte string consistent with that of regex search.
8888
8889 2000-08-05 Gerd Moellmann <gerd@gnu.org>
8890
8891 * xmenu.c (popup_get_selection): Use xfree instead of free.
8892
8893 * fileio.c (Finsert_file_contents): Use xfree instead of free.
8894
8895 * editfns.c (Ftranspose_regions): Use xfree instead of free.
8896
8897 * callproc.c (child_setup): Use xfree instead of free.
8898
8899 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8900 instead of malloc.
8901 (run_mac_command, closedir): Use `xfree' instead of `free'.
8902
8903 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8904
8905 * eval.c (error): Use xfree instead of free.
8906
8907 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8908
8909 * fns.c: Replace `illegal' with `invalid'.
8910 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8911
8912 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8913
8914 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8915 conversion.
8916
8917 2000-08-04 Noah Friedman <friedman@splode.com>
8918
8919 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8920 docstring.
8921
8922 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8923
8924 * syntax.c (skip_chars): Fix typo in error message.
8925
8926 2000-08-04 Andreas Schwab <schwab@suse.de>
8927
8928 * m/ia64.h: Moved from s/ia64.h.
8929
8930 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8931
8932 * process.c (read_process_output): Big simplification. Handle
8933 composition and post-read-conversion of coding system correctly.
8934 (send_process): Handle composition correctly.
8935
8936 * callproc.c (Fcall_process): Handle post-read-conversion of
8937 coding system if any.
8938
8939 * coding.c (decode_coding_iso2022): More strict check for handling
8940 single shifting.
8941 (coding_restore_composition): Pay attention to the case that
8942 cmp_data is not set properly (because of invalid code in the
8943 source text).
8944 (run_pre_post_conversion_on_str): Include text properties in the
8945 resulting string.
8946 (decode_coding_string): Set members of coding correctly.
8947
8948 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8949
8950 * s/ia64.h: New file.
8951
8952 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8953 Use NULL instead of 0 at the end of variable argument list of
8954 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8955 sizeof (int) < sizeof (void *).
8956
8957 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8958 of variable argument lists of XtVaGetValues and XtVaSetValues.
8959
8960 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8961 variable argument lists of XtVaGetValues and XtVaSetValues.
8962
8963 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8964
8965 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8966 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8967
8968 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8969 prototype.
8970
8971 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8972 in call to Fsingle_key_description.
8973
8974 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8975 Callers changed.
8976
8977 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8978
8979 * window.c (display_buffer_reuse_frames): New variable.
8980 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8981 frames displaying BUFFER.
8982 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8983
8984 2000-08-01 Miles Bader <miles@gnu.org>
8985
8986 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8987 when to constrain NEW_POS (they were pretty screwed up before).
8988
8989 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8990
8991 * msdos.c (run_msdos_command): Save and restore the master
8992 environment, for the case that child_setup signals an error.
8993 When mirroring slashes in DOS shell commands, don't fail when
8994 argv[2] has embedded blanks.
8995 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8996 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8997 (dos_ttraw): Call mouse_setup_buttons.
8998
8999 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
9000 using alloca; free it after run_msdos_command returns.
9001
9002 2000-07-27 Dave Love <fx@gnu.org>
9003
9004 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
9005 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
9006
9007 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
9008
9009 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
9010
9011 * editfns.c (lisp_time_argument): Fix last change.
9012
9013 2000-07-27 Gerd Moellmann <gerd@gnu.org>
9014
9015 * fns.c (Fdelete): Make it work on vectors and strings in addition
9016 to lists.
9017
9018 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
9019 (syms_of_fns): Initialize new variables.
9020 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
9021 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
9022 weakness, with t meaning the same as `key-and-value'.
9023
9024 2000-07-27 Kenichi Handa <handa@etl.go.jp>
9025
9026 * coding.h (struct coding_system): Member safe_charset deleted.
9027
9028 * coding.c (Qsafe_charsets): This variable deleted.
9029 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
9030 New variables.
9031 (coding_safe_chars): New function.
9032 (CODING_SAFE_CHAR_P): New macro.
9033 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
9034 checking safe_charsets member of the coding system. Caller changed.
9035 (detect_coding_iso2022): New local variable safe_chars.
9036 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
9037 safe_charsets member of the coding system.
9038 (decode_coding_iso2022): New local variable safe_chars.
9039 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
9040 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
9041 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
9042 (ENCODE_UNSAFE_CHARACTER): New macro.
9043 (encode_coding_iso2022): New local variable safe_chars. Check
9044 unsafe chars.
9045 (setup_coding_system): Delete the code to initialize
9046 coding->safe_charses
9047 (intersection, find_safe_codings): New functions.
9048 (Ffind_coding_systems_region_internal): New function.
9049 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
9050 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
9051 variable and initialize it.
9052
9053 * fns.c (char_table_ref_and_index): New function.
9054
9055 * lisp.h (char_table_ref_and_index): Add prototype.
9056
9057 2000-07-26 Sam Steingold <sds@gnu.org>
9058
9059 * editfns.c (lisp_time_argument): Added third argument `usec'.
9060 (Ffloat_time): New built-in Lisp function.
9061
9062 2000-07-26 Gerd Moellmann <gerd@gnu.org>
9063
9064 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
9065 for the character code.
9066
9067 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
9068 GNU/Linux.
9069
9070 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
9071 if called for a popup menu.
9072 (xmenu_show): Store help string in widget values.
9073
9074 2000-07-26 Dave Love <fx@gnu.org>
9075
9076 * syswait.h: Move some definitions.
9077 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
9078 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
9079 perspicuous definitions.
9080 (WTERMSIG): Fix bit pattern used.
9081
9082 2000-07-26 Kenichi Handa <handa@etl.go.jp>
9083
9084 * print.c (print_object): If vector printing is truncated, print
9085 "..." to indicate it as well as the case of list printing.
9086
9087 2000-07-25 Gerd Moellmann <gerd@gnu.org>
9088
9089 * xdisp.c (next_element_from_display_vector): Improve comments.
9090
9091 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
9092 for the character code, and the rest for the face id as in 20.x.
9093 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
9094
9095 * window.c (window_display_table): Cleaned up.
9096
9097 * syntax.c (Fforward_word): Add last arg nil in call of
9098 Fconstrain_to_field.
9099
9100 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
9101
9102 * fileio.c (Frename_file) [DOS_NT]: If the file names are
9103 identical but for the letter-case, don't call
9104 barf_or_query_if_file_exists.
9105
9106 2000-07-25 Miles Bader <miles@gnu.org>
9107
9108 * editfns.c (find_field): Honor special `boundary' fields.
9109 (Qboundary): New variables.
9110 (syms_of_editfns): Initialize Qboundary.
9111 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
9112 Use scan_buffer instead of find_before_next_newline, because it
9113 allows us to detect the boundary case where there's a newline at
9114 the search limit.
9115 * lisp.h (Fconstrain_to_field): Update external declaration.
9116
9117 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9118
9119 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
9120 if that is nil.
9121
9122 2000-07-24 Dave Love <fx@gnu.org>
9123
9124 * s/sunos4-0.h, s/sol2.h:
9125 (LIBS_TERMCAP): Move from m/sparc.h.
9126
9127 * m/sparc.h (TERMINFO): Moved to system files (probably only
9128 relevant for sunos4 judging by its vintage).
9129 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
9130 __arch64__.
9131
9132 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
9133
9134 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
9135 name to single_keymap_panes.
9136
9137 2000-07-24 Andreas Schwab <schwab@suse.de>
9138
9139 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
9140
9141 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9142
9143 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
9144 parameters instead of using int parameters. Expect FN to accept
9145 EMACS_INT parameters.
9146 (display_echo_area, resize_echo_area_axactly, current_message)
9147 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
9148 with new argument list.
9149 (resize_mini_window_1): New callback function.
9150 (current_message_1, truncate_message_1, set_message_1): Change
9151 parameter lists to the new format expected by with_echo_area_buffer.
9152
9153 2000-07-24 Kenichi Handa <handa@etl.go.jp>
9154
9155 * fontset.c (fontset_ref): Remove INLINE declaration.
9156 (fontset_ref_via_base): Likewise.
9157 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
9158 to downcase.
9159
9160 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
9161
9162 * msdos.c (IT_note_mouse_highlight): Process overlays in the
9163 correct order of priority. If help echo was found in an overlay,
9164 use that overlay as the object in which the help echo was found.
9165
9166 2000-07-22 Miles Bader <miles@gnu.org>
9167
9168 * textprop.c (Fprevious_single_char_property_change): The initial
9169 property value should be from the position preceding POSITION, not
9170 following it.
9171
9172 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
9173
9174 * coding.c (syms_of_coding): Doc fix for
9175 inhibit-iso-escape-detection.
9176
9177 2000-07-21 Gerd Moellmann <gerd@gnu.org>
9178
9179 * xterm.c (note_mouse_highlight): Process overlays in the right
9180 order of priority.
9181
9182 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
9183
9184 * xterm.c (note_mouse_highlight): If help-echo was found in an
9185 overlay, use that overlay as the object in which the help was found.
9186
9187 * window.c (foreach_window_1): Fix typo reversing an if-condition.
9188
9189 * window.c (foreach_window): Instead of a fake variable argument
9190 list, take one USER_DATA argument.
9191 (foreach_window_1): Likewise, and call callback functions with two
9192 args, the window and USER_DATA.
9193 (struct check_window_data): New struct.
9194 (check_window_containing): Use it.
9195 (window_from_coordinates): Set up a struct check_window_data for
9196 foreach_window.
9197 (add_window_to_list, freeze_window_start): Change parameters
9198 according to new calling convention.
9199
9200 * window.h (foreach_window): Change prototype.
9201
9202 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
9203
9204 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
9205
9206 * xmenu.c (menu_help_callback): Call show_help_echo with
9207 additional arguments OBJECT and POS.
9208
9209 2000-07-21 Kenichi Handa <handa@etl.go.jp>
9210
9211 * data.c (Faset): Allow storing any multibyte character in a
9212 string. Convert unibyte string to multibyte if necessary.
9213
9214 * xfns.c (x_encode_text): New function.
9215 (x_set_name): Use x_encode_text.
9216 (x_set_title): Likewise.
9217
9218 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
9219
9220 * xterm.h (x_encode_text): Add prototype.
9221
9222 2000-07-20 Dave Love <fx@gnu.org>
9223
9224 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
9225 xfree, not free.
9226
9227 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
9228
9229 * msdos.c (help_echo_window): New variable.
9230 (syms_of_msdos): Initialize and staticpro it.
9231 (IT_note_mode_line_highlight): Set help_echo_window.
9232 (IT_note_mouse_highlight): Ditto.
9233 (dos_rawgetc): Store help_echo_window in the second event produced
9234 for HELP_EVENTs.
9235
9236 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
9237 Record the object that generated the help echo and the position of
9238 that object in help_echo_object and help_echo_pos. Record that
9239 some glyphs in a row are displayed in mouse-face.
9240 (IT_update_begin): Don't clear mouse highlight unless one of the
9241 enabled glyph rows is marked as being displayed in mouse-face.
9242 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
9243 and position recorded in help_echo_object and help_echo_pos to the
9244 event queue.
9245 (IT_menu_display): Accept a new argument PN: the pane number of
9246 the current menu pane. Record the pane number and the item
9247 number of the item which has associated help string.
9248 (XMenuActivate): Update the prototype for help_callback in
9249 function declaration. Call IT_menu_display with the current menu
9250 pane number as an additional argument. Call help_callback with
9251 two additional arguments: the pane number and the item number of
9252 the menu item associated with the help text.
9253 (help_echo_object, help_echo_pos): New variables.
9254 (syms_of_msdos): Initialize them and staticpro help_echo_object.
9255
9256 * msdos.h (XMenuActivate): Update prototype.
9257
9258 2000-07-19 Gerd Moellmann <gerd@gnu.org>
9259
9260 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
9261 Add some more prototypes.
9262
9263 * xterm.c, xterm.h: Add some more prototypes.
9264
9265 * lisp.h (Fnext_single_char_property_change): Add prototype.
9266
9267 * dispnew.c (direct_output_for_insert): Remove confusing
9268 outer local variable mouse_face_overwritten_p.
9269 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
9270
9271 * alloc.c (allocate_string_data): Don't copy old string contents.
9272
9273 2000-07-19 Kenichi Handa <handa@etl.go.jp>
9274
9275 * coding.c (code_convert_region): Delete text properties before
9276 shrinking the conversion region.
9277
9278 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9279
9280 * dispnew.c (update_text_area): Write the whole row if it
9281 has mouse-face in it.
9282
9283 * xfaces.c (face-alternative-font-family-alist): Remove
9284 DEFVAR_LISP; staticpro instead.
9285
9286 * xmenu.c (menu_help_callback): Call show_help_echo with
9287 new arguments.
9288
9289 * keyboard.c (show_help_echo): Add parameter WINDOW.
9290 (read_char): Call show_help_echo with window extracted from Lisp
9291 help event.
9292 (gen_help_event): Add parameter WINDOW.
9293
9294 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
9295
9296 * xterm.c (help_echo_window): New variable.
9297 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
9298 (XTread_socket): Pass help_echo_window to gen_help_event.
9299 (syms_of_xterm): Initialize and staticpro help_echo_window.
9300
9301 2000-07-18 Dave Love <fx@gnu.org>
9302
9303 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
9304
9305 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9306
9307 * alloc.c (allocate_string_data): If string had already data
9308 assigned, copy old contents to new string data.
9309
9310 * coding.c (syms_of_coding): Fix typo in spelling of variable
9311 `inhibit-iso-escape-detection'.
9312
9313 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
9314
9315 * Makefile.in: Add dependencies on dispextern.h.
9316 (alloca.o): Don't define malloc and define EMACS_FREE instead of
9317 `free'; both can conflict with system header files.
9318
9319 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9320
9321 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
9322 undefined.
9323
9324 2000-07-18 Dave Love <fx@gnu.org>
9325
9326 * window.c (Fwindow_list): Declare arg `window'.
9327
9328 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9329
9330 * coding.c (setup_coding_system): Don't override the explicitly
9331 specified designations.
9332
9333 2000-07-15 Miles Bader <miles@gnu.org>
9334
9335 * editfns.c (char_property_eq, char_property_stickiness): Renamed
9336 from `text_property_eq' and `text_property_stickiness', respectively.
9337 (find_field, Fconstrain_to_field, char_property_eq)
9338 (char_property_stickiness): Changed to call char-property functions
9339 instead of text-property-only ones.
9340
9341 * textprop.c (Fnext_single_char_property_change): Made a subr (was
9342 `next_single_char_property_change'). Do more error checking, and
9343 cleanup limit behavior.
9344 (Fprevious_single_char_property_change): New function.
9345 (syms_of_textprop): Initialize new subrs.
9346
9347 * xdisp.c (display_prop_end, invisible_text_between_p):
9348 Call Fnext_single_char_property_change instead of
9349 next_single_char_property_change.
9350
9351 2000-07-15 Jason Rumney <jasonr@gnu.org>
9352
9353 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
9354 after menu is finished with.
9355 (add_menu_item): Only consider wv->title as a menu title.
9356 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
9357
9358 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
9359 null title.
9360 (FONT_REGEXP): Remove unused macro, and its sub-components.
9361 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
9362
9363 * w32term.c (help_echo_object, help_echo_pos): New variables.
9364 (note_mode_line_highlight): Store additional information about the
9365 help-echo in help_echo_object and help_echo_pos. Check both
9366 `local-map' and `keymap' properties for changing the cursor
9367 (note_mouse_highlight): Store additional information about the
9368 help-echo in help_echo_object and help_echo_pos.
9369 (note_tool_bar_highlight): Set help_echo_object to nil and
9370 help_echo_pos to -1.
9371 (w32_read_socket): Use gen_help_event instead of filling
9372 input_events manually.
9373 (syms_of_w32term): Staticpro help_echo_object.
9374 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
9375 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
9376 (x_clear_mouse_face): New function.
9377 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
9378 (x_update_window_begin): No need to turn off the mouse
9379 highlight here.
9380 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9381 depending on whether they contain glyphs highlighted in mouse-face.
9382 (x_fill_stretch_glyph_string): Consume runs of stretch
9383 glyphs instead of a single one.
9384 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9385 with new argument list.
9386 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9387 (x_append_glyph, x_append_composite_glyph)
9388 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9389 changes in struct glyph starting 1999-12-27. See comments for
9390 xterm.c on 2000-07-05.
9391
9392 2000-07-14 Sam Steingold <sds@gnu.org>
9393
9394 * xfaces.c (realize_x_face): Fix the last patch:
9395 check `default_face' before dereferencing.
9396
9397 2000-07-14 Dave Love <fx@gnu.org>
9398
9399 * syntax.c (back_comment): Add null default in switch (for pcc).
9400
9401 2000-07-14 Kenichi Handa <handa@etl.go.jp>
9402
9403 * xfaces.c (realize_x_face): Make fontset using the base of the
9404 default_face's fontset, not using the default fontset.
9405
9406 * coding.c (inhibit_iso_escape_detection): New variable.
9407 (syms_of_coding): Make it a Lisp variable.
9408 (detect_coding_iso2022): If inhibit_iso_escape_detection is
9409 nonzero, ignore ISO2022's escape sequence.
9410
9411 2000-07-14 Gerd Moellmann <gerd@gnu.org>
9412
9413 * alloca.c (malloc) [emacs]: Define as xmalloc.
9414
9415 * xfns.c (Fx_show_tip): If frame parameters contain a position,
9416 use that instead of the mouse position. Add parameters DX and DY.
9417
9418 * dispextern.h (Fx_show_tip): Adjust number of parameters
9419 in prototype.
9420
9421 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
9422 if HELP is a function, call it with OBJECT and POS as parameters
9423 to get the help to display.
9424 (gen_help_event, kbd_buffer_store_help_event): New functions.
9425 (kbd_buffer_get_event): Construct the Lisp help-event differently.
9426 (read_char): Call show_help_echo with new parameters.
9427
9428 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9429 Add prototypes.
9430
9431 * xterm.c (help_echo_object, help_echo_pos): New variables.
9432 (note_mode_line_highlight): Store additional information about the
9433 help-echo in help_echo_object and help_echo_pos. Check both
9434 `local-map' and `keymap' properties for changing the cursor
9435 (note_mouse_highlight): Store additional information about the
9436 help-echo in help_echo_object and help_echo_pos.
9437 (note_tool_bar_highlight): Set help_echo_object to nil and
9438 help_echo_pos to -1.
9439 (XTread_socket): Use gen_help_event instead of filling
9440 input_events manually.
9441 (syms_of_xterm): Staticpro help_echo_object.
9442
9443 * xmenu.c (menu_highlight_callback): Use
9444 kbd_buffer_store_help_event instead of setting up and input_event
9445 structure manually.
9446
9447 * xdisp.c (eval_form): GCPRO argument sexpr.
9448 (call_function): New function.
9449 (handle_single_display_prop): Use call_function and FUNCTIONP
9450 instead of checking whether if font_height is a symbol and
9451 using eval_form.
9452
9453 * eval.c (internal_condition_case_2): New function.
9454
9455 * lisp.h (FUNCTIONP): New macro.
9456 (internal_condition_case_2, call_function): Add prototypes.
9457
9458 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
9459 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
9460 Always set `arg' member of input_events.
9461 (construct_menu_click): Unused function removed.
9462
9463 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
9464
9465 * w32term.c (construct_mouse_click, construct_mouse_wheel)
9466 (construct_drag_n_drop, x_scroll_bar_handle_click)
9467 (w32_read_socket): Always set `arg' member of input_events.
9468
9469 * keyboard.c (show_help_echo): Use eval_form. Add comment.
9470
9471 * lisp.h (eval_form): Add prototype.
9472
9473 * xdisp.c (eval_form): Make it externally visible.
9474
9475 2000-07-13 Gerd Moellmann <gerd@gnu.org>
9476
9477 * xterm.c (x_handle_tool_bar_click): Store the frame in the
9478 frame_or_window slot of TOOL_BAR_EVENT input events instead of
9479 consing. For prefix events, store the frame in the `arg' slot of
9480 the event, otherwise store the key there.
9481 (XTread_socket): Instead of consing, use the frame_or_window slot
9482 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
9483
9484 * xmenu.c (menu_highlight_callback): Store help string in the
9485 `arg' member of the input event; don't cons.
9486 (menubar_selection_callback): Use the `arg' slot of input events
9487 to queue additional information, instead of consing.
9488
9489 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
9490
9491 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
9492 TOOL_BAR_EVENTs.
9493 (w32_read_socket): Adapt to changes in HELP_EVENTs.
9494
9495 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
9496 input events to queue additional information, instead of consing.
9497
9498 * keyboard.c (kbd_buffer_gcpro): Renamed from
9499 kbd_buffer_frame_or_window. Now used for all Lisp objects
9500 referenced from the input queue.
9501 (kbd_buffer_store_event): Always use structure assignment for
9502 copying input events. Record all Lisp objects referenced from
9503 events in kbd_buffer_gcpro.
9504 (kbd_buffer_get_event): Construct Lisp `help-echo' events
9505 differently from input events. Test for prefix menu_bar_events
9506 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
9507 event in kbd_buffer_gcpro to nil.
9508 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
9509 frame_or_window is equal to its arg member as prefix events.
9510 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
9511 used by an input event to nil.
9512 (init_keyboard): Use two times the size of the input queue
9513 for kbd_buffer_gcpro.
9514 (syms_of_keyboard): Likewise.
9515
9516 * emacs.c (handle_USR2_signal, handle_USR1_signal):
9517 Use USER_SIGNAL_EVENT.
9518
9519 * termhooks.h (struct input_event): Add member `arg'.
9520 (MENU_BAR_EVENT): Renamed from menu_bar_event.
9521 (USER_SIGNAL_EVENT): Renamed from user_signal.
9522
9523 * xfaces.c (ASET): Remove definition.
9524
9525 * lisp.h (AREF, ASET, ASIZE): New macros.
9526
9527 * fontset.c (AREF, ASIZE): Remove definitions.
9528
9529 * fns.c (AREF): Remove definition.
9530
9531 * composite.c (AREF): Remove definition.
9532
9533 2000-07-12 Gerd Moellmann <gerd@gnu.org>
9534
9535 * dispnew.c (redraw_overlapped_rows): Add missing local.
9536 (scrolling_window): Remove debug code.
9537
9538 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
9539 Before scrolling, turn off a mouse-highlight in the window
9540 being scrolled.
9541
9542 * xterm.c (x_update_window_end): Add parameter
9543 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
9544 redisplay in XTframe_up_to_date.
9545 (x_clear_mouse_face): New function.
9546 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
9547
9548 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
9549 current glyph row.
9550 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
9551 it when any row is written to that contains glyphs highlighted in
9552 mouse-face.
9553 (update_window): Call the window update end hook with new
9554 parameter MOUSE_FACE_OVERWRITTEN_P.
9555 (direct_output_for_insert): Give up if row contains mouse-face.
9556
9557 * dispextern.h (struct redisplay_interface): Add parameter
9558 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
9559 (clear_mouse_face): New function pointer member.
9560
9561 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
9562
9563 * syntax.c (back_comment): Use one switch rather than a few `if's.
9564 Obey open_paren_in_column_0_is_defun_start.
9565 When reverting to the `slow' method, try to nicely handle the case
9566 of nested comments by checking that the comment-starter we found
9567 does indeed match the comment-ender.
9568 (scan_sexps_forward, scan_sexps_forward):
9569 Ignore excessive opening parenthesis rather than throwing an error.
9570
9571 2000-07-11 Gerd Moellmann <gerd@gnu.org>
9572
9573 * doc.c (Fsubstitute_command_keys): Handle case that a GC
9574 in Fwhere_is_internal or get_keymap_1 relocates string contents.
9575
9576 * dispnew.c (direct_output_forward_char): Give up if currently
9577 displaying a message instead of the minibuffer contents.
9578
9579 * xterm.c (x_update_window_begin): No need to turn off the mouse
9580 highlight here.
9581 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9582 depending on whether they contain glyphs highlighted in mouse-face.
9583
9584 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
9585 compare the mouse_face_p flags of both rows.
9586
9587 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
9588
9589 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
9590
9591 * keyboard.c (show_help_echo): Accept additional parameter
9592 ok_to_overwrite_keystroke_echo.
9593 (read_char): Call show_help_echo with a zero
9594 ok_to_overwrite_keystroke_echo argument.
9595 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
9596 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
9597 ok_to_overwrite_keystroke_echo argument.
9598 * w32menu.c (w32_menu_display_help): Call show_help_echo with
9599 non-zero ok_to_overwrite_keystroke_echo argument.
9600
9601 2000-07-10 Gerd Moellmann <gerd@gnu.org>
9602
9603 * xdisp.c (try_window_id): If changes are all below what is
9604 displayed in the window, and point is in the window, we still
9605 might have to find point on the display.
9606
9607 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
9608 glyphs instead of a single one.
9609 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9610 with new argument list.
9611 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9612
9613 * keymap.c (get_keymap_1): Add comment that this function can GC.
9614 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
9615 comment that functions can GC.
9616 (Fset_keymap_parent): GCPRO arg KEYMAP.
9617
9618 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
9619
9620 * msdos.c (XMenuActivate): After exiting the menu, restore the
9621 echo area message and erase it.
9622
9623 2000-07-10 Kenichi Handa <handa@etl.go.jp>
9624
9625 * fontset.c (Ffontset_info): Make the return value more compatible
9626 with that of Emacs 20.
9627
9628 2000-07-07 Gerd Moellmann <gerd@gnu.org>
9629
9630 * eval.c (Fsignal): Handle case that backtrace_list is null.
9631
9632 2000-07-07 Kenichi Handa <handa@etl.go.jp>
9633
9634 * ccl.c (Fccl_execute): Typo fixed.
9635
9636 2000-07-06 Gerd Moellmann <gerd@gnu.org>
9637
9638 * window.c (window_loop): Add missing gcpro1 local variable.
9639
9640 * window.c (Fwindow_list): Reverse list at the end.
9641 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
9642 means allow windows on OWINDOW's frame, only.
9643 (window_loop): Simplified; use Fwindow_list.
9644
9645 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
9646
9647 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9648
9649 * xterm.c (XTread_socket): Increment handling_signal at the start,
9650 decrement it at the end.
9651
9652 * eval.c (handling_signal): New variable.
9653 (Fsignal): Abort if handling_signal is non-zero.
9654
9655 * lisp.h (handling_signal): External declaration.
9656
9657 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
9658
9659 2000-07-05 Ken Raeburn <raeburn@gnu.org>
9660
9661 Sound support for NetBSD through "Linux emulation" support:
9662 * config.in (HAVE_SOUNDCARD_H): Undef.
9663 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
9664 * Makefile.in (LIBSOUND): New variable.
9665 (LIBES): Include it.
9666 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
9667 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
9668 (vox_open): Use DEFAULT_SOUND_DEVICE.
9669 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
9670
9671 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9672
9673 * print.c (print_error_message): If Vsignaling_function is set,
9674 show it in *Messages*.
9675
9676 * lisp.h (Vsignaling_function): External declaration.
9677
9678 * eval.c (Vsignaling_function): New variable.
9679 (Fsignal): Compute it.
9680 (syms_of_eval): Staticpro it.
9681
9682 2000-07-05 Dave Love <fx@gnu.org>
9683
9684 * syswait.h: Use the autoconf recommended approach. Old code
9685 #if'd out in case we need to revert.
9686
9687 * config.in (HAVE_SYS_WAIT_H): Added.
9688
9689 2000-07-05 Andrew Innes <andrewi@gnu.org>
9690
9691 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
9692 when non-NULL instead of __morecore, to take account of buffer
9693 memory. This also solves a problem with spurious memory warnings
9694 on Windows.
9695
9696 * ralloc.c: Make real_morecore non-static.
9697
9698 * eval.c (internal_condition_case): Comment out abort if
9699 interrupt_input_blocked is not zero.
9700
9701 * makefile.nt: Add support for `bootstrap' and related targets.
9702 Include minimal debug info in emacs.exe in release build.
9703 Remove all dependencies on lisp.h, and fixup some others.
9704
9705 * w32.c (init_environment): Install code from 20.7 for providing
9706 default values for environment variables, based on the
9707 executable's own location.
9708 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
9709 (sys_socket): Install socket inheritance bug fix from 20.7.
9710
9711 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
9712 here via blockinput.h).
9713
9714 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
9715
9716 * w32menu.c (w32_menu_display_help):
9717 * xmenu.c (menu_help_callback): Use show_help_echo.
9718
9719 * keyboard.h (show_help_echo): Declare.
9720
9721 * keyboard.c (show_help_echo): New function, extracted from read_char.
9722 Feval its `msg' argument if it's a cons cell.
9723 (read_char): Use it.
9724 (follow_key): Pass `autoload' to get_keyelt.
9725
9726 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
9727 (note_tool_bar_highlight, XTread_socket):
9728 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
9729 (dos_rawgetc):
9730 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
9731 (note_tool_bar_highlight, w32_read_socket):
9732 Do not gratuitously ignore non-string `help-echo' properties.
9733
9734 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9735
9736 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
9737
9738 * window.c (delete_all_subwindows): Reset Vwindow_list.
9739
9740 * xterm.c (x_append_glyph, x_append_composite_glyph)
9741 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9742 changes in struct glyph starting 1999-12-27. Some bit-fields of
9743 struct glyph were not set, which made glyphs unequal when compared
9744 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
9745 effects were the result. This also depended on the contents of
9746 memory returned by xmalloc. If flickering happens again, activate
9747 the code in clear_glyph_row that's in #if 0. If the flickering is
9748 gone with that, chances are that it is caused by something similar.
9749
9750 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
9751
9752 * dispextern.h: Add some comments.
9753
9754 * window.c (add_window_to_list): Add parameter LIST.
9755 (window_list): Order list so that, for each frame, windows are
9756 in canonical order, and so that frames appear in the list in
9757 the order given by Vframe_list.
9758 (next_window): Reverse the handling of NEXT_P.
9759
9760 2000-07-04 Gerd Moellmann <gerd@gnu.org>
9761
9762 * window.c (Vwindow_list): New variable.
9763 (make_window, delete_window): Set Vwindow_list to nil.
9764 (check_window_containing): New function.
9765 (window_from_coordinates): Rewritten.
9766 (add_window_to_list, window_list, candidate_window_p)
9767 (decode_next_window_args, next_window): New functions.
9768 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
9769 (Fwindow_list): New function.
9770 (Fother_window): Cleaned up.
9771 (foreach_window): Add a longer "variable argument list". Let
9772 callback function return 0 to indicate that cycling over windows
9773 should stop.
9774 (foreach_window_1): Likewise.
9775 (freeze_window_start): Return int.
9776 (init_window): New function.
9777 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
9778
9779 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
9780 input_event with bzero.
9781 (main): Call init_window.
9782
9783 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
9784 a menu filter.
9785
9786 2000-07-04 Kenichi Handa <handa@etl.go.jp>
9787
9788 * composite.h (make_composition_value_copy): Extern it.
9789
9790 * composite.c (make_composition_value_copy): New function.
9791
9792 * editfns.c (Fformat): While copying text properties, make each
9793 composition property value a copy.
9794
9795 * fns.c (concat): While copying text properties, make each
9796 composition property value a copy.
9797
9798 2000-07-03 Gerd Moellmann <gerd@gnu.org>
9799
9800 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9801
9802 * fns.c (sweep_weak_table): Mark only objects that are not
9803 marked already.
9804
9805 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9806 include those frames as candidates which have their focus
9807 redirected to the minibuffer frame.
9808
9809 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9810
9811 * fns.c (Fputhash): Return `value' rather than nil.
9812
9813 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9814
9815 * frame.c (next_frame): Don't check focus redirection in case
9816 MINIBUF is a window. Doing so excludes frames using MINIBUF
9817 unless their focus is redirected, which contradicts the
9818 specification of next-frame, and leads to infinite loops in
9819 certain situations when cycling through windows with next-window.
9820
9821 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9822
9823 * coding.c (code_convert_region): Even if the length of text is
9824 zero, try to convert it if coding->type is coding_type_ccl.
9825 (decode_coding_string, encode_coding_string): Likewise.
9826
9827 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9828
9829 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9830 the display if windows_or_buffers_changed.
9831
9832 * dispnew.c (struct row_entry): New structure.
9833 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9834 (row_table_size, old_lines, new_lines, old_lines_size)
9835 (new_lines_size, run_pool, runs_size, runs): New variables.
9836 (add_row_entry): New function.
9837 (scrolling_window): Use data structures allocated with xmalloc and
9838 held in global variables, instead of allocating them with alloca and
9839 holding them in local variables. Use a larger hash table whose
9840 size depends on glyph matrix sizes. Don't use bzero to clear the
9841 hash table; instead, clear used slots only.
9842
9843 * fns.c (next_almost_prime): Make it externally visible.
9844
9845 * lisp.h (next_almost_prime): Add prototype.
9846
9847 * s/isc4-0.h (sigunblock): Define.
9848
9849 * s/sco5.h (sigunblock): Define.
9850
9851 2000-06-27 Dave Love <fx@gnu.org>
9852
9853 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9854 (moved to osf5-0.h).
9855 [!NOT_C_CODE]: Protect string.h stuff.
9856
9857 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9858 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9859
9860 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9861
9862 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9863 below the last line from the needed window height.
9864
9865 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9866
9867 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9868 (Fwidget_get): Use it.
9869 (syms_of_fns): Defsubr it.
9870
9871 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9872
9873 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9874 display info for XIM.
9875 (xim_open_dpy): Likewise.
9876 (xim_close_dpy): Don't free the display info's XIM.
9877
9878 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9879
9880 * config.in (USE_XIM): New define.
9881
9882 * keymap.c (get_keyelt): For menu-items containing a `:filter
9883 FILTER', apply FILTER to the menu-item's definition to get the
9884 real definition to use.
9885
9886 * lisp.h (QCfilter): External declaration.
9887
9888 * xfns.c (Fimage_size): New function.
9889 (syms_of_xfns): Defsubr it.
9890
9891 2000-06-26 Andreas Schwab <schwab@suse.de>
9892
9893 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9894 Fstring_as_unibyte.
9895
9896 2000-06-25 Dave Love <fx@gnu.org>
9897
9898 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9899
9900 * Makefile.in (blockinput.h): Depend on atimer.h.
9901 (atimer.h): Depend on systime.h.
9902
9903 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9904
9905 * atimer.h: Protect against multiple inclusion. Include systime.h.
9906
9907 * lisp.h (swap_in_global_binding): Declare.
9908
9909 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9910
9911 * process.c (Fopen_network_stream): Turn off atimers for duration
9912 of call to connect. (Patch from Gerd.)
9913
9914 2000-06-23 Dave Love <fx@gnu.org>
9915
9916 * ralloc.c: Maybe include unistd.h
9917
9918 * emacs.c (setgrp): Undefine before defining.
9919 (malloc_warning, set_time_zone_rule, index): Prototype.
9920
9921 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9922 HAVE_STRUCT_TIMEZONE.
9923
9924 * s/osf1.h: Move string.h hack here from alpha.h and make it
9925 conditional.
9926 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9927 _XOPEN_SOURCE.
9928 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9929 (SOCKLEN_TYPE): Don't define.
9930
9931 * m/alpha.h: Remove string.h hack.
9932
9933 * s/osf5-0.h: New file.
9934
9935 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9936 include time.h, done by systime.h.
9937 [__FreeBSD__]: Remove redundant includes.
9938
9939 * callproc.c (setpgrp): Undefine before defining.
9940 (delete_temp_file): Return Qnil to avoid warning.
9941
9942 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9943
9944 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9945 HAVE_X_WINDOWS.
9946
9947 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9948
9949 * composite.h (compose_text): Declare.
9950
9951 * xterm.c: Don't include sys/types.h unconditionally. Don't
9952 protect its inclusion with !USG (following xmenu.c).
9953
9954 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9955
9956 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9957 in x_create_frame.
9958
9959 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9960
9961 * coding.c (decode_eol_post_ccl): Special handling for undecided
9962 and inconsistent EOL types.
9963
9964 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9965
9966 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9967 trough color and main window's background color.
9968
9969 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9970
9971 * xterm.h (Xt_app_con): External declaration.
9972
9973 * widget.c (EmacsFrameRealize): Fix typo.
9974
9975 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9976
9977 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9978 (handle_invisible_prop): Record the start of invisible text in
9979 it->add_overlay_start.
9980 (struct overlay_entry): Add member `overlay'.
9981 (handle_overlay_change): Simplify.
9982 (next_overlay_string): After having processed overlay strings at the
9983 end of the buffer, record that fact in
9984 it->overlay_strings_at_end_processed_p.
9985 (compare_overlay_entries): If before- and after-strings come
9986 from the same overlay, let before-strings come first.
9987 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9988 (load_overlay_strings): Take it->add_overlay_start into account
9989 when adding overlay strings.
9990
9991 * dispextern.h (struct it): Add member add_overlay_start.
9992
9993 2000-06-22 Dave Love <fx@gnu.org>
9994
9995 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9996
9997 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9998
9999 2000-06-22 Kenichi Handa <handa@etl.go.jp>
10000
10001 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
10002 is greater than 0.
10003
10004 2000-06-21 Dave Love <fx@gnu.org>
10005
10006 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
10007
10008 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
10009
10010 * syntax.c (back_comment): Simplify string-parity counting (with
10011 the added benefit of handling multiple string-styles as long as
10012 they are not intertwined).
10013 Jump to the slow code as soon as a comment starter is found in
10014 a "string_lossage" position. Fixes the case: " /* " /* " */.
10015
10016 2000-06-21 Dave Love <fx@gnu.org>
10017
10018 * Makefile.in: Use GETLOADAVG_LIBS.
10019
10020 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
10021 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
10022
10023 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10024
10025 * syntax.c (describe_syntax): Recognize the `n'estable bit.
10026 (Fforward_comment, scan_lists):
10027 Check the comstyle of single-char comment-starters.
10028 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
10029 we're just at the beginning of the comment (f.ex with (*) ... (*)).
10030 Check the comstyle of single-char comment-starters.
10031 Clarify control-flow around the Scomment case.
10032
10033 2000-06-20 Dave Love <fx@gnu.org>
10034
10035 * fns.c (make_hash_table, maybe_resize_hash_table):
10036 Cast arg of next_almost_prime.
10037
10038 * tparam.c [emacs]: Include lisp.h.
10039
10040 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
10041 and unistd.h.
10042
10043 2000-06-20 Gerd Moellmann <gerd@gnu.org>
10044
10045 * keyboard.c (adjust_point_for_property): Check if display
10046 property should be treated as intangible by looking at its value.
10047
10048 * xdisp.c (single_display_prop_intangible_p)
10049 (display_prop_intangible_p): New functions.
10050
10051 * dispextern.h (display_prop_intangible_p): Add prototype.
10052
10053 * xdisp.c (dump_glyph_row): Show type of glyph->object.
10054
10055 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
10056 argument to sigprocmask.
10057
10058 * s/sco5.h (sigblock): Redefined to pass a pointer as second
10059 argument to sigprocmask.
10060
10061 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
10062 sigprocmask_set, and pass a pointer to it to sigprocmask.
10063
10064 * sysdep.c (sigprocmask_set): New variable.
10065
10066 * fileio.c (make_temp_name): Don't use `%s' in string passed to
10067 report_file_error.
10068
10069 2000-06-20 Sam Steingold <sds@gnu.org>
10070
10071 * xrdb.c: Don't declare xmalloc, xrealloc.
10072
10073 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10074
10075 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
10076 (re_comp): Cast gettext return value to avoid complaints when
10077 !HAVE_LIBINTL.
10078
10079 2000-06-20 Dave Love <fx@gnu.org>
10080
10081 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
10082
10083 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
10084
10085 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
10086
10087 * m/alpha.h: Don't declare xmalloc, xrealloc.
10088
10089 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
10090
10091 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
10092
10093 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
10094
10095 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
10096 HAVE_GETWD.
10097
10098 * keyboard.h (poll_for_input_1): Declare.
10099
10100 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
10101
10102 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
10103
10104 * doprnt.c: Don't declare xmalloc, xrealloc.
10105
10106 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
10107 (getenv, ctime, getwd): Removed.
10108 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
10109
10110 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
10111 x_set_tool_bar_lines.
10112
10113 * config.in: Add HAVE_GETWD. Move some definitions above
10114 machine/system includes.
10115
10116 2000-06-20 Kenichi Handa <handa@etl.go.jp>
10117
10118 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
10119
10120 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
10121 contain information about ENCODING.
10122
10123 * fontset.c (FONTSET_ASCII): Use the first element of char table
10124 for an ASCII font, not defalt slot.
10125 (fontset_ref_via_base): If FONTSET doesn't contain information for
10126 C, try the default fontset.
10127 (make_fontset): Don't copy the default fontset.
10128 (fontset_font_pattern): Likewise.
10129 (accumulate_font_info): If ELT is nil, use the corresponding
10130 element in the default fontset.
10131
10132 2000-06-19 Dave Love <fx@gnu.org>
10133
10134 * syntax.c (Fparse_partial_sexp): Doc fix.
10135
10136 * regex.h: Test PROTOTYPES as well as __STDC__.
10137
10138 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
10139 errno, strerror. Put text after #endif in comment.
10140
10141 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
10142
10143 * xterm.c (x_frame_of_widget): Likewise.
10144
10145 2000-06-19 Gerd Moellmann <gerd@gnu.org>
10146
10147 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
10148 to Vfundamental_mode_abbrev_table.
10149
10150 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
10151 bogus objects are marked. This slows down GC by ~80 percent, but
10152 it might be worth trying when debugging GC-related problems.
10153 This feature requires conservative stack marking to be enabled.
10154
10155 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
10156 returns XLookupChars, reset `modifiers' to zero.
10157
10158 2000-06-19 Dave Love <fx@gnu.org>
10159
10160 * mktime.c: Unprotoized.
10161
10162 2000-06-19 Richard Stallman <rms@gnu.org>
10163
10164 * data.c (set_internal): If variable is frame-local,
10165 store the new value immediately into the frame parameter alist.
10166
10167 2000-06-19 Ken Raeburn <raeburn@gnu.org>
10168
10169 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
10170 in the custom handler pointer.
10171
10172 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
10173 value, or checks for CHAR_META can fail when Lisp_Object is a
10174 union type.
10175 * keymap.c (get_keyelt): Likewise.
10176
10177 2000-06-19 Kenichi Handa <handa@etl.go.jp>
10178
10179 * ccl.h (struct ccl_program): New member eol_type.
10180 (struct ccl_spec): New member cr_carryover.
10181
10182 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
10183 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
10184
10185 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
10186 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
10187 (decode_eol_post_ccl): New function.
10188 (decode_coding): Don't detect EOL format here for CCL based coding
10189 systems.
10190 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
10191 decode_eol_post_ccl after running the CCL program.
10192 (code_convert_region): Don't detect EOL format here for CCL based
10193 coding systems.
10194 (decode_coding_string): Likewise.
10195
10196 2000-06-18 Ken Raeburn <raeburn@gnu.org>
10197
10198 * charset.c (update_charset_table): Use XINT on "iso_final_char"
10199 when treating it as an integer.
10200
10201 * coding.h (encode_coding_string): Declare.
10202
10203 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
10204 it as an integer.
10205
10206 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
10207 "xkeymap" to avoid shadowing the "enum map_type" value that needs
10208 to be passed to get_local_map.
10209
10210 * sound.c (Fplay_sound): Don't call make_number on
10211 Frun_hook_with_args count argument.
10212
10213 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
10214 for lisp objects in X event structure data field, when lisp
10215 objects are represented with unions.
10216 (x_scroll_bar_to_input_event): Ditto.
10217
10218 2000-06-16 Ken Raeburn <raeburn@gnu.org>
10219
10220 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
10221 termination of string. Fix sense of test whether
10222 Vline_number_display_limit is an integer.
10223
10224 2000-06-16 Gerd Moellmann <gerd@gnu.org>
10225
10226 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
10227 only if HAVE_X_WINDOWS.
10228
10229 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
10230 of titles.
10231
10232 * dispnew.c (update_frame_1): Handle case that cursor vpos is
10233 out of bounds.
10234
10235 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
10236
10237 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
10238 of its headers.
10239
10240 2000-06-15 Kenichi Handa <handa@etl.go.jp>
10241
10242 * coding.c (decode_coding_emacs_mule): Always set src_base at the
10243 start of the while loop.
10244
10245 2000-06-15 Gerd Moellmann <gerd@gnu.org>
10246
10247 * atimer.c (alarm_signal_handler): Add forward declaration.
10248
10249 * data.c (set_internal): Remove debug code.
10250
10251 2000-06-14 Gerd Moellmann <gerd@gnu.org>
10252
10253 * Makefile.in (bootstrap-temacs): Add `-I../src'.
10254
10255 * unexec.c (toplevel) [COFF]: Include coff.h.
10256
10257 * s/lynxos.h: New file.
10258
10259 * keymap.c (Fsingle_key_description): Enclose function key and
10260 event symbol names in angle brackets.
10261
10262 * xdisp.c (setup_echo_area_for_printing): Call
10263 message_log_maybe_newline if message_buf_print is not set.
10264
10265 * print.c (printchar, strout): Don't check message_buf_print
10266 before calling setup_echo_area_for_printing because that
10267 function does something useful even when message_buf_print is
10268 already set.
10269
10270 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
10271 New variables.
10272 (ensure_echo_area_buffers): Initialize echo buffer's
10273 truncate lines setting to nil.
10274 (with_echo_area_buffer): Don't set the echo buffer's truncate
10275 lines setting here.
10276 (set_message_1): Set it here instead, based on the value
10277 of message_truncate_lines.
10278 (resize_mini_window): Handle case that lines are truncated.
10279 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
10280 DEFVAR_BOOL message-truncate-lines.
10281
10282 * keyboard.c (read_char): Bind message-truncate-lines to t
10283 while displaying a help-echo.
10284
10285 * lisp.h (Qmessage_truncate_lines): External declaration.
10286
10287 2000-06-13 Gerd Moellmann <gerd@gnu.org>
10288
10289 * xdisp.c (Vline_number_display_limit): Renamed from
10290 line_number_display_limit.
10291 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
10292 Extend documentation string. Initialize
10293 Vline_number_display_limit to nil meaning no limit.
10294 (decode_mode_spec): Use Vline_number_display_limit with its new
10295 meaning.
10296
10297 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
10298
10299 2000-06-13 Richard Stallman <rms@gnu.org>
10300
10301 * frame.c (Fmodify_frame_parameters): Doc fix.
10302
10303 * xfns.c (x_set_frame_parameters): Comment fix.
10304
10305 * frame.c (store_frame_param): Call swap_in_global_binding if the
10306 variable's current binding was chosen based on this frame.
10307
10308 * data.c (swap_in_global_binding): New function.
10309
10310 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10311
10312 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
10313 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
10314
10315 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10316
10317 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
10318
10319 2000-06-12 Jason Rumney <jasonr@gnu.org>
10320
10321 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
10322
10323 * w32.h (EMACS_W32_H): Renamed from _NT_H_
10324
10325 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
10326
10327 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
10328
10329 2000-06-12 Gerd Moellmann <gerd@gnu.org>
10330
10331 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
10332 (syms_of_xfaces): Defsubr Sdump_colors.
10333 (x_free_colors): Don't treat b&w specially on default visual.
10334 (x_free_dpy_colors): New function.
10335 (free_face_colors): Don't check visual class; it's done
10336 in x_free_colors.
10337
10338 * xterm.c (x_frame_of_widget): New function.
10339 (x_alloc_nearest_color_for_widget): Use it.
10340 (x_copy_dpy_color): New function.
10341 (x_destroy_window): Free various colors.
10342
10343 2000-06-12 Kenichi Handa <handa@etl.go.jp>
10344
10345 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
10346
10347 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
10348
10349 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
10350
10351 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
10352
10353 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
10354
10355 2000-06-11 Dave Love <fx@gnu.org>
10356
10357 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
10358
10359 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
10360
10361 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
10362
10363 2000-06-11 Gerd Moellmann <gerd@gnu.org>
10364
10365 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
10366 to `XEvent *'.
10367
10368 2000-06-10 Kenichi Handa <handa@etl.go.jp>
10369
10370 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
10371 (regex_compile): Fix the code for handling the case of single byte
10372 char and multibyte char being mixed in a range within [...].
10373
10374 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
10375 and dst_multibyte members of coding.
10376
10377 * charset.c (update_charset_table): Update the table
10378 bytes_by_char_head.
10379 (init_charset_once): Initialize elements of bytes_by_char_head to
10380 1 except for leading codes for private charases.
10381
10382 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
10383 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
10384
10385 2000-06-09 Ken Raeburn <raeburn@gnu.org>
10386
10387 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
10388 access the data it doesn't point to.
10389
10390 2000-06-08 Gerd Moellmann <gerd@gnu.org>
10391
10392 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
10393 will be translated to a switch-frame event when reading the
10394 event queue. This is necessary because Emacs otherwise won't
10395 perform a switch-frame to a new frame until some other event, for
10396 example a keystroke event, forces it to do so. This has various
10397 effects, one visible being that the cursor of a frame created with
10398 C-x 5 2 or switched to with a window manager key binding like
10399 A-TAB stays hollow because selected_window isn't on the newly
10400 focused frame until the switch-frame is performed.
10401
10402 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
10403 generating a switch-frame event if necessary.
10404
10405 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
10406
10407 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
10408 it's an integer.
10409
10410 2000-06-08 Kenichi Handa <handa@etl.go.jp>
10411
10412 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
10413
10414 2000-06-07 Gerd Moellmann <gerd@gnu.org>
10415
10416 * window.c (displayed_window_lines): Take empty lines at
10417 the bottom of a window into account.
10418
10419 * window.c (displayed_window_lines): New function.
10420 (Fmove_to_window_line): Use displayed_window_lines to determine
10421 the number of lines to move, instead of using the window's height.
10422
10423 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
10424 to stop reading, even if the form read sets point to a different
10425 value when evaluated.
10426
10427 * xdisp.c (display_line): Fix code deciding in which line to
10428 put the cursor.
10429
10430 2000-06-07 Kenichi Handa <handa@etl.go.jp>
10431
10432 * fileio.c (e_write): Free composition data if stored in
10433 coding->cmp_data.
10434
10435 2000-06-06 Gerd Moellmann <gerd@gnu.org>
10436
10437 * xdisp.c (display_line): Set row's and iterator's
10438 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
10439 Set cursor even if row ends in the middle of a character.
10440 (dump_glyph_row): Print values of new flags.
10441 (redisplay_window) <cursor movement in unchanged window>: When
10442 point has been moved forward, and PT is at the end of the cursor
10443 row, don't place the cursor in the next row if the cursor row ends
10444 in the middle of a character or at ZV.
10445
10446 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
10447 (struct glyph_row): Add starts_in_middle_of_char_p and
10448 ends_in_middle_of_char_p.
10449 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
10450 ends_in_middle_of_char_p flag.
10451 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
10452
10453 * term.c (append_glyph): Revert change of 2000-06-06.
10454
10455 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
10456 padding glyph not fitting on line as whole character not
10457 fitting on line.
10458
10459 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
10460 this isn't true for images with `:ascent 100'.
10461
10462 2000-06-06 Kenichi Handa <handa@etl.go.jp>
10463
10464 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
10465 as modified if it is originally unmodified.
10466
10467 * term.c (encode_terminal_code): Change the way to check if
10468 terminal coding does any conversion.
10469 (append_glyph): Set glyph->pixel_width correctly.
10470
10471 * xdisp.c (display_line): While checking line continuation, pay
10472 attention to a padding glyph.
10473
10474 2000-06-05 Gerd Moellmann <gerd@gnu.org>
10475
10476 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
10477
10478 2000-06-05 Dave Love <fx@gnu.org>
10479
10480 * xdisp.c: Include fontset.h.
10481
10482 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
10483
10484 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10485
10486 * dispnew.c: Conditionally include term.h.
10487
10488 * coding.h: Declare code_convert_string_norecord.
10489
10490 * frame.h (struct frame): Use volatile unconditionally.
10491
10492 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
10493
10494 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
10495
10496 * systime.h: Protect against multiple inclusion.
10497 (timezone) [USG5_4]: Define as time_t.
10498
10499 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10500 (Foptimize_char_table, make_temp_name): Declare.
10501
10502 * Makefile.in (xdisp.o): Depend on fontset.h.
10503
10504 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10505
10506 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10507 (Foptimize_char_table, make_temp_name): Declare.
10508
10509 * s/irix4-0.h:
10510 * s/irix5-0.h:
10511 * s/netbsd.h: Don't define autoconfiscated MATHERR.
10512
10513 2000-06-02 Dave Love <fx@gnu.org>
10514
10515 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
10516
10517 2000-06-02 Gerd Moellmann <gerd@gnu.org>
10518
10519 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
10520 result face, set flags in that face indicating that colors may not
10521 be freed.
10522
10523 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
10524 glyph, use the ASCII NUL character to determine the face.
10525
10526 2000-06-02 Dave Love <fx@gnu.org>
10527
10528 * sysdep.c: Conditionally include stdlib.h, unistd.h.
10529 (VFORK_RETURN_TYPE): Remove.
10530
10531 * config.in: Add NO_MATHERR.
10532
10533 2000-06-01 Dave Love <fx@gnu.org>
10534
10535 * cmds.c (internal_self_insert): Don't check
10536 Vbefore_change_function, Vafter_change_function.
10537
10538 * insdel.c (signal_before_change, signal_after_change): Likewise.
10539
10540 * buffer.c (Vbefore_change_function, Vafter_change_function):
10541 Variables and their initializations deleted.
10542
10543 * callint.c (Fcall_interactively): Doc fix.
10544
10545 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
10546
10547 2000-05-31 Dave Love <fx@gnu.org>
10548
10549 * textprop.c: Revert last change -- duplicated.
10550
10551 2000-05-31 Gerd Moellmann <gerd@gnu.org>
10552
10553 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
10554 in #if 0.
10555
10556 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
10557
10558 2000-05-31 Jason Rumney <jasonr@gnu.org>
10559
10560 * search.c (Fre_search_forward, Fre_search_backward)
10561 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
10562
10563 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
10564
10565 2000-05-30 Jason Rumney <jasonr@gnu.org>
10566
10567 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
10568 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
10569
10570 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
10571
10572 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
10573 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
10574 expand a nil default_filename.
10575
10576 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
10577 pointer to glyph_to_pixel_coords, not a frame.
10578
10579 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
10580 coding.h to dependencies.
10581
10582 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
10583
10584 * w32console.c (glyph_to_pixel_coords): Change first parameter to
10585 window pointer to be consistent with w32term.c and xterm.c.
10586
10587 * w32fns.c: Format and doc changes to bring closer to xfns.c.
10588 (VIETNAMESE_CHARSET): Define if not defined in system headers.
10589 (Qline_spacing, Qcenter): New variables.
10590 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
10591 (x_set_line_spacing): New function.
10592 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
10593 (x_specified_cursor_type): New function.
10594 (x_set_cursor_type): Use it.
10595 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
10596 and icon strings.
10597 (validate_x_resource_name, x_get_resource_string): Measure lengths
10598 of external strings in bytes.
10599 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
10600 GetTextExtentPoint32 with NULL title.
10601 (Fx_create_frame): Initialize Qline_spacing.
10602 (w32_load_system_font): Initialize font->double_byte_p.
10603 (x_to_w32_charset): Use Vw32_charset_info_alist.
10604 (Image, busy cursor, tooltip functions): Merged changes from
10605 xfns.c. Not yet functional on Windows.
10606
10607 * w32gui.h (W32FontStruct): Add double_byte_p member.
10608
10609 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
10610 (emacs_button_translation): Use it.
10611 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
10612 in `mask' to be set.
10613
10614 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
10615 menu strings.
10616
10617 * w32term.c: Format and doc changes to bring closer to xterm.c.
10618 (w32_char_font_type): New enum.
10619 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
10620 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
10621 (w32_encode_char): New function.
10622 (x_encode_char): Removed.
10623 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
10624 x_encode_char and w32_font_is_double_byte.
10625 (x_produce_image_glyph): Use image_ascent.
10626 (x_produce_glyphs): Use new version of w32_per_char_metric and
10627 handle NULL return value. Allow extra line spacing.
10628 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
10629 (w32_get_glyph_overhangs): Remove unicode_p param. Use
10630 w32_font_type member of glyph instead.
10631 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
10632 (fast_find_position): Make sure not to consider rows not visible
10633 in the window.
10634 (w32_read_socket) [WM_MENUSELECT]: Cannot call
10635 w32_menu_display_help with input blocked, as it can abort.
10636 (x_display_and_set_cursor): Choose cursor depending
10637 on buffer-local value of cursor_type.
10638 (x_draw_bar_cursor): Add parameter WIDTH.
10639
10640 * w32term.h (CP_DEFAULT): Define.
10641 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
10642
10643 2000-05-30 Gerd Moellmann <gerd@gnu.org>
10644
10645 * search.c (Fre_search_forward, Fre_search_backward)
10646 (Fposix_search_backward, Fposix_search_forward): Doc fix.
10647
10648 2000-05-30 Kenichi Handa <handa@etl.go.jp>
10649
10650 * coding.c (detect_coding_iso2022): Fix code for checking
10651 CODING_CATEGORY_MASK_ISO_8_2.
10652
10653 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
10654
10655 * regex.c (PREFETCH_NOLIMIT): New function.
10656 (re_match_2_internal): Use it and adjust the end_match_2 logic.
10657
10658 2000-05-29 Gerd Moellmann <gerd@gnu.org>
10659
10660 * syntax.c (find_defun_start): Move test for
10661 open_paren_in_column_0_is_defun_start outside of the loop.
10662
10663 * xdisp.c (redisplay_window): Really switch buffers when
10664 displaying mode lines, and temporarily set selected_frame to the
10665 frame of the window that's redisplayed.
10666
10667 * xfaces.c (free_realized_faces): Block/unblock input.
10668 (free_realized_multibyte_face): Ditto.
10669
10670 2000-05-29 Dave Love <fx@gnu.org>
10671
10672 * textprop.c (Qkeymap): New variable.
10673 (syms_of_textprop): Intern it.
10674
10675 * keymap.c: Include intervals.h.
10676 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
10677
10678 * Makefile.in (keymap.o): Depend on intervals.h.
10679
10680 * keyboard.c (menu_bar_items, tool_bar_items)
10681 (Fexecute_extended_command): Deal with `keymap' property.
10682 (read_key_sequence): Track map from `keymap' property as well as
10683 `local_map'.
10684
10685 * intervals.c (get_local_map): Extra arg to allow looking for
10686 `keymap' too.
10687
10688 * intervals.h (map_property): New enum.
10689 (get_local_map): Extra arg using it.
10690 (Qkeymap): Declare.
10691
10692 * lisp.h (get_local_map): Don't declare here.
10693
10694 2000-05-29 Kenichi Handa <handa@etl.go.jp>
10695
10696 * Makefile.in (callproc.o): Depend on composite.h.
10697
10698 * callproc.c: Include composite.h.
10699 (Fcall_process): Handle composition correctly.
10700
10701 * coding.h (coding_allocate_composition_data): Extern it.
10702 (coding_restore_composition): Likewise.
10703
10704 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
10705 yet allocated, finish decoding with result
10706 CODING_FINISH_INSUFFICIENT_CMP.
10707 (coding_allocate_composition_data): Make it non-static.
10708 (coding_restore_composition): Likewise.
10709
10710 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
10711
10712 * charset.c (syms_of_charset): Revert last change.
10713
10714 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10715
10716 * term.c (produce_glyphs): Treat characters from the eight-bit-*
10717 charsets as unibyte, with 1-column screen width. Sent by Kenichi
10718 Handa.
10719
10720 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10721
10722 * charset.c (syms_of_charset): Set width of character sets
10723 eight-bit-control and eight-bit-graphic to 1 column.
10724
10725 2000-05-26 Gerd Moellmann <gerd@gnu.org>
10726
10727 * config.in (HAVE_SPEED_T): New define.
10728
10729 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
10730 `extern speed_t'.
10731
10732 2000-05-26 Dave Love <fx@gnu.org>
10733
10734 * coding.c (shrink_decoding_region): Initialize eol_conversion.
10735
10736 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
10737 (Fsubr_arity): New function.
10738 (syms_of_data): Install them.
10739
10740 2000-05-26 Kenichi Handa <handa@etl.go.jp>
10741
10742 * charset.c (init_charset_once): Set the table bytes_by_char_head
10743 correctly.
10744
10745 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
10746 the default fontset to what Emacs uses by default.
10747 (check_registry_encoding): This function deleted.
10748 (Fset_fontset_font): Remove the adhoc condition for the default
10749 fontset. Allow cons in FONTNAME.
10750
10751 * fns.c (map_char_table): Ignore char-table entries for
10752 charsets eight-bit-control and eight-bit-graphic.
10753
10754 2000-05-25 Ken Raeburn <raeburn@gnu.org>
10755
10756 * emacs.c (main): Initialize keyboard syms before initializing
10757 window code, so face names are available.
10758
10759 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
10760
10761 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
10762 of an anchor at the beginning of a shy-group.
10763
10764 2000-05-25 Gerd Moellmann <gerd@gnu.org>
10765
10766 * xdisp.c (handle_invisible_prop): Don't try to skip over
10767 invisible text if end of text is already reached.
10768
10769 2000-05-25 Dave Love <fx@gnu.org>
10770
10771 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
10772
10773 * coding.c (encode_eol): Add null statement after label.
10774
10775 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
10776
10777 * w16select.c (Fw16_set_clipboard_data): Fix the change from
10778 2000-05-20.
10779
10780 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10781
10782 * ccl.c (ccl_driver): Fix previous change.
10783
10784 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10785
10786 * coding.c (run_pre_post_conversion_on_str): Set point to the
10787 beginning of buffer before calling coding->post_read_conversion.
10788 (decode_coding_string): Give correct args to
10789 run_pre_post_conversion_on_str.
10790 (encode_coding_string): Likewise.
10791
10792 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10793 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10794 eight-bit-graphic correctly.
10795
10796 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
10797
10798 * fileio.c (Finsert_file_contents): Even if a file is not found,
10799 execute codes for setting up coding system. Call
10800 after-insert-file-functions unconditionally.
10801
10802 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10803
10804 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10805 BSD_PGRPS are not defined.
10806
10807 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10808
10809 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10810 DESCRIPTION.
10811 (syms_of_charset): Avoid building same strings.
10812
10813 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10814
10815 * lread.c (Fload): Add a comment about the meaning of
10816 Vuser_init_file being t.
10817
10818 * puresize.h (BASE_PURESIZE): Increase to 675000.
10819
10820 * s/gnu-linux.h (setpgrp): Don't define it here because this
10821 prevents compilation on GNU/Linux systems with glib 2.2.
10822
10823 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10824 as setpgid.
10825
10826 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10827
10828 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10829 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10830 version.
10831 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10832
10833 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10834
10835 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10836
10837 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10838
10839 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10840
10841 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10842
10843 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10844
10845 * keyboard.c (read_char): Allow character codes 128..255 to be
10846 handled by input-method-function.
10847
10848 * insdel.c (adjust_markers_for_replace): Fix previous change.
10849 (adjust_after_replace): If PREV_TEXT is nil, call
10850 adjust_markers_for_insert, not adjust_markers_for_replace.
10851
10852 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10853
10854 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10855 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10856 [HAVE_GRANDPT]: Define.
10857 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10858
10859 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10860 like SYSV_PTYS.
10861
10862 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10863
10864 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10865
10866 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10867
10868 The following changes are to handle 8-bit characters in a
10869 multibyte buffer/string without facing with byte combining
10870 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10871 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10872
10873 * Makefile.in (fns.o): Depend on charset.h.
10874
10875 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10876 convert it to unibyte.
10877 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10878
10879 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10880 apparent char boundary.
10881 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10882 0x80..0x9F to/from multibyte form.
10883
10884 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
10885 to unibyte.
10886
10887 * callproc.c (Fcall_process): Always encode an argument string if
10888 it is multibyte. Setup src_multibyte and dst_multibyte members of
10889 process_coding properly.
10890
10891 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
10892 SPLIT_NON_ASCII_CHAR.
10893
10894 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
10895 as is.
10896 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10897
10898 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10899 (SPLIT_CHARACTER_SEQ): This macro deleted.
10900 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10901 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10902 and eight-bit-graphic.
10903 (char_to_string): Likewise. Signal an error for too large
10904 character code.
10905 (char_printable_p): Return 0 for 8-bit characters.
10906 (update_charset_table): Update iso_charset_table only when a final
10907 character is non-negative.
10908 (find_charset_in_text): Renamed from find_charset_in_str.
10909 Arguments and return value changed. Callers changed.
10910 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10911 be -1 if CHARSET is used only internally.
10912 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10913 eight-bit-graphic.
10914 (Fcharset_after): Simplified.
10915 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10916 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10917 (multibyte_chars_in_text): Simplified by assuming there's no
10918 invalid multibyte sequence.
10919 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10920 (str_as_unibyte): New functions.
10921 (Fstring): Simpified by assuming that byte combining never happens.
10922 (init_charset_once): Initialization for
10923 LEADING_CODE_8_BIT_CONTROL.
10924 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10925 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10926 eight-bit-control and eight-bit-graphic.
10927
10928 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10929 (CHARSET_8_BIT_GRAPHIC): New macros.
10930 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10931 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10932 (CHARSET_REVERSE_CHARSET): Likewise.
10933 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10934 eight-bit-graphic.
10935 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10936 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10937 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10938 encounter an invalid multibyte sequence.
10939 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10940 sequence is always valid.
10941 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10942 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10943 (CHAR_STRING): For 8-bit characters, call char_to_string.
10944 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10945 multibyte sequence is always valid.
10946 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10947 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10948 (str_as_unibyte): Extern them.
10949 (BCOPY_SHORT): Fix a bug.
10950 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10951 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10952 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10953 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10954
10955 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10956 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10957 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10958 (EMIT_BYTES): New macros.
10959 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10960 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10961 macros deleted.
10962 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10963 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10964 check the validity of multibyte sequence.
10965 (decode_coding_emacs_mule): New function.
10966 (encode_coding_emacs_mule): New macro.
10967 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10968 the source.
10969 (DECODE_ISO_CHARACTER): Just return a character code.
10970 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10971 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10972 EMIT_CHAR to produced decoded characters. Exit the loop only by
10973 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10974 block here.
10975 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10976 only position codes for an invalid character.
10977 (encode_designation_at_bol): Return new destination pointer. 5th
10978 arg DSTP is changed to DST.
10979 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10980 from the source by ONE_MORE_CHAR. Don't handle the case of last
10981 block here.
10982 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10983 macros deleted.
10984 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10985 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10986 TWO_MORE_BYTES to fetch a byte from the source.
10987 (encode_eol): Pay attention to coding->src_multibyte.
10988 (detect_coding, detect_eol): Preserve members src_multibyte and
10989 dst_multibyte.
10990 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10991 (encoding_buffer_size): Set magnification to 3 for all coding
10992 systems that require encoding.
10993 (ccl_coding_driver): For decoding, be sure that the result is
10994 valid multibyte sequence.
10995 (decode_coding): Initialize coding->errors and coding->result.
10996 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10997 and raw-text, always call decode_eol. Handle the case of last
10998 block here. If not coding->dst_multibyte, convert the resulting
10999 sequence to unibyte.
11000 (encode_coding): Initialize coding->errors and coding->result.
11001 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
11002 and raw-text, always call encode_eol. Handle the case of last
11003 block here.
11004 (shrink_decoding_region, shrink_encoding_region): Detect cases
11005 that we can't skip data more rigidly.
11006 (code_convert_region): Setup src_multibyte and dst_multibyte
11007 members of coding. For decoding, if the buffer is multibyte,
11008 convert the source sequence to unibyte in advance. For encoding,
11009 if the buffer is multibyte, convert the resulting sequence to
11010 multibyte afterward.
11011 (run_pre_post_conversion_on_str): New function.
11012 (code_convert_string): Deleted and divided into the following two.
11013 (decode_coding_string, encode_coding_string): New functions.
11014 (code_convert_string1, code_convert_string_norecord): Call one of
11015 above.
11016 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
11017 MAKE_NON_ASCII_CHAR.
11018 (Fset_terminal_coding_system_internal)
11019 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
11020 and dst_multibyte members.
11021 (init_coding_once): Initialize iso_code_class with new enum
11022 ISO_control_0 and ISO_control_1.
11023
11024 * coding.h (enum iso_code_class_type): Member ISO_control_code is
11025 devided into ISO_control_0 and ISO_control_1.
11026 (struct coding_system): New members src_multibyte, dst_multibyte,
11027 errors, and result. Delete member fake_multibyte.
11028 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
11029 nonzero.
11030 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
11031 nonzero.
11032
11033 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11034 (Faset): Likewise.
11035
11036 * editfns.c (Fformat): Be sure to convert 8-bit characters to
11037 multibyte form.
11038 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
11039 combining occurs.
11040 (Ftranspose_region): Delete codes for handling byte combining.
11041
11042 * fileio.c (Finsert_file_contents): Setup src_multibyte and
11043 dst_multibyte members of coding. On handling REPLACE on unibyte
11044 buffer, convert the result of decode_coding to unibyte. On
11045 inserting into a mutibyte buffer, always call code_convert_region.
11046 (e_write): Setup coding->src_multibyte according to the
11047 multibyteness of the source (buffer or string).
11048
11049 * fns.c (concat): Handle 8-bit characters correctly.
11050 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
11051 unibyte in the result.
11052 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
11053 valid multibyte form in the result.
11054 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11055 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
11056 return -1, signal an error.
11057 (base64_encode_1): New arg MULTIBYTE. Get each character by
11058 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
11059 character is found, return -1.
11060 (Fbase64_decode_region): Delete codes for handling byte-combining.
11061 Treat each decoded byte as a unibyte character.
11062 (Fbase64_decode_string): Return unibyte string.
11063 (Fcompare_strings, concat, string_byte_to_char): Use
11064 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
11065 FETCH_STRING_CHAR_ADVANCE.
11066 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11067 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
11068
11069 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
11070 SPLIT_NON_ASCII_CHAR.
11071 (fontset_ref_via_base, fontset_set): Likewise
11072
11073 * insdel.c (adjust_markers_for_record_delete): Deleted.
11074 (adjust_markers_for_insert): Argument changed. Caller changed.
11075 (adjust_markers_for_replace): Likewise.
11076 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
11077 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
11078 (copy_text): Delete unused local varialbe c_save. For converting
11079 to multibyte, be sure to make all 8-bit characters in valid
11080 multibyte form.
11081 (count_size_as_multibyte): Handle 8-bit characters correctly.
11082 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11083 (adjust_after_replace, replace_range, del_range_2)
11084 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
11085 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11086 (adjust_after_replace, replace_range, del_range_2) Delete codes for
11087 handling byte combining.
11088 (adjust_before_replace): Deleted.
11089
11090 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
11091 SPLIT_NON_ASCII_CHAR.
11092 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11093 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11094 (Fkey_description): Likewise.
11095
11096 * lread.c (read1): On reading multibyte string, be sure to make
11097 all 8-bit chararacters in valid multibyte form.
11098 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11099
11100 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
11101 unconditionally.
11102
11103 * process.c (Fstart_process): GCPRO current_dir before calling
11104 Ffind_operation_coding_system. Encode arguments here.
11105 (create_process): Don't encode arguments here. Setup
11106 src_multibyte and dst_multibyte members of struct coding.
11107 (read_process_output): Setup src_multibyte and dst_multibyte
11108 members of struct coding. If the output is to multibyte buffer,
11109 always decode the output of the process. Adjust the
11110 representation of 8-bit characters to the multibyteness of the output.
11111 (send_process): Setup coding->src_multibyte according to the
11112 multibyteness of the source.
11113
11114 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11115 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
11116 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
11117
11118 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
11119
11120 * w16select.c (Fw16_set_clipboard_data): Setup members
11121 src_multibyte and dst_multibyte of coding. Adjusted for the
11122 change for find_charset_in_str.
11123 (Fw16_get_clipboard_data): Likewise.
11124
11125 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
11126 dst_multibyte of coding.
11127 (x_to_w32_font): Likewise.
11128
11129 * w32select.c (Fw32_set_clipboard_data): Setup members
11130 src_multibyte and dst_multibyte of coding. Adjusted for the
11131 change for find_charset_in_str.
11132 (Fw32_get_clipboard_data): Likewise.
11133
11134 * xdisp.c (get_next_display_element): Handle 8-bit characters
11135 correctly.
11136 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
11137 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11138
11139 * xselect.c (selection_data_to_lisp_data): Setup members
11140 src_multibyte and dst_multibyte of coding. Adjusted for the
11141 change for find_charset_in_str.
11142 (lisp_data_to_selection_data): Likewise.
11143
11144 2000-05-19 Gerd Moellmann <gerd@gnu.org>
11145
11146 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
11147
11148 * dispextern.h (Vimage_types): Add extern declaration.
11149
11150 * xdisp.c (Vimage_types): Moved here from xfns.c.
11151 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
11152
11153 * xfns.c (Vimages_types): Moved to xdisp.c.
11154 (syms_of_xfns): Move `image-types' to xdisp.c.
11155
11156 * w32fns.c (Vimage_types): Removed.
11157 (syms_of_w32fns): Remove `image-types'.
11158
11159 2000-05-18 Kenichi Handa <handa@etl.go.jp>
11160
11161 * fns.c (map_char_table): Pay attention to character number of
11162 charset. Check the validity of charset at the first level. For
11163 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
11164 the default value.
11165
11166 * fontset.c: Include "buffer.h".
11167 (fs_load_font): If the face has fontset, record the face ID in
11168 that fontset.
11169 (Finternal_char_font): New function.
11170 (accumulate_font_info): New function.
11171 (Ffontset_info): Rewritten for the new fontset implementation.
11172 (syms_of_fontset): Register Vdefault_fontset in the first element
11173 of Vfontset_table. Include Vdefault_fontset in
11174 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
11175 function.
11176
11177 2000-05-16 Dave Love <fx@gnu.org>
11178
11179 * m/iris5d.h: Deleted -- unused.
11180
11181 2000-05-16 Gerd Moellmann <gerd@gnu.org>
11182
11183 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
11184 `invalid' instead of `illegal'.
11185
11186 * indent.c (Fmove_to_column): When ending within a tab, insert
11187 spaces first so that markers at the end of the tab get adjusted.
11188
11189 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
11190 buffer list that wasn't selected in that frame.
11191
11192 * filelock.c (get_boot_time): To obtain an 8 char file name, which
11193 is needed on mescaline, use a 2 char prefix, and call
11194 make_temp_name with second arg non-zero.
11195
11196 * fileio.c (make_temp_name): New function, extracted from
11197 Fmake_temp_name.
11198 (Fmake_temp_name): Use it.
11199
11200 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
11201
11202 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
11203
11204 2000-05-15 Gerd Moellmann <gerd@gnu.org>
11205
11206 * Makefile.in (lisp): Add env.elc.
11207
11208 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
11209
11210 2000-05-12 Gerd Moellmann <gerd@gnu.org>
11211
11212 * search.c (Freplace_match): Handle case of `\N' in the
11213 replacement when there's no group N.
11214
11215 2000-05-11 Gerd Moellmann <gerd@gnu.org>
11216
11217 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
11218 of the message to message_dolog.
11219
11220 * keyboard.c (read_char): Don't clear current message for help
11221 events; let the code handling help events handle this. Change
11222 code detecting help events that should be ignored.
11223
11224 * xdisp.c (handle_single_display_prop): Don't try to set PT if
11225 we're interating over a string.
11226
11227 2000-05-09 Dave Love <fx@gnu.org>
11228
11229 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
11230 that offset before writing. Move gcpro region past call of
11231 Ffile_regular_p.
11232
11233 2000-05-04 Dave Love <fx@gnu.org>
11234
11235 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
11236
11237 2000-05-04 Gerd Moellmann <gerd@gnu.org>
11238
11239 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
11240 of inserted characters when BUF equals the current buffer, and PT
11241 is in front of or equal to FROM.
11242
11243 2000-05-03 Gerd Moellmann <gerd@gnu.org>
11244
11245 * xdisp.c (handle_single_display_prop): If display property value
11246 is invalid, or something not supported on the frame, restore
11247 iterator's position to what it was initially. Make sure to return
11248 0 for invalid and unsupported property values.
11249
11250 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
11251 that x_per_char_metric returns null.
11252
11253 2000-05-02 Gerd Moellmann <gerd@gnu.org>
11254
11255 * xterm.h (struct face): Add forward declaration.
11256 (struct image): Ditto.
11257 (image_ascent): Add prototype.
11258
11259 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
11260 (x_draw_image_relief, x_draw_image_foreground_1): Call function
11261 image_ascent instead of using IMAGE_ASCENT.
11262
11263 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
11264 (IMAGE_ASCENT): Removed.
11265
11266 * xfns.c (Qcenter): New variable.
11267 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
11268 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
11269 (image_ascent): New function.
11270 (lookup_image): Recognize `:ascent center'.
11271 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
11272 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
11273 (xbm_load): Don't set image's ascent here.
11274 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
11275 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
11276 check ascent values here.
11277 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
11278 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
11279 (syms_of_xfns): Initialize Qcenter.
11280
11281 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
11282 to the limits, increase the limits.
11283
11284 2000-05-01 Kenichi Handa <handa@etl.go.jp>
11285
11286 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
11287 Check Vfont_encoding_alist against the full name of the opened font.
11288
11289 2000-04-28 Gerd Moellmann <gerd@gnu.org>
11290
11291 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
11292 taller than the window.
11293
11294 2000-04-28 Kenichi Handa <handa@etl.go.jp>
11295
11296 * xfaces.c (realize_x_face): Fix the argument of the second
11297 xassert. BASE_FACE may not be a face for ASCII.
11298
11299 2000-04-27 Gerd Moellmann <gerd@gnu.org>
11300
11301 * print.c (print_object): Treat print-length < 0 as nil.
11302
11303 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
11304
11305 * s/freebsd.h (TERMCAP_OBJ): Removed.
11306 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
11307
11308 * lread.c (read1): Don't treat period followed by certain
11309 characters as symbol start.
11310
11311 * xfns.c (slurp_file): New function.
11312 (xbm_image_p): Handle case of in-memory XBM files.
11313 (xbm_scan): Rewritten to work on memory buffers instead of files.
11314 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
11315 Work on memory buffers instead of files. If DATA is null test
11316 if buffer looks like an in-memory XBM file.
11317 (xbm_load_image): Renamed from xbm_load_image_file. Work on
11318 memory buffers instead of files.
11319 (xbm_file_p): New function.
11320 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
11321
11322 * lread.c (end_of_file_error): New function.
11323 (read1): Call it instead of signaling `end-of-file' directly.
11324
11325 * print.c (print_error_message): Print data of `end-of-file'
11326 with Fprinc instead of Fprin1.
11327
11328 2000-04-26 Ken Raeburn <raeburn@gnu.org>
11329
11330 * window.c (freeze_window_start): Check that minibuffer scroll
11331 window isn't nil before extracting the window structure pointer
11332 from it.
11333
11334 * undo.c (record_delete): If we hit the end of the undo list, stop
11335 picking elements apart.
11336
11337 2000-04-26 Gerd Moellmann <gerd@gnu.org>
11338
11339 * xdisp.c (display_line): If lines are continued, restore
11340 iterator's ascent/descent information to the values before the
11341 first glyph not fitting on the line.
11342
11343 2000-04-25 Gerd Moellmann <gerd@gnu.org>
11344
11345 * xdisp.c (try_window_id) <all changes above window start>: Adjust
11346 positions in glyph matrix. Don't compute new window end positions.
11347
11348 * dispnew.c (increment_matrix_positions): Renamed from
11349 increment_glyph_matrix_buffer_positions.
11350 (increment_row_positions): Renamed from
11351 increment_glyph_row_buffer_positions.
11352
11353 * dispextern.h: Change names of renamed functions from dispnew.c
11354 in prototypes.
11355
11356 2000-04-24 Gerd Moellmann <gerd@gnu.org>
11357
11358 * fileio.c (Fdo_auto_save): Create directories for auto-save
11359 list file if necessary.
11360
11361 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
11362 from buffer or frame.
11363 (automatic_hscrolling_p): New variable.
11364 (hscroll_windows): Scroll windows horizontally only if automatic
11365 hscrolling is allowed.
11366 (syms_of_xdisp): New variable `automatic-hscrolling'.
11367
11368 * frame.h (struct frame): Add member extra_line_spacing.
11369
11370 * xfns.c (x_set_line_spacing): New function.
11371 (Fx_create_frame): Set line spacing from resources.
11372 (Qline_spacing): New variable.
11373 (syms_of_xfns): Initialize Qline_spacing.
11374
11375 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
11376
11377 * buffer.c (init_buffer_once): Handle extra_line_spacing.
11378 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
11379 (reset_buffer): Don't initialize extra2 and extra3. Initialize
11380 extra_line_spacing from default value.
11381 (init_buffer_once): Initialize default value of extra_line_spacing.
11382
11383 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
11384 and extra3.
11385
11386 * xterm.c (x_produce_glyphs): Remove reference to struct it's
11387 prompt_width. Add extra line spacing.
11388
11389 * term.c (produce_glyphs): Remove reference to struct it's
11390 prompt_width.
11391
11392 * dispextern.h (struct it): Remove member prompt_width, add
11393 extra_line_spacing.
11394
11395 2000-04-22 Gerd Moellmann <gerd@gnu.org>
11396
11397 * dispnew.c (update_frame_line): When writing a whole line, make
11398 sure cursor is in the right row afterwards, otherwise a use of
11399 capability `ch' in cmgoto might leave the cursor in the row below.
11400
11401 2000-04-21 Gerd Moellmann <gerd@gnu.org>
11402
11403 * lisp.h (struct Lisp_Buffer_Cons): Remove.
11404
11405 * keyboard.c (timer_check): Fix typo in comment.
11406
11407 2000-04-21 Kenichi Handa <handa@etl.go.jp>
11408
11409 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
11410 name change: ch -> character.
11411
11412 2000-04-20 Gerd Moellmann <gerd@gnu.org>
11413
11414 * keyboard.c (echo_message_buffer): New variable.
11415 (echo_now): Set echo_message_buffer to the echo area buffer used
11416 to display the echo.
11417 (cancel_echoing): Reset echo_message_buffer to nil.
11418 (read_char): Code rewritten that handles canceling an echo or
11419 echoing a dash, respectively.
11420
11421 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
11422 directory doesn't exist.
11423
11424 2000-04-19 Dave Love <fx@gnu.org>
11425
11426 * fns.c (syms_of_fns): Defsubr mapc.
11427 (concat): Don't allow numeric args.
11428 (Fconcat): Doc change.
11429
11430 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
11431
11432 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
11433 instead define end_match(1|2) more carefully.
11434 Use GET_CHAR_BEFORE_2 for `begline'.
11435
11436 2000-04-19 Gerd Moellmann <gerd@gnu.org>
11437
11438 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
11439 on 64-bit systems where NULL is defined as `0'.
11440
11441 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
11442 the `variable argument list' to make it work on Alpha.
11443
11444 * m/alpha.h (_LP64) [!_LP64]: Define.
11445 (ORDINARY_LINK): Define for NetBSD.
11446
11447 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
11448
11449 2000-04-19 Dave Love <fx@gnu.org>
11450
11451 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
11452 change.
11453
11454 * Makefile.in (LIBS): Don't use.
11455 (GETLOADAVG_OBJ): Define again.
11456 (otherobj): Add GETLOADAVG_OBJ.
11457
11458 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
11459
11460 2000-04-18 Gerd Moellmann <gerd@gnu.org>
11461
11462 * lread.c (read_filtered_event): Cancel and start busy cursor.
11463
11464 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
11465 that the per-character metrics may be null.
11466
11467 2000-04-17 Gerd Moellmann <gerd@gnu.org>
11468
11469 * buffer.c (clone_per_buffer_values): New function.
11470 (Fmake_indirect_buffer): Add optional argument CLONE. Call
11471 clone_per_buffer_values if CLONE is not nil.
11472
11473 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
11474
11475 2000-04-16 Dave Love <fx@gnu.org>
11476
11477 * Makefile.in: Remove obsolete localcpp stuff.
11478 (GETLOADAVG_OBJ): Don't define.
11479 (obj): Move LIBOBJS...
11480 (otherobj): ... to here.
11481 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
11482 whitespace-only lines after the continuation (Irix).
11483
11484 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11485
11486 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
11487
11488 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
11489
11490 2000-04-14 Dave Love <fx@gnu.org>
11491
11492 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
11493 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
11494 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
11495 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
11496 NLIST_STRUCT.
11497
11498 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
11499 autoconfiscated HAVE_GETLOADAVG.
11500
11501 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
11502 BROKEN_MKTIME.
11503
11504 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11505
11506 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
11507 (fill_in_lock_file_name): Avoid existing files that aren't links.
11508
11509 2000-04-14 Dave Love <fx@gnu.org>
11510
11511 * Makefile.in (LIBS, LIBOBJS): New variable.
11512 (INTERVAL_SRC): Convert to make variable.
11513 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
11514 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
11515 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
11516 add LIBOBJS.
11517 (SOME_MACHINE_OBJECTS): Remove interval stuff.
11518 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
11519 (shortlisp): Add facemenu, float-sup, frame.
11520 (SOME_MACHINE_LISP): Remove them from here.
11521 (LIBES): Change unused LDLIBS to autoconf LIBS.
11522
11523 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
11524
11525 2000-04-14 Kenichi Handa <handa@etl.go.jp>
11526
11527 * composite.c (update_compositions): If FROM and TO are not in a
11528 valid range, do nothing.
11529
11530 2000-04-13 Gerd Moellmann <gerd@gnu.org>
11531
11532 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
11533
11534 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
11535
11536 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
11537 as TERMCAP_OBJ.
11538
11539 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
11540
11541 * fileio.c (a_write): Remove redundant semi-colons.
11542 (e_write): Return -1 if failed to write all the data.
11543 This fixes the changes made at 1999-12-15.
11544
11545 2000-04-12 Dave Love <fx@gnu.org>
11546
11547 * fns.c (mapcar1): Test for null vals to support mapc.
11548 (Fmapc): New function.
11549
11550 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
11551
11552 * msdos.c (NUM_MOUSE_BUTTONS): Define.
11553 (IT_frame_up_to_date): Support the buffer local value of
11554 cursor-type, if defined.
11555
11556 2000-04-10 Dave Love <fx@gnu.org>
11557
11558 * editfns.c (preceding-char, following-char): Doc fix.
11559
11560 2000-04-10 Ken Raeburn <raeburn@gnu.org>
11561
11562 * Makefile.in (temacs): Revert 2000-03-12 change.
11563
11564 2000-04-10 Jason Rumney <jasonr@gnu.org>
11565
11566 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
11567
11568 2000-04-10 Gerd Moellmann <gerd@gnu.org>
11569
11570 * xdisp.c (setup_echo_area_for_printing): Choose an echo
11571 area buffer, if it's not set up yet.
11572
11573 * indent.c (compute_motion): Set immediate_quit.
11574
11575 2000-04-09 Gerd Moellmann <gerd@gnu.org>
11576
11577 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
11578 (realize_tty_face): Suppress boldness if colors are the inverse of
11579 the default colors, and tty_suppress_bold_inverse_default_colors_p
11580 is set.
11581 (Ftty_suppress_bold_inverse_default_colors): New function.
11582 (syms_of_xfaces): Defsubr it.
11583
11584 * buffer.c (Frestore_buffer_modified_p): New function.
11585 (syms_of_buffer): Defsubr it.
11586
11587 2000-04-08 Ken Raeburn <raeburn@gnu.org>
11588
11589 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
11590 charset id (int) argument, not a charset (Lisp_Object).
11591
11592 * coding.h (code_convert_string): Declare.
11593 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
11594 object, as the fourth argument to code_convert_string.
11595
11596 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
11597 (Fset_fontset_font): Use EQ to compare lisp objects.
11598
11599 2000-04-05 Ken Raeburn <raeburn@gnu.org>
11600
11601 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
11602 a pointer that looks like a lisp object.
11603 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
11604 zero, instead see whether it's an integer object, since they can't
11605 have intervals.
11606 (GET_INTERVAL_OBJECT): Simply assign to the destination.
11607
11608 * dispnew.c (allocate_matrices_for_frame_redisplay)
11609 (direct_output_forward_char): Use X(U)INT and make_number as needed
11610 to convert between (unsigned) int values and lisp integers.
11611 * keyboard.c (read_key_sequence): Likewise.
11612 * lread.c (substitute_object_recurse): Likewise.
11613 * fns.c (concat, hash_lookup, hash_remove): Likewise.
11614 * minibuf.c (do_completion, Fminibuffer_complete_word)
11615 (Fminibuffer_completion_help): Likewise.
11616 * term.c (produce_special_glyphs): Likewise.
11617
11618 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
11619 * print.c (print_preprocess, print_object): Likewise.
11620
11621 * search.c (compile_pattern): Use NILP when checking for nil.
11622
11623 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
11624 __OPTIMIZE__]: Provide a GNU C macro version that handles
11625 lisp-object unions.
11626 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
11627 field, to better cope with ENABLE_CHECKING and calls that modify a
11628 Lisp_Object using its old value.
11629
11630 2000-04-04 Gerd Moellmann <gerd@gnu.org>
11631
11632 * window.c (compare_window_configurations): Signal an error
11633 if parameters C1 or C2 aren't window configurations.
11634
11635 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
11636 AFTER_POTENTIAL_GC calls around calls to functions that can
11637 signal an error and thus invoke the debugger.
11638
11639 2000-04-03 Gerd Moellmann <gerd@gnu.org>
11640
11641 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
11642 an error if decoding fails.
11643
11644 * keyboard.c (lispy_mouse_names): Variable removed.
11645 (Vlispy_mouse_stem): New variable.
11646 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
11647 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
11648 for any mouse button number. Increase size of mouse_syms and
11649 button_down_location as needed. Call modify_event_symbol with
11650 different arguments.
11651 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
11652 Call modify_event_symbol with different arguments.
11653 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
11654 for any button number. Call modify_event_symbol with different
11655 arguments.
11656 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
11657 Accept a string for NAME_ALIST_OR_STEM.
11658
11659 * lisp.h (larger_vector): Add prototype.
11660
11661 * fns.c (larger_vector): Make externally visible.
11662
11663 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
11664
11665 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
11666
11667 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
11668 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
11669 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
11670 we are between str1 and str2.
11671 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
11672 (PATFETCH): Use `TRANSLATE'.
11673 (PATFETCH_RAW): Fetch multibyte char if applicable.
11674 (PATUNFETCH): Remove.
11675 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
11676 When writing a char, write it directly into the pattern buffer rather
11677 than going needlessly through a temp char-array.
11678 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
11679 multibyte magic and remove the useless `#ifdef emacs'.
11680 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
11681 buffer.
11682
11683 * regex.h (struct re_pattern_buffer): Make field `multibyte'
11684 conditional on `emacs'.
11685
11686 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
11687
11688 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11689
11690 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
11691 non-union-type versions of XMARK and friends here, because XMARK
11692 and friends won't work on an integer field if NO_UNION_TYPE is not
11693 defined.
11694 (make_number): Define as a function if it's not defined as a macro.
11695
11696 * composite.c (run_composite_function): Use NILP when checking for nil.
11697 (syms_of_composite): Delete local var NARGS, pass an int as first
11698 argument to Fmake_hash_table.
11699
11700 * editfns.c (text_property_stickiness): Use NILP to test
11701 Lisp_Object boolean value.
11702 (Fmessage_or_box): Don't use NILP to test int variable.
11703 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
11704 problems reading from and changing the same lisp value in an
11705 XSETSTRING call.
11706
11707 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11708
11709 * term.c (TN_no_color_video): New variable.
11710 (term_init): Intitialize TN_no_color_video.
11711 (enum no_color_bit): New enumeration.
11712 (MAY_USE_WITH_COLORS_P): New macro.
11713 (turn_on_face): Use it to determine if attributes may be used
11714 combined with colors.
11715
11716 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11717
11718 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
11719 with int lvalues via casts; instead, just yield lisp object lvalues.
11720 (enlarge_window): Variable sizep now points to Lisp_Object. Use
11721 proper accessor macros.
11722 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
11723 (grow_mini_window): Fix typo getting int value of root->height.
11724
11725 * xdisp.c (compute_string_pos): Fix order of arguments to
11726 string_pos_nchars_ahead.
11727 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
11728 count arg to variable-arg routines like Frun_hook_with_args and
11729 Fformat.
11730 (back_to_previous_visible_line_start)
11731 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
11732 fixed-arg routines like Fget_char_property and Fmake_string.
11733 (reconsider_clip_changes): Use XINT when comparing integer lisp
11734 objects, or passing them as int arguments.
11735 (mark_window_display_accurate, insert_left_trunc_glyphs)
11736 (append_space, extend_face_to_end_of_line): Use make_number when
11737 storing or passing integer values as lisp objects.
11738 (set_cursor_from_row, highlight_trailing_whitespace): Use
11739 INTEGERP, not implicit test against zero, for glyph object.
11740 (try_window_id): Don't use make_number when we want an int value.
11741
11742 * xfaces.c (xlfd_symbolic_value): Make last argument a
11743 Lisp_Object, to be consistent with callers.
11744 (Fbitmap_spec_p): Use XINT to get numeric value of height.
11745 (lface_hash): Apply XFASTINT to lisp values before folding in.
11746
11747 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
11748 fill in window width and height. Pass an int, not a lisp object,
11749 as first arg to Finsert.
11750
11751 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11752
11753 * xfaces.c (realize_basic_faces): Block input while realizing
11754 the faces.
11755
11756 * keyboard.c (lispy_mouse_names): Add additional mouse names.
11757
11758 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
11759
11760 2000-03-31 Gerd Moellmann <gerd@gnu.org>
11761
11762 * xterm.c (x_produce_glyphs): When displaying unibyte text
11763 or ASCII, handle case that per-char metric is null.
11764
11765 2000-03-30 Ken Raeburn <raeburn@gnu.org>
11766
11767 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
11768
11769 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
11770 (XSUBR, XBUFFER): Verify correct object type before returning
11771 pointer, using eassert.
11772 * frame.h (XFRAME): Likewise.
11773
11774 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
11775 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
11776 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
11777 * data.c (set_internal): Likewise.
11778 * dispextern.h (WINDOW_WANTS_MODELINE_P)
11779 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
11780 * fileio.c (auto_save_1): Likewise.
11781 * insdel.c (check_markers): Likewise.
11782 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
11783 * undo.c (record_insert): Likewise.
11784 * vmsproc.c (child_sig): Likewise.
11785 * window.c (unshow_buffer, window_loop): Likewise.
11786 * xterm.c (x_erase_phys_cursor): Likewise.
11787
11788 2000-03-30 Gerd Moellmann <gerd@gnu.org>
11789
11790 * xfns.c (free_image_cache): Free the cache structure itself
11791 last, after all its members have been freed.
11792
11793 * lisp.h (xstrdup): Add prototype.
11794
11795 * alloc.c (xstrdup): Moved here from xfaces.c.
11796 (allocating_for_lisp): Variable removed.
11797 (lisp_malloc): Block input around the calls to malloc and mem_insert.
11798
11799 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11800 of Fsymbol_value.
11801 (xstrdup): Moved to alloc.c.
11802
11803 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11804
11805 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11806
11807 * emacs.c (main): Fix sense of no-loadup test.
11808
11809 * config.in (ENABLE_CHECKING): Undef.
11810
11811 * lisp.h (struct interval): Replace "parent" field with a union of
11812 interval pointer and Lisp_Object; add new bitfield to use as
11813 discriminant. Change other flag fields to bitfields.
11814 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11815 is defined and the supplied test fails, print a message and abort.
11816 (eassert): New macro. Use CHECK to provide an assert-like facility.
11817
11818 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11819 pointers; abort if the value looks like a lisp object.
11820 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11821 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11822 Modify for new interval parent definition.
11823
11824 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11825 (UNMARK_BALANCE_INTERVALS): Update references that need an
11826 addressable lisp object in the interval structure.
11827 (die): New function.
11828 (suppress_checking): New variable.
11829
11830 * intervals.c (interval_start_pos): Just return 0 if there's no
11831 parent object.
11832
11833 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11834
11835 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11836 and earlier Emacs versions.
11837
11838 * keyboard.c (Ftop_level): Cancel busy-cursor.
11839
11840 * eval.c (call_debugger): Cancel busy-cursor.
11841
11842 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11843
11844 * search.c (Freplace_match): Adjust multibyteness of the current
11845 buffer and NEWTEXT. Free allocated memory before signaling an error.
11846
11847 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11848
11849 * regex.c (analyse_first): New function obtained by ripping out most
11850 of re_compile_fastmap and generalizing it a little bit so that it
11851 can also just return whether a given (sub)pattern can match the empty
11852 string or not.
11853 (regex_compile): Use `analyse_first' to decide whether the loop-check
11854 needs to be done or not for *, +, *? and +? (the loop check is costly
11855 for non-greedy repetition).
11856 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11857
11858 2000-03-28 Dave Love <fx@gnu.org>
11859
11860 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11861
11862 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11863
11864 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11865
11866 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11867 an expression.
11868 (enum re_opcode_t): Update description of succeed_n.
11869 (PATFETCH): Always define.
11870 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11871 operators, char classes, shy-groups and intervals).
11872 Optimize special cases of intervals so as to only use succeed_n and
11873 jump_n when really needed.
11874 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11875 that we don't have to handle the special cases any more.
11876 Simplify on_failure_jump handling as well.
11877
11878 2000-03-28 Jason Rumney <jasonr@gnu.org>
11879
11880 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11881
11882 2000-03-27 Gerd Moellmann <gerd@gnu.org>
11883
11884 * s/freebsd.h (GC_SETJMP_WORKS): Define.
11885
11886 * s/msdos.h (GC_SETJMP_WORKS): Define.
11887
11888 * alloc.c (mark_maybe_object): New function.
11889 (mark_memory): Use it.
11890 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
11891 (setjmp_tested_p, longjmp_done): New variables.
11892 (test_setjmp): New function.
11893 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
11894 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
11895
11896 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11897 to DEC_TEXT_POS and INC_TEXT_POS.
11898
11899 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11900 with parameter MULTIBYTE_P.
11901
11902 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11903
11904 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11905 buffers because it looks for multibyte character byte sequences
11906 which don't exist in unibyte text.
11907
11908 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11909
11910 * xfaces.c (register_color, unregister_color, unregister_colors)
11911 [DEBUG_X_COLORS]: New functions.
11912 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11913
11914 * xfns.c (x_set_cursor_color): Get color reference counts right.
11915
11916 * xterm.c (x_copy_color): New function.
11917 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11918
11919 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11920 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11921 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11922 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11923 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11924 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11925 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11926 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11927 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11928 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11929
11930 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11931 names for handling per-buffer variables.
11932
11933 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11934 instead of MAX_BUFFER_LOCAL_VARS.
11935 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11936
11937 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11938
11939 * xfns.c (x_specified_cursor_type): New function.
11940 (x_set_cursor_type): Use it.
11941
11942 * buffer.h (struct buffer): Add cursor_type.
11943
11944 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11945
11946 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11947 (print_partial_compiled_pattern, re_compile_fastmap):
11948 Handle new opcode.
11949 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11950 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11951 executing it as well as when popping it off the stack to find infinite
11952 loops in non-greedy repetition operators.
11953
11954 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11955
11956 * doc.c (Qfunction_documentation): New variable.
11957 (syms_of_doc): Initialize Qfunction_documentation.
11958 (Fdocumentation): If FUNCTION is a symbol with non-nil
11959 `function-documentation' property, return a documentation derived
11960 from that.
11961
11962 * buffer.c (syms_of_buffer): Add default-cursor-type.
11963 (init_buffer_once): Don't let cursor_type have a local value
11964 in every buffer.
11965
11966 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11967 on buffer-local value of cursor_type.
11968 (x_draw_bar_cursor): Add parameter WIDTH.
11969
11970 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11971 (init_buffer_once): Set default cursor_type value to t.
11972 Mark cursor_type as local everywhere.
11973 (syms_of_buffer): New per-buffer variable cursor-type.
11974
11975 * buffer.h (struct buffer): Remove member local_var_flags,
11976 add local_flags.
11977 (MAX_BUFFER_LOCAL_VARS): New macro.
11978 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11979 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11980 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11981 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11982
11983 * print.c (print_object): Use new macros for per-buffer variables.
11984
11985 * category.c (Fset_category_table): Use new macros for per-buffer
11986 variables.
11987
11988 * buffer.c (buffer_permanent_local_flags): Make a char array.
11989 (max_buffer_local_idx): New variable.
11990 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11991 for new handling of per-buffer variables.
11992 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11993 (init_buffer_once): Initialize per-buffer vars differently.
11994 Set max_buffer_local_idx.
11995
11996 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11997 variables.
11998
11999 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
12000
12001 * data.c (do_symval_forwarding, store_symval_forwarding)
12002 (find_symbol_value, set_internal, default_value, Fset_default)
12003 (Fkill_local_variable, Flocal_variable_p): Use new macros for
12004 per-buffer variables.
12005
12006 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
12007
12008 2000-03-24 Gerd Moellmann <gerd@gnu.org>
12009
12010 * xterm.c (x_term_init): Unblock input around call1 of
12011 Qvendor_specific_keysyms.
12012
12013 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
12014 (find_defun_start): Consider an open parenthesis in column 0
12015 a defun start only if open_paren_in_column_0_is_defun_start is set.
12016 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
12017
12018 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
12019
12020 * eval.c (Fautoload): Add entry in load-history (if after dump).
12021 * lread.c (load-history): Update docstring.
12022
12023 2000-03-24 Gerd Moellmann <gerd@gnu.org>
12024
12025 * indent.c (Fvertical_motion): Always use the current buffer.
12026 Temporarily change the window's buffer, if necessary.
12027
12028 2000-03-23 Gerd Moellmann <gerd@gnu.org>
12029
12030 * xterm.c (fast_find_position): Make sure not to consider rows
12031 not visible in the window.
12032
12033 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
12034
12035 * regex.c (enum syntaxcode): Provide default for non-Emacs.
12036 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
12037
12038 2000-03-22 Jason Rumney <jasonr@gnu.org>
12039
12040 * w32menu.c (single_submenu): Set help string to NULL if none.
12041 (w32_menu_show): Set help string correctly.
12042 (add-menu-item): Set help string in MIIM_DATA for menu item.
12043 Load SetMenuItemInfoA explicitly.
12044 (w32_menu_display_help): New function.
12045
12046 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
12047 (QCdata): Moved to xdisp.c.
12048
12049 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
12050 (Vw32_charset_to_codepage_alist): Removed.
12051 (Vw32_charset_info_alist): New variable.
12052 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
12053 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
12054 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
12055 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
12056 with TODO comment.
12057 (w32_codepage_for_font): Use Vw32_charset_info_alist.
12058 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
12059 Define Vw32_charset_info_alist and w32_charset symbols.
12060
12061 2000-03-22 Jason Rumney <jasonr@gnu.org>
12062
12063 * makefile.nt (w32bdf.obj): Update dependencies.
12064
12065 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
12066
12067 * w32fns.c: Include fontset.h after dispextern.h.
12068 (Fx_create_frame): Do not create fontset.
12069 (w32_load_system_font): Doc fix.
12070 (Fx_close_connection): Free full_name if it is not shared.
12071
12072 * w32term.c: Include fontset.h after dispextern.h.
12073 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
12074 Callers updated.
12075 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
12076 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
12077 (w32_font_is_double_byte): New function, needs body.
12078 (x_append_glyph): Set glyph->glyph_not_available_p.
12079 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12080 it->charset. If it->multibyte_p is zero and it->c is a multibyte
12081 character, convert it to a unibyte character.
12082 (struct glyph_string): Delete member `charset'.
12083 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
12084 calculating it is found.
12085 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12086 the case that per char metric is not available correctly.
12087 (x_fill_glyph_string): Handle the case that the specific glyph is
12088 not available correctly.
12089 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12090 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12091 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12092 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12093 fontset. Don't call FS_LOAD_FONT.
12094
12095 2000-03-22 Ken Raeburn <raeburn@gnu.org>
12096
12097 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
12098 (INT_LISPLIKE): New macro.
12099 (NULL_INTERVAL_P): Use it.
12100 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
12101 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
12102 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
12103
12104 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
12105 explicit references to "parent" field of struct interval and
12106 associated unclean type conversions.
12107 * intervals.c (create_root_interval, root_interval, rotate_right)
12108 (rotate_left, balance_possible_root_interval, split_interval_right)
12109 (split_interval_left, interval_start_pos, find_interval)
12110 (next_interval, previous_interval, update_interval)
12111 (adjust_intervals_for_insertion, delete_node, delete_interval)
12112 (adjust_intervals_for_deletion, merge_interval_right)
12113 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
12114 (copy_intervals_to_string): Likewise.
12115 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
12116 Likewise.
12117 * syntax.c (update_syntax_table): Likewise.
12118
12119 * intervals.c (reproduce_tree_obj): New function, like
12120 reproduce_tree but takes a Lisp_Object for the parent. Declare
12121 with prototype.
12122 (graft_intervals_into_buffer): Use it when appropriate.
12123 (reproduce_tree): Declare with prototype.
12124 (balance_possible_root_interval): Check that the parent is a lisp
12125 object before trying to examine its type.
12126
12127 2000-03-22 Gerd Moellmann <gerd@gnu.org>
12128
12129 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
12130 as strings only if both are known to be strings.
12131
12132 * s/openbsd.h (LIBS_TERMCAP): Undef.
12133
12134 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
12135
12136 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
12137 definitions for non-Emacs compilation.
12138 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
12139 outside of `#ifdef emacs'.
12140 (print_partial_compiled_pattern): Update.
12141 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
12142 (re_compile_fastmap): Merge handling of charset and charset_not (for
12143 emacs and non-emacs compilation as well).
12144 Similarly for (not)categoryspec and (not)syntaxspec.
12145 Don't use the fastmap when reaching `anychar' since the added
12146 complexity is not justified.
12147 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
12148 and (not)syntaxspec. Merge (not)categoryspec.
12149
12150 2000-03-22 Kenichi Handa <handa@etl.go.jp>
12151
12152 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
12153 (FACE_FOR_CHAR): Define them differently for the configuration of
12154 --without-x.
12155
12156 2000-03-21 Dave Love <fx@gnu.org>
12157
12158 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
12159 doc string.
12160
12161 2000-03-21 Gerd Moellmann <gerd@gnu.org>
12162
12163 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
12164 (lface_fully_specified_p): Don't check contents of
12165 LFACE_FONT_INDEX because that attribute is optional.
12166 (realize_x_face): Remove now unwarranted xassert.
12167
12168 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
12169
12170 The following changes are to make font selection based on
12171 characters, not charset. In addition, they recover fontset
12172 facilities while utilizing the new font selection mechanism.
12173
12174 * Makefile.in (fontset.o): Depend on dispextern.h.
12175
12176 * alloc.c (mark_face_cache): Don't mark face->registry.
12177
12178 * dispextern.h (struct glyph): New member glyph_not_available_p.
12179 Use 22 bits for face_id.
12180 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
12181 (struct face): Delete member registry, new member ascii_face.
12182 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
12183 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
12184 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
12185 (struct it): Delete member charset, new member glyph_not_available_p.
12186
12187 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
12188 (struct fontset_info, struct fontset_data): Structs removed.
12189 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
12190 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
12191 (fs_load_font, fs_query_fontset): Adjusted for new argument.
12192 (fs_free_face_fontset, fontset_font_pattern)
12193 (face_suitable_for_char_p, face_for_char)
12194 (make_fontset_for_ascii_face): Extern them.
12195 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
12196 (FS_LOAD_FACE_FONT): New macro.
12197
12198 * fontset.c: All codes rewritten or adjusted for the change of
12199 fontset implementation. Now fontset is represented by char table.
12200 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
12201 Variables removed.
12202 (my_strcasecmp): Function removed.
12203 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
12204 (AREF, ASIZE): New macros.
12205 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
12206 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
12207 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
12208 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
12209 (fontset_id_valid_p, font_family_registry, fontset_name)
12210 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
12211 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
12212 New functions.
12213 (fs_load_font): New arg FACE. Caller changed.
12214 (fs_query_fontset): Argument changed. Caller changed.
12215 (Fquery_fontset): call fs_query_fontset.
12216 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
12217 Functions removed.
12218 (clear_fontset_elements, check_registry_encoding)
12219 (check_fontset_name): New functions.
12220 (syms_of_fontset): Set char-table-extra-slots property of fontset
12221 to 3. Staticpro and initialize Vfontset_table and
12222 Vdefault_fontset. Defsubr fontset_font and fontset_list.
12223
12224 * frame.h (struct frame): Member `fontset_data' removed.
12225 (FRAME_FONTSET_DATA): Macro removed.
12226
12227 * frame.c (make_frame): Don't allocate f->fontset_data.
12228 (Fdelete_frame): Don't free f->fontset_data.
12229
12230 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
12231
12232 * xdisp.c (charset_at_position): Function removed.
12233 (init_iterator): Don't set member charset of struct `it'.
12234 (handle_face_prop, reseat_to_string, set_iterator_to_next)
12235 (next_element_from_display_vector, insert_left_trunc_glyphs):
12236 Likewise.
12237 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
12238 FACE_FOR_CHARSET.
12239 (get_next_display_element, append_space)
12240 (extend_face_to_end_of_line): Likewise.
12241
12242 * xfaces.c (Qx_charset_registry, Vface_default_registry):
12243 Variables removed.
12244 (clear_font_table, frame_update_line_height, load_face_font):
12245 Adjusted for the change of fontset implementation.
12246 (load_face_fontset_font): Function removed.
12247 (pixel_point_size): New function.
12248 (font_list): Argument type changed. Caller changed.
12249 (LFACE_FONT): New macro.
12250 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
12251 (set_lface_from_font_name): Type of arg FONTNAME is changed to
12252 Lisp_Object. Determine the font name by actually loading a font
12253 by the specified pattern. Set LFACE_FONT (lface) to the specified
12254 pattern. Even if a font is not found, don't try alternatives.
12255 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
12256 (set_font_frame_param): If `font' is specified in lface, use it.
12257 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
12258 (lface_same_font_attributes_p): Likewise.
12259 (make_realized_face): Arguent changed. Caller changed. Set
12260 face->ascii_face to face itself.
12261 (free_realized_face): Free face->fontset if face is for ASCII.
12262 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
12263 (deduce_unibyte_registry, x_charset_registry): Functions removed.
12264 (free_realized_multibyte_face): New function.
12265 (lookup_face, lookup_named_face, lookup_derived_face): Argument
12266 changed. Caller changed.
12267 (try_font_list): Argument type changed.
12268 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
12269 (choose_face_font): Argument changed. Handle fontset properly.
12270 (choose_face_fontset_font): Function removed.
12271 (realize_default_face, realize_named_face): Don't remove the
12272 former face here.
12273 (realize_face): Argument changed. Caller changed. Remove face
12274 with the arg former_face_id in advance. Load font for the new face.
12275 (realize_x_face): Argument changed. Caller changed. For a
12276 multibyte character, share fontset with base_face. For a single
12277 byte character, make a new realized fontset. Don't load a font here.
12278 (realize_tty_face): Argument changed. Caller changed.
12279 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
12280 (face_at_buffer_position): Don't check multibyte_p for returning
12281 DEFAULT_FACE_ID.
12282 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
12283 FACE_SUITABLE_FOR_CHARSET_P.
12284 (syms_of_xfaces): Remove code for Qx_charset_registry and
12285 Vface_default_registry.
12286
12287 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
12288 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
12289 (x_per_char_metric): Don't try FONT->default_char. Even if
12290 pcm->width is zero, glyph bits may exist.
12291 (x_encode_char): Always initialize char2b->byte1.
12292 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
12293 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
12294 (x_append_glyph): Set glyph->glyph_not_available_p.
12295 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12296 it->charset. Handle the case that per char metric is not
12297 available. If it->multibyte_p is zero and it->c is a multibyte
12298 character, convert it to a unibyte character.
12299 (struct glyph_string): Delete member `charset'.
12300 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12301 the case that per char metric is not available correctly.
12302 (x_fill_glyph_string): Handle the case that the specific glyph is
12303 not available correctly.
12304 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12305 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12306 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12307 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12308 fontset. Don't call FS_LOAD_FONT.
12309
12310 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
12311 (x_create_tip_frame): Likewise.
12312 (Fx_close_connection): Free full_name of font_info.
12313
12314 * fns.c (optimize_sub_char_table): New function.
12315 (Foptimize_char_table): New function.
12316 (syms_of_fns): Defsubr Soptimize_char_table.
12317
12318 2000-03-20 Gerd Moellmann <gerd@gnu.org>
12319
12320 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
12321 only if buffer is displayed in some window.
12322
12323 * xdisp.c (handle_single_display_prop): Initialize local `value'.
12324 (try_window_reusing_current_matrix): Don't call scroll run
12325 function if run's current and desired position are the same;
12326 this prevents cursor flickering.
12327
12328 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
12329
12330 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
12331
12332 * regex.c (RE_STRING_CHAR): New macro.
12333 (GET_CHAR_AFER_2): Remove.
12334 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
12335 (enum re_opcode_t): Remove on_failure_jump_exclusive.
12336 (print_partial_compiled_pattern, re_compile_fastmap)
12337 (re_match_2_internal): Remove on_failure_jump_exclusive.
12338 (regex_compile): Turn optimizable P+ loops into PP*, so that the
12339 optimization only need to work for * (ie. can use of_keep_string_jump).
12340 Remove the special case for .*\n since it is now covered by the general
12341 optimization.
12342 (re_search_2): Don't bother with `room'.
12343 (skip_one_char): New function.
12344 (skip_noops): Simplify since `memory' is not needed any more.
12345 (mutually_exclusive_p): Restructure slightly to use `switch' and
12346 add handling for "all" remaining cases.
12347 (re_match_2_internal): Change on_failure_jump_smart to use
12348 on_failure_keep_string_jump (and redirect the end-of-loop jump)
12349 rather than on_failure_jump_exclusive.
12350
12351 2000-03-19 Gerd Moellmann <gerd@gnu.org>
12352
12353 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
12354 number of bits per RGB because it's everywhere used as the depth
12355 of the visual.
12356
12357 * term.c (calculate_costs): Remove code dealing with X frames.
12358
12359 2000-03-19 Richard M. Stallman <rms@gnu.org>
12360
12361 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
12362
12363 2000-03-18 Gerd Moellmann <gerd@gnu.org>
12364
12365 * lread.c (read_integer): Unread the last char not consumed.
12366
12367 2000-03-17 Gerd Moellmann <gerd@gnu.org>
12368
12369 * xterm.c (x_update_window_cursor): Don't update in frames
12370 which are in the process of being deleted.
12371
12372 2000-03-16 Gerd Moellmann <gerd@gnu.org>
12373
12374 * Makefile.in (mostlyclean): Add `*.core'.
12375 (clean): Add `bootstrap-emacs'.
12376
12377 * lread.c (read_integer): New function.
12378 (read1): Support read syntax #o, #x, #b, #r.
12379
12380 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
12381
12382 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
12383 make sure POINTER_TO_OFFSET gives the same value before and after
12384 PREFETCH. Use `dfail' to guarantee "atomic" matching.
12385 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
12386 (debug): Now only active if > 0 rather than if != 0.
12387 (DEBUG_*): Update for the new meaning of `debug'.
12388 (print_partial_compiled_pattern): Add missing `succeed' case. Use
12389 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
12390 in `succeed_n', `jump_n' and `set_number_at'.
12391 (store_op1, store_op2, insert_op1, insert_op2)
12392 (at_begline_loc_p, at_endline_loc_p): Add prototype.
12393 (group_in_compile_stack): Move to after its arg's types are
12394 declared and add a prototype.
12395 (PATFETCH): Define in terms of PATFETCH_RAW.
12396 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
12397 (QUIT): Redefine as a nop except for NTemacs.
12398 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
12399 indentation of the greedy-op and shy-group code.
12400 (at_(beg|end)line_loc_p): Fix argument's types.
12401 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
12402 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
12403 (MATCHING_IN_FIRST_STRING): Remove.
12404 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
12405 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
12406 QUIT unconditionally.
12407
12408 2000-03-15 Gerd Moellmann <gerd@gnu.org>
12409
12410 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
12411 a sole completion.
12412
12413 * process.c (send_process): Add a hint that the function
12414 can call Lisp code to its comment.
12415
12416 * lread.c (load_dangerous_libraries): New variable.
12417 (Vbytecomp_version_regexp): New variable.
12418 (safe_to_load_p): New function.
12419 (Fload): Handle files not compiled with Emacs specially.
12420 (syms_of_lread): New Lisp variable load-dangerous-libraries.
12421
12422 2000-03-14 Gerd Moellmann <gerd@gnu.org>
12423
12424 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
12425
12426 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
12427 support functions only if HAVE_X11R6_XIM is defined.
12428 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
12429
12430 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
12431
12432 * xfns.c (X_I18N_INHIBITED): Don't define.
12433 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
12434 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
12435
12436 * config.in (HAVE_X_I18N): Moved here from xterm.h.
12437 (HAVE_X11R6_XIM): Define.
12438
12439 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
12440
12441 * xterm.c (x_term_init): Add support for X resource `synchronous'.
12442 If set, call XSynchronize.
12443
12444 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
12445
12446 * regex.c: Declare a new type `re_char' used throughout the code
12447 for the string char type. It's `const unsigned char' to match the
12448 rest of Emacs. Consistently make sure all pointers to strings use
12449 it and make sure all pointers into the pattern use `unsigned char'.
12450 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
12451 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
12452 code duplication.
12453
12454 * charset.h (GET_CHAR_AFTER_2): Remove.
12455 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
12456
12457 2000-03-12 Ken Raeburn <raeburn@gnu.org>
12458
12459 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
12460 variable before the invocation of YMF_PASS_LDFLAGS, in case both
12461 of them try to use backquotes.
12462
12463 2000-03-12 Dave Love <fx@gnu.org>
12464
12465 * unexelf.c: Restore changes of 1999-10-19.
12466 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
12467 fix its type and alignment; copy it from current process.
12468
12469 2000-03-12 Gerd Moellmann <gerd@gnu.org>
12470
12471 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
12472 has been found. Fix bug not computing timer's predecessor.
12473
12474 * fileio.c (Fread_file_name): Handle case that DIR contains a
12475 file name.
12476
12477 * window.c (Fsave_window_excursion): Doc fix.
12478
12479 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
12480
12481 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
12482
12483 * msdos.c (vga_installed): New function, code moved from
12484 dos_set_window_size.
12485 (Qbar, Qcursor_type, outside_cursor): New variables.
12486 (syms_of_msdos): Intern and staticpro them.
12487 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
12488 shape used outside Emacs when called for the first time.
12489 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
12490 cursor shape used outside Emacs.
12491 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
12492 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
12493 type has changed.
12494 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
12495 parameters specify the cursor. Make qreverse a global
12496 variable (renamed to Qreverse).
12497
12498 2000-03-09 Gerd Moellmann <gerd@gnu.org>
12499
12500 * fns.c (Fy_or_n_p): Cancel busy-cursor.
12501
12502 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
12503
12504 This is a big redesign of failure-stack and register handling, prompted
12505 by bugs revealed when trying to add shy-groups. Overall, what happened
12506 is that loops are now structured a little differently, groups can be
12507 shy and the code is a little simpler.
12508
12509 * regex.h: Update the copyright.
12510 (RE_SHY_GROUPS): New value.
12511 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
12512 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
12513
12514 * regex.c (enum re_opcode_t): Remove jump_past_alt,
12515 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
12516 on_failure_jump_(exclusive, loop and smart). Also fix the comment
12517 for (start|stop)_memory since they now only take one argument (the
12518 second has becomes unnecessary).
12519 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
12520 (print_compiled_pattern): Use %ld to printf long ints and flush to
12521 make debugging a little easier.
12522 (union fail_stack_elt): Make the integer unsigned.
12523 (struct fail_stack_type): Add a `frame' element.
12524 (INIT_FAIL_STACK): Init `frame' as well.
12525 (POP_PATTERN_OP): New macro for re_compile_fastmap.
12526 (DEBUG_PUSH, DEBUG_POP): Remove.
12527 (NUM_REG_ITEMS): Remove.
12528 (NUM_NONREG_ITEMS): Adjust.
12529 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
12530 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
12531 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
12532 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
12533 New macros.
12534 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
12535 address pushed is not the destination of the jump but the source
12536 of it instead.
12537 (NUM_FAILURE_ITEMS): Remove.
12538 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
12539 registers before the actual failure point). Don't hardcode any
12540 meaning for str==NULL anymore.
12541 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
12542 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
12543 Remove.
12544 (REG_UNSET_VALUE): Use NULL (why not?).
12545 (compile_range): Remove declaration since it doesn't exist.
12546 (struct compile_stack_elt_t): Remove inner_group_offset.
12547 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
12548 (regex_grow_registers): Remove dead code.
12549 (FIXUP_ALT_JUMP): New macro.
12550 (regex_compile): Add shy-groups Change loops to use
12551 on_failure_jump_smart&jump instead of
12552 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
12553 initial (dummy_failure_)jump. Remove c1_base (looks like unused
12554 variable to me). Use `jump' instead of `jump_past_alt' and don't
12555 bother with push_dummy_failure in alternatives since it is now
12556 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
12557 emacs' for (re)allocating the stack.
12558 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
12559 from loop when bufp->can_be_null rather than jumping to `done'.
12560 Avoid jumping backwards so as to ensure termination. Use
12561 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
12562 backreferences. Remove dead code in handling of `anychar'.
12563 (skip_noops, mutually_exclusive_p): New functions taken from the
12564 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
12565 improve mutually_exclusive_p to handle ".+\n".
12566 (lowest_active_reg, highest_active_reg)
12567 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
12568 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
12569 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
12570 variables. Push register (in `start_memory') on the stack rather
12571 than storing it in old_reg(start|end). Remove the cycle detection
12572 from `stop_memory', replaced by the use of on_failure_jump_loop
12573 for greedy loops. Add code for the new on_failure_jump_<foo>.
12574 Remove ad-hoc code in `on_failure_jump' to push more registers in
12575 the case of a loop. Take out code from `maybe_pop_jump' into
12576 separate functions and adapt it to the semantics of
12577 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
12578 and push_dummy_failure. Remove dummy_failure handling and
12579 handling of `failures to jump to on_failure_jump' (this last one
12580 was already dead code, it seems).
12581 (group_match_null_string_p, alt_match_null_string_p)
12582 (common_op_match_null_string_p): Remove.
12583
12584 2000-03-08 Dave Love <fx@gnu.org>
12585
12586 * config.in: Don't depend on __STDC__ for volatile.
12587 Add POINTER_TYPE, PTR, PROTOTYPES.
12588
12589 * hftctl.c, strftime.c: Use PROTOTYPES.
12590 * eval.c (find_handler_clause): Likewise.
12591
12592 * mem-limits.h: Use POINTER_TYPE.
12593
12594 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
12595 (memory_warnings): Declare using POINTER_TYPE.
12596
12597 2000-03-08 Gerd Moellmann <gerd@gnu.org>
12598
12599 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
12600
12601 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
12602
12603 * xfns.c: Remove obsolete code in #if 0.
12604 (Fx_focus_frame): New function.
12605
12606 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12607
12608 * coding.c (coding_category_name): Add coding-category-utf-8,
12609 coding-category-utf-16-be, coding-category-utf-16-le.
12610 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
12611 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
12612 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
12613 (detect_coding_utf_8): New function.
12614 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
12615 UTF_16_LOW_SURROGATE_P): New macros.
12616 (detect_coding_utf_16): New function
12617 (detect_coding_mask): When priorities are specified, skip any
12618 categories that have `nil' coding-system. Fix bug of returning
12619 wrong mask when PRIORITIES is specified and detect_coding_XXX()
12620 returns a mask not set in PRIORITIES.
12621 (detect_eol_type_in_2_octet_form): New function.
12622 (detect_eol): selects detect_eol_type_XXX to call according to
12623 cooding->category_idx.
12624 (detect_coding_system): Remove `nil' coding-system in the result.
12625 (Fupdate_coding_systems_internal): Update all coding-categories.
12626
12627 * coding.h (CODING_CATEGORY_IDX_UTF_8)
12628 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
12629 New macros.
12630 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
12631 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
12632 (CODING_CATEGORY_IDX_UTF_16_LE)
12633 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
12634 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
12635 (CODING_CATEGORY_MASK_ANY): Include the above macros.
12636 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
12637
12638 2000-03-07 Gerd Moellmann <gerd@gnu.org>
12639
12640 * doc.c (Fdocumentation_property): If value is not a string,
12641 and doesn't refer to etc/DOC, evaluate it to obtain a string.
12642
12643 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
12644 close the display with XtCloseDisplay. This caused a bus error
12645 on OpenWindows.
12646
12647 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
12648 complete but not unique.
12649
12650 2000-03-06 Gerd Moellmann <gerd@gnu.org>
12651
12652 * process.c (send_process): Remove local variable `procname' that
12653 might become invalid when a GC happens. Instead, access the
12654 process name slot directly.
12655
12656 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
12657 orig_height if set.
12658
12659 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
12660 orig_height if set.
12661
12662 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
12663
12664 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
12665 glyph matrices have been freed.
12666
12667 2000-03-05 Gerd Moellmann <gerd@gnu.org>
12668
12669 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
12670 (bootstrap-temacs): Set LC_ALL to C like for temacs.
12671
12672 * xfns.c (QCdata): Moved to xdisp.c.
12673
12674 * xdisp.c (QCdata): Moved here from xfns.c.
12675 (syms_of_xdisp): Initialize QCdata.
12676
12677 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
12678
12679 * window.c (coordinates_in_window): Use
12680 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
12681 FRAME_INTERNAL_BORDER_WIDTH.
12682
12683 * xdisp.c (try_window_id): Recompute unchanged information if
12684 it is obviously invalid.
12685
12686 * xterm.c (x_term_init): Create a colormap if not using the
12687 default visual.
12688
12689 * xterm.h (select_visual): Change prototype.
12690
12691 * xfns.c (select_visual): Rewritten. Recognize user-specified
12692 visual classes.
12693 (visual_classes): New variable.
12694
12695 2000-03-04 Gerd Moellmann <gerd@gnu.org>
12696
12697 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
12698 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
12699 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
12700 (x_decode_color): Don't handle allocation of white and black specially.
12701 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
12702 XtNcolormap resources.
12703 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
12704 (Fx_create_frame): Initialize color members of x_output structure.
12705 (xpm_load): Pass colormap to XPM lib.
12706
12707 * xfaces.c (x_free_colors): Access colormap of frame using
12708 FRAME_X_COLORMAP. Be paranoid about freeing black and white
12709 when default colormap is used.
12710
12711 * xterm.c (x_term_init): Set Colormap member of x_display_info
12712 structure. Copy colormap if resource `privateColormap' is
12713 specified (PseudoColor only).
12714 (x_setup_relief_color): Access colormap of frame using
12715 FRAME_X_COLORMAP.
12716
12717 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
12718 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
12719
12720 2000-03-04 Jason Rumney <jasonr@gnu.org>
12721
12722 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
12723 other non-platform-specific equivalents.
12724 [WINDOWSNT]: Include w32term.h, fontset.h and define X
12725 specific functions and macros as their w32 equivalents where
12726 non-platform-specifics are not available.
12727 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
12728 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
12729 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
12730 (frame_update_line_height): Use macros to access f->output_data.
12731 (defined_color): Remove FIXME comments; fixed.
12732 (x_face_list_fonts, prepare_face_for_display): Put X specifics
12733 into #ifdef blocks. Add WINDOWSNT blocks.
12734 (Fx_list_fonts): Use macros for accessing font data.
12735 (set_lface_from_font_name): Different default fonts for X and
12736 WINDOWSNT.
12737 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
12738 scalable for backward compatibility.
12739 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
12740 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
12741
12742 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
12743 syms_of_w32faces.
12744
12745 * makefile.nt (w32faces.obj): Remove.
12746 (xfaces.obj): Add.
12747
12748 2000-03-03 Jason Rumney <jasonr@gnu.org>
12749
12750 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
12751 correct parameters.
12752
12753 2000-03-03 Ken Raeburn <raeburn@gnu.org>
12754
12755 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
12756 standard ELF definitions here if the system header does not.
12757
12758 2000-03-03 Gerd Moellmann <gerd@gnu.org>
12759
12760 * xterm.c (PER_CHAR_METRIC): Removed.
12761 (x_per_char_metric_1, x_default_char): New functions.
12762 (x_per_char_metric): If font's default char is invalid, return
12763 metrics of a suitably chosen usable default char.
12764 (x_draw_glyph_string_foreground): If font has an invalid default
12765 char, replace occurrences of unprintable chars with a suitably
12766 chosen usable default char.
12767
12768 2000-03-02 Gerd Moellmann <gerd@gnu.org>
12769
12770 * xterm.c (note_mouse_highlight): Return quickly if frame's
12771 glyph matrices have been freed.
12772
12773 * dispnew.c (free_glyphs): Block input while freeing matrices.
12774
12775 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
12776
12777 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
12778 Use x_free_colors.
12779
12780 * dispextern.h (x_free_colors): Add prototype.
12781
12782 * xfaces.c (x_free_colors): New function.
12783 (unload_color, free_face_colors): Use it.
12784
12785 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
12786
12787 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
12788
12789 * window.c [MSDOS]: Include msdos.h.
12790
12791 2000-03-02 Dave Love <fx@gnu.org>
12792
12793 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
12794
12795 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
12796 set C_OPTIMIZE_SWITCH for gcc.
12797
12798 2000-03-02 Kenichi Handa <handa@etl.go.jp>
12799
12800 * coding.c (coding_save_composition): Be sure to allocate
12801 composition data area in coding even if there's no composition in
12802 the current run.
12803
12804 2000-03-01 Jason Rumney <jasonr@gnu.org>
12805
12806 * w32term.c: Equivalent changes to those made to xterm.c on
12807 2000-02-25 and 2000-02-24.
12808
12809 * w32fns.c: Equivalent changes to those made to xfns.c on
12810 2000-02-25 and 2000-02-21.
12811
12812 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12813 correct line-end convention is followed.
12814
12815 * w32menu.c [HAVE_BOXES]: Remove #undef.
12816 (single_keymap_panes): Remove code for simulating checkmarks.
12817 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12818 Remove code for drawing simulated checkmarks.
12819 (w32_menu_show): make unibyte help string correctly.
12820 (add_menu_item): draw standard Windows checkmarks. Draw radio
12821 buttons as radio buttons if possible.
12822
12823 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12824
12825 * sysdep.c (start_of_text): Don't define this function for NetBSD
12826 with ELF.
12827
12828 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12829 Don't define.
12830 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12831 (LINKER): Don't undef if __NetBSD__ is defined.
12832
12833 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12834
12835 * fileio.c [__NetBSD__]: Define `unix'.
12836
12837 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12838
12839 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12840
12841 * atimer.c (start_atimer): Don't abort when timers are stopped.
12842 (append_atimer_lists): New function.
12843 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12844 arbitrary lists of stopped and running atimers.
12845
12846 * atimer.c (cancel_atimer): Handle canceling an atimer when
12847 some timers are stopped.
12848
12849 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12850 after canceling it.
12851
12852 * fns.c (maybe_resize_hash_table): Handle case of new size
12853 coming out as being the same as old size.
12854
12855 2000-02-27 Jason Rumney <jasonr@gnu.org>
12856
12857 * makefile.nt: Add atimer.h to dependencies.
12858 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12859 * w32console.c: Only disable window system features for dispextern.h
12860 (initialize_w32_display): Build a display info for the console.
12861 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12862 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12863 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12864 as 2 button mice.
12865 * w32gui.h (struct W32FontStruct): Revert last change after change
12866 to xdisp.c.
12867 * w32menu.c (single_submenu): Set up help string.
12868 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12869 (w32_dialog_show): Set up help string.
12870 * w32term.c (w32_display_info_for_display): Remove unused function.
12871 (w32_draw_bitmap): Use pre-built bitmaps.
12872 (w32_initialize_display_info): New function to initialize parts of
12873 display info that are common to both GUI and console frames.
12874 (w32_term_init): Use w32_initialize_display_info. Do not set
12875 Vw32_num_mouse_buttons here, as it is not called for console
12876 frames. Build bitmaps for indicating truncated lines etc.
12877 (x_delete_display): Destroy pre-built bitmaps.
12878 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12879 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12880
12881 2000-02-27 Dave Love <fx@gnu.org>
12882
12883 * lisp.h: Add a bunch of prototypes.
12884
12885 2000-02-26 Kenichi Handa <handa@etl.go.jp>
12886
12887 * keyboard.c (read_char): Set `usec' correctly.
12888
12889 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12890
12891 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
12892 `lambda', set reg[RRR] to the map index.
12893 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
12894 reg[RRR] to 0. Otherwise, set it to -1.
12895
12896 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12897
12898 * emacs.c (main): Remove code snippet commented out with `//'.
12899
12900 2000-02-25 Richard M. Stallman <rms@gnu.org>
12901
12902 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12903 and contains a `:', prepend `/:'.
12904
12905 * window.c (select_window_1): If selected_window is nil,
12906 don't "swap out" the buffer's point.
12907 (Fset_window_configuration): Set selected_window to nil
12908 before calling Fselect_window.
12909 (unshow_buffer): Don't set point in buffer from window's point
12910 if another more recently selected window also shows the buffer.
12911
12912 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12913
12914 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12915
12916 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12917 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12918 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12919 New variables.
12920 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12921 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12922 (hide_busy_cursor): New functions.
12923 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12924
12925 * minibuf.c (read_minibuf): Cancel busy-cursor.
12926
12927 * keyboard.c (command_loop_1): Call start_busy_cursor before
12928 Fcommand_execute and cancel_busy_cursor after it.
12929 (timer_check): Remove busy-cursor code.
12930 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12931 cursor timer.
12932
12933 * process.c (wait_reading_process_input): Remove busy-cursor code.
12934
12935 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12936 Fx_hide_busy_cursor.
12937
12938 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12939 Remove prototyoes.
12940 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12941
12942 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12943
12944 * xterm.c (XTread_socket): Remove busy-cursor code.
12945
12946 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12947 (build_frame_matrix_from_leaf_window): Put code handling
12948 glyph row's not being a slice of a frame row in #if 0.
12949 (sync_window_with_frame_matrix_rows): New function.
12950 (frame_row_to_window): New function.
12951 (mirror_line_dance): Handle copies between windows.
12952
12953 * lread.c (Fload): Use `xfree' instead of `free'.
12954 (init_obarray): Use `xmalloc' instead of `malloc'.
12955
12956 * window.c (Fset_window_buffer): Set WINDOW to the window
12957 after decoding.
12958 (coordinates_in_window): Take frame's internal border width
12959 into account.
12960
12961 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12962
12963 * xterm.c (x_display_and_set_cursor): Display cursor of
12964 non-selected windows depending on the setting of
12965 cursor_in_non_selected_windows.
12966
12967 * xdisp.c (cursor_in_non_selected_windows): New variable.
12968 (syms_of_xdisp): DEFVAR_BOOL it.
12969
12970 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12971
12972 * data.c (Fstring_to_number): If number is greater than what
12973 fits into an integer, return a float.
12974
12975 * eval.c (specbind): Remove references to
12976 keyword_symbols_constant_flag.
12977
12978 * data.c (keyword_symbols_constant_flag): Removed.
12979 (Fmakunbound, set_internal, syms_of_data): Remove references to
12980 keyword_symbols_constant_flag.
12981
12982 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12983
12984 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12985
12986 * syntax.c (multibyte_syntax_as_symbol): New variable.
12987 (syms_of_syntax): Declare it as a Lisp variable.
12988 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12989 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12990 nonzero, treat all multibyte characters as symbol.
12991 (init_syntax_once): Give syntax `word' to all multibyte characters.
12992
12993 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12994
12995 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12996 a deleted frame.
12997
12998 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12999
13000 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
13001
13002 * xfns.c (x_window_to_frame, x_any_window_to_frame)
13003 (x_non_menubar_window_to_frame): Check the busy-cursor window.
13004
13005 2000-02-21 Dave Love <fx@gnu.org>
13006
13007 * frame.c (Vmouse_position_function): New variable.
13008 (Fmouse_position): Use it.
13009 (syms_of_frame): Install it.
13010
13011 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
13012
13013 2000-02-20 Gerd Moellmann <gerd@gnu.org>
13014
13015 * fileio.c (Finsert_file_contents): Unbind the binding of
13016 standard-output done by temp_output_buffer_setup.
13017
13018 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
13019 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
13020 (specbind, unbind_to): Handle most common case of non-constant
13021 symbol with trivial value specially.
13022
13023 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
13024
13025 2000-02-20 Richard M. Stallman <rms@gnu.org>
13026
13027 * data.c (Fmake_variable_buffer_local): Doc fix.
13028 Init found_for_buffer to 0.
13029 (Fmake_variable_frame_local): If the variable has already
13030 been buffer-local, set the check_frame field.
13031
13032 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
13033
13034 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
13035 produced for CODING_MODE_LAST_BLOCK requires.
13036
13037 2000-02-18 Dave Love <fx@gnu.org>
13038
13039 * keyboard.c (echo_keystrokes): Remove declaration.
13040 (Vecho_keystrokes) New variable.
13041 (read_char, record_menu_key, read_key_sequence): Use it to allow
13042 use of float value.
13043 (syms_of_keyboard): Change Vecho_keystrokes declaration.
13044
13045 * lread.c: Undef feature selection macros before defining.
13046
13047 2000-02-18 Gerd Moellmann <gerd@gnu.org>
13048
13049 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
13050 for symbols other than the symbol in question.
13051
13052 2000-02-17 Dave Love <fx@gnu.org>
13053
13054 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
13055
13056 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13057
13058 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
13059
13060 * alloc.c (enum mem_type): Compile unconditionally.
13061
13062 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
13063
13064 * xfaces.c (tty_defined_color): Don't return faulire indication
13065 for unspecified-fg and unspecified-bg pseudo-colors.
13066
13067 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13068
13069 * alloc.c (mark_object): Don't mark symbol names in pure space.
13070 (gc_sweep): Don't unmark symbol names in pure space.
13071
13072 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
13073 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
13074 [GC_MARK_STACK]: New defines.
13075 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
13076 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
13077
13078 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
13079
13080 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
13081 allocate_buffer instead of xmalloc.
13082
13083 * alloc.c (toplevel): Include setjmp.h.
13084 (PURE_POINTER_P): New define.
13085 (enum mem_type) [GC_MARK_STACK]: New enumeration.
13086 (Vdead) [GC_MARK_STACK]: New variable.
13087 (lisp_malloc): Add parameter TYPE, call mem_insert if
13088 GC_MARK_STACK is defined.
13089 (allocate_buffer): New function.
13090 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
13091 (free_float) [GC_MARK_STACK]: Set type to Vdead.
13092 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
13093 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
13094 (MEM_NIL) [GC_MARK_STACK]: New define.
13095 (struct mem_node) [GC_MARK_STACK]: New structure.
13096 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
13097 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
13098 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
13099 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
13100 (mark_stack) [GC_MARK_STACK]: New functions.
13101 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
13102 (clear_marks): Removed.
13103 (gc_sweep): Set free conses' car, free floats' type, free
13104 symbols' function to Vdead. Use lisp_free to free buffers.
13105 (init_alloc_once): Initialize Vdead.
13106 (survives_gc_p): Return non-zero for pure objects.
13107
13108 * alloc.c: Add comments throughout the file.
13109
13110 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
13111 that unblocks alarms.
13112
13113 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
13114 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
13115 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
13116
13117 * frame.c (make_frame): Set frame initiallly to `garbaged'.
13118
13119 2000-02-17 Kenichi Handa <handa@etl.go.jp>
13120
13121 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
13122 avoid infinite error signaling. Allocate sufficient memory for
13123 eol_str in the case that eoltype is Lisp_Int.
13124
13125 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
13126
13127 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
13128 depends on the previous behavior.
13129
13130 2000-02-16 Gerd Moellmann <gerd@gnu.org>
13131
13132 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
13133
13134 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13135
13136 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
13137
13138 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
13139 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
13140 write(2).
13141
13142 2000-02-15 Richard M. Stallman <rms@gnu.org>
13143
13144 * data.c (set_internal): Don't make variable buffer-local
13145 if within a let-binding for the same buffer.
13146 (let_shadows_buffer_binding_p): New function.
13147
13148 * eval.c (specbind): For buffer-local value,
13149 record the current buffer also.
13150 (unbind_to): Cope with that change.
13151
13152 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13153
13154 * window.c (Fsave_window_excursion): Doc fix.
13155
13156 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
13157
13158 * syntax.c (back_comment): Make sure we only consider comment-starters
13159 of the relevant style and return -1 in case of a failure to find the
13160 beginning of the comment.
13161 (Fforward_comment): If back_comment fails, go back to the position just
13162 after the comment-end.
13163 (scan_lists): Add comment describing a very minor bug.
13164
13165 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13166
13167 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
13168 `completion-regexp-list' in the docstring.
13169
13170 2000-02-14 Dave Love <fx@gnu.org>
13171
13172 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
13173
13174 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13175
13176 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
13177 to Emacs' syntax. Also fix the comment about set/not-set meanings
13178 since Emacs syntax is not the value 0 any more.
13179 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
13180 since it's now part of RE_SYNTAX_EMACS.
13181
13182 2000-02-12 Dave Love <fx@gnu.org>
13183
13184 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
13185
13186 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13187
13188 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
13189
13190 2000-02-12 Dave Love <fx@gnu.org>
13191
13192 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
13193
13194 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
13195 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
13196 * s/hpux.h: Don't define HAVE_VFORK.
13197
13198 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
13199
13200 * s/nextstep.h: Don't define HAVE_ALLOCA.
13201
13202 * config.in: Add vfork bits.
13203
13204 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13205
13206 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
13207 unwind function to undo the effect of stopping atimers.
13208
13209 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
13210
13211 * atimer.c (stopped_atimers): New variable.
13212 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
13213 New functions.
13214
13215 * atimer.h (stop_other_atimers, run_all_atimers)
13216 (unwind_stop_other_atimers): Add function prototypes.
13217
13218 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
13219
13220 2000-02-11 Ken Raeburn <raeburn@gnu.org>
13221
13222 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
13223 library may depend on jpeg.
13224 (atimer.o): Depends on atimer.c.
13225
13226 2000-02-11 Kenichi Handa <handa@etl.go.jp>
13227
13228 * insdel.c (del_range_1): Call update_compositions.
13229 (del_range_both): Call update_compositions just once..
13230
13231 2000-02-10 Dave Love <fx@gnu.org>
13232
13233 * xfns.c (create_frame_xic): Fix initialization of automatic
13234 aggregates for pcc.
13235
13236 2000-02-09 Kenichi Handa <handa@etl.go.jp>
13237
13238 * ccl.c (CCL_MAKE_CHAR): New macro.
13239 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
13240 registers by CCL_MAKE_CHAR before calling translate_char.
13241 <CCL_TranslateCharacterConstTbl> Likewise.
13242
13243 2000-02-08 Dave Love <fx@gnu.org>
13244
13245 * lread.c (__EXTENSIONS__): Define.
13246
13247 2000-02-08 Gerd Moellmann <gerd@gnu.org>
13248
13249 * puresize.h (BASE_PURESIZE): Increase to 650000.
13250
13251 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13252
13253 * msdos.c (XMenuActivate): Turn off the cursor after displaying
13254 the help message.
13255
13256 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13257
13258 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
13259 md, mh, mb, mr, and me to the fake termcap entry.
13260
13261 2000-02-06 Ken Raeburn <raeburn@gnu.org>
13262
13263 * sound.c (sound_cleanup): Don't call device close routine if the
13264 function pointer is null.
13265
13266 2000-02-06 Andrew Innes <andrewi@gnu.org>
13267
13268 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
13269 around image definitions and prototypes.
13270 (gamma_correct) [WINDOWSNT]: New prototype.
13271
13272 * w32term.c (x_make_frame_visible): Replace call to
13273 input_poll_signal with poll_for_input.
13274
13275 * window.c [WINDOWSNT]: Include w32term.h.
13276
13277 * xdisp.c [WINDOWSNT]: Include w32term.h.
13278
13279 * makefile.nt: Add dependencies on w32gui.h.
13280 (OBJ1): Include atimer.obj.
13281 ($(BLD)\atimer.obj): New dependency rule.
13282
13283 * w32.c (sigmask): New function (does nothing).
13284 (sigunblock): Ditto.
13285
13286 * frame.c [WINDOWSNT]: Include w32term.h.
13287
13288 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
13289
13290 * lread.c (syms_of_lread): Fix literal newlines.
13291
13292 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
13293 the string constant limit (2048 bytes) in MSVC.
13294 (main): Ditto.
13295
13296 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
13297
13298 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
13299 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
13300 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
13301 dispatch the event.
13302
13303 2000-02-04 Dave Love <fx@gnu.org>
13304
13305 * fileio.c: Remove some unused vars.
13306 (_GNU_SOURCE): Define (for euidaccess).
13307
13308 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
13309
13310 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
13311 gcpro1, gcpro2.
13312 (read_minibuf): Deal with allow_props correctly.
13313
13314 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
13315
13316 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
13317
13318 2000-02-03 Ken Raeburn <raeburn@gnu.org>
13319
13320 * search.c (compile_pattern): If a cache entry has a nil regexp,
13321 fill in that entry instead of clobbering a previously cached
13322 string regexp.
13323
13324 2000-02-02 Ken Raeburn <raeburn@gnu.org>
13325
13326 * puresize.h (BASE_PURESIZE): Increase to 610000.
13327
13328 2000-02-02 Gerd Moellmann <gerd@gnu.org>
13329
13330 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
13331 can GC.
13332
13333 2000-02-02 Kenichi Handa <handa@etl.go.jp>
13334
13335 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
13336 instead of incrementing ic directly.
13337 <CCL_WriteExprConst> Likewise.
13338 <ccl_set_expr>: Set ic to jump_address.
13339
13340 * fileio.c (e_write): Fix the handling of
13341 CODING_FINISH_INSUFFICIENT_SRC.
13342
13343 2000-02-01 Dave Love <fx@gnu.org>
13344
13345 * editfns.c (Fpropertize): Doc fix.
13346
13347 * process.c (Fstart_process): Doc fix.
13348
13349 * eval.c: Fix various doc strings not to duplicate information
13350 from help-manyarg-func-alist.
13351
13352 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
13353
13354 * doc.c (Vhelp_manyarg_func_alist): New variable.
13355 (Fdocumentation): Use it.
13356 (syms_of_doc): Define it.
13357
13358 2000-01-31 Gerd Moellmann <gerd@gnu.org>
13359
13360 * xterm.c (xim_open_dpy): Remove unused local variable.
13361
13362 * emacs.c (USAGE): Use term `display options' instead of `X options'.
13363
13364 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
13365 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
13366
13367 * fns.c (sweep_weak_table): New function.
13368 (sweep_weak_hash_tables): Use it. Keep on marking until there
13369 is no more change.
13370
13371 2000-01-30 Gerd Moellmann <gerd@gnu.org>
13372
13373 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
13374 that XTread_socket does not crash by trying to call XNoOp on a
13375 closed display.
13376
13377 2000-01-30 Jason Rumney <jasonr@gnu.org>
13378
13379 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13380 Change selected_frame to SELECTED_FRAME ().
13381 (w32_console_mouse_position): Remove #ifndef MULE from around
13382 `insist' parameter.
13383
13384 * makefile.nt: Remove dosfns.obj.
13385
13386 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
13387
13388 * w32fns.c (w32_defined_color): Check for valid frame before
13389 applying gamma correction. Eliminate dependency on frame elsewhere.
13390 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
13391 (w32_to_x_font): Use resx and resy not height_in and width_in.
13392 (x_to_w32_font): Doc fix.
13393 (xlfd_strip_height): New function to strip and return font height.
13394 (w32_font_match): Compare height separately from rest of xlfd
13395 spec, using xlfd_strip_height.
13396
13397 * w32term.c (w32_term_init): Swap resx and height_in, resy and
13398 width_in. Use w32_defined_color in place of defined_color.
13399
13400 * w32faces.c: Merge more of DOS and X specifics in preparation for
13401 merge with xfaces.c.
13402 (defined_color): Remove FIXME comment.
13403 (tty_color_name): Provide w32-specific function.
13404 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
13405
13406 * w32console.c (turn_on_face, turn_off_face): Removed.
13407 (w32_face_attributes): New function.
13408 (Global_variables): Reduce scope where possible.
13409 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
13410 fill attribute.
13411 (hl_mode): Don't modify text attributes.
13412 (write_glyphs): Don't do anything if len <= 0. Use
13413 w32_face_attributes to get attributes for drawing. Write
13414 terminating codes using char_attr_normal.
13415 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
13416 (update_begin, update_end): Likewise.
13417 (vga_stdcolor_name): New function.
13418 (initialize_w32_display): Remove char_attr_reverse and char_attr.
13419 (Fset_screen_color): Remove char_attr_reverse.
13420
13421 2000-01-29 Gerd Moellmann <gerd@gnu.org>
13422
13423 * xfns.c (xic_set_preeditarea): Take window parameter and
13424 window-relative pixel-positions.
13425
13426 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
13427 is its frame's selected window.
13428 (xim_instantiate_callback): Likewise.
13429
13430 * xfns.c (x_create_im): Removed.
13431 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
13432 (supported_xim_styles): Renamed from supported_styles.
13433 (best_xim_style): Renamed from best_style.
13434 (create_frame_xic): Renamed from xic_create_frame.
13435 (free_frame_xic): Renamed from xic_destroy_frame.
13436
13437 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
13438
13439 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
13440 our frames, call XFilterEvent with 2nd parameter `None'.
13441 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
13442 returning XBufferOverflow.
13443 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
13444 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
13445 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
13446 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
13447 (xim_initialize, xim_close)
13448 [HAVE_X_I18N && HAVE_X11R6]: New functions.
13449 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
13450 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
13451 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
13452
13453 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
13454 and `xim_styles'.
13455 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
13456 `xic_style' and `xic_xfs'.
13457 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
13458 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
13459 (FRAME_XIM): Removed.
13460
13461 * xfns.c (supported_styles): New variable.
13462 (DEFAULT_STYLE, DEFAULT_FONT): New macros
13463 (xic_create_xfontset, best_style, xic_create_frame)
13464 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
13465 (xic_set_xfontset): New functions.
13466
13467 2000-01-28 Dave Love <fx@gnu.org>
13468
13469 * s/irix6-5.h: Revert last change after change to irix5-0.h.
13470
13471 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
13472
13473 2000-01-28 Gerd Moellmann <gerd@gnu.org>
13474
13475 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
13476 for *scratch* if it already existed.
13477
13478 * emacs.c (USAGE): New macro.
13479 (main): Use it to display usage information.
13480
13481 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13482
13483 Support for the menu-help feature:
13484
13485 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
13486
13487 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
13488 part of the line to the termscript file.
13489 (IT_clear_to_end): Clear the entire line, not just its beginning.
13490 (menu_help_message, prev_menu_help_message): New variables.
13491 (IT_menu_make_room): Make room for the help_text member.
13492 (IT_menu_display): New argument disp_help; all callers changed.
13493 If disp_help is non-zero, store the help text of the active menu
13494 item in menu_help_message.
13495 (XMenuAddPane): Initialize the help_text member to NULL.
13496 (XMenuAddSelection): New argument help_text. Store it in the
13497 XMenu structure.
13498 (XMenuActivate): New argument help_callback. If the value of
13499 menu_help_message has changed since the last time, display the
13500 menu help message text while waiting for the mouse to move. Clear
13501 the echo area before exiting.
13502 (XMenuDestroy): Free the help_text member.
13503
13504 2000-01-27 Gerd Moellmann <gerd@gnu.org>
13505
13506 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
13507 XMenuAddSelection. Pass help callback to XMenuActivate.
13508 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
13509
13510 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13511
13512 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
13513 and EMACS_SET_USECS.
13514
13515 2000-01-26 Dave Love <fx@gnu.org>
13516
13517 * editfns.c (Fchar_after, Fchar_before): Doc fix.
13518
13519 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
13520 an error may be signalled.
13521
13522 2000-01-26 Gerd Moellmann <gerd@gnu.org>
13523
13524 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
13525 LD_SWITCH_SYSTEM inherited from irix5-0.h.
13526
13527 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
13528
13529 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13530
13531 * charset.c (Fstring): If there is a multibyte char among
13532 the args, always return a multibyte string.
13533
13534 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13535
13536 * sysdep.c (sys_select): Turn atimers off and on instead of
13537 recording and restoring old alarm handler
13538
13539 * process.c (toplevel): Include atimer.h.
13540 (create_process_1): Rewritten.
13541 (create_process): Use atimers instead of alarm.
13542 (wait_reading_process_input) [hpux]: Turn atimers off instead
13543 of turning off SIGALRM.
13544 (wait_reading_process_input): Turn off atimers instead off
13545 calling stop_polling.
13546
13547 * emacs.c (main): Call init_atimer.
13548
13549 * keyboard.c (toplevel): Include systime.h and atimer.h.
13550 (polling_for_input): Removed because unused.
13551 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
13552 (poll_timer): New variable.
13553 (poll_for_input, poll_for_input_1): New functions.
13554 (start_polling, stop_polling): Rewritten.
13555
13556 * keyboard.h (polling_for_input): Removed.
13557
13558 * atimer.h, atimer.c: New files.
13559
13560 * Makefile.in (obj): Add atimer.o.
13561 (atimer.o): New target.
13562
13563 * blockinput.h (pending_atimers): Add extern declaration.
13564 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
13565
13566 * lisp.h (popup_activated_flag): Add extern declaration.
13567
13568 * xmenu.c (popup_activated_flag): Make externally visible.
13569 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
13570 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
13571
13572 * xterm.c (toplevel): Include atimer.h.
13573 (toolkit_scroll_bar_interaction): New variable.
13574 (Fxt_process_timeouts): Removed.
13575 (x_process_timeouts): New function.
13576 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
13577 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
13578 (x_make_frame_visible): Call poll_for_input_1 instead of
13579 input_poll_signal. Don't call alarm.
13580 (x_initialize): Install timer calling x_process_timeouts.
13581
13582 2000-01-24 Dave Love <fx@gnu.org>
13583
13584 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
13585 Don't use -cckr -- apparently not now necessary.
13586
13587 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
13588
13589 * msdos.c (IT_menu_display): Truncate long menu lines at the right
13590 screen boundary.
13591
13592 2000-01-23 Jason Rumney <jasonr@gnu.org>
13593
13594 * w32fns.c (w32_defined_color): Apply gamma correction before
13595 trying to map to the palette.
13596 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
13597 to w32_clear_rect.
13598
13599 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
13600 here. Callers changed to always pass real device context.
13601 (w32_draw_bitmap): Likewise.
13602 (w32_get_glyph_overhangs): Likewise.
13603 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
13604 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
13605 pfnSetScrollInfo and SetScrollRange.
13606 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
13607 back into MULE characters after decoding them.
13608 (x_get_glyph_face_and_encoding): Likewise.
13609 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
13610 GetCharABCWidthsW fails, since this is defined on Windows 9x.
13611 (x_produce_glyphs): Calculate per char metrics for a character
13612 that we know exists in default font when font_not_found_p is true.
13613
13614 2000-01-22 Jason Rumney <jasonr@gnu.org>
13615
13616 * makefile.nt (intervals.obj, composite.obj): New modules.
13617 (composite.h): Added as dependency where appropriate.
13618
13619 * w32gui.h (XGCValue): New struct for emulating X GCs.
13620
13621 * w32term.h (XCharStruct): New struct for emulating X.
13622
13623 * w32console.c (turn_on_face, turn_off_face): New functions.
13624 (change_line_highlight): New prototype for new redisplay.
13625 (write_glyphs): Support multibyte text. Support faces.
13626
13627 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
13628
13629 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
13630 throughout. struct frame * in place of FRAME_PTR.
13631 Skeleton support for images, toolbars, tooltips from xfns.c.
13632 (Fx_create_frame): Use system default for default scroll bar width.
13633 (w32_get_arg): Renamed from x_get_arg.
13634 (Fx_file_dialog): New function.
13635 (w32_list_fonts): Check cache before asking system.
13636 (Vw32_enable_synthesized_fonts): New variable.
13637 (Vw32_enable_italics): Obsolete, removed.
13638
13639 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13640 Use SELECTED_FRAME macro.
13641
13642 * w32menu.c: Add skeleton support for help strings on menus.
13643 (add_menu_item): Native checkbox and radio support added, but not
13644 yet enabled due to bugs.
13645 (push_menu_item): Add parameters type, selection and help.
13646 Callers updated.
13647 Formatting changes to reduce unnecessary diffs with xmenu.c.
13648
13649 * w32select.c (Fw32_set_clipboard_data): Update call to
13650 find_charset_in_str.
13651
13652 * w32term.c: Complete rewrite for new redisplay based on new
13653 xterm.c with necessary sections merged back in from old w32term.c.
13654
13655 2000-01-21 Richard M. Stallman <rms@gnu.org>
13656
13657 * data.c (set_internal): Further fix in same criterion.
13658
13659 2000-01-20 Richard M. Stallman <rms@gnu.org>
13660
13661 * data.c (set_internal): Fix the criteria for whether
13662 to swap out the old cached binding.
13663
13664 2000-01-19 Dave Love <fx@gnu.org>
13665
13666 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
13667
13668 2000-01-18 Kenichi Handa <handa@etl.go.jp>
13669
13670 * regex.c (re_compile_fastmap): While checking a range table for
13671 `charset', skip flag bits for a character class correctly.
13672
13673 2000-01-17 Gerd Moellmann <gerd@gnu.org>
13674
13675 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
13676
13677 * xfns.c (x_window): Call lw_create_widget with new parameter list.
13678
13679 * widget.c (EmacsFrameSetCharSize): Change size of children first
13680 because of problems with main window geometry management under Lesstif.
13681
13682 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
13683 MENU_ITEMS_ITEM_.*.
13684 (MENU_ITEMS_ITEM_HELP): New enumerator.
13685 (push_menu_item): Add parameter HELP. Record help in menu_items.
13686 (single_menu_item, single_submenu, list_of_items): Call
13687 push_menu_item with new parameter.
13688 (single_submenu): Set help string in widget value.
13689 (menu_highlight_callback): New function.
13690 (set_frame_menubar): Call lw_create_widget with new
13691 parameter list.
13692 (xmenu_show, xdialog_show): Ditto.
13693
13694 2000-01-13 Gerd Moellmann <gerd@gnu.org>
13695
13696 * sound.c (Fplay_sound): Improve doc string.
13697
13698 2000-01-11 Richard M. Stallman <rms@gnu.org>
13699
13700 * lisp.h (set_internal): Enter the new arg.
13701
13702 * eval.c (specbind): Record buffer-local variables specially,
13703 indicating which buffer's binding was saved.
13704 (unbind_to): Restore buffer-local variables specially
13705 in the proper buffer.
13706
13707 * data.c (set_internal): New arg BUF.
13708
13709 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
13710 * data.c (Fset): Pass new arg to set_internal.
13711 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
13712
13713 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13714
13715 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
13716
13717 2000-01-11 Richard M. Stallman <rms@gnu.org>
13718
13719 * minibuf.c (Ftry_completion): Doc fix.
13720
13721 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13722
13723 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
13724 vector, too.
13725
13726 2000-01-11 Andreas Schwab <schwab@suse.de>
13727
13728 * coding.c (code_convert_region): Initialize total_skip.
13729
13730 2000-01-08 Dave Love <fx@gnu.org>
13731
13732 * eval.c (Fuser_variable_p): Check customizability too.
13733
13734 2000-01-07 Gerd Moellmann <gerd@gnu.org>
13735
13736 * minibuf.c (Fcompleting_read): Doc fix.
13737
13738 2000-01-05 Gerd Moellmann <gerd@gnu.org>
13739
13740 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
13741 -L /usr/local/lib.
13742
13743 * xfns.c (x_create_im): New function to set IM and IC of a frame.
13744 Check that input style is supported before trying to create an
13745 IC for it.
13746 (x_window): Call x_create_im.
13747
13748 2000-01-04 Gerd Moellmann <gerd@gnu.org>
13749
13750 * xfns.c (current_gif_memory_src): New variable.
13751 (gif_load): Record the address of the current memory source
13752 in current_gif_memory_src.
13753 (gif_read_from_memory): Use current_gif_memory_src.
13754
13755 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
13756 macros statement form.
13757
13758 * sound.c (struct sound): Renamed from struct sound_file.
13759 (struct sound): Add members `data' and `header_size'.
13760 (enum sound_attr): Add SOUND_DATA.
13761 (current_sound, current_sound_device): Variables renamed from
13762 sound_file and sound_device.
13763 (parse_sound): Parse :data.
13764 (parse_sound): Handle sound data in strings.
13765 (find_sound_type): Function renamed from find_sound_file_type.
13766 (wav_init, au_init): Fail if sound's header_size is smaller than
13767 needed header size.
13768 (wav_play, au_play): Play sounds from string data.
13769
13770 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
13771
13772 * lisp.h: Add prototype for allocate_string_data.
13773
13774 * alloc.c (Fgarbage_collect): Return number of live and free strings.
13775
13776 * alloc.c (mark_buffer): Remove code in #if 0.
13777 (gc_sweep): Ditto.
13778 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
13779 (strings_consed): New variable.
13780 (allocate_string): Set it.
13781 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
13782 (Fmemory_use_counts): Return strings_consed. Use Flist.
13783
13784 * alloc.c: General cleanup in comments etc. Remove conditional
13785 compilation for `standalone'.
13786
13787 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
13788
13789 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
13790 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
13791 (DONT_COPY_FLAG): Removed.
13792 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
13793 (struct sdata, struct sblock): New
13794 (struct string_block): Rewritten.
13795 (STRINGS_IN_STRING_BLOCK): New macro.
13796 (oldest_sblock, current_sblock, total_strings, total_free_strings)
13797 (large_sblocks, string_blocks, string_free_list): New variables.
13798 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
13799 (init_strings): Rewritten.
13800 (allocate_string, allocate_string_data, compact_small_strings)
13801 (free_large_strings, sweep_strings): New functions.
13802 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13803 (struct string_block_head, current_string_block)
13804 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13805 (STRING_PAD): Removed.
13806 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13807 (Fgarbage_collect): Don't set mark bit in large strings.
13808 (mark_object): Mark strings differently. Mark symbol names
13809 differently.
13810 (survives_gc_p): Test marked strings differently.
13811 (gc_sweep): Sweep strings differently, unmark strings in
13812 symbol names.
13813 (compact_strings): Removed.
13814
13815 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13816
13817 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13818 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13819
13820 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13821
13822 * fileio.c (Finsert_file_contents): Signal error if visiting file
13823 in a non-empty buffer.
13824
13825 * term.c (encode_terminal_code): Fix the previous change.
13826
13827 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13828
13829 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13830 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13831
13832 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13833
13834 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13835
13836 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13837 need to test for MSDOS frames.
13838
13839 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13840
13841 * dosfns.c (unspecified_colors): Remove.
13842 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13843 unspecified_bg.
13844 (msdos_stdcolor_name): Return strings for unspecified fore- and
13845 back-ground colors.
13846
13847 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13848 (syms_of_xfaces): Remove their staticpro's.
13849 (tty_color_name): Return Lisp strings for unspecified fore- and
13850 back-ground colors.
13851 (Finternal_set_lisp_face_attribute): Remove the special treatment
13852 for Qunspecified_{f,b}g.
13853 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13854
13855 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13856
13857 * xdisp.c (reseat_at_next_visible_line_start): Position before
13858 newline only if ending up on a newline.
13859 (next_element_from_ellipsis): Return success. Handle case of
13860 displaying no ellipsis. Fix case of ellipsis defined in display table.
13861 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13862 returns 0.
13863
13864 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13865
13866 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13867 (Fcolor_supported_p): Renamed from face-color-supported-p.
13868
13869 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13870
13871 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13872 list of colors renamed to tty-defined-color-alist.
13873 (tty_color_name): Pass the frame to tty-color-by-index.
13874 (realize_tty_face): tty-color-alist is now a function which
13875 accepts the frame as argument.
13876
13877 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13878
13879 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13880
13881 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13882 encode_terminal_code.
13883
13884 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13885
13886 * dispnew.c (mode_line_string): Support termcap frames as well.
13887
13888 2000-01-01 Gerd Moellmann <gerd@gnu.org>
13889
13890 * syntax.c (Fforward_word): Undo previous change.
13891
13892 * editfns.c (Fconstrain_to_field): Don't constrain if
13893 inhibit-field-text-motion is non-nil.
13894 (Fline_beginning_position): Undo previous change.
13895 (Fline_end_position): Ditto.
13896
13897 * syntax.c (Fforward_word): Notice field boundaries only if
13898 inhibit-field-text-motion is nil.
13899
13900 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13901
13902 * editfns.c (Vinhibit_field_text_motion): New variable.
13903 (inhibit-field-text-motion): New DEFVAR_LISP.
13904 (Fline_beginning_position, Fline_end_position): Notice field
13905 boundaries only if inhibit-field-text-motion is nil.
13906
13907 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13908 All calls adjusted.
13909 (x_build_heuristic_mask): Likewise.
13910 (xbm_load_image_from_file): Change error output.
13911 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13912 (gif_load, gs_load, x_kill_gs_process): Ditto.
13913
13914 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13915 color indices when accessing raster pixels.
13916 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13917 one of :file or :data.
13918 (enum pbm_keyword_index): Add PBM_DATA.
13919 (pbm_format): Add :data.
13920 (pbm_image_p): Allow either :file or :data.
13921 (pbm_read_file): New function.
13922 (pbm_scan_number): Rewritten to read from string.
13923 (pbm_load): Support :data.
13924
13925 See ChangeLog.8 for earlier changes.
13926
13927 ;; Local Variables:
13928 ;; coding: iso-2022-7bit
13929 ;; End:
13930
13931 Copyright (C) 2001 Free Software Foundation, Inc.
13932 Copying and distribution of this file, with or without modification,
13933 are permitted provided the copyright notice and this notice are preserved.