]> code.delx.au - gnu-emacs/blob - src/ChangeLog
*** empty log message ***
[gnu-emacs] / src / ChangeLog
1 2001-11-03 Ken Raeburn <raeburn@gnu.org>
2
3 * lisp.h (CHECK_STRING_CAR): New macro.
4 * lread.c (Fload): Use XSETCARFASTINT, XSETCDRFASTINT instead of
5 treating XCAR and XCDR as lvalues.
6 (openp): Use CHECK_STRING_CAR.
7 (read_list): Use XSETCDR instead of treating XCDR as lvalue.
8
9 2001-11-03 Eli Zaretskii <eliz@is.elta.co.il>
10
11 * s/sco5.h (sigprocmask_set): Declare as extern SIGMASKTYPE.
12 (SIGMASKTYPE): Define.
13
14 * syssignal.h (sigunblock): Don't define if already defined.
15
16 2001-11-02 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
17
18 * eval.c (debugger_may_continue, Vdebug_ignored_errors)
19 (call_debugger, Fcondition_case, skip_debugger, unbind_to):
20 Fix typos in comments.
21
22 * mocklisp.c (Fml_defun, Fml_while, Fml_substr): Remove commented
23 and #ifdef'd-out code.
24 Fix and reindent comments.
25
26 * mocklisp.h: Remove comment which is a copy of comment in
27 mocklisp.c.
28
29 * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET): Remove unused
30 argument `i' in macros.
31
32 * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Remove unused argument
33 `i' in macros.
34
35 * lisp.h (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
36 (CHECK_STRING, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
37 (CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER)
38 (CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS, CHECK_NUMBER)
39 (CHECK_NATNUM, CHECK_MARKER, CHECK_NUMBER_COERCE_MARKER)
40 (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
41 (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY)
42 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): Remove unused argument `i'
43 in macros.
44
45 * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
46 casefiddle.c, category.c, ccl.c, charset.c, cmds.c, coding.c,
47 composite.c, data.c, dired.c, dispnew.c, doc.c, dosfns.c, emacs.c,
48 eval.c, fileio.c, filelock.c, fns.c, fontset.c, frame.c, frame.h,
49 indent.c, keyboard.c, keymap.c, lread.c, macros.c, marker.c,
50 minibuf.c, mocklisp.c, msdos.c, print.c, process.c, search.c,
51 sunfns.c, syntax.c, textprop.c, undo.c, w16select.c, w32console.c,
52 w32fns.c, w32menu.c, w32proc.c, w32select.c, window.c, xdisp.c,
53 xfaces.c, xmenu.c, xselect.c : Update usage of CHECK_ macros
54 (remove unused second argument).
55
56 2001-11-02 Stefan Monnier <monnier@cs.yale.edu>
57
58 * syntax.c (describe_syntax): New wrapper.
59 (Finternal_describe_syntax_value): Rename from describe_syntax.
60 Don't insert space at front and \n at the end.
61 (syms_of_syntax): Defsubr Sinternal_describe_syntax_value.
62
63 * regex.c (re_wctype): Try to fix some warnings.
64 (regcomp, regexec): Don't forget the __restrict.
65
66 2001-11-02 Richard M. Stallman <rms@gnu.org>
67
68 * textprop.c (Fget_char_property): Doc fix.
69
70 2001-11-02 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
71
72 * process.c (Fstart_process): Add usage to doc-string.
73
74 * data.c (Fsetq_default): Ditto.
75
76 * callint.c (Finteractive): Ditto.
77
78 2001-11-01 Stefan Monnier <monnier@cs.yale.edu>
79
80 * macros.c: Don't include keymap.h any more.
81
82 2001-11-01 Richard M. Stallman <rms@gnu.org>
83
84 * data.c (Fmake_local_variable): Doc fix.
85
86 * eval.c (Frun_hooks, Frun_hook_with_args_until_failure): Doc fix.
87 (Frun_hook_with_args_until_success, Frun_hook_with_args): Doc fix.
88
89 * keymap.c (Fdescribe_buffer_bindings): Print character property
90 bindings along with or instead of the buffer local map.
91 Make the overriding maps override what they should.
92
93 2001-11-01 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
94
95 * window.c (grow_mini_window): Fix typo in comment.
96
97 2001-11-01 Gerd Moellmann <gerd@gnu.org>
98
99 * xterm.c (x_scroll_bar_create): Check for width and height > 0.
100 (XTset_vertical_scroll_bar): Likewise.
101
102 * xfns.c (x_build_heuristic_mask): Use four_corners_best
103 instead of IMAGE_BACKGROUND.
104
105 * xfns.c (four_corners_best): Reindent.
106
107 * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
108 Handle :box so that it is possible to specify sexprs.
109
110 2001-11-01 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
111
112 * xfaces.c (Finternal_merge_in_global_face): Reindent.
113 (Fface_font): Ditto.
114 (Finternal_set_alternative_font_registry_alist): Ditto.
115 (Ftty_suppress_bold_inverse_default_colors): Ditto.
116
117 * xfns.c (x-get-resource): Reindent.
118
119 2001-10-31 Eli Zaretskii <eliz@is.elta.co.il>
120
121 * s/hpux11.h: New file.
122
123 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
124
125 * emacs.c (USAGE1): Show command line option --no-window-system
126 instead of --no-windows in usage.
127 (standard_args): Rename --no-windows to --no-window-system.
128 (bug_reporting_address): Follow Emacs coding conventions.
129
130 * eval.c (Fcommandp): Doc fix.
131 Change doc-string comments to `new style' [w/`doc:' keyword].
132
133 * frame.c (Fframe_live_p): Doc fix.
134
135 * buffer.c (selective-display-ellipses): Doc fix.
136
137 2001-10-31 Gerd Moellmann <gerd@gnu.org>
138
139 * lread.c (to_multibyte): Fix computation of new read_buffer_size.
140
141 * xfaces.c (realize_x_face): If C is not a single-byte character,
142 set the face's colors_copied_bitwise_p instead of the defaulted_p
143 members which have a different meaning.
144 (free_face_colors): Do nothing for a face whose colors have been
145 copied bitwise.
146
147 * dispextern.h (struct face) <colors_copied_bitwise_p>: New member.
148
149 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
150
151 * marker.c, mocklisp.c: Change doc-string comments to `new style'
152 [w/`doc:' keyword].
153
154 2001-10-31 Gerd Moellmann <gerd@gnu.org>
155
156 * fns.c (require_unwind): Return Lisp_Object.
157
158 2001-10-31 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
159
160 * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
161 (last-input-char): Revert doc-string to be the same as the
162 doc-string of `last-input-event'.
163
164 * xdisp.c: Fix typos in comments.
165
166 2001-10-31 Gerd Moellmann <gerd@gnu.org>
167
168 * window.c (grow_mini_window): Handle case that the root
169 window is already smaller than the nominal mininum height.
170
171 2001-10-30 Stefan Monnier <monnier@cs.yale.edu>
172
173 * emacs.c (main): Don't call keys_of_macros any more.
174
175 * lisp.h (keys_of_macros): Remove.
176
177 * macros.c (keys_of_macros): Remove.
178
179 * xfaces.c (Fface_attribute_relative_p): Declare args.
180
181 2001-10-30 Jason Rumney <jasonr@gnu.org>
182
183 * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
184 (enum_font_cb2): Ignore fonts with vertical orientation.
185
186 2001-10-30 Richard M. Stallman <rms@gnu.org>
187
188 * keyboard.c (Finput_pending_p): Doc fix.
189
190 2001-10-30 Gerd Moellmann <gerd@gnu.org>
191
192 * xterm.c (x_after_update_window_line): Don't run the code
193 clearing in borders for rows whose visible height is 0.
194
195 * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
196 resized_p flag is set. If not set, use the much less flickering
197 method previously used.
198
199 * dispnew.c (change_frame_size_1): Set frame's resized_p.
200
201 * frame.h (struct frame) <resized_p>: New member.
202
203 * lread.c (to_multibyte): Ensure read_buffer is at least twice
204 as large as the number of bytes to convert.
205
206 * lread.c (to_multibyte): New function.
207 (read1): Use it.
208
209 2001-10-30 Eli Zaretskii <eliz@is.elta.co.il>
210
211 * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
212
213 2001-10-30 Gerd Moellmann <gerd@gnu.org>
214
215 * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
216 (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
217 if the row's fill_line_p is set and drawing the last glyph with
218 DRAW_IMAGE_{RAISED,SUNKEN}.
219
220 * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
221
222 2001-10-29 Stefan Monnier <monnier@cs.yale.edu>
223
224 * xmenu.c: Include coding.h and charset.h.
225 (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
226 (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
227 (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
228 Explicitly set wv->help. Use `TRUE' rather than `True'.
229 (menu_help_callback): Use empty_string.
230
231 * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
232 (Fx_popup_dialog): Explicitly init f.
233 (w32_menu_display_help): Use empty_string.
234
235 2001-10-29 Richard M. Stallman <rms@gnu.org>
236
237 * fns.c (Frequire): Detect recursive try to require the same
238 feature 3 or more levels deep, and get error.
239 (require_unwind): New subroutine.
240 (require_nesting_list): New variable.
241 (syms_of_fns): Init and staticpro it.
242
243 * print.c (print_object): Clarify indication of insertion type.
244
245 2001-10-29 Eli Zaretskii <eliz@is.elta.co.il>
246
247 * coding.c (syms_of_coding): Document that locale-coding-system is
248 used for decoding input on X.
249
250 * window.c (Fscroll_left, Fscroll_right): Doc fix.
251
252 2001-10-29 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
253
254 * keyboard.c (Finput_pending_p): Fix typo in doc-string.
255 (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
256
257 2001-10-29 Gerd Moellmann <gerd@gnu.org>
258
259 * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
260 use NO_CURSOR if cursor_in_non_selected_windows is false.
261
262 * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
263 the slant attribute if FRAME is t.
264
265 * xfns.c (x_set_internal_border_width): Set frame garbaged
266 when X window doesn't exist yet.
267
268 * xterm.c (x_after_update_window_line): Clear internal border
269 in different circumstances.
270
271 * xterm.c (XTread_socket) <KeyPress>: Don't use
272 STRING_CHAR_AND_LENGTH if nchars == nbytes. From Kenichi Handa
273 <handa@etl.go.jp>.
274
275 2001-10-28 Eli Zaretskii <eliz@is.elta.co.il>
276
277 * m/ibms390.h: New file. From Adam Thornton
278 <athornton@sinenomine.net>.
279
280 2001-10-28 Gerd Moellmann <gerd@gnu.org>
281
282 * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
283
284 * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
285 a loop counter.
286
287 2001-10-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
288
289 * emacs.c: Use argv[0] instead of emacs when -t was specified.
290
291 * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
292 keyword].
293 Fix typos in comments.
294
295 * emacs.c (bug_reporting_address): New function.
296 Use it when displaying usage message.
297
298 * minibuf.c (read_minibuf): Remove unused external declaration of
299 variable `Qread_only'.
300
301 * keymap.c (access_keymap): Remove unused variable `charset'.
302
303 2001-10-28 Miles Bader <miles@gnu.org>
304
305 * xfaces.c (merge_face_heights): Handle TO being relative as well.
306 Remove #ifdef'd-out code.
307 (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
308 (syms_of_xfaces): Initialize them.
309
310 2001-10-27 Jason Rumney <jasonr@gnu.org>
311
312 * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
313 <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
314 position using the system caret.
315
316 * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
317 (w32_system_caret_height, w32_system_caret_x)
318 (w32_system_caret_y): New variables for tracking system caret.
319 (w32_initialize): Initialize them.
320 (x_display_and_set_cursor): Make system caret follow the active cursor.
321
322 * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
323 New messages types.
324
325 * w32term.c (note_mouse_highlight): Clear old help_echo.
326
327 2001-10-27 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
328
329 * xterm.c: Fix typo in a comment.
330
331 * emacs.c: Fix typos in comments.
332 Remove unnecessary spaces.
333 Change doc-string comments to `new style' [w/`doc:' keyword].
334 (USAGE2): Fix typos in usage string.
335
336 * xterm.c: Fix typo in a comment.
337
338 * lisp.h: (gdb_lisp_params): Remove code in #if 0 which is now in
339 emacs.c.
340
341 2001-10-27 Gerd Moellmann <gerd@gnu.org>
342
343 * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
344 instead of 1/2 line_height in the heuristic for skipping
345 farther backward when target_y was not reached.
346
347 * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
348 Display errno only if non-zero.
349 (sound_warning): New function.
350 (vox_configure): Don't treat failing to set sample rate as error.
351 (various places): Improve error messages.
352
353 2001-10-26 Eli Zaretskii <eliz@is.elta.co.il>
354
355 * fileio.c (Faccess_file): Run the argument filename through
356 Fexpand_file_name, before using it.
357
358 * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
359 ring-bell-function. Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
360
361 2001-10-26 Gerd Moellmann <gerd@gnu.org>
362
363 * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
364
365 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
366 Fix clearing in the case of scroll bars on the right.
367
368 2001-10-26 Juanma Barranquero <lektu@terra.es>
369
370 * w32gui.h (XImage): Add a dummy typedef.
371
372 2001-10-26 Gerd Moellmann <gerd@gnu.org>
373
374 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
375
376 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
377
378 * frame.c (Fframe_parameter): Fix last change.
379
380 * fileio.c: Revert last change (which removed old commented-out
381 version of expand-file-name). Add a comment that explains why
382 this old version should not be removed.
383
384 2001-10-25 Gerd Moellmann <gerd@gnu.org>
385
386 * frame.c (Fframe_parameter): Fix a bug whereby some
387 ``artificial'' frame parameters, like `minibuffer' were not
388 obtained by calling Fframe_parameters.
389
390 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
391 cursor differently.
392
393 * xdisp.c (move_it_vertically_backward): Compute line height
394 differently. Add heuristic to try to be more compatible to 20.x.
395
396 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
397
398 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
399
400 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
401 boolean.
402
403 2001-10-25 Miles Bader <miles@gnu.org>
404
405 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
406 BG is a pointer to a structure, not a structure.
407 (gif_format, png_format): Add missing commas.
408
409 2001-10-24 Richard M. Stallman <rms@gnu.org>
410
411 * xfaces.c (Fface_attributes_as_vector): New function.
412 (syms_of_xfaces): Defsubr it.
413
414 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
415
416 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
417 variable `area'.
418
419 2001-10-25 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
420
421 * search.c (scan_newline): Remove unused variable `selective_display'.
422
423 2001-10-25 Miles Bader <miles@gnu.org>
424
425 * dispextern.h (struct image): Add `background',
426 `background_valid', and `background_transparent' fields.
427 (image_background, image_background_transparent): New declarations.
428 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
429 * xfns.c (image_background, image_background_transparent)
430 (four_corners_best): New functions.
431 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
432 (gs_format): Add `:background' entry.
433 (lookup_image): Set IMG's background color if specified.
434 (pbm_load, xbm_load_image, png_load): Set IMG's background field
435 when appropriate.
436 (x_clear_image_1): Reset `background_valid' and
437 `background_transparent_valid' fields.
438 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
439 calculating it here. Set IMG's background_transparent field.
440 (enum xpm_keyword_index): Add XPM_BACKGROUND.
441 (enum png_keyword_index): Add PNG_BACKGROUND.
442 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
443 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
444 (enum gif_keyword_index): Add GIF_BACKGROUND.
445 (enum gs_keyword_index): Add GS_BACKGROUND.
446 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
447 Pre-calculate image background color where necessary.
448 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
449 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
450 color to use for image glyph reliefs.
451
452 2001-10-24 Gerd Moellmann <gerd@gnu.org>
453
454 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
455 in full-width rows.
456
457 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
458 Fix clearing of area not covered by scroll bar.
459
460 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
461
462 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
463 and `real_start'.
464 (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
465 (glyph_rect): Remove unused variable `area'.
466
467 2001-10-24 Gerd Moellmann <gerd@gnu.org>
468
469 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
470
471 * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
472 (row_containing_pos): Take additional argument DY.
473 Treat rows ending in middle of char differently.
474 (display_line): Handle tabs on window systems differently.
475
476 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
477 with additional argument.
478
479 * dispextern.h (row_containing_pos): Adjust prototype.
480
481 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
482 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
483 (try_window_id, try_window_reusing_current_matrix)
484 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
485 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
486
487 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
488
489 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
490 gnuemacs).
491 (HAVE_BOXES): Fix typo in comment.
492 (push_menu_pane): Fix typo in comment.
493
494 * xdisp.c: (display_prop_string_p): Remove unused local declaration
495 of `Qwhen'.
496 (single_display_prop_string_p): Remove unused local declarations
497 of `Qwhen' and `Qmargin'.
498 (string_buffer_position): Remove unused variable `around'.
499 (store_frame_title): Remove unused variable `width'.
500
501 * window.c: Don't define max.
502 (coordinates_in_window): Remove unused variable `uy'.
503
504 * widget.c: Don't define max.
505
506 * process.c: Don't define max.
507 (create_process): Remove unused variable `buffer'.
508
509 2001-10-23 Gerd Moellmann <gerd@gnu.org>
510
511 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
512
513 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
514
515 * xfaces.c (Finternal_set_lisp_face_attribute)
516 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
517 frame is on a windowed display.
518
519 2001-10-23 Gerd Moellmann <gerd@gnu.org>
520
521 * dispnew.c (sync_window_with_frame_matrix_rows):
522 Fix handling of windows which aren't full-width, fix handling
523 of marginal areas.
524
525 * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
526
527 2001-10-23 Andreas Schwab <schwab@suse.de>
528
529 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
530 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
531
532 2001-10-23 Gerd Moellmann <gerd@gnu.org>
533
534 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
535 REAL_END. Notice if cursor gets overwritten.
536 (notice_overwritten_cursor): Take X positions as parameters.
537 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
538 around call to x_draw_glyphs.
539
540 2001-10-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
541
542 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
543 instead of C) and usage.
544
545 * editfns.c (char-to-string): Fix argument names (use CHAR instead
546 of C) and usage.
547
548 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
549 `left', `max_width' and `max_height'.
550
551 2001-10-23 Gerd Moellmann <gerd@gnu.org>
552
553 * xdisp.c (display_line): For a tab continued to the next line,
554 set row's ends_in_middle_of_char_p.
555
556 2001-10-22 Gerd Moellmann <gerd@gnu.org>
557
558 * xdisp.c (display_line): Fix computation of continuation lines
559 width for TABs.
560
561 2001-10-22 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
562
563 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
564 `Qlaplace'.
565
566 * fileio.c: Remove unused code.
567
568 2001-10-22 Miles Bader <miles@gnu.org>
569
570 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
571 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
572 Remove `DOC_STRINGS_IN_COMMENTS' cases.
573
574 2001-10-21 Jason Rumney <jasonr@gnu.org>
575
576 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
577
578 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
579
580 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
581 (Finsert_string): Avoid the multi-line string literals warning.
582
583 2001-10-22 Miles Bader <miles@gnu.org>
584
585 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
586 (Fdocumentation): Don't use it.
587 (syms_of_doc): Don't initialize it.
588
589 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
590 * print.c (Fwith_output_to_temp_buffer): Likewise.
591 * window.c (Fsave_window_excursion): Likewise.
592 * editfns.c (Fsave_excursion, Fsave_current_buffer)
593 (Fsave_restriction): Likewise.
594 * eval.c (Frun_hooks, Frun_hook_with_args)
595 (Frun_hook_with_args_until_failure)
596 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
597 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
598 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
599 (Funwind_protect, Fcondition_case): Likewise.
600 * coding.c (Ffind_operation_coding_system): Likewise.
601 * keyboard.c (Ftrack_mouse): Likewise.
602
603 2001-10-21 Miles Bader <miles@gnu.org>
604
605 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
606 (Fmake_hash_table): Add usage: string to doc string.
607 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
608 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
609 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
610 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
611 (Fml_prefix_argument_loop): Likewise.
612
613 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
614
615 * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
616
617 * sysdep.c (init_sys_modes): Change doc-string comments to `new
618 style' [w/`doc:' keyword].
619
620 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
621 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
622 comments to `new style' [w/`doc:' keyword].
623
624 2001-10-21 Jason Rumney <jasonr@gnu.org>
625
626 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
627
628 * w32term.c (remember_mouse_glyph): New function.
629 (w32_mouse_position): Use it.
630 (note_mouse_movement): If the mouse moved off the glyph, remember
631 its new position.
632
633 * w32term.h (struct w32_output): Correct spelling of x_compatible.
634 (w32_display_info): Add mouse_face_overlay.
635
636 * w32term.c (notice_overwritten_cursor): Renamed from
637 note_overwritten_text_cursor. Rewritten to take glyph widths into
638 account.
639 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
640 (fast_find_string_pos): New function.
641 (fast_find_position): Return the correct vpos. Add parameter
642 STOP. In the final row, stop before glyphs having STOP as object.
643 Don't consider glyphs that are not from a buffer.
644 (fast_find_position) [0]: Add a presumably more correct version
645 for after 21.1.
646 (expose_window_tree, expose_frame): Don't compute intersections here.
647 (expose_window): Do it here instead.
648 (expose_window_tree, expose_window, expose_line): Return 1 when
649 overwriting mouse-face.
650 (expose_window): If W is the window currently being updated, mark
651 the frame garbaged.
652 (expose_frame): If mouse-face was overwritten, redo it.
653 (x_use_underline_position_properties): New variable.
654 (syms_of_xterm): DEFVAR_BOOL it.
655 (x_draw_glyph_string): Add comment to use it in future.
656 (x_draw_glyph_string): Restore clipping after drawing box.
657 Fix a computation of the underline position.
658 (w32_get_glyph_string_clip_rect): Minor cleanup.
659 (x_fill_stretch_glyph_string): Remove an assertion.
660 (x_produce_glyphs): Don't convert multibyte characters
661 to unibyte characters in unibyte buffers.
662 (cursor_in_mouse_face_p): New function.
663 (x_draw_stretch_glyph_string): Use it to choose a different GC
664 when drawing a cursor within highlighted text. Don't draw
665 background again if it has already been drawn.
666 (x_draw_glyph_string_box): Don't draw a full-width
667 box just because the glyph row's full_width_p flag is set.
668 (x_draw_glyphs): Fix computation of rightmost x for
669 full-width rows.
670 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
671 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
672 change bottom shadow accordingly. Some cleanup.
673 (x_update_window_end): Handle overwritten mouse face
674 also for tool bar windows.
675 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
676 DRAW is DRAW_IMAGE_RAISED.
677 (clear_mouse_face): Return 1 if text with mouse face was
678 actually redrawn. Make the function static. Reset
679 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
680 optimize away highlighting if we pass over that same overlay again.
681 (note_mouse_highlight): Call mouse_face_overlay_overlaps
682 to detect a case where we have to highlight a different region
683 despite not having left the currently highlighted region.
684 Set mouse_face_overlay in the x_display_info. Avoid changing the
685 mouse pointer shape when show_mouse_face has already done it, or
686 there is no need. Handle mouse-face and help-echo in strings.
687 (glyph_rect): New function.
688 (w32_mouse_position): Use it to raise the threshold for mouse
689 movement event generation.
690 (w32_initialize_display_info): Initialize the x_display_info's
691 mouse_face_overlay.
692 (w32_set_vertical_scroll_bar): Don't clear a zero height
693 or width area.
694 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
695 a widget to zero height.
696
697 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
698 Protect unibyte strings created by replacing their multibyte
699 equivalents in menu_items.
700 (w32_menu_show): Don't overwrite an item's name with its key
701 description in case the description is a multibyte string.
702 (single_submenu): Some cleanup.
703
704 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
705 (postprocess_image): New function.
706 (lookup_image): Call it for all image types except PostScript.
707 (x_kill_gs_process): Call postprocess_image.
708 (tiff_error_handler, tiff_warning_handler): New functions.
709 (tiff_load): Install them as handlers.
710 (x_kill_gs_process): Recognize if someone has cleared the image
711 cache under us.
712 (valid_image_p): Protect better against invalid image
713 specifications. Previous code could signal an error.
714 (Fx_hide_tip, Fshow_tip): Doc fix.
715 (Fv_max_tooltip_size): New variable.
716 (syns_of_xfns): DEFVAR_LISP it.
717 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
718 window buffer to *tip* right after creating the frame. Set frame's
719 window_width. Use a maximum tooltip size specified by
720 Vx_max_tooltip_size, if that has valid contents.
721 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
722 Make sure the tooltip is completely visible.
723 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
724 (Fx_create_frame): Adjust the frame's height for presence
725 of the tool bar before calling x_figure_window_size.
726 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
727 when the window gets smaller.
728 (x_set_foreground_color): Set frame's cursor_pixel.
729 (x_set_foreground_color, x_set_background_color): Cleaned up.
730 (x_set_font): Handle case of x_new_fontset returning the same name
731 as before, although there was a change in fontsets.
732
733 2001-10-21 Miles Bader <miles@gnu.org>
734
735 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
736 (Flogxor): Add usage: string to doc string.
737 * charset.c (Fstring): Likewise.
738 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
739 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
740
741 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
742
743 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
744
745 * alloc.c: Reindent DEFUNs with doc: keywords.
746
747 * abbrev.c (Finsert_abbrev_table_description): Reindent.
748
749 * frame.c: Change doc-string comments to `new style' [w/`doc:'
750 keyword].
751
752 2001-10-20 Gerd Moellmann <gerd@gnu.org>
753
754 * (Version 21.1 released.)
755
756 2001-10-20 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
757
758 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes removed.
759
760 * xdisp.c (invisible_text_between_p): Put prototype inside #if
761 0 because unused.
762
763 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
764 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c:
765 Change doc-string comments to `new style' [w/`doc:' keyword].
766
767 2001-10-20 Miles Bader <miles@gnu.org>
768
769 The following changes remove the glyph_row `inverse_p' field,
770 which is never set anymore, due to other changes:
771
772 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
773 (reassert_line_highlight, change_line_highlight): Declarations removed.
774 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
775 (line_hash_code, row_equal_p, fake_current_matrices)
776 (build_frame_matrix_from_leaf_window, update_frame_line)
777 (update_frame_line, update_frame_line, update_frame_line):
778 Don't use `inverse_p' field.
779 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
780 change_line_highlight_hook.
781 (XTreassert_line_highlight, x_change_line_highlight):
782 Functions removed.
783 (x_fix_overlapping_area, x_write_glyphs, expose_area)
784 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
785 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
786 `inverse_p' field.
787 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
788 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
789 (w32_reassert_line_highlight, x_change_line_highlight):
790 Functions removed.
791 * w32console.c (reassert_line_highlight, change_line_highlight):
792 Functions removed.
793 (initialize_w32_display): Don't set reassert_line_highlight_hook
794 or change_line_highlight_hook.
795 (hl_mode): Function removed.
796 (reset_terminal_modes, set_terminal_modes, update_begin)
797 (update_end, w32_face_attributes, initialize_w32_display):
798 (clear_frame, ins_del_lines): Don't call it.
799 * termhooks.h (reassert_line_highlight_hook)
800 (change_line_highlight_hook): Declarations removed.
801 * term.c (reassert_line_highlight_hook)
802 (change_line_highlight_hook): Variables removed.
803 (reassert_line_highlight, change_line_highlight): Functions removed.
804 * msdos.c (IT_reassert_line_highlight)
805 (IT_change_line_highlight): Functions removed.
806 (internal_terminal_init): Don't set reassert_line_highlight_hook
807 or change_line_highlight_hook.
808 (highlight): Variable removed.
809 (IT_set_face, IT_update_begin, IT_update_end)
810 (IT_set_terminal_modes): Don't set or use it.
811
812 The following changes remove inverse-video support for terminals
813 that use a `magic cookie' standout mode. Due to changes in the
814 way mode-lines are displayed, such support no longer works
815 anyway, and it's probable that almost no one uses such terminals
816 anymore:
817
818 * term.c (standout_requested): Variable removed.
819 (update_end, highlight_if_desired): Don't use it.
820 (chars_wasted, copybuf): Variables removed.
821 (write_standout_marker): Function removed.
822 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
823 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
824 Don't use `chars_wasted' or `copybuf'.
825 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
826 Set `costs_set' to true.
827 (cursor_to, clear_end_of_line): Test `costs_set' instead of
828 `chars_wasted'.
829 (clear_end_of_line): Function removed.
830 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
831 (clear_to_end): Call `clear_end_of_line' instead of
832 `clear_end_of_line_raw'.
833 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
834 (term_init): Don't set them.
835 Turn off any standout/underline modes that require magic cookies.
836 (ins_del_lines, highlight_if_desired, background_highlight)
837 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
838 Remove special processing for magic-cookie standout modes.
839 (turn_off_face, turn_on_face): Remove special processing for
840 underline magic-cookie glitch.
841
842 2001-10-19 Richard M. Stallman <rms@gnu.org>
843
844 * eval.c (syms_of_eval): Doc fixes.
845
846 2001-10-19 Gerd Moellmann <gerd@gnu.org>
847
848 * xdisp.c (redisplay_internal): Don't clear echo area if the
849 mini-window is selected.
850
851 2001-10-19 Miles Bader <miles@gnu.org>
852
853 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
854 doesn't take precedence if the affected property's value is nil.
855
856 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
857
858 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
859 with fields and suggest using `forward-line' to avoid them.
860 * editfns.c (Fline_beginning_position, Fline_end_position):
861 Clarify documentation.
862
863 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
864
865 * keymap.c (current_minor_maps): `override' only shadows its
866 correspondent in minor-mode-map-alist, not the whole tail.
867
868 2001-10-18 Andrew Innes <andrewi@gnu.org>
869
870 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
871 optimization. The fontp->encoding array was not being initialized
872 correctly when compiled with optimizations by MSVC.
873
874 2001-10-18 Gerd Moellmann <gerd@gnu.org>
875
876 * xdisp.c (display_line): Indicate empty lines in active mini-window.
877
878 2001-10-17 Andrew Innes <andrewi@gnu.org>
879
880 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
881
882 * w32fns.c (w32_load_system_font): Cache codepage for font, in
883 font_info.charset field.
884
885 * w32term.c (w32_encode_char): Get cached codepage from font_info,
886 rather than working it out by calling w32_codepage_for_font for
887 every glyph.
888
889 2001-10-17 Andrew Innes <andrewi@gnu.org>
890
891 * w32term.c (w32_read_socket): Determine clipping rectangle for
892 the entire frame, including areas covered by scrollbars and the
893 menubar. This avoids internal arguments about whether a frame is
894 fully obscured or not.
895
896 2001-10-17 Gerd Moellmann <gerd@gnu.org>
897
898 * xdisp.c (try_window_id): Undo last change. Give up if
899 window ends in strings.
900
901 * xdisp.c (try_window_id): Don't display lines after the window
902 end if the rest of the window after the window end was already blank.
903
904 * xdisp.c (try_window_id): Remove code that was only there
905 for the release of 21.1.
906
907 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
908
909 2001-10-17 Miles Bader <miles@gnu.org>
910
911 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
912 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
913 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
914 Change doc-string comments to `new style' [w/`doc:' keyword].
915 (DOC_STRINGS_IN_COMMENTS): Macro removed.
916 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
917 out make-docfile.
918
919 2001-10-16 Miles Bader <miles@gnu.org>
920
921 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
922
923 2001-10-16 Gerd Moellmann <gerd@gnu.org>
924
925 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
926 *scratch*.
927
928 2001-10-16 Ken Raeburn <raeburn@gnu.org>
929
930 Avoid the assumption that car and cdr slots of cons cells are
931 addressable lvalues; this allows for easier experimentation with
932 other lisp implementations that may not permit such accesses for
933 various reasons. Not quite complete -- buffer.c still needs some
934 work, and w32/mac files need rechecking -- so compile-time
935 enforcement is left disabled for now.
936
937 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
938 gcc with a union-based Lisp object rep. Redefine as no-op for now.
939 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
940 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
941 (XSETCAR, XSETCDR): New macros.
942 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
943 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
944 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
945 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
946 XSETCDR.
947 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
948 * buffer.c (record_buffer, Fbury_buffer)
949 (swap_out_buffer_local_variables, recenter_overlay_lists)
950 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
951 fields of a cons cell respectively.
952 * callint.c (quotify_args, Fcall_interactively): Likewise.
953 * ccl.c (Fregister_code_conversion_map): Likewise.
954 * coding.c (detect_coding_system): Likewise.
955 * composite.c (get_composition_id, make_composition_value_copy):
956 Likewise.
957 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
958 (swap_in_symval_forwarding, set_internal, Fset_default)
959 (Fmake_variable_buffer_local, Fmake_local_variable)
960 (Fmake_variable_frame_local): Likewise.
961 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
962 * keymap.c (Fset_keymap_parent, store_in_keymap)
963 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap): Likewise.
964 * minibuf.c (get_minibuffer): Likewise.
965 * search.c (Fmatch_data): Likewise.
966 * textprop.c (extend_property_ranges): Likewise.
967 * undo.c (record_insert, Fundo_boundary, truncate_undo_list): Likewise.
968 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
969 Likewise.
970 * w32term.c (x_delete_display): Likewise.
971 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
972 Likewise.
973 * xterm.c (x_list_fonts, x_load_font, x_delete_display): Likewise.
974 * doc.c (store_function_docstring): Use XSETCARFASTINT.
975 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
976 (Fread_file_name): Use XSETCAR.
977 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
978 CHECK_NUMBER_CDR.
979 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
980 * frame.c (Fmake_terminal_frame): Use XSETCDR.
981 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
982 CHECK_NUMBER_CDR.
983 * keyboard.c (read_char): Alter list traversal to avoid taking the
984 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
985 (parse_menu_item): Use XSETCAR and XSETCDR.
986 (reach_char_x_menu_prompt): Use XSETCAR.
987 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
988 (Fcommand_execute): Use XSETCDR.
989 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
990 (openp): Change list traversal to avoid using XCAR as lvalue.
991 (read_list): Use XSETCDR.
992 * process.c (wait_reading_process_input): Change wait_for_cell
993 handling to avoid taking addresses of cons cell slots.
994 * xselect.c (x_own_selection, x_handle_selection_clear)
995 (x_clear_frame_selections): Use XSETCDR.
996 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
997 (x_handle_property_notify, x_get_foreign_selection)
998 (x_handle_selection_notify): Use XSETCAR.
999
1000 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1001
1002 * buffer.c: Put doc strings in comments.
1003
1004 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
1005
1006 2001-10-15 Sam Steingold <sds@gnu.org>
1007
1008 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
1009
1010 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1011
1012 * process.c (process-inherit-coding-system-flag)
1013 (get-buffer-process): Do not confuse make-docfile with doc strings
1014 in comment.
1015
1016 * editfns.c (Fchar_to_string): Make doc string consistent with
1017 arguments. Put doc strings in comments.
1018
1019 * abbrev.c, minibuf.c: Put doc strings in comments.
1020
1021 2001-10-15 Gerd Moellmann <gerd@gnu.org>
1022
1023 * window.c (window_loop): Don't check for Fother_buffer returning nil.
1024
1025 * window.c (select_window_1): Unfreeze window start. Remove a
1026 doubled test for WINDOW being live.
1027
1028 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1029
1030 * fns.c (Fmapconcat): Fix typo in a doc string.
1031
1032 * dispnew.c (Fsleep_for): Fix typo in a doc string.
1033
1034 2001-10-15 Gerd Moellmann <gerd@gnu.org>
1035
1036 * xterm.c (x_draw_glyph_string): Restore clipping after
1037 drawing box.
1038
1039 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1040
1041 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
1042
1043 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
1044
1045 * indent.c (skip_invisible): Use new retval of
1046 TEXT_PROP_MEANS_INVISIBLE.
1047
1048 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
1049 If a parent is reached and noinherit is set, exit immediately.
1050 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
1051
1052 * s/ms-w32.h (EXEC_SUFFIXES):
1053 * s/msdos.h (EXEC_SUFFIXES):
1054 * process.h (EXEC_SUFFIXES): Remove.
1055
1056 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
1057 (decode_suffixes): Remove.
1058
1059 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
1060 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
1061 (invisible_ellipsis_p): Remove.
1062
1063 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
1064 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
1065 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
1066 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
1067 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
1068
1069 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1070
1071 * lisp.h (Ftop_level): Add prototype.
1072
1073 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
1074 (XTread_socket): Improve style of comments to follow other
1075 comments.
1076
1077 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
1078 is already prototyped in included lisp.h).
1079
1080 * frame.c (Fset_mouse_position): Improve style of comment to
1081 follow other comments.
1082 (Fset_mouse_pixel_position): Improve style of comment to follow
1083 other comments.
1084 (Fmake_frame_visible): Doc fix and typo in comment.
1085 (Fmake_frame_invisible): Doc fix and typo in comment.
1086 (Ficonify_frame): Fix typo in comment.
1087
1088 2001-10-14 Gerd Moellmann <gerd@gnu.org>
1089
1090 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
1091 * term.c, alloc.c: Put doc strings in comments.
1092
1093 2001-10-13 Gerd Moellmann <gerd@gnu.org>
1094
1095 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
1096 Provide definitions for doc strings in comments.
1097
1098 * fns.c: Put doc strings in comments.
1099
1100 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
1101
1102 * dired.c (file_name_completion): Ignore a candidate directory if
1103 it matches an element in completion-ignored-extensions that ends
1104 in a slash.
1105 (syms_of_dired) <completion-ignored-extensions>: Mention the above
1106 feature in the doc string.
1107 (Ffile_name_completion): Ditto.
1108
1109 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
1110
1111 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
1112
1113 * xfns.c (syms_of_xfns): Update calls to Fprovide.
1114
1115 * lisp.h (Fprovide): Update prototype.
1116 (Ffeaturep, invisible_p): Remove.
1117
1118 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
1119 (DOLIST, LOOP_PROPVAL): New macros.
1120 (invisible_p, invisible_ellipsis_p): Use them.
1121 (invisible_noellipsis_p): New function.
1122 (syms_of_xdisp): Use empty_string.
1123
1124 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
1125
1126 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
1127 (syms_of_lread) <Vafter_load_alist>: Update docstring.
1128
1129 * print.c (Fwith_output_to_temp_buffer): Align with
1130 internal_with_output_to_temp_buffer.
1131 (print_preprocess): Use traverse_intervals_noorder.
1132 (print_object): Update call to traverse_intervals.
1133
1134 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
1135 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
1136
1137 * intervals.c (traverse_intervals_noorder): New function.
1138 (search_for_interval, count_intervals): Use it.
1139 (traverse_intervals): Use less stack space and drop `depth' arg.
1140
1141 * fns.c (Ffeaturep): Add new `subfeature' arg.
1142 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
1143 (Qsubfeatures): New var.
1144 (syms_of_fns): Initialize it.
1145
1146 * keymap.c (Fkey_description): Use empty_string.
1147 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
1148 (syms_of_keymap): Setup inheritance between maps.
1149 Don't export Sdescribe_bindings_internal any more.
1150
1151 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
1152
1153 2001-10-12 Gerd Moellmann <gerd@gnu.org>
1154
1155 * xterm.c (notice_overwritten_cursor): Renamed from
1156 note_overwritten_text_cursor. Rewritten to take glyph widths into
1157 account.
1158
1159 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
1160
1161 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
1162 multi-line strings without a trailing "\n\".
1163
1164 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1165
1166 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
1167 defined.
1168
1169 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
1170
1171 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
1172
1173 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
1174 * w32proc.c (sys_spawnve):
1175 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
1176 * w32.c (check_windows_init_file):
1177 * sound.c (Fplay_sound):
1178 * emacs.c (init_cmdargs):
1179 * process.c (Fstart_process): Update calls to openp.
1180
1181 * callproc.c (Vexec_suffixes): New var.
1182 (Fcall_process): Update call to openp.
1183 (decode_suffixes): New function.
1184 (syms_of_callproc): Init exec-suffixes.
1185
1186 * lread.c (Vload_suffixes, default_suffixes): New vars.
1187 (openp): Take a lisp list of suffixes.
1188 Check for file-name-handlers even if the file was absolute already.
1189 (syms_of_lread): Declare load-suffixes.
1190 (Fload): Fix up call to openp.
1191 Don't bother checking for file-name-handler at the very beginning.
1192
1193 * keymap.h (Fcopy_keymap): Don't export.
1194
1195 * lisp.h (empty_string): Declare.
1196 (Vload_suffixes, Vexec_suffixes): Declare.
1197 (openp): Update prototype.
1198
1199 * emacs.c (empty_string): New var.
1200 (syms_of_emacs): Initialize it.
1201
1202 * search.c (wordify): Use it.
1203
1204 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
1205 selected window if it's not displayed there. Handle the case
1206 when the window is dedicated.
1207 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
1208
1209 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
1210
1211 * syntax.h (struct gl_state_s): Change the meaning of b_property.
1212 Remove left_ok and right_ok.
1213 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
1214 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
1215 new meaning of b_property.
1216
1217 * syntax.c (update_syntax_table): Simplify.
1218 (Fforward_comment): Don't skip quoted chars when going backward.
1219
1220 2001-10-11 Gerd Moellmann <gerd@gnu.org>
1221
1222 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
1223 in case I is of some unsigned type, in which case
1224 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
1225 comparison becomes bogus.
1226
1227 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
1228 (Fuser_full_name): Fix bug treating a float as a fixnum.
1229
1230 * data.c (Fstring_to_number): Use make_fixnum_or_float.
1231
1232 * lisp.h (make_fixnum_or_float): New macro.
1233
1234 * lisp.h (circular_list_error): Add prototype.
1235
1236 * data.c (Qcircular_list): New variable.
1237 (circular_list_error): New function.
1238 (syms_of_data): Initialize it Qcircular_list.
1239
1240 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
1241
1242 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
1243 casefiddle.c, buffer.c: Include keymap.h.
1244
1245 2001-10-10 Gerd Moellmann <gerd@gnu.org>
1246
1247 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
1248 options. From Dave Love <d.love@dl.ac.uk>.
1249
1250 2001-10-09 Gerd Moellmann <gerd@gnu.org>
1251
1252 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
1253 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1254
1255 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
1256 unsigned char.
1257 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
1258
1259 2001-10-08 Andrew Innes <andrewi@gnu.org>
1260
1261 * lisp.h [max]: Undef min and max before redefining them.
1262
1263 * w32gui.h: Do not undef min and max.
1264
1265 * w32heap.h: Do not undef min and max.
1266
1267 * s/ms-w32.h: Do not undef min and max.
1268
1269 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1270
1271 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
1272
1273 2001-10-08 Sam Steingold <sds@gnu.org>
1274
1275 * keymap.c (current-active-maps): Quote newlines (compilation error).
1276
1277 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
1278
1279 * Makefile.in (lisp, shortlisp): Replace bindings.el with
1280 bindings.elc, since otherwise doc strings in bindings.el get wrong
1281 offsets in etc/DOC.
1282
1283 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
1284
1285 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
1286
1287 * keyboard.h (map_prompt): Remove.
1288
1289 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
1290 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
1291
1292 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1293
1294 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
1295
1296 * keyboard.c (map_prompt): Remove.
1297 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
1298 Use Fkeymap_prompt.
1299
1300 * keymap.h: New file. Extracted from lisp.h.
1301
1302 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
1303 (accessible_keymaps_1): New function.
1304 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
1305 (Fwhere_is_internal): Use Fcurrent_active_maps.
1306 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
1307 Insert in current buffer rather than standard-output.
1308 Don't call `help-mode'. Export to elisp.
1309 (describe_buffer_bindings): New wrapper.
1310 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
1311 and Sdescribe_buffer_bindings.
1312
1313 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1314
1315 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
1316 Remove code setting signal handler.
1317
1318 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
1319 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
1320
1321 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1322
1323 * keyboard.c: Don't define min/max.
1324
1325 2001-10-08 Gerd Moellmann <gerd@gnu.org>
1326
1327 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
1328 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
1329 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
1330 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
1331 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
1332 Don't define min/max.
1333
1334 * lisp.h (min, max): New macros.
1335
1336 * puresize.h (BASE_PURESIZE): Increase to 725000.
1337
1338 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1339
1340 * xfaces.c (free_frame_menubar): Add prototype.
1341
1342 * lisp.h (init_window): Add prototype.
1343
1344 * editfns.c: Include ctype.h.
1345
1346 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
1347 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
1348 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
1349 variable `sb'.
1350
1351 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
1352 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
1353 `popup_activated_flag' and `title'.
1354
1355 * doc.c (Fdocumentation_property): Fix typo in a doc string.
1356
1357 * emacs.c (main): Remove extra `;'.
1358
1359 * atimer.h (struct atimer): Fix typos in a comment.
1360
1361 * atimer.c: Fix typo.
1362
1363 * Makefile.in: Fix typo.
1364
1365 * README: Remove obsolete part mentioning removed VMS file.
1366
1367 2001-10-07 Miles Bader <miles@gnu.org>
1368
1369 * Makefile.in (lisp, shortlisp): Add `button.elc'.
1370
1371 2001-10-07 Ken Raeburn <raeburn@gnu.org>
1372
1373 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
1374 Lisp_Object.
1375
1376 * lisp.h (Ffield_end): Declare.
1377
1378 2001-10-07 Gerd Moellmann <gerd@gnu.org>
1379
1380 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
1381
1382 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
1383
1384 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
1385
1386 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
1387
1388 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
1389 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
1390
1391 * alloc.c (inhibit_garbage_collection): Simplify.
1392 (Fmemory_use_counts): Ditto.
1393
1394 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
1395 (syms_of_data): DEFVAR_INT most-positive-fixnum and
1396 most-negative-fixnum.
1397
1398 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
1399 (FIXNUM_OVERFLOW_P): New macros.
1400
1401 2001-10-06 Miles Bader <miles@gnu.org>
1402
1403 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
1404 scroll_bar_bottom_shadow_pixel fields.
1405 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
1406 for the shadows, and tell the toolkit about them if we succeed.
1407 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
1408 Free scroll-bar shadow colors.
1409 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
1410 Free scroll-bar shadow colors when the background color changes.
1411 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
1412 Initialize scroll-bar shadow-color fields.
1413
1414 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1415
1416 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
1417
1418 2001-10-05 Miles Bader <miles@gnu.org>
1419
1420 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
1421 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
1422 New functions (were in simple.el).
1423 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
1424 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
1425 (syms_of_minibuf): Initialize them.
1426
1427 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1428
1429 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
1430 (tiff_load): Install them as error and warning handler.
1431
1432 2001-10-04 Andrew Innes <andrewi@gnu.org>
1433
1434 * w32fns.c (x_to_w32_color): Fix argument to alloca.
1435 (w32_load_system_font): Don't believe what GetLanguageFontInfo
1436 says; query codepage info directly to determine if font is double byte.
1437 (x_to_w32_charset): Handle private format for unknown charsets.
1438 Handle wildcards in charset spec, by ignoring them.
1439 (w32_codepage_for_font): Fix argument to alloca. Don't remove
1440 "*-" prefix from charset.
1441 (x_to_w32_font): Enlarge remainder array for safety. Specifically
1442 handle the truncated font spec form constructed by font_list_1, so
1443 that we correctly identify the charset fields. Don't remove "*-"
1444 prefix from charset.
1445 (w32_list_synthesized_fonts): Fix argument to alloca.
1446
1447 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
1448
1449 * window.h (MINI_WINDOW_P): Use NILP.
1450
1451 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
1452
1453 * termhooks.h (struct input_event): Use proper type for `kind'.
1454
1455 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1456
1457 This handles unknown keysyms better than before. For example,
1458 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
1459 Emacs formerly completely ignored F5. With the change, it derives
1460 a key symbol from the name of the X keysym, `ccaron' in this case.
1461 Reported by Martin Buchholz.
1462
1463 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
1464 unknown keysyms.
1465
1466 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
1467 that EVENT->code isn't a function key, use the keysym's name.
1468
1469 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1470
1471 FOREACH is a macro that should make it easier to loop over Lisp
1472 lists with checks for cycles and proper lists.
1473
1474 * lisp.h (LIST_END_P, FOREACH): New macros.
1475
1476 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1477
1478 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
1479 called for a lost connection. Prevent dumping core in this case.
1480 Instead print the X error, and exit. On user request.
1481
1482 * xterm.c (error_msg): New variable.
1483 (x_fatal_error_signal): New function.
1484 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
1485 as fatal_error_signal_hook around the call to XtCloseDisplay.
1486
1487 * emacs.c (fatal_error_signal_hook): New variable.
1488 (fatal_error_signal): Call that function.
1489
1490 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1491
1492 With this, Emacs prints how much pure storage it will
1493 approximately need in case pure storage overflows while dumping.
1494
1495 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
1496 New variables.
1497 (init_alloc_once): Initialize new variables.
1498 (PURE_POINTER_P): Use new variables.
1499 (pure_alloc): If pure storage overflows, allocate from the heap.
1500 (check_pure_size): New function.
1501 (Fgarbage_collect): Don't GC if pure storage has overflowed.
1502
1503 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
1504 (check_pure_size): Add prototype.
1505
1506 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
1507
1508 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1509
1510 This adds a post-gc-hook that's run with GC inhibited.
1511 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
1512
1513 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
1514 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
1515 (Fgarbage_collect): Run post-gc-hook.
1516
1517 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1518
1519 This adds `defvaralias' and `indirect-variable'. Changes not
1520 directly related to this feature are there to gain the same
1521 performance again as before variable aliases.
1522
1523 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
1524 code to get and set symbol values, to take defvaralias into account.
1525
1526 (Note: the new `constant' bit-flag in symbols would make it
1527 possible to define arbitrary read-only variables, e.g. with
1528 `defconst'.)
1529
1530 Documentation is in lispref/variables.texi. Added to NEWS.
1531
1532 * lisp.h (enum symbol_interned): New enumeration.
1533 (struct Lisp_Symbol): Remove member `obarray', add
1534 `indirect_variable', `constant', and `interned'.
1535 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
1536 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
1537 (indirect_variable): Add prototype.
1538
1539 * print.c (print_preprocess, print_object): Test internedness of
1540 symbols differently.
1541
1542 * lread.c (Fintern, Funintern): Set symbol's interned and constant
1543 bit-fields.
1544 (init_obarray): Likewise for t and nil.
1545
1546 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1547 (Fdefvaralias): New function.
1548 (specbind): Simplify the test if symbol is a constant.
1549 (syms_of_eval): Defsubr Fdefvaralias.
1550
1551 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1552 (Qcyclic_variable_indirection): New variable.
1553 (Fkeywordp): Check for internedness differently.
1554 (Fmakunbound): Simplify the test if symbol is a constant.
1555 (indirect_variable, Findirect_variable): New functions.
1556 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
1557 aliased symbol.
1558 (let_shadows_buffer_binding_p): Check for variable aliases.
1559 (set_internal): Simplify the test if SYMBOL is a constant.
1560 If SYMBOL has a buffer-local value and is an alias, use the aliased
1561 symbol instead.
1562 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
1563 Sindirect_variable.
1564
1565 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
1566 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
1567 set directly.
1568
1569 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
1570
1571 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
1572 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
1573 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
1574
1575 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1576
1577 * Branch for 21.1.
1578
1579 2001-10-03 Miles Bader <miles@gnu.org>
1580
1581 * callproc.c (syms_of_callproc): Explicitly state in the
1582 documentation for `process-environment' that earlier entries take
1583 precedence over later ones.
1584
1585 2001-10-02 Miles Bader <miles@gnu.org>
1586
1587 * textprop.c (Fnext_char_property_change)
1588 (Fprevious_char_property_change): Remove reference to non-existant
1589 argument OBJECT from doc-string.
1590
1591 2001-10-01 Gerd Moellmann <gerd@gnu.org>
1592
1593 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
1594 (try_window_id): Skip back over lines ending in a newline from a
1595 string.
1596
1597 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
1598 New bit flag
1599
1600 2001-10-01 Richard M. Stallman <rms@gnu.org>
1601
1602 * search.c (Freplace_match): Doc fix.
1603
1604 2001-09-28 Andrew Innes <andrewi@gnu.org>
1605
1606 * w32menu.c (set_frame_menubar): Take into account that
1607 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1608 <raeburn@gnu.org>.
1609
1610 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
1611
1612 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
1613
1614 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1615
1616 * s/gnu-linux.h: Fix a typo in comment.
1617
1618 2001-09-28 Andreas Schwab <schwab@suse.de>
1619
1620 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
1621 nocombreloc, in case -z combreloc is the default.
1622
1623 2001-09-28 Gerd Moellmann <gerd@gnu.org>
1624
1625 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
1626 really going on here.
1627
1628 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
1629
1630 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
1631
1632 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
1633
1634 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
1635 utf-8, menu-bar, and latin-N.
1636 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
1637 unconditionally now.
1638 (lisp): Add latin-N, since they are preloaded.
1639
1640 2001-09-27 Gerd Moellmann <gerd@gnu.org>
1641
1642 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
1643 to the left. Some cleanup.
1644
1645 * xdisp.c (display_mode_element): One more case where a string's
1646 multibyteness should be used for display.
1647
1648 2001-09-26 Gerd Moellmann <gerd@gnu.org>
1649
1650 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
1651 reading at EOF.
1652
1653 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
1654 of the only temporarily set echoing flag for deciding when
1655 the cancel echoing.
1656
1657 * keyboard.c (echo_kboard): Make externally visible.
1658
1659 * lisp.h (echo_kboard): Declare extern.
1660
1661 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
1662 fonts_changed_p if we need larger matrices due to vscrolling.
1663 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
1664 this round of redisplay if make_cursor_line_fully_visible fails.
1665 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
1666 (try_cursor_movement, try_scrolling): Use them instead of integers.
1667
1668 * dispextern.h (required_matrix_width, required_matrix_height):
1669 Add prototypes.
1670
1671 * dispnew.c (required_matrix_width, required_matrix_height):
1672 New functions.
1673 (allocate_matrices_for_window_redisplay)
1674 (allocate_matrices_for_frame_redisplay: Use them.
1675 Remove parameters CH_DIM.
1676
1677 * xdisp.c (display_mode_lines): Temporarily set selected_frame
1678 and selected_window to the frame of the window whose mode-lines
1679 are displayed, and to the window itself.
1680 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
1681 here.
1682
1683 2001-09-25 Gerd Moellmann <gerd@gnu.org>
1684
1685 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
1686 the image cache under us.
1687
1688 * xdisp.c (display_mode_element): If the mode element is a symbol
1689 with a string value, use that string's multibyteness for displaying.
1690
1691 * keyboard.c (read_char): Don't clear a message for a switch-frame
1692 event. From Stefan Monnier <monnier@cs.yale.edu>.
1693
1694 * xterm.c (fast_find_position) [0]: Add a presumably more correct
1695 version for after 21.1.
1696
1697 * xdisp.c (row_containing_pos): Make externally visible.
1698
1699 * dispextern.h (row_containing_pos): Add prototype.
1700
1701 * process.c (send_process): Disable composition if from_byte < 0.
1702 From Kenichi Handa <handa@etl.go.jp>.
1703
1704 2001-09-24 Gerd Moellmann <gerd@gnu.org>
1705
1706 * xterm.c (refreshicon): Function removed.
1707
1708 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
1709
1710 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
1711
1712 * xterm.c (toplevel): Remove includes in #if 0.
1713
1714 * process.c (sigchld_handler) [LINUX]: Don't return from
1715 the signal handler at the end of the loop.
1716
1717 2001-09-21 Gerd Moellmann <gerd@gnu.org>
1718
1719 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
1720 Terminate only if kill returns -1, and errno is ESRCH.
1721
1722 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
1723
1724 * Makefile.in (shortlisp): Add ../lisp/env.elc.
1725
1726 2001-09-20 Gerd Moellmann <gerd@gnu.org>
1727
1728 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
1729 since this function can be called during GC.
1730
1731 * callproc.c (Fcall_process): Handle errors from pipe(2).
1732 (child_setup): Delete code in #ifdef vipc.
1733
1734 2001-09-19 Gerd Moellmann <gerd@gnu.org>
1735
1736 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
1737 (display_mode_element): Display the string from decode_mode_spec
1738 depending on its multibyteness.
1739
1740 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
1741
1742 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
1743
1744 2001-09-18 Gerd Moellmann <gerd@gnu.org>
1745
1746 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
1747 recursive_edit_unwind.
1748 (recursive_edit_unwind): Set kboard state according to
1749 SINGLE-KBOARD.
1750
1751 * buffer.c (modify_overlay): Don't do nothing if START == END;
1752 This can still be a modification, for example when an overlay has
1753 a before-string or after-string.
1754 (Fdelete_overlay): Prevent redisplay optimizations when deleting
1755 an overlay with before-string or after-string.
1756
1757 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
1758 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
1759
1760 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
1761 first_unchanged_at_end_row is in front of
1762 last_unchanged_at_beg_row. This code should be removed after the
1763 release of 21.1.
1764
1765 2001-09-17 Gerd Moellmann <gerd@gnu.org>
1766
1767 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
1768 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
1769
1770 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
1771 versions >= 2.95.
1772
1773 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
1774
1775 * dired.c (Ffile_attributes): Doc fix.
1776
1777 2001-09-14 Gerd Moellmann <gerd@gnu.org>
1778
1779 * fileio.c (Ffile_symlink_p): Fix last change.
1780
1781 * filelock.c (current_lock_owner): Fix last change.
1782
1783 2001-09-13 Gerd Moellmann <gerd@gnu.org>
1784
1785 * filelock.c (current_lock_owner): If readlink returns ERANGE,
1786 take that to mean that the buffer is too small.
1787
1788 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
1789 that to mean that the buffer is too small.
1790
1791 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
1792 current buffer's multibyteness when discarding the iterator's
1793 stack.
1794
1795 * xfns.c (Fx_window_property): Handle case that property gets
1796 deleted between the two calls to XGetWindowProperty.
1797
1798 2001-09-11 Gerd Moellmann <gerd@gnu.org>
1799
1800 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
1801
1802 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
1803 in addition to read-only.
1804
1805 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
1806 to t in addition to read-only.
1807
1808 * lisp.h (Qinhibit_modification_hooks): Declare.
1809
1810 * insdel.c (Qinhibit_modification_hooks): New variable.
1811 (syms_of_insdel): Initialize and staticpro it.
1812
1813 * textprop.c (verify_interval_modification): Don't run
1814 modification-hooks if inhibit_modification_hooks.
1815
1816 * dispnew.c (set_window_cursor_after_update): Fix code
1817 finding glyph row containing cursor when cursor_in_echo_area
1818 is >= 0.
1819
1820 * xdisp.c (init_from_display_pos): Put some code in #if 0.
1821 (add_to_log): Use bcopy instead of strcpy.
1822 (init_from_display_pos): Use an explicit loop over bytes in
1823 overlay strings instead of calling index.
1824
1825 2001-09-10 Gerd Moellmann <gerd@gnu.org>
1826
1827 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
1828
1829 * dispnew.c (direct_output_for_insert): Don't change IT's
1830 stop_charpos to something in front of its current position.
1831
1832 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
1833 `format'.
1834
1835 2001-09-10 Richard M. Stallman <rms@gnu.org>
1836
1837 * frame.c (Fmouse_position): Doc fix.
1838
1839 2001-09-07 Gerd Moellmann <gerd@gnu.org>
1840
1841 * xdisp.c (init_from_display_pos): Don't compare the result
1842 of calling index with NULL.
1843
1844 2001-09-06 Gerd Moellmann <gerd@gnu.org>
1845
1846 * xfns.c (x_set_background_color): Don't change the colors
1847 of the X window of scroll bar widgets.
1848
1849 2001-09-05 Andrew Innes <andrewi@gnu.org>
1850
1851 * w32fns.c (w32_createwindow): Undo last change.
1852
1853 2001-09-05 Gerd Moellmann <gerd@gnu.org>
1854
1855 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
1856
1857 * xdisp.c (string_buffer_position): Use *single_char_property*
1858 functions instead of the *single_property* functions.
1859
1860 2001-09-04 Andrew Innes <andrewi@gnu.org>
1861
1862 * w32term.c (w32_read_socket): Add more information to debugging
1863 output.
1864
1865 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
1866 from Emacs frames, so that calls to GetClipBox in w32term.c
1867 correctly report when part of a frame is visible (including
1868 scrollbars, etc). This prevents repeated redrawing of frames when
1869 only a scrollbar is visible.
1870 (w32_wnd_proc): Add more frame information to debugging output.
1871
1872 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
1873
1874 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
1875
1876 2001-09-03 Gerd Moellmann <gerd@gnu.org>
1877
1878 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
1879 help-echo for a string which doesn't have help-echo itself, use
1880 get-char-property to obtain the help-echo from the string's buffer
1881 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
1882 have mouse-face, look ``under'' the string for mouse-face from an
1883 overlay.
1884 (fast_find_position): Add parameter STOP. In the final row, stop
1885 before glyphs having STOP as object. Don't consider glyphs that
1886 are not from a buffer.
1887
1888 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
1889
1890 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
1891
1892 * fns.c (Fmd5): Doc fix.
1893
1894 2001-08-31 Gerd Moellmann <gerd@gnu.org>
1895
1896 * composite.c (update_compositions): Do nothing if
1897 inhibit-modification-hooks is set.
1898
1899 2001-08-30 Gerd Moellmann <gerd@gnu.org>
1900
1901 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
1902 and check_message_stack if terminating abnormally. We want
1903 glyph matrices etc. in a core dump.
1904
1905 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
1906 (syms_of_xdisp): Initialize them.
1907 (handle_single_display_prop): Don't change point, bind `object',
1908 `position', and `buffer-position' instead to the object having the
1909 `display' property, position in the object and position in the buffer.
1910
1911 * fileio.c (Finsert_file_contents): Don't change the multibyteness
1912 of the buffer if REPLACE is non-nil.
1913
1914 2001-08-29 Gerd Moellmann <gerd@gnu.org>
1915
1916 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1917
1918 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1919
1920 * w32term.c (x_set_glyph_string_background_width)
1921 (show_mouse_face): Track the last changes in xterm.c.
1922
1923 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1924
1925 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1926 string's background width so that multi-line mouse-face is drawn
1927 to the right edge of the window.
1928 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1929 glyphs.
1930
1931 * dispnew.c (direct_output_for_insert): Set updated_area
1932 before inserting/writing glyphs.
1933
1934 * xdisp.c (display_mode_element): Use string_byte_to_char to
1935 determine character positions in strings, use chars_in_text
1936 instead of strwidth.
1937 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1938 a matrix as parameter; this is easier to use from GDB.
1939
1940 2001-08-28 Miles Bader <miles@gnu.org>
1941
1942 * textprop.c (Fprevious_single_char_property_change)
1943 (Fnext_single_char_property_change): Doc fixes.
1944
1945 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1946
1947 * fileio.c (Finsert_file_contents): Allocate, restore, and
1948 free composition data in the case of REPLACE not being nil.
1949
1950 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1951 there exist overlay strings with newlines at POS.
1952 (text_outside_line_unchanged_p): Return 0 if changes start at
1953 START and overlays exist at START. Likewise for END.
1954 (try_window_id): Give up if init_to_row_end returns 0.
1955
1956 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1957 unconditionally.
1958
1959 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1960
1961 * keymap.c (access_keymap): Return the cdr of the binding of
1962 a generic character instead of its definition (KEY . BINDING).
1963
1964 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1965 to 0 also in the REPLACE case.
1966
1967 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1968
1969 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1970 open to determine whether file is readable (as for DOS_NT).
1971
1972 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1973
1974 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1975 coding.type is coding_type_no_conversion or coding_type_raw_text,
1976 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1977 non-nil instead of just setting enable_multibyte_characters in the
1978 buffer to nil.
1979
1980 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1981
1982 * dispextern.h (struct face_cache): Add member
1983 menu_face_changed_p.
1984
1985 * xfaces.c (menu_face_changed_default): New variable.
1986 (menu_face_changed_count): Variable removed.
1987 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1988 the menu_face_changed_default flag, otherwise set the FRAME's
1989 menu_face_changed_p flag if the `menu' face has been changed.
1990 Prevent calling set_font_frame_param if FRAME is t.
1991 (make_face_cache): Initialize cache's menu_face_changed_p
1992 from menu_face_changed_default.
1993 (realize_basic_faces): Look into the frame's face cache to
1994 determine if the menu appearance needs updating.
1995
1996 * keymap.c (access_keymap): Fix last change to not consider
1997 IDX when it has modifiers.
1998
1999 2001-08-21 Gerd Moellmann <gerd@gnu.org>
2000
2001 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
2002 . BINDING) exists, where GENERIC-CHAR is the generic character of
2003 the charset of IDX, return BINDING unless there exists a binding
2004 for IDX itself.
2005
2006 2001-08-16 Gerd Moellmann <gerd@gnu.org>
2007
2008 * xrdb.c (SYSV): Don't define on Solaris 2.
2009 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
2010
2011 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
2012 of the screen line, not text line, containing IT's current position.
2013
2014 2001-08-15 Gerd Moellmann <gerd@gnu.org>
2015
2016 * window.c (window_scroll_pixel_based): Don't recenter if
2017 PT is partially visible in the window.
2018
2019 * xterm.c (expose_window_tree, expose_window, expose_line):
2020 Return 1 when overwriting mouse-face.
2021 (expose_frame): If mouse-face was overwritten, redo it.
2022
2023 * xfaces.c (x_update_menu_appearance): Don't call
2024 set_frame_menubar, let the next redisplay do it.
2025
2026 2001-08-14 Andrew Innes <andrewi@gnu.org>
2027
2028 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
2029 drawing glyph string.
2030
2031 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
2032
2033 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
2034 running HI-UX/MPP.
2035
2036 2001-08-14 Gerd Moellmann <gerd@gnu.org>
2037
2038 * xfaces.c (x_update_menu_appearance): Save and restore value of
2039 interrupt_input_blocked.
2040
2041 2001-08-13 Gerd Moellmann <gerd@gnu.org>
2042
2043 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
2044 a line start, move back to the line start.
2045
2046 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
2047 exactly when a mini-buffer is active.
2048
2049 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
2050 in units of 1/8 character on non window-system frames.
2051 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
2052
2053 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
2054
2055 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
2056 a doc string.
2057
2058 2001-08-09 Gerd Moellmann <gerd@gnu.org>
2059
2060 * keyboard.c (Vpre_help_message): New variable.
2061 (syms_of_keyboard): Initialize and staticpro it.
2062 (show_help_echo): Record current message before displaying a
2063 help-echo, and restore that message when clearing the help.
2064
2065 * xfns.c (x_create_im): Remove prototype.
2066
2067 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
2068
2069 * dispnew.c (adjust_glyph_matrix): Undo last change.
2070
2071 2001-08-08 Gerd Moellmann <gerd@gnu.org>
2072
2073 * dispnew.c (adjust_glyph_matrix): In the optimization for
2074 windows whose height has changed, disable partially visible lines.
2075
2076 2001-08-07 Gerd Moellmann <gerd@gnu.org>
2077
2078 * window.c (Frecenter): If ARG < 0, and on a window system
2079 frame, count in some empty lines when we can't move -ARG lines down.
2080
2081 * xdisp.c (start_display): Don't try to determine the continuation
2082 lines width if lines are truncated. It's superfluous and leads to
2083 incorrect results if POS is not visible in the window after
2084 reseating the iterator at the previous line start.
2085
2086 2001-08-06 Gerd Moellmann <gerd@gnu.org>
2087
2088 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
2089
2090 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2091
2092 * alloc.c (init_stack): Remove declaration.
2093
2094 2001-08-03 Gerd Moellmann <gerd@gnu.org>
2095
2096 * keyboard.c (read_key_sequence): Check that key is an integer
2097 before comparing it with quit_char.
2098 (add_command_key): Use larger_vector.
2099 (read_char_x_menu_prompt): Instead of converting symbol and
2100 integer events into conses (EVENT . nil), use (EVENT . disabled)
2101 which cannot be confused with valid events.
2102 (read_char): When reading from Vunread_command_events, check for
2103 events of the form (EVENT . disabled) instead of
2104 (EVENT . nil).
2105
2106 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
2107 a float, determine the max height from the frame's height.
2108
2109 2001-08-02 Gerd Moellmann <gerd@gnu.org>
2110
2111 * xdisp.c (redisplay_internal): Take message_cleared_p into
2112 account only if minibuf_level == 0.
2113
2114 2001-08-01 Gerd Moellmann <gerd@gnu.org>
2115
2116 * xdisp.c (redisplay_internal): Add a check for the last
2117 displayed message.
2118
2119 * xdisp.c (message_cleared_p): New variable.
2120 (clear_message): Set message_cleared_p when clearing the current
2121 message.
2122 (redisplay_internal): Look at message_cleared_p to capture
2123 the case that the echo area should be cleared.
2124
2125 * keyboard.c (command_loop_1): Fix spelling of
2126 resize_echo_area_exactly.
2127
2128 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
2129
2130 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
2131
2132 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
2133 current matrix when the window gets smaller.
2134
2135 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
2136
2137 * print.c (strout): Cast the character passed to insert_char to
2138 unsigned char, to avoid sign extension when it is promoted to int.
2139
2140 2001-07-31 Gerd Moellmann <gerd@gnu.org>
2141
2142 * fileio.c (Finsert_file_contents): Don't treat a return value
2143 of 0 from emacs_read as an IO error.
2144
2145 2001-07-30 Gerd Moellmann <gerd@gnu.org>
2146
2147 * keyboard.c (abs): New macro.
2148 (double_click_fuzz): New variable.
2149 (make_lispy_event): Use it to determine what makes a double-click.
2150 (syms_of_keyboard): DEFVAR_INT it.
2151
2152 * xmenu.c (set_frame_menubar): Take into account that
2153 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
2154 <raeburn@gnu.org>.
2155
2156 2001-07-27 Gerd Moellmann <gerd@gnu.org>
2157
2158 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
2159
2160 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
2161 of row's visible height.
2162
2163 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
2164 deal with the first overlay string having an image `display' property.
2165 (try_window_reusing_current_matrix, compute_line_metrics):
2166 Fix computation of row's visible height for the case that part of the
2167 row is invisible above and part of the row is at the same time
2168 invisible below the window.
2169
2170 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2171
2172 * xfns.c (x-show-tip): Doc fix.
2173
2174 * xfns.c (Vx_max_tooltip_size): New variable.
2175 (syms_of_xfns): DEFVAR_LISP it.
2176 (Fx_show_tip): Set frame's window_width to the width of the
2177 window. Use a maximum tooltip size specified by
2178 Vx_max_tooltip_size, if that has valid contents.
2179 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
2180
2181 2001-07-26 Andrew Innes <andrewi@gnu.org>
2182
2183 * w32term.c (x_display_list): New variable.
2184 (w32_term_init): Set it.
2185
2186 * w32term.h (x_display_list): New extern.
2187
2188 2001-07-26 Gerd Moellmann <gerd@gnu.org>
2189
2190 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
2191 is non-nil, instead of when redisplaying_p is non-zero.
2192 See comment there.
2193 (mark_window_display_accurate_1): Add an assertion.
2194
2195 2001-07-25 Gerd Moellmann <gerd@gnu.org>
2196
2197 * dispextern.h (struct it): Increase size of ctl_chars to 16.
2198
2199 * xfns.c (Fx_file_dialog): Block/unblock input while processing
2200 events so that we get a chance of processing expose events.
2201
2202 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
2203
2204 2001-07-24 Gerd Moellmann <gerd@gnu.org>
2205
2206 * xfns.c (valid_image_p): Protect better against invalid image
2207 specifications. Previous code could signal an error.
2208
2209 2001-07-23 Gerd Moellmann <gerd@gnu.org>
2210
2211 * indent.c (current_column): Fix column computation in the
2212 presence of display table entries.
2213 (current_column_1, Fmove_to_column, compute_motion): Likewise.
2214
2215 * dispnew.c (adjust_glyph_matrix): In the optimization for
2216 windows whose height has changed, use the new window height
2217 to compute which rows to invalidate.
2218
2219 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
2220 (MAX_10_EXP): New macro.
2221 (Fformat): Use it.
2222
2223 * coding.c (code_convert_region): Handle the multibyte case if
2224 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
2225
2226 2001-07-20 Gerd Moellmann <gerd@gnu.org>
2227
2228 * dispextern.h (struct face): Change type of `stipple' to
2229 int; it's an ID.
2230
2231 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
2232
2233 2001-07-19 Gerd Moellmann <gerd@gnu.org>
2234
2235 * dispnew.c (update_window): Don't set the cursor at the end
2236 of the update if display update has been paused.
2237
2238 * composite.h (syms_of_composite): Renamed from syms_of_composition.
2239
2240 2001-07-18 Ken Raeburn <raeburn@gnu.org>
2241
2242 * fns.c (Fset_char_table_default): Check that a charset is defined
2243 before checking its dimension.
2244
2245 2001-07-17 Ken Raeburn <raeburn@gnu.org>
2246
2247 * coding.c (setup_coding_system): Don't do any designation based
2248 on reg_bits if charset is not yet defined.
2249
2250 * lisp.h (XVECTOR): Verify correct object type before returning a
2251 pointer, using eassert.
2252
2253 2001-07-17 Gerd Moellmann <gerd@gnu.org>
2254
2255 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
2256 Increase to 4096 because of paste problems reported on GNU/Linux.
2257
2258 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
2259
2260 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
2261
2262 2001-07-16 Gerd Moellmann <gerd@gnu.org>
2263
2264 * fileio.c (unwind_read): Function removed.
2265 (read_non_regular, read_non_regular_quit): New functions.
2266 (Finsert_file_contents): When reading from non-regular files,
2267 arrange to catch a `quit' and terminate the loop. Rearrange
2268 code so that a `quit' when reading from a regular file doesn't
2269 insert text in the buffer.
2270
2271 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
2272 Clear faces afterwards.
2273 (clear_font_table): Take a x_display_info parameter. Don't free
2274 fonts being the default font of any frame on the given display.
2275
2276 2001-07-13 Gerd Moellmann <gerd@gnu.org>
2277
2278 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
2279 instead of CHAR_STRING which can signal an error.
2280
2281 * charset.c (char_to_string_1): Extracted from char_to_string.
2282 Return -1 instead of signaling an error.
2283 (char_to_string): Use it.
2284
2285 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
2286
2287 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
2288
2289 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
2290 is t, don't try to append anything to it.
2291
2292 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
2293
2294 * dired.c (file_name_completion): Pass dp->d_name to
2295 Fstring_match, not elt, which is always nil here.
2296
2297 2001-07-12 Gerd Moellmann <gerd@gnu.org>
2298
2299 * xselect.c (x_decline_selection_request): Handle errors
2300 caused by receivers that have vanished.
2301
2302 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
2303 ignoring events on foreign windows in #if 0. Always dispatch
2304 the event after checking it with x_handle_property_notify.
2305
2306 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
2307 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
2308 TRACE macros to facilitate debugging. Add additional trace statements.
2309 (toplevel): Add prototypes for file-local functions.
2310 (x_atom_to_symbol): Remove DPYINFO parameter.
2311
2312 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
2313
2314 * w32menu.c (menubar_selection_callback, w32_menu_show):
2315 Initialize `entry' to nil.
2316 (w32_dialog_show): Remove unused `save_wv' variable.
2317 (name_is_separator): Recognize "--:foo" and "--foo-bar".
2318
2319 2001-07-11 Gerd Moellmann <gerd@gnu.org>
2320
2321 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
2322
2323 * fileio.c (unwind_read): Print a message when discarding inserted
2324 text or switching the buffer to unibyte. Change parameter.
2325 (Finsert_file_contents): Don't pass VISIT to unwind_read.
2326
2327 * fileio.c (unwind_read): New function.
2328 (Finsert_file_contents): Record it as unwind-function for
2329 the case that reading is interrupted by C-g.
2330
2331 2001-07-10 Gerd Moellmann <gerd@gnu.org>
2332
2333 * dispnew.c (update_window): Don't skip the header-line
2334 update when scrolling_window returns 0.
2335
2336 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
2337
2338 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
2339 for the case that x_decode_color signals an error.
2340
2341 * xdisp.c (add_to_log): Do nothing if called asynchronously.
2342
2343 2001-07-09 Gerd Moellmann <gerd@gnu.org>
2344
2345 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
2346 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
2347 around ioctls.
2348
2349 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
2350
2351 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
2352 doc string line for dos-timezone-offset.
2353
2354 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
2355 inline assembly, to avoid compiler warnings.
2356 (syms_of_msdos): Add \n\ at the end of a line in the doc string
2357 line for dos-unsupported-char-glyph.
2358
2359 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
2360
2361 2001-07-05 Gerd Moellmann <gerd@gnu.org>
2362
2363 * sound.c: Include Emacs' header files with #include "...".
2364
2365 * eval.c (specbind): Additionally record the buffer that was
2366 current when a buffer-local or frame-local variable was bound.
2367
2368 2001-07-04 Gerd Moellmann <gerd@gnu.org>
2369
2370 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
2371 to unibyte characters in unibyte buffers.
2372
2373 2001-07-03 Gerd Moellmann <gerd@gnu.org>
2374
2375 * eval.c (specbind): If SYMBOL has a frame-local binding, record
2376 the frame on the binding stack. Change format of entries for
2377 local bindings on the binding stack to '(SYMBOL . WHERE)'.
2378 (unbind_to): Handle unbinding a frame-local variable.
2379
2380 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
2381 glyphs and truncation glyphs at the end of a row from its pixel width.
2382 (dump_glyph_row): Print row's continuation_lines_width.
2383 (try_window_id): Take the shortcut if ZV is visible in the
2384 window, but there are actually no changes at ZV.
2385
2386 2001-07-02 Gerd Moellmann <gerd@gnu.org>
2387
2388 * xterm.h (x_free_dpy_colors): Add prototype.
2389
2390 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
2391 right number of arguments.
2392
2393 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
2394 ($(lwlibdir)TAGS): New target.
2395 (TAGS): Fix dependency list.
2396
2397 * xterm.c (x_list_fonts): Make sure XFreeFont is called
2398 with input blocked.
2399
2400 2001-06-30 Gerd Moellmann <gerd@gnu.org>
2401
2402 * emacs.c (main): Remove extern declaration for sys_nerr, which
2403 isn't used and causes a compilation error with GCC 3.0 on
2404 FreeBSD 4.3.
2405
2406 2001-06-27 Gerd Moellmann <gerd@gnu.org>
2407
2408 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
2409 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
2410 (toplevel): Include <signal.h> and syssignal.h.
2411
2412 * sound.c (vox_configure, vox_close): Turn off atimers
2413 around ioctls.
2414
2415 2001-06-26 Gerd Moellmann <gerd@gnu.org>
2416
2417 * keyboard.c (read_char) <non_reread>: Record the previous idle
2418 start time before calling timer_stop_idle.
2419 (read_char) <reread_first>: After processing a help-echo event,
2420 restore the previous idle start time.
2421
2422 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
2423 the start of invisible text.
2424 (setup_for_ellipsis): New function.
2425 (next_overlay_string): After all overlay strings have been
2426 processed, display an ellipsis if necessary.
2427 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
2428 (push_it): Initialize display_ellipsis_p on the iterator's stack.
2429
2430 * dispextern.h (struct iterator_stack_entry): Add member
2431 display_ellipsis_p.
2432
2433 2001-06-25 Gerd Moellmann <gerd@gnu.org>
2434
2435 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
2436 on the value of the wait-for-wm frame parameter.
2437
2438 * xterm.h (struct x_output): Add member wait_for_wm.
2439
2440 * xfns.c (Qwait_for_wm): New variable.
2441 (x_frame_parms): Add entry for `wait-for-wm".
2442 (x_set_wait_for_wm): New function.
2443 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
2444 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
2445
2446 * xdisp.c (try_window_id) <all changes below window end>: Don't
2447 take this shortcut if ZV is visible in the window.
2448 (try_window_id): When checking for window start being in changed
2449 text, don't check that the buffer's size has changed.
2450
2451 2001-06-23 Richard M. Stallman <rms@gnu.org>
2452
2453 * minibuf.c (Fcompleting_read): Doc fix.
2454
2455 2001-06-19 Gerd Moellmann <gerd@gnu.org>
2456
2457 * composite.c (Ffind_composition_internal): Accept ZV
2458 and a string's end position as POS.
2459
2460 2001-06-18 Gerd Moellmann <gerd@gnu.org>
2461
2462 * composite.c (Ffind_composition_internal): Check POS
2463 for validity.
2464
2465 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
2466
2467 * editfns.c (Fmessage_box): If the frame is not under a window
2468 system, output the message in the echo area.
2469
2470 2001-06-14 Richard M. Stallman <rms@gnu.org>
2471
2472 * xdisp.c (try_window_id): When EOB is visible, don't treat
2473 insertion at EOB as if it were "off the bottom of the screen."
2474
2475 2001-06-11 Andrew Innes <andrewi@gnu.org>
2476
2477 * w32proc.c (create_child): Add new parameter is_gui_app.
2478 (w32_executable_type): Add new parameter is_gui_app.
2479 (sys_spawnve): Use it.
2480 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
2481 SIGQUIT. This matches better how the signals are interpreted by
2482 MSVC compiled programs.
2483 (syms_of_ntproc): Update docstring.
2484
2485 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
2486
2487 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
2488 well otherwise note_mouse_highlight might optimize away highlighting
2489 if we pass over that same overlay again.
2490
2491 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
2492
2493 * lread.c (Fload): Document that the argument is run via
2494 substitute-in-file-name.
2495
2496 2001-05-31 Gerd Moellmann <gerd@gnu.org>
2497
2498 * Makefile.in (bootstrap-doc): New target.
2499 (bootstrap-emacs): Depend on it.
2500
2501 * fileio.c (Fdo_auto_save): Don't try to create the directory of
2502 auto-save-list-file-name when shutting down Emacs, because
2503 creating the directory might signal an error, and leaves
2504 Emacs in a strange state.
2505
2506 * term.c: (tty_cursor_hidden): New variable.
2507 (update_begin): Don't call tty_hide_cursor. Clean up.
2508 (update_end, set_terminal_window, set_scroll_region): Clean up.
2509 (ring_bell, reset_terminal_modes): Clean up.
2510 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
2511 on tty_cursor_hidden.
2512 (write_glyphs): Call tty_hide_cursor.
2513
2514 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
2515
2516 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
2517
2518 2001-05-30 Gerd Moellmann <gerd@gnu.org>
2519
2520 * xfns.c (enum image_value_type): New enumerator
2521 IMAGE_STRING_OR_NIL_VALUE.
2522 (parse_image_spec): Handle it.
2523 (xbm_format, pbm_format): Use it for :foreground and :background.
2524 (xbm_load, pbm_load): Check for nil color names.
2525
2526 * xterm.c (note_mouse_highlight): If an overlapping overlay
2527 exists, but we find that we highlight the same overlay as before,
2528 don't do the highlighting again.
2529
2530 2001-05-29 Gerd Moellmann <gerd@gnu.org>
2531
2532 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
2533 Protect unibyte strings created by replacing their multibyte
2534 equivalents in menu_items.
2535
2536 * keymap.c (Fsingle_key_description): NUL-terminate the string
2537 buffer before calling build_string.
2538
2539 * callproc.c (Fcall_process): Deal with decode_coding returning
2540 CODING_FINISH_INCONSISTENT_EOL.
2541
2542 2001-05-28 Gerd Moellmann <gerd@gnu.org>
2543
2544 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
2545 an item's name with its key description in case the description
2546 is a multibyte string.
2547
2548 * keymap.c (Fsingle_key_description): Create a multibyte string
2549 only if necessary.
2550
2551 * macros.c (Fstart_kbd_macro): Doc fix.
2552
2553 * xterm.c (cursor_in_mouse_face_p): New function.
2554 (x_draw_stretch_glyph_string): Use it to choose a different GC
2555 when drawing a cursor within highlighted text.
2556
2557 * editfns.c (char_property_eq): Put in #if 0.
2558
2559 * indent.c (string_display_width): Put in #if 0.
2560
2561 * lread.c (Fload): Remove unused label.
2562
2563 * termcap.c (speeds): Put in #if 0.
2564
2565 2001-05-18 Gerd Moellmann <gerd@gnu.org>
2566
2567 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
2568
2569 * xfaces.c (xlfd_point_size): Don't divide pixel size from
2570 transformation matrix by 10.
2571
2572 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2573
2574 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
2575 only if it's equal to the former foreground pixel color.
2576 (x_set_foreground_color, x_set_background_color)
2577 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
2578
2579 2001-05-16 Dave Love <fx@gnu.org>
2580
2581 * insdel.c (signal_before_change, signal_after_change): Consider a
2582 local change hook which changes the buffer.
2583
2584 * process.c (read_process_output): Don't call signal_after_change
2585 and update_compositions after insert_from_string_before_markers.
2586
2587 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2588
2589 * xfaces.c (split_font_name): Use the right field when
2590 checking for `[...]' syntax.
2591
2592 * buffer.c (copy_overlays): New function.
2593 (clone_per_buffer_values): Use it.
2594
2595 * buffer.h (OVERLAY_PLIST): New macro.
2596
2597 * keymap.c (Fsingle_key_description): Replace a build_string with
2598 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
2599
2600 * fontset.c (Ffontset_info): Check that face is non-null
2601 before accessing its fields.
2602
2603 2001-05-15 Gerd Moellmann <gerd@gnu.org>
2604
2605 * keyboard.c (read_key_sequence): Prevent generating a fake
2606 prefix key twice.
2607
2608 * xfaces.c (split_font_name): Handle `[...]' for the right
2609 font name fields.
2610
2611 * ccl.c (ccl_driver): Don't copy remaining bytes in case
2612 of CCL_STAT_INVALID_CMD.
2613
2614 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
2615
2616 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
2617 in <var> has no default value yet.
2618
2619 * xfaces.c (try_alternative_families): First try the FAMILY.
2620 And if nothing is found in the end, try again with scalable fonts.
2621 (try_font_list): Let try_alternative_families do a bit more of
2622 the work. Only use FAMILY if it is not nil.
2623 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
2624
2625 2001-05-14 Gerd Moellmann <gerd@gnu.org>
2626
2627 * xterm.c (note_mouse_highlight): Avoid changing the mouse
2628 pointer shape when show_mouse_face has already done it.
2629
2630 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
2631 full-width rows.
2632
2633 * xfaces.c (split_font_name): Make sure to leave the loop
2634 with the right value of `i'.
2635
2636 * xfaces.c (split_font_name): Handle matrix transformations
2637 in the pixel and point size fields of XLFD font names.
2638 (xlfd_point_size): Likewise.
2639
2640 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
2641
2642 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
2643 (x_to_w32_font): Add prototype.
2644
2645 * regex.c (malloc, realloc, free) [emacs]: Undefine before
2646 redefining, to avoid compiler warnings.
2647
2648 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
2649
2650 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
2651 (w32_get_bdf_glyph): Cast between unsigned char and char when
2652 passing arguments to subroutines, to shut up compiler warnings.
2653 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
2654 GET_HEX_VAL.
2655
2656 * xfaces.c: Include keyboard.h before frame.h, not after it.
2657
2658 * widget.c: Include keyboard.h before frame.h.
2659
2660 * w32term.h (struct image, struct face): Forward declaration, to
2661 avoid compiler warnings.
2662
2663 2001-05-11 Gerd Moellmann <gerd@gnu.org>
2664
2665 * keyboard.c (read_key_sequence): Don't modify events when
2666 generating fake prefix keys (mode-line, scroll-bar, ...) since
2667 this prevents proper processing of such events when pushed back
2668 into unread-command-events.
2669
2670 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
2671 actually redrawn. Make the function static.
2672 (note_mouse_highlight): Fix a case where the mouse cursor
2673 was changed back to the text cursor.
2674
2675 * xterm.h (clear_mouse_face): Remove prototype.
2676
2677 * xdisp.c (try_window_id): Fix the fix and set the right
2678 window_end_vpos.
2679
2680 * xdisp.c (try_window_id): Fix computation of window end in the
2681 case that lines were deleted at the end of the window. Add some
2682 more debug_method_adds.
2683
2684 * xfaces.c (try_alternative_families): New function.
2685 (try_font_list): Use it. If ATTRS specifies a family, check
2686 fonts from that family first.
2687 (choose_face_font): Remove code setting the family part of
2688 the pattern to nil.
2689
2690 2001-05-10 Gerd Moellmann <gerd@gnu.org>
2691
2692 * xdisp.c (try_window_id): Fix case of all changes before
2693 the window start.
2694
2695 * xdisp.c (try_window_id): Add some xasserts.
2696
2697 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2698
2699 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
2700
2701 2001-05-09 Dave Love <fx@gnu.org>
2702
2703 * xdisp.c (GIVE_UP): Fix for K&R C.
2704
2705 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2706
2707 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
2708
2709 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
2710 back to the text cursor shape without need.
2711
2712 2001-05-07 Gerd Moellmann <gerd@gnu.org>
2713
2714 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
2715
2716 * dispextern.h (inverse_video): Declare extern.
2717
2718 * keyboard.c (delete_kboard): Handle the case that selected_frame
2719 has been deleted in the course of x_connection_closed.
2720
2721 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
2722
2723 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
2724 Fix the change from 2001-04-30.
2725
2726 2001-05-03 Gerd Moellmann <gerd@gnu.org>
2727
2728 * xfns.c (file_dialog_unmap_cb): New function.
2729 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
2730 where a dialog is closed via the window manager.
2731
2732 * xdisp.c (try_window_id): Cases of changes all in front of
2733 the window start or all below the window end mostly rewritten.
2734 (redisplay_window): Move the tests if try_window_id is
2735 applicable to try_window_id.
2736 (GIVE_UP): New macro.
2737
2738 2001-05-02 Gerd Moellmann <gerd@gnu.org>
2739
2740 * xterm.c (expose_window): Return int. If W is the window
2741 currently being updated, mark the frame garbaged.
2742 Fix computation of rows intersecting the exposed rectangle.
2743 (expose_window_tree): Stop when expose_window returns 0.
2744
2745 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
2746 again if it has already been drawn.
2747
2748 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
2749
2750 * syntax.c (update_syntax_table): Check that oldi has the same
2751 properties as old_prop before deciding not to invalidate.
2752
2753 2001-04-30 Gerd Moellmann <gerd@gnu.org>
2754
2755 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
2756 read-only text that is so because of text properties.
2757
2758 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
2759 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
2760 windows that are components of a Lucid menu bar.
2761
2762 2001-04-27 Gerd Moellmann <gerd@gnu.org>
2763
2764 * term.c (turn_on_face): Fix reverse video handling on terminals
2765 that don't support colors.
2766
2767 2001-04-26 Gerd Moellmann <gerd@gnu.org>
2768
2769 * editfns.c (save_excursion_restore): Don't use XBUFFER on
2770 a non-buffer.
2771
2772 2001-04-25 Gerd Moellmann <gerd@gnu.org>
2773
2774 * term.c (toggle_highlight): New function.
2775 (turn_on_face): Change handling of reverse video.
2776
2777 * process.c (wait_reading_process_input):
2778 Call record_asynch_buffer_change only if a timer really changed buffers.
2779
2780 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
2781 of the number of overlays to check.
2782
2783 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
2784
2785 * xdisp.c (try_window_id): Fix a case where window_end_pos
2786 and window_end_bytepos were not adjusted.
2787
2788 2001-04-23 Gerd Moellmann <gerd@gnu.org>
2789
2790 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
2791 zero instead of -1.
2792
2793 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
2794
2795 * process.c (wait_reading_process_input) [!subprocesses]:
2796 Don't reference waiting_for_user_input_p, it's not defined in the
2797 branch without async subprocesses support.
2798
2799 2001-04-19 Gerd Moellmann <gerd@gnu.org>
2800
2801 * keyboard.c (delete_kboard): Prevent a dangling reference
2802 from current_kboard to KB, which is freed.
2803
2804 * process.c (wait_reading_process_input):
2805 Call record_asynch_buffer_change after running timers, to make
2806 read_key_sequence aware of buffer changes from under it.
2807
2808 2001-04-18 Gerd Moellmann <gerd@gnu.org>
2809
2810 * xfaces.c (Qscalable_fonts_allowed): New variable.
2811 (realizing_basic_faces_p): Removed.
2812 (x_face_list_fonts): Special handling for realizing_basic_faces_p
2813 removed.
2814 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
2815 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
2816 for scalable-fonts-allowed to t.
2817
2818 * fileio.c (Finsert_file_contents): If the file size returned from
2819 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
2820 read from files on a procfs whose contents are generated dynamically.
2821
2822 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
2823
2824 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
2825 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
2826 (__memalign_hook): Make the two prototypes consistent.
2827
2828 2001-04-17 Gerd Moellmann <gerd@gnu.org>
2829
2830 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
2831 matrix of mini-windows.
2832
2833 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
2834
2835 * intervals.c (find_interval): Don't rebalance during signal handling.
2836
2837 2001-04-11 Gerd Moellmann <gerd@gnu.org>
2838
2839 * fns.c: Include blockinput.h.
2840
2841 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
2842
2843 2001-04-10 Gerd Moellmann <gerd@gnu.org>
2844
2845 * fns.c (Fcompare_strings): Fix return values.
2846
2847 * window.c (window_scroll): Change the meaning of N to mean
2848 N screen-fulls or N lines.
2849 (window_scroll_pixel_based, window_scroll_line_based)
2850 (scroll_command, Fscroll_other_window): Change accordingly.
2851
2852 * window.c (window_scroll_pixel_based, Frecenter):
2853 Call window_box_height instead of using it.last_visible_y for the
2854 height of the window.
2855
2856 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
2857 instead of using it.last_visible_y for the height of the window.
2858
2859 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
2860 From Dan Holmsand <dan@eyebee.com>.
2861
2862 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
2863 able to write to hidden and system files. From Dan Holmsand
2864 <dan@eyebee.com>.
2865
2866 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
2867 Holmsand <dan@eyebee.com>.
2868
2869 2001-04-09 Gerd Moellmann <gerd@gnu.org>
2870
2871 * fns.c (Fplist_get, Fplist_put): Add QUITs.
2872
2873 * window.c (window_internal_height): Return 1 less if the
2874 window has a header line.
2875
2876 * xdisp.c (try_window_id): When scrolling on a terminal, take
2877 the change of window_internal_height into account.
2878
2879 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
2880
2881 * gmalloc.c (align): If the argument SIZE would overflow
2882 __malloc_ptrdiff_t, fail right away.
2883
2884 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2885
2886 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
2887 Make sure the tooltip is completely visible.
2888 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
2889
2890 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
2891
2892 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
2893
2894 2001-04-06 Dave Love <fx@gnu.org>
2895
2896 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
2897 Fix test of `from'.
2898
2899 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2900
2901 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
2902
2903 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
2904
2905 2001-04-05 Gerd Moellmann <gerd@gnu.org>
2906
2907 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
2908
2909 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
2910
2911 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
2912 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
2913
2914 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
2915 shell widget's position only if it is non-null.
2916
2917 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2918 Set f->output_data.x->widget to null after destroying it.
2919
2920 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2921 FILENAME to bring it in synch with the documentation.
2922
2923 * xfaces.c (realizing_basic_faces_p): Renamed from
2924 realize_default_face_p.
2925 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2926 (realize_default_face): Don't set the flag.
2927
2928 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2929
2930 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2931
2932 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2933
2934 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2935 the buffer that was used for echoing.
2936
2937 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2938 (first_font_matching): Removed unused function.
2939 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2940 (may_use_scalable_font_p): Remove parameter FONT; rename
2941 parameter NAME to FONT.
2942 (x_face_list_fonts): Fix missing bounds check.
2943 (realizing_default_face_p): New variable.
2944 (realize_default_face): Set and clear that flag.
2945 (x_face_list_fonts): When called during the realization of the
2946 default face, and no matching fonts are found when ignoring
2947 scalable fonts and fonts matching a regexp from
2948 face-ignored-fonts, try without ignoring fonts.
2949
2950 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2951
2952 * xfns.c (postprocess_image): New function.
2953 (lookup_image): Call it for all image types except PostScript.
2954 (x_kill_gs_process): Call postprocess_image.
2955
2956 * xterm.c (x_use_underline_position_properties): New variable.
2957 (x_draw_glyph_string): Use it.
2958 (syms_of_xterm): DEFVAR_BOOL it.
2959
2960 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2961
2962 * xterm.c (x_alloc_nearest_color_1): New function.
2963 (x_alloc_nearest_color): Use it.
2964 (x_color_cells): Take a Display as argument, instead of a frame.
2965 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2966 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2967 (x_initialize): Register cvt_string_to_pixel as resource converter
2968 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2969
2970 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2971
2972 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2973 (set_iterator_to_next): If a string from a display property ends,
2974 consider the case that this might also be the end of an
2975 overlay string having the display property.
2976
2977 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2978
2979 * xdisp.c (reseat_to_string): Undo last change.
2980
2981 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2982 matrix of a window when the header line changes, when
2983 new rows are allocated, or when the width changes.
2984
2985 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2986
2987 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2988
2989 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2990
2991 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2992 deprecated.
2993
2994 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2995
2996 * data.c (Fsubr_interactive_form): New function.
2997 (syms_of_data): Defsubr it.
2998
2999 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
3000 (live_float_p, live_misc_p): Return 1 only if the offset of the
3001 pointer in its block is >= 0.
3002
3003 2001-03-28 Paul Eggert <eggert@twinsun.com>
3004
3005 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
3006 microseconds calcuation. Avoid double-rounding problem.
3007 In doc string, warn that the result is approximate.
3008
3009 2001-03-28 Gerd Moellmann <gerd@gnu.org>
3010
3011 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
3012 bind `inhibit-eval-during-redisplay' to t.
3013
3014 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
3015
3016 * xdisp.c (inhibit_eval_during_redisplay)
3017 (Qinhibit_eval_during_redisplay): New variables.
3018 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
3019 don't eval, return nil instead.
3020 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
3021 Initialize Qinhibit_eval_during_redisplay.
3022
3023 * xdisp.c (reseat_to_string): If STRING is multibyte, set
3024 the iterator's multibyte_p flag.
3025
3026 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
3027 instead of setting it to zero; it's incremented for each frame
3028 where the menu face is changed.
3029
3030 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
3031 change bottom shadow accordingly.
3032
3033 * xterm.c (expose_window_tree, expose_frame): Don't compute
3034 intersections here.
3035 (expose_window): Do it here instead.
3036 (x_draw_glyph_string): Fix a computation of the underline position.
3037
3038 * bytecode.c (BYTE_CODE_QUIT): New macro.
3039 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
3040
3041 2001-03-27 Gerd Moellmann <gerd@gnu.org>
3042
3043 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
3044 Give up if matrix starts in an ellipsis.
3045 (init_from_display_pos): Do nothing if POS doesn't specify
3046 a dpvec_index but the iterator has such a position.
3047
3048 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
3049
3050 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
3051 x/y position is (0, 0) after destroying the menu bar, restore
3052 its original position.
3053
3054 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
3055 (init_from_display_pos): Use it.
3056 (try_window_reusing_current_matrix): Don't use cursor_row_p.
3057
3058 2001-03-26 Gerd Moellmann <gerd@gnu.org>
3059
3060 * xdisp.c (try_window_id): Undo last change.
3061
3062 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
3063
3064 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
3065
3066 * buffer.c (syms_of_buffer): Doc fix.
3067
3068 2001-03-26 Gerd Moellmann <gerd@gnu.org>
3069
3070 * xfaces.c (x_update_menu_appearance): Use local variable
3071 popup_path for setting font resources.
3072
3073 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
3074
3075 * frame.c (Fframe_list): Don't reference tip_frame if
3076 HAVE_WINDOW_SYSTEM is not defined.
3077
3078 * emacs.c (main): Update the copyright year. From Werner LEMBERG
3079 <wl@gnu.org>.
3080
3081 2001-03-25 Gerd Moellmann <gerd@gnu.org>
3082
3083 * xdisp.c (init_from_display_pos): Test invisible property
3084 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
3085
3086 * xdisp.c (redisplay_internal) <update one window>: Make sure
3087 last_arrow_position and last_arrow_string are set.
3088
3089 * frame.c (Fframe_list): Don't return a tooltip frame.
3090
3091 2001-03-23 Gerd Moellmann <gerd@gnu.org>
3092
3093 * xdisp.c (mark_window_display_accurate_1): New function,
3094 extracted from mark_window_display_accurate.
3095 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
3096 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
3097 (mark_window_display_accurate): Use it.
3098 (redisplay_internal): Use it for the selected window.
3099 (redisplay_internal): Avoid duplicate mark_window_display_accurate
3100 for the selected frame.
3101
3102 * xdisp.c Use make_number, for readability.
3103 (try_window_id): Disable rows below the window end.
3104 (try_window_reusing_current_matrix): Use cursor_row_p.
3105 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
3106 of rows.
3107 (init_from_display_pos): If POS specifies a position in a display
3108 vector, maybe get the iterator set up for that ellipsis.
3109
3110 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
3111
3112 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
3113
3114 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
3115
3116 2001-03-23 Gerd Moellmann <gerd@gnu.org>
3117
3118 * xfaces.c (x_update_menu_appearance): Use a different path
3119 for Lucid popup menus.
3120
3121 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
3122
3123 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
3124
3125 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
3126 (string_buffer_position): Use `make_number'.
3127
3128 2001-03-22 Gerd Moellmann <gerd@gnu.org>
3129
3130 * xfaces.c (x_update_menu_appearance): Renamed from
3131 x_set_menu_face_resources. Use different resources for popups.
3132
3133 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
3134 (GC_CHECK_STRING_BYTES): Don't define.
3135
3136 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
3137 Removed, together with subroutines.
3138 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
3139 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
3140
3141 * dispextern.h (x_set_menu_resources_from_menu_face):
3142 Remove prototype.
3143
3144 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
3145 Remove calls to x_set_menu_resources_from_menu_face.
3146
3147 * xfaces.c (xm_set_menu_resources_from_menu_face):
3148 Remove #ifndef LESSTIF_VERSION.
3149
3150 * xmenu.c: Include widget.h.
3151 (single_submenu): Return int. Some cleanup.
3152 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
3153
3154 2001-03-21 Gerd Moellmann <gerd@gnu.org>
3155
3156 * xterm.c (x_update_window_end): Handle overwritten mouse face
3157 also for tool bar windows.
3158 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
3159 DRAW is DRAW_IMAGE_RAISED.
3160
3161 2001-03-20 Gerd Moellmann <gerd@gnu.org>
3162
3163 * print.c (syms_of_print): Doc fixes.
3164
3165 * fns.c (Fmd5): Doc fix.
3166
3167 2001-03-19 Gerd Moellmann <gerd@gnu.org>
3168
3169 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
3170 Clear area of the frame not occupied by the scroll bar.
3171
3172 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
3173 tip frame's root window buffer to *tip* right after creating
3174 the frame.
3175
3176 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
3177 is an integer don't have to be for space characters.
3178
3179 2001-03-16 Gerd Moellmann <gerd@gnu.org>
3180
3181 * indent.c (current_column, current_column_1, Fmove_to_column)
3182 (compute_motion): Handle characters from display vectors differently.
3183
3184 2001-03-15 Kenichi Handa <handa@etl.go.jp>
3185
3186 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
3187 drawing glyph string.
3188
3189 2001-03-15 Gerd Moellmann <gerd@gnu.org>
3190
3191 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
3192 (command_loop_1): Undo last change.
3193
3194 * xterm.c (fast_find_position): Return the correct vpos.
3195
3196 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
3197 non-null, set a per-buffer value in BUF instead of the current buffer.
3198 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
3199 Call store_symval_forwarding with BUF null.
3200 (set_internal): Call store_symval_forwarding with the BUF
3201 parameter passed to set_internal. Formerly, the value was always
3202 set in the current buffer; the buffer recorded in specbind for
3203 this case wasn't used.
3204 (arith_driver): Reindent.
3205
3206 * buffer.c (swap_out_buffer_local_variables):
3207 Call store_symval_forwarding with BUF null.
3208
3209 * lisp.h (store_symval_forwarding): Change prototype.
3210
3211 * eval.c (specbind): Call store_symval_forwarding with BUF null.
3212
3213 2001-03-14 Gerd Moellmann <gerd@gnu.org>
3214
3215 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
3216 FOR_DELETION. Avoid resizing the mini-window of the selected
3217 frame if FOR_DELETION is set.
3218 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
3219 (Fmake_frame_invisible): Change calls to do_switch_frame for new
3220 signature.
3221
3222 * window.c (Fset_window_configuration): Change call to
3223 do_switch_frame to new format.
3224
3225 * keyboard.c (quit_throw_to_read_char): Change call to
3226 do_switch_frame to new format.
3227
3228 * lisp.h (do_switch_frame): Change prototype.
3229
3230 * frame.c (Fframe_parameters): In the `buffer-list' frame
3231 parameter, store the buffer list of FRAME, not the list of the
3232 selected frame.
3233
3234 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
3235 box just because the glyph row's full_width_p flag is set.
3236
3237 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
3238
3239 * xdisp.c (highlight_trailing_whitespace): On character terminals,
3240 skip the padding blanks inserted in extend_face_to_end_of_line,
3241 before checking for trailing whitespace.
3242
3243 2001-03-13 Gerd Moellmann <gerd@gnu.org>
3244
3245 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
3246 Remove special handling for LessTif/Motif.
3247 (toplevel): Don't include Xm/Xm.h.
3248
3249 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
3250 Remove workaround code for LessTif; it doesn't work anymore.
3251
3252 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
3253 Xm/ScrollBarP.h.
3254
3255 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
3256 Don't access private scroll bar data; it's no longer necessary with
3257 contemporary LessTif.
3258
3259 * xfaces.c (xm_set_menu_resources_from_menu_face):
3260 Change #if 0 to #ifndef LESSTIF_VERSION.
3261
3262 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
3263 removing button grabs.
3264
3265 2001-03-13 Kenichi Handa <handa@etl.go.jp>
3266
3267 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
3268 and clip-large-size-font as obsolete.
3269
3270 * lread.c (read_multibyte): Check the validity of multibyte
3271 sequence. If invalid, return the first byte.
3272
3273 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3274
3275 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
3276 before running the command; timer functions or process
3277 filters may have set it.
3278
3279 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3280
3281 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
3282 Doc fix.
3283
3284 2001-03-12 Gerd Moellmann <gerd@gnu.org>
3285
3286 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
3287 to sprintf.
3288
3289 2001-03-09 Gerd Moellmann <gerd@gnu.org>
3290
3291 * dispextern.h (string_buffer_position): Add prototype.
3292
3293 * xdisp.c (string_buffer_position, display_prop_string_p)
3294 (single_display_prop_string_p): New functions.
3295
3296 * xterm.c (note_mouse_highlight): If there's no help-echo on
3297 a string, look at the buffer text ``under'' it.
3298
3299 * keyboard.c (make_lispy_event): Add string info to the event,
3300 analogous to what's done on mode lines.
3301 (read_key_sequence): For a click on a string, consider `local-map'
3302 and `keymap' of that string.
3303
3304 * keyboard.c (make_lispy_event, make_lispy_movement):
3305 Adjust calls to buffer_posn_from_coords to new format.
3306
3307 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
3308
3309 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
3310 POS; return void.
3311
3312 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
3313 flags argument to emacs_open; it seems to conflict with O_EXCL.
3314
3315 2001-03-09 Kenichi Handa <handa@etl.go.jp>
3316
3317 * composite.h (struct composition): Change types of members;
3318 glyph_len to unsigned, width to unsigned short.
3319
3320 2001-03-08 Andrew Innes <andrewi@gnu.org>
3321
3322 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
3323 menu titles.
3324
3325 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3326
3327 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
3328 instead of nil.
3329
3330 * xterm.c (note_mouse_highlight): Handle mouse-face and
3331 help-echo in strings.
3332 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
3333 (fast_find_string_pos): New function.
3334
3335 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
3336 (display_string): Call face_at_string_position with new parameter.
3337
3338 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
3339 Handle `mouse-face'.
3340
3341 * dispextern.h (face_at_string_position): Change prototype.
3342
3343 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
3344
3345 * keyboard.c (make_lispy_event): Avoid generating drag events
3346 if the mouse hasn't actually moved to another buffer position.
3347
3348 2001-03-08 Dave Love <fx@gnu.org>
3349
3350 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
3351
3352 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3353
3354 * process.c (Fset_process_window_size): Fix a typo.
3355
3356 2001-03-08 Kenichi Handa <handa@etl.go.jp>
3357
3358 * coding.c (detect_coding_sjis): Do more rigid check.
3359 (detect_coding_big5): Likewise.
3360 (decode_coding_sjis_big5): Likewise.
3361 (Fdetect_coding_region): Call detect_coding_system with tailing
3362 anchor byte `\0' for more rigid detection.
3363 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
3364 (Fdetect_coding_string): Likewise.
3365
3366 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
3367
3368 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
3369 a string before extracting its data.
3370
3371 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3372
3373 * window.c (Frecenter): Rewrite code handling negative values
3374 of ARG on graphical frames.
3375
3376 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
3377
3378 * window.c (displayed_window_lines): If W->start is outside the
3379 accessible portion of the buffer, call start_display with BEGV or
3380 ZV instead of W->start.
3381
3382 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3383
3384 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
3385
3386 * process.c (Fset_process_filter): Don't crash if the input
3387 file descriptor of PROCESS is closed.
3388 (Fset_process_window_size): Likewise.
3389
3390 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3391
3392 * xterm.c (XTflash): Make the timeout of select shorter, and call
3393 select repeatedly until the desired time expires.
3394
3395 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3396
3397 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
3398
3399 * xfns.c (Fx_create_frame): Clear Vwindow_list.
3400
3401 * lisp.h (Vwindow_list): Declare extern.
3402
3403 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3404
3405 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
3406
3407 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3408
3409 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
3410 to detect a case where we have to highlight a different region
3411 despite not having left the currently highlighted region.
3412 Set mouse_face_overlay in the x_display_info.
3413 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
3414
3415 * xterm.h (struct x_display_info): Add mouse_face_overlay.
3416
3417 * buffer.c (mouse_face_overlay_overlaps): New function.
3418
3419 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
3420 (Qmouse_face): Declare extern.
3421
3422 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
3423 if face_change_count is non-zero.
3424
3425 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3426
3427 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
3428 that the source is unibyte.
3429
3430 2001-03-05 Dave Love <fx@gnu.org>
3431
3432 * xterm.c (XTmouse_position): Fix typo.
3433
3434 2001-03-05 Gerd Moellmann <gerd@gnu.org>
3435
3436 * minibuf.c (read_minibuf): Clean up the binding stack if
3437 called noninteractively.
3438
3439 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3440
3441 * coding.c (syms_of_coding): Docstring modified.
3442
3443 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3444
3445 * charset.c (char_to_string): If a single byte char has modifier
3446 bits that can't be reflected to the character code, ignore them
3447 instead of signaling an error.
3448
3449 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
3450
3451 * s/msdos.h: Update copyright notice.
3452
3453 * dosfns.h: Update copyright notice.
3454
3455 * dosfns.c: Update copyright notice.
3456
3457 * msdos.c: Update copyright notice.
3458
3459 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3460
3461 * xterm.c (glyph_rect): New function.
3462 (XTmouse_position): Use it to raise the threshold for mouse
3463 movement event generation.
3464
3465 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3466
3467 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
3468 specifies (reverse . t), reverse the initial screen colors.
3469 (IT_set_frame_parameters): If the property is foreground-color,
3470 but we are reversing the colors, set bg_set, not fg_set.
3471 Likewise for setting background-color and reversing: set fg_set.
3472 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
3473 in effect.
3474
3475 * xfaces.c (Finternal_set_lisp_face_attribute)
3476 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
3477 parameters alist.
3478
3479 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3480
3481 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
3482 to a single slash in the middle of file names.
3483
3484 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
3485 Accept only alphanumeric time zone names.
3486
3487 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
3488 or width area.
3489 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
3490 a widget to zero height.
3491
3492 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3493
3494 * window.c (Fwindow_end): Call move_it_past_eol only if
3495 ending up on a partially visible line.
3496
3497 2001-03-01 Dave Love <fx@gnu.org>
3498
3499 * ccl.c (Fccl_execute): Doc fix.
3500
3501 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3502
3503 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
3504 of the tool bar before calling x_figure_window_size.
3505
3506 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
3507 NULL after destroying it, otherwise XTread_socket can access a
3508 destroyed widget when input is unblocked.
3509
3510 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
3511
3512 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
3513 same name as before, although there was a change in fontsets.
3514
3515 2001-02-28 Ken Raeburn <raeburn@gnu.org>
3516
3517 * lisp.h (Fframe_parameter): Declare.
3518
3519 * window.c (set_window_buffer): Field vscroll is an int, not a
3520 Lisp_Object.
3521
3522 2001-02-28 Gerd Moellmann <gerd@gnu.org>
3523
3524 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
3525 NULL instead.
3526
3527 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
3528 NULL instead.
3529
3530 * alloc.c (toplevel): Include process.h.
3531 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
3532 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
3533 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
3534 (allocate_vector, allocate_hash_table, allocate_window)
3535 (allocate_frame, allocate_process, allocate_other_vector):
3536 New functions.
3537 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
3538 (mark_maybe_pointer): New function.
3539 (mark_memory): Also mark Lisp data to which only pointers
3540 remain and not Lisp_Objects.
3541 (min_heap_address, max_heap_address): New variables.
3542 (mem_find): Return MEM_NIL if START is below min_heap_address or
3543 above max_heap_address.
3544 (mem_insert): Compute min_heap_address and max_heap_address.
3545
3546 * process.c (make_process): Use allocate_process.
3547
3548 * frame.c (make_frame): Use allocate_frame.
3549
3550 * window.c (make_window, make_dummy_parent): Use allocate_window.
3551 (Fcurrent_window_configuration): Use allocate_other_vector.
3552
3553 * lisp.h (allocate_vectorlike): Remove prototype.
3554 (allocate_vector, allocate_other_vector, allocate_frame)
3555 (allocate_window, allocate_process, allocate_hash_table):
3556 Add prototypes.
3557
3558 * fns.c (Fdelete, larger_vector): Use allocate_vector.
3559 (make_hash_table, copy_hash_table): Use allocate_hash_table.
3560
3561 2001-02-27 Kenichi Handa <handa@etl.go.jp>
3562
3563 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
3564 treat the produced bytes as a valid multibyte sequence.
3565
3566 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
3567 (ccl_driver) <CCL_WriteMultibyteChar2>:
3568 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
3569 <ccl_finish>: Set ccl->eight_bit_control properly.
3570
3571 * ccl.h (struct ccl_program): New member eight_bit_control.
3572
3573 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
3574
3575 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
3576 accessible_keymaps_char_table.
3577 (accessible_keymaps_char_table): Obey `is_metized'.
3578 (where_is_internal, Fwhere_is_internal): Don't confuse int and
3579 Lisp_Object.
3580
3581 2001-02-26 Gerd Moellmann <gerd@gnu.org>
3582
3583 * dispnew.c: Check HAVE_TERM_H before including term.h.
3584
3585 2001-02-24 Andrew Innes <andrewi@gnu.org>
3586
3587 * makefile.w32-in: Update copyright notice.
3588
3589 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
3590
3591 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
3592
3593 2001-02-24 Kenichi Handa <handa@etl.go.jp>
3594
3595 * Makefile.in (lisp): Add international/utf-8.elc.
3596
3597 * fontset.c (Fnew_fontset): Fix handling of the case that an
3598 element of FONTLIST is a cons of family and registry.
3599
3600 2001-02-23 Jason Rumney <jasonr@gnu.org>
3601
3602 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
3603 to height unconditionally.
3604
3605 * w32term.c (x_set_glyph_string_background_width): Extend the
3606 background face to the end of the drawing area in the text area, only.
3607 (x_insert_glyphs): Call window_box_left to obtain the left
3608 x-coordinate of the area to shift.
3609
3610 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
3611 safe_run_hooks.
3612
3613 2001-02-22 Andrew Innes <andrewi@gnu.org>
3614
3615 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
3616 ($(BLD)\dispnew.obj):
3617 ($(BLD)\editfns.obj):
3618 ($(BLD)\fileio.obj):
3619 ($(BLD)\filelock.obj):
3620 ($(BLD)\keyboard.obj):
3621 ($(BLD)\w32proc.obj):
3622 ($(BLD)\process.obj):
3623 ($(BLD)\sysdep.obj): Ditto.
3624
3625 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
3626 header files.
3627 ($(BLD)/dispnew.$(O)):
3628 ($(BLD)/editfns.$(O)):
3629 ($(BLD)/fileio.$(O)):
3630 ($(BLD)/filelock.$(O)):
3631 ($(BLD)/keyboard.$(O)):
3632 ($(BLD)/w32proc.$(O)):
3633 ($(BLD)/process.$(O)):
3634 ($(BLD)/sysdep.$(O)): Ditto.
3635
3636 2001-02-22 Gerd Moellmann <gerd@gnu.org>
3637
3638 * xdisp.c (forward_to_next_line_start): When taking the shortcut
3639 at the start of the function, check that the \n in it->c is
3640 from the iterator's current position.
3641
3642 * xdisp.c (handle_single_display_prop): Add parameter
3643 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
3644 properties which replace the display of text with something else.
3645 (handle_display_prop): Call handle_single_display_prop with
3646 additional argument saying if we already replaced text display
3647 with something else. Use AREF.
3648 (with_echo_area_buffer_unwind_data, display_menu_bar)
3649 (decode_mode_spec_coding): Use AREF and ASIZE.
3650
3651 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
3652 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
3653 * vmstime.h: Files removed.
3654
3655 * unexencap.c, unexfx2800.c: Files removed.
3656
3657 * dispnew.c (direct_output_for_insert): Give up if we are showing
3658 a message or just cleared the message because we might need to
3659 resize the echo area window or display an empty echo area.
3660
3661 2001-02-21 Gerd Moellmann <gerd@gnu.org>
3662
3663 * xdisp.c (redisplay_internal): Do the
3664 mark_window_display_accurate after all windows have been
3665 redisplayed because this call resets flags in buffers which are
3666 needed for proper redisplay.
3667
3668 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
3669 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
3670 the old names.
3671
3672 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3673 busy_window to hourglass_window, busy_p to hourglass_p.
3674
3675 * msdos.h (struct x_output): Rename busy_window to
3676 hourglass_window, busy_p to hourglass_p.
3677
3678 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3679 busy_window to hourglass_window, busy_p to hourglass_p.
3680
3681 * xfns.c: Rename everything containing *busy_cursor* and similar
3682 to *hourglass*.
3683 (syms_of_w32fns): Rename x-busy-pointer-shape to
3684 x-hourglass-pointer-shape, display-busy-cursor to
3685 display-hourglass, busy-cursor-delay to hourglass-delay.
3686
3687 * w32fns.c: Rename everything containing *busy_cursor* and similar
3688 to *hourglass*.
3689 (syms_of_w32fns): Rename x-busy-pointer-shape to
3690 x-hourglass-pointer-shape, display-busy-cursor to
3691 display-hourglass, busy-cursor-delay to hourglass-delay.
3692
3693 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
3694 of its busy_p flag.
3695
3696 * dispextern.h (start_hourglass, cancel_hourglass)
3697 (display_hourglass_p): Renamed from *busy_cursor*.
3698
3699 2001-02-20 Gerd Moellmann <gerd@gnu.org>
3700
3701 * keyboard.c (read_char): When an event from unread-command-events
3702 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
3703
3704 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
3705 equal to the current buffer.
3706
3707 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
3708 nil, otherwise we're left with truncate_lines t when a message
3709 is printed with message-truncate-lines bound to t.
3710
3711 2001-02-19 Gerd Moellmann <gerd@gnu.org>
3712
3713 * window.c (Fmove_to_window_line): Undo last change.
3714 (displayed_window_lines): Call line_bottom_y to determine
3715 the line's bottom position.
3716
3717 * dispextern.h (line_bottom_y): Add prototype.
3718
3719 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
3720 (pos_visible_p): Use it.
3721
3722 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
3723 set redisplaying_p to 0 here instead of in Frecursive_edit.
3724 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
3725 set redisplaying_p.
3726
3727 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
3728 New variables.
3729 (syms_of_xdisp): Initialize new variables.
3730 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
3731 Specbind `inhibit-menubar-update' when updating the menu bar.
3732
3733 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
3734 safe_run_hooks.
3735
3736 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
3737 safe_run_hooks.
3738
3739 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
3740 is null.
3741
3742 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
3743 to the start of the file.
3744
3745 2001-02-16 Gerd Moellmann <gerd@gnu.org>
3746
3747 * window.c (set_window_buffer): Fix last change.
3748
3749 * window.c (set_window_buffer): Set window's vscroll to 0.
3750
3751 * window.c (coordinates_in_window): Increase width of area
3752 where the vertical line can be dragged.
3753
3754 * xterm.c (x_set_glyph_string_background_width): Extend the
3755 background face to the end of the drawing area in the text
3756 area, only.
3757
3758 * xdisp.c (handle_single_display_prop): Set iterator's position
3759 to where the `display' property starts, like for images.
3760 (dump_glyph): New function.
3761 (dump_glyph_row): Use it. Dump info about marginal areas.
3762
3763 * dispnew.c (direct_output_for_insert): Recognize more cases where
3764 glyphs can be written instead of being inserted.
3765
3766 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
3767 the left x-coordinate of the area to shift.
3768
3769 * dired.c (directory_files_internal): Set result list to nil
3770 before retrying.
3771
3772 2001-02-15 Kenichi Handa <handa@etl.go.jp>
3773
3774 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
3775 invalid multibyte sequence, treat *SRC as a character of
3776 eight-bit-graphic.
3777
3778 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
3779
3780 * textprop.c (Fset_text_properties): Doc fix.
3781
3782 2001-02-15 Gerd Moellmann <gerd@gnu.org>
3783
3784 * dispnew.c (update_text_area): Undo change of 2001-01-12.
3785
3786 2001-02-14 Dave Love <fx@gnu.org>
3787
3788 * coding.c: Doc and message fixes.
3789
3790 2001-02-14 Andrew Innes <andrewi@gnu.org>
3791
3792 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
3793 Emacs frame above the screen size.
3794
3795 2001-02-14 Gerd Moellmann <gerd@gnu.org>
3796
3797 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
3798
3799 2001-02-13 Gerd Moellmann <gerd@gnu.org>
3800
3801 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
3802 case that TO ends up beyond ZV after running before-change-functions.
3803
3804 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
3805 the selected window if it is showing the buffer in question.
3806
3807 * dired.c (directory_files_internal): Initialize errno.
3808 (toplevel): Include errno.h.
3809
3810 2001-02-13 Kenichi Handa <handa@etl.go.jp>
3811
3812 * xfaces.c (best_matching_font): New parameter width_ratio.
3813 Multiply avgwidth by width_ratio.
3814 (choose_face_font): Call best_matching_font with width_ratio
3815 calculated from the column width of C.
3816
3817 2001-02-12 Andrew Innes <andrewi@gnu.org>
3818
3819 The following changes are to draw box lines inside characters area
3820 if line-width is negative.
3821
3822 * w32term.c (x_produce_image_glyph): Pay attention to the case that
3823 face->box_line_width is negative.
3824 (x_produce_stretch_glyph): Likewise.
3825 (x_produce_glyphs): Likewise.
3826 (x_estimate_mode_line_height): Likewise.
3827 (x_draw_glyph_string_background): Likewise.
3828 (x_draw_glyph_string_foreground): Likewise.
3829 (x_draw_composite_glyph_string_foreground): Likewise.
3830 (x_draw_glyph_string_box): Likewise.
3831 (x_draw_image_foreground): Likewise.
3832 (x_draw_image_relief): Likewise.
3833 (x_draw_image_foreground_1): Likewise.
3834 (x_draw_image_glyph_string): Likewise.
3835
3836 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3837
3838 The following changes are to draw box lines inside characters area
3839 if line-width is negative.
3840
3841 * xterm.c (x_produce_image_glyph): Pay attention to the case that
3842 face->box_line_width is negative.
3843 (x_produce_stretch_glyph): Likewise.
3844 (x_produce_glyphs): Likewise.
3845 (x_estimate_mode_line_height): Likewise.
3846 (x_draw_glyph_string_background): Likewise.
3847 (x_draw_glyph_string_foreground): Likewise.
3848 (x_draw_composite_glyph_string_foreground): Likewise.
3849 (x_draw_glyph_string_box): Likewise.
3850 (x_draw_image_foreground): Likewise.
3851 (x_draw_image_relief): Likewise.
3852 (x_draw_image_foreground_1): Likewise.
3853 (x_draw_image_glyph_string): Likewise.
3854
3855 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
3856 and :line-width can be negative.
3857 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
3858
3859 2001-02-09 Jason Rumney <jasonr@gnu.org>
3860
3861 * w32term.c (w32_encode_char): Treat eight bit graphic and control
3862 characters the same as ASCII and latin-1.
3863 (x_display_and_set_cursor): Check for the focus frame's selected
3864 window instead of selected_window.
3865 (x_after_update_window_line): Don't clear if frame's internal
3866 border width is zero.
3867 (x_new_font): Don't change a tooltip's size.
3868 (w32_initialize): Set char_ins_del_ok to 1.
3869
3870 * w32fns.c (Fx_show_tip): Fix calls to make_number.
3871 (x_set_font): If font hasn't changed, avoid recomputing
3872 faces and other things.
3873 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
3874 (Fx_create_frame): Add the tool bar height to the frame height.
3875 (x_create_tip_frame): Prevent changing the tooltip's
3876 background color by specifying a color for the default font
3877 in .Xdefaults.
3878 (Qcancel_timer): New variable.
3879 (syms_of_w32fns): Initialize and staticpro it.
3880 (Fx_hide_tip, Fx_show_tip): Use it.
3881 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3882 the timer.
3883 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
3884
3885 * w32.c (init_environment): Duplicate local string before putenv.
3886
3887 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
3888
3889 * charset.c (Fstring): A typo.
3890
3891 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3892
3893 * charset.c (Fstring): If all arguments are less than 256, return
3894 a unibyte string.
3895
3896 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
3897 return a unibyte string.
3898
3899 * coding.c (code_convert_region): After detecting a coding, if
3900 nothing found, set coding->composing to COMPOSITION_NO.
3901 (decode_coding_string): Likewise.
3902
3903 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
3904
3905 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
3906 to avoid overflow.
3907
3908 2001-02-07 Kenichi Handa <handa@etl.go.jp>
3909
3910 * charset.c (parse_str_to_multibyte): New function.
3911
3912 * charset.h (parse_str_to_multibyte): Extern it.
3913
3914 * print.c (print_string): If we are going to print a unibyte
3915 string into a multibyte buffer, convert the string to multibyte by
3916 str_to_multibyte.
3917
3918 2001-02-06 Andrew Innes <andrewi@gnu.org>
3919
3920 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3921 been created. It seems we can get sent window messages such as
3922 WM_ERASEBKGND before we properly update a frame.
3923
3924 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3925
3926 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3927 Avoid some unnecessary cursor positioning.
3928
3929 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3930
3931 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3932 (LFACE_AVGWIDTH): New macro.
3933 (LFACEP): Use AREF.
3934 (check_lface_attrs): Check LFACE_AVGWIDTH.
3935 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3936 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3937 (merge_face_vectors): Check LFACE_AVGWIDTH.
3938 (Finternal_make_lisp_face): Use AREF.
3939 (xm_set_menu_resources_from_menu_face)
3940 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3941 (Finternal_lisp_face_empty_p): Use AREF.
3942 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3943 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3944 Compare average widths..
3945 (best_matching_font): Arrange for comparing average widths.
3946
3947 * dispextern.h (enum lface_attribute_index):
3948 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3949
3950 2001-02-05 Dave Love <fx@gnu.org>
3951
3952 * puresize.h: Revert last change following loadup.el change.
3953
3954 2001-02-05 Andrew Innes <andrewi@gnu.org>
3955
3956 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3957 invocation of temacs, to work with Windows 2000.
3958 (bootstrap-emacs): Ditto.
3959
3960 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3961
3962 * xterm.c (x_display_and_set_cursor): Check for the focus
3963 frame's selected window instead of selected_window.
3964
3965 * xdisp.c (try_scrolling): If point is in the line below the
3966 window, make sure to move the iterator at least a canonical
3967 char height down.
3968
3969 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3970
3971 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3972
3973 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3974 If invalid, execute CCL_INVALID_CMD.
3975 (ccl_driver): If the CCL program is terminated because of
3976 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3977 destination instead of throwing them away.
3978
3979 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3980
3981 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3982 faces and other things.
3983
3984 * xdisp.c (get_next_display_element): Fix case of empty
3985 display table entry.
3986
3987 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3988
3989 * editfns.c (Fconstrain_to_field): Doc fix.
3990
3991 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3992 into `thoroughly', to make it consistent with the doc string.
3993
3994 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3995
3996 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3997
3998 * search.c (search_buffer): Call set_search_regs with a byte
3999 position, not a character position.
4000
4001 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
4002 minibuffer-only,
4003
4004 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
4005
4006 * frame.c (Fmodify_frame_parameters): Doc fix.
4007
4008 2001-01-31 Gerd Moellmann <gerd@gnu.org>
4009
4010 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
4011 identifier which is not reserved by Standard C.
4012
4013 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
4014
4015 * window.c (enum window_part): New enumeration.
4016 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
4017 Qright_bitmap_area.
4018 (coordinates_in_window): Return an enumerator from enum
4019 window_part. Fix handling of right scroll bar.
4020 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
4021 `right-fringe' instead of `left-bitmap-area' and
4022 `right-bitmap-area'. Use enumerators from enum window_part
4023 instead of hard-coded integers.
4024 (check_window_containing, window_from_coordinates):
4025 Use enumerators from enum window_part instead of hard-coded integers.
4026 (syms_of_window): Replace Qleft_bitmap_area and
4027 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
4028
4029 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
4030
4031 * editfns.c (Fformat_time_string): Doc fix.
4032
4033 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
4034
4035 * keymap.c (Fwhere_is_internal): Use the first valid binding
4036 if no ascii binding is found (when firstonly is t).
4037
4038 2001-01-31 Gerd Moellmann <gerd@gnu.org>
4039
4040 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
4041 instead of Finteractive_p.
4042
4043 * lisp.h (interactive_p): Add prototype.
4044
4045 * eval.c (interactive_p): New function.
4046 (Finteractive_p): Use it.
4047
4048 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
4049
4050 2001-01-31 Dave Love <fx@gnu.org>
4051
4052 * .gdbinit (hook-run): Define to run xreload.
4053
4054 * textprop.c (Fset_text_properties): Fix newline in doc string.
4055
4056 2001-01-30 Gerd Moellmann <gerd@gnu.org>
4057
4058 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
4059 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
4060
4061 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
4062 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
4063 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
4064
4065 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
4066 height.
4067
4068 2001-01-30 Dave Love <fx@gnu.org>
4069
4070 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
4071 AFTER_POTENTIAL_GC.
4072
4073 2001-01-29 Gerd Moellmann <gerd@gnu.org>
4074
4075 * bytecode.c (Fbyte_code) <Bcurrent_column>:
4076 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
4077
4078 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
4079
4080 * textprop.c (Fset_text_properties): Doc fix.
4081
4082 2001-01-29 Gerd Moellmann <gerd@gnu.org>
4083
4084 * xdisp.c (forward_to_next_line_start): Remove xassert.
4085
4086 2001-01-29 Jason Rumney <jasonr@gnu.org>
4087
4088 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
4089 returning without releasing it.
4090
4091 2001-01-29 Kenichi Handa <handa@etl.go.jp>
4092
4093 * w32fns.c (w32_font_match): Allocate three more bytes to regex
4094 for '^', '$', and '\0'.
4095
4096 2001-01-28 Andrew Choi <akochoi@i-cable.com>
4097
4098 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
4099 regex for '^', '$', and '\0'.
4100
4101 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
4102 only if current_sblock has been initialized.
4103
4104 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
4105 terminal frame even if it is the only visible frame.
4106
4107 2001-01-28 Kenichi Handa <handa@etl.go.jp>
4108
4109 * fontset.c (font_family_registry): Even if FONTNAME conform to
4110 XLFD, if it specifies other fields than family and registry,
4111 return FONTANME. New argument FORCE if nonzero cancel that feature.
4112 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
4113 a signle byte character. Don't set FAMILY part to nil here.
4114 It is handled by the caller choose_face_font.
4115 (Fnew_fontset): Call font_family_registry with FORCE 0.
4116 (Fset_fontset_font): Likewise.
4117
4118 2001-01-27 Gerd Moellmann <gerd@gnu.org>
4119
4120 * xdisp.c (display_line): Don't treat a newline as fitting
4121 on the line.
4122
4123 2001-01-26 Gerd Moellmann <gerd@gnu.org>
4124
4125 * window.c (size_window): Set the window's orig_top to nil when
4126 changing heights, so that a future shrink_mini_window won't
4127 restore a bogus height.
4128
4129 * frame.c (do_switch_frame): If selected frame has a mini-window,
4130 resize that to exact size.
4131
4132 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
4133
4134 * xdisp.c (display_line): Simplify check for glyphs fitting
4135 entirely in the line.
4136
4137 * xfns.c (xic_style): New variable.
4138 (create_frame_xic): Move static variable to global scope for
4139 the case that `static' gets defined away.
4140
4141 2001-01-26 Kenichi Handa <handa@etl.go.jp>
4142
4143 * coding.c (decode_coding): Set a flag for inhibiting
4144 inconsistent eol.
4145 (code_convert_region): Always set saved_coding_symbol.
4146 (decode_coding_string): Likewise. Update coding->symbol when we
4147 encounter a inconsistent eol by the same way as code_convert_region.
4148
4149 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4150
4151 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
4152 XClearArea.
4153
4154 * xterm.c (x_after_update_window_line): Don't clear if frame's
4155 internal border width is zero.
4156 (x_clear_area): New function.
4157 (x_after_update_window_line, x_clear_end_of_line)
4158 (x_scroll_bar_create, x_scroll_bar_set_handle)
4159 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
4160 instead of XClearArea.
4161
4162 * xterm.h (x_clear_area): Add prototype.
4163
4164 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
4165 which doesn't seem necessary anymore with Lesstif 0.92.
4166
4167 2001-01-25 Dave Love <fx@gnu.org>
4168
4169 * puresize.h (BASE_PURESIZE): Up to 720000.
4170
4171 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
4172
4173 2001-01-25 Gerd Moellmann <gerd@gnu.org>
4174
4175 * xdisp.c (echo_area_display): Don't call redisplay_internal
4176 when Emacs is shutting down. We can't run hooks etc. that
4177 would be necessary to do a redisplay.
4178
4179 * lread.c (read_integer): Use type EMACS_INT instead of int.
4180
4181 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
4182
4183 * ccl.c (ccl_driver): Fix last change.
4184
4185 2001-01-25 Kenichi Handa <handa@etl.go.jp>
4186
4187 * ccl.h (sturct ccl_program): New member suppress_error.
4188
4189 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
4190 insert error message to the output.
4191 (setup_ccl_program): Initialize ccl->suppress_error to 0.
4192
4193 * coding.h (struct coding_system): New member suppress_error.
4194
4195 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
4196 (Fset_terminal_coding_system_internal): Set the member
4197 suppress_error to 1.
4198 (Fset_safe_terminal_coding_system_internal): Likewise.
4199
4200 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
4201
4202 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
4203 as if it was a `charset'.
4204
4205 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4206
4207 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
4208 value in where_is_cache; the next lookup in the cache returns
4209 something bogus if we do.
4210
4211 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
4212
4213 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
4214 if HAVE_WINDOW_SYSTEM isn't defined.
4215
4216 2001-01-24 Gerd Moellmann <gerd@gnu.org>
4217
4218 * fns.c (sweep_weak_table): Fix code taking items out of
4219 the hash collision chain. Some cleanup.
4220
4221 * xterm.c (x_new_font): Don't change a tooltip's size.
4222
4223 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
4224 background color by specifying a color for the default font
4225 in .Xdefaults.
4226
4227 2001-01-24 Kenichi Handa <handa@etl.go.jp>
4228
4229 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
4230 a workaround for SunOS 4's cc.
4231 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
4232 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
4233 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
4234 statement.
4235
4236 2001-01-23 Gerd Moellmann <gerd@gnu.org>
4237
4238 * xterm.c (x_set_window_size_1): New function extracted from
4239 x_set_window_size.
4240 (x_set_window_size): Use it.
4241 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
4242 doesn't have a widget, like tooltips.
4243
4244 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
4245
4246 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
4247
4248 2001-01-23 Kenichi Handa <handa@etl.go.jp>
4249
4250 * fns.c (Fset_char_table_default): Fix to make sub char-table
4251 correctly.
4252
4253 2001-01-22 Gerd Moellmann <gerd@gnu.org>
4254
4255 * xdisp.c (build_desired_tool_bar_string): Make sure we have
4256 a desired tool bar string, even if there are no tool bar items.
4257
4258 * xdisp.c (Ftool_bar_lines_needed): New function.
4259 (syms_of_xdisp): Defsubr it.
4260
4261 * editfns.c (Fformat): Don't extend text properties from arguments
4262 to padding chars in the result.
4263
4264 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
4265
4266 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
4267
4268 2001-01-20 Andrew Innes <andrewi@gnu.org>
4269
4270 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
4271 (w32_initialize): Don't set term hooks that aren't actually needed
4272 in windowed mode.
4273
4274 * xfaces.c (realize_default_face):
4275 (realize_face):
4276 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
4277
4278 * xdisp.c (handle_single_display_prop): Remove references to
4279 FRAME_W32_CONSOLE_P.
4280
4281 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
4282
4283 * frame.h (output_method): Remove output_w32_console method.
4284 (FRAME_W32_CONSOLE_P): Remove macro.
4285
4286 * frame.c (Qw32_console): Remove variable.
4287 (Fframep): Remove references to it.
4288 (syms_of_frame): Ditto.
4289 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
4290
4291 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
4292 redefinition.
4293
4294 2001-01-20 Kenichi Handa <handa@etl.go.jp>
4295
4296 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
4297
4298 2001-01-19 Andrew Innes <andrewi@gnu.org>
4299
4300 * w32.c (init_environment): Add a version-independent site-lisp
4301 directory to EMACSLOADPATH, after the version dependent one.
4302
4303 2001-01-19 Gerd Moellmann <gerd@gnu.org>
4304
4305 * editfns.c (Fbuffer_substring): Doc fix.
4306
4307 * xdisp.c (message_dolog, message2, message2_nolog):
4308 Rename parameter LEN to NBYTES.
4309
4310 2001-01-19 Kenichi Handa <handa@etl.go.jp>
4311
4312 * charset.c (strwidth): Use c_string_width.
4313 (c_string_width): New function.
4314 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
4315 Caller changed.
4316
4317 * charset.h (c_string_width, lisp_string_width): Extern them.
4318
4319 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
4320
4321 * indent.c (check_composition): Check validity of composition.
4322
4323 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
4324 characters by calling c_string_width.
4325 (x_consider_frame_title): Get byte length of frame tile string
4326 correctly.
4327 (display_mode_element): Pay attention to width of non-ASCII
4328 characters by calling strwidth.
4329
4330 2001-01-18 Gerd Moellmann <gerd@gnu.org>
4331
4332 * xfns.c (Qcancel_timer): New variable.
4333 (syms_of_xfns): Initialize and staticpro it.
4334 (Fx_hide_tip, Fx_show_tip): Use it.
4335 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
4336 the timer.
4337 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
4338
4339 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
4340
4341 * window.h (WINDOW_LIVE_P): New macro.
4342
4343 * window.c (window_size_fixed): New variable.
4344 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
4345 the doc string.
4346
4347 * eval.c (specbind): If binding a per-buffer variable which
4348 doesn't have a buffer-local value in the current buffer, change
4349 the global value by changing the value of the symbol bound in all
4350 buffers not having their own value, to make it consistent with
4351 what happens with other buffer-local variables.
4352
4353 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
4354
4355 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
4356 when searching for a newline.
4357
4358 2001-01-18 Kenichi Handa <handa@etl.go.jp>
4359
4360 * xdisp.c (display_string): Fix previous change.
4361
4362 2001-01-18 Jason Rumney <jasonr@gnu.org>
4363
4364 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
4365 GLYPH_DEBUG is defined.
4366 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
4367 true for images with `:ascent 100'.
4368 (x_set_mouse_face_gc): If the last used mouse face has gone in the
4369 meantime, use face MOUSE_FACE_ID.
4370 If first glyph isn't a character glyph, use the ASCII NUL
4371 character to determine the face.
4372 (expose_area): Do not treat left margin specially.
4373 (note_mode_line_highlight): If no local_map, check global keymap.
4374 (note_mouse_highlight): Initialize overlay.
4375 (clear_mouse_face): Don't return if tip_frame is non-nil.
4376 (show_scroll_bars): Remove unused function.
4377 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
4378 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
4379 Clip to row.
4380 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
4381 (x_free_frame_resources): Unload relief colors.
4382
4383 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4384
4385 * xdisp.c (forward_to_next_line_start): Avoid calling
4386 get_next_display_element when the newline is already found.
4387 This may change the iterator's position, when its current position is
4388 equal to the iterator's stop_charpos.
4389
4390 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
4391 zero, use this method only at the end of a line.
4392
4393 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
4394 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
4395 if SCALABLE_FONTS_P is set.
4396
4397 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
4398 so that scalable fonts are included.
4399
4400 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
4401 In the cache, use a key containing the information if scalable
4402 fonts are included.
4403 (x_load_font): Adapt to change of keys in the font cache.
4404
4405 2001-01-17 Kim F. Storm <storm@filanet.dk>
4406
4407 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
4408 XListFonts to take advantage of font caching.
4409
4410 * xterm.c (x_list_fonts): Ensure caching font information when
4411 called for a null frame, which is the case frequently when Emacs
4412 starts.
4413
4414 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4415
4416 * xfns.c (QCconversion): Replaces QCalgorithm.
4417
4418 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
4419
4420 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
4421 of :algorithm.
4422
4423 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
4424 not everything could be displayed.
4425
4426 * line.h, x-list-font.c: Files removed because unused.
4427
4428 2001-01-17 Andrew Innes <andrewi@gnu.org>
4429
4430 * dired.c (directory_files_internal): Convert result from readdir
4431 to a unibyte string initially, to avoid possible misinterpretation
4432 of some bytes as the internal form of Emacs characters.
4433
4434 2001-01-17 Kenichi Handa <handa@etl.go.jp>
4435
4436 * fns.c (concat): Be sure to avoid putting the same `composition'
4437 property on the adjacent regions.
4438
4439 2001-01-16 Gerd Moellmann <gerd@gnu.org>
4440
4441 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
4442 (Fscroll_right, Fscroll_left): Set it here instead, if called
4443 interactively.
4444
4445 * buffer.c (Fset_buffer_modified_p): Set buffer's
4446 prevent_redisplay_optimizations_p flag.
4447
4448 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
4449 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
4450 with additional arg.
4451
4452 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
4453 Change prototype.
4454
4455 * xdisp.c (redisplay_preserve_echo_area): Add parameter
4456 FROM_WHERE, for debugging.
4457
4458 2001-01-16 Kenichi Handa <handa@etl.go.jp>
4459
4460 * ccl.c (Fregister_ccl_program): Handle the return value of
4461 resolve_symbol_ccl_program correctly.
4462 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
4463
4464 2001-01-15 Gerd Moellmann <gerd@gnu.org>
4465
4466 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
4467 has gone in the meantime, use face MOUSE_FACE_ID.
4468
4469 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
4470 If x_display_info_for_display returns null, don't try to close
4471 the display; we didn't open it.
4472
4473 * dispnew.c (save_or_restore_current_matrices): Function removed.
4474 (save_current_matrix, restore_current_matrix): New functions.
4475 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
4476 restore the frame's current matrix. Due to the glyph pointer
4477 setup done in adjust_glyph_matrix, there is no easy way to make
4478 saving the current matrix in the desired matrix generally correct,
4479 so don't try it.
4480
4481 2001-01-15 Kenichi Handa <handa@etl.go.jp>
4482
4483 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
4484 truncation glyphs.
4485 (display_line): Optimize for wide characters.
4486 (display_string): Don't try to display a multi-column character
4487 partially. On ttys, produce more than one truncation glyph for
4488 multi-column characters that don't fit on the line.
4489
4490 2001-01-13 Kenichi Handa <handa@etl.go.jp>
4491
4492 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
4493 Define it instead of WORDS_BIGENDIAN. Caller changed.
4494
4495 2001-01-13 Jason Rumney <jasonr@gnu.org>
4496
4497 * w32fns.c (Fimage_size, image_ascent, lookup_image)
4498 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
4499 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4500 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
4501
4502 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
4503 (x_draw_image_relief, x_draw_image_foreground_1)
4504 (x_draw_image_glyph_string): Adapt to change of image margins.
4505
4506 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
4507 variables.
4508
4509 * w32bdf.c (search_file_line, get_cached_font_char)
4510 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
4511
4512 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
4513
4514 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
4515 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
4516 (Fw32_send_sys_command): Remove unused variables.
4517 (w32_msg_pump): Add parentheses.
4518
4519 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
4520 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
4521 Add parentheses.
4522
4523 2001-01-12 Gerd Moellmann <gerd@gnu.org>
4524
4525 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
4526 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
4527 being a pair of margins.
4528 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
4529 to DEFVAR_LISP. Extend doc.
4530
4531 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
4532 margins.
4533 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
4534 pair of integers `(X . Y)', use X for the horizontal and Y for the
4535 vertical margin.
4536 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
4537 (parse_image_spec): Check it.
4538 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4539 (tiff_format, gif_format, gs_format):
4540 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
4541
4542 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4543 (x_draw_image_relief, x_draw_image_foreground_1)
4544 (x_draw_image_glyph_string): Adapt to the change of image margins.
4545
4546 * dispextern.h (struct image): Replace member `margin' with
4547 `hmargin' and `vmargin'.
4548
4549 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
4550 and GLYPHS.
4551
4552 * dispnew.c (update_text_area): Put code which decrements the
4553 stop position when the row's face extends to the end of the
4554 line in #if 0.
4555
4556 * xfns.c (x_set_mouse_color): Fix color allocation.
4557
4558 * keyboard.c: Call get_local_map with new argument list.
4559
4560 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
4561
4562 * intervals.h (enum map_property): Removed.
4563 (get_local_map): Change prototype.
4564
4565 * keymap.c: Call get_local_map with new argument list.
4566 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
4567
4568 2001-01-11 Gerd Moellmann <gerd@gnu.org>
4569
4570 * xdisp.c (build_desired_tool_bar_string): Correct the computation
4571 of the size needed for the tool bar string. For the last image,
4572 use a `display' property that reaches to the end of the string.
4573
4574 * xselect.c (selection_request_dpyinfo): New variable.
4575 (x_handle_selection_request): Set it.
4576 (x_selection_request_lisp_error): Don't call
4577 x_decline_selection_request if selection request's display has
4578 been closed.
4579
4580 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
4581 Do the unregister_colors before calling XFreeColors.
4582
4583 2001-01-10 Dave Love <fx@gnu.org>
4584
4585 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
4586 ${SOME_MACHINE_LISP}, not ${lisp}.
4587
4588 2001-01-10 Gerd Moellmann <gerd@gnu.org>
4589
4590 * xdisp.c (display_line): On ttys, produce more than one truncation
4591 glyph for multi-column characters that don't fit on the line.
4592
4593 * xselect.c (x_reply_selection_request): Add a comment.
4594
4595 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
4596 XkbGetNames instead of XkbGetKeyboard.
4597
4598 2001-01-10 Dave Love <fx@gnu.org>
4599
4600 * sysdep.c (random): Revert the declaration.
4601
4602 2001-01-09 Gerd Moellmann <gerd@gnu.org>
4603
4604 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
4605 Call function string_bytes.
4606 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
4607
4608 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
4609 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
4610 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
4611 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
4612 the current sblock.
4613 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
4614 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
4615 after sweeping strings, and at the end.
4616 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
4617
4618 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
4619 ensure that pop_message is called.
4620
4621 * keyboard.c (Fexecute_extended_command): Use a
4622 record_unwind_protect to ensure that pop_message is called.
4623
4624 * lisp.h (push_message_unwind): Add prototype.
4625
4626 * xdisp.c (push_message_unwind): New function.
4627
4628 * fileio.c (do_auto_save_unwind): Do the pop_message here
4629 instead of in Fdo_auto_save.
4630 (Fdo_auto_save): Don't call pop_message.
4631
4632 2001-01-08 Ken Raeburn <raeburn@gnu.org>
4633
4634 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
4635 in inner block.
4636
4637 2001-01-08 Gerd Moellmann <gerd@gnu.org>
4638
4639 * window.c (window_scroll_pixel_based): Adjust glyph matrices
4640 when increasing window's vscroll.
4641
4642 * macros.c (Qkbd_macro_termination_hook): New variable.
4643 (syms_of_macros): Initialize and staticpro it.
4644 (pop_kbd_macro): Run kbd-macro-termination-hook.
4645
4646 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
4647
4648 2001-01-07 Dave Love <fx@gnu.org>
4649
4650 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
4651 arglist, for documentation's sake.
4652
4653 2001-01-06 Andrew Innes <andrewi@gnu.org>
4654
4655 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
4656 of *.pdb.
4657
4658 2001-01-05 Andrew Innes <andrewi@gnu.org>
4659
4660 * term.c (update_end): Don't check updating_frame; for some reason
4661 this can be 0 sometimes, such as after dismissing a popup menu,
4662 and isn't necessary given the explicit frame argument.
4663
4664 2001-01-05 Gerd Moellmann <gerd@gnu.org>
4665
4666 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
4667 on some systems, and an unsigned long on others, like FreeBSD 4.1.
4668
4669 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4670
4671 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
4672
4673 * xfns.c (x_create_tip_frame): Preserve the value of
4674 face_change_count around the creation of the tip frame.
4675
4676 * xfns.c (last_show_tip_args): New variable.
4677 (compute_tip_xy): New function.
4678 (Fx_show_tip): Reuse an existing tip frame, if possible.
4679 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
4680
4681 2001-01-04 Dave Love <fx@gnu.org>
4682
4683 * editfns.c (Fformat): Doc fix.
4684
4685 * systime.h (set_file_times): Prototype.
4686
4687 * widget.h (EmacsFrameSetCharSize_): Prototype.
4688
4689 * sysdep.c (random, srandom): Declare explicitly.
4690
4691 * dispextern.h (move_it_vertically_backward): Declare.
4692
4693 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4694
4695 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
4696 like in Fx_create_frame.
4697
4698 * xfaces.c (set_font_frame_param): Don't do anything for
4699 non-graphical frames.
4700
4701 * window.c (Fdelete_other_windows): Set window's window_end_valid
4702 to nil when changing the window's start. Don't change the
4703 window's start when its top position hasn't changed. If we do,
4704 this will set the window's optional_new_start, which act's like a
4705 force_start during redisplay with C-x 1 M-> under particular
4706 circumstances (see report from Per Starback to emacs-pretest-bug
4707 from 2000-12-13.).
4708
4709 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4710
4711 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
4712 short cut at the start of the function. Add an assertion.
4713 (reseat_at_next_visible_line_start): Add an assertion.
4714
4715 * window.c (Frecenter): When changing the window start, set the
4716 window's window_end_valid to nil.
4717 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
4718
4719 * dispextern.h (move_it_past_eol): Add prototype.
4720
4721 * xdisp.c (move_it_past_eol): New function.
4722
4723 * window.c (Fwindow_end): Doc fix.
4724
4725 2001-01-03 Dave Love <fx@gnu.org>
4726
4727 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
4728
4729 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4730
4731 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
4732 the enabled_p flag of the glyph row at window_end_vpos to 0.
4733 (handle_single_display_prop): Fix last change.
4734
4735 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4736
4737 * window.c (Frecenter): Doc fix.
4738
4739 2001-01-02 Andrew Innes <andrewi@gnu.org>
4740
4741 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
4742
4743 * frame.h (output_method): Add output_w32_console method.
4744 (FRAME_W32_CONSOLE_P): New macro.
4745
4746 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
4747 use output_w32_console method.
4748 (Qw32_console): New Lisp_Object.
4749 (Fframep): Return it.
4750 (syms_of_frame): Init it.
4751 (Fframe_parameters): Report w32console as font for w32_console frames.
4752
4753 * xfaces.c (realize_default_face): Set face foreground and
4754 background to unspecified for w32_console frames.
4755 (realize_face): Realize face cache for w32_console frames.
4756 (realize_tty_face): Accept w32_console frames.
4757
4758 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
4759 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
4760 necessary, even if running interactively.
4761
4762 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
4763 w32_console frames.
4764
4765 * w32term.c (x_update_begin):
4766 (x_update_end):
4767 (x_clear_frame):
4768 (x_ins_del_lines):
4769 (x_change_line_highlight):
4770 (x_delete_glyphs):
4771 (w32_ring_bell):
4772 (x_update_begin):
4773 (x_update_end):
4774 (w32_reassert_line_highlight):
4775 (w32_frame_rehighlight):
4776 (w32_frame_raise_lower): Do nothing if not w32 frame.
4777
4778 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
4779
4780 * w32fns.c (Fx_display_color_cells): Determine correct value, when
4781 system doesn't tell us directly.
4782 (Fx_display_visual_class): Implement properly.
4783
4784 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4785
4786 * window.c (Frecenter): Handle centering in graphical frames
4787 specially. Centering on the basis of line counts doesn't work
4788 reliably with variable-height lines.
4789
4790 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4791
4792 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
4793 and al[].
4794
4795 * composite.c (run_composition_function): Remove unused var `val'.
4796 (update_compositions): Remove unused variable `hook'.
4797
4798 * intervals.c (get_local_map): Remove unused variable `tem'.
4799
4800 * doprnt.c (doprnt1): Remove unused variable `size'.
4801
4802 * fns.c (Flength): Remove unused variable `tail'.
4803 (Fdelete): Remove unused variable `size'.
4804
4805 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
4806 and `gcpro2'.
4807
4808 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
4809
4810 * data.c (find_symbol_value): Remove extra 3rd argument in the
4811 call to swap_in_symval_forwarding.
4812
4813 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
4814
4815 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
4816 (trivial_regexp_p): Remove unused variable `c'.
4817 (boyer_moore): Remove unused variable `k'.
4818
4819 * indent.c (current_column): Remove unused variable `stopchar'.
4820 (Fcompute_motion): Remove unused variable `contin'.
4821
4822 * casefiddle.c (casify_object): Remove unused variable `tolen'.
4823
4824 * dired.c (directory_files_internal): Fix a typo in a comment.
4825 Remove an unused variable `handler'.
4826 (file_name_completion): Remove unused function-scope variable `dp'.
4827 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
4828 on BSD4_2.
4829
4830 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
4831
4832 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
4833 and `buf'.
4834 (Fmarker_insertion_type): Remove unused variable `buf'.
4835
4836 * insdel.c (make_gap): Remove unused variable `result'.
4837
4838 * keyboard.c (record_char): Remove unused function-scope var `help'.
4839 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
4840 (menu_bar_items): Remove unused function-scope variable `tem'.
4841
4842 * fontset.c (fontset_ref): Remove unused variable `i'.
4843 (fontset_set): Remove unused variables `j' and `tmp'.
4844 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
4845 (make_fontset_for_ascii_face): Remove unused variable `name'.
4846 (fs_load_font): Remove unused variable `font_idx'.
4847 (fs_query_fontset): Remove unused function-local variable `fontset'.
4848 (list_fontsets): Remove unused variable `tail'.
4849 (Fnew_fontset): Remove unused variables `family' and `registry'.
4850 (accumulate_font_info): Remove unused variable `tmp'.
4851 (Ffontset_font): Remove unused variable `id'.
4852 (syms_of_fontset): Remove unused variable `i'.
4853
4854 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
4855 to x_term_init.
4856 (lookup_image): Remove unused variable `file'.
4857 (xbm_load): Remove unused variables `bitmap_data', `height', and
4858 `width'. Remove function-local variable `i', leave the
4859 block-local one.
4860 (gif_load): Remove unused variable `inc'.
4861
4862 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
4863 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
4864 leave only the one in the inner block.
4865
4866 * xfaces.c (face_fontset, realize_default_face): Remove unused
4867 variable `fontset'.
4868 (face_at_buffer_position): Remove unused variable `multibyte_p'.
4869
4870 * term.c (encode_terminal_code): Remove unused variable `c'.
4871
4872 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
4873 char *' instead of `char *'.
4874
4875 * category.c (Fcategory_docstring): Remove unused variable `doc'.
4876 (Fget_unused_category): Remove unused variable `docstring_vector'.
4877 (Fchar_category_set): Remove unused variables `val', `charset',
4878 `c1' and `c2'.
4879
4880 * coding.c (detect_coding_iso2022, setup_coding_system):
4881 Remove unused variable `i'.
4882 (detect_coding_mask): Remove unused variable `idx'.
4883 (detect_coding): Remove unused variable `i'.
4884 (ccl_coding_driver): Remove unused variable `result'.
4885 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
4886 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
4887 (encode_coding_string): Remove unused variables `gcpro1' and
4888 `saved_coding_symbol'.
4889 (Ffind_coding_systems_region_internal): Remove function-local
4890 variable args[], leave only the block-local one.
4891 (code_convert_region1): Remove unused variable `len'.
4892
4893 * charset.c (char_printable_p): Remove unused variable `chars'.
4894 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
4895 (str_to_multibyte): Remove unused variable `c'.
4896
4897 * window.c (size_window): Remove block-local variable `min_size'.
4898
4899 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
4900 `header_line_height'.
4901 (append_space, extend_face_to_end_of_line): Declare `saved_what'
4902 enum display_element_type.
4903
4904 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4905
4906 * xterm.c (x_connection_closed): Catch X errors around all
4907 statements that call X. Save away the error message in a local copy.
4908
4909 * xterm.c (x_connection_closed): Set handling_signal to 0 at
4910 the start.
4911
4912 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
4913 in or at the start of invisible text.
4914
4915 * dispnew.c (update_window): Don't check_current_matrix_flags.
4916
4917 2001-01-01 Jason Rumney <jasonr@gnu.org>
4918
4919 * w32fns.c (x_figure_window_size): Do not allow new_height and
4920 new_width of frame to override specified values.
4921
4922 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4923
4924 * composite.c (find_composition): Fix a code for searching backward.
4925
4926 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4927
4928 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4929 (update_window) [GLYPH_DEBUG]: Call it.
4930 (scrolling_window): Prevent including current rows which are below
4931 what's displayed in the window.
4932
4933 * xdisp.c (try_window_reusing_current_matrix)
4934 <new start <= old start>: Disable rows in the current matrix
4935 which are below the window after scrolling.
4936
4937 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4938 is zero. It's not worth the complexity.
4939 (invisible_text_between_p): Put in #if 0 because unused.
4940
4941 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4942
4943 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4944 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4945
4946 * keyboard.c (echo_char): If C is an integer, always call
4947 push_key_description. Former code could signal an invalid
4948 character error.
4949
4950 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4951 If set, print multibyte text.
4952 (Fsingle_key_description): Call push_key_description with
4953 FORCE_MULTIBYTE set.
4954 (describe_buffer_bindings): Likewise.
4955
4956 * lisp.h (push_key_description): Add prototype.
4957
4958 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4959 around the call to redisplay_internal.
4960
4961 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4962
4963 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4964
4965 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4966
4967 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4968 (ccl_driver): New local variable `extra_bytes'.
4969
4970 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4971
4972 * coding.c (setup_coding_system):
4973 Initialize coding->spec.ccl.eight_bit_carryover.
4974 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4975
4976 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4977
4978 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4979 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4980 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4981 (decode_composition_emacs_mule): New function.
4982 (decode_coding_emacs_mule): Decode composition sequence by calling
4983 decode_composition_emacs_mule.
4984 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4985 (encode_coding_emacs_mule): Changed from macro to function.
4986 If a text contains compositions, encode them correctly.
4987 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4988 that decoding and encoding are required.
4989
4990 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4991
4992 * xfaces.c (PT_PER_INCH): New macro.
4993 (xlfd_point_size): Compute real point size from font's pixel size.
4994 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4995 instead of 72.
4996
4997 * .gdbinit: Comment out the line pointing to the Lesstif source
4998 directory.
4999
5000 * window.c (Frecenter): Use displayed_window_lines instead
5001 of window_internal_height.
5002
5003 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
5004 instead of x-toolkit-scroll-bars-p.
5005 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
5006
5007 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
5008 instead of x-toolkit-scroll-bars-p.
5009 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
5010
5011 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
5012 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
5013 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
5014 New variables.
5015 (add_window_display_history, add_frame_display_history)
5016 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
5017 (build_frame_matrix_from_leaf_window): Remove unused code.
5018 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
5019 redisplay history.
5020 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
5021 (update_window) [GLYPH_DEBUG]: Likewise.
5022 (syms_of_display): Defsubr dump-redisplay-history.
5023
5024 2000-12-23 Gerd Moellmann <gerd@gnu.org>
5025
5026 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
5027 the end of the prompt. Set echo_after_prompt to the offset
5028 of echoptr in echobuf.
5029
5030 * xdisp.c (init_from_display_pos): Pop until the iterator's
5031 stack is empty; there may be frames for stretch or images
5032 on the stack.
5033
5034 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
5035 (save_or_restore_current_matrix): New function for the same
5036 purpose, but more efficient.
5037 (adjust_frame_glyphs_for_frame_redisplay): Use it.
5038
5039 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
5040
5041 * xdisp.c (syms_of_xdisp): Fix last change.
5042
5043 2000-12-23 Gerd Moellmann <gerd@gnu.org>
5044
5045 * xdisp.c (syms_of_xdisp): Doc fix.
5046
5047 * xdisp.c (redisplay_window): Remove label restore_buffers;
5048 use finish_scroll_bars instead to make sure that scroll bars
5049 are redeemed. If we don't do this, flickering can result from
5050 scroll bars being destroyed and recreated.
5051
5052 2000-12-22 Jason Rumney <jasonr@gnu.org>
5053
5054 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
5055 in the wrong colors when the foreground is not black.
5056 (expose_window): Don't redraw the window that's currently being
5057 updated.
5058
5059 2000-12-22 Gerd Moellmann <gerd@gnu.org>
5060
5061 * window.c (size_window): When setting the window's too_small_ok
5062 flag, compare old size with minimum size depending on WIDTH_P,
5063 don't compare with window_min_width.
5064
5065 * window.c (delete_window): Simplify somewhat.
5066 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
5067 freeing window matrices. The flag windows_or_buffers_changed is
5068 set, so the next redisplay will consider all windows; this should
5069 suffice.
5070
5071 2000-12-22 Kenichi Handa <handa@etl.go.jp>
5072
5073 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
5074
5075 * ccl.h (struct ccl_program): New member cr_consumed.
5076
5077 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
5078 (CCL_READ_CHAR): Handle EOL conversion here.
5079 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
5080
5081 2000-12-21 Gerd Moellmann <gerd@gnu.org>
5082
5083 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
5084
5085 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
5086 otherwise tabs of different size compare equal.
5087
5088 * callint.c (Fcall_interactively): Prevent a compiler warning.
5089
5090 * print.c (print_unwind): Return nil.
5091 (PRINTDECLARE): Initialize all local variables.
5092 (print_preprocess): Add a default case.
5093
5094 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
5095
5096 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
5097
5098 * window.c (delete_window, Fsplit_window)
5099 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
5100
5101 * dispextern.h (ensure_frame_matrix): Function declaration removed.
5102
5103 * dispnew.c (ensure_frame_matrix): Removed.
5104 (save_frame_matrix, restore_frame_matrix): New functions.
5105 (adjust_frame_glyphs_for_frame_redisplay): Use them.
5106
5107 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
5108 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
5109
5110 2000-12-21 Andrew Innes <andrewi@gnu.org>
5111
5112 * w32term.c (x_update_begin): Regenerate the palette here, rather
5113 than for each window.
5114
5115 * w32xfns.c (select_palette): Avoid calling SelectPalette if
5116 palette is NULL, since this corrupts memory! Also get
5117 display_info reference from frame.
5118
5119 2000-12-21 Jason Rumney <jasonr@gnu.org>
5120
5121 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
5122
5123 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
5124 to avoid returning without releasing it.
5125
5126 2000-12-21 Kenichi Handa <handa@etl.go.jp>
5127
5128 * keymap.c (push_key_description): Don't convert eight-bit-control
5129 and eight-bit-graphic to multibyte character.
5130
5131 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
5132 generic character and CODE1 is nil, return the smallest character
5133 in CHARSET.
5134
5135 2000-12-20 Dave Love <fx@gnu.org>
5136
5137 * s/osf5-0.h (NSIG): Don't redefine.
5138
5139 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
5140
5141 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
5142 excluding menu-bar and tool-bar.
5143 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
5144 (menu_item_p): Remove.
5145 (where_is_internal_1): Don't ignore menu-items.
5146
5147 2000-12-20 Gerd Moellmann <gerd@gnu.org>
5148
5149 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
5150 into account.
5151
5152 * window.c (make_window): Initialize window's min_hscroll.
5153 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
5154 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
5155 to zero.
5156 (struct saved_window): New member min_hscroll.
5157 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
5158 (Fset_window_configuration): Set window's min_hscroll.
5159 (save_window_save): Save window's min_hscroll.
5160 (compare_window_configurations): Compare min_hscroll values.
5161
5162 * window.h (struct window): New member min_hscroll.
5163
5164 * keyboard.c (echo_prompt): Prevent a compiler warning.
5165
5166 * xdisp.c (try_cursor_movement): Fix last change. The real
5167 condition is that PT is at the end of the row, and should
5168 be displayed at the start of the next row.
5169
5170 * xdisp.c (try_cursor_movement): If we end on a partially
5171 visible line, end we already decided to scroll, return -1.
5172
5173 * dispextern.h (ensure_frame_matrix): Add prototype.
5174
5175 * window.c (delete_window, Fsplit_window)
5176 (Fset_window_configuration): Call ensure_frame_matrix.
5177
5178 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
5179 New functions.
5180 (adjust_frame_glyphs_for_frame_redisplay): If display has been
5181 completed, call fake_current_matrices instead of marking frame
5182 garbaged.
5183
5184 2000-12-20 Jason Rumney <jasonr@gnu.org>
5185
5186 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
5187
5188 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
5189
5190 * fns.c (Frequire): Doc fix.
5191
5192 2000-12-19 Gerd Moellmann <gerd@gnu.org>
5193
5194 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
5195
5196 * dispnew.c (direct_output_for_insert): Fix check for mini-window
5197 currently displaying a message.
5198
5199 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
5200 xterm.h.
5201 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
5202
5203 2000-12-18 Andrew Innes <andrewi@gnu.org>
5204
5205 * w32.c (w32_strerror): New function.
5206
5207 * w32.h (w32_strerror): New extern.
5208
5209 * w32fns.c (Fw32_shell_execute): Use it.
5210
5211 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5212
5213 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
5214
5215 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5216
5217 * msdos.c (IT_set_face): Obey inverse_video.
5218
5219 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5220
5221 * dired.c (directory_files_internal): Always return decoded filenames.
5222
5223 2000-12-18 Gerd Moellmann <gerd@gnu.org>
5224
5225 * xterm.c (x_connection_closed): Prevent being called recursively
5226 because of an error condition in XtCloseDisplay.
5227
5228 * xdisp.c (init_iterator): If noninteractive, and the frame's
5229 face cache is null, make one.
5230
5231 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
5232
5233 * process.c (wait_reading_process_input): Check for pending
5234 input when running timers.
5235
5236 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
5237
5238 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
5239
5240 2000-12-18 Kenichi Handa <handa@etl.go.jp>
5241
5242 * process.c (read_process_output): Don't run a filter if the code
5243 decoder produces nothing but carryover.
5244
5245 2000-12-17 Andrew Innes <andrewi@gnu.org>
5246
5247 * w32.c (sys_rename): Only check errno against EEXIST, and not
5248 EACCES, when determining whether rename failed because the target
5249 exists. This was resulting in indefinite looping on Windows 9x if
5250 the source file was locked by another process.
5251
5252 * w32fns.c (Ffile_system_info): New function.
5253 (syms_of_w32fns): Defsubr it.
5254
5255 2000-12-17 Gerd Moellmann <gerd@gnu.org>
5256
5257 * window.c (coordinates_in_window): Fix computation for
5258 position on vertical line between mode lines.
5259
5260 * xfns.c (unwind_create_frame): Return t if frame was deleted.
5261 Don't alter tip_frame or tip_window.
5262 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5263 was deleted.
5264
5265 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
5266 Don't alter tip_frame or tip_window.
5267 (unwind_create_tip_frame): Set tip_frame to nil only if frame
5268 was deleted.
5269
5270 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
5271
5272 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
5273 be consistent with the doc string. Reported by NAKAJIMA Mikio
5274 <minakaji@osaka.email.ne.jp>.
5275
5276 2000-12-16 Kenichi Handa <handa@etl.go.jp>
5277
5278 * xfaces.c (Vface_ignored_fonts): New variable.
5279 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
5280 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
5281
5282 2000-12-15 Gerd Moellmann <gerd@gnu.org>
5283
5284 * dispnew.c (update_window): Detect pending input every nth line
5285 updated, i.e. do it depending on real work done, and not on the
5286 vpos of the line.
5287
5288 * xterm.c (expose_window): Don't redraw the window that's
5289 currently being updated.
5290
5291 * window.c (Fset_window_point): Remove test for
5292 cursor_in_non_selected_windows.
5293
5294 * lread.c (read1): Recognize end of file after `\\'.
5295
5296 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
5297 not unwind_create_frame.
5298
5299 2000-12-15 Dave Love <fx@gnu.org>
5300
5301 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
5302 bcopy & al.
5303
5304 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
5305
5306 2000-12-15 Kenichi Handa <handa@etl.go.jp>
5307
5308 * coding.c (setup_coding_system): Clear all members of the struct
5309 coding_system at first.
5310 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
5311 argument.
5312 (code_convert_region): Don't override coding->src_multibyte and
5313 coding->dst_multibyte.
5314
5315 * fns.c (Fmd5): Docstring improved.
5316
5317 2000-12-15 Miles Bader <miles@gnu.org>
5318
5319 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
5320 are actually marked as mode-lines; otherwise use
5321 estimate_mode_line_height.
5322
5323 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5324
5325 * editfns.c (Fformat): Prevent a buffer overrun when the format
5326 specifies a precision.
5327
5328 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
5329
5330 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
5331 argument is outside the range [2..3].
5332
5333 2000-12-14 Andrew Innes <andrewi@gnu.org>
5334
5335 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
5336 nothing to do. Bind inhibit-quit.
5337 (tip_frame): Make it a Lisp_Object.
5338 (x_create_tip_frame): Set tip_frame after it has been added to
5339 Vframe_list.
5340 (Fx_show_tip): Don't set tip_frame here.
5341 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
5342 (unwind_create_frame, unwind_create_tip_frame): New functions.
5343 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5344 while a frame is only partially constructed.
5345
5346 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5347 (x_free_frame_resources): New function.
5348 (x_destroy_window): Use it.
5349
5350 2000-12-14 Gerd Moellmann <gerd@gnu.org>
5351
5352 * xfns.c (Fx_backspace_delete_keys_p): New function.
5353 (syms_of_xfns): Defsubr it.
5354
5355 * config.in (HAVE_XKBGETKEYBOARD): Add.
5356
5357 2000-12-14 Kenichi Handa <handa@etl.go.jp>
5358
5359 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
5360 Always store string in multibyte representation in echobuf.
5361 (echo_char): Always store string in multibyte representation in
5362 echobuf.
5363 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
5364 (read_key_sequence): Adjusted for the change of echo_prompt.
5365
5366 * fns.c (Fmd5): Docstring improved.
5367
5368 * lisp.h (detect_coding_system): Prototype adjusted.
5369
5370 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
5371 (detect_coding_emacs_mule, detect_coding_iso2022,)
5372 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
5373 (detect_coding_utf_16, detect_coding_ccl): Make them static.
5374 New argument MULTIBYTEP. Callers changed.
5375 (detect_coding_mask, detect_coding_system): New argument
5376 MULTIBYTEP. Callers changed.
5377 (decode_coding_string): Set coding->src_multibyte and
5378 coding->dst_multibyte before calling detect_coding and detect_eol.
5379 Update them after some coding system is detected.
5380
5381 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
5382
5383 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
5384
5385 * keyboard.c (menu_bar_items, tool_bar_items):
5386 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
5387
5388 2000-12-13 Gerd Moellmann <gerd@gnu.org>
5389
5390 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
5391 New variables.
5392 (unwind_create_frame, unwind_create_tip_frame): New functions.
5393 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5394 while a frame is only partially constructed.
5395
5396 * xterm.h (x_free_frame_resources): Declare.
5397
5398 * xterm.c (x_free_frame_resources): New function.
5399 (x_destroy_window): Use it.
5400
5401 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
5402 don't interrupt the update for pending input initially, i.e.
5403 update at least some lines.
5404
5405 * keyboard.c (do_mouse_tracking): Make externally visible.
5406
5407 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
5408
5409 * xfns.c (gray_bitmap_bits): Declare `char *'.
5410
5411 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5412
5413 * xdisp.c (display_tool_bar_line): Make sure that tool bar
5414 lines start with a relief line.
5415
5416 2000-12-12 Dave Love <fx@gnu.org>
5417
5418 * window.c (Fdisplay_buffer): Doc fix.
5419 (Fwindow_list): Remove unused var.
5420
5421 * buffer.h (mmap_set_vars): Declare.
5422
5423 * window.h (Fset_window_point): Declare.
5424
5425 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
5426
5427 * msdos.c (fast_find_position): Don't overstep the last window row.
5428 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
5429 variable `area'. When looking for a row under (X,Y), give up if some
5430 of the previous rows is not enabled.
5431
5432 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5433
5434 * window.c (Fset_window_point): If displaying cursors in windows
5435 other than the selected window, make sure redisplay updates
5436 other windows to show the new value of point in the window.
5437
5438 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
5439
5440 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
5441 the buffer is the sole visible buffer when in the mini-buffer.
5442
5443 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
5444 Bind `inhibit-read-only' to t.
5445 (unwind_with_echo_area_buffer): Use AREF.
5446
5447 * xfns.c (Fx_hide_tip): Simplified.
5448
5449 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
5450 instead of `1'.
5451
5452 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
5453
5454 2000-12-11 Gerd Moellmann <gerd@gnu.org>
5455
5456 * xfns.c (Fx_hide_tip): Fix last change.
5457
5458 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
5459 nothing to do. Bind inhibit-quit.
5460 (tip_frame): Make it a Lisp_Object.
5461 (x_create_tip_frame): Set tip_frame after it has been added to
5462 Vframe_list.
5463 (Fx_show_tip): Don't set tip_frame here.
5464
5465 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5466
5467 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
5468 Lisp_Object.
5469
5470 * dispextern.h: Change external declaration of tip_frame.
5471
5472 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
5473 return an empty string.
5474
5475 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
5476 of the window's update_mode_line flag, since the former is set by
5477 force-mode-line-update, not the latter. This makes
5478 column-number-mode slightly faster.
5479
5480 * xdisp.c (try_window_id) <all changes above window start>:
5481 Set the cursor.
5482
5483 2000-12-11 Paul Eggert <eggert@twinsun.com>
5484
5485 * config.in (HAVE_FTELLO): Remove.
5486 (HAVE_FSEEKO): Add.
5487 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
5488 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
5489 HAVE_FTELLO.
5490 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
5491 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
5492
5493 2000-12-11 Miles Bader <miles@gnu.org>
5494
5495 * window.c (displayed_window_lines): Don't round up when
5496 converting empty space at bottom to lines.
5497 Handle non-newline-terminated final lines properly.
5498 (Fwindow_text_height): New function (used to be in lisp).
5499 (syms_of_window): Initialize it.
5500
5501 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
5502
5503 * syntax.c (scan_lists): Check that the right quote char has the
5504 right Sstring syntax when jumping over strings.
5505 (init_syntax_once): Use Smax rather than 13.
5506
5507 2000-12-09 Miles Bader <miles@gnu.org>
5508
5509 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
5510 with PARTIALLY, inverting the sense.
5511 (window_scroll_pixel_based): Scroll partially visible lines into
5512 place if we hit the beginning or end of the buffer.
5513 (displayed_window_lines): Don't include partially visible lines.
5514 (Fmove_to_window_line): Skip past any partially visible first line.
5515
5516 2000-12-08 Gerd Moellmann <gerd@gnu.org>
5517
5518 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
5519
5520 * tparam.c (tparam1): Change the way buffers are reallocated to be
5521 portable and less obfuscated.
5522
5523 * termcap.c (tgetent): Change the way buffers are reallocated to
5524 be portable and less obfuscated.
5525
5526 * macros.c (store_kbd_macro_char): Change the way buffers are
5527 reallocated to be portable and less obfuscated.
5528
5529 * lread.c (read1): Change the way buffers are reallocated to be
5530 portable and less obfuscated.
5531
5532 * doc.c (Fsubstitute_command_keys): Change the way buffers
5533 are reallocated so that it is portable.
5534
5535 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
5536
5537 * dosfns.c (Ffile_system_info): New function.
5538 (syms_of_dosfns): Defsubr it.
5539
5540 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
5541
5542 * alloc.c (gc_sweep): Add comment.
5543
5544 2000-12-07 Gerd Moellmann <gerd@gnu.org>
5545
5546 * sound.c (vox_configure): Change order of ioctls.
5547 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
5548 Ignore errors when changing volume.
5549 (vox_close): Don't reset the device.
5550
5551 * process.c (read_process_output): Make sure the process marker's
5552 position is valid when the process buffer is changed in
5553 after-change functions. W3 does that.
5554
5555 * xfns.c (x_free_gcs): New function.
5556
5557 * xterm.h (x_free_gcs): Add prototype.
5558
5559 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
5560 freeing GCs here.
5561
5562 * xterm.c (x_destroy_window): Call x_free_gcs so that
5563 resources of non-toolkit X windows will be freed.
5564
5565 2000-12-07 Andrew Innes <andrewi@gnu.org>
5566
5567 * w32fns.c (xlfd_charset_of_font): Fix last change.
5568
5569 2000-12-06 Dave Love <fx@gnu.org>
5570
5571 * md5.h (__P): Don't define -- it comes from config.h.
5572
5573 * strftime.c: Change some #if foo to #ifdef foo.
5574
5575 2000-12-06 Andrew Innes <andrewi@gnu.org>
5576
5577 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
5578
5579 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
5580 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
5581 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
5582
5583 2000-12-06 Gerd Moellmann <gerd@gnu.org>
5584
5585 * alloc.c (gc_sweep): Prevent symbols read during loadup
5586 from being freed.
5587
5588 * xdisp.c (underlying_face_id): New function.
5589 (handle_face_prop, face_before_or_after_it_pos): Use it
5590 to determine the face ``under'' a string. Let strings inherit
5591 the face of the buffer under them.
5592
5593 * xfaces.c (face_at_string_position): Update function comment.
5594
5595 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
5596 matrix if the window's left position has changed; we need to
5597 redraw it in this case.
5598
5599 * dispextern.h (struct glyph_matrix): Add member window_left_x.
5600
5601 * window.c (coordinates_in_window): Check mouse on mode-line or
5602 header-line first.
5603
5604 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
5605 advertized by the function documentation.
5606
5607 * window.c (syms_of_window): Doc fix.
5608
5609 * sound.c (vox_configure): Set volume for left and right channel.
5610 (sound_cleanup): Return nil.
5611
5612 * xdisp.c (move_it_by_lines): Fix paren typo.
5613
5614 * xterm.c (x_load_font): Don't use the font's max_bounds for
5615 computing the height of the font. If max_bounds' ascent or
5616 descent are greater than the font's ascent or descent, this means
5617 glyphs overlap, which should be handled now by redisplay.
5618
5619 * window.c (Veven_window_heights): New variable.
5620 (syms_of_window): DEFVAR_LISP it.
5621 (Fdisplay_buffer): Check Veven_window_heights before evening the
5622 window heights.
5623
5624 2000-12-06 Miles Bader <miles@gnu.org>
5625
5626 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
5627 update `default-frame-alist' instead of setting no frame parameters.
5628
5629 2000-12-06 Kenichi Handa <handa@etl.go.jp>
5630
5631 * composite.c (update_compositions): Fix typo (use the correct
5632 variable).
5633
5634 2000-12-05 Jason Rumney <jasonr@gnu.org>
5635
5636 * md5.h: Remove underscores from function declarations.
5637 (__attribute__, __alignof__) [!__GNUC__]: Define.
5638
5639 * md5.c: Delay include of md5.h until after namespace cleaning.
5640
5641 * makefile.w32-in (fns.o): Depend on md5.h
5642 (md5.o): New target.
5643 (sunfns.o): Remove.
5644
5645 * makefile.nt: Likewise.
5646
5647 2000-12-05 Jason Rumney <jasonr@altavista.net>
5648
5649 * w32term.c (expose_area): Complete last change.
5650
5651 2000-12-05 Ken Raeburn <raeburn@gnu.org>
5652
5653 * minibuf.c: Include intervals.h.
5654
5655 2000-12-05 Jason Rumney <jasonr@gnu.org>
5656
5657 * w32term.c (x_produce_glyphs): If a font for a component of
5658 a composition is not found, use 1 pixel dot ascent and 0 dot
5659 descent value to avoid displaying terribly tall empty boxes.
5660 (expose_area): Pass x-coordinate relative to the exposed
5661 area to x_draw_glyphs instead of a window-relative coordinate.
5662
5663 2000-12-05 Gerd Moellmann <gerd@gnu.org>
5664
5665 * xdisp.c (next_element_from_ellipsis): Save face before selective
5666 display in saved_face_id, and set face_before_selective_p.
5667 (reseat_1): Reset face_before_selective_p.
5668 (append_space, extend_face_to_end_of_line): If iterator's
5669 face_before_selective_p is set, use the face from saved_face_id.
5670 (extend_face_to_end_of_line): For tty frames, make sure to
5671 use the right face id when producing spaces at the end of
5672 the line.
5673
5674 * dispextern.h (struct it): Add face_before_selective_p.
5675
5676 * keyboard.c (record_char): Don't record identical help-echo
5677 events in recent_keys.
5678
5679 * xterm.c [USE_X_TOOLKIT]: Close the display.
5680 (xim_close_dpy): Handle case that the display has been closed.
5681
5682 * xterm.c (x_destroy_window): Reset the frame's X window after
5683 destroying it.
5684
5685 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
5686 variable window_width.
5687 (line_draw_cost): Fix code skipping over spaces at the end of the
5688 line when must_write_spaces is not set.
5689 (scrolling_window): Fix code inserting runs in list of all runs.
5690
5691 2000-12-05 Kenichi Handa <handa@etl.go.jp>
5692
5693 * coding.c (setup_coding_system): Be sure to initialize
5694 coding->category_idx.
5695
5696 2000-12-04 Gerd Moellmann <gerd@gnu.org>
5697
5698 * xterm.c (PER_CHAR_METRIC): Removed because not used.
5699
5700 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
5701 area to x_draw_glyphs instead of a window-relative coordinate.
5702
5703 * fileio.c (auto_save_error): Add parameter ERROR. Show the
5704 error in the message.
5705
5706 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
5707 timer after having read a key. It's not good for code reading
5708 several keys in a loop, like an input method.
5709
5710 * fileio.c (Finsert_file_contents): When VISIT is t, don't
5711 record undo information for format-decode.
5712
5713 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
5714 current buffer is read-only, not if it isn't.
5715
5716 * keyboard.c (record_char): Record `help-echo' input events
5717 in recent_keys only if they display some help. Don't record
5718 `help-echo' events as macro char.
5719
5720 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
5721
5722 * editfns.c (save_excursion_restore): Don't move point
5723 in another window if it is showing the wrong buffer.
5724 Avoid the call to Fwindow_live_p, for speed.
5725
5726 2000-12-04 Kenichi Handa <handa@etl.go.jp>
5727
5728 * xfaces.c (struct font_name): New member registry_priority.
5729 (split_font_name): Initialize the above member to zero.
5730 (concat_font_list): New function.
5731 (font_list): Include fonts of all alternative registries.
5732 (FONT_POINT_SIZE_QUANTUM): New macro.
5733 (better_font_p): Ignore point size difference less than
5734 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
5735
5736 * xterm.c (x_produce_glyphs): If a font for a component of
5737 a composition is not found, use 1 pixel dot ascent and 0 dot
5738 descent value to avoid displaying terribly tall empty boxes.
5739
5740 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
5741
5742 2000-12-03 Ken Raeburn <raeburn@gnu.org>
5743
5744 * coding.h (code_convert_string1): Declare.
5745
5746 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
5747
5748 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
5749
5750 2000-12-02 Jason Rumney <jasonr@gnu.org>
5751
5752 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
5753 correctly for single byte character case.
5754 (w32_per_char_metric): Do not try to make any assumptions about
5755 the metrics of BDF fonts.
5756 (x_estimate_mode_line_height): If `mode-line' face
5757 hasn't a font, use that of the frame, as drawing glyphs does.
5758 (note_mouse_highlight): Change the cursor shape on the vertical
5759 border between windows [not enabled].
5760
5761 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
5762
5763 * w32fns.c (Fx_create_frame): Reintroduce the call to
5764 face-set-after-frame-defaults.
5765 (Vx_window_horizontal_drag_shape): New variable.
5766 (syms_of_xfns): DEFVAR_LISP it.
5767 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
5768 enabled].
5769
5770 2000-12-02 Simon Josefsson <simon@josefsson.org>
5771
5772 * fns.c (Fmd5): Use a different logic to decide the coding system
5773 to use.
5774
5775 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
5776
5777 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
5778
5779 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
5780
5781 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5782
5783 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
5784 height for YNegative.
5785 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
5786 height; also see comment there.
5787
5788 * window.c (coordinates_in_window): Handle computations for
5789 positions on the vertical bar and fringes differently for
5790 window-system frames. Consider some pixels near the vertical bar
5791 as on the bar if the frame doesn't have vertical scroll bars.
5792 Associate positions between mode or header lines with the
5793 right window, the left one.
5794
5795 2000-12-01 Jason Rumney <jasonr@gnu.org>
5796
5797 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
5798
5799 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
5800 invalid frame.
5801
5802 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5803
5804 * window.c (struct saved_window): Add members orig_top and orig_height.
5805 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
5806 (save_window_save, Fset_window_configuration): Save/restore
5807 window's orig_top and orig_height.
5808
5809 2000-12-01 Jason Rumney <jasonr@gnu.org>
5810
5811 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
5812
5813 * w32fns.c (x_set_cursor_color): Fix last change.
5814
5815 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5816
5817 * xdisp.c (echo_area_display): If cursor is in the echo area, make
5818 sure that the next redisplay displays the minibuffer, so that
5819 the cursor will be replaced with what the minibuffer wants.
5820
5821 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
5822 #ifndef instead of using #if.
5823 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
5824 USE_TOOLKIT_SCROLL_BARS is defined.
5825
5826 2000-11-30 Jason Rumney <jasonr@gnu.org>
5827
5828 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
5829 x_display_cursor.
5830
5831 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5832
5833 * fns.c (Fmd5): Doc fix.
5834
5835 2000-11-30 Simon Josefsson <simon@josefsson.org>
5836
5837 * fns.c (Fmd5): New function.
5838 (syms_of_fns): Defsubr md5.
5839
5840 * Makefile.in (obj): Add md5.o
5841
5842 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5843
5844 * md5.h, md5.c: New files, taken from glibc.
5845
5846 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
5847
5848 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
5849 hasn't a font, use that of the frame, as drawing glyphs does.
5850
5851 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
5852
5853 * eval.c (Frun_hooks): Allow 0 arguments.
5854
5855 2000-11-29 Gerd Moellmann <gerd@gnu.org>
5856
5857 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
5858 is over the menu bar widget, say it's not on the frame.
5859
5860 * xfns.c (Fx_create_frame): Reintroduce the call to
5861 face-set-after-frame-defaults.
5862
5863 * eval.c (Fsignal): Reset handling_signal.
5864
5865 2000-11-28 Jason Rumney <jasonr@gnu.org>
5866
5867 * w32menu.c (add_menu_item): Reset menu item text when changing
5868 type to radio button.
5869
5870 2000-11-28 Gerd Moellmann <gerd@gnu.org>
5871
5872 * xselect.c: Update copyright.
5873
5874 * window.c (coordinates_in_window): If on a mode or header line,
5875 but sufficiently close to its start, return ``on vertical
5876 border''. This gives us a way to drag windows horizontally when
5877 using toolkit scroll bars.
5878
5879 * xterm.c (note_mouse_highlight): Change the cursor shape
5880 on the vertical border between windows.
5881
5882 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
5883
5884 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
5885 (syms_of_xfns): DEFVAR_LISP it.
5886 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
5887
5888 * textprop.c (text_read_only): New function.
5889 (verify_interval_modification): Use it instead of signaling
5890 `text-read-only'. This makes it easier to catch this error
5891 with a breakpoint.:
5892
5893 * xdisp.c (forward_to_next_line_start): Check for newlines,
5894 not end of line, which includes CR.
5895
5896 2000-11-28 Kenichi Handa <handa@etl.go.jp>
5897
5898 * coding.c (Ffind_coding_systems_region_internal): Be sure to
5899 include no-conversion.
5900
5901 2000-11-27 Jason Rumney <jasonr@gnu.org>
5902
5903 * w32fns.c (w32_load_system_font): Always mark font as double byte
5904 if codepage is unicode.
5905
5906 2000-11-27 Gerd Moellmann <gerd@gnu.org>
5907
5908 * xdisp.c (forward_to_next_line_start): If already on a newline,
5909 just consume it to avoid unintended skipping over invisible text below.
5910
5911 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
5912 `vertical-line', `mode-line' and `header-line' events.
5913
5914 * xdisp.c (try_window_id): Avoid starting to display in the middle
5915 of a character, a TAB for instance. This is easier than to set
5916 up the iterator exactly, and it's not a frequent case, so the
5917 additional effort wouldn't really pay off.
5918
5919 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5920
5921 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5922 init_window_once.
5923
5924 2000-11-25 Jason Rumney <jasonr@gnu.org>
5925
5926 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5927 Args to window_from_coordinates should be pixel coordinates.
5928
5929 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5930 redisplay handles them properly.
5931
5932 2000-11-25 Miles Bader <miles@gnu.org>
5933
5934 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5935
5936 2000-11-24 Jason Rumney <jasonr@gnu.org>
5937
5938 * w32.c (init_environment): Set LANG environment variable based on
5939 locale settings, if not set.
5940
5941 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5942 making tool bar smaller. When clearing the frame, also
5943 clear current matrices. Clear frame when tool bar disappears.
5944 Don't use more lines for the tool-bar than is available.
5945 (x_change_window_heights): New function.
5946
5947 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5948
5949 * xdisp.c (init_from_display_pos): If POS says we're already after
5950 an overlay string ending at POS, make sure to pop the iterator
5951 because it will be in front of that overlay string. When POS is
5952 ZV, we've thereby also ``processed'' overlay strings at ZV.
5953
5954 * xfaces.c (lface_from_face_name): Function comment fix.
5955
5956 2000-11-24 Miles Bader <miles@gnu.org>
5957
5958 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5959 apply `mode-line-inverse-video' -- zero means force display using
5960 the default face, non-zero means display using the specialized face.
5961 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5962
5963 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5964
5965 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5966 hard coded `4'.
5967
5968 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5969
5970 * coding.c (decode_coding_emacs_mule): Fix the case of
5971 CODING_EOL_LF, which used uninitialized value of c.
5972
5973 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5974
5975 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5976
5977 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5978
5979 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5980 buffer object.
5981
5982 * frame.h (struct frame): Replace desired_tool_bar_items,
5983 current_tool_bar_items, n_desired_tool_bar_items,
5984 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5985
5986 * frame.c (make_frame): Change initialization of tool bar
5987 items accordingly.
5988
5989 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5990 Change references to members deleted from struct frame to use the
5991 new ones.
5992
5993 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5994 references to members deleted from struct frame to use the new ones.
5995
5996 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5997
5998 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5999
6000 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
6001 (note_tool_bar_highlight): Change references to members deleted
6002 from struct frame to use the new ones.
6003
6004 2000-11-23 Miles Bader <miles@gnu.org>
6005
6006 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
6007 the face's inverse-video attribute, rather than overriding it.
6008
6009 2000-11-22 Gerd Moellmann <gerd@gnu.org>
6010
6011 * xfns.c (x_set_tool_bar_lines): Clear internal border when
6012 making tool bar smaller.
6013
6014 2000-11-22 Dave Love <fx@gnu.org>
6015
6016 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
6017
6018 2000-11-22 Miles Bader <miles@gnu.org>
6019
6020 * keyboard.c (Vminibuffer_message_timeout): New variable.
6021 (command_loop_1): Use it to determine message timeout.
6022 (syms_of_keyboard): Initialize it.
6023
6024 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
6025
6026 2000-11-22 Kenichi Handa <handa@etl.go.jp>
6027
6028 * sysdep.c: Move the code for declaring h_errno after #include
6029 <netdb.h>.
6030
6031 2000-11-21 Gerd Moellmann <gerd@gnu.org>
6032
6033 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
6034 the menu bar when the tooltip is unmapped.
6035
6036 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
6037 sole visible buffer when we're currently in the mini-buffer, and
6038 give up if so.
6039
6040 2000-11-21 Jason Rumney <jasonr@gnu.org>
6041
6042 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
6043 put on the clipboard.
6044 (Fw32_get_clipboard_data): Compare data on clipboard with saved
6045 copy of what Emacs last put there. If they are the same, do not
6046 use the clipboard copy to avoid losing data due to coding conversions.
6047
6048 2000-11-22 Miles Bader <miles@gnu.org>
6049
6050 * minibuf.c (Vminibuffer_prompt_properties): New variable.
6051 (syms_of_minibuf): Initialize it.
6052 (read_minibuf): Add properties from Vminibuffer_prompt_properties
6053 to prompt, don't make read-only.
6054
6055 2000-11-21 Gerd Moellmann <gerd@gnu.org>
6056
6057 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
6058 Add BEFORE/AFTER_POTENTIAL_GC.
6059
6060 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
6061
6062 * buffer.c (mmap_free_1): Avoid a compiler warning.
6063
6064 * term.c, cm.c: Don't try to include termcap.h; see comment there.
6065
6066 2000-11-21 Kenichi Handa <handa@etl.go.jp>
6067
6068 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
6069 ... #endif scope.
6070
6071 2000-11-20 Gerd Moellmann <gerd@gnu.org>
6072
6073 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
6074 screen supports it.
6075
6076 * s/gnu-linux.h: Don't use `#cpu'.
6077
6078 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
6079 not defined in mman.h.
6080
6081 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
6082 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
6083 and store an index in the XClientMessageEvent. Storing a
6084 Lisp_Object or pointer can fail on a 64 bit system, since X only
6085 transfers 32 bits.
6086 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
6087
6088 2000-11-20 Dave Love <fx@gnu.org>
6089
6090 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
6091
6092 2000-11-20 Gerd Moellmann <gerd@gnu.org>
6093
6094 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
6095
6096 2000-11-20 Kenichi Handa <handa@etl.go.jp>
6097
6098 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
6099 by WIDTH.
6100
6101 * alloc.c (make_string): Fix previous change. Be sure to make
6102 unibyte string correctly.
6103
6104 2000-11-19 Gerd Moellmann <gerd@gnu.org>
6105
6106 * window.c (Fwindow_list): Change parameter list to be XEmacs
6107 compatible.
6108 (window_list_1): New function.
6109 (window_loop): Use it instead of Fwindow_list.
6110
6111 * sysdep.c (emacs_ospeed): New variable.
6112 (toplevel): Don't declare ospeed extern.
6113 (init_baud_rate): Use emacs_ospeed instead of ospeed.
6114
6115 * termcap.c (ospeed): Remove.
6116 (tputs) [!emacs]: Remove unused code.
6117 (tgetent): Avoid a compiler warning.
6118
6119 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
6120 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
6121 SCROLL_BAR_X_WIDGET with additional argument DPY.
6122
6123 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
6124 removed.
6125 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
6126 Take the X display as additional argument.
6127 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
6128 `Widget' is a pointer type that's not easily stored in Lisp_Object
6129 form in a portable way.
6130
6131 * dispnew.c (update_text_area): Fix last change.
6132
6133 2000-11-18 Gerd Moellmann <gerd@gnu.org>
6134
6135 * xdisp.c: Use BINDING_STACK_SIZE throughout.
6136
6137 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
6138 clear current matrices.
6139
6140 * buffer.c (mmap_enlarge): Don't print a message on stderr
6141 if mapping new memory at the end of the existing region fails.
6142
6143 * dispnew.c (update_text_area): Don't skip over equal glyphs
6144 when the last current glyph overlaps the glyph to its right.
6145
6146 2000-11-18 Miles Bader <miles@gnu.org>
6147
6148 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
6149 lines that *end* with "..." too (that's the most common case!).
6150
6151 2000-11-18 Gerd Moellmann <gerd@gnu.org>
6152
6153 * xdisp.c (resize_mini_window): Temporarily change to the
6154 mini-window's buffer if necessary.
6155
6156 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
6157 the tooltip obscures less text under it.
6158
6159 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6160
6161 * puresize.h (BASE_PURESIZE): Increase to 700000.
6162
6163 2000-11-18 Jason Rumney <jasonr@gnu.org>
6164
6165 * w32term.c (w32_draw_bitmap): Use face to set colors.
6166
6167 2000-11-17 Dave Love <fx@gnu.org>
6168
6169 * lread.c (Fload): Fix #ifdef for pcc.
6170
6171 2000-11-17 Gerd Moellmann <gerd@gnu.org>
6172
6173 * xdisp.c (pos_visible_p): Compute the default character height
6174 differently.
6175
6176 2000-11-16 Gerd Moellmann <gerd@gnu.org>
6177
6178 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
6179 knowing the line's height; use the default font's height in that case.
6180
6181 * xfaces.c (weight_table): Add `demi' with the same meaning as
6182 `demibold'.
6183
6184 2000-11-16 Kenichi Handa <handa@etl.go.jp>
6185
6186 * dispnew.c (null_row): New global static variable.
6187 (clear_glyph_row): Delete local static variable null_row.
6188
6189 2000-11-15 Jason Rumney <jasonr@gnu.org>
6190
6191 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
6192 (w32_alloc_lighter_color): Use new brightness calculations from
6193 xterm.c. Scale delta to be in the range expected by W32.
6194 (w32_draw_relief_rect): Use frame relief colors.
6195
6196 2000-11-15 Gerd Moellmann <gerd@gnu.org>
6197
6198 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
6199 (Qinhibit_default_face_x_resources): New variable.
6200 (syms_of_frame): Initialize it.
6201 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
6202
6203 * xdisp.c (pos_visible_p): Improve function comment.
6204
6205 * lisp.h (BINDING_STACK_SIZE): New macro.
6206
6207 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
6208 reading the directory if readdir returns null and errno is EAGAIN
6209 or EINTR.
6210
6211 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
6212
6213 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
6214 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
6215 Set amount_to_scroll to max of dx and scroll_step so that
6216 scroll-conservatively doesn't defeat scroll-step>1.
6217 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
6218 scroll-conservatively for line-at-a-time scrolling.
6219
6220 2000-11-14 Gerd Moellmann <gerd@gnu.org>
6221
6222 * window.c (Fpos_visible_in_window_p): Call pos_visible with
6223 extra argument.
6224
6225 * xdisp.c (current_mode_line_height, current_header_line_height):
6226 New variables.
6227 (init_xdisp): Initialize them.
6228 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
6229 and use exact mode line heights if it is set.
6230
6231 * lisp.h (pos_visible_p): Change prototype.
6232
6233 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
6234 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
6235 and current_header_line_height first.
6236 (current_mode_line_height, current_header_line_height):
6237 Declare extern.
6238
6239 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
6240
6241 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
6242 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
6243 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
6244
6245 2000-11-14 Miles Bader <miles@gnu.org>
6246
6247 * xterm.c (x_alloc_lighter_color): Include an additive component
6248 too for dark colors, because FACTOR isn't enough.
6249 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
6250 New macros.
6251
6252 2000-11-13 Gerd Moellmann <gerd@gnu.org>
6253
6254 * keyboard.c (show_help_echo): Call message3_nolog with number of
6255 bytes in the help string as 2nd parameter, instead of the number
6256 of characters.
6257
6258 2000-11-13 Miles Bader <miles@gnu.org>
6259
6260 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
6261 (Fload): Use new openp return protocol.
6262 Don't try to use Vload_source_file_function to load .elc files.
6263 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
6264 openp return protocol.
6265 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
6266
6267 2000-11-11 Kenichi Handa <handa@etl.go.jp>
6268
6269 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
6270
6271 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
6272 Defined these macros.
6273 (NLIST_STRUCT): Avoid re-defining it.
6274
6275 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
6276 -I/usr/contrib/X11R6/include.
6277 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
6278
6279 2000-11-10 Jason Rumney <jasonr@gnu.org>
6280
6281 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
6282
6283 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
6284 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
6285
6286 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
6287 (Qw32_charset_vietnamese): New symbol.
6288 (xlfd_charset_of_font): New function.
6289 (w32_load_system_font): Use it.
6290 (x_to_w32_charset): Use Fassoc to find charset info. Special case
6291 when Vw32_charset_info_alist is nil to ensure default face always
6292 has font. Use Fcar and Fcdr for safety.
6293 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
6294 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
6295 pseudo-codepages for special cases.
6296 (w32_to_x_font): New parameter to allow charset portion to be
6297 specified where there is many to one mapping. Callers changed.
6298 (w32_list_fonts): Avoid listing fonts that won't display.
6299
6300 2000-11-10 Gerd Moellmann <gerd@gnu.org>
6301
6302 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
6303 (font_list_1): Renamed from font_list.
6304 (font_list): New function, trying alternative registries from
6305 Vface_alternative_font_registry_alist.
6306 (Finternal_set_alternative_font_registry_alist): New function.
6307 (syms_of_xfaces): Initialize and Staticpro
6308 Vface_alternative_font_registry_alist.
6309 Defsubr Finternal_set_alternative_font_registry_alist.
6310
6311 2000-11-09 Ken Raeburn <raeburn@gnu.org>
6312
6313 * lisp.h (Flooking_at): Declare.
6314
6315 2000-11-09 Gerd Moellmann <gerd@gnu.org>
6316
6317 * dired.c (directory_files_internal): Fix a braino.
6318
6319 * dired.c (directory_files_internal): Add missing GCPRO's.
6320 Some cleanup.
6321
6322 2000-11-08 Gerd Moellmann <gerd@gnu.org>
6323
6324 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
6325 (resize_mini_window): Return quickly if Vresize_mini_window is
6326 nil. Don't return if Vmax_mini_window_height is nil.
6327
6328 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
6329 (syms_of_xdisp): Initialize them.
6330 (resize_mini_window): Act according to the setting of
6331 Vresize_mini_window.
6332 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
6333
6334 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
6335 scroll bar widget after configuring it, so that it will appear at
6336 the right position from the start.
6337 (XTredeem_scroll_bar): Cleaned up.
6338
6339 2000-11-08 Kenichi Handa <handa@etl.go.jp>
6340
6341 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
6342 font is taller than the frame line, we don't have to bias the
6343 division by two.
6344
6345 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
6346
6347 2000-11-07 Dave Love <fx@gnu.org>
6348
6349 * config.in (HAVE_MKSTEMP): Add.
6350
6351 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
6352
6353 2000-11-07 Gerd Moellmann <gerd@gnu.org>
6354
6355 * window.c (Fset_window_configuration): Don't try to preserve
6356 point in the current buffer, if that buffer is displayed in more
6357 than one window.
6358
6359 * xfaces.c (lookup_named_face): If default face isn't realized,
6360 try to realize it. Return -1 if not successful.
6361 (Fx_list_fonts): Handle case that face cannot be determined.
6362 (Fface_font): Likewise.
6363
6364 2000-11-06 Gerd Moellmann <gerd@gnu.org>
6365
6366 * window.c (displayed_window_lines): Detect partially
6367 visible lines at the bottom correctly.
6368
6369 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
6370
6371 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
6372 when ensuring we don't do visit in indirect buffer.
6373
6374 2000-11-06 Kenichi Handa <handa@etl.go.jp>
6375
6376 * composite.h (compose_chars_in_text): Add prototype.
6377
6378 * composite.c (Vcomposition_function_table): New variable.
6379 (Qcomposition_function_table): New variable.
6380 (run_composition_function): Call
6381 Vcompose_chars_after_function with three arguments.
6382 (compose_chars_in_text): New function.
6383 (syms_of_composite): Modified the doc-string of
6384 Vcompose_chars_after_function. Declare composition-function-table
6385 as a lisp variable, and initialize it.
6386
6387 * xfns.c (x_encode_text): Suppress producing escape sequences for
6388 composition.
6389
6390 * xselect.c: Include composite.h.
6391 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
6392
6393 2000-11-05 Andrew Innes <andrewi@gnu.org>
6394
6395 * w32term.c (x_produce_glyphs): Fix typo in enum name.
6396
6397 * sysdep.c (read_input_waiting): Remove extraneous argument to
6398 read_socket_hook.
6399
6400 * w32fns.c (Fx_server_version): Include w32_build_number in the
6401 return list.
6402
6403 * w32heap.c (w32_build_number): New variable.
6404 (cache_system_info): Set it.
6405
6406 * w32heap.h (w32_build_number): Add extern.
6407
6408 * emacs.c (syms_of_emacs): Update docstring for
6409 system-configuration, to reflect the actual usage on MS-Windows.
6410
6411 2000-10-31 Gerd Moellmann <gerd@gnu.org>
6412
6413 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
6414 process idle timers while waiting for another event.
6415
6416 * dispnew.c (update_frame_line): Handle case where spaces in
6417 the default face are colored.
6418
6419 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
6420 window height hasn't changed.
6421
6422 2000-10-31 Jason Rumney <jasonr@gnu.org>
6423
6424 * w32term.c (x_produce_glyphs): Handle composite characters.
6425 (x_draw_glyph_string_foreground)
6426 (x_draw_composite_glyph_string_foreground): Restore old font.
6427
6428 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
6429
6430 * minibuf.c (read_minibuf): Reset the undo history just before
6431 starting the recursive-edit.
6432
6433 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6434
6435 * xfaces.c (menu_face_change_count): New variable.
6436 (Finternal_set_lisp_face_attribute): Increment it for changes
6437 of the `menu' face.
6438 (realize_basic_faces): Reflect changes in the `menu' faces
6439 in menu bars.
6440
6441 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
6442 dy obtained from the iterator's y-position after moving from
6443 scroll_margin_pos to PT; see comment there.
6444
6445 * xdisp.c (safe_eval_handler): Call add_to_log.
6446
6447 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
6448 is not a symbol or string.
6449
6450 * xdisp.c (echo_area_display): Don't perform a display update from
6451 inside redisplay. The update will happen anyway at the end of
6452 redisplay, and it can confuse redisplay (GC messages while
6453 redisplaying, for instance.)
6454
6455 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
6456
6457 * xrdb.c (x_load_resources): Use the class name in the defaults.
6458
6459 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
6460 (regex_compile): Catch bogus \(\1\).
6461
6462 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6463
6464 * xterm.c (x_alloc_nearest_color): Fix last change to compare
6465 RGB values.
6466
6467 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
6468 we have a color cache, check that the cached color equals the
6469 allocated color. If not, clear the color cache.
6470
6471 * window.c (displayed_window_lines): Change buffers if necessary.
6472 Fix computation of displayed lines.
6473
6474 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
6475 update_menu_bindings to DEFVAR_BOOL.
6476
6477 2000-10-30 Kenichi Handa <handa@etl.go.jp>
6478
6479 * search.c (Fset_match_data): Be sure to make search_regs always sane.
6480
6481 * puresize.h (BASE_PURESIZE): Increase to 680000.
6482
6483 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
6484
6485 2000-10-29 Jason Rumney <jasonr@gnu.org>
6486
6487 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
6488
6489 * w32term.c (w32_bdf_per_char_metric): Negate descent.
6490 (w32_cache_char_metrics): Handle possibility that 'x' does not
6491 exist in a BDF font.
6492 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
6493
6494 * w32bdf.h (bdffont): Add nchars.
6495
6496 * w32bdf.c (set_bdf_font_info): Set it.
6497 (w32_BDF_TextOut): Swap byte order of double byte characters.
6498 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
6499
6500 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
6501
6502 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
6503 don't override the colors in frame's param_alist, unless they are
6504 unspecified.
6505
6506 * term.c (reassert_line_highlight): If inverse_video is non-zero,
6507 reverse the effect of the highlight flag.
6508
6509 2000-10-27 Ken Raeburn <raeburn@gnu.org>
6510
6511 * window.h (Fwindow_live_p): Declare.
6512
6513 * undo.c (record_delete): Check that last_undo_buffer is really a
6514 buffer before applying XBUFFER to it.
6515
6516 * keymap.c (where_is_internal): Pass lisp object, not integer, to
6517 Faref.
6518
6519 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6520
6521 * lisp.h (KEYMAPP): New macro.
6522 (get_keymap): Remove.
6523 (get_keymap_1): Rename get_keymap.
6524
6525 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
6526
6527 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
6528
6529 * xmenu.c (single_submenu): Use KEYMAPP.
6530 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6531 Use KEYMAPP rather than Fkeymapp.
6532
6533 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
6534
6535 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
6536 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6537 Use KEYMAPP rather than Fkeymapp.
6538 (single_submenu): Use KEYMAPP.
6539 (w32_menu_show, w32_dialog_show): Use TRUE.
6540
6541 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
6542
6543 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
6544 (Fkeymapp): Use KEYMAPP.
6545 (get_keymap): Rename from get_keymap_1. Remove old def.
6546 Return t when autoload=0 and error=0 and the keymap needs autoloading.
6547 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
6548 (Fminor_mode_key_binding): Don't raise an error if the binding
6549 is not a keymap.
6550 (Fuse_global_map, Fuse_local_map): Allow autoloading.
6551 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
6552
6553 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
6554 Allow Vspecial_event_map to be autoloaded.
6555 (menu_bar_items): Fetch the keymap rather than using keymapp.
6556 (menu_bar_one_keymap): No need to follow func-indirect any more.
6557 (parse_menu_item): get_keymap_1 -> get_keymap.
6558 (tool_bar_items): Fetch the keymap rather than using keymapp.
6559 (read_key_sequence): Use KEYMAPP.
6560
6561 * intervals.c (get_local_map): Use get_keymap rather than following
6562 function-indirections explicitly.
6563
6564 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
6565
6566 2000-10-27 Jason Rumney <jasonr@gnu.org>
6567
6568 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
6569 point, as Windows has oversized fonts.
6570
6571 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
6572
6573 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6574
6575 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
6576 (freehook, reallochook): Handle null pointer arguments.
6577 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
6578
6579 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6580
6581 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
6582 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
6583 Giving in to popular pressure to shut up the compiler with casts.
6584
6585 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6586
6587 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
6588 signed value, and use a default value computed from the font's
6589 maximum descent.
6590
6591 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
6592
6593 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
6594 that specify a negative underline position can still use underlines.
6595
6596 * window.c (Fpos_visible_in_window_p): Make POS default to
6597 WINDOW's point, not the current buffer's point.
6598
6599 2000-10-26 Dave Love <fx@gnu.org>
6600
6601 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
6602 when it's necessary.
6603
6604 2000-10-26 Gerd Moellmann <gerd@gnu.org>
6605
6606 * window.c (size_window): Compute size difference from sum of old
6607 child window sizes instead of from parent's size.
6608
6609 * xdisp.c (pos_visible_p): Change current buffer if necessary.
6610 Handle obscured lines at the top of the window.
6611
6612 * frame.c (Fdelete_frame): Doc fix. Move running the hook
6613 down after the last error condition check.
6614
6615 * frame.c (Fdelete_frame): Run delete-frame-hook.
6616
6617 2000-10-26 Kenichi Handa <handa@etl.go.jp>
6618
6619 * coding.c (decode_coding): Fix previous change (check also
6620 CODING_MODE_LAST_BLOCK).
6621
6622 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6623
6624 * regex.c: More `unsigned char' -> `re_char' changes.
6625 Also change several `int' into `re_wchar_t'.
6626 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
6627 (PUSH_FAILURE_POINTER): Don't cast any more.
6628 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
6629 We want GCC to complain, since this piece of code makes
6630 re_match non-reentrant, which *should* be fixed.
6631 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
6632 (EXTEND_BUFFER): Use RETALLOC.
6633 (SET_LIST_BIT): Don't cast.
6634 (re_wchar_t): New type.
6635 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
6636 that those two functions will always properly return.
6637 (IMMEDIATE_QUIT_CHECK): Cast to void.
6638 (analyse_first): Use recursion rather than an explicit stack.
6639 (re_compile_fastmap): Can't fail anymore.
6640 (re_search_2): Don't check re_compile_fastmap for failure.
6641 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
6642 Now also sets the new value (passed in a new argument).
6643 (re_match_2_internal): Use it.
6644 Also, use a new var `reg' of type size_t when looping through regs
6645 rather than reuse the inappropriate `mcnt'.
6646
6647 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
6648 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
6649 (where_is_internal): Renamed from Fwhere_is_internal.
6650 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
6651 (Fwhere_is_internal): New function wrapping where_is_internal.
6652 (where_is_internal_1): Handle the case where we're filling the cache.
6653 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
6654
6655 2000-10-25 Miles Bader <miles@gnu.org>
6656
6657 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
6658
6659 2000-10-25 Gerd Moellmann <gerd@gnu.org>
6660
6661 * window.c (pos_fully_visible_p): Removed.
6662 (Fpos_visible_in_window_p): Use pos_visible_p to determine
6663 if position is visible and/or fully visible.
6664
6665 * lisp.h (pos_visible_p): Add prototype.
6666
6667 * xdisp.c (pos_visible_p): New function.
6668
6669 2000-10-25 Kenichi Handa <handa@etl.go.jp>
6670
6671 * process.c (send_process): If OBJECT is t, it means that the data
6672 is from C string, but we should encode it. Before calling
6673 setup_raw_text_coding_system, be sure to flush out data by the
6674 previous coding system.
6675
6676 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
6677
6678 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
6679 assignment of startpos to prev when startpos == pos.
6680
6681 * editfns.c (find_field): Set the field stickiness correctly from
6682 overlay fields. Use renamed `text_property_stickiness'.
6683 (text_property_stickiness): Renamed from `char_property_stickiness'.
6684 Only check text properties, not overlays.
6685 * textprop.c (get_char_property_and_overlay): New function.
6686 (Fget_char_property): Use it.
6687 * intervals.h (get_char_property_and_overlay): Add declaration.
6688
6689 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6690
6691 * keymap.c: Use AREF, ASET and ASIZE macros.
6692 (Fmake_sparse_keymap): Docstring fix.
6693 (synkey): Remove.
6694 (shadow_lookup): Move up.
6695 Handle the case where lookup-key returns an integer.
6696 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
6697 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
6698 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
6699 Simplify/rewrite the keymap-finding code.
6700 Add check for command shadowing, using shadow_lookup.
6701
6702 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
6703
6704 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
6705 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
6706 a symbol.
6707
6708 2000-10-24 Andrew Innes <andrewi@gnu.org>
6709
6710 * dired.c (directory_files_internal_unwind): New function.
6711 (directory_files_internal): Use it to ensure closedir is called
6712 even if expand-file-name or file-attributes throw, eg. because of
6713 a user interrupt. Also enable immediate_quit while calling
6714 re_search, so that matching can be interrupted as well.
6715
6716 2000-10-24 Andrew Innes <andrewi@gnu.org>
6717
6718 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
6719 NT-Emacs only.
6720 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
6721 so that re_search functions only quit when callers expect them to.
6722
6723 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6724
6725 * regex.c (regex_compile): Change the way of handling a range from
6726 a char less than 256 to a char not less than 256.
6727
6728 2000-10-24 Gerd Moellmann <gerd@gnu.org>
6729
6730 * window.c (size_window): Prevent setting window's width or
6731 height to a negative value (esp. with XSETFASTINT).
6732
6733 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
6734 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
6735 (protect_malloc_state) [GC_MALLOC_CHECK &&
6736 GC_PROTECT_MALLOC_STATE]: New function.
6737 (PROTECT_MALLOC_STATE): New macro.
6738 (__malloc_initialize, morecore, _malloc_internal)
6739 (_free_internal) _realloc_internal): Use it to make _heapinfo
6740 read-only outside of gmalloc.
6741
6742 * keymap.c: Update copyright.
6743
6744 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
6745 a symbol.
6746
6747 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
6748
6749 * filelock.c (unlock_all_files): Use unlock_file to expand each
6750 buffer's file_truename before trying remove its lock file.
6751
6752 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
6753
6754 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
6755 or CRLF, decode EOLs.
6756
6757 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6758
6759 * window.c (Fdisplay_buffer): Fix doc.
6760
6761 2000-10-23 Jason Rumney <jasonr@gnu.org>
6762
6763 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
6764 ASCII font of default fontset on Windows.
6765
6766 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
6767 xterm.c comment below).
6768
6769 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
6770
6771 2000-10-23 Gerd Moellmann <gerd@gnu.org>
6772
6773 * xterm.c (x_connection_closed): Reset handling_signal.
6774
6775 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
6776
6777 2000-10-23 Miles Bader <miles@gnu.org>
6778
6779 * window.c (window_scroll_pixel_based, window_scroll_line_based):
6780 Pass nil for FULLY argument to Fpos_visible_in_window_p to
6781 maintain old behavior.
6782 * minibuf.c (Fminibuffer_complete): Likewise.
6783
6784 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
6785
6786 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
6787 that when a font can't be exactly centered, it errs up rather than
6788 down.
6789
6790 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
6791
6792 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
6793
6794 2000-10-23 Andrew Choi <akochoi@i-cable.com>
6795
6796 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
6797
6798 * dispnew.c [macintosh]: Include macterm.h.
6799 (init_display) [macintosh]: Initialization for window system.
6800
6801 * emacs.c (main) [macintosh]: Call syms_of_textprop,
6802 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
6803 syms_of_search, x_term_init, and init_keyboard before calling
6804 init_window_once. Also, call syms_of_xmenu.
6805
6806 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
6807 default fontset to Monaco.
6808
6809 * frame.c [macintosh]: Include macterm.h. Remove declarations of
6810 NewMacWindow and DisposeMacWindow.
6811 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
6812 instead of calling NewMacWindow and setting fields of
6813 f->output_data.mac directly. Call init_frame_faces.
6814 (Fdelete_frame) [macintosh]: Remove unused code.
6815 (Fmodify_frame_parameters) [macintosh]: Call
6816 x_set_frame_parameters instead of mac_set_frame_parameters.
6817
6818 * frame.h [macintosh]: Define menu_bar_lines field in struct
6819 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
6820
6821 * keyboard.c [macintosh]: Include macterm.h.
6822 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
6823 and menu_bar_activate_event type events as for X and NT.
6824 (make_lispy_event) [macintosh]: Construct lisp events of type
6825 MENU_BAR_EVENT as for X and NT.
6826
6827 * sysdep.c [macintosh]: Remove declaration for sys_signal.
6828 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
6829 (sys_subshell) [macintosh]: Remove definition entirely.
6830 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
6831 Vwindow_system_version here. Remove initialization of
6832 Vx_bitmap_file_path.
6833 (read_input_waiting): Correct the number of parameters passed to
6834 read_socket_hook.
6835 Move all Macintosh functions to mac/mac.c.
6836
6837 * term.c [macintosh]: Include macterm.h.
6838
6839 * window.c [macintosh]: Include macterm.h.
6840
6841 * xdisp.c [macintosh]: Include macterm.h. Declare
6842 set_frame_menubar and pending_menu_activation.
6843 (echo_area_display) [macintosh]: Do not return if terminal frame
6844 is the selected frame.
6845 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
6846 Allow only the selected frame to set menu bar.
6847 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
6848 calling FRAME_EXTERNAL_MENU_BAR (f).
6849 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
6850
6851 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
6852 and check_x. Declare XCreateGC. Define x_create_gc and
6853 x_free_gc. Initialize font_sort_order.
6854 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
6855 but call x_list_fonts instead of w32_list_fonts.
6856 (Finternal_face_x_get_resource) [macintosh]: Do not call
6857 display_x_get_resource.
6858 (prepare_face_for_display) [macintosh]: Set xgcv.font.
6859 (realize_x_face) [macintosh]: Load the font if it is specified in
6860 ATTRS.
6861 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
6862
6863 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
6864
6865 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
6866 is nil: since we go to the end of submap anyway, we'd end up
6867 setting nil to nil.
6868 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
6869 doesn't obey autoload.
6870
6871 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6872
6873 * msdos.c (dos_set_window_size): Update screen dimension variables.
6874
6875 2000-10-21 Jason Rumney <jasonr@gnu.org>
6876
6877 * w32term.c (w32_cache_char_metrics): Double check that font is
6878 really fixed pitch before trusting tmPitchAndFamily.
6879
6880 2000-10-21 Andrew Innes <andrewi@gnu.org>
6881
6882 * w32gui.h (w32_char_font_type): Move enum from w32term.c
6883
6884 * w32term.h: Extern decl for w32_cache_char_metrics.
6885
6886 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
6887
6888 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
6889 (w32_unload_font): Free per_char array if present.
6890
6891 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
6892 cached information in emulated XFontStruct to handle common cases
6893 quickly. Do not allocate XCharStruct for return.
6894 (w32_native_per_char_metric): New function.
6895 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
6896 allocating one.
6897 (x_produce_glyphs): Don't get an HDC. Change calls to
6898 w32_per_char_metric to match arg change above. Remove calls to
6899 free results.
6900 (w32_get_glyph_overhangs): Ditto.
6901 (w32_cache_char_metrics): New function.
6902
6903 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
6904 ($(BLD)/casefiddle.$(O)): Remove compile command.
6905 ($(BLD)/gmalloc.$(O)): Remove compile command.
6906 ($(BLD)/dispnew.obj):
6907 ($(BLD)/keyboard.obj):
6908 ($(BLD)/w32inevt.obj):
6909 ($(BLD)/w32bdf.obj):
6910 ($(BLD)/alloc.obj):
6911 ($(BLD)/buffer.obj):
6912 ($(BLD)/editfns.obj):
6913 ($(BLD)/emacs.obj):
6914 ($(BLD)/fileio.obj):
6915 ($(BLD)/fns.obj):
6916 ($(BLD)/indent.obj):
6917 ($(BLD)/insdel.obj):
6918 ($(BLD)/intervals.obj):
6919 ($(BLD)/minibuf.obj):
6920 ($(BLD)/print.obj):
6921 ($(BLD)/scroll.obj):
6922 ($(BLD)/sysdep.obj):
6923 ($(BLD)/textprop.obj):
6924 ($(BLD)/widget.obj):
6925 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
6926 ($(BLD)/term.obj): Add dependency on dispextern.h.
6927
6928 * makefile.nt ($(BLD)\dispnew.obj):
6929 ($(BLD)\keyboard.obj):
6930 ($(BLD)\w32inevt.obj):
6931 ($(BLD)\w32bdf.obj):
6932 ($(BLD)\alloc.obj):
6933 ($(BLD)\buffer.obj):
6934 ($(BLD)\editfns.obj):
6935 ($(BLD)\emacs.obj):
6936 ($(BLD)\fileio.obj):
6937 ($(BLD)\fns.obj):
6938 ($(BLD)\indent.obj):
6939 ($(BLD)\insdel.obj):
6940 ($(BLD)\intervals.obj):
6941 ($(BLD)\minibuf.obj):
6942 ($(BLD)\print.obj):
6943 ($(BLD)\scroll.obj):
6944 ($(BLD)\sysdep.obj):
6945 ($(BLD)\textprop.obj):
6946 ($(BLD)\widget.obj):
6947 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6948 ($(BLD)\term.obj): Add dependency on dispextern.h
6949
6950 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6951
6952 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6953 with an additional argument of Qt.
6954
6955 2000-10-21 Miles Bader <miles@gnu.org>
6956
6957 * window.c (pos_fully_visible_in_window_p): New function.
6958 (Fpos_visible_in_window_p): Add FULLY argument.
6959 Use pos_fully_visible_in_window_p.
6960 (window_scroll_pixel_based, window_scroll_line_based): Update
6961 calls to Fpos_visible_in_window_p.
6962 * lisp.h (Fpos_visible_in_window_p): Update prototype
6963
6964 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6965
6966 * alloc.c (toplevel): Conditionalize compilation of mem_*
6967 functions differently.
6968
6969 2000-10-20 Jason Rumney <jasonr@gnu.org>
6970
6971 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6972 mem_init where it used to be. mem_z etc not defined otherwise.
6973
6974 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6975
6976 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6977 GC_MALLOC_CHECK.
6978 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6979 structure definition and related variabled to the top of the file.
6980 Include this code when GC_MALLOC_CHECK is defined.
6981 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6982 register/unregister allocated region.
6983 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6984 which isn't allocated.
6985 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6986 something which is already in use.
6987 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6988 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6989 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6990 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6991
6992 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6993 _malloc_internal instead of malloc.
6994 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6995 of free.
6996
6997 2000-10-20 Andrew Innes <andrewi@gnu.org>
6998
6999 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
7000 Windows.
7001 (my_strftime) <macro>: Don't use macro arg list when redefining as
7002 _strftime_copytm.
7003 (my_strftime) <function>: Supply 0 as ut argument.
7004
7005 2000-10-19 Jason Rumney <jasonr@altavista.net>
7006
7007 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
7008 including dispextern.h, as it stops faces from working.
7009
7010 * w32fns.c (Fx_create_frame): Don't bother calling
7011 face-set-after-frame-default since the caller does it for us
7012 anyway. Clean up calls to x_get_arg to be consistent with X.
7013
7014 * w32term.c (x_produce_glyphs): Handle
7015 unibyte_display_via_language_environment correctly.
7016 (w32_draw_box_rect): Fix the calculation of width and height.
7017
7018 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
7019 as it has stopped working.
7020 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
7021 menu-bar.
7022
7023 2000-10-19 Gerd Moellmann <gerd@gnu.org>
7024
7025 * eval.c (skip_debugger): Prevent a compiler warning.
7026 (Fcondition_case): Likewise.
7027 (Fbacktrace_frame): Use a null interactive spec.
7028
7029 2000-10-19 Kenichi Handa <handa@etl.go.jp>
7030
7031 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
7032
7033 2000-10-18 Gerd Moellmann <gerd@gnu.org>
7034
7035 * strftime.c: Sync with glibc, file version 1.78.
7036 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
7037 should no longer be used according to ISO 8601.
7038
7039 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
7040 no map for meta_prefix_char, don't try to use it as a keymap.
7041 Instead, if T_OK is non-zero, look up a default binding, if any,
7042 otherwise, if T_OK is zero, return nil.
7043
7044 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
7045 (x_to_xcolors, png_load): Use x_query_color.
7046
7047 * xterm.c (x_color_cells, x_query_colors, x_query_color):
7048 New functions.
7049 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
7050 which can be slow.
7051 (x_copy_color, x_alloc_lighter_color): Likewise.
7052
7053 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
7054 (x_query_color, x_query_colors): Add prototype.
7055
7056 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
7057 check_string_bytes only if not noninteractive, increase count to 50.
7058
7059 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
7060
7061 * insdel.c (adjust_markers_for_delete): Handle before-insertion
7062 markers correctly.
7063
7064 2000-10-17 Gerd Moellmann <gerd@gnu.org>
7065
7066 * alloc.c (pure_bytes_used): Renamed from pureptr.
7067 (ALIGN): New macro.
7068 (pure_alloc): New function.
7069 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
7070 Use it.
7071 (Fpurecopy): Use PURE_POINTER_P.
7072
7073 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
7074 PT has moved backward.
7075
7076 * xdisp.c (cursor_row_p): Take continued lines into account.
7077
7078 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
7079 string's size_byte.
7080 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
7081 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
7082 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
7083 string allocated.
7084
7085 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
7086 of selective display off while searching for the next line start.
7087
7088 2000-10-17 Kenichi Handa <handa@etl.go.jp>
7089
7090 * Makefile.in (term.o): Depend on dispextern.h.
7091
7092 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
7093
7094 * keymap.c (keymap_memberp): Ensure that nil is not a member.
7095
7096 2000-10-16 Gerd Moellmann <gerd@gnu.org>
7097
7098 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
7099 the iterator at the beginning, so that they can be set later on,
7100 for instance in reseat_at_next_visible_line_start, without being
7101 overwritten.
7102
7103 * xfns.c (pbm_format): Add :foreground and :background keywords.
7104 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
7105 (xbm_load): Recognize foreground and background color specifications.
7106
7107 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
7108
7109 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
7110
7111 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
7112
7113 * msdos.c (IT_set_face): Compare highlighted face with the default
7114 face, and invert colors if these faces' colors are identical.
7115 (Fmsdos_remember_default_colors): Don't swap foreground and
7116 background colors in initial_colors[].
7117 (IT_set_frame_parameters): Don't swap frame's foreground and
7118 background pixels. If ALIST includes "(reverse . t)", swap
7119 foreground-color and background-color properties in frame's
7120 param_alist. If the original frame's param_alist doesn't specify
7121 the colors, store unspecified-fg and unspecified-bg, reversed if
7122 required.
7123
7124 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
7125 the colors are unspecified and reversed, reverse fore- and back-
7126 ground in the returned value.
7127 (Fframe_parameter): Ditto.
7128
7129 2000-10-16 Gerd Moellmann <gerd@gnu.org>
7130
7131 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
7132 get_last_unchanged_at_beg_row.
7133 (find_first_unchanged_at_end_row): Renamed from
7134 get_first_unchanged_at_end_row.
7135 (find_first_unchanged_at_end_row): Convert assertions to
7136 unconditional tests which abort. When looking for a row in
7137 unchanged text, don't go further back than first_text_row.
7138
7139 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
7140 Don't add in the last line's height when deciding if the new
7141 position is below the scroll margin.
7142
7143 2000-10-16 Miles Bader <miles@gnu.org>
7144
7145 * editfns.c (Fconstrain_to_field): Check carefully for field
7146 boundaries if either OLD_POS or NEW_POS has a non-nil field
7147 property, even if they're the same.
7148
7149 2000-10-16 Kenichi Handa <handa@etl.go.jp>
7150
7151 * xterm.c (x_draw_box_rect): Fix the calculation of width and
7152 height for XFillRectangle.
7153
7154 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
7155
7156 * syntax.c (Fstring_to_syntax): New function extracted from
7157 Fmodify_syntax_entry.
7158 (Fmodify_syntax_entry): Use it and document the ! and | fences.
7159 (skip_chars, Fforward_comment): Remove unused variables.
7160 (syms_of_syntax): Add defsubr for string-to-syntax.
7161 (describe_syntax): Add code for comment and string fences.
7162
7163 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
7164
7165 * keymap.c (access_keymap): Add AUTOLOAD parameter.
7166 Do the meta->esc mapping. Call get_keyelt before returning.
7167 Start scanning from the second element (the first is always `keymap')
7168 to make it easier to detect when we reach a parent map.
7169 Handle the case of inheriting from a symbol whose function is a map.
7170 (Fkeymap_parent): Also handle the `inherit from symbol' case.
7171 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
7172 (get_keyelt, Flookup_key): Update call to access_keymap.
7173 Remove the meta->esc mappings.
7174 (define_as_prefix): Delete old disabled code.
7175 (menu_item_p): New function.
7176 (where_is_internal_1): Skip over the few remaining menu items.
7177 * lisp.h (access_keymap): Update prototype.
7178 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
7179 Update call to access_keymap.
7180 (follow_key, read_key_sequence): Update calls to access_keymap.
7181 Remove the meta->esc mappings.
7182
7183 2000-10-13 Gerd Moellmann <gerd@gnu.org>
7184
7185 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
7186 with additional argument.
7187
7188 * xdisp.c (cursor_row_p): New function.
7189 (try_cursor_movement, display_line): Use it.
7190
7191 * xdisp.c (append_space): Also save/restore iterator's current
7192 character and its length.
7193
7194 * xdisp.c (init_from_display_pos): Add an assertion.
7195 (handle_stop): Don't set iterator's add_overlay_start.
7196 (handle_invisible_prop): Likewise.
7197 (load_overlay_strings): If text under an overlay is invisible,
7198 take both before- and after-strings into account when the iterator
7199 is positioned either at the start or at the end of the overlay.
7200 (forward_to_next_line_start): Rewritten.
7201 (reseat_at_next_visible_line_start): Rewritten.
7202 (set_iterator_to_next): Add parameter RESEAT_P.
7203
7204 * dispextern.h (struct it): Remove member add_overlay_start.
7205 (set_iterator_to_next): Change prototype.
7206
7207 2000-10-13 Kenichi Handa <handa@etl.go.jp>
7208
7209 * coding.c (code_convert_region): Be sure to initialize
7210 coding->category_idx.
7211 (decode_coding_string): Set coding->src_multibyte and
7212 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
7213 (encode_coding_string): Set coding->src_multibyte and
7214 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
7215
7216 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
7217
7218 * xfns.c (Fx_create_frame): Don't bother calling
7219 face-set-after-frame-default since the caller does it for us anyway.
7220
7221 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
7222
7223 * window.c (coordinates_in_window): Fix detection of vertical line
7224 on character terminals.
7225
7226 2000-10-12 Gerd Moellmann <gerd@gnu.org>
7227
7228 * editfns.c (save_excursion_save): Additionally record the
7229 selected window.
7230 (save_excursion_restore): If buffer was visible in a window, and a
7231 different window was selected, and the old selected window is
7232 still live, restore point in that window.
7233
7234 2000-10-12 Kenichi Handa <handa@etl.go.jp>
7235
7236 * xterm.c (x_produce_glyphs): Handle
7237 unibyte_display_via_language_environment correctly.
7238
7239 * regex.c (regex_compile): Change the way of handling a range from
7240 unibyte char to multibyte char.
7241
7242 * syntax.c (skip_chars): Change the way of handling a range from
7243 unibyte char to multibyte char.
7244
7245 * process.c (read_process_output): Cancel previous change.
7246
7247 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
7248
7249 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
7250
7251 * charset.c (Ffind_charset_string): Doc fix.
7252 (Ffind_charset_region): Doc fix.
7253
7254 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
7255
7256 * process.c (read_process_output): Fix previous change. Adjust
7257 multibyteness of text to insert in a buffer by
7258 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
7259
7260 2000-10-10 Andreas Schwab <schwab@suse.de>
7261
7262 * alloc.c (mark_object): Remove all workarounds installed on
7263 1993-08-08.
7264
7265 2000-10-10 Kenichi Handa <handa@etl.go.jp>
7266
7267 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
7268 (base64_encode_1): Make it work for a text of multibyte form.
7269 (Fbase64_decode_region): Allocate sufficient memory for multibyte
7270 case. Don't call str_to_multibyte because base64_decode_1
7271 produces correct multibyte form for eight-bit codes.
7272 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
7273 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
7274 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
7275 codes.
7276
7277 * charset.h (CHAR_STRING): Optimized for single byte characters.
7278
7279 2000-10-09 Andreas Schwab <schwab@suse.de>
7280
7281 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
7282 -1 after socket is closed, to fall through to error processing.
7283
7284 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
7285
7286 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
7287 variables. If ALIST includes foreground-color or
7288 background-color, change also the colors of the default face for
7289 this frame.
7290
7291 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
7292
7293 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
7294 them extern (they are defined on xfaces.c).
7295 (syms_of_msdos): Don't intern and don't staticpro
7296 Qbackground_color and Qforeground_color.
7297
7298 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
7299
7300 * frame.c (Fframe_parameter): For non-windowed frames, if
7301 f->param_alist says foreground or background color is unspecified,
7302 call tty_color_name to return the color name computed from the
7303 frame's current colors.
7304
7305 2000-10-06 Dave Love <fx@gnu.org>
7306
7307 * terminfo.c (ospeed): Don't declare.
7308
7309 * sysdep.c: Don't include string.h.
7310 (h_errno): Declare conditional also on TRY_AGAIN.
7311
7312 * charset.c (Ffind_charset_string): Doc fix.
7313
7314 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
7315 (Fbase64_decode_region, Fbase64_decode_string): More explicit
7316 error messages.
7317
7318 2000-10-05 Dave Love <fx@gnu.org>
7319
7320 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
7321 position like menu-bar.
7322
7323 2000-10-05 Gerd Moellmann <gerd@gnu.org>
7324
7325 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
7326
7327 * xdisp.c (handle_single_display_prop): Use safe_call1.
7328 (safe_call): Renamed from call_function.
7329 (safe_call1): New function.
7330 (handle_fontified_prop): Use safe_call1 instead of call1.
7331 (safe_eval): Renamed from eval_form.
7332 (safe_eval_handler): Renamed from eval_handler.
7333 (handle_single_display_prop, display_mode_element): Use safe_eval
7334 instead of eval_form.
7335
7336 * xfaces.c (merge_face_heights): Use safe_call instead of
7337 call_function.
7338
7339 * keyboard.c (show_help_echo): Use safe_call instead of
7340 call_function; use safe_eval instead of eval_form.
7341
7342 * lisp.h (safe_call): Renamed from call_function.
7343 (safe_eval): Renamed from eval_form.
7344 (safe_call1): Add prototype.
7345
7346 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
7347
7348 * xfns.c (image_ascent): Rearrange ascent calculation for the
7349 has-a-font case.
7350
7351 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
7352
7353 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
7354 (where_is_internal_1): Don't bother ignoring menu-items any more.
7355
7356 2000-10-04 Gerd Moellmann <gerd@gnu.org>
7357
7358 * keyboard.c (update_menu_bindings): New variable.
7359 (parse_menu_item): Use AREF. If update_menu_bindings
7360 is 0, don't update menu bindings.
7361 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
7362
7363 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
7364
7365 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
7366 to `mark_object'.
7367
7368 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
7369
7370 * syntax.c (forw_comment): Match nestedness of ender/starter.
7371 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
7372 (prev_char_comstart_first): Remove.
7373 (back_comment): Check two-char comment markers more carefully
7374 to better handle overlapping cases like *//* or /* */* */ ...
7375 Match nestedness of ender/starter.
7376
7377 2000-10-02 Dave Love <fx@gnu.org>
7378
7379 * config.in (HAVE_GAI_STRERROR): Add undef.
7380
7381 * process.c (Fopen_network_stream): Use it.
7382
7383 * m/alpha.h (NO_REMAP): Don't define.
7384
7385 2000-10-02 Gerd Moellmann <gerd@gnu.org>
7386
7387 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
7388 return with a string converted to an integer or vice versa when
7389 Vmocklisp_arguments is t.
7390 (Fsignal): Likewise. The function can return for `quit'.
7391 (struct gcpro): Declare member `var' to point to a volatile
7392 Lisp_Object.
7393
7394 * eval.c (error): Prevent compiler warning.
7395
7396 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
7397
7398 * keymap.c (keymap_memberp): New function.
7399 (Fset_keymap_parent): Use it.
7400 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
7401 Use keymap_memberp to avoid creating cycles.
7402 (access_keymap): Use KEYMAPP.
7403
7404 2000-09-30 Gerd Moellmann <gerd@gnu.org>
7405
7406 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
7407 gai_strerror. Make sure xerrno is set if connect fails. Improve
7408 error recovery.
7409
7410 2000-09-29 Jason Rumney <jasonr@gnu.org>
7411
7412 * w32term.c (w32_char_font_type, w32_encode_char)
7413 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
7414 (w32_bdf_per_char_metric): New function.
7415 (w32_per_char_metric): Use it.
7416 (x_draw_glyph_string_background): Always draw background for BDF
7417 glyphs.
7418
7419 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
7420 GDI object which is a scarce resource.
7421
7422 * w32bdf.c (search_file_line): Fix skipping of whitespace.
7423 (get_quoted_string): Fix limit on memchr search.
7424 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
7425 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
7426 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
7427 (get_cached_font_char, cache_char_offset): Use macro
7428 BDF_CODEPOINT_RANGE_COVER_P.
7429 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
7430 (clear_cached_bitmap_slots): New function.
7431 (GET_HEX_VALUE): G-Z, g-z are not hex.
7432 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
7433 (get_bitmap_with_cache): Use new cache implementation.
7434 (create_offscreen_bitmap): New function.
7435 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
7436
7437 * w32term.c (x_produce_glyphs): If the distance from the current
7438 position to the next tab stop is less than a canonical character
7439 width, use the tab stop after that.
7440 (x_draw_glyphs): Handle case START and END are out of bounds more
7441 carefully.
7442 (x_clear_mouse_face): Block/unblock input.
7443 (x_display_and_set_cursor): Don't show a hollow box cursor for
7444 buffers whose cursor_type is nil.
7445
7446 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7447
7448 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
7449
7450 * dispextern.h (updating_frame): Declare extern.
7451
7452 2000-09-29 Andreas Schwab <schwab@suse.de>
7453
7454 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
7455
7456 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7457
7458 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
7459 use its function definition.
7460 (tool_bar_items): Likewise.
7461
7462 * lisp.h (fatal): Declare NO_RETURN.
7463
7464 2000-09-29 Kenichi Handa <handa@etl.go.jp>
7465
7466 * keymap.c: Remove the line "#undef NULL".
7467
7468 2000-09-28 Gerd Moellmann <gerd@gnu.org>
7469
7470 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
7471
7472 2000-09-28 Dave Love <fx@gnu.org>
7473
7474 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
7475
7476 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
7477
7478 * .gdbinit (xreload): Note its need on GNU/Linux.
7479
7480 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
7481 r_alloc, r_alloc_free.
7482
7483 2000-09-28 Kenichi Handa <handa@etl.go.jp>
7484
7485 * syntax.c (skip_chars): Handle negation correctly.
7486
7487 2000-09-27 Gerd Moellmann <gerd@gnu.org>
7488
7489 * xfaces.c (realize_default_face): Call set_lface_from_font_name
7490 with non-zero FORCE_P argument.
7491
7492 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
7493 Add assertions.
7494
7495 * xdisp.c (window_box_height): Add an assertion.
7496
7497 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
7498 tool-bar than is available.
7499 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
7500
7501 2000-09-27 Dave Love <fx@gnu.org>
7502
7503 * s/irix6-5.h: Now works 64-bit. Tidied.
7504
7505 2000-09-26 Gerd Moellmann <gerd@gnu.org>
7506
7507 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
7508 instead of BITS_PER_INT.
7509 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
7510 EMACS_UINT, respectively.
7511 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
7512
7513 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
7514
7515 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
7516
7517 * window.c (freeze_window_starts): Construct last argument for
7518 foreach_window differently.
7519
7520 * xfns.c (x_decode_color): Don't return a Lisp_Object.
7521
7522 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
7523 EMACS_UINT instead of `int' and `unsigned int'.
7524 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
7525
7526 * frame.h (struct frame): Make the `nothing' member of union
7527 output_data an EMACS_INT.
7528
7529 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
7530 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
7531 size in the sdata structure.
7532 (SDATA_NBYTES, SDATA_DATA): New macros.
7533 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
7534 differently for the different layout of the sdata structure.
7535 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
7536 in sdata.
7537 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
7538 Check that size recorded in the string size and size recorded in
7539 the sdata structure agree.
7540
7541 2000-09-25 Dave Love <fx@gnu.org>
7542
7543 * buffer.c: Include stdio.h.
7544
7545 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
7546
7547 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
7548
7549 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
7550 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
7551 (__malloc_extra_blocks): Declare as __malloc_size_t.
7552
7553 2000-09-25 Gerd Moellmann <gerd@gnu.org>
7554
7555 * alloc.c (mark_image): Use GC_NILP instead of NILP.
7556
7557 * keyboard.c (show_help_echo): Set help_echo_showing_p.
7558 (read_char): If help-echo is showing, preserve the echo area
7559 when redisplaying.
7560
7561 * xdisp.c (help_echo_showing_p): New variable.
7562 (set_message): Reset it to 0.
7563 (init_xdisp): Initialize help_echo_showing_p.
7564
7565 * dispextern.h (help_echo_showing_p): Declare extern.
7566
7567 * config.in: Fix typo in __GNUC_MINOR__.
7568
7569 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
7570
7571 * s/freebsd.h (POSIX_SIGNALS): Define.
7572
7573 * xterm.c (x_clear_mouse_face): Block/unblock input.
7574
7575 2000-09-24 Dave Love <fx@gnu.org>
7576
7577 * fns.c (base64_encode_1): Fix last change.
7578
7579 2000-09-22 Gerd Moellmann <gerd@gnu.org>
7580
7581 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
7582
7583 * xdisp.c (try_window_reusing_current_matrix): More fixes
7584 for the case window has a header-line.
7585
7586 2000-09-22 Dave Love <fx@gnu.org>
7587
7588 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
7589 a doc string.
7590
7591 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
7592
7593 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
7594
7595 2000-09-21 Gerd Moellmann <gerd@gnu.org>
7596
7597 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
7598 for GCC >= 2.5.
7599
7600 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
7601 Declare NO_RETURN.
7602
7603 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
7604 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
7605 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
7606 warnings.
7607
7608 * marker.c (byte_char_debug_check): Return void.
7609
7610 * xfns.c (Fx_create_frame): Set default frame parameter value
7611 for tool-bar-lines to 1.
7612
7613 * dispnew.c (scrolling_window): Compare y-positions of rows
7614 equal at the start. Some simplification.
7615
7616 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
7617 reused rows' y-position in the case window has a header-line, and
7618 new window start is greater than old window start.
7619
7620 * process.c (process_sent_to): New variable.
7621 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
7622 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
7623 Declare more parameters volatile.
7624
7625 * lread.c (Vrecursive_load_depth_limit): New variable.
7626 (Fload): Check recursive loads whose recursion depth exceeds
7627 Vrecursive_load_depth_limit.
7628 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
7629
7630 2000-09-20 Gerd Moellmann <gerd@gnu.org>
7631
7632 * fileio.c (Fread_file_name): Doc fix.
7633
7634 * editfns.c (Fmessage_or_box): Doc fix.
7635
7636 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
7637
7638 * xfns.c (xbm_scan): Allow C-style comments.
7639
7640 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
7641 symbols are specified, add color translations to the cache.
7642 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
7643 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
7644 xpm_cache_color.
7645 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
7646 structures to xpm_init_color_cache.
7647
7648 2000-09-19 Gerd Moellmann <gerd@gnu.org>
7649
7650 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
7651
7652 2000-09-19 Andrew Innes <andrewi@gnu.org>
7653
7654 * makefile.nt (bootstrap-emacs): Don't change directory.
7655
7656 2000-09-19 Kenichi Handa <handa@etl.go.jp>
7657
7658 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
7659
7660 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
7661 If output buffer is too small, signal an appropriated error.
7662
7663 2000-09-18 Dave Love <fx@gnu.org>
7664
7665 * keyboard.c (menu_bar_items, tool_bar_items)
7666 (current_active_maps): Remove redundant get_local_map call.
7667
7668 2000-09-18 Gerd Moellmann <gerd@gnu.org>
7669
7670 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
7671 cursor for buffers whose cursor_type is nil.
7672
7673 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
7674 a feature to implement that is already implemented.
7675 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
7676 warnings.
7677
7678 * xfns.c (x_clear_image_1): New function.
7679 (x_clear_image): Use it.
7680 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
7681
7682 * dispnew.c (update_window): Move test for invisible lines
7683 at the top to update_window_line.
7684 (update_window_line): Handle invisible lines here.
7685
7686 * xfns.c (clear_image_cache): Clear current matrices of all
7687 frames sharing an image cache. Block input while freeing
7688 images. Fix timestamp comparison.
7689 (x_clear_image): Also free the mask.
7690
7691 * xfns.c (lookup_image): Block input while loading the image so
7692 that we won't get interrupted in a state where the image isn't yet
7693 set up completely.
7694 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
7695 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
7696 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
7697 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
7698
7699 2000-09-16 Gerd Moellmann <gerd@gnu.org>
7700
7701 * dispnew.c (update_window): Make sure to make desired rows
7702 current even if they are completely invisible at the top
7703 of a window.
7704
7705 2000-09-15 Gerd Moellmann <gerd@gnu.org>
7706
7707 * xfns.c (lookup_image): Build mask before applying an algorithm.
7708 Recognize algorithm `disabled'.
7709 (cross_disabled_images): New variable.
7710 (COLOR_INTENSITY): New macro.
7711 (x_detect_edges): Use COLOR_INTENSITY.
7712 (x_disable_image): New function.
7713 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
7714
7715 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
7716 disabled state, don't apply an image transformation algorithm if
7717 the user specified an image for the disabled state. Use
7718 `:algorithm disabled' for creating a disabled item's image if the
7719 user hasn't specified an image.
7720
7721 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
7722 allocation functions with the XPM lib.
7723 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
7724 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
7725 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
7726 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
7727 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
7728 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
7729 functions, if possible, because these handle color allocation
7730 failure more gracefully.
7731 (Fimage_mask_p): New function.
7732
7733 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
7734 (Qedge_detection, Qheuristic): New symbols.
7735 (syms_of_xfns): Initialize new symbols.
7736 (lookup_image): Handle `:mask X', `:algorithm emboss', and
7737 `algorithm (edge-detection ...)'.
7738 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
7739 (tiff_format, gif_format, gs_format): Add `:mask'.
7740 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
7741 (GIF_MASK, GS_MASK): New enumerators.
7742 (x_laplace_read_row, x_laplace_write_row): Functions removed.
7743 (emboss_matrix, laplace_matrix): New variables.
7744 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
7745 (x_edge_detection): New functions.
7746 (x_laplace): Rewritten in terms of x_detect_edges.
7747 (x_build_heuristic_mask): If image has a mask, free it.
7748
7749 2000-09-14 Andrew Innes <andrewi@gnu.org>
7750
7751 * makefile.w32-in: Revert to Unix line endings.
7752
7753 2000-09-14 Andrew Innes <andrewi@gnu.org>
7754
7755 * makefile.w32-in: Standardize indentation somewhat.
7756 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
7757 cater for differences between shells.
7758
7759 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
7760
7761 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7762
7763 * xterm.c (x_produce_glyphs): If the distance from the current
7764 position to the next tab stop is less than a canonical character
7765 width, use the tab stop after that.
7766
7767 2000-09-14 Dave Love <fx@gnu.org>
7768
7769 * buffer.c (alloc_buffer_text): Fix xmalloc call.
7770
7771 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7772
7773 * xdisp.c (handle_fontified_prop): While running fontification
7774 functions, bind `fontification-functions' and
7775 `after-change-functions' to nil.
7776
7777 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
7778 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
7779
7780 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
7781
7782 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
7783 USE_MMAP_FOR_BUFFERS.
7784
7785 * insdel.c (make_gap): Use enlarge_buffer_text.
7786
7787 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
7788 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
7789 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
7790 from former r_alloc_* functions in ralloc.c.
7791 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
7792 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
7793 (mmap_init) [REL_ALLOC_MMAP]: New function.
7794 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
7795 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
7796 BUFFER_FREE.
7797
7798 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
7799 (enlarge_buffer_text): Add prototype.
7800
7801 * ralloc.c: Remove everything having to do with the use of mmap.
7802
7803 2000-09-13 Gerd Moellmann <gerd@gnu.org>
7804
7805 * sound.c (Fplay_sound): Doc fix.
7806
7807 * keyboard.c: Avoid some more compiler warnings.
7808 (parse_tool_bar_item): Ignore cached key bindings.
7809
7810 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
7811 and allocation of Lisp data.
7812
7813 2000-09-12 Gerd Moellmann <gerd@gnu.org>
7814
7815 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
7816 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
7817 defaults first.
7818
7819 * lread.c (Fload): Put code checking for recursive loads in #if 0.
7820
7821 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
7822
7823 * ccl.c: Comment fixed.
7824 (MAX_MAP_SET_LEVEL): Increased to 30.
7825 (PUSH_MAPPING_STACK): Enclose with do-while block.
7826 (POP_MAPPING_STACK): Likewise.
7827 (stack_idx_of_map_multiple): New variable.
7828 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
7829 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
7830 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
7831 (ccl_driver) <CCL_MapSingle>: Likewise.
7832 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
7833 with the case where looking up process reaches to the end of
7834 map-set, and call CCL programs as the above change.
7835
7836 2000-09-11 Gerd Moellmann <gerd@gnu.org>
7837
7838 * xfns.c (png_load, jpeg_load): Declare some variables volatile
7839 that might be clobbered by longjmp.
7840 (check_x_display_info, x_decode_color, create_frame_xic)
7841 (Fx_display_backing_store, Fx_display_visual_class)
7842 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
7843
7844 * lread.c (init_lread): Set Vloads_in_progress to nil.
7845 (Fload): Show list of recursively loaded files, when signaling an
7846 error.
7847
7848 * lread.c (Vloads_in_progress): New variable.
7849 (record_load_unwind): New function.
7850 (Fload): Check for recursive loads.
7851 (syms_of_lread): Initialize Vloads_in_progress.
7852 (read_integer, read1): Avoid some compiler warnings.
7853
7854 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
7855 compiler warnings.
7856
7857 2000-09-11 Miles Bader <miles@gnu.org>
7858
7859 * editfns.c (Fbuffer_string): Doc fix.
7860
7861 2000-09-10 Gerd Moellmann <gerd@gnu.org>
7862
7863 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
7864
7865 2000-09-09 Ken Raeburn <raeburn@gnu.org>
7866
7867 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
7868 whether to include other header files.
7869
7870 2000-09-09 Gerd Moellmann <gerd@gnu.org>
7871
7872 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
7873 by Fmemq as a boolean.
7874
7875 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
7876
7877 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
7878
7879 2000-09-08 Gerd Moellmann <gerd@gnu.org>
7880
7881 * ralloc.c (mmap_fd): Remove initializer which can make it
7882 read-only in a dumped Emacs.
7883 (mmap_fd_1): New variable.
7884 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
7885 restore it from there.
7886 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
7887 unconditionally so that mmap_fd can be initialized there.
7888 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
7889 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
7890 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
7891
7892 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
7893
7894 * xdisp.c (dump_glyph_row): Fix printf format string.
7895 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
7896
7897 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
7898
7899 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
7900 inheritance.
7901
7902 * xdisp.c (try_window_id): When trying to locate cursor in
7903 unchanged rows at the top, handle the case that we can't find it.
7904
7905 * xterm.c (x_draw_glyphs): Handle case START and END are out
7906 of bounds more carefully.
7907
7908 2000-09-08 Dave Love <fx@gnu.org>
7909
7910 * s/sol2.h (REL_ALLOC_MMAP): Define.
7911 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
7912
7913 * ralloc.c: Don't include string.h (redundant).
7914 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
7915 [!MAP_ANON]: Include fcntl.h.
7916 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7917 (r_alloc, r_re_alloc, r_alloc_free)
7918 (mmap_enlarge, mmap_set_vars): Use it.
7919 (r_alloc_init_fd): New function.
7920 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7921 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7922 malloc type.
7923
7924 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7925 Remove vm-limit.o.
7926
7927 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7928 change to __NetBSD__.
7929
7930 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7931
7932 * search.c (compile_pattern): Check the multibyteness of cached
7933 string and PATTERN.
7934
7935 2000-09-08 Miles Bader <miles@gnu.org>
7936
7937 * xfaces.c (default_face_vector): Function removed.
7938 (Finternal_merge_in_global_face): Restore old global/local
7939 attribute override order. Use inline loop instead of calling
7940 default_face_vector.
7941
7942 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7943
7944 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7945 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7946 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7947 where necessary, in case POINTER_TYPE is `void'.
7948
7949 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7950
7951 * frame.c (make_terminal_frame): Initialize frame foreground and
7952 background colors to unspecified, for the initial instance of an
7953 MSDOS frame.
7954
7955 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7956
7957 * ralloc.c (mmap_find): Fix overlap computation.
7958 (mmap_enlarge): Compute nbytes before trying to find an
7959 overlapping region.
7960
7961 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7962 instead of `!='.
7963
7964 * lread.c (syms_of_lread): Change value of regexp
7965 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7966
7967 * xmenu.c (xdialog_show): When looking up the selection in
7968 menu_items, take `quote' boundaries into account; this corresponds
7969 to a nil ITEM in x-popup-dialog.
7970
7971 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7972
7973 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7974 not 0x81.
7975 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7976
7977 * coding.c (encode_coding_sjis_big5): Use translation table for
7978 encoding, not decoding. Fix the handling of latin-jisx0201.
7979 Check for the charset katakana-jisx0201 too.
7980 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7981 (detect_coding_sjis): Check the byte sequence more rigidly.
7982
7983 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7984
7985 * xfaces.c (Vparam_value_alist): New variable.
7986 (syms_of_xfaces): Initialize it.
7987 (Finternal_set_lisp_face_attribute): Avoid more consing.
7988
7989 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7990 specially.
7991 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7992 (Qbackground_mode): New variable.
7993 (syms_of_frame_1): Initialize Qbackground_mode.
7994
7995 * lisp.h (Qdisplay): Declare extern.
7996
7997 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7998 change face on all frames, and change the default for new frames.
7999
8000 2000-09-07 Dave Love <fx@gnu.org>
8001
8002 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
8003
8004 2000-09-07 Kenichi Handa <handa@etl.go.jp>
8005
8006 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
8007
8008 * charset.c: Include composite.h
8009 (lisp_string_width): New function.
8010 (Fstring_width): Call lisp_string_width instead of strwidth.
8011
8012 * Makefile.in (charset.o): Depends on composite.h.
8013
8014 * process.c (read_process_output): Before inserting the decoded
8015 text in the buffer, adjust the multibyteness.
8016
8017 2000-09-06 Gerd Moellmann <gerd@gnu.org>
8018
8019 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
8020 buffer's text buffer is null, map new memory.
8021
8022 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
8023 POINTER_TYPE and size_t.
8024 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
8025 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
8026 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
8027 [REL_ALLOC_MMAP]: New macros.
8028 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
8029 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
8030 [REL_ALLOC_MMAP]: New functions.
8031
8032 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
8033 before and after unexec.
8034
8035 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
8036 text buffers if necessary.
8037
8038 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
8039 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
8040 in prototypes.
8041
8042 * config.in (HAVE_MMAP): Add #undef.
8043
8044 2000-09-05 Gerd Moellmann <gerd@gnu.org>
8045
8046 * frame.c (Qdisplay_type): New variable.
8047 (syms_of_frame_1): Initialize it.
8048 (Fframe_parameter): New function that avoids consing.
8049 (syms_of_frame): Defsubr it.
8050
8051 * buffer.c (Fother_buffer): Consider buffers as invisible when
8052 they are displayed in a window on an invisible frame.
8053
8054 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
8055 get-largest-window always return nil.
8056
8057 2000-09-04 Gerd Moellmann <gerd@gnu.org>
8058
8059 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
8060 variable; recognize Emacs 19 elc files.
8061
8062 2000-09-04 Miles Bader <miles@gnu.org>
8063
8064 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
8065 before initially popping up the menu, so the menu doesn't flash
8066 when the face settings are significantly different from the defaults.
8067
8068 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
8069
8070 * regex.c (WIDE_CHAR_SUPPORT): New macro.
8071 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
8072 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
8073 (BIT_UNIBYTE): Remove.
8074 (re_match_2_internal): Delete corresponding code and streamline the
8075 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
8076 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
8077 (re_wctype_t): New type.
8078 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
8079 (regex_compile): Use them and fix handling of overly long char classes.
8080
8081 2000-09-03 Andrew Innes <andrewi@gnu.org>
8082
8083 * makefile.w32-in: Change to DOS line endings.
8084
8085 * s/ms-w32.h (ORDINARY_LINK): New define.
8086
8087 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
8088 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
8089
8090 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
8091 (distclean): Delete them here instead.
8092
8093 * w32proc.c (compare_env): Convert to uppercase for comparison,
8094 not lowercase, to match how the native Windows shell works.
8095
8096 2000-09-03 Jason Rumney <jasonr@gnu.org>
8097
8098 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
8099 CVS changes the line-ends when checking in/out on DOS/Windows.
8100
8101 * makefile.nt (emacs): Do not change directory to run temacs, as
8102 the load-path is set relative to current directory.
8103
8104 2000-09-03 Miles Bader <miles@gnu.org>
8105
8106 * xterm.c (x_alloc_lighter_color_for_widget): New function.
8107
8108 2000-09-02 Gerd Moellmann <gerd@gnu.org>
8109
8110 * xdisp.c (redisplay_mode_lines): New function.
8111 (display_mode_lines): Return number of mode lines displayed.
8112 (echo_area_display): Use redisplay_mode_lines to draw garbaged
8113 mode lines. Don't temporarily bind redisplay-dont-pause to t.
8114
8115 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
8116 string.h and strings.h.
8117 (index) [HAVE_INDEX]: Add prototype.
8118
8119 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
8120 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
8121
8122 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
8123 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
8124
8125 2000-09-01 Gerd Moellmann <gerd@gnu.org>
8126
8127 * lread.c (read1): Accept `?' as symbol constituent, for
8128 compatiblity with XEmacs.
8129
8130 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
8131
8132 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
8133 (struct re_pattern_buffer): Remove newline_anchor.
8134 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
8135 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
8136 (re_max_failures, fail_stack): Use size_t rather than unsigned.
8137 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
8138 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
8139 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
8140 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
8141 Get rid of references to newline_anchor.
8142 (regcomp): Allocate and precompute a fastmap.
8143
8144 2000-08-31 Gerd Moellmann <gerd@gnu.org>
8145
8146 * lread.c (openp): GCPRO local variable `filename'.
8147
8148 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
8149
8150 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
8151
8152 * regex.c: Merge some changes from GNU libc. Add prototypes.
8153 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
8154 Use memcmp and memcpy instead of bcopy and bcmp.
8155 (init_syntax_once): Use ISALNUM.
8156 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
8157 (REG_UNSET_VALUE): Remove. Use NULL instead.
8158 (REG_UNSET, re_match_2_internal): Use NULL.
8159 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
8160 New macros.
8161 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
8162 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
8163 (regex_compile): In handle_interval, return an error rather than try to
8164 unfetch the interval if we can't find the closing brace.
8165 Obey the RE_NO_GNU_OPS syntax bit.
8166 (TOLOWER): New macro.
8167 (regcomp): Use it.
8168 (regexec): Allocate regs.start and regs.end as one block.
8169
8170 2000-08-30 Gerd Moellmann <gerd@gnu.org>
8171
8172 * xdisp.c (echo_area_display): Check display_completed instead
8173 of calling detect_input_pending.
8174
8175 * dispnew.c (update_frame): Only set display_completed here; move
8176 the update_begin and update_end calls here from update_frame_1.
8177 (update_frame_1): Don't set display_completed here, don't call
8178 update_begin/update_end.
8179
8180 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
8181 instead of store_frame_param.
8182
8183 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8184
8185 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
8186 desired window matrix hasn't been displayed, use the current row
8187 instead. Make sure that only those frame rows are updated for
8188 which there exists a corresponding enabled desired row.
8189
8190 2000-08-29 Miles Bader <miles@gnu.org>
8191
8192 * xfaces.c (default_face_vector): New function.
8193 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
8194
8195 2000-08-29 Gerd Moellmann <gerd@gnu.org>
8196
8197 * lread.c (openp): Prevent temporary string passed to
8198 Ffile_readable_p from being garbage collected.
8199
8200 2000-08-28 Dave Love <fx@gnu.org>
8201
8202 * keymap.c (store_in_keymap): Add `static' to declaration.
8203
8204 2000-08-28 Gerd Moellmann <gerd@gnu.org>
8205
8206 * emacs.c, callint.c, doc.c, editfns.c
8207 (toplevel) [HAVE_STRING_H]: Include string.h.
8208 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
8209 (index): Remove prototypes which might conflict with non-standard
8210 definitions of index/strchr.
8211
8212 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
8213 (rindex): Define only if !HAVE_RINDEX.
8214
8215 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
8216
8217 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
8218
8219 2000-08-28 Miles Bader <miles@gnu.org>
8220
8221 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
8222 made inconsistent by a font-related attribute in FROM.
8223 (merge_face_inheritance): Add function comment.
8224
8225 2000-08-28 Kenichi Handa <handa@etl.go.jp>
8226
8227 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
8228 the 4th arg (PREV_EVENT) Qt to suppress input method.
8229
8230 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
8231
8232 * regex.c: Indent cpp directives and remove parens after `defined'.
8233 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
8234 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
8235 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
8236 (re_compile_pattern): Use size_t for length.
8237 (init_syntax_once): Move to a better place.
8238 * regex.h: Merge changes from GNU libc. Indent cpp directives.
8239 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
8240
8241 * syntax.c (back_comment): Detect cases where a comment-starter is
8242 actually inside another comment as in: /* a // b */ c // d \n.
8243 Make it clear that `comstart_pos' is unused for nested comments.
8244
8245 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
8246 (KEYMAPP): New macro.
8247 (Fkeymap_parent, Fset_keymap_parent): Use it.
8248 (fix_submap_inheritance): Mark it static.
8249 (define_as_prefix, describe_buffer_bindings, describe_command)
8250 (describe_translation, describe_map): Complete prototypes.
8251
8252 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
8253
8254 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
8255 to better match the key-lookup behavior.
8256
8257 2000-08-27 Gerd Moellmann <gerd@gnu.org>
8258
8259 * xfaces.c (lface_fully_specified_p): Handle :inherit.
8260 (Finternal_set_lisp_face_attribute): Fix typo in error message.
8261
8262 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
8263
8264 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
8265 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
8266 (xterm.o): Depend on coding.h
8267
8268 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8269
8270 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
8271 the corresponding '#endif'.
8272
8273 2000-08-26 Miles Bader <miles@gnu.org>
8274
8275 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
8276 * xfaces.c (QCinherit): New variable.
8277 (syms_of_xfaces): Initialize it.
8278 (LFACE_INHERIT): New macro.
8279 (Finternal_get_lisp_face_attribute)
8280 (merge_face_vector_with_property)
8281 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
8282 (check_lface_attrs): Allow new types of face height. Check
8283 inherit attribute.
8284 (CYCLE_CHECK): New macro.
8285 (merge_face_inheritance): New function.
8286 (merge_face_vectors): Merge inherited faces too. Add F and
8287 CYCLE_CHECK arguments.
8288 (merge_face_vector_with_property, Finternal_merge_in_global_face)
8289 (lookup_named_face, lookup_derived_face, realize_named_face)
8290 (face_at_string_position, face_at_buffer_position): Supply
8291 new F and CYCLE_CHECK arguments to merge_face_vectors.
8292 (merge_face_heights): New function.
8293 (merge_face_vectors, merge_face_vector_with_property)
8294 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
8295 handle relative face heights.
8296 (lface_same_font_attributes_p): Compare heights using EQ.
8297
8298 2000-08-26 Kenichi Handa <handa@etl.go.jp>
8299
8300 * charset.c (char_to_string): Check the character validity.
8301 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
8302
8303 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
8304
8305 * regex.c (PUSH_FAILURE_COUNT): New macro.
8306 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
8307 Handle popping of a register's or a counter's data.
8308 (POP_FAILURE_POINT): Use the new name.
8309 (re_match_2_internal): Push counter data on the stack for succeed_n,
8310 jump_n and set_number_at and remove misleading dead code in succeed_n.
8311
8312 2000-08-25 Gerd Moellmann <gerd@gnu.org>
8313
8314 * xdisp.c (redisplay_internal): If considering all windows on all
8315 frames, update the display for each frame as soon as possible,
8316 instead of first building all desired matrices for all frames, and
8317 then updating them all.
8318 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
8319
8320 2000-08-24 Gerd Moellmann <gerd@gnu.org>
8321
8322 * bytecode.c (mark_byte_stack): Add a comment.
8323
8324 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
8325 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
8326 a graphical frame.
8327
8328 2000-08-24 Kenichi Handa <handa@etl.go.jp>
8329
8330 * minibuf.c (do_completion): Always use compare-string, not
8331 string-equal because the latter doesn't pay attention to
8332 multibyteness of strings.
8333
8334 * process.c (create_process): Don't setup raw-text coding here.
8335 (Fopen_network_stream): Don't set coding->src_multibyte and
8336 coding->dst_multibyte here.
8337 (read_process_output): For process filter, return unibyte string
8338 if default-enable-multibyte-characters is nil.
8339 (send_process): If OBJECT is multibyte text, be sure to encoded it
8340 by the specified coding system for the process. Otherwise, setup
8341 raw-text coding.
8342 (init_process): Don't initialize default-process-coding-system here.
8343
8344 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
8345
8346 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
8347 <scroll-down-aggressively>: Likewise.
8348
8349 2000-08-23 Kenichi Handa <handa@etl.go.jp>
8350
8351 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
8352 zero. Set coding->produced_char correctly.
8353
8354 2000-08-22 Andrew Innes <andrewi@gnu.org>
8355
8356 * makefile.w32-in: New file.
8357
8358 * unexw32.c (unexec): Ignore old_name, and use the actual location
8359 of the current executable instead. Base new_name on this.
8360
8361 * w32proc.c (create_child): Remove reference to security
8362 descriptor, which isn't needed and doesn't compile with mingw32.
8363
8364 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8365 up dllimport attributes.
8366 (x_update_window_end): Update prototype.
8367
8368 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
8369 extern, which screws up dllimport attributes.
8370
8371 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8372 up dllimport attributes.
8373
8374 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
8375 screws up dllimport attributes.
8376
8377 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8378 up dllimport attributes.
8379 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
8380 screws up dllimport attributes.
8381
8382 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8383 up dllimport attributes.
8384
8385 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
8386 screws up dllimport attributes.
8387
8388 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
8389 screws up dllimport attributes.
8390
8391 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8392 up dllimport attributes.
8393
8394 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
8395 unnecessary extern, which screws up dllimport attributes.
8396 (main): Ditto.
8397
8398 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8399 up dllimport attributes.
8400
8401 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
8402 unnecessary extern, which screws up dllimport attributes.
8403
8404 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
8405 screws up dllimport attributes.
8406
8407 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8408 up dllimport attributes.
8409
8410 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
8411
8412 * w32bdf.c (search_file_line):
8413 (set_bdf_font_info):
8414 (seek_char):
8415 (w32_get_bdf_glyph):
8416 (w32_BDF_to_x_font): Fix compile warnings.
8417
8418 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
8419
8420 * w32select.c: Include keyboard.h before frame.h.
8421
8422 * w32fns.c (max): Define macro.
8423 (JOHAB_CHARSET): Define if not known.
8424 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
8425 (Fx_show_tip): Synch with X version.
8426
8427 * w32xfns.c: Include keyboard.h before frame.h.
8428
8429 * w32fns.c: Include keyboard.h before frame.h.
8430
8431 * w32term.c: Include keyboard.h before frame.h.
8432
8433 * fontset.c: Include keyboard.h before frame.h.
8434
8435 * w32inevt.c: Include keyboard.h before frame.h.
8436 (MOUSE_MOVED): Define if not known.
8437
8438 * minibuf.c: Include keyboard.h before frame.h.
8439
8440 * keyboard.c: Include keyboard.h before frame.h.
8441
8442 * indent.c: Include keyboard.h before frame.h.
8443
8444 * dispnew.c: Include keyboard.h before frame.h.
8445
8446 * buffer.c: Include keyboard.h before frame.h.
8447
8448 * alloc.c: Include keyboard.h before frame.h.
8449
8450 * print.c: Include keyboard.h before frame.h.
8451
8452 * process.c: Include keyboard.h before frame.h.
8453
8454 * scroll.c: Include keyboard.h before frame.h.
8455
8456 * sysdep.c: Include keyboard.h before frame.h.
8457
8458 * term.c: Include keyboard.h before frame.h.
8459
8460 * window.c: Include keyboard.h before frame.h.
8461
8462 * xdisp.c: Include keyboard.h before frame.h.
8463 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
8464
8465 * frame.c: Include keyboard.h before frame.h.
8466
8467 * w32heap.h: Undefine min, max.
8468
8469 * w32gui.h: Undefine min, max.
8470
8471 * unexw32.c: Change PUCHAR to PCHAR.
8472 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
8473 (relocate_offset):
8474 (get_section_info):
8475 (copy_executable_and_dump_data): Remove unnecessary static defs.
8476 (copy_executable_and_dump_data): Fix compile warnings.
8477
8478 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
8479
8480 * w32console.c (min): Define macro.
8481 (clear_frame, write_glyphs): Fix compile warning.
8482
8483 * w32proc.c (compare_env):
8484 (find_child_console): Fix compile warning.
8485
8486 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
8487 sys_errlist instead of _sys_errlist.
8488 (get_emacs_configuration_options): New function.
8489
8490 * s/ms-w32.h (sys_nerr): Provide default definition.
8491 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
8492 name with _ prepended.
8493 (NSIG): Define if not known.
8494 (get_emacs_configuration): Provide extern declaration.
8495 (get_emacs_configuration_options): Provide extern declaration.
8496 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
8497
8498 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
8499 (map_w32_filename):
8500 (read_unc_volume): Fix compile warning.
8501
8502 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
8503 definitions from being used.
8504
8505 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
8506
8507 * w32.c (unc_volume_file_attributes):
8508 (open_unc_volume): Make arg const.
8509
8510 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
8511 (read_input_waiting): Remove excess parameter.
8512
8513 * w32.c (init_environment): Call _access.
8514 (check_windows_init_file): Call _close.
8515 (init_user_info): Call _putenv.
8516 (init_environment): Call _putenv and _strdup.
8517 (init_ntproc): Reset volume info cache on startup.
8518
8519 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
8520 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
8521 cannot override the CRT malloc.
8522
8523 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
8524 (LINK_FLAGS): Append to original value of LINK_FLAGS.
8525
8526 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
8527 unless we are linking with a static CRT.
8528 (RVA_TO_PTR): Cast result to unsigned char*.
8529
8530 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
8531 (add_volume_info): Use xstrdup.
8532
8533 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
8534
8535 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
8536 (do_completion, Fminibuffer_complete_word): Use it.
8537 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
8538 var so it can take non-boolean values.
8539
8540 2000-08-21 Gerd Moellmann <gerd@gnu.org>
8541
8542 * editfns.c (find_field): Formatting changes.
8543 (toplevel): Some old-style function forward declarations
8544 changed to prototypes, some new protypes added, some functions
8545 made static.
8546
8547 * lisp.h (set_time_zone_rule): Add prototype.
8548 (use_dialog_box): External declaration.
8549
8550 * keyboard.c (gen_help_event): Add parameter SIZE.
8551 (kbd_buffer_events_waiting): Slightly rewritten.
8552 (clear_event): New function.
8553 (kbd_buffer_get_event): Use it, and clear the input_events of
8554 HELP_EVENTs.
8555 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
8556 don't fill the newly created array with nils.
8557 (toplevel): Convert some old-style function forward declarations
8558 to prototypes.
8559
8560 * keyboard.h (gen_help_event): Change prototype.
8561
8562 * xterm.c (XTread_socket): Change calls to gen_help_event.
8563
8564 * w32term.c (w32_read_socket): Change calls to gen_help_event.
8565
8566 * eval.c (Fmacroexpand): Doc fix.
8567
8568 2000-08-20 Jason Rumney <jasonr@gnu.org>
8569
8570 * w32term.h (x_display_info_for_display): Remove as this function
8571 does not exist on W32.
8572
8573 * w32term.c (help_echo_window): New variable.
8574 (syms_of_w32term): staticpro it.
8575 (note_mode_line_highlight): Set it.
8576 (XTextExtents16): Removed as there is no equivalent on W32.
8577 (x_compute_glyph_string_overhangs): Incomplete body removed, as
8578 the X way of doing this will not work for W32.
8579 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
8580 (x_draw_image_foreground): Avoid drawing outside of the clip area
8581 when image doesn't have a mask.
8582 (note_mouse_highlight): Process overlays in the right order of
8583 priority. Set help_echo_window.
8584 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
8585 because that's more visible for large images.
8586
8587 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
8588 name to single_keymap_panes.
8589 (w32_menu_show): Set wv->title when dealing with titles.
8590 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
8591
8592 2000-08-21 Miles Bader <miles@gnu.org>
8593
8594 * minibuf.c (do_completion): Try again if we rewrite the input
8595 string, but no completion was done, so that any completion message
8596 will be correct.
8597
8598 2000-08-20 Gerd Moellmann <gerd@gnu.org>
8599
8600 * xfaces.c (lface_equal_p): Compare strings differently.
8601 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
8602 (realize_tty_face): Use them.
8603 (syms_of_xfaces): Initialize new variables.
8604 (map_tty_color): New function, extracted from realize_tty_face.
8605 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
8606 foreground or background color, store the new color name in the
8607 realized face; previous code trying to do this had no effect.
8608 (realize_tty_face): Use map_tty_color.
8609 (Fclear_face_cache): Set face_change_count and ensure thorough
8610 redisplay.
8611
8612 2000-08-19 Gerd Moellmann <gerd@gnu.org>
8613
8614 * undo.c (record_first_change, record_marker_adjustment): Don't
8615 use XBUFFER on last_undo_buffer which might not be a buffer.
8616
8617 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8618
8619 * coding.c (decode_coding_string): Set members consumed,
8620 consumed_char, produced, produced_char of *coding correctly. If
8621 decode_coding doesn't consume any byte, don't try anymore.
8622 (encode_coding_string): Likewise.
8623
8624 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8625
8626 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
8627 conditional have void type, for Standard C compilers.
8628
8629 * xdisp.c (redisplay_internal): Compare windows for equality with
8630 EQ, instead of applying XWINDOW to something that might not
8631 be a window.
8632
8633 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8634
8635 * fontset.c (Finternal_char_font): Search only the selected frame
8636 for a window of the current buffer.
8637
8638 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8639
8640 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
8641 Lisp_Objects.
8642
8643 * keyboard.c (kbd_buffer_get_event): Handle the case that the
8644 second half of a HELP_EVENT is found at the start of kbd_buffer.
8645
8646 2000-08-18 Miles Bader <miles@gnu.org>
8647
8648 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
8649
8650 * editfns.c (save_restriction_save): Rewrite to use markers.
8651 (save_restriction_restore): Rewrite to understand new form of data
8652 saved by save_restriction_save.
8653 (Fsave_restriction): Remove cautionary note in doc-string.
8654
8655 2000-08-17 Gerd Moellmann <gerd@gnu.org>
8656
8657 * fileio.c (build_annotations): Add a comment explaining the
8658 return value of format-annotate-function. Replace a spurious call
8659 to Flength with a CONSP test. Call format-annotate-function with
8660 a fifth arg specifying how many times the function is been called
8661 in a row, to let it choose temporary buffers appropriately.
8662
8663 2000-08-17 Dave Love <fx@gnu.org>
8664
8665 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
8666 declare make_temp_name twice.
8667
8668 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
8669 (unreadpure): Give it an arg.
8670
8671 * unexalpha.c: Prototype fatal_unexec, mark_x,
8672 update_dynamic_symbols. Declare unexec as void.
8673
8674 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
8675 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
8676
8677 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
8678 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
8679
8680 * alloca.c: Use #error.
8681 [POINTER_TYPE]: Use it.
8682
8683 * eval.c (Fdefvar): Doc fix.
8684
8685 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
8686 INITIALIZE_INTERVAL.
8687
8688 * buffer.h: Avoid DECLARE_INTERVALS.
8689
8690 * config.in: Add size_t.
8691
8692 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
8693
8694 * w16select.c (set_clipboard_data): If there's not enough memory
8695 to put text into clipboard, return 1, as Fw16_set_clipboard_data
8696 expects. In case of other failures, return 3.
8697 (system_error_msg): New error message.
8698 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
8699 system_error_msg.
8700
8701 2000-08-16 Gerd Moellmann <gerd@gnu.org>
8702
8703 * term.c (write_glyphs): Also turn off inverse video after turning
8704 off other appearances in case TS_exit_attribute_mode is not equal
8705 to TS_end_standout_mode.
8706 (insert_glyphs): Turn inverse video on/off for each run of glyphs
8707 with the same face.
8708 (turn_off_face): Reset standout_mode only if
8709 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
8710 is equal to TS_end_standout_mode.
8711
8712 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8713
8714 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
8715 sequence at the end of the source block.
8716
8717 * ccl.c (Fccl_program_p): Docstring modified.
8718 (Fccl_execute): Likewise.
8719 (Fccl_execute_on_string): Likewise.
8720
8721 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
8722
8723 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
8724
8725 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8726
8727 The following changes are mainly to fix bugs of
8728 encode/decode-coding-string failing if encoding/decoding return
8729 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
8730 variable conversion_buffer.
8731
8732 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
8733 decrement dst_end to avoid buffer overflow in the later call of
8734 string_as_multibyte
8735
8736 * coding.h (conversion_buffer_size, conversion_buffer)
8737 (get_conversion_buffer): Extern deleted.
8738
8739 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
8740 (conversion_buffer, conversion_buffer_size): Variables deleted.
8741 (get_conversion_buffer): Function deleted.
8742 (struct conversion_buffer): New structure.
8743 (MAX_ALLOCA): New macro.
8744 (allocate_conversion_buffer): New macro.
8745 (extend_conversion_buffer, free_conversion_buffer): New functions.
8746 (ccl_coding_driver): Set coding->result.
8747 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
8748 this is the last block of source.
8749 (encode_coding): Likewise. Handle the source block as the last
8750 one only when the whole source text is consumed.
8751 (decode_coding_string): Handle the case that the output buffer is
8752 too small to decode the whole source text. Use
8753 allocate_conversion_buffer, extend_conversion_buffer and
8754 free_conversion_buffer, not get_conversion_buffer.
8755 (encode_coding_string): Likewise.
8756 (init_coding): Function deleted.
8757 (init_coding_once): Delete code to initialize conversion_buffer_size.
8758
8759 * emacs.c (main): Don't call init_coding.
8760
8761 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
8762
8763 * term.c (write_glyphs): Use a locally declared conversion_buffer.
8764 (insert_glyphs): Likewise.
8765
8766 * w32console.c (write_glyphs): Use a locally declared
8767 conversion_buffer.
8768
8769 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
8770
8771 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
8772 member of display_info is NULL.
8773
8774 2000-08-15 Gerd Moellmann <gerd@gnu.org>
8775
8776 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
8777
8778 * term.c (turn_off_face): Reset standout_mode when resetting
8779 appearances with capability `me'.
8780 (write_glyphs): Switch on inverse video before each face change.
8781
8782 2000-08-14 Dave Love <fx@gnu.org>
8783
8784 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
8785 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
8786 (lisp_free): Declare and make static.
8787
8788 * window.c: Fix embedded comment.
8789 (syms_of_window): Fix doc string.
8790
8791 2000-08-14 Gerd Moellmann <gerd@gnu.org>
8792
8793 * keymap.c (push_key_description): If C without modifiers is < 32,
8794 make sure to print `C-' before `M-', like in the manual.
8795
8796 2000-08-11 Gerd Moellmann <gerd@gnu.org>
8797
8798 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
8799 since they aren't relocated anymore.
8800 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
8801
8802 * xdisp.c (try_cursor_movement): Fix handling of cursor in
8803 partially visible line which is smaller than the window's height.
8804
8805 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8806
8807 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
8808 the multibyte form of eight-bit-control characters.
8809 (Fccl_execute_on_string): Initialize ccl->multibyte.
8810
8811 * ccl.h (struct ccl_program): New member multibyte.
8812
8813 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
8814
8815 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8816
8817 * regex.c (regex_compile) <normal_char>: Pay attention to
8818 multibyteness.
8819 (analyse_first) <exactn>: Setup fastmap correctly for
8820 eight-bit-control characters.
8821
8822 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8823
8824 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
8825
8826 * keyboard.c (make_lispy_event): Handle the new event type
8827 multibyte_char_keystroke.
8828
8829 * xterm.c: Include coding.h.
8830 (XTread_socket): Work around a bug of XmbLookupString. If the
8831 input is from XIM, decode it according to the current locale. In
8832 that case, generate multibyte_char_keystroke events.
8833
8834 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8835
8836 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
8837 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
8838
8839 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8840
8841 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
8842 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
8843 (move_it_in_display_line_to): Record iterator's ascent and descent
8844 before producing glyphs, and restore them when we know the glyph
8845 doesn't fit on the line.
8846 (move_it_to): Restructured so that it's easier to debug. If
8847 moving to a vpos, and not moving to an x or character position,
8848 stop as soon as the specified vpos is reached; don't move further
8849 into that line because that might change the computed line height.
8850 (try_cursor_movement): New function, extracted from the cursor
8851 movement branch of redisplay_window. If ending on a partially
8852 visible line, don't try to scroll if the cursor line is taller
8853 than the window.
8854 (redisplay_window): Use try_cursor_movement.
8855
8856 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
8857 because that function doesn't cope with variable-height lines.
8858
8859 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
8860 box cursor because that's better visible for large images.
8861
8862 2000-08-10 Miles Bader <miles@gnu.org>
8863
8864 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
8865
8866 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8867
8868 * xdisp.c (Vmessages_buffer_name): New variable.
8869 (message_dolog): Use it.
8870 (syms_of_xdisp): Initialize it.
8871
8872 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
8873
8874 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
8875 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
8876 redundant now that keyboard.h is included.
8877
8878 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
8879
8880 * keyboard.c (kbd_buffer_events_waiting): New function.
8881
8882 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
8883
8884 * msdos.c: Include keyboard.h.
8885 (XMenuActivate): Empty no_event events from the event buffer. If
8886 no events are left after that, call clear_input_pending.
8887 (mouse_clear_clicks): New function, code moved from mouse_init.
8888 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
8889 mouse driver to ``forget'' any past clicks.
8890
8891 * Makefile.in (msdos.o): Depend on keyboard.h.
8892
8893 2000-08-09 Gerd Moellmann <gerd@gnu.org>
8894
8895 * lisp.h (input_pending): External declaration.
8896
8897 * dispextern.h (Qredisplay_dont_pause): Declare extern.
8898
8899 * xdisp.c (echo_area_display): Display thoroughly if input is
8900 pending. Bind redisplay-dont-pause to t during the redisplay.
8901 in case input is pending.
8902
8903 * dispnew.c (Qredisplay_dont_pause): New variable.
8904 (syms_of_display): Initialize and staticpro it.
8905 (update_frame_1): Don't interrupt the display for pending input if
8906 redisplay_dont_pause is set.
8907
8908 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
8909
8910 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8911
8912 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
8913
8914 * callproc.c (Fcall_process): Terminate the unwind-protect around
8915 the post-read-conversion of coding system.
8916
8917 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8918 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8919 * buffer.h (overlays_at): Update prototype.
8920 * xdisp.c (next_overlay_change): Update call to overlays_at.
8921 * xfaces.c (face_at_buffer_position): Likewise.
8922 * textprop.c (Fget_char_property): Likewise.
8923 * xterm.c (note_mouse_highlight): Likewise.
8924
8925 * minibuf.c (do_completion): Don't consider a simple change of
8926 case as `completion'.
8927
8928 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8929
8930 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8931 * undo.c (record_delete): Make sure last_point_position_buffer is
8932 a buffer before comparing pointers.
8933
8934 * coding.h (decode_coding_string): Declare.
8935
8936 * intervals.h (Fprevious_single_char_property_change): Declare.
8937
8938 * textprop.c (Fprevious_single_char_property_change): Don't do
8939 arithmetic directly on lisp objects.
8940
8941 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8942
8943 * keyboard.h (menu_item_eval_property): Declare.
8944
8945 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8946 reuse as buffer name, instead of recreating (and discarding) every
8947 time a message is logged.
8948 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8949 (current_message_1, truncate_message_1, set_message_1)
8950 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8951 (current_message, truncate_echo_area, display_echo_area)
8952 (resize_echo_area_axactly): Changed calls.
8953
8954 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8955 Lisp object.
8956 (Ffind_coding_systems_region_internal): First argument to Fappend
8957 must be an integer, not a Lisp object.
8958
8959 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8960
8961 * charset.c (Fchar_width): Doc fix.
8962
8963 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8964
8965 * charset.c (Fstring_width): Doc fix.
8966
8967 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8968
8969 * xdisp.c (start_display): When starting display on a continuation
8970 line, clear ascent and descent members of the iterator structure;
8971 the height of the continued line does not affect the height of the
8972 continuation line.
8973 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8974 line taller than the window.
8975 (redisplay_window) <forced window start>: Handle case that the
8976 middle of the window is not found in any row.
8977 (dump_glyph_row): Show more information.
8978 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8979 first text line in a glyph matrix.
8980
8981 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8982 of the clip area when image doesn't have a mask.
8983
8984 * fns.c (sweep_weak_table): Fix survival conditions for
8985 key-or-value and key-and-value weakness.
8986
8987 * .gdbinit (xhashtable): New command.
8988
8989 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8990 tables out of the list of all weak hash tables.
8991
8992 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8993 a new buffer is created, make sure echo_area_buffer[] references
8994 the new buffer.
8995
8996 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8997
8998 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8999 the doc string.
9000
9001 2000-08-07 Kenichi Handa <handa@etl.go.jp>
9002
9003 * syntax.c (skip_chars): Fix previous change. Make the handling
9004 of unibyte string consistent with that of regex search.
9005
9006 2000-08-05 Gerd Moellmann <gerd@gnu.org>
9007
9008 * xmenu.c (popup_get_selection): Use xfree instead of free.
9009
9010 * fileio.c (Finsert_file_contents): Use xfree instead of free.
9011
9012 * editfns.c (Ftranspose_regions): Use xfree instead of free.
9013
9014 * callproc.c (child_setup): Use xfree instead of free.
9015
9016 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
9017 instead of malloc.
9018 (run_mac_command, closedir): Use `xfree' instead of `free'.
9019
9020 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
9021
9022 * eval.c (error): Use xfree instead of free.
9023
9024 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
9025
9026 * fns.c: Replace `illegal' with `invalid'.
9027 (Fmake_hash_table, make_hash_table): Allow table size of 0.
9028
9029 2000-08-05 Kenichi Handa <handa@etl.go.jp>
9030
9031 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
9032 conversion.
9033
9034 2000-08-04 Noah Friedman <friedman@splode.com>
9035
9036 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
9037 docstring.
9038
9039 2000-08-04 Gerd Moellmann <gerd@gnu.org>
9040
9041 * syntax.c (skip_chars): Fix typo in error message.
9042
9043 2000-08-04 Andreas Schwab <schwab@suse.de>
9044
9045 * m/ia64.h: Moved from s/ia64.h.
9046
9047 2000-08-04 Kenichi Handa <handa@etl.go.jp>
9048
9049 * process.c (read_process_output): Big simplification. Handle
9050 composition and post-read-conversion of coding system correctly.
9051 (send_process): Handle composition correctly.
9052
9053 * callproc.c (Fcall_process): Handle post-read-conversion of
9054 coding system if any.
9055
9056 * coding.c (decode_coding_iso2022): More strict check for handling
9057 single shifting.
9058 (coding_restore_composition): Pay attention to the case that
9059 cmp_data is not set properly (because of invalid code in the
9060 source text).
9061 (run_pre_post_conversion_on_str): Include text properties in the
9062 resulting string.
9063 (decode_coding_string): Set members of coding correctly.
9064
9065 2000-08-03 Gerd Moellmann <gerd@gnu.org>
9066
9067 * s/ia64.h: New file.
9068
9069 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
9070 Use NULL instead of 0 at the end of variable argument list of
9071 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
9072 sizeof (int) < sizeof (void *).
9073
9074 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
9075 of variable argument lists of XtVaGetValues and XtVaSetValues.
9076
9077 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
9078 variable argument lists of XtVaGetValues and XtVaSetValues.
9079
9080 2000-08-02 Gerd Moellmann <gerd@gnu.org>
9081
9082 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
9083 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
9084
9085 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
9086 prototype.
9087
9088 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
9089 in call to Fsingle_key_description.
9090
9091 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
9092 Callers changed.
9093
9094 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
9095
9096 * window.c (display_buffer_reuse_frames): New variable.
9097 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
9098 frames displaying BUFFER.
9099 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
9100
9101 2000-08-01 Miles Bader <miles@gnu.org>
9102
9103 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
9104 when to constrain NEW_POS (they were pretty screwed up before).
9105
9106 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
9107
9108 * msdos.c (run_msdos_command): Save and restore the master
9109 environment, for the case that child_setup signals an error.
9110 When mirroring slashes in DOS shell commands, don't fail when
9111 argv[2] has embedded blanks.
9112 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
9113 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
9114 (dos_ttraw): Call mouse_setup_buttons.
9115
9116 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
9117 using alloca; free it after run_msdos_command returns.
9118
9119 2000-07-27 Dave Love <fx@gnu.org>
9120
9121 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
9122 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
9123
9124 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
9125
9126 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
9127
9128 * editfns.c (lisp_time_argument): Fix last change.
9129
9130 2000-07-27 Gerd Moellmann <gerd@gnu.org>
9131
9132 * fns.c (Fdelete): Make it work on vectors and strings in addition
9133 to lists.
9134
9135 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
9136 (syms_of_fns): Initialize new variables.
9137 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
9138 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
9139 weakness, with t meaning the same as `key-and-value'.
9140
9141 2000-07-27 Kenichi Handa <handa@etl.go.jp>
9142
9143 * coding.h (struct coding_system): Member safe_charset deleted.
9144
9145 * coding.c (Qsafe_charsets): This variable deleted.
9146 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
9147 New variables.
9148 (coding_safe_chars): New function.
9149 (CODING_SAFE_CHAR_P): New macro.
9150 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
9151 checking safe_charsets member of the coding system. Caller changed.
9152 (detect_coding_iso2022): New local variable safe_chars.
9153 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
9154 safe_charsets member of the coding system.
9155 (decode_coding_iso2022): New local variable safe_chars.
9156 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
9157 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
9158 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
9159 (ENCODE_UNSAFE_CHARACTER): New macro.
9160 (encode_coding_iso2022): New local variable safe_chars. Check
9161 unsafe chars.
9162 (setup_coding_system): Delete the code to initialize
9163 coding->safe_charses
9164 (intersection, find_safe_codings): New functions.
9165 (Ffind_coding_systems_region_internal): New function.
9166 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
9167 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
9168 variable and initialize it.
9169
9170 * fns.c (char_table_ref_and_index): New function.
9171
9172 * lisp.h (char_table_ref_and_index): Add prototype.
9173
9174 2000-07-26 Sam Steingold <sds@gnu.org>
9175
9176 * editfns.c (lisp_time_argument): Added third argument `usec'.
9177 (Ffloat_time): New built-in Lisp function.
9178
9179 2000-07-26 Gerd Moellmann <gerd@gnu.org>
9180
9181 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
9182 for the character code.
9183
9184 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
9185 GNU/Linux.
9186
9187 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
9188 if called for a popup menu.
9189 (xmenu_show): Store help string in widget values.
9190
9191 2000-07-26 Dave Love <fx@gnu.org>
9192
9193 * syswait.h: Move some definitions.
9194 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
9195 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
9196 perspicuous definitions.
9197 (WTERMSIG): Fix bit pattern used.
9198
9199 2000-07-26 Kenichi Handa <handa@etl.go.jp>
9200
9201 * print.c (print_object): If vector printing is truncated, print
9202 "..." to indicate it as well as the case of list printing.
9203
9204 2000-07-25 Gerd Moellmann <gerd@gnu.org>
9205
9206 * xdisp.c (next_element_from_display_vector): Improve comments.
9207
9208 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
9209 for the character code, and the rest for the face id as in 20.x.
9210 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
9211
9212 * window.c (window_display_table): Cleaned up.
9213
9214 * syntax.c (Fforward_word): Add last arg nil in call of
9215 Fconstrain_to_field.
9216
9217 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
9218
9219 * fileio.c (Frename_file) [DOS_NT]: If the file names are
9220 identical but for the letter-case, don't call
9221 barf_or_query_if_file_exists.
9222
9223 2000-07-25 Miles Bader <miles@gnu.org>
9224
9225 * editfns.c (find_field): Honor special `boundary' fields.
9226 (Qboundary): New variables.
9227 (syms_of_editfns): Initialize Qboundary.
9228 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
9229 Use scan_buffer instead of find_before_next_newline, because it
9230 allows us to detect the boundary case where there's a newline at
9231 the search limit.
9232 * lisp.h (Fconstrain_to_field): Update external declaration.
9233
9234 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9235
9236 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
9237 if that is nil.
9238
9239 2000-07-24 Dave Love <fx@gnu.org>
9240
9241 * s/sunos4-0.h, s/sol2.h:
9242 (LIBS_TERMCAP): Move from m/sparc.h.
9243
9244 * m/sparc.h (TERMINFO): Moved to system files (probably only
9245 relevant for sunos4 judging by its vintage).
9246 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
9247 __arch64__.
9248
9249 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
9250
9251 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
9252 name to single_keymap_panes.
9253
9254 2000-07-24 Andreas Schwab <schwab@suse.de>
9255
9256 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
9257
9258 2000-07-24 Gerd Moellmann <gerd@gnu.org>
9259
9260 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
9261 parameters instead of using int parameters. Expect FN to accept
9262 EMACS_INT parameters.
9263 (display_echo_area, resize_echo_area_axactly, current_message)
9264 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
9265 with new argument list.
9266 (resize_mini_window_1): New callback function.
9267 (current_message_1, truncate_message_1, set_message_1): Change
9268 parameter lists to the new format expected by with_echo_area_buffer.
9269
9270 2000-07-24 Kenichi Handa <handa@etl.go.jp>
9271
9272 * fontset.c (fontset_ref): Remove INLINE declaration.
9273 (fontset_ref_via_base): Likewise.
9274 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
9275 to downcase.
9276
9277 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
9278
9279 * msdos.c (IT_note_mouse_highlight): Process overlays in the
9280 correct order of priority. If help echo was found in an overlay,
9281 use that overlay as the object in which the help echo was found.
9282
9283 2000-07-22 Miles Bader <miles@gnu.org>
9284
9285 * textprop.c (Fprevious_single_char_property_change): The initial
9286 property value should be from the position preceding POSITION, not
9287 following it.
9288
9289 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
9290
9291 * coding.c (syms_of_coding): Doc fix for
9292 inhibit-iso-escape-detection.
9293
9294 2000-07-21 Gerd Moellmann <gerd@gnu.org>
9295
9296 * xterm.c (note_mouse_highlight): Process overlays in the right
9297 order of priority.
9298
9299 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
9300
9301 * xterm.c (note_mouse_highlight): If help-echo was found in an
9302 overlay, use that overlay as the object in which the help was found.
9303
9304 * window.c (foreach_window_1): Fix typo reversing an if-condition.
9305
9306 * window.c (foreach_window): Instead of a fake variable argument
9307 list, take one USER_DATA argument.
9308 (foreach_window_1): Likewise, and call callback functions with two
9309 args, the window and USER_DATA.
9310 (struct check_window_data): New struct.
9311 (check_window_containing): Use it.
9312 (window_from_coordinates): Set up a struct check_window_data for
9313 foreach_window.
9314 (add_window_to_list, freeze_window_start): Change parameters
9315 according to new calling convention.
9316
9317 * window.h (foreach_window): Change prototype.
9318
9319 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
9320
9321 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
9322
9323 * xmenu.c (menu_help_callback): Call show_help_echo with
9324 additional arguments OBJECT and POS.
9325
9326 2000-07-21 Kenichi Handa <handa@etl.go.jp>
9327
9328 * data.c (Faset): Allow storing any multibyte character in a
9329 string. Convert unibyte string to multibyte if necessary.
9330
9331 * xfns.c (x_encode_text): New function.
9332 (x_set_name): Use x_encode_text.
9333 (x_set_title): Likewise.
9334
9335 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
9336
9337 * xterm.h (x_encode_text): Add prototype.
9338
9339 2000-07-20 Dave Love <fx@gnu.org>
9340
9341 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
9342 xfree, not free.
9343
9344 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
9345
9346 * msdos.c (help_echo_window): New variable.
9347 (syms_of_msdos): Initialize and staticpro it.
9348 (IT_note_mode_line_highlight): Set help_echo_window.
9349 (IT_note_mouse_highlight): Ditto.
9350 (dos_rawgetc): Store help_echo_window in the second event produced
9351 for HELP_EVENTs.
9352
9353 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
9354 Record the object that generated the help echo and the position of
9355 that object in help_echo_object and help_echo_pos. Record that
9356 some glyphs in a row are displayed in mouse-face.
9357 (IT_update_begin): Don't clear mouse highlight unless one of the
9358 enabled glyph rows is marked as being displayed in mouse-face.
9359 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
9360 and position recorded in help_echo_object and help_echo_pos to the
9361 event queue.
9362 (IT_menu_display): Accept a new argument PN: the pane number of
9363 the current menu pane. Record the pane number and the item
9364 number of the item which has associated help string.
9365 (XMenuActivate): Update the prototype for help_callback in
9366 function declaration. Call IT_menu_display with the current menu
9367 pane number as an additional argument. Call help_callback with
9368 two additional arguments: the pane number and the item number of
9369 the menu item associated with the help text.
9370 (help_echo_object, help_echo_pos): New variables.
9371 (syms_of_msdos): Initialize them and staticpro help_echo_object.
9372
9373 * msdos.h (XMenuActivate): Update prototype.
9374
9375 2000-07-19 Gerd Moellmann <gerd@gnu.org>
9376
9377 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
9378 Add some more prototypes.
9379
9380 * xterm.c, xterm.h: Add some more prototypes.
9381
9382 * lisp.h (Fnext_single_char_property_change): Add prototype.
9383
9384 * dispnew.c (direct_output_for_insert): Remove confusing
9385 outer local variable mouse_face_overwritten_p.
9386 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
9387
9388 * alloc.c (allocate_string_data): Don't copy old string contents.
9389
9390 2000-07-19 Kenichi Handa <handa@etl.go.jp>
9391
9392 * coding.c (code_convert_region): Delete text properties before
9393 shrinking the conversion region.
9394
9395 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9396
9397 * dispnew.c (update_text_area): Write the whole row if it
9398 has mouse-face in it.
9399
9400 * xfaces.c (face-alternative-font-family-alist): Remove
9401 DEFVAR_LISP; staticpro instead.
9402
9403 * xmenu.c (menu_help_callback): Call show_help_echo with
9404 new arguments.
9405
9406 * keyboard.c (show_help_echo): Add parameter WINDOW.
9407 (read_char): Call show_help_echo with window extracted from Lisp
9408 help event.
9409 (gen_help_event): Add parameter WINDOW.
9410
9411 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
9412
9413 * xterm.c (help_echo_window): New variable.
9414 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
9415 (XTread_socket): Pass help_echo_window to gen_help_event.
9416 (syms_of_xterm): Initialize and staticpro help_echo_window.
9417
9418 2000-07-18 Dave Love <fx@gnu.org>
9419
9420 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
9421
9422 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9423
9424 * alloc.c (allocate_string_data): If string had already data
9425 assigned, copy old contents to new string data.
9426
9427 * coding.c (syms_of_coding): Fix typo in spelling of variable
9428 `inhibit-iso-escape-detection'.
9429
9430 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
9431
9432 * Makefile.in: Add dependencies on dispextern.h.
9433 (alloca.o): Don't define malloc and define EMACS_FREE instead of
9434 `free'; both can conflict with system header files.
9435
9436 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9437
9438 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
9439 undefined.
9440
9441 2000-07-18 Dave Love <fx@gnu.org>
9442
9443 * window.c (Fwindow_list): Declare arg `window'.
9444
9445 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9446
9447 * coding.c (setup_coding_system): Don't override the explicitly
9448 specified designations.
9449
9450 2000-07-15 Miles Bader <miles@gnu.org>
9451
9452 * editfns.c (char_property_eq, char_property_stickiness): Renamed
9453 from `text_property_eq' and `text_property_stickiness', respectively.
9454 (find_field, Fconstrain_to_field, char_property_eq)
9455 (char_property_stickiness): Changed to call char-property functions
9456 instead of text-property-only ones.
9457
9458 * textprop.c (Fnext_single_char_property_change): Made a subr (was
9459 `next_single_char_property_change'). Do more error checking, and
9460 cleanup limit behavior.
9461 (Fprevious_single_char_property_change): New function.
9462 (syms_of_textprop): Initialize new subrs.
9463
9464 * xdisp.c (display_prop_end, invisible_text_between_p):
9465 Call Fnext_single_char_property_change instead of
9466 next_single_char_property_change.
9467
9468 2000-07-15 Jason Rumney <jasonr@gnu.org>
9469
9470 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
9471 after menu is finished with.
9472 (add_menu_item): Only consider wv->title as a menu title.
9473 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
9474
9475 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
9476 null title.
9477 (FONT_REGEXP): Remove unused macro, and its sub-components.
9478 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
9479
9480 * w32term.c (help_echo_object, help_echo_pos): New variables.
9481 (note_mode_line_highlight): Store additional information about the
9482 help-echo in help_echo_object and help_echo_pos. Check both
9483 `local-map' and `keymap' properties for changing the cursor
9484 (note_mouse_highlight): Store additional information about the
9485 help-echo in help_echo_object and help_echo_pos.
9486 (note_tool_bar_highlight): Set help_echo_object to nil and
9487 help_echo_pos to -1.
9488 (w32_read_socket): Use gen_help_event instead of filling
9489 input_events manually.
9490 (syms_of_w32term): Staticpro help_echo_object.
9491 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
9492 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
9493 (x_clear_mouse_face): New function.
9494 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
9495 (x_update_window_begin): No need to turn off the mouse
9496 highlight here.
9497 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9498 depending on whether they contain glyphs highlighted in mouse-face.
9499 (x_fill_stretch_glyph_string): Consume runs of stretch
9500 glyphs instead of a single one.
9501 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9502 with new argument list.
9503 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9504 (x_append_glyph, x_append_composite_glyph)
9505 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9506 changes in struct glyph starting 1999-12-27. See comments for
9507 xterm.c on 2000-07-05.
9508
9509 2000-07-14 Sam Steingold <sds@gnu.org>
9510
9511 * xfaces.c (realize_x_face): Fix the last patch:
9512 check `default_face' before dereferencing.
9513
9514 2000-07-14 Dave Love <fx@gnu.org>
9515
9516 * syntax.c (back_comment): Add null default in switch (for pcc).
9517
9518 2000-07-14 Kenichi Handa <handa@etl.go.jp>
9519
9520 * xfaces.c (realize_x_face): Make fontset using the base of the
9521 default_face's fontset, not using the default fontset.
9522
9523 * coding.c (inhibit_iso_escape_detection): New variable.
9524 (syms_of_coding): Make it a Lisp variable.
9525 (detect_coding_iso2022): If inhibit_iso_escape_detection is
9526 nonzero, ignore ISO2022's escape sequence.
9527
9528 2000-07-14 Gerd Moellmann <gerd@gnu.org>
9529
9530 * alloca.c (malloc) [emacs]: Define as xmalloc.
9531
9532 * xfns.c (Fx_show_tip): If frame parameters contain a position,
9533 use that instead of the mouse position. Add parameters DX and DY.
9534
9535 * dispextern.h (Fx_show_tip): Adjust number of parameters
9536 in prototype.
9537
9538 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
9539 if HELP is a function, call it with OBJECT and POS as parameters
9540 to get the help to display.
9541 (gen_help_event, kbd_buffer_store_help_event): New functions.
9542 (kbd_buffer_get_event): Construct the Lisp help-event differently.
9543 (read_char): Call show_help_echo with new parameters.
9544
9545 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9546 Add prototypes.
9547
9548 * xterm.c (help_echo_object, help_echo_pos): New variables.
9549 (note_mode_line_highlight): Store additional information about the
9550 help-echo in help_echo_object and help_echo_pos. Check both
9551 `local-map' and `keymap' properties for changing the cursor
9552 (note_mouse_highlight): Store additional information about the
9553 help-echo in help_echo_object and help_echo_pos.
9554 (note_tool_bar_highlight): Set help_echo_object to nil and
9555 help_echo_pos to -1.
9556 (XTread_socket): Use gen_help_event instead of filling
9557 input_events manually.
9558 (syms_of_xterm): Staticpro help_echo_object.
9559
9560 * xmenu.c (menu_highlight_callback): Use
9561 kbd_buffer_store_help_event instead of setting up and input_event
9562 structure manually.
9563
9564 * xdisp.c (eval_form): GCPRO argument sexpr.
9565 (call_function): New function.
9566 (handle_single_display_prop): Use call_function and FUNCTIONP
9567 instead of checking whether if font_height is a symbol and
9568 using eval_form.
9569
9570 * eval.c (internal_condition_case_2): New function.
9571
9572 * lisp.h (FUNCTIONP): New macro.
9573 (internal_condition_case_2, call_function): Add prototypes.
9574
9575 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
9576 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
9577 Always set `arg' member of input_events.
9578 (construct_menu_click): Unused function removed.
9579
9580 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
9581
9582 * w32term.c (construct_mouse_click, construct_mouse_wheel)
9583 (construct_drag_n_drop, x_scroll_bar_handle_click)
9584 (w32_read_socket): Always set `arg' member of input_events.
9585
9586 * keyboard.c (show_help_echo): Use eval_form. Add comment.
9587
9588 * lisp.h (eval_form): Add prototype.
9589
9590 * xdisp.c (eval_form): Make it externally visible.
9591
9592 2000-07-13 Gerd Moellmann <gerd@gnu.org>
9593
9594 * xterm.c (x_handle_tool_bar_click): Store the frame in the
9595 frame_or_window slot of TOOL_BAR_EVENT input events instead of
9596 consing. For prefix events, store the frame in the `arg' slot of
9597 the event, otherwise store the key there.
9598 (XTread_socket): Instead of consing, use the frame_or_window slot
9599 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
9600
9601 * xmenu.c (menu_highlight_callback): Store help string in the
9602 `arg' member of the input event; don't cons.
9603 (menubar_selection_callback): Use the `arg' slot of input events
9604 to queue additional information, instead of consing.
9605
9606 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
9607
9608 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
9609 TOOL_BAR_EVENTs.
9610 (w32_read_socket): Adapt to changes in HELP_EVENTs.
9611
9612 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
9613 input events to queue additional information, instead of consing.
9614
9615 * keyboard.c (kbd_buffer_gcpro): Renamed from
9616 kbd_buffer_frame_or_window. Now used for all Lisp objects
9617 referenced from the input queue.
9618 (kbd_buffer_store_event): Always use structure assignment for
9619 copying input events. Record all Lisp objects referenced from
9620 events in kbd_buffer_gcpro.
9621 (kbd_buffer_get_event): Construct Lisp `help-echo' events
9622 differently from input events. Test for prefix menu_bar_events
9623 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
9624 event in kbd_buffer_gcpro to nil.
9625 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
9626 frame_or_window is equal to its arg member as prefix events.
9627 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
9628 used by an input event to nil.
9629 (init_keyboard): Use two times the size of the input queue
9630 for kbd_buffer_gcpro.
9631 (syms_of_keyboard): Likewise.
9632
9633 * emacs.c (handle_USR2_signal, handle_USR1_signal):
9634 Use USER_SIGNAL_EVENT.
9635
9636 * termhooks.h (struct input_event): Add member `arg'.
9637 (MENU_BAR_EVENT): Renamed from menu_bar_event.
9638 (USER_SIGNAL_EVENT): Renamed from user_signal.
9639
9640 * xfaces.c (ASET): Remove definition.
9641
9642 * lisp.h (AREF, ASET, ASIZE): New macros.
9643
9644 * fontset.c (AREF, ASIZE): Remove definitions.
9645
9646 * fns.c (AREF): Remove definition.
9647
9648 * composite.c (AREF): Remove definition.
9649
9650 2000-07-12 Gerd Moellmann <gerd@gnu.org>
9651
9652 * dispnew.c (redraw_overlapped_rows): Add missing local.
9653 (scrolling_window): Remove debug code.
9654
9655 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
9656 Before scrolling, turn off a mouse-highlight in the window
9657 being scrolled.
9658
9659 * xterm.c (x_update_window_end): Add parameter
9660 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
9661 redisplay in XTframe_up_to_date.
9662 (x_clear_mouse_face): New function.
9663 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
9664
9665 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
9666 current glyph row.
9667 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
9668 it when any row is written to that contains glyphs highlighted in
9669 mouse-face.
9670 (update_window): Call the window update end hook with new
9671 parameter MOUSE_FACE_OVERWRITTEN_P.
9672 (direct_output_for_insert): Give up if row contains mouse-face.
9673
9674 * dispextern.h (struct redisplay_interface): Add parameter
9675 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
9676 (clear_mouse_face): New function pointer member.
9677
9678 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
9679
9680 * syntax.c (back_comment): Use one switch rather than a few `if's.
9681 Obey open_paren_in_column_0_is_defun_start.
9682 When reverting to the `slow' method, try to nicely handle the case
9683 of nested comments by checking that the comment-starter we found
9684 does indeed match the comment-ender.
9685 (scan_sexps_forward, scan_sexps_forward):
9686 Ignore excessive opening parenthesis rather than throwing an error.
9687
9688 2000-07-11 Gerd Moellmann <gerd@gnu.org>
9689
9690 * doc.c (Fsubstitute_command_keys): Handle case that a GC
9691 in Fwhere_is_internal or get_keymap_1 relocates string contents.
9692
9693 * dispnew.c (direct_output_forward_char): Give up if currently
9694 displaying a message instead of the minibuffer contents.
9695
9696 * xterm.c (x_update_window_begin): No need to turn off the mouse
9697 highlight here.
9698 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9699 depending on whether they contain glyphs highlighted in mouse-face.
9700
9701 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
9702 compare the mouse_face_p flags of both rows.
9703
9704 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
9705
9706 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
9707
9708 * keyboard.c (show_help_echo): Accept additional parameter
9709 ok_to_overwrite_keystroke_echo.
9710 (read_char): Call show_help_echo with a zero
9711 ok_to_overwrite_keystroke_echo argument.
9712 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
9713 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
9714 ok_to_overwrite_keystroke_echo argument.
9715 * w32menu.c (w32_menu_display_help): Call show_help_echo with
9716 non-zero ok_to_overwrite_keystroke_echo argument.
9717
9718 2000-07-10 Gerd Moellmann <gerd@gnu.org>
9719
9720 * xdisp.c (try_window_id): If changes are all below what is
9721 displayed in the window, and point is in the window, we still
9722 might have to find point on the display.
9723
9724 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
9725 glyphs instead of a single one.
9726 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9727 with new argument list.
9728 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9729
9730 * keymap.c (get_keymap_1): Add comment that this function can GC.
9731 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
9732 comment that functions can GC.
9733 (Fset_keymap_parent): GCPRO arg KEYMAP.
9734
9735 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
9736
9737 * msdos.c (XMenuActivate): After exiting the menu, restore the
9738 echo area message and erase it.
9739
9740 2000-07-10 Kenichi Handa <handa@etl.go.jp>
9741
9742 * fontset.c (Ffontset_info): Make the return value more compatible
9743 with that of Emacs 20.
9744
9745 2000-07-07 Gerd Moellmann <gerd@gnu.org>
9746
9747 * eval.c (Fsignal): Handle case that backtrace_list is null.
9748
9749 2000-07-07 Kenichi Handa <handa@etl.go.jp>
9750
9751 * ccl.c (Fccl_execute): Typo fixed.
9752
9753 2000-07-06 Gerd Moellmann <gerd@gnu.org>
9754
9755 * window.c (window_loop): Add missing gcpro1 local variable.
9756
9757 * window.c (Fwindow_list): Reverse list at the end.
9758 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
9759 means allow windows on OWINDOW's frame, only.
9760 (window_loop): Simplified; use Fwindow_list.
9761
9762 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
9763
9764 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9765
9766 * xterm.c (XTread_socket): Increment handling_signal at the start,
9767 decrement it at the end.
9768
9769 * eval.c (handling_signal): New variable.
9770 (Fsignal): Abort if handling_signal is non-zero.
9771
9772 * lisp.h (handling_signal): External declaration.
9773
9774 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
9775
9776 2000-07-05 Ken Raeburn <raeburn@gnu.org>
9777
9778 Sound support for NetBSD through "Linux emulation" support:
9779 * config.in (HAVE_SOUNDCARD_H): Undef.
9780 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
9781 * Makefile.in (LIBSOUND): New variable.
9782 (LIBES): Include it.
9783 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
9784 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
9785 (vox_open): Use DEFAULT_SOUND_DEVICE.
9786 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
9787
9788 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9789
9790 * print.c (print_error_message): If Vsignaling_function is set,
9791 show it in *Messages*.
9792
9793 * lisp.h (Vsignaling_function): External declaration.
9794
9795 * eval.c (Vsignaling_function): New variable.
9796 (Fsignal): Compute it.
9797 (syms_of_eval): Staticpro it.
9798
9799 2000-07-05 Dave Love <fx@gnu.org>
9800
9801 * syswait.h: Use the autoconf recommended approach. Old code
9802 #if'd out in case we need to revert.
9803
9804 * config.in (HAVE_SYS_WAIT_H): Added.
9805
9806 2000-07-05 Andrew Innes <andrewi@gnu.org>
9807
9808 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
9809 when non-NULL instead of __morecore, to take account of buffer
9810 memory. This also solves a problem with spurious memory warnings
9811 on Windows.
9812
9813 * ralloc.c: Make real_morecore non-static.
9814
9815 * eval.c (internal_condition_case): Comment out abort if
9816 interrupt_input_blocked is not zero.
9817
9818 * makefile.nt: Add support for `bootstrap' and related targets.
9819 Include minimal debug info in emacs.exe in release build.
9820 Remove all dependencies on lisp.h, and fixup some others.
9821
9822 * w32.c (init_environment): Install code from 20.7 for providing
9823 default values for environment variables, based on the
9824 executable's own location.
9825 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
9826 (sys_socket): Install socket inheritance bug fix from 20.7.
9827
9828 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
9829 here via blockinput.h).
9830
9831 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
9832
9833 * w32menu.c (w32_menu_display_help):
9834 * xmenu.c (menu_help_callback): Use show_help_echo.
9835
9836 * keyboard.h (show_help_echo): Declare.
9837
9838 * keyboard.c (show_help_echo): New function, extracted from read_char.
9839 Feval its `msg' argument if it's a cons cell.
9840 (read_char): Use it.
9841 (follow_key): Pass `autoload' to get_keyelt.
9842
9843 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
9844 (note_tool_bar_highlight, XTread_socket):
9845 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
9846 (dos_rawgetc):
9847 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
9848 (note_tool_bar_highlight, w32_read_socket):
9849 Do not gratuitously ignore non-string `help-echo' properties.
9850
9851 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9852
9853 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
9854
9855 * window.c (delete_all_subwindows): Reset Vwindow_list.
9856
9857 * xterm.c (x_append_glyph, x_append_composite_glyph)
9858 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9859 changes in struct glyph starting 1999-12-27. Some bit-fields of
9860 struct glyph were not set, which made glyphs unequal when compared
9861 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
9862 effects were the result. This also depended on the contents of
9863 memory returned by xmalloc. If flickering happens again, activate
9864 the code in clear_glyph_row that's in #if 0. If the flickering is
9865 gone with that, chances are that it is caused by something similar.
9866
9867 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
9868
9869 * dispextern.h: Add some comments.
9870
9871 * window.c (add_window_to_list): Add parameter LIST.
9872 (window_list): Order list so that, for each frame, windows are
9873 in canonical order, and so that frames appear in the list in
9874 the order given by Vframe_list.
9875 (next_window): Reverse the handling of NEXT_P.
9876
9877 2000-07-04 Gerd Moellmann <gerd@gnu.org>
9878
9879 * window.c (Vwindow_list): New variable.
9880 (make_window, delete_window): Set Vwindow_list to nil.
9881 (check_window_containing): New function.
9882 (window_from_coordinates): Rewritten.
9883 (add_window_to_list, window_list, candidate_window_p)
9884 (decode_next_window_args, next_window): New functions.
9885 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
9886 (Fwindow_list): New function.
9887 (Fother_window): Cleaned up.
9888 (foreach_window): Add a longer "variable argument list". Let
9889 callback function return 0 to indicate that cycling over windows
9890 should stop.
9891 (foreach_window_1): Likewise.
9892 (freeze_window_start): Return int.
9893 (init_window): New function.
9894 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
9895
9896 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
9897 input_event with bzero.
9898 (main): Call init_window.
9899
9900 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
9901 a menu filter.
9902
9903 2000-07-04 Kenichi Handa <handa@etl.go.jp>
9904
9905 * composite.h (make_composition_value_copy): Extern it.
9906
9907 * composite.c (make_composition_value_copy): New function.
9908
9909 * editfns.c (Fformat): While copying text properties, make each
9910 composition property value a copy.
9911
9912 * fns.c (concat): While copying text properties, make each
9913 composition property value a copy.
9914
9915 2000-07-03 Gerd Moellmann <gerd@gnu.org>
9916
9917 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9918
9919 * fns.c (sweep_weak_table): Mark only objects that are not
9920 marked already.
9921
9922 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9923 include those frames as candidates which have their focus
9924 redirected to the minibuffer frame.
9925
9926 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9927
9928 * fns.c (Fputhash): Return `value' rather than nil.
9929
9930 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9931
9932 * frame.c (next_frame): Don't check focus redirection in case
9933 MINIBUF is a window. Doing so excludes frames using MINIBUF
9934 unless their focus is redirected, which contradicts the
9935 specification of next-frame, and leads to infinite loops in
9936 certain situations when cycling through windows with next-window.
9937
9938 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9939
9940 * coding.c (code_convert_region): Even if the length of text is
9941 zero, try to convert it if coding->type is coding_type_ccl.
9942 (decode_coding_string, encode_coding_string): Likewise.
9943
9944 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9945
9946 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9947 the display if windows_or_buffers_changed.
9948
9949 * dispnew.c (struct row_entry): New structure.
9950 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9951 (row_table_size, old_lines, new_lines, old_lines_size)
9952 (new_lines_size, run_pool, runs_size, runs): New variables.
9953 (add_row_entry): New function.
9954 (scrolling_window): Use data structures allocated with xmalloc and
9955 held in global variables, instead of allocating them with alloca and
9956 holding them in local variables. Use a larger hash table whose
9957 size depends on glyph matrix sizes. Don't use bzero to clear the
9958 hash table; instead, clear used slots only.
9959
9960 * fns.c (next_almost_prime): Make it externally visible.
9961
9962 * lisp.h (next_almost_prime): Add prototype.
9963
9964 * s/isc4-0.h (sigunblock): Define.
9965
9966 * s/sco5.h (sigunblock): Define.
9967
9968 2000-06-27 Dave Love <fx@gnu.org>
9969
9970 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9971 (moved to osf5-0.h).
9972 [!NOT_C_CODE]: Protect string.h stuff.
9973
9974 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9975 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9976
9977 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9978
9979 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9980 below the last line from the needed window height.
9981
9982 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9983
9984 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9985 (Fwidget_get): Use it.
9986 (syms_of_fns): Defsubr it.
9987
9988 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9989
9990 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9991 display info for XIM.
9992 (xim_open_dpy): Likewise.
9993 (xim_close_dpy): Don't free the display info's XIM.
9994
9995 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9996
9997 * config.in (USE_XIM): New define.
9998
9999 * keymap.c (get_keyelt): For menu-items containing a `:filter
10000 FILTER', apply FILTER to the menu-item's definition to get the
10001 real definition to use.
10002
10003 * lisp.h (QCfilter): External declaration.
10004
10005 * xfns.c (Fimage_size): New function.
10006 (syms_of_xfns): Defsubr it.
10007
10008 2000-06-26 Andreas Schwab <schwab@suse.de>
10009
10010 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
10011 Fstring_as_unibyte.
10012
10013 2000-06-25 Dave Love <fx@gnu.org>
10014
10015 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
10016
10017 * Makefile.in (blockinput.h): Depend on atimer.h.
10018 (atimer.h): Depend on systime.h.
10019
10020 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
10021
10022 * atimer.h: Protect against multiple inclusion. Include systime.h.
10023
10024 * lisp.h (swap_in_global_binding): Declare.
10025
10026 2000-06-24 Ken Raeburn <raeburn@gnu.org>
10027
10028 * process.c (Fopen_network_stream): Turn off atimers for duration
10029 of call to connect. (Patch from Gerd.)
10030
10031 2000-06-23 Dave Love <fx@gnu.org>
10032
10033 * ralloc.c: Maybe include unistd.h
10034
10035 * emacs.c (setgrp): Undefine before defining.
10036 (malloc_warning, set_time_zone_rule, index): Prototype.
10037
10038 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
10039 HAVE_STRUCT_TIMEZONE.
10040
10041 * s/osf1.h: Move string.h hack here from alpha.h and make it
10042 conditional.
10043 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
10044 _XOPEN_SOURCE.
10045 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
10046 (SOCKLEN_TYPE): Don't define.
10047
10048 * m/alpha.h: Remove string.h hack.
10049
10050 * s/osf5-0.h: New file.
10051
10052 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
10053 include time.h, done by systime.h.
10054 [__FreeBSD__]: Remove redundant includes.
10055
10056 * callproc.c (setpgrp): Undefine before defining.
10057 (delete_temp_file): Return Qnil to avoid warning.
10058
10059 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
10060
10061 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
10062 HAVE_X_WINDOWS.
10063
10064 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
10065
10066 * composite.h (compose_text): Declare.
10067
10068 * xterm.c: Don't include sys/types.h unconditionally. Don't
10069 protect its inclusion with !USG (following xmenu.c).
10070
10071 2000-06-23 Gerd Moellmann <gerd@gnu.org>
10072
10073 * xfns.c (x_create_tip_frame): Initialize frame's colors like
10074 in x_create_frame.
10075
10076 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
10077
10078 * coding.c (decode_eol_post_ccl): Special handling for undecided
10079 and inconsistent EOL types.
10080
10081 2000-06-22 Gerd Moellmann <gerd@gnu.org>
10082
10083 * xrdb.c (x_load_resources): Add default resource for scroll bar's
10084 trough color and main window's background color.
10085
10086 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
10087
10088 * xterm.h (Xt_app_con): External declaration.
10089
10090 * widget.c (EmacsFrameRealize): Fix typo.
10091
10092 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
10093
10094 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
10095 (handle_invisible_prop): Record the start of invisible text in
10096 it->add_overlay_start.
10097 (struct overlay_entry): Add member `overlay'.
10098 (handle_overlay_change): Simplify.
10099 (next_overlay_string): After having processed overlay strings at the
10100 end of the buffer, record that fact in
10101 it->overlay_strings_at_end_processed_p.
10102 (compare_overlay_entries): If before- and after-strings come
10103 from the same overlay, let before-strings come first.
10104 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
10105 (load_overlay_strings): Take it->add_overlay_start into account
10106 when adding overlay strings.
10107
10108 * dispextern.h (struct it): Add member add_overlay_start.
10109
10110 2000-06-22 Dave Love <fx@gnu.org>
10111
10112 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
10113
10114 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
10115
10116 2000-06-22 Kenichi Handa <handa@etl.go.jp>
10117
10118 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
10119 is greater than 0.
10120
10121 2000-06-21 Dave Love <fx@gnu.org>
10122
10123 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
10124
10125 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
10126
10127 * syntax.c (back_comment): Simplify string-parity counting (with
10128 the added benefit of handling multiple string-styles as long as
10129 they are not intertwined).
10130 Jump to the slow code as soon as a comment starter is found in
10131 a "string_lossage" position. Fixes the case: " /* " /* " */.
10132
10133 2000-06-21 Dave Love <fx@gnu.org>
10134
10135 * Makefile.in: Use GETLOADAVG_LIBS.
10136
10137 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
10138 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
10139
10140 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10141
10142 * syntax.c (describe_syntax): Recognize the `n'estable bit.
10143 (Fforward_comment, scan_lists):
10144 Check the comstyle of single-char comment-starters.
10145 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
10146 we're just at the beginning of the comment (f.ex with (*) ... (*)).
10147 Check the comstyle of single-char comment-starters.
10148 Clarify control-flow around the Scomment case.
10149
10150 2000-06-20 Dave Love <fx@gnu.org>
10151
10152 * fns.c (make_hash_table, maybe_resize_hash_table):
10153 Cast arg of next_almost_prime.
10154
10155 * tparam.c [emacs]: Include lisp.h.
10156
10157 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
10158 and unistd.h.
10159
10160 2000-06-20 Gerd Moellmann <gerd@gnu.org>
10161
10162 * keyboard.c (adjust_point_for_property): Check if display
10163 property should be treated as intangible by looking at its value.
10164
10165 * xdisp.c (single_display_prop_intangible_p)
10166 (display_prop_intangible_p): New functions.
10167
10168 * dispextern.h (display_prop_intangible_p): Add prototype.
10169
10170 * xdisp.c (dump_glyph_row): Show type of glyph->object.
10171
10172 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
10173 argument to sigprocmask.
10174
10175 * s/sco5.h (sigblock): Redefined to pass a pointer as second
10176 argument to sigprocmask.
10177
10178 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
10179 sigprocmask_set, and pass a pointer to it to sigprocmask.
10180
10181 * sysdep.c (sigprocmask_set): New variable.
10182
10183 * fileio.c (make_temp_name): Don't use `%s' in string passed to
10184 report_file_error.
10185
10186 2000-06-20 Sam Steingold <sds@gnu.org>
10187
10188 * xrdb.c: Don't declare xmalloc, xrealloc.
10189
10190 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
10191
10192 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
10193 (re_comp): Cast gettext return value to avoid complaints when
10194 !HAVE_LIBINTL.
10195
10196 2000-06-20 Dave Love <fx@gnu.org>
10197
10198 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
10199
10200 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
10201
10202 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
10203
10204 * m/alpha.h: Don't declare xmalloc, xrealloc.
10205
10206 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
10207
10208 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
10209
10210 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
10211
10212 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
10213 HAVE_GETWD.
10214
10215 * keyboard.h (poll_for_input_1): Declare.
10216
10217 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
10218
10219 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
10220
10221 * doprnt.c: Don't declare xmalloc, xrealloc.
10222
10223 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
10224 (getenv, ctime, getwd): Removed.
10225 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
10226
10227 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
10228 x_set_tool_bar_lines.
10229
10230 * config.in: Add HAVE_GETWD. Move some definitions above
10231 machine/system includes.
10232
10233 2000-06-20 Kenichi Handa <handa@etl.go.jp>
10234
10235 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
10236
10237 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
10238 contain information about ENCODING.
10239
10240 * fontset.c (FONTSET_ASCII): Use the first element of char table
10241 for an ASCII font, not defalt slot.
10242 (fontset_ref_via_base): If FONTSET doesn't contain information for
10243 C, try the default fontset.
10244 (make_fontset): Don't copy the default fontset.
10245 (fontset_font_pattern): Likewise.
10246 (accumulate_font_info): If ELT is nil, use the corresponding
10247 element in the default fontset.
10248
10249 2000-06-19 Dave Love <fx@gnu.org>
10250
10251 * syntax.c (Fparse_partial_sexp): Doc fix.
10252
10253 * regex.h: Test PROTOTYPES as well as __STDC__.
10254
10255 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
10256 errno, strerror. Put text after #endif in comment.
10257
10258 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
10259
10260 * xterm.c (x_frame_of_widget): Likewise.
10261
10262 2000-06-19 Gerd Moellmann <gerd@gnu.org>
10263
10264 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
10265 to Vfundamental_mode_abbrev_table.
10266
10267 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
10268 bogus objects are marked. This slows down GC by ~80 percent, but
10269 it might be worth trying when debugging GC-related problems.
10270 This feature requires conservative stack marking to be enabled.
10271
10272 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
10273 returns XLookupChars, reset `modifiers' to zero.
10274
10275 2000-06-19 Dave Love <fx@gnu.org>
10276
10277 * mktime.c: Unprotoized.
10278
10279 2000-06-19 Richard Stallman <rms@gnu.org>
10280
10281 * data.c (set_internal): If variable is frame-local,
10282 store the new value immediately into the frame parameter alist.
10283
10284 2000-06-19 Ken Raeburn <raeburn@gnu.org>
10285
10286 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
10287 in the custom handler pointer.
10288
10289 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
10290 value, or checks for CHAR_META can fail when Lisp_Object is a
10291 union type.
10292 * keymap.c (get_keyelt): Likewise.
10293
10294 2000-06-19 Kenichi Handa <handa@etl.go.jp>
10295
10296 * ccl.h (struct ccl_program): New member eol_type.
10297 (struct ccl_spec): New member cr_carryover.
10298
10299 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
10300 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
10301
10302 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
10303 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
10304 (decode_eol_post_ccl): New function.
10305 (decode_coding): Don't detect EOL format here for CCL based coding
10306 systems.
10307 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
10308 decode_eol_post_ccl after running the CCL program.
10309 (code_convert_region): Don't detect EOL format here for CCL based
10310 coding systems.
10311 (decode_coding_string): Likewise.
10312
10313 2000-06-18 Ken Raeburn <raeburn@gnu.org>
10314
10315 * charset.c (update_charset_table): Use XINT on "iso_final_char"
10316 when treating it as an integer.
10317
10318 * coding.h (encode_coding_string): Declare.
10319
10320 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
10321 it as an integer.
10322
10323 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
10324 "xkeymap" to avoid shadowing the "enum map_type" value that needs
10325 to be passed to get_local_map.
10326
10327 * sound.c (Fplay_sound): Don't call make_number on
10328 Frun_hook_with_args count argument.
10329
10330 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
10331 for lisp objects in X event structure data field, when lisp
10332 objects are represented with unions.
10333 (x_scroll_bar_to_input_event): Ditto.
10334
10335 2000-06-16 Ken Raeburn <raeburn@gnu.org>
10336
10337 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
10338 termination of string. Fix sense of test whether
10339 Vline_number_display_limit is an integer.
10340
10341 2000-06-16 Gerd Moellmann <gerd@gnu.org>
10342
10343 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
10344 only if HAVE_X_WINDOWS.
10345
10346 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
10347 of titles.
10348
10349 * dispnew.c (update_frame_1): Handle case that cursor vpos is
10350 out of bounds.
10351
10352 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
10353
10354 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
10355 of its headers.
10356
10357 2000-06-15 Kenichi Handa <handa@etl.go.jp>
10358
10359 * coding.c (decode_coding_emacs_mule): Always set src_base at the
10360 start of the while loop.
10361
10362 2000-06-15 Gerd Moellmann <gerd@gnu.org>
10363
10364 * atimer.c (alarm_signal_handler): Add forward declaration.
10365
10366 * data.c (set_internal): Remove debug code.
10367
10368 2000-06-14 Gerd Moellmann <gerd@gnu.org>
10369
10370 * Makefile.in (bootstrap-temacs): Add `-I../src'.
10371
10372 * unexec.c (toplevel) [COFF]: Include coff.h.
10373
10374 * s/lynxos.h: New file.
10375
10376 * keymap.c (Fsingle_key_description): Enclose function key and
10377 event symbol names in angle brackets.
10378
10379 * xdisp.c (setup_echo_area_for_printing): Call
10380 message_log_maybe_newline if message_buf_print is not set.
10381
10382 * print.c (printchar, strout): Don't check message_buf_print
10383 before calling setup_echo_area_for_printing because that
10384 function does something useful even when message_buf_print is
10385 already set.
10386
10387 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
10388 New variables.
10389 (ensure_echo_area_buffers): Initialize echo buffer's
10390 truncate lines setting to nil.
10391 (with_echo_area_buffer): Don't set the echo buffer's truncate
10392 lines setting here.
10393 (set_message_1): Set it here instead, based on the value
10394 of message_truncate_lines.
10395 (resize_mini_window): Handle case that lines are truncated.
10396 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
10397 DEFVAR_BOOL message-truncate-lines.
10398
10399 * keyboard.c (read_char): Bind message-truncate-lines to t
10400 while displaying a help-echo.
10401
10402 * lisp.h (Qmessage_truncate_lines): External declaration.
10403
10404 2000-06-13 Gerd Moellmann <gerd@gnu.org>
10405
10406 * xdisp.c (Vline_number_display_limit): Renamed from
10407 line_number_display_limit.
10408 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
10409 Extend documentation string. Initialize
10410 Vline_number_display_limit to nil meaning no limit.
10411 (decode_mode_spec): Use Vline_number_display_limit with its new
10412 meaning.
10413
10414 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
10415
10416 2000-06-13 Richard Stallman <rms@gnu.org>
10417
10418 * frame.c (Fmodify_frame_parameters): Doc fix.
10419
10420 * xfns.c (x_set_frame_parameters): Comment fix.
10421
10422 * frame.c (store_frame_param): Call swap_in_global_binding if the
10423 variable's current binding was chosen based on this frame.
10424
10425 * data.c (swap_in_global_binding): New function.
10426
10427 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10428
10429 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
10430 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
10431
10432 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10433
10434 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
10435
10436 2000-06-12 Jason Rumney <jasonr@gnu.org>
10437
10438 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
10439
10440 * w32.h (EMACS_W32_H): Renamed from _NT_H_
10441
10442 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
10443
10444 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
10445
10446 2000-06-12 Gerd Moellmann <gerd@gnu.org>
10447
10448 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
10449 (syms_of_xfaces): Defsubr Sdump_colors.
10450 (x_free_colors): Don't treat b&w specially on default visual.
10451 (x_free_dpy_colors): New function.
10452 (free_face_colors): Don't check visual class; it's done
10453 in x_free_colors.
10454
10455 * xterm.c (x_frame_of_widget): New function.
10456 (x_alloc_nearest_color_for_widget): Use it.
10457 (x_copy_dpy_color): New function.
10458 (x_destroy_window): Free various colors.
10459
10460 2000-06-12 Kenichi Handa <handa@etl.go.jp>
10461
10462 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
10463
10464 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
10465
10466 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
10467
10468 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
10469
10470 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
10471
10472 2000-06-11 Dave Love <fx@gnu.org>
10473
10474 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
10475
10476 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
10477
10478 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
10479
10480 2000-06-11 Gerd Moellmann <gerd@gnu.org>
10481
10482 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
10483 to `XEvent *'.
10484
10485 2000-06-10 Kenichi Handa <handa@etl.go.jp>
10486
10487 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
10488 (regex_compile): Fix the code for handling the case of single byte
10489 char and multibyte char being mixed in a range within [...].
10490
10491 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
10492 and dst_multibyte members of coding.
10493
10494 * charset.c (update_charset_table): Update the table
10495 bytes_by_char_head.
10496 (init_charset_once): Initialize elements of bytes_by_char_head to
10497 1 except for leading codes for private charases.
10498
10499 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
10500 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
10501
10502 2000-06-09 Ken Raeburn <raeburn@gnu.org>
10503
10504 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
10505 access the data it doesn't point to.
10506
10507 2000-06-08 Gerd Moellmann <gerd@gnu.org>
10508
10509 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
10510 will be translated to a switch-frame event when reading the
10511 event queue. This is necessary because Emacs otherwise won't
10512 perform a switch-frame to a new frame until some other event, for
10513 example a keystroke event, forces it to do so. This has various
10514 effects, one visible being that the cursor of a frame created with
10515 C-x 5 2 or switched to with a window manager key binding like
10516 A-TAB stays hollow because selected_window isn't on the newly
10517 focused frame until the switch-frame is performed.
10518
10519 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
10520 generating a switch-frame event if necessary.
10521
10522 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
10523
10524 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
10525 it's an integer.
10526
10527 2000-06-08 Kenichi Handa <handa@etl.go.jp>
10528
10529 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
10530
10531 2000-06-07 Gerd Moellmann <gerd@gnu.org>
10532
10533 * window.c (displayed_window_lines): Take empty lines at
10534 the bottom of a window into account.
10535
10536 * window.c (displayed_window_lines): New function.
10537 (Fmove_to_window_line): Use displayed_window_lines to determine
10538 the number of lines to move, instead of using the window's height.
10539
10540 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
10541 to stop reading, even if the form read sets point to a different
10542 value when evaluated.
10543
10544 * xdisp.c (display_line): Fix code deciding in which line to
10545 put the cursor.
10546
10547 2000-06-07 Kenichi Handa <handa@etl.go.jp>
10548
10549 * fileio.c (e_write): Free composition data if stored in
10550 coding->cmp_data.
10551
10552 2000-06-06 Gerd Moellmann <gerd@gnu.org>
10553
10554 * xdisp.c (display_line): Set row's and iterator's
10555 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
10556 Set cursor even if row ends in the middle of a character.
10557 (dump_glyph_row): Print values of new flags.
10558 (redisplay_window) <cursor movement in unchanged window>: When
10559 point has been moved forward, and PT is at the end of the cursor
10560 row, don't place the cursor in the next row if the cursor row ends
10561 in the middle of a character or at ZV.
10562
10563 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
10564 (struct glyph_row): Add starts_in_middle_of_char_p and
10565 ends_in_middle_of_char_p.
10566 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
10567 ends_in_middle_of_char_p flag.
10568 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
10569
10570 * term.c (append_glyph): Revert change of 2000-06-06.
10571
10572 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
10573 padding glyph not fitting on line as whole character not
10574 fitting on line.
10575
10576 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
10577 this isn't true for images with `:ascent 100'.
10578
10579 2000-06-06 Kenichi Handa <handa@etl.go.jp>
10580
10581 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
10582 as modified if it is originally unmodified.
10583
10584 * term.c (encode_terminal_code): Change the way to check if
10585 terminal coding does any conversion.
10586 (append_glyph): Set glyph->pixel_width correctly.
10587
10588 * xdisp.c (display_line): While checking line continuation, pay
10589 attention to a padding glyph.
10590
10591 2000-06-05 Gerd Moellmann <gerd@gnu.org>
10592
10593 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
10594
10595 2000-06-05 Dave Love <fx@gnu.org>
10596
10597 * xdisp.c: Include fontset.h.
10598
10599 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
10600
10601 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10602
10603 * dispnew.c: Conditionally include term.h.
10604
10605 * coding.h: Declare code_convert_string_norecord.
10606
10607 * frame.h (struct frame): Use volatile unconditionally.
10608
10609 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
10610
10611 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
10612
10613 * systime.h: Protect against multiple inclusion.
10614 (timezone) [USG5_4]: Define as time_t.
10615
10616 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10617 (Foptimize_char_table, make_temp_name): Declare.
10618
10619 * Makefile.in (xdisp.o): Depend on fontset.h.
10620
10621 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10622
10623 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10624 (Foptimize_char_table, make_temp_name): Declare.
10625
10626 * s/irix4-0.h:
10627 * s/irix5-0.h:
10628 * s/netbsd.h: Don't define autoconfiscated MATHERR.
10629
10630 2000-06-02 Dave Love <fx@gnu.org>
10631
10632 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
10633
10634 2000-06-02 Gerd Moellmann <gerd@gnu.org>
10635
10636 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
10637 result face, set flags in that face indicating that colors may not
10638 be freed.
10639
10640 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
10641 glyph, use the ASCII NUL character to determine the face.
10642
10643 2000-06-02 Dave Love <fx@gnu.org>
10644
10645 * sysdep.c: Conditionally include stdlib.h, unistd.h.
10646 (VFORK_RETURN_TYPE): Remove.
10647
10648 * config.in: Add NO_MATHERR.
10649
10650 2000-06-01 Dave Love <fx@gnu.org>
10651
10652 * cmds.c (internal_self_insert): Don't check
10653 Vbefore_change_function, Vafter_change_function.
10654
10655 * insdel.c (signal_before_change, signal_after_change): Likewise.
10656
10657 * buffer.c (Vbefore_change_function, Vafter_change_function):
10658 Variables and their initializations deleted.
10659
10660 * callint.c (Fcall_interactively): Doc fix.
10661
10662 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
10663
10664 2000-05-31 Dave Love <fx@gnu.org>
10665
10666 * textprop.c: Revert last change -- duplicated.
10667
10668 2000-05-31 Gerd Moellmann <gerd@gnu.org>
10669
10670 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
10671 in #if 0.
10672
10673 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
10674
10675 2000-05-31 Jason Rumney <jasonr@gnu.org>
10676
10677 * search.c (Fre_search_forward, Fre_search_backward)
10678 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
10679
10680 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
10681
10682 2000-05-30 Jason Rumney <jasonr@gnu.org>
10683
10684 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
10685 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
10686
10687 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
10688
10689 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
10690 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
10691 expand a nil default_filename.
10692
10693 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
10694 pointer to glyph_to_pixel_coords, not a frame.
10695
10696 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
10697 coding.h to dependencies.
10698
10699 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
10700
10701 * w32console.c (glyph_to_pixel_coords): Change first parameter to
10702 window pointer to be consistent with w32term.c and xterm.c.
10703
10704 * w32fns.c: Format and doc changes to bring closer to xfns.c.
10705 (VIETNAMESE_CHARSET): Define if not defined in system headers.
10706 (Qline_spacing, Qcenter): New variables.
10707 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
10708 (x_set_line_spacing): New function.
10709 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
10710 (x_specified_cursor_type): New function.
10711 (x_set_cursor_type): Use it.
10712 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
10713 and icon strings.
10714 (validate_x_resource_name, x_get_resource_string): Measure lengths
10715 of external strings in bytes.
10716 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
10717 GetTextExtentPoint32 with NULL title.
10718 (Fx_create_frame): Initialize Qline_spacing.
10719 (w32_load_system_font): Initialize font->double_byte_p.
10720 (x_to_w32_charset): Use Vw32_charset_info_alist.
10721 (Image, busy cursor, tooltip functions): Merged changes from
10722 xfns.c. Not yet functional on Windows.
10723
10724 * w32gui.h (W32FontStruct): Add double_byte_p member.
10725
10726 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
10727 (emacs_button_translation): Use it.
10728 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
10729 in `mask' to be set.
10730
10731 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
10732 menu strings.
10733
10734 * w32term.c: Format and doc changes to bring closer to xterm.c.
10735 (w32_char_font_type): New enum.
10736 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
10737 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
10738 (w32_encode_char): New function.
10739 (x_encode_char): Removed.
10740 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
10741 x_encode_char and w32_font_is_double_byte.
10742 (x_produce_image_glyph): Use image_ascent.
10743 (x_produce_glyphs): Use new version of w32_per_char_metric and
10744 handle NULL return value. Allow extra line spacing.
10745 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
10746 (w32_get_glyph_overhangs): Remove unicode_p param. Use
10747 w32_font_type member of glyph instead.
10748 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
10749 (fast_find_position): Make sure not to consider rows not visible
10750 in the window.
10751 (w32_read_socket) [WM_MENUSELECT]: Cannot call
10752 w32_menu_display_help with input blocked, as it can abort.
10753 (x_display_and_set_cursor): Choose cursor depending
10754 on buffer-local value of cursor_type.
10755 (x_draw_bar_cursor): Add parameter WIDTH.
10756
10757 * w32term.h (CP_DEFAULT): Define.
10758 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
10759
10760 2000-05-30 Gerd Moellmann <gerd@gnu.org>
10761
10762 * search.c (Fre_search_forward, Fre_search_backward)
10763 (Fposix_search_backward, Fposix_search_forward): Doc fix.
10764
10765 2000-05-30 Kenichi Handa <handa@etl.go.jp>
10766
10767 * coding.c (detect_coding_iso2022): Fix code for checking
10768 CODING_CATEGORY_MASK_ISO_8_2.
10769
10770 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
10771
10772 * regex.c (PREFETCH_NOLIMIT): New function.
10773 (re_match_2_internal): Use it and adjust the end_match_2 logic.
10774
10775 2000-05-29 Gerd Moellmann <gerd@gnu.org>
10776
10777 * syntax.c (find_defun_start): Move test for
10778 open_paren_in_column_0_is_defun_start outside of the loop.
10779
10780 * xdisp.c (redisplay_window): Really switch buffers when
10781 displaying mode lines, and temporarily set selected_frame to the
10782 frame of the window that's redisplayed.
10783
10784 * xfaces.c (free_realized_faces): Block/unblock input.
10785 (free_realized_multibyte_face): Ditto.
10786
10787 2000-05-29 Dave Love <fx@gnu.org>
10788
10789 * textprop.c (Qkeymap): New variable.
10790 (syms_of_textprop): Intern it.
10791
10792 * keymap.c: Include intervals.h.
10793 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
10794
10795 * Makefile.in (keymap.o): Depend on intervals.h.
10796
10797 * keyboard.c (menu_bar_items, tool_bar_items)
10798 (Fexecute_extended_command): Deal with `keymap' property.
10799 (read_key_sequence): Track map from `keymap' property as well as
10800 `local_map'.
10801
10802 * intervals.c (get_local_map): Extra arg to allow looking for
10803 `keymap' too.
10804
10805 * intervals.h (map_property): New enum.
10806 (get_local_map): Extra arg using it.
10807 (Qkeymap): Declare.
10808
10809 * lisp.h (get_local_map): Don't declare here.
10810
10811 2000-05-29 Kenichi Handa <handa@etl.go.jp>
10812
10813 * Makefile.in (callproc.o): Depend on composite.h.
10814
10815 * callproc.c: Include composite.h.
10816 (Fcall_process): Handle composition correctly.
10817
10818 * coding.h (coding_allocate_composition_data): Extern it.
10819 (coding_restore_composition): Likewise.
10820
10821 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
10822 yet allocated, finish decoding with result
10823 CODING_FINISH_INSUFFICIENT_CMP.
10824 (coding_allocate_composition_data): Make it non-static.
10825 (coding_restore_composition): Likewise.
10826
10827 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
10828
10829 * charset.c (syms_of_charset): Revert last change.
10830
10831 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10832
10833 * term.c (produce_glyphs): Treat characters from the eight-bit-*
10834 charsets as unibyte, with 1-column screen width. Sent by Kenichi
10835 Handa.
10836
10837 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10838
10839 * charset.c (syms_of_charset): Set width of character sets
10840 eight-bit-control and eight-bit-graphic to 1 column.
10841
10842 2000-05-26 Gerd Moellmann <gerd@gnu.org>
10843
10844 * config.in (HAVE_SPEED_T): New define.
10845
10846 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
10847 `extern speed_t'.
10848
10849 2000-05-26 Dave Love <fx@gnu.org>
10850
10851 * coding.c (shrink_decoding_region): Initialize eol_conversion.
10852
10853 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
10854 (Fsubr_arity): New function.
10855 (syms_of_data): Install them.
10856
10857 2000-05-26 Kenichi Handa <handa@etl.go.jp>
10858
10859 * charset.c (init_charset_once): Set the table bytes_by_char_head
10860 correctly.
10861
10862 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
10863 the default fontset to what Emacs uses by default.
10864 (check_registry_encoding): This function deleted.
10865 (Fset_fontset_font): Remove the adhoc condition for the default
10866 fontset. Allow cons in FONTNAME.
10867
10868 * fns.c (map_char_table): Ignore char-table entries for
10869 charsets eight-bit-control and eight-bit-graphic.
10870
10871 2000-05-25 Ken Raeburn <raeburn@gnu.org>
10872
10873 * emacs.c (main): Initialize keyboard syms before initializing
10874 window code, so face names are available.
10875
10876 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
10877
10878 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
10879 of an anchor at the beginning of a shy-group.
10880
10881 2000-05-25 Gerd Moellmann <gerd@gnu.org>
10882
10883 * xdisp.c (handle_invisible_prop): Don't try to skip over
10884 invisible text if end of text is already reached.
10885
10886 2000-05-25 Dave Love <fx@gnu.org>
10887
10888 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
10889
10890 * coding.c (encode_eol): Add null statement after label.
10891
10892 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
10893
10894 * w16select.c (Fw16_set_clipboard_data): Fix the change from
10895 2000-05-20.
10896
10897 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10898
10899 * ccl.c (ccl_driver): Fix previous change.
10900
10901 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10902
10903 * coding.c (run_pre_post_conversion_on_str): Set point to the
10904 beginning of buffer before calling coding->post_read_conversion.
10905 (decode_coding_string): Give correct args to
10906 run_pre_post_conversion_on_str.
10907 (encode_coding_string): Likewise.
10908
10909 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10910 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10911 eight-bit-graphic correctly.
10912
10913 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
10914
10915 * fileio.c (Finsert_file_contents): Even if a file is not found,
10916 execute codes for setting up coding system. Call
10917 after-insert-file-functions unconditionally.
10918
10919 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10920
10921 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10922 BSD_PGRPS are not defined.
10923
10924 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10925
10926 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10927 DESCRIPTION.
10928 (syms_of_charset): Avoid building same strings.
10929
10930 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10931
10932 * lread.c (Fload): Add a comment about the meaning of
10933 Vuser_init_file being t.
10934
10935 * puresize.h (BASE_PURESIZE): Increase to 675000.
10936
10937 * s/gnu-linux.h (setpgrp): Don't define it here because this
10938 prevents compilation on GNU/Linux systems with glib 2.2.
10939
10940 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10941 as setpgid.
10942
10943 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10944
10945 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10946 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10947 version.
10948 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10949
10950 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10951
10952 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10953
10954 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10955
10956 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10957
10958 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10959
10960 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10961
10962 * keyboard.c (read_char): Allow character codes 128..255 to be
10963 handled by input-method-function.
10964
10965 * insdel.c (adjust_markers_for_replace): Fix previous change.
10966 (adjust_after_replace): If PREV_TEXT is nil, call
10967 adjust_markers_for_insert, not adjust_markers_for_replace.
10968
10969 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10970
10971 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10972 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10973 [HAVE_GRANDPT]: Define.
10974 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10975
10976 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10977 like SYSV_PTYS.
10978
10979 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10980
10981 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10982
10983 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10984
10985 The following changes are to handle 8-bit characters in a
10986 multibyte buffer/string without facing with byte combining
10987 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10988 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10989
10990 * Makefile.in (fns.o): Depend on charset.h.
10991
10992 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10993 convert it to unibyte.
10994 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10995
10996 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10997 apparent char boundary.
10998 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10999 0x80..0x9F to/from multibyte form.
11000
11001 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
11002 to unibyte.
11003
11004 * callproc.c (Fcall_process): Always encode an argument string if
11005 it is multibyte. Setup src_multibyte and dst_multibyte members of
11006 process_coding properly.
11007
11008 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
11009 SPLIT_NON_ASCII_CHAR.
11010
11011 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
11012 as is.
11013 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
11014
11015 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
11016 (SPLIT_CHARACTER_SEQ): This macro deleted.
11017 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
11018 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
11019 and eight-bit-graphic.
11020 (char_to_string): Likewise. Signal an error for too large
11021 character code.
11022 (char_printable_p): Return 0 for 8-bit characters.
11023 (update_charset_table): Update iso_charset_table only when a final
11024 character is non-negative.
11025 (find_charset_in_text): Renamed from find_charset_in_str.
11026 Arguments and return value changed. Callers changed.
11027 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
11028 be -1 if CHARSET is used only internally.
11029 (Fmake_char_internal): Handle new charsets; eight-bit-control and
11030 eight-bit-graphic.
11031 (Fcharset_after): Simplified.
11032 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
11033 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
11034 (multibyte_chars_in_text): Simplified by assuming there's no
11035 invalid multibyte sequence.
11036 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
11037 (str_as_unibyte): New functions.
11038 (Fstring): Simpified by assuming that byte combining never happens.
11039 (init_charset_once): Initialization for
11040 LEADING_CODE_8_BIT_CONTROL.
11041 (syms_of_charset): Intern and staticpro Qeight_bit_control and
11042 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
11043 eight-bit-control and eight-bit-graphic.
11044
11045 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
11046 (CHARSET_8_BIT_GRAPHIC): New macros.
11047 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
11048 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
11049 (CHARSET_REVERSE_CHARSET): Likewise.
11050 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
11051 eight-bit-graphic.
11052 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
11053 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
11054 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
11055 encounter an invalid multibyte sequence.
11056 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
11057 sequence is always valid.
11058 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
11059 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
11060 (CHAR_STRING): For 8-bit characters, call char_to_string.
11061 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
11062 multibyte sequence is always valid.
11063 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
11064 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
11065 (str_as_unibyte): Extern them.
11066 (BCOPY_SHORT): Fix a bug.
11067 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
11068 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
11069 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
11070 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
11071
11072 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
11073 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
11074 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
11075 (EMIT_BYTES): New macros.
11076 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
11077 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
11078 macros deleted.
11079 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
11080 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
11081 check the validity of multibyte sequence.
11082 (decode_coding_emacs_mule): New function.
11083 (encode_coding_emacs_mule): New macro.
11084 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
11085 the source.
11086 (DECODE_ISO_CHARACTER): Just return a character code.
11087 (DECODE_COMPOSITION_START): Set coding->result instead of result.
11088 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
11089 EMIT_CHAR to produced decoded characters. Exit the loop only by
11090 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
11091 block here.
11092 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
11093 only position codes for an invalid character.
11094 (encode_designation_at_bol): Return new destination pointer. 5th
11095 arg DSTP is changed to DST.
11096 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
11097 from the source by ONE_MORE_CHAR. Don't handle the case of last
11098 block here.
11099 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
11100 macros deleted.
11101 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
11102 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
11103 TWO_MORE_BYTES to fetch a byte from the source.
11104 (encode_eol): Pay attention to coding->src_multibyte.
11105 (detect_coding, detect_eol): Preserve members src_multibyte and
11106 dst_multibyte.
11107 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
11108 (encoding_buffer_size): Set magnification to 3 for all coding
11109 systems that require encoding.
11110 (ccl_coding_driver): For decoding, be sure that the result is
11111 valid multibyte sequence.
11112 (decode_coding): Initialize coding->errors and coding->result.
11113 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
11114 and raw-text, always call decode_eol. Handle the case of last
11115 block here. If not coding->dst_multibyte, convert the resulting
11116 sequence to unibyte.
11117 (encode_coding): Initialize coding->errors and coding->result.
11118 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
11119 and raw-text, always call encode_eol. Handle the case of last
11120 block here.
11121 (shrink_decoding_region, shrink_encoding_region): Detect cases
11122 that we can't skip data more rigidly.
11123 (code_convert_region): Setup src_multibyte and dst_multibyte
11124 members of coding. For decoding, if the buffer is multibyte,
11125 convert the source sequence to unibyte in advance. For encoding,
11126 if the buffer is multibyte, convert the resulting sequence to
11127 multibyte afterward.
11128 (run_pre_post_conversion_on_str): New function.
11129 (code_convert_string): Deleted and divided into the following two.
11130 (decode_coding_string, encode_coding_string): New functions.
11131 (code_convert_string1, code_convert_string_norecord): Call one of
11132 above.
11133 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
11134 MAKE_NON_ASCII_CHAR.
11135 (Fset_terminal_coding_system_internal)
11136 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
11137 and dst_multibyte members.
11138 (init_coding_once): Initialize iso_code_class with new enum
11139 ISO_control_0 and ISO_control_1.
11140
11141 * coding.h (enum iso_code_class_type): Member ISO_control_code is
11142 devided into ISO_control_0 and ISO_control_1.
11143 (struct coding_system): New members src_multibyte, dst_multibyte,
11144 errors, and result. Delete member fake_multibyte.
11145 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
11146 nonzero.
11147 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
11148 nonzero.
11149
11150 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11151 (Faset): Likewise.
11152
11153 * editfns.c (Fformat): Be sure to convert 8-bit characters to
11154 multibyte form.
11155 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
11156 combining occurs.
11157 (Ftranspose_region): Delete codes for handling byte combining.
11158
11159 * fileio.c (Finsert_file_contents): Setup src_multibyte and
11160 dst_multibyte members of coding. On handling REPLACE on unibyte
11161 buffer, convert the result of decode_coding to unibyte. On
11162 inserting into a mutibyte buffer, always call code_convert_region.
11163 (e_write): Setup coding->src_multibyte according to the
11164 multibyteness of the source (buffer or string).
11165
11166 * fns.c (concat): Handle 8-bit characters correctly.
11167 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
11168 unibyte in the result.
11169 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
11170 valid multibyte form in the result.
11171 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11172 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
11173 return -1, signal an error.
11174 (base64_encode_1): New arg MULTIBYTE. Get each character by
11175 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
11176 character is found, return -1.
11177 (Fbase64_decode_region): Delete codes for handling byte-combining.
11178 Treat each decoded byte as a unibyte character.
11179 (Fbase64_decode_string): Return unibyte string.
11180 (Fcompare_strings, concat, string_byte_to_char): Use
11181 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
11182 FETCH_STRING_CHAR_ADVANCE.
11183 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11184 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
11185
11186 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
11187 SPLIT_NON_ASCII_CHAR.
11188 (fontset_ref_via_base, fontset_set): Likewise
11189
11190 * insdel.c (adjust_markers_for_record_delete): Deleted.
11191 (adjust_markers_for_insert): Argument changed. Caller changed.
11192 (adjust_markers_for_replace): Likewise.
11193 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
11194 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
11195 (copy_text): Delete unused local varialbe c_save. For converting
11196 to multibyte, be sure to make all 8-bit characters in valid
11197 multibyte form.
11198 (count_size_as_multibyte): Handle 8-bit characters correctly.
11199 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11200 (adjust_after_replace, replace_range, del_range_2)
11201 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
11202 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
11203 (adjust_after_replace, replace_range, del_range_2) Delete codes for
11204 handling byte combining.
11205 (adjust_before_replace): Deleted.
11206
11207 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
11208 SPLIT_NON_ASCII_CHAR.
11209 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
11210 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11211 (Fkey_description): Likewise.
11212
11213 * lread.c (read1): On reading multibyte string, be sure to make
11214 all 8-bit chararacters in valid multibyte form.
11215 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11216
11217 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
11218 unconditionally.
11219
11220 * process.c (Fstart_process): GCPRO current_dir before calling
11221 Ffind_operation_coding_system. Encode arguments here.
11222 (create_process): Don't encode arguments here. Setup
11223 src_multibyte and dst_multibyte members of struct coding.
11224 (read_process_output): Setup src_multibyte and dst_multibyte
11225 members of struct coding. If the output is to multibyte buffer,
11226 always decode the output of the process. Adjust the
11227 representation of 8-bit characters to the multibyteness of the output.
11228 (send_process): Setup coding->src_multibyte according to the
11229 multibyteness of the source.
11230
11231 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
11232 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
11233 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
11234
11235 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
11236
11237 * w16select.c (Fw16_set_clipboard_data): Setup members
11238 src_multibyte and dst_multibyte of coding. Adjusted for the
11239 change for find_charset_in_str.
11240 (Fw16_get_clipboard_data): Likewise.
11241
11242 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
11243 dst_multibyte of coding.
11244 (x_to_w32_font): Likewise.
11245
11246 * w32select.c (Fw32_set_clipboard_data): Setup members
11247 src_multibyte and dst_multibyte of coding. Adjusted for the
11248 change for find_charset_in_str.
11249 (Fw32_get_clipboard_data): Likewise.
11250
11251 * xdisp.c (get_next_display_element): Handle 8-bit characters
11252 correctly.
11253 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
11254 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
11255
11256 * xselect.c (selection_data_to_lisp_data): Setup members
11257 src_multibyte and dst_multibyte of coding. Adjusted for the
11258 change for find_charset_in_str.
11259 (lisp_data_to_selection_data): Likewise.
11260
11261 2000-05-19 Gerd Moellmann <gerd@gnu.org>
11262
11263 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
11264
11265 * dispextern.h (Vimage_types): Add extern declaration.
11266
11267 * xdisp.c (Vimage_types): Moved here from xfns.c.
11268 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
11269
11270 * xfns.c (Vimages_types): Moved to xdisp.c.
11271 (syms_of_xfns): Move `image-types' to xdisp.c.
11272
11273 * w32fns.c (Vimage_types): Removed.
11274 (syms_of_w32fns): Remove `image-types'.
11275
11276 2000-05-18 Kenichi Handa <handa@etl.go.jp>
11277
11278 * fns.c (map_char_table): Pay attention to character number of
11279 charset. Check the validity of charset at the first level. For
11280 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
11281 the default value.
11282
11283 * fontset.c: Include "buffer.h".
11284 (fs_load_font): If the face has fontset, record the face ID in
11285 that fontset.
11286 (Finternal_char_font): New function.
11287 (accumulate_font_info): New function.
11288 (Ffontset_info): Rewritten for the new fontset implementation.
11289 (syms_of_fontset): Register Vdefault_fontset in the first element
11290 of Vfontset_table. Include Vdefault_fontset in
11291 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
11292 function.
11293
11294 2000-05-16 Dave Love <fx@gnu.org>
11295
11296 * m/iris5d.h: Deleted -- unused.
11297
11298 2000-05-16 Gerd Moellmann <gerd@gnu.org>
11299
11300 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
11301 `invalid' instead of `illegal'.
11302
11303 * indent.c (Fmove_to_column): When ending within a tab, insert
11304 spaces first so that markers at the end of the tab get adjusted.
11305
11306 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
11307 buffer list that wasn't selected in that frame.
11308
11309 * filelock.c (get_boot_time): To obtain an 8 char file name, which
11310 is needed on mescaline, use a 2 char prefix, and call
11311 make_temp_name with second arg non-zero.
11312
11313 * fileio.c (make_temp_name): New function, extracted from
11314 Fmake_temp_name.
11315 (Fmake_temp_name): Use it.
11316
11317 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
11318
11319 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
11320
11321 2000-05-15 Gerd Moellmann <gerd@gnu.org>
11322
11323 * Makefile.in (lisp): Add env.elc.
11324
11325 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
11326
11327 2000-05-12 Gerd Moellmann <gerd@gnu.org>
11328
11329 * search.c (Freplace_match): Handle case of `\N' in the
11330 replacement when there's no group N.
11331
11332 2000-05-11 Gerd Moellmann <gerd@gnu.org>
11333
11334 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
11335 of the message to message_dolog.
11336
11337 * keyboard.c (read_char): Don't clear current message for help
11338 events; let the code handling help events handle this. Change
11339 code detecting help events that should be ignored.
11340
11341 * xdisp.c (handle_single_display_prop): Don't try to set PT if
11342 we're interating over a string.
11343
11344 2000-05-09 Dave Love <fx@gnu.org>
11345
11346 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
11347 that offset before writing. Move gcpro region past call of
11348 Ffile_regular_p.
11349
11350 2000-05-04 Dave Love <fx@gnu.org>
11351
11352 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
11353
11354 2000-05-04 Gerd Moellmann <gerd@gnu.org>
11355
11356 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
11357 of inserted characters when BUF equals the current buffer, and PT
11358 is in front of or equal to FROM.
11359
11360 2000-05-03 Gerd Moellmann <gerd@gnu.org>
11361
11362 * xdisp.c (handle_single_display_prop): If display property value
11363 is invalid, or something not supported on the frame, restore
11364 iterator's position to what it was initially. Make sure to return
11365 0 for invalid and unsupported property values.
11366
11367 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
11368 that x_per_char_metric returns null.
11369
11370 2000-05-02 Gerd Moellmann <gerd@gnu.org>
11371
11372 * xterm.h (struct face): Add forward declaration.
11373 (struct image): Ditto.
11374 (image_ascent): Add prototype.
11375
11376 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
11377 (x_draw_image_relief, x_draw_image_foreground_1): Call function
11378 image_ascent instead of using IMAGE_ASCENT.
11379
11380 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
11381 (IMAGE_ASCENT): Removed.
11382
11383 * xfns.c (Qcenter): New variable.
11384 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
11385 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
11386 (image_ascent): New function.
11387 (lookup_image): Recognize `:ascent center'.
11388 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
11389 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
11390 (xbm_load): Don't set image's ascent here.
11391 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
11392 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
11393 check ascent values here.
11394 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
11395 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
11396 (syms_of_xfns): Initialize Qcenter.
11397
11398 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
11399 to the limits, increase the limits.
11400
11401 2000-05-01 Kenichi Handa <handa@etl.go.jp>
11402
11403 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
11404 Check Vfont_encoding_alist against the full name of the opened font.
11405
11406 2000-04-28 Gerd Moellmann <gerd@gnu.org>
11407
11408 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
11409 taller than the window.
11410
11411 2000-04-28 Kenichi Handa <handa@etl.go.jp>
11412
11413 * xfaces.c (realize_x_face): Fix the argument of the second
11414 xassert. BASE_FACE may not be a face for ASCII.
11415
11416 2000-04-27 Gerd Moellmann <gerd@gnu.org>
11417
11418 * print.c (print_object): Treat print-length < 0 as nil.
11419
11420 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
11421
11422 * s/freebsd.h (TERMCAP_OBJ): Removed.
11423 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
11424
11425 * lread.c (read1): Don't treat period followed by certain
11426 characters as symbol start.
11427
11428 * xfns.c (slurp_file): New function.
11429 (xbm_image_p): Handle case of in-memory XBM files.
11430 (xbm_scan): Rewritten to work on memory buffers instead of files.
11431 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
11432 Work on memory buffers instead of files. If DATA is null test
11433 if buffer looks like an in-memory XBM file.
11434 (xbm_load_image): Renamed from xbm_load_image_file. Work on
11435 memory buffers instead of files.
11436 (xbm_file_p): New function.
11437 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
11438
11439 * lread.c (end_of_file_error): New function.
11440 (read1): Call it instead of signaling `end-of-file' directly.
11441
11442 * print.c (print_error_message): Print data of `end-of-file'
11443 with Fprinc instead of Fprin1.
11444
11445 2000-04-26 Ken Raeburn <raeburn@gnu.org>
11446
11447 * window.c (freeze_window_start): Check that minibuffer scroll
11448 window isn't nil before extracting the window structure pointer
11449 from it.
11450
11451 * undo.c (record_delete): If we hit the end of the undo list, stop
11452 picking elements apart.
11453
11454 2000-04-26 Gerd Moellmann <gerd@gnu.org>
11455
11456 * xdisp.c (display_line): If lines are continued, restore
11457 iterator's ascent/descent information to the values before the
11458 first glyph not fitting on the line.
11459
11460 2000-04-25 Gerd Moellmann <gerd@gnu.org>
11461
11462 * xdisp.c (try_window_id) <all changes above window start>: Adjust
11463 positions in glyph matrix. Don't compute new window end positions.
11464
11465 * dispnew.c (increment_matrix_positions): Renamed from
11466 increment_glyph_matrix_buffer_positions.
11467 (increment_row_positions): Renamed from
11468 increment_glyph_row_buffer_positions.
11469
11470 * dispextern.h: Change names of renamed functions from dispnew.c
11471 in prototypes.
11472
11473 2000-04-24 Gerd Moellmann <gerd@gnu.org>
11474
11475 * fileio.c (Fdo_auto_save): Create directories for auto-save
11476 list file if necessary.
11477
11478 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
11479 from buffer or frame.
11480 (automatic_hscrolling_p): New variable.
11481 (hscroll_windows): Scroll windows horizontally only if automatic
11482 hscrolling is allowed.
11483 (syms_of_xdisp): New variable `automatic-hscrolling'.
11484
11485 * frame.h (struct frame): Add member extra_line_spacing.
11486
11487 * xfns.c (x_set_line_spacing): New function.
11488 (Fx_create_frame): Set line spacing from resources.
11489 (Qline_spacing): New variable.
11490 (syms_of_xfns): Initialize Qline_spacing.
11491
11492 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
11493
11494 * buffer.c (init_buffer_once): Handle extra_line_spacing.
11495 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
11496 (reset_buffer): Don't initialize extra2 and extra3. Initialize
11497 extra_line_spacing from default value.
11498 (init_buffer_once): Initialize default value of extra_line_spacing.
11499
11500 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
11501 and extra3.
11502
11503 * xterm.c (x_produce_glyphs): Remove reference to struct it's
11504 prompt_width. Add extra line spacing.
11505
11506 * term.c (produce_glyphs): Remove reference to struct it's
11507 prompt_width.
11508
11509 * dispextern.h (struct it): Remove member prompt_width, add
11510 extra_line_spacing.
11511
11512 2000-04-22 Gerd Moellmann <gerd@gnu.org>
11513
11514 * dispnew.c (update_frame_line): When writing a whole line, make
11515 sure cursor is in the right row afterwards, otherwise a use of
11516 capability `ch' in cmgoto might leave the cursor in the row below.
11517
11518 2000-04-21 Gerd Moellmann <gerd@gnu.org>
11519
11520 * lisp.h (struct Lisp_Buffer_Cons): Remove.
11521
11522 * keyboard.c (timer_check): Fix typo in comment.
11523
11524 2000-04-21 Kenichi Handa <handa@etl.go.jp>
11525
11526 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
11527 name change: ch -> character.
11528
11529 2000-04-20 Gerd Moellmann <gerd@gnu.org>
11530
11531 * keyboard.c (echo_message_buffer): New variable.
11532 (echo_now): Set echo_message_buffer to the echo area buffer used
11533 to display the echo.
11534 (cancel_echoing): Reset echo_message_buffer to nil.
11535 (read_char): Code rewritten that handles canceling an echo or
11536 echoing a dash, respectively.
11537
11538 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
11539 directory doesn't exist.
11540
11541 2000-04-19 Dave Love <fx@gnu.org>
11542
11543 * fns.c (syms_of_fns): Defsubr mapc.
11544 (concat): Don't allow numeric args.
11545 (Fconcat): Doc change.
11546
11547 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
11548
11549 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
11550 instead define end_match(1|2) more carefully.
11551 Use GET_CHAR_BEFORE_2 for `begline'.
11552
11553 2000-04-19 Gerd Moellmann <gerd@gnu.org>
11554
11555 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
11556 on 64-bit systems where NULL is defined as `0'.
11557
11558 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
11559 the `variable argument list' to make it work on Alpha.
11560
11561 * m/alpha.h (_LP64) [!_LP64]: Define.
11562 (ORDINARY_LINK): Define for NetBSD.
11563
11564 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
11565
11566 2000-04-19 Dave Love <fx@gnu.org>
11567
11568 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
11569 change.
11570
11571 * Makefile.in (LIBS): Don't use.
11572 (GETLOADAVG_OBJ): Define again.
11573 (otherobj): Add GETLOADAVG_OBJ.
11574
11575 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
11576
11577 2000-04-18 Gerd Moellmann <gerd@gnu.org>
11578
11579 * lread.c (read_filtered_event): Cancel and start busy cursor.
11580
11581 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
11582 that the per-character metrics may be null.
11583
11584 2000-04-17 Gerd Moellmann <gerd@gnu.org>
11585
11586 * buffer.c (clone_per_buffer_values): New function.
11587 (Fmake_indirect_buffer): Add optional argument CLONE. Call
11588 clone_per_buffer_values if CLONE is not nil.
11589
11590 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
11591
11592 2000-04-16 Dave Love <fx@gnu.org>
11593
11594 * Makefile.in: Remove obsolete localcpp stuff.
11595 (GETLOADAVG_OBJ): Don't define.
11596 (obj): Move LIBOBJS...
11597 (otherobj): ... to here.
11598 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
11599 whitespace-only lines after the continuation (Irix).
11600
11601 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11602
11603 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
11604
11605 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
11606
11607 2000-04-14 Dave Love <fx@gnu.org>
11608
11609 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
11610 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
11611 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
11612 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
11613 NLIST_STRUCT.
11614
11615 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
11616 autoconfiscated HAVE_GETLOADAVG.
11617
11618 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
11619 BROKEN_MKTIME.
11620
11621 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11622
11623 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
11624 (fill_in_lock_file_name): Avoid existing files that aren't links.
11625
11626 2000-04-14 Dave Love <fx@gnu.org>
11627
11628 * Makefile.in (LIBS, LIBOBJS): New variable.
11629 (INTERVAL_SRC): Convert to make variable.
11630 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
11631 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
11632 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
11633 add LIBOBJS.
11634 (SOME_MACHINE_OBJECTS): Remove interval stuff.
11635 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
11636 (shortlisp): Add facemenu, float-sup, frame.
11637 (SOME_MACHINE_LISP): Remove them from here.
11638 (LIBES): Change unused LDLIBS to autoconf LIBS.
11639
11640 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
11641
11642 2000-04-14 Kenichi Handa <handa@etl.go.jp>
11643
11644 * composite.c (update_compositions): If FROM and TO are not in a
11645 valid range, do nothing.
11646
11647 2000-04-13 Gerd Moellmann <gerd@gnu.org>
11648
11649 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
11650
11651 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
11652
11653 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
11654 as TERMCAP_OBJ.
11655
11656 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
11657
11658 * fileio.c (a_write): Remove redundant semi-colons.
11659 (e_write): Return -1 if failed to write all the data.
11660 This fixes the changes made at 1999-12-15.
11661
11662 2000-04-12 Dave Love <fx@gnu.org>
11663
11664 * fns.c (mapcar1): Test for null vals to support mapc.
11665 (Fmapc): New function.
11666
11667 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
11668
11669 * msdos.c (NUM_MOUSE_BUTTONS): Define.
11670 (IT_frame_up_to_date): Support the buffer local value of
11671 cursor-type, if defined.
11672
11673 2000-04-10 Dave Love <fx@gnu.org>
11674
11675 * editfns.c (preceding-char, following-char): Doc fix.
11676
11677 2000-04-10 Ken Raeburn <raeburn@gnu.org>
11678
11679 * Makefile.in (temacs): Revert 2000-03-12 change.
11680
11681 2000-04-10 Jason Rumney <jasonr@gnu.org>
11682
11683 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
11684
11685 2000-04-10 Gerd Moellmann <gerd@gnu.org>
11686
11687 * xdisp.c (setup_echo_area_for_printing): Choose an echo
11688 area buffer, if it's not set up yet.
11689
11690 * indent.c (compute_motion): Set immediate_quit.
11691
11692 2000-04-09 Gerd Moellmann <gerd@gnu.org>
11693
11694 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
11695 (realize_tty_face): Suppress boldness if colors are the inverse of
11696 the default colors, and tty_suppress_bold_inverse_default_colors_p
11697 is set.
11698 (Ftty_suppress_bold_inverse_default_colors): New function.
11699 (syms_of_xfaces): Defsubr it.
11700
11701 * buffer.c (Frestore_buffer_modified_p): New function.
11702 (syms_of_buffer): Defsubr it.
11703
11704 2000-04-08 Ken Raeburn <raeburn@gnu.org>
11705
11706 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
11707 charset id (int) argument, not a charset (Lisp_Object).
11708
11709 * coding.h (code_convert_string): Declare.
11710 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
11711 object, as the fourth argument to code_convert_string.
11712
11713 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
11714 (Fset_fontset_font): Use EQ to compare lisp objects.
11715
11716 2000-04-05 Ken Raeburn <raeburn@gnu.org>
11717
11718 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
11719 a pointer that looks like a lisp object.
11720 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
11721 zero, instead see whether it's an integer object, since they can't
11722 have intervals.
11723 (GET_INTERVAL_OBJECT): Simply assign to the destination.
11724
11725 * dispnew.c (allocate_matrices_for_frame_redisplay)
11726 (direct_output_forward_char): Use X(U)INT and make_number as needed
11727 to convert between (unsigned) int values and lisp integers.
11728 * keyboard.c (read_key_sequence): Likewise.
11729 * lread.c (substitute_object_recurse): Likewise.
11730 * fns.c (concat, hash_lookup, hash_remove): Likewise.
11731 * minibuf.c (do_completion, Fminibuffer_complete_word)
11732 (Fminibuffer_completion_help): Likewise.
11733 * term.c (produce_special_glyphs): Likewise.
11734
11735 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
11736 * print.c (print_preprocess, print_object): Likewise.
11737
11738 * search.c (compile_pattern): Use NILP when checking for nil.
11739
11740 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
11741 __OPTIMIZE__]: Provide a GNU C macro version that handles
11742 lisp-object unions.
11743 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
11744 field, to better cope with ENABLE_CHECKING and calls that modify a
11745 Lisp_Object using its old value.
11746
11747 2000-04-04 Gerd Moellmann <gerd@gnu.org>
11748
11749 * window.c (compare_window_configurations): Signal an error
11750 if parameters C1 or C2 aren't window configurations.
11751
11752 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
11753 AFTER_POTENTIAL_GC calls around calls to functions that can
11754 signal an error and thus invoke the debugger.
11755
11756 2000-04-03 Gerd Moellmann <gerd@gnu.org>
11757
11758 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
11759 an error if decoding fails.
11760
11761 * keyboard.c (lispy_mouse_names): Variable removed.
11762 (Vlispy_mouse_stem): New variable.
11763 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
11764 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
11765 for any mouse button number. Increase size of mouse_syms and
11766 button_down_location as needed. Call modify_event_symbol with
11767 different arguments.
11768 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
11769 Call modify_event_symbol with different arguments.
11770 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
11771 for any button number. Call modify_event_symbol with different
11772 arguments.
11773 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
11774 Accept a string for NAME_ALIST_OR_STEM.
11775
11776 * lisp.h (larger_vector): Add prototype.
11777
11778 * fns.c (larger_vector): Make externally visible.
11779
11780 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
11781
11782 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
11783
11784 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
11785 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
11786 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
11787 we are between str1 and str2.
11788 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
11789 (PATFETCH): Use `TRANSLATE'.
11790 (PATFETCH_RAW): Fetch multibyte char if applicable.
11791 (PATUNFETCH): Remove.
11792 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
11793 When writing a char, write it directly into the pattern buffer rather
11794 than going needlessly through a temp char-array.
11795 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
11796 multibyte magic and remove the useless `#ifdef emacs'.
11797 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
11798 buffer.
11799
11800 * regex.h (struct re_pattern_buffer): Make field `multibyte'
11801 conditional on `emacs'.
11802
11803 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
11804
11805 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11806
11807 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
11808 non-union-type versions of XMARK and friends here, because XMARK
11809 and friends won't work on an integer field if NO_UNION_TYPE is not
11810 defined.
11811 (make_number): Define as a function if it's not defined as a macro.
11812
11813 * composite.c (run_composite_function): Use NILP when checking for nil.
11814 (syms_of_composite): Delete local var NARGS, pass an int as first
11815 argument to Fmake_hash_table.
11816
11817 * editfns.c (text_property_stickiness): Use NILP to test
11818 Lisp_Object boolean value.
11819 (Fmessage_or_box): Don't use NILP to test int variable.
11820 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
11821 problems reading from and changing the same lisp value in an
11822 XSETSTRING call.
11823
11824 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11825
11826 * term.c (TN_no_color_video): New variable.
11827 (term_init): Intitialize TN_no_color_video.
11828 (enum no_color_bit): New enumeration.
11829 (MAY_USE_WITH_COLORS_P): New macro.
11830 (turn_on_face): Use it to determine if attributes may be used
11831 combined with colors.
11832
11833 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11834
11835 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
11836 with int lvalues via casts; instead, just yield lisp object lvalues.
11837 (enlarge_window): Variable sizep now points to Lisp_Object. Use
11838 proper accessor macros.
11839 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
11840 (grow_mini_window): Fix typo getting int value of root->height.
11841
11842 * xdisp.c (compute_string_pos): Fix order of arguments to
11843 string_pos_nchars_ahead.
11844 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
11845 count arg to variable-arg routines like Frun_hook_with_args and
11846 Fformat.
11847 (back_to_previous_visible_line_start)
11848 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
11849 fixed-arg routines like Fget_char_property and Fmake_string.
11850 (reconsider_clip_changes): Use XINT when comparing integer lisp
11851 objects, or passing them as int arguments.
11852 (mark_window_display_accurate, insert_left_trunc_glyphs)
11853 (append_space, extend_face_to_end_of_line): Use make_number when
11854 storing or passing integer values as lisp objects.
11855 (set_cursor_from_row, highlight_trailing_whitespace): Use
11856 INTEGERP, not implicit test against zero, for glyph object.
11857 (try_window_id): Don't use make_number when we want an int value.
11858
11859 * xfaces.c (xlfd_symbolic_value): Make last argument a
11860 Lisp_Object, to be consistent with callers.
11861 (Fbitmap_spec_p): Use XINT to get numeric value of height.
11862 (lface_hash): Apply XFASTINT to lisp values before folding in.
11863
11864 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
11865 fill in window width and height. Pass an int, not a lisp object,
11866 as first arg to Finsert.
11867
11868 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11869
11870 * xfaces.c (realize_basic_faces): Block input while realizing
11871 the faces.
11872
11873 * keyboard.c (lispy_mouse_names): Add additional mouse names.
11874
11875 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
11876
11877 2000-03-31 Gerd Moellmann <gerd@gnu.org>
11878
11879 * xterm.c (x_produce_glyphs): When displaying unibyte text
11880 or ASCII, handle case that per-char metric is null.
11881
11882 2000-03-30 Ken Raeburn <raeburn@gnu.org>
11883
11884 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
11885
11886 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
11887 (XSUBR, XBUFFER): Verify correct object type before returning
11888 pointer, using eassert.
11889 * frame.h (XFRAME): Likewise.
11890
11891 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
11892 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
11893 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
11894 * data.c (set_internal): Likewise.
11895 * dispextern.h (WINDOW_WANTS_MODELINE_P)
11896 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
11897 * fileio.c (auto_save_1): Likewise.
11898 * insdel.c (check_markers): Likewise.
11899 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
11900 * undo.c (record_insert): Likewise.
11901 * vmsproc.c (child_sig): Likewise.
11902 * window.c (unshow_buffer, window_loop): Likewise.
11903 * xterm.c (x_erase_phys_cursor): Likewise.
11904
11905 2000-03-30 Gerd Moellmann <gerd@gnu.org>
11906
11907 * xfns.c (free_image_cache): Free the cache structure itself
11908 last, after all its members have been freed.
11909
11910 * lisp.h (xstrdup): Add prototype.
11911
11912 * alloc.c (xstrdup): Moved here from xfaces.c.
11913 (allocating_for_lisp): Variable removed.
11914 (lisp_malloc): Block input around the calls to malloc and mem_insert.
11915
11916 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11917 of Fsymbol_value.
11918 (xstrdup): Moved to alloc.c.
11919
11920 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11921
11922 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11923
11924 * emacs.c (main): Fix sense of no-loadup test.
11925
11926 * config.in (ENABLE_CHECKING): Undef.
11927
11928 * lisp.h (struct interval): Replace "parent" field with a union of
11929 interval pointer and Lisp_Object; add new bitfield to use as
11930 discriminant. Change other flag fields to bitfields.
11931 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11932 is defined and the supplied test fails, print a message and abort.
11933 (eassert): New macro. Use CHECK to provide an assert-like facility.
11934
11935 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11936 pointers; abort if the value looks like a lisp object.
11937 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11938 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11939 Modify for new interval parent definition.
11940
11941 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11942 (UNMARK_BALANCE_INTERVALS): Update references that need an
11943 addressable lisp object in the interval structure.
11944 (die): New function.
11945 (suppress_checking): New variable.
11946
11947 * intervals.c (interval_start_pos): Just return 0 if there's no
11948 parent object.
11949
11950 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11951
11952 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11953 and earlier Emacs versions.
11954
11955 * keyboard.c (Ftop_level): Cancel busy-cursor.
11956
11957 * eval.c (call_debugger): Cancel busy-cursor.
11958
11959 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11960
11961 * search.c (Freplace_match): Adjust multibyteness of the current
11962 buffer and NEWTEXT. Free allocated memory before signaling an error.
11963
11964 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11965
11966 * regex.c (analyse_first): New function obtained by ripping out most
11967 of re_compile_fastmap and generalizing it a little bit so that it
11968 can also just return whether a given (sub)pattern can match the empty
11969 string or not.
11970 (regex_compile): Use `analyse_first' to decide whether the loop-check
11971 needs to be done or not for *, +, *? and +? (the loop check is costly
11972 for non-greedy repetition).
11973 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11974
11975 2000-03-28 Dave Love <fx@gnu.org>
11976
11977 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11978
11979 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11980
11981 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11982
11983 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11984 an expression.
11985 (enum re_opcode_t): Update description of succeed_n.
11986 (PATFETCH): Always define.
11987 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11988 operators, char classes, shy-groups and intervals).
11989 Optimize special cases of intervals so as to only use succeed_n and
11990 jump_n when really needed.
11991 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11992 that we don't have to handle the special cases any more.
11993 Simplify on_failure_jump handling as well.
11994
11995 2000-03-28 Jason Rumney <jasonr@gnu.org>
11996
11997 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11998
11999 2000-03-27 Gerd Moellmann <gerd@gnu.org>
12000
12001 * s/freebsd.h (GC_SETJMP_WORKS): Define.
12002
12003 * s/msdos.h (GC_SETJMP_WORKS): Define.
12004
12005 * alloc.c (mark_maybe_object): New function.
12006 (mark_memory): Use it.
12007 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
12008 (setjmp_tested_p, longjmp_done): New variables.
12009 (test_setjmp): New function.
12010 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
12011 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
12012
12013 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
12014 to DEC_TEXT_POS and INC_TEXT_POS.
12015
12016 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
12017 with parameter MULTIBYTE_P.
12018
12019 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
12020
12021 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
12022 buffers because it looks for multibyte character byte sequences
12023 which don't exist in unibyte text.
12024
12025 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
12026
12027 * xfaces.c (register_color, unregister_color, unregister_colors)
12028 [DEBUG_X_COLORS]: New functions.
12029 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
12030
12031 * xfns.c (x_set_cursor_color): Get color reference counts right.
12032
12033 * xterm.c (x_copy_color): New function.
12034 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
12035
12036 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
12037 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
12038 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
12039 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
12040 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
12041 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
12042 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
12043 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
12044 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
12045 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
12046
12047 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
12048 names for handling per-buffer variables.
12049
12050 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
12051 instead of MAX_BUFFER_LOCAL_VARS.
12052 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
12053
12054 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
12055
12056 * xfns.c (x_specified_cursor_type): New function.
12057 (x_set_cursor_type): Use it.
12058
12059 * buffer.h (struct buffer): Add cursor_type.
12060
12061 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
12062
12063 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
12064 (print_partial_compiled_pattern, re_compile_fastmap):
12065 Handle new opcode.
12066 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
12067 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
12068 executing it as well as when popping it off the stack to find infinite
12069 loops in non-greedy repetition operators.
12070
12071 2000-03-26 Gerd Moellmann <gerd@gnu.org>
12072
12073 * doc.c (Qfunction_documentation): New variable.
12074 (syms_of_doc): Initialize Qfunction_documentation.
12075 (Fdocumentation): If FUNCTION is a symbol with non-nil
12076 `function-documentation' property, return a documentation derived
12077 from that.
12078
12079 * buffer.c (syms_of_buffer): Add default-cursor-type.
12080 (init_buffer_once): Don't let cursor_type have a local value
12081 in every buffer.
12082
12083 * xterm.c (x_display_and_set_cursor): Choose cursor depending
12084 on buffer-local value of cursor_type.
12085 (x_draw_bar_cursor): Add parameter WIDTH.
12086
12087 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
12088 (init_buffer_once): Set default cursor_type value to t.
12089 Mark cursor_type as local everywhere.
12090 (syms_of_buffer): New per-buffer variable cursor-type.
12091
12092 * buffer.h (struct buffer): Remove member local_var_flags,
12093 add local_flags.
12094 (MAX_BUFFER_LOCAL_VARS): New macro.
12095 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
12096 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
12097 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
12098 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
12099
12100 * print.c (print_object): Use new macros for per-buffer variables.
12101
12102 * category.c (Fset_category_table): Use new macros for per-buffer
12103 variables.
12104
12105 * buffer.c (buffer_permanent_local_flags): Make a char array.
12106 (max_buffer_local_idx): New variable.
12107 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
12108 for new handling of per-buffer variables.
12109 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
12110 (init_buffer_once): Initialize per-buffer vars differently.
12111 Set max_buffer_local_idx.
12112
12113 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
12114 variables.
12115
12116 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
12117
12118 * data.c (do_symval_forwarding, store_symval_forwarding)
12119 (find_symbol_value, set_internal, default_value, Fset_default)
12120 (Fkill_local_variable, Flocal_variable_p): Use new macros for
12121 per-buffer variables.
12122
12123 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
12124
12125 2000-03-24 Gerd Moellmann <gerd@gnu.org>
12126
12127 * xterm.c (x_term_init): Unblock input around call1 of
12128 Qvendor_specific_keysyms.
12129
12130 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
12131 (find_defun_start): Consider an open parenthesis in column 0
12132 a defun start only if open_paren_in_column_0_is_defun_start is set.
12133 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
12134
12135 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
12136
12137 * eval.c (Fautoload): Add entry in load-history (if after dump).
12138 * lread.c (load-history): Update docstring.
12139
12140 2000-03-24 Gerd Moellmann <gerd@gnu.org>
12141
12142 * indent.c (Fvertical_motion): Always use the current buffer.
12143 Temporarily change the window's buffer, if necessary.
12144
12145 2000-03-23 Gerd Moellmann <gerd@gnu.org>
12146
12147 * xterm.c (fast_find_position): Make sure not to consider rows
12148 not visible in the window.
12149
12150 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
12151
12152 * regex.c (enum syntaxcode): Provide default for non-Emacs.
12153 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
12154
12155 2000-03-22 Jason Rumney <jasonr@gnu.org>
12156
12157 * w32menu.c (single_submenu): Set help string to NULL if none.
12158 (w32_menu_show): Set help string correctly.
12159 (add-menu-item): Set help string in MIIM_DATA for menu item.
12160 Load SetMenuItemInfoA explicitly.
12161 (w32_menu_display_help): New function.
12162
12163 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
12164 (QCdata): Moved to xdisp.c.
12165
12166 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
12167 (Vw32_charset_to_codepage_alist): Removed.
12168 (Vw32_charset_info_alist): New variable.
12169 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
12170 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
12171 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
12172 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
12173 with TODO comment.
12174 (w32_codepage_for_font): Use Vw32_charset_info_alist.
12175 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
12176 Define Vw32_charset_info_alist and w32_charset symbols.
12177
12178 2000-03-22 Jason Rumney <jasonr@gnu.org>
12179
12180 * makefile.nt (w32bdf.obj): Update dependencies.
12181
12182 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
12183
12184 * w32fns.c: Include fontset.h after dispextern.h.
12185 (Fx_create_frame): Do not create fontset.
12186 (w32_load_system_font): Doc fix.
12187 (Fx_close_connection): Free full_name if it is not shared.
12188
12189 * w32term.c: Include fontset.h after dispextern.h.
12190 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
12191 Callers updated.
12192 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
12193 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
12194 (w32_font_is_double_byte): New function, needs body.
12195 (x_append_glyph): Set glyph->glyph_not_available_p.
12196 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12197 it->charset. If it->multibyte_p is zero and it->c is a multibyte
12198 character, convert it to a unibyte character.
12199 (struct glyph_string): Delete member `charset'.
12200 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
12201 calculating it is found.
12202 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12203 the case that per char metric is not available correctly.
12204 (x_fill_glyph_string): Handle the case that the specific glyph is
12205 not available correctly.
12206 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12207 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12208 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12209 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12210 fontset. Don't call FS_LOAD_FONT.
12211
12212 2000-03-22 Ken Raeburn <raeburn@gnu.org>
12213
12214 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
12215 (INT_LISPLIKE): New macro.
12216 (NULL_INTERVAL_P): Use it.
12217 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
12218 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
12219 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
12220
12221 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
12222 explicit references to "parent" field of struct interval and
12223 associated unclean type conversions.
12224 * intervals.c (create_root_interval, root_interval, rotate_right)
12225 (rotate_left, balance_possible_root_interval, split_interval_right)
12226 (split_interval_left, interval_start_pos, find_interval)
12227 (next_interval, previous_interval, update_interval)
12228 (adjust_intervals_for_insertion, delete_node, delete_interval)
12229 (adjust_intervals_for_deletion, merge_interval_right)
12230 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
12231 (copy_intervals_to_string): Likewise.
12232 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
12233 Likewise.
12234 * syntax.c (update_syntax_table): Likewise.
12235
12236 * intervals.c (reproduce_tree_obj): New function, like
12237 reproduce_tree but takes a Lisp_Object for the parent. Declare
12238 with prototype.
12239 (graft_intervals_into_buffer): Use it when appropriate.
12240 (reproduce_tree): Declare with prototype.
12241 (balance_possible_root_interval): Check that the parent is a lisp
12242 object before trying to examine its type.
12243
12244 2000-03-22 Gerd Moellmann <gerd@gnu.org>
12245
12246 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
12247 as strings only if both are known to be strings.
12248
12249 * s/openbsd.h (LIBS_TERMCAP): Undef.
12250
12251 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
12252
12253 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
12254 definitions for non-Emacs compilation.
12255 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
12256 outside of `#ifdef emacs'.
12257 (print_partial_compiled_pattern): Update.
12258 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
12259 (re_compile_fastmap): Merge handling of charset and charset_not (for
12260 emacs and non-emacs compilation as well).
12261 Similarly for (not)categoryspec and (not)syntaxspec.
12262 Don't use the fastmap when reaching `anychar' since the added
12263 complexity is not justified.
12264 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
12265 and (not)syntaxspec. Merge (not)categoryspec.
12266
12267 2000-03-22 Kenichi Handa <handa@etl.go.jp>
12268
12269 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
12270 (FACE_FOR_CHAR): Define them differently for the configuration of
12271 --without-x.
12272
12273 2000-03-21 Dave Love <fx@gnu.org>
12274
12275 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
12276 doc string.
12277
12278 2000-03-21 Gerd Moellmann <gerd@gnu.org>
12279
12280 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
12281 (lface_fully_specified_p): Don't check contents of
12282 LFACE_FONT_INDEX because that attribute is optional.
12283 (realize_x_face): Remove now unwarranted xassert.
12284
12285 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
12286
12287 The following changes are to make font selection based on
12288 characters, not charset. In addition, they recover fontset
12289 facilities while utilizing the new font selection mechanism.
12290
12291 * Makefile.in (fontset.o): Depend on dispextern.h.
12292
12293 * alloc.c (mark_face_cache): Don't mark face->registry.
12294
12295 * dispextern.h (struct glyph): New member glyph_not_available_p.
12296 Use 22 bits for face_id.
12297 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
12298 (struct face): Delete member registry, new member ascii_face.
12299 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
12300 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
12301 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
12302 (struct it): Delete member charset, new member glyph_not_available_p.
12303
12304 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
12305 (struct fontset_info, struct fontset_data): Structs removed.
12306 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
12307 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
12308 (fs_load_font, fs_query_fontset): Adjusted for new argument.
12309 (fs_free_face_fontset, fontset_font_pattern)
12310 (face_suitable_for_char_p, face_for_char)
12311 (make_fontset_for_ascii_face): Extern them.
12312 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
12313 (FS_LOAD_FACE_FONT): New macro.
12314
12315 * fontset.c: All codes rewritten or adjusted for the change of
12316 fontset implementation. Now fontset is represented by char table.
12317 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
12318 Variables removed.
12319 (my_strcasecmp): Function removed.
12320 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
12321 (AREF, ASIZE): New macros.
12322 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
12323 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
12324 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
12325 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
12326 (fontset_id_valid_p, font_family_registry, fontset_name)
12327 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
12328 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
12329 New functions.
12330 (fs_load_font): New arg FACE. Caller changed.
12331 (fs_query_fontset): Argument changed. Caller changed.
12332 (Fquery_fontset): call fs_query_fontset.
12333 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
12334 Functions removed.
12335 (clear_fontset_elements, check_registry_encoding)
12336 (check_fontset_name): New functions.
12337 (syms_of_fontset): Set char-table-extra-slots property of fontset
12338 to 3. Staticpro and initialize Vfontset_table and
12339 Vdefault_fontset. Defsubr fontset_font and fontset_list.
12340
12341 * frame.h (struct frame): Member `fontset_data' removed.
12342 (FRAME_FONTSET_DATA): Macro removed.
12343
12344 * frame.c (make_frame): Don't allocate f->fontset_data.
12345 (Fdelete_frame): Don't free f->fontset_data.
12346
12347 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
12348
12349 * xdisp.c (charset_at_position): Function removed.
12350 (init_iterator): Don't set member charset of struct `it'.
12351 (handle_face_prop, reseat_to_string, set_iterator_to_next)
12352 (next_element_from_display_vector, insert_left_trunc_glyphs):
12353 Likewise.
12354 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
12355 FACE_FOR_CHARSET.
12356 (get_next_display_element, append_space)
12357 (extend_face_to_end_of_line): Likewise.
12358
12359 * xfaces.c (Qx_charset_registry, Vface_default_registry):
12360 Variables removed.
12361 (clear_font_table, frame_update_line_height, load_face_font):
12362 Adjusted for the change of fontset implementation.
12363 (load_face_fontset_font): Function removed.
12364 (pixel_point_size): New function.
12365 (font_list): Argument type changed. Caller changed.
12366 (LFACE_FONT): New macro.
12367 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
12368 (set_lface_from_font_name): Type of arg FONTNAME is changed to
12369 Lisp_Object. Determine the font name by actually loading a font
12370 by the specified pattern. Set LFACE_FONT (lface) to the specified
12371 pattern. Even if a font is not found, don't try alternatives.
12372 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
12373 (set_font_frame_param): If `font' is specified in lface, use it.
12374 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
12375 (lface_same_font_attributes_p): Likewise.
12376 (make_realized_face): Arguent changed. Caller changed. Set
12377 face->ascii_face to face itself.
12378 (free_realized_face): Free face->fontset if face is for ASCII.
12379 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
12380 (deduce_unibyte_registry, x_charset_registry): Functions removed.
12381 (free_realized_multibyte_face): New function.
12382 (lookup_face, lookup_named_face, lookup_derived_face): Argument
12383 changed. Caller changed.
12384 (try_font_list): Argument type changed.
12385 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
12386 (choose_face_font): Argument changed. Handle fontset properly.
12387 (choose_face_fontset_font): Function removed.
12388 (realize_default_face, realize_named_face): Don't remove the
12389 former face here.
12390 (realize_face): Argument changed. Caller changed. Remove face
12391 with the arg former_face_id in advance. Load font for the new face.
12392 (realize_x_face): Argument changed. Caller changed. For a
12393 multibyte character, share fontset with base_face. For a single
12394 byte character, make a new realized fontset. Don't load a font here.
12395 (realize_tty_face): Argument changed. Caller changed.
12396 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
12397 (face_at_buffer_position): Don't check multibyte_p for returning
12398 DEFAULT_FACE_ID.
12399 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
12400 FACE_SUITABLE_FOR_CHARSET_P.
12401 (syms_of_xfaces): Remove code for Qx_charset_registry and
12402 Vface_default_registry.
12403
12404 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
12405 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
12406 (x_per_char_metric): Don't try FONT->default_char. Even if
12407 pcm->width is zero, glyph bits may exist.
12408 (x_encode_char): Always initialize char2b->byte1.
12409 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
12410 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
12411 (x_append_glyph): Set glyph->glyph_not_available_p.
12412 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12413 it->charset. Handle the case that per char metric is not
12414 available. If it->multibyte_p is zero and it->c is a multibyte
12415 character, convert it to a unibyte character.
12416 (struct glyph_string): Delete member `charset'.
12417 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12418 the case that per char metric is not available correctly.
12419 (x_fill_glyph_string): Handle the case that the specific glyph is
12420 not available correctly.
12421 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12422 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12423 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12424 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12425 fontset. Don't call FS_LOAD_FONT.
12426
12427 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
12428 (x_create_tip_frame): Likewise.
12429 (Fx_close_connection): Free full_name of font_info.
12430
12431 * fns.c (optimize_sub_char_table): New function.
12432 (Foptimize_char_table): New function.
12433 (syms_of_fns): Defsubr Soptimize_char_table.
12434
12435 2000-03-20 Gerd Moellmann <gerd@gnu.org>
12436
12437 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
12438 only if buffer is displayed in some window.
12439
12440 * xdisp.c (handle_single_display_prop): Initialize local `value'.
12441 (try_window_reusing_current_matrix): Don't call scroll run
12442 function if run's current and desired position are the same;
12443 this prevents cursor flickering.
12444
12445 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
12446
12447 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
12448
12449 * regex.c (RE_STRING_CHAR): New macro.
12450 (GET_CHAR_AFER_2): Remove.
12451 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
12452 (enum re_opcode_t): Remove on_failure_jump_exclusive.
12453 (print_partial_compiled_pattern, re_compile_fastmap)
12454 (re_match_2_internal): Remove on_failure_jump_exclusive.
12455 (regex_compile): Turn optimizable P+ loops into PP*, so that the
12456 optimization only need to work for * (ie. can use of_keep_string_jump).
12457 Remove the special case for .*\n since it is now covered by the general
12458 optimization.
12459 (re_search_2): Don't bother with `room'.
12460 (skip_one_char): New function.
12461 (skip_noops): Simplify since `memory' is not needed any more.
12462 (mutually_exclusive_p): Restructure slightly to use `switch' and
12463 add handling for "all" remaining cases.
12464 (re_match_2_internal): Change on_failure_jump_smart to use
12465 on_failure_keep_string_jump (and redirect the end-of-loop jump)
12466 rather than on_failure_jump_exclusive.
12467
12468 2000-03-19 Gerd Moellmann <gerd@gnu.org>
12469
12470 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
12471 number of bits per RGB because it's everywhere used as the depth
12472 of the visual.
12473
12474 * term.c (calculate_costs): Remove code dealing with X frames.
12475
12476 2000-03-19 Richard M. Stallman <rms@gnu.org>
12477
12478 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
12479
12480 2000-03-18 Gerd Moellmann <gerd@gnu.org>
12481
12482 * lread.c (read_integer): Unread the last char not consumed.
12483
12484 2000-03-17 Gerd Moellmann <gerd@gnu.org>
12485
12486 * xterm.c (x_update_window_cursor): Don't update in frames
12487 which are in the process of being deleted.
12488
12489 2000-03-16 Gerd Moellmann <gerd@gnu.org>
12490
12491 * Makefile.in (mostlyclean): Add `*.core'.
12492 (clean): Add `bootstrap-emacs'.
12493
12494 * lread.c (read_integer): New function.
12495 (read1): Support read syntax #o, #x, #b, #r.
12496
12497 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
12498
12499 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
12500 make sure POINTER_TO_OFFSET gives the same value before and after
12501 PREFETCH. Use `dfail' to guarantee "atomic" matching.
12502 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
12503 (debug): Now only active if > 0 rather than if != 0.
12504 (DEBUG_*): Update for the new meaning of `debug'.
12505 (print_partial_compiled_pattern): Add missing `succeed' case. Use
12506 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
12507 in `succeed_n', `jump_n' and `set_number_at'.
12508 (store_op1, store_op2, insert_op1, insert_op2)
12509 (at_begline_loc_p, at_endline_loc_p): Add prototype.
12510 (group_in_compile_stack): Move to after its arg's types are
12511 declared and add a prototype.
12512 (PATFETCH): Define in terms of PATFETCH_RAW.
12513 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
12514 (QUIT): Redefine as a nop except for NTemacs.
12515 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
12516 indentation of the greedy-op and shy-group code.
12517 (at_(beg|end)line_loc_p): Fix argument's types.
12518 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
12519 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
12520 (MATCHING_IN_FIRST_STRING): Remove.
12521 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
12522 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
12523 QUIT unconditionally.
12524
12525 2000-03-15 Gerd Moellmann <gerd@gnu.org>
12526
12527 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
12528 a sole completion.
12529
12530 * process.c (send_process): Add a hint that the function
12531 can call Lisp code to its comment.
12532
12533 * lread.c (load_dangerous_libraries): New variable.
12534 (Vbytecomp_version_regexp): New variable.
12535 (safe_to_load_p): New function.
12536 (Fload): Handle files not compiled with Emacs specially.
12537 (syms_of_lread): New Lisp variable load-dangerous-libraries.
12538
12539 2000-03-14 Gerd Moellmann <gerd@gnu.org>
12540
12541 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
12542
12543 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
12544 support functions only if HAVE_X11R6_XIM is defined.
12545 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
12546
12547 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
12548
12549 * xfns.c (X_I18N_INHIBITED): Don't define.
12550 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
12551 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
12552
12553 * config.in (HAVE_X_I18N): Moved here from xterm.h.
12554 (HAVE_X11R6_XIM): Define.
12555
12556 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
12557
12558 * xterm.c (x_term_init): Add support for X resource `synchronous'.
12559 If set, call XSynchronize.
12560
12561 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
12562
12563 * regex.c: Declare a new type `re_char' used throughout the code
12564 for the string char type. It's `const unsigned char' to match the
12565 rest of Emacs. Consistently make sure all pointers to strings use
12566 it and make sure all pointers into the pattern use `unsigned char'.
12567 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
12568 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
12569 code duplication.
12570
12571 * charset.h (GET_CHAR_AFTER_2): Remove.
12572 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
12573
12574 2000-03-12 Ken Raeburn <raeburn@gnu.org>
12575
12576 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
12577 variable before the invocation of YMF_PASS_LDFLAGS, in case both
12578 of them try to use backquotes.
12579
12580 2000-03-12 Dave Love <fx@gnu.org>
12581
12582 * unexelf.c: Restore changes of 1999-10-19.
12583 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
12584 fix its type and alignment; copy it from current process.
12585
12586 2000-03-12 Gerd Moellmann <gerd@gnu.org>
12587
12588 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
12589 has been found. Fix bug not computing timer's predecessor.
12590
12591 * fileio.c (Fread_file_name): Handle case that DIR contains a
12592 file name.
12593
12594 * window.c (Fsave_window_excursion): Doc fix.
12595
12596 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
12597
12598 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
12599
12600 * msdos.c (vga_installed): New function, code moved from
12601 dos_set_window_size.
12602 (Qbar, Qcursor_type, outside_cursor): New variables.
12603 (syms_of_msdos): Intern and staticpro them.
12604 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
12605 shape used outside Emacs when called for the first time.
12606 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
12607 cursor shape used outside Emacs.
12608 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
12609 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
12610 type has changed.
12611 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
12612 parameters specify the cursor. Make qreverse a global
12613 variable (renamed to Qreverse).
12614
12615 2000-03-09 Gerd Moellmann <gerd@gnu.org>
12616
12617 * fns.c (Fy_or_n_p): Cancel busy-cursor.
12618
12619 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
12620
12621 This is a big redesign of failure-stack and register handling, prompted
12622 by bugs revealed when trying to add shy-groups. Overall, what happened
12623 is that loops are now structured a little differently, groups can be
12624 shy and the code is a little simpler.
12625
12626 * regex.h: Update the copyright.
12627 (RE_SHY_GROUPS): New value.
12628 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
12629 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
12630
12631 * regex.c (enum re_opcode_t): Remove jump_past_alt,
12632 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
12633 on_failure_jump_(exclusive, loop and smart). Also fix the comment
12634 for (start|stop)_memory since they now only take one argument (the
12635 second has becomes unnecessary).
12636 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
12637 (print_compiled_pattern): Use %ld to printf long ints and flush to
12638 make debugging a little easier.
12639 (union fail_stack_elt): Make the integer unsigned.
12640 (struct fail_stack_type): Add a `frame' element.
12641 (INIT_FAIL_STACK): Init `frame' as well.
12642 (POP_PATTERN_OP): New macro for re_compile_fastmap.
12643 (DEBUG_PUSH, DEBUG_POP): Remove.
12644 (NUM_REG_ITEMS): Remove.
12645 (NUM_NONREG_ITEMS): Adjust.
12646 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
12647 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
12648 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
12649 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
12650 New macros.
12651 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
12652 address pushed is not the destination of the jump but the source
12653 of it instead.
12654 (NUM_FAILURE_ITEMS): Remove.
12655 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
12656 registers before the actual failure point). Don't hardcode any
12657 meaning for str==NULL anymore.
12658 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
12659 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
12660 Remove.
12661 (REG_UNSET_VALUE): Use NULL (why not?).
12662 (compile_range): Remove declaration since it doesn't exist.
12663 (struct compile_stack_elt_t): Remove inner_group_offset.
12664 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
12665 (regex_grow_registers): Remove dead code.
12666 (FIXUP_ALT_JUMP): New macro.
12667 (regex_compile): Add shy-groups Change loops to use
12668 on_failure_jump_smart&jump instead of
12669 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
12670 initial (dummy_failure_)jump. Remove c1_base (looks like unused
12671 variable to me). Use `jump' instead of `jump_past_alt' and don't
12672 bother with push_dummy_failure in alternatives since it is now
12673 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
12674 emacs' for (re)allocating the stack.
12675 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
12676 from loop when bufp->can_be_null rather than jumping to `done'.
12677 Avoid jumping backwards so as to ensure termination. Use
12678 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
12679 backreferences. Remove dead code in handling of `anychar'.
12680 (skip_noops, mutually_exclusive_p): New functions taken from the
12681 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
12682 improve mutually_exclusive_p to handle ".+\n".
12683 (lowest_active_reg, highest_active_reg)
12684 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
12685 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
12686 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
12687 variables. Push register (in `start_memory') on the stack rather
12688 than storing it in old_reg(start|end). Remove the cycle detection
12689 from `stop_memory', replaced by the use of on_failure_jump_loop
12690 for greedy loops. Add code for the new on_failure_jump_<foo>.
12691 Remove ad-hoc code in `on_failure_jump' to push more registers in
12692 the case of a loop. Take out code from `maybe_pop_jump' into
12693 separate functions and adapt it to the semantics of
12694 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
12695 and push_dummy_failure. Remove dummy_failure handling and
12696 handling of `failures to jump to on_failure_jump' (this last one
12697 was already dead code, it seems).
12698 (group_match_null_string_p, alt_match_null_string_p)
12699 (common_op_match_null_string_p): Remove.
12700
12701 2000-03-08 Dave Love <fx@gnu.org>
12702
12703 * config.in: Don't depend on __STDC__ for volatile.
12704 Add POINTER_TYPE, PTR, PROTOTYPES.
12705
12706 * hftctl.c, strftime.c: Use PROTOTYPES.
12707 * eval.c (find_handler_clause): Likewise.
12708
12709 * mem-limits.h: Use POINTER_TYPE.
12710
12711 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
12712 (memory_warnings): Declare using POINTER_TYPE.
12713
12714 2000-03-08 Gerd Moellmann <gerd@gnu.org>
12715
12716 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
12717
12718 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
12719
12720 * xfns.c: Remove obsolete code in #if 0.
12721 (Fx_focus_frame): New function.
12722
12723 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12724
12725 * coding.c (coding_category_name): Add coding-category-utf-8,
12726 coding-category-utf-16-be, coding-category-utf-16-le.
12727 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
12728 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
12729 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
12730 (detect_coding_utf_8): New function.
12731 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
12732 UTF_16_LOW_SURROGATE_P): New macros.
12733 (detect_coding_utf_16): New function
12734 (detect_coding_mask): When priorities are specified, skip any
12735 categories that have `nil' coding-system. Fix bug of returning
12736 wrong mask when PRIORITIES is specified and detect_coding_XXX()
12737 returns a mask not set in PRIORITIES.
12738 (detect_eol_type_in_2_octet_form): New function.
12739 (detect_eol): selects detect_eol_type_XXX to call according to
12740 cooding->category_idx.
12741 (detect_coding_system): Remove `nil' coding-system in the result.
12742 (Fupdate_coding_systems_internal): Update all coding-categories.
12743
12744 * coding.h (CODING_CATEGORY_IDX_UTF_8)
12745 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
12746 New macros.
12747 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
12748 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
12749 (CODING_CATEGORY_IDX_UTF_16_LE)
12750 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
12751 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
12752 (CODING_CATEGORY_MASK_ANY): Include the above macros.
12753 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
12754
12755 2000-03-07 Gerd Moellmann <gerd@gnu.org>
12756
12757 * doc.c (Fdocumentation_property): If value is not a string,
12758 and doesn't refer to etc/DOC, evaluate it to obtain a string.
12759
12760 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
12761 close the display with XtCloseDisplay. This caused a bus error
12762 on OpenWindows.
12763
12764 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
12765 complete but not unique.
12766
12767 2000-03-06 Gerd Moellmann <gerd@gnu.org>
12768
12769 * process.c (send_process): Remove local variable `procname' that
12770 might become invalid when a GC happens. Instead, access the
12771 process name slot directly.
12772
12773 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
12774 orig_height if set.
12775
12776 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
12777 orig_height if set.
12778
12779 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
12780
12781 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
12782 glyph matrices have been freed.
12783
12784 2000-03-05 Gerd Moellmann <gerd@gnu.org>
12785
12786 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
12787 (bootstrap-temacs): Set LC_ALL to C like for temacs.
12788
12789 * xfns.c (QCdata): Moved to xdisp.c.
12790
12791 * xdisp.c (QCdata): Moved here from xfns.c.
12792 (syms_of_xdisp): Initialize QCdata.
12793
12794 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
12795
12796 * window.c (coordinates_in_window): Use
12797 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
12798 FRAME_INTERNAL_BORDER_WIDTH.
12799
12800 * xdisp.c (try_window_id): Recompute unchanged information if
12801 it is obviously invalid.
12802
12803 * xterm.c (x_term_init): Create a colormap if not using the
12804 default visual.
12805
12806 * xterm.h (select_visual): Change prototype.
12807
12808 * xfns.c (select_visual): Rewritten. Recognize user-specified
12809 visual classes.
12810 (visual_classes): New variable.
12811
12812 2000-03-04 Gerd Moellmann <gerd@gnu.org>
12813
12814 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
12815 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
12816 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
12817 (x_decode_color): Don't handle allocation of white and black specially.
12818 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
12819 XtNcolormap resources.
12820 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
12821 (Fx_create_frame): Initialize color members of x_output structure.
12822 (xpm_load): Pass colormap to XPM lib.
12823
12824 * xfaces.c (x_free_colors): Access colormap of frame using
12825 FRAME_X_COLORMAP. Be paranoid about freeing black and white
12826 when default colormap is used.
12827
12828 * xterm.c (x_term_init): Set Colormap member of x_display_info
12829 structure. Copy colormap if resource `privateColormap' is
12830 specified (PseudoColor only).
12831 (x_setup_relief_color): Access colormap of frame using
12832 FRAME_X_COLORMAP.
12833
12834 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
12835 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
12836
12837 2000-03-04 Jason Rumney <jasonr@gnu.org>
12838
12839 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
12840 other non-platform-specific equivalents.
12841 [WINDOWSNT]: Include w32term.h, fontset.h and define X
12842 specific functions and macros as their w32 equivalents where
12843 non-platform-specifics are not available.
12844 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
12845 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
12846 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
12847 (frame_update_line_height): Use macros to access f->output_data.
12848 (defined_color): Remove FIXME comments; fixed.
12849 (x_face_list_fonts, prepare_face_for_display): Put X specifics
12850 into #ifdef blocks. Add WINDOWSNT blocks.
12851 (Fx_list_fonts): Use macros for accessing font data.
12852 (set_lface_from_font_name): Different default fonts for X and
12853 WINDOWSNT.
12854 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
12855 scalable for backward compatibility.
12856 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
12857 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
12858
12859 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
12860 syms_of_w32faces.
12861
12862 * makefile.nt (w32faces.obj): Remove.
12863 (xfaces.obj): Add.
12864
12865 2000-03-03 Jason Rumney <jasonr@gnu.org>
12866
12867 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
12868 correct parameters.
12869
12870 2000-03-03 Ken Raeburn <raeburn@gnu.org>
12871
12872 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
12873 standard ELF definitions here if the system header does not.
12874
12875 2000-03-03 Gerd Moellmann <gerd@gnu.org>
12876
12877 * xterm.c (PER_CHAR_METRIC): Removed.
12878 (x_per_char_metric_1, x_default_char): New functions.
12879 (x_per_char_metric): If font's default char is invalid, return
12880 metrics of a suitably chosen usable default char.
12881 (x_draw_glyph_string_foreground): If font has an invalid default
12882 char, replace occurrences of unprintable chars with a suitably
12883 chosen usable default char.
12884
12885 2000-03-02 Gerd Moellmann <gerd@gnu.org>
12886
12887 * xterm.c (note_mouse_highlight): Return quickly if frame's
12888 glyph matrices have been freed.
12889
12890 * dispnew.c (free_glyphs): Block input while freeing matrices.
12891
12892 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
12893
12894 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
12895 Use x_free_colors.
12896
12897 * dispextern.h (x_free_colors): Add prototype.
12898
12899 * xfaces.c (x_free_colors): New function.
12900 (unload_color, free_face_colors): Use it.
12901
12902 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
12903
12904 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
12905
12906 * window.c [MSDOS]: Include msdos.h.
12907
12908 2000-03-02 Dave Love <fx@gnu.org>
12909
12910 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
12911
12912 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
12913 set C_OPTIMIZE_SWITCH for gcc.
12914
12915 2000-03-02 Kenichi Handa <handa@etl.go.jp>
12916
12917 * coding.c (coding_save_composition): Be sure to allocate
12918 composition data area in coding even if there's no composition in
12919 the current run.
12920
12921 2000-03-01 Jason Rumney <jasonr@gnu.org>
12922
12923 * w32term.c: Equivalent changes to those made to xterm.c on
12924 2000-02-25 and 2000-02-24.
12925
12926 * w32fns.c: Equivalent changes to those made to xfns.c on
12927 2000-02-25 and 2000-02-21.
12928
12929 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12930 correct line-end convention is followed.
12931
12932 * w32menu.c [HAVE_BOXES]: Remove #undef.
12933 (single_keymap_panes): Remove code for simulating checkmarks.
12934 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12935 Remove code for drawing simulated checkmarks.
12936 (w32_menu_show): make unibyte help string correctly.
12937 (add_menu_item): draw standard Windows checkmarks. Draw radio
12938 buttons as radio buttons if possible.
12939
12940 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12941
12942 * sysdep.c (start_of_text): Don't define this function for NetBSD
12943 with ELF.
12944
12945 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12946 Don't define.
12947 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12948 (LINKER): Don't undef if __NetBSD__ is defined.
12949
12950 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12951
12952 * fileio.c [__NetBSD__]: Define `unix'.
12953
12954 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12955
12956 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12957
12958 * atimer.c (start_atimer): Don't abort when timers are stopped.
12959 (append_atimer_lists): New function.
12960 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12961 arbitrary lists of stopped and running atimers.
12962
12963 * atimer.c (cancel_atimer): Handle canceling an atimer when
12964 some timers are stopped.
12965
12966 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12967 after canceling it.
12968
12969 * fns.c (maybe_resize_hash_table): Handle case of new size
12970 coming out as being the same as old size.
12971
12972 2000-02-27 Jason Rumney <jasonr@gnu.org>
12973
12974 * makefile.nt: Add atimer.h to dependencies.
12975 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12976 * w32console.c: Only disable window system features for dispextern.h
12977 (initialize_w32_display): Build a display info for the console.
12978 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12979 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12980 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12981 as 2 button mice.
12982 * w32gui.h (struct W32FontStruct): Revert last change after change
12983 to xdisp.c.
12984 * w32menu.c (single_submenu): Set up help string.
12985 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12986 (w32_dialog_show): Set up help string.
12987 * w32term.c (w32_display_info_for_display): Remove unused function.
12988 (w32_draw_bitmap): Use pre-built bitmaps.
12989 (w32_initialize_display_info): New function to initialize parts of
12990 display info that are common to both GUI and console frames.
12991 (w32_term_init): Use w32_initialize_display_info. Do not set
12992 Vw32_num_mouse_buttons here, as it is not called for console
12993 frames. Build bitmaps for indicating truncated lines etc.
12994 (x_delete_display): Destroy pre-built bitmaps.
12995 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12996 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12997
12998 2000-02-27 Dave Love <fx@gnu.org>
12999
13000 * lisp.h: Add a bunch of prototypes.
13001
13002 2000-02-26 Kenichi Handa <handa@etl.go.jp>
13003
13004 * keyboard.c (read_char): Set `usec' correctly.
13005
13006 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
13007
13008 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
13009 `lambda', set reg[RRR] to the map index.
13010 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
13011 reg[RRR] to 0. Otherwise, set it to -1.
13012
13013 2000-02-25 Gerd Moellmann <gerd@gnu.org>
13014
13015 * emacs.c (main): Remove code snippet commented out with `//'.
13016
13017 2000-02-25 Richard M. Stallman <rms@gnu.org>
13018
13019 * fileio.c (Ffile_symlink_p): If result starts with a `/'
13020 and contains a `:', prepend `/:'.
13021
13022 * window.c (select_window_1): If selected_window is nil,
13023 don't "swap out" the buffer's point.
13024 (Fset_window_configuration): Set selected_window to nil
13025 before calling Fselect_window.
13026 (unshow_buffer): Don't set point in buffer from window's point
13027 if another more recently selected window also shows the buffer.
13028
13029 2000-02-25 Gerd Moellmann <gerd@gnu.org>
13030
13031 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
13032
13033 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
13034 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
13035 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
13036 New variables.
13037 (DEFAULT_BUSY_CURSOR_DELAY): New define.
13038 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
13039 (hide_busy_cursor): New functions.
13040 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
13041
13042 * minibuf.c (read_minibuf): Cancel busy-cursor.
13043
13044 * keyboard.c (command_loop_1): Call start_busy_cursor before
13045 Fcommand_execute and cancel_busy_cursor after it.
13046 (timer_check): Remove busy-cursor code.
13047 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
13048 cursor timer.
13049
13050 * process.c (wait_reading_process_input): Remove busy-cursor code.
13051
13052 * eval.c (Fsignal): Call cancel_busy_cursor instead of
13053 Fx_hide_busy_cursor.
13054
13055 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
13056 Remove prototyoes.
13057 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
13058
13059 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
13060
13061 * xterm.c (XTread_socket): Remove busy-cursor code.
13062
13063 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
13064 (build_frame_matrix_from_leaf_window): Put code handling
13065 glyph row's not being a slice of a frame row in #if 0.
13066 (sync_window_with_frame_matrix_rows): New function.
13067 (frame_row_to_window): New function.
13068 (mirror_line_dance): Handle copies between windows.
13069
13070 * lread.c (Fload): Use `xfree' instead of `free'.
13071 (init_obarray): Use `xmalloc' instead of `malloc'.
13072
13073 * window.c (Fset_window_buffer): Set WINDOW to the window
13074 after decoding.
13075 (coordinates_in_window): Take frame's internal border width
13076 into account.
13077
13078 2000-02-24 Gerd Moellmann <gerd@gnu.org>
13079
13080 * xterm.c (x_display_and_set_cursor): Display cursor of
13081 non-selected windows depending on the setting of
13082 cursor_in_non_selected_windows.
13083
13084 * xdisp.c (cursor_in_non_selected_windows): New variable.
13085 (syms_of_xdisp): DEFVAR_BOOL it.
13086
13087 2000-02-23 Gerd Moellmann <gerd@gnu.org>
13088
13089 * data.c (Fstring_to_number): If number is greater than what
13090 fits into an integer, return a float.
13091
13092 * eval.c (specbind): Remove references to
13093 keyword_symbols_constant_flag.
13094
13095 * data.c (keyword_symbols_constant_flag): Removed.
13096 (Fmakunbound, set_internal, syms_of_data): Remove references to
13097 keyword_symbols_constant_flag.
13098
13099 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
13100
13101 2000-02-23 Kenichi Handa <handa@etl.go.jp>
13102
13103 * syntax.c (multibyte_syntax_as_symbol): New variable.
13104 (syms_of_syntax): Declare it as a Lisp variable.
13105 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
13106 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
13107 nonzero, treat all multibyte characters as symbol.
13108 (init_syntax_once): Give syntax `word' to all multibyte characters.
13109
13110 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
13111
13112 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
13113 a deleted frame.
13114
13115 2000-02-21 Gerd Moellmann <gerd@gnu.org>
13116
13117 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
13118
13119 * xfns.c (x_window_to_frame, x_any_window_to_frame)
13120 (x_non_menubar_window_to_frame): Check the busy-cursor window.
13121
13122 2000-02-21 Dave Love <fx@gnu.org>
13123
13124 * frame.c (Vmouse_position_function): New variable.
13125 (Fmouse_position): Use it.
13126 (syms_of_frame): Install it.
13127
13128 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
13129
13130 2000-02-20 Gerd Moellmann <gerd@gnu.org>
13131
13132 * fileio.c (Finsert_file_contents): Unbind the binding of
13133 standard-output done by temp_output_buffer_setup.
13134
13135 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
13136 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
13137 (specbind, unbind_to): Handle most common case of non-constant
13138 symbol with trivial value specially.
13139
13140 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
13141
13142 2000-02-20 Richard M. Stallman <rms@gnu.org>
13143
13144 * data.c (Fmake_variable_buffer_local): Doc fix.
13145 Init found_for_buffer to 0.
13146 (Fmake_variable_frame_local): If the variable has already
13147 been buffer-local, set the check_frame field.
13148
13149 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
13150
13151 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
13152 produced for CODING_MODE_LAST_BLOCK requires.
13153
13154 2000-02-18 Dave Love <fx@gnu.org>
13155
13156 * keyboard.c (echo_keystrokes): Remove declaration.
13157 (Vecho_keystrokes) New variable.
13158 (read_char, record_menu_key, read_key_sequence): Use it to allow
13159 use of float value.
13160 (syms_of_keyboard): Change Vecho_keystrokes declaration.
13161
13162 * lread.c: Undef feature selection macros before defining.
13163
13164 2000-02-18 Gerd Moellmann <gerd@gnu.org>
13165
13166 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
13167 for symbols other than the symbol in question.
13168
13169 2000-02-17 Dave Love <fx@gnu.org>
13170
13171 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
13172
13173 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13174
13175 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
13176
13177 * alloc.c (enum mem_type): Compile unconditionally.
13178
13179 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
13180
13181 * xfaces.c (tty_defined_color): Don't return faulire indication
13182 for unspecified-fg and unspecified-bg pseudo-colors.
13183
13184 2000-02-17 Gerd Moellmann <gerd@gnu.org>
13185
13186 * alloc.c (mark_object): Don't mark symbol names in pure space.
13187 (gc_sweep): Don't unmark symbol names in pure space.
13188
13189 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
13190 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
13191 [GC_MARK_STACK]: New defines.
13192 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
13193 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
13194
13195 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
13196
13197 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
13198 allocate_buffer instead of xmalloc.
13199
13200 * alloc.c (toplevel): Include setjmp.h.
13201 (PURE_POINTER_P): New define.
13202 (enum mem_type) [GC_MARK_STACK]: New enumeration.
13203 (Vdead) [GC_MARK_STACK]: New variable.
13204 (lisp_malloc): Add parameter TYPE, call mem_insert if
13205 GC_MARK_STACK is defined.
13206 (allocate_buffer): New function.
13207 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
13208 (free_float) [GC_MARK_STACK]: Set type to Vdead.
13209 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
13210 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
13211 (MEM_NIL) [GC_MARK_STACK]: New define.
13212 (struct mem_node) [GC_MARK_STACK]: New structure.
13213 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
13214 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
13215 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
13216 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
13217 (mark_stack) [GC_MARK_STACK]: New functions.
13218 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
13219 (clear_marks): Removed.
13220 (gc_sweep): Set free conses' car, free floats' type, free
13221 symbols' function to Vdead. Use lisp_free to free buffers.
13222 (init_alloc_once): Initialize Vdead.
13223 (survives_gc_p): Return non-zero for pure objects.
13224
13225 * alloc.c: Add comments throughout the file.
13226
13227 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
13228 that unblocks alarms.
13229
13230 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
13231 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
13232 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
13233
13234 * frame.c (make_frame): Set frame initiallly to `garbaged'.
13235
13236 2000-02-17 Kenichi Handa <handa@etl.go.jp>
13237
13238 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
13239 avoid infinite error signaling. Allocate sufficient memory for
13240 eol_str in the case that eoltype is Lisp_Int.
13241
13242 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
13243
13244 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
13245 depends on the previous behavior.
13246
13247 2000-02-16 Gerd Moellmann <gerd@gnu.org>
13248
13249 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
13250
13251 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13252
13253 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
13254
13255 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
13256 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
13257 write(2).
13258
13259 2000-02-15 Richard M. Stallman <rms@gnu.org>
13260
13261 * data.c (set_internal): Don't make variable buffer-local
13262 if within a let-binding for the same buffer.
13263 (let_shadows_buffer_binding_p): New function.
13264
13265 * eval.c (specbind): For buffer-local value,
13266 record the current buffer also.
13267 (unbind_to): Cope with that change.
13268
13269 2000-02-15 Gerd Moellmann <gerd@gnu.org>
13270
13271 * window.c (Fsave_window_excursion): Doc fix.
13272
13273 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
13274
13275 * syntax.c (back_comment): Make sure we only consider comment-starters
13276 of the relevant style and return -1 in case of a failure to find the
13277 beginning of the comment.
13278 (Fforward_comment): If back_comment fails, go back to the position just
13279 after the comment-end.
13280 (scan_lists): Add comment describing a very minor bug.
13281
13282 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13283
13284 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
13285 `completion-regexp-list' in the docstring.
13286
13287 2000-02-14 Dave Love <fx@gnu.org>
13288
13289 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
13290
13291 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
13292
13293 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
13294 to Emacs' syntax. Also fix the comment about set/not-set meanings
13295 since Emacs syntax is not the value 0 any more.
13296 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
13297 since it's now part of RE_SYNTAX_EMACS.
13298
13299 2000-02-12 Dave Love <fx@gnu.org>
13300
13301 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
13302
13303 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13304
13305 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
13306
13307 2000-02-12 Dave Love <fx@gnu.org>
13308
13309 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
13310
13311 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
13312 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
13313 * s/hpux.h: Don't define HAVE_VFORK.
13314
13315 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
13316
13317 * s/nextstep.h: Don't define HAVE_ALLOCA.
13318
13319 * config.in: Add vfork bits.
13320
13321 2000-02-12 Gerd Moellmann <gerd@gnu.org>
13322
13323 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
13324 unwind function to undo the effect of stopping atimers.
13325
13326 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
13327
13328 * atimer.c (stopped_atimers): New variable.
13329 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
13330 New functions.
13331
13332 * atimer.h (stop_other_atimers, run_all_atimers)
13333 (unwind_stop_other_atimers): Add function prototypes.
13334
13335 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
13336
13337 2000-02-11 Ken Raeburn <raeburn@gnu.org>
13338
13339 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
13340 library may depend on jpeg.
13341 (atimer.o): Depends on atimer.c.
13342
13343 2000-02-11 Kenichi Handa <handa@etl.go.jp>
13344
13345 * insdel.c (del_range_1): Call update_compositions.
13346 (del_range_both): Call update_compositions just once..
13347
13348 2000-02-10 Dave Love <fx@gnu.org>
13349
13350 * xfns.c (create_frame_xic): Fix initialization of automatic
13351 aggregates for pcc.
13352
13353 2000-02-09 Kenichi Handa <handa@etl.go.jp>
13354
13355 * ccl.c (CCL_MAKE_CHAR): New macro.
13356 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
13357 registers by CCL_MAKE_CHAR before calling translate_char.
13358 <CCL_TranslateCharacterConstTbl> Likewise.
13359
13360 2000-02-08 Dave Love <fx@gnu.org>
13361
13362 * lread.c (__EXTENSIONS__): Define.
13363
13364 2000-02-08 Gerd Moellmann <gerd@gnu.org>
13365
13366 * puresize.h (BASE_PURESIZE): Increase to 650000.
13367
13368 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13369
13370 * msdos.c (XMenuActivate): Turn off the cursor after displaying
13371 the help message.
13372
13373 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13374
13375 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
13376 md, mh, mb, mr, and me to the fake termcap entry.
13377
13378 2000-02-06 Ken Raeburn <raeburn@gnu.org>
13379
13380 * sound.c (sound_cleanup): Don't call device close routine if the
13381 function pointer is null.
13382
13383 2000-02-06 Andrew Innes <andrewi@gnu.org>
13384
13385 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
13386 around image definitions and prototypes.
13387 (gamma_correct) [WINDOWSNT]: New prototype.
13388
13389 * w32term.c (x_make_frame_visible): Replace call to
13390 input_poll_signal with poll_for_input.
13391
13392 * window.c [WINDOWSNT]: Include w32term.h.
13393
13394 * xdisp.c [WINDOWSNT]: Include w32term.h.
13395
13396 * makefile.nt: Add dependencies on w32gui.h.
13397 (OBJ1): Include atimer.obj.
13398 ($(BLD)\atimer.obj): New dependency rule.
13399
13400 * w32.c (sigmask): New function (does nothing).
13401 (sigunblock): Ditto.
13402
13403 * frame.c [WINDOWSNT]: Include w32term.h.
13404
13405 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
13406
13407 * lread.c (syms_of_lread): Fix literal newlines.
13408
13409 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
13410 the string constant limit (2048 bytes) in MSVC.
13411 (main): Ditto.
13412
13413 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
13414
13415 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
13416 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
13417 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
13418 dispatch the event.
13419
13420 2000-02-04 Dave Love <fx@gnu.org>
13421
13422 * fileio.c: Remove some unused vars.
13423 (_GNU_SOURCE): Define (for euidaccess).
13424
13425 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
13426
13427 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
13428 gcpro1, gcpro2.
13429 (read_minibuf): Deal with allow_props correctly.
13430
13431 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
13432
13433 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
13434
13435 2000-02-03 Ken Raeburn <raeburn@gnu.org>
13436
13437 * search.c (compile_pattern): If a cache entry has a nil regexp,
13438 fill in that entry instead of clobbering a previously cached
13439 string regexp.
13440
13441 2000-02-02 Ken Raeburn <raeburn@gnu.org>
13442
13443 * puresize.h (BASE_PURESIZE): Increase to 610000.
13444
13445 2000-02-02 Gerd Moellmann <gerd@gnu.org>
13446
13447 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
13448 can GC.
13449
13450 2000-02-02 Kenichi Handa <handa@etl.go.jp>
13451
13452 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
13453 instead of incrementing ic directly.
13454 <CCL_WriteExprConst> Likewise.
13455 <ccl_set_expr>: Set ic to jump_address.
13456
13457 * fileio.c (e_write): Fix the handling of
13458 CODING_FINISH_INSUFFICIENT_SRC.
13459
13460 2000-02-01 Dave Love <fx@gnu.org>
13461
13462 * editfns.c (Fpropertize): Doc fix.
13463
13464 * process.c (Fstart_process): Doc fix.
13465
13466 * eval.c: Fix various doc strings not to duplicate information
13467 from help-manyarg-func-alist.
13468
13469 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
13470
13471 * doc.c (Vhelp_manyarg_func_alist): New variable.
13472 (Fdocumentation): Use it.
13473 (syms_of_doc): Define it.
13474
13475 2000-01-31 Gerd Moellmann <gerd@gnu.org>
13476
13477 * xterm.c (xim_open_dpy): Remove unused local variable.
13478
13479 * emacs.c (USAGE): Use term `display options' instead of `X options'.
13480
13481 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
13482 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
13483
13484 * fns.c (sweep_weak_table): New function.
13485 (sweep_weak_hash_tables): Use it. Keep on marking until there
13486 is no more change.
13487
13488 2000-01-30 Gerd Moellmann <gerd@gnu.org>
13489
13490 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
13491 that XTread_socket does not crash by trying to call XNoOp on a
13492 closed display.
13493
13494 2000-01-30 Jason Rumney <jasonr@gnu.org>
13495
13496 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13497 Change selected_frame to SELECTED_FRAME ().
13498 (w32_console_mouse_position): Remove #ifndef MULE from around
13499 `insist' parameter.
13500
13501 * makefile.nt: Remove dosfns.obj.
13502
13503 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
13504
13505 * w32fns.c (w32_defined_color): Check for valid frame before
13506 applying gamma correction. Eliminate dependency on frame elsewhere.
13507 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
13508 (w32_to_x_font): Use resx and resy not height_in and width_in.
13509 (x_to_w32_font): Doc fix.
13510 (xlfd_strip_height): New function to strip and return font height.
13511 (w32_font_match): Compare height separately from rest of xlfd
13512 spec, using xlfd_strip_height.
13513
13514 * w32term.c (w32_term_init): Swap resx and height_in, resy and
13515 width_in. Use w32_defined_color in place of defined_color.
13516
13517 * w32faces.c: Merge more of DOS and X specifics in preparation for
13518 merge with xfaces.c.
13519 (defined_color): Remove FIXME comment.
13520 (tty_color_name): Provide w32-specific function.
13521 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
13522
13523 * w32console.c (turn_on_face, turn_off_face): Removed.
13524 (w32_face_attributes): New function.
13525 (Global_variables): Reduce scope where possible.
13526 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
13527 fill attribute.
13528 (hl_mode): Don't modify text attributes.
13529 (write_glyphs): Don't do anything if len <= 0. Use
13530 w32_face_attributes to get attributes for drawing. Write
13531 terminating codes using char_attr_normal.
13532 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
13533 (update_begin, update_end): Likewise.
13534 (vga_stdcolor_name): New function.
13535 (initialize_w32_display): Remove char_attr_reverse and char_attr.
13536 (Fset_screen_color): Remove char_attr_reverse.
13537
13538 2000-01-29 Gerd Moellmann <gerd@gnu.org>
13539
13540 * xfns.c (xic_set_preeditarea): Take window parameter and
13541 window-relative pixel-positions.
13542
13543 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
13544 is its frame's selected window.
13545 (xim_instantiate_callback): Likewise.
13546
13547 * xfns.c (x_create_im): Removed.
13548 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
13549 (supported_xim_styles): Renamed from supported_styles.
13550 (best_xim_style): Renamed from best_style.
13551 (create_frame_xic): Renamed from xic_create_frame.
13552 (free_frame_xic): Renamed from xic_destroy_frame.
13553
13554 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
13555
13556 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
13557 our frames, call XFilterEvent with 2nd parameter `None'.
13558 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
13559 returning XBufferOverflow.
13560 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
13561 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
13562 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
13563 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
13564 (xim_initialize, xim_close)
13565 [HAVE_X_I18N && HAVE_X11R6]: New functions.
13566 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
13567 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
13568 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
13569
13570 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
13571 and `xim_styles'.
13572 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
13573 `xic_style' and `xic_xfs'.
13574 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
13575 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
13576 (FRAME_XIM): Removed.
13577
13578 * xfns.c (supported_styles): New variable.
13579 (DEFAULT_STYLE, DEFAULT_FONT): New macros
13580 (xic_create_xfontset, best_style, xic_create_frame)
13581 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
13582 (xic_set_xfontset): New functions.
13583
13584 2000-01-28 Dave Love <fx@gnu.org>
13585
13586 * s/irix6-5.h: Revert last change after change to irix5-0.h.
13587
13588 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
13589
13590 2000-01-28 Gerd Moellmann <gerd@gnu.org>
13591
13592 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
13593 for *scratch* if it already existed.
13594
13595 * emacs.c (USAGE): New macro.
13596 (main): Use it to display usage information.
13597
13598 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13599
13600 Support for the menu-help feature:
13601
13602 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
13603
13604 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
13605 part of the line to the termscript file.
13606 (IT_clear_to_end): Clear the entire line, not just its beginning.
13607 (menu_help_message, prev_menu_help_message): New variables.
13608 (IT_menu_make_room): Make room for the help_text member.
13609 (IT_menu_display): New argument disp_help; all callers changed.
13610 If disp_help is non-zero, store the help text of the active menu
13611 item in menu_help_message.
13612 (XMenuAddPane): Initialize the help_text member to NULL.
13613 (XMenuAddSelection): New argument help_text. Store it in the
13614 XMenu structure.
13615 (XMenuActivate): New argument help_callback. If the value of
13616 menu_help_message has changed since the last time, display the
13617 menu help message text while waiting for the mouse to move. Clear
13618 the echo area before exiting.
13619 (XMenuDestroy): Free the help_text member.
13620
13621 2000-01-27 Gerd Moellmann <gerd@gnu.org>
13622
13623 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
13624 XMenuAddSelection. Pass help callback to XMenuActivate.
13625 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
13626
13627 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13628
13629 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
13630 and EMACS_SET_USECS.
13631
13632 2000-01-26 Dave Love <fx@gnu.org>
13633
13634 * editfns.c (Fchar_after, Fchar_before): Doc fix.
13635
13636 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
13637 an error may be signalled.
13638
13639 2000-01-26 Gerd Moellmann <gerd@gnu.org>
13640
13641 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
13642 LD_SWITCH_SYSTEM inherited from irix5-0.h.
13643
13644 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
13645
13646 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13647
13648 * charset.c (Fstring): If there is a multibyte char among
13649 the args, always return a multibyte string.
13650
13651 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13652
13653 * sysdep.c (sys_select): Turn atimers off and on instead of
13654 recording and restoring old alarm handler
13655
13656 * process.c (toplevel): Include atimer.h.
13657 (create_process_1): Rewritten.
13658 (create_process): Use atimers instead of alarm.
13659 (wait_reading_process_input) [hpux]: Turn atimers off instead
13660 of turning off SIGALRM.
13661 (wait_reading_process_input): Turn off atimers instead off
13662 calling stop_polling.
13663
13664 * emacs.c (main): Call init_atimer.
13665
13666 * keyboard.c (toplevel): Include systime.h and atimer.h.
13667 (polling_for_input): Removed because unused.
13668 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
13669 (poll_timer): New variable.
13670 (poll_for_input, poll_for_input_1): New functions.
13671 (start_polling, stop_polling): Rewritten.
13672
13673 * keyboard.h (polling_for_input): Removed.
13674
13675 * atimer.h, atimer.c: New files.
13676
13677 * Makefile.in (obj): Add atimer.o.
13678 (atimer.o): New target.
13679
13680 * blockinput.h (pending_atimers): Add extern declaration.
13681 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
13682
13683 * lisp.h (popup_activated_flag): Add extern declaration.
13684
13685 * xmenu.c (popup_activated_flag): Make externally visible.
13686 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
13687 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
13688
13689 * xterm.c (toplevel): Include atimer.h.
13690 (toolkit_scroll_bar_interaction): New variable.
13691 (Fxt_process_timeouts): Removed.
13692 (x_process_timeouts): New function.
13693 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
13694 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
13695 (x_make_frame_visible): Call poll_for_input_1 instead of
13696 input_poll_signal. Don't call alarm.
13697 (x_initialize): Install timer calling x_process_timeouts.
13698
13699 2000-01-24 Dave Love <fx@gnu.org>
13700
13701 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
13702 Don't use -cckr -- apparently not now necessary.
13703
13704 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
13705
13706 * msdos.c (IT_menu_display): Truncate long menu lines at the right
13707 screen boundary.
13708
13709 2000-01-23 Jason Rumney <jasonr@gnu.org>
13710
13711 * w32fns.c (w32_defined_color): Apply gamma correction before
13712 trying to map to the palette.
13713 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
13714 to w32_clear_rect.
13715
13716 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
13717 here. Callers changed to always pass real device context.
13718 (w32_draw_bitmap): Likewise.
13719 (w32_get_glyph_overhangs): Likewise.
13720 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
13721 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
13722 pfnSetScrollInfo and SetScrollRange.
13723 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
13724 back into MULE characters after decoding them.
13725 (x_get_glyph_face_and_encoding): Likewise.
13726 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
13727 GetCharABCWidthsW fails, since this is defined on Windows 9x.
13728 (x_produce_glyphs): Calculate per char metrics for a character
13729 that we know exists in default font when font_not_found_p is true.
13730
13731 2000-01-22 Jason Rumney <jasonr@gnu.org>
13732
13733 * makefile.nt (intervals.obj, composite.obj): New modules.
13734 (composite.h): Added as dependency where appropriate.
13735
13736 * w32gui.h (XGCValue): New struct for emulating X GCs.
13737
13738 * w32term.h (XCharStruct): New struct for emulating X.
13739
13740 * w32console.c (turn_on_face, turn_off_face): New functions.
13741 (change_line_highlight): New prototype for new redisplay.
13742 (write_glyphs): Support multibyte text. Support faces.
13743
13744 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
13745
13746 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
13747 throughout. struct frame * in place of FRAME_PTR.
13748 Skeleton support for images, toolbars, tooltips from xfns.c.
13749 (Fx_create_frame): Use system default for default scroll bar width.
13750 (w32_get_arg): Renamed from x_get_arg.
13751 (Fx_file_dialog): New function.
13752 (w32_list_fonts): Check cache before asking system.
13753 (Vw32_enable_synthesized_fonts): New variable.
13754 (Vw32_enable_italics): Obsolete, removed.
13755
13756 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13757 Use SELECTED_FRAME macro.
13758
13759 * w32menu.c: Add skeleton support for help strings on menus.
13760 (add_menu_item): Native checkbox and radio support added, but not
13761 yet enabled due to bugs.
13762 (push_menu_item): Add parameters type, selection and help.
13763 Callers updated.
13764 Formatting changes to reduce unnecessary diffs with xmenu.c.
13765
13766 * w32select.c (Fw32_set_clipboard_data): Update call to
13767 find_charset_in_str.
13768
13769 * w32term.c: Complete rewrite for new redisplay based on new
13770 xterm.c with necessary sections merged back in from old w32term.c.
13771
13772 2000-01-21 Richard M. Stallman <rms@gnu.org>
13773
13774 * data.c (set_internal): Further fix in same criterion.
13775
13776 2000-01-20 Richard M. Stallman <rms@gnu.org>
13777
13778 * data.c (set_internal): Fix the criteria for whether
13779 to swap out the old cached binding.
13780
13781 2000-01-19 Dave Love <fx@gnu.org>
13782
13783 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
13784
13785 2000-01-18 Kenichi Handa <handa@etl.go.jp>
13786
13787 * regex.c (re_compile_fastmap): While checking a range table for
13788 `charset', skip flag bits for a character class correctly.
13789
13790 2000-01-17 Gerd Moellmann <gerd@gnu.org>
13791
13792 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
13793
13794 * xfns.c (x_window): Call lw_create_widget with new parameter list.
13795
13796 * widget.c (EmacsFrameSetCharSize): Change size of children first
13797 because of problems with main window geometry management under Lesstif.
13798
13799 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
13800 MENU_ITEMS_ITEM_.*.
13801 (MENU_ITEMS_ITEM_HELP): New enumerator.
13802 (push_menu_item): Add parameter HELP. Record help in menu_items.
13803 (single_menu_item, single_submenu, list_of_items): Call
13804 push_menu_item with new parameter.
13805 (single_submenu): Set help string in widget value.
13806 (menu_highlight_callback): New function.
13807 (set_frame_menubar): Call lw_create_widget with new
13808 parameter list.
13809 (xmenu_show, xdialog_show): Ditto.
13810
13811 2000-01-13 Gerd Moellmann <gerd@gnu.org>
13812
13813 * sound.c (Fplay_sound): Improve doc string.
13814
13815 2000-01-11 Richard M. Stallman <rms@gnu.org>
13816
13817 * lisp.h (set_internal): Enter the new arg.
13818
13819 * eval.c (specbind): Record buffer-local variables specially,
13820 indicating which buffer's binding was saved.
13821 (unbind_to): Restore buffer-local variables specially
13822 in the proper buffer.
13823
13824 * data.c (set_internal): New arg BUF.
13825
13826 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
13827 * data.c (Fset): Pass new arg to set_internal.
13828 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
13829
13830 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13831
13832 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
13833
13834 2000-01-11 Richard M. Stallman <rms@gnu.org>
13835
13836 * minibuf.c (Ftry_completion): Doc fix.
13837
13838 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13839
13840 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
13841 vector, too.
13842
13843 2000-01-11 Andreas Schwab <schwab@suse.de>
13844
13845 * coding.c (code_convert_region): Initialize total_skip.
13846
13847 2000-01-08 Dave Love <fx@gnu.org>
13848
13849 * eval.c (Fuser_variable_p): Check customizability too.
13850
13851 2000-01-07 Gerd Moellmann <gerd@gnu.org>
13852
13853 * minibuf.c (Fcompleting_read): Doc fix.
13854
13855 2000-01-05 Gerd Moellmann <gerd@gnu.org>
13856
13857 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
13858 -L /usr/local/lib.
13859
13860 * xfns.c (x_create_im): New function to set IM and IC of a frame.
13861 Check that input style is supported before trying to create an
13862 IC for it.
13863 (x_window): Call x_create_im.
13864
13865 2000-01-04 Gerd Moellmann <gerd@gnu.org>
13866
13867 * xfns.c (current_gif_memory_src): New variable.
13868 (gif_load): Record the address of the current memory source
13869 in current_gif_memory_src.
13870 (gif_read_from_memory): Use current_gif_memory_src.
13871
13872 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
13873 macros statement form.
13874
13875 * sound.c (struct sound): Renamed from struct sound_file.
13876 (struct sound): Add members `data' and `header_size'.
13877 (enum sound_attr): Add SOUND_DATA.
13878 (current_sound, current_sound_device): Variables renamed from
13879 sound_file and sound_device.
13880 (parse_sound): Parse :data.
13881 (parse_sound): Handle sound data in strings.
13882 (find_sound_type): Function renamed from find_sound_file_type.
13883 (wav_init, au_init): Fail if sound's header_size is smaller than
13884 needed header size.
13885 (wav_play, au_play): Play sounds from string data.
13886
13887 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
13888
13889 * lisp.h: Add prototype for allocate_string_data.
13890
13891 * alloc.c (Fgarbage_collect): Return number of live and free strings.
13892
13893 * alloc.c (mark_buffer): Remove code in #if 0.
13894 (gc_sweep): Ditto.
13895 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
13896 (strings_consed): New variable.
13897 (allocate_string): Set it.
13898 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
13899 (Fmemory_use_counts): Return strings_consed. Use Flist.
13900
13901 * alloc.c: General cleanup in comments etc. Remove conditional
13902 compilation for `standalone'.
13903
13904 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
13905
13906 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
13907 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
13908 (DONT_COPY_FLAG): Removed.
13909 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
13910 (struct sdata, struct sblock): New
13911 (struct string_block): Rewritten.
13912 (STRINGS_IN_STRING_BLOCK): New macro.
13913 (oldest_sblock, current_sblock, total_strings, total_free_strings)
13914 (large_sblocks, string_blocks, string_free_list): New variables.
13915 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
13916 (init_strings): Rewritten.
13917 (allocate_string, allocate_string_data, compact_small_strings)
13918 (free_large_strings, sweep_strings): New functions.
13919 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13920 (struct string_block_head, current_string_block)
13921 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13922 (STRING_PAD): Removed.
13923 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13924 (Fgarbage_collect): Don't set mark bit in large strings.
13925 (mark_object): Mark strings differently. Mark symbol names
13926 differently.
13927 (survives_gc_p): Test marked strings differently.
13928 (gc_sweep): Sweep strings differently, unmark strings in
13929 symbol names.
13930 (compact_strings): Removed.
13931
13932 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13933
13934 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13935 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13936
13937 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13938
13939 * fileio.c (Finsert_file_contents): Signal error if visiting file
13940 in a non-empty buffer.
13941
13942 * term.c (encode_terminal_code): Fix the previous change.
13943
13944 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13945
13946 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13947 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13948
13949 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13950
13951 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13952
13953 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13954 need to test for MSDOS frames.
13955
13956 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13957
13958 * dosfns.c (unspecified_colors): Remove.
13959 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13960 unspecified_bg.
13961 (msdos_stdcolor_name): Return strings for unspecified fore- and
13962 back-ground colors.
13963
13964 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13965 (syms_of_xfaces): Remove their staticpro's.
13966 (tty_color_name): Return Lisp strings for unspecified fore- and
13967 back-ground colors.
13968 (Finternal_set_lisp_face_attribute): Remove the special treatment
13969 for Qunspecified_{f,b}g.
13970 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13971
13972 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13973
13974 * xdisp.c (reseat_at_next_visible_line_start): Position before
13975 newline only if ending up on a newline.
13976 (next_element_from_ellipsis): Return success. Handle case of
13977 displaying no ellipsis. Fix case of ellipsis defined in display table.
13978 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13979 returns 0.
13980
13981 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13982
13983 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13984 (Fcolor_supported_p): Renamed from face-color-supported-p.
13985
13986 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13987
13988 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13989 list of colors renamed to tty-defined-color-alist.
13990 (tty_color_name): Pass the frame to tty-color-by-index.
13991 (realize_tty_face): tty-color-alist is now a function which
13992 accepts the frame as argument.
13993
13994 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13995
13996 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13997
13998 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13999 encode_terminal_code.
14000
14001 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
14002
14003 * dispnew.c (mode_line_string): Support termcap frames as well.
14004
14005 2000-01-01 Gerd Moellmann <gerd@gnu.org>
14006
14007 * syntax.c (Fforward_word): Undo previous change.
14008
14009 * editfns.c (Fconstrain_to_field): Don't constrain if
14010 inhibit-field-text-motion is non-nil.
14011 (Fline_beginning_position): Undo previous change.
14012 (Fline_end_position): Ditto.
14013
14014 * syntax.c (Fforward_word): Notice field boundaries only if
14015 inhibit-field-text-motion is nil.
14016
14017 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
14018
14019 * editfns.c (Vinhibit_field_text_motion): New variable.
14020 (inhibit-field-text-motion): New DEFVAR_LISP.
14021 (Fline_beginning_position, Fline_end_position): Notice field
14022 boundaries only if inhibit-field-text-motion is nil.
14023
14024 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
14025 All calls adjusted.
14026 (x_build_heuristic_mask): Likewise.
14027 (xbm_load_image_from_file): Change error output.
14028 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
14029 (gif_load, gs_load, x_kill_gs_process): Ditto.
14030
14031 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
14032 color indices when accessing raster pixels.
14033 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
14034 one of :file or :data.
14035 (enum pbm_keyword_index): Add PBM_DATA.
14036 (pbm_format): Add :data.
14037 (pbm_image_p): Allow either :file or :data.
14038 (pbm_read_file): New function.
14039 (pbm_scan_number): Rewritten to read from string.
14040 (pbm_load): Support :data.
14041
14042 See ChangeLog.8 for earlier changes.
14043
14044 ;; Local Variables:
14045 ;; coding: iso-2022-7bit
14046 ;; End:
14047
14048 Copyright (C) 2001 Free Software Foundation, Inc.
14049 Copying and distribution of this file, with or without modification,
14050 are permitted provided the copyright notice and this notice are preserved.