diff options
| author | Miles Bader | 2006-01-25 07:10:04 +0000 |
|---|---|---|
| committer | Miles Bader | 2006-01-25 07:10:04 +0000 |
| commit | b2ba4dcba149f845bf7fcf15b6cede6a6cbcc336 (patch) | |
| tree | d9ca500b0501201584dbab3b74a83d1ba7e374c9 /src | |
| parent | 90fc2bc59774318b3db7c3642df00a1297f6b7ff (diff) | |
| parent | 7347faa822b5ea177df5b2ed7a2b7d79194f0bcc (diff) | |
| download | emacs-b2ba4dcba149f845bf7fcf15b6cede6a6cbcc336.tar.gz emacs-b2ba4dcba149f845bf7fcf15b6cede6a6cbcc336.zip | |
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-7
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 4-14)
- Update from CVS
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (base, patch 1-7)
- tag of miles@gnu.org--gnu-2005/gnus--rel--5.10--patch-187
- Update from CVS
- Merge from emacs--devo--0
* miles@gnu.org--gnu-2005/gnus--rel--5.10 (patch 187)
- Update from CVS
Diffstat (limited to 'src')
| -rw-r--r-- | src/.gdbinit | 27 | ||||
| -rw-r--r-- | src/ChangeLog | 140 | ||||
| -rw-r--r-- | src/alloc.c | 23 | ||||
| -rw-r--r-- | src/dired.c | 10 | ||||
| -rw-r--r-- | src/keyboard.c | 16 | ||||
| -rw-r--r-- | src/keymap.c | 6 | ||||
| -rw-r--r-- | src/lread.c | 8 | ||||
| -rw-r--r-- | src/minibuf.c | 3 | ||||
| -rw-r--r-- | src/puresize.h | 2 | ||||
| -rw-r--r-- | src/regex.c | 9 | ||||
| -rw-r--r-- | src/s/irix6-5.h | 4 | ||||
| -rw-r--r-- | src/w32.c | 18 | ||||
| -rw-r--r-- | src/xdisp.c | 44 | ||||
| -rw-r--r-- | src/xterm.c | 57 |
14 files changed, 268 insertions, 99 deletions
diff --git a/src/.gdbinit b/src/.gdbinit index 6573b86f5da..7c04aae8a78 100644 --- a/src/.gdbinit +++ b/src/.gdbinit | |||
| @@ -789,18 +789,21 @@ set args -geometry 80x40+0+0 | |||
| 789 | 789 | ||
| 790 | # People get bothered when they see messages about non-existent functions... | 790 | # People get bothered when they see messages about non-existent functions... |
| 791 | xgetptr Vsystem_type | 791 | xgetptr Vsystem_type |
| 792 | set $tem = (struct Lisp_Symbol *) $ptr | 792 | # $ptr is NULL in temacs |
| 793 | xgetptr $tem->xname | 793 | if ($ptr != 0) |
| 794 | set $tem = (struct Lisp_String *) $ptr | 794 | set $tem = (struct Lisp_Symbol *) $ptr |
| 795 | set $tem = (char *) $tem->data | 795 | xgetptr $tem->xname |
| 796 | 796 | set $tem = (struct Lisp_String *) $ptr | |
| 797 | # Don't let abort actually run, as it will make stdio stop working and | 797 | set $tem = (char *) $tem->data |
| 798 | # therefore the `pr' command above as well. | 798 | |
| 799 | if $tem[0] == 'w' && $tem[1] == 'i' && $tem[2] == 'n' && $tem[3] == 'd' | 799 | # Don't let abort actually run, as it will make stdio stop working and |
| 800 | # The windows-nt build replaces abort with its own function. | 800 | # therefore the `pr' command above as well. |
| 801 | break w32_abort | 801 | if $tem[0] == 'w' && $tem[1] == 'i' && $tem[2] == 'n' && $tem[3] == 'd' |
| 802 | else | 802 | # The windows-nt build replaces abort with its own function. |
| 803 | break abort | 803 | break w32_abort |
| 804 | else | ||
| 805 | break abort | ||
| 806 | end | ||
| 804 | end | 807 | end |
| 805 | 808 | ||
| 806 | # x_error_quitter is defined only on X. But window-system is set up | 809 | # x_error_quitter is defined only on X. But window-system is set up |
diff --git a/src/ChangeLog b/src/ChangeLog index 607492c5608..0a77c8fff3b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,91 @@ | |||
| 1 | 2006-01-24 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * regex.c (IMMEDIATE_QUIT_CHECK): Use it with SYNC_INPUT as well. | ||
| 4 | (re_match_2_internal) <on_failure_jump, on_failure_jump_smart>: | ||
| 5 | Don't check for quit, since any loop will go through fail or jump. | ||
| 6 | |||
| 7 | 2006-01-24 Chong Yidong <cyd@stupidchicken.com> | ||
| 8 | |||
| 9 | * alloc.c (allocate_string_data): Update next_free immediately, to | ||
| 10 | reduce risk of memory clobberage. | ||
| 11 | |||
| 12 | 2006-01-24 L$,1 q(Brentey K,Aa(Broly <lorentey@elte.hu> | ||
| 13 | |||
| 14 | * xdisp.c (handle_invisible_prop): Set it->position to fix cursor | ||
| 15 | display when point moves across an ellipsis. If there are | ||
| 16 | adjacent invisible texts, don't lose the second one's ellipsis. | ||
| 17 | (x_produce_glyphs): Doc fix. | ||
| 18 | |||
| 19 | 2006-01-23 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 20 | |||
| 21 | * xterm.c (x_catch_errors_unwind): Yet another int/Lisp_Object mixup. | ||
| 22 | |||
| 23 | 2006-01-23 Kim F. Storm <storm@cua.dk> | ||
| 24 | |||
| 25 | * xdisp.c (handle_single_display_spec): Fix handling of space | ||
| 26 | property on char from string: set *position rather than | ||
| 27 | it->current.pos. | ||
| 28 | (produce_stretch_glyph): Reduce width of stretch glyphs so they | ||
| 29 | don't get wider than the window (unless truncate-lines is on). | ||
| 30 | |||
| 31 | 2006-01-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 32 | |||
| 33 | * xterm.c: Avoid allocating Lisp data from a signal handler. | ||
| 34 | (x_error_message): New var to replace x_error_message_string. | ||
| 35 | (x_error_catcher, x_catch_errors, x_catch_errors_unwind) | ||
| 36 | (x_check_errors, x_had_errors_p, x_clear_errors, x_error_handler) | ||
| 37 | (syms_of_xterm): Use it instead of x_error_message_string. | ||
| 38 | |||
| 39 | * alloc.c (lisp_align_free): Add an assertion. | ||
| 40 | (make_interval, allocate_string, make_float, Fcons, Fmake_symbol) | ||
| 41 | (allocate_misc): If ENABLE_CHECKING is on, check we're not called from | ||
| 42 | a signal handler. | ||
| 43 | |||
| 44 | 2006-01-21 Luc Teirlinck <teirllm@auburn.edu> | ||
| 45 | |||
| 46 | * dired.c (syms_of_dired) <completion-ignored-extensions>: Doc fix. | ||
| 47 | |||
| 48 | 2006-01-21 Romain Francoise <romain@orebokech.com> | ||
| 49 | |||
| 50 | * xdisp.c (get_window_cursor_type): Fix last change. | ||
| 51 | Update copyright year. | ||
| 52 | |||
| 53 | 2006-01-20 Eli Zaretskii <eliz@gnu.org> | ||
| 54 | |||
| 55 | * lread.c (Fload): Don't leak the file descriptor returned by | ||
| 56 | openp if we are going to signal an error. | ||
| 57 | |||
| 58 | * w32.c (sys_close): If FD is outside [0..MAXDESC) limits, pass it | ||
| 59 | directly to _close. | ||
| 60 | (sys_dup): Protect against new_fd larger than fd_info[] can handle. | ||
| 61 | (sys_read): If FD is outside [0..MAXDESC) limits, pass it directly | ||
| 62 | to _read. | ||
| 63 | (sys_write): If FD is outside [0..MAXDESC) limits, pass it | ||
| 64 | directly to _write. | ||
| 65 | |||
| 66 | * .gdbinit: Don't dereference Vsystem_type's Lisp_Symbol pointer | ||
| 67 | if it is NULL. | ||
| 68 | |||
| 69 | 2006-01-20 Kenichi Handa <handa@m17n.org> | ||
| 70 | |||
| 71 | * puresize.h (BASE_PURESIZE): Increment to 1190000. | ||
| 72 | |||
| 73 | 2006-01-19 Chong Yidong <cyd@stupidchicken.com> | ||
| 74 | |||
| 75 | * xdisp.c (get_window_cursor_type): Use cursor type specified by | ||
| 76 | the selected buffer for the echo area too. | ||
| 77 | |||
| 78 | 2006-01-19 Richard M. Stallman <rms@gnu.org> | ||
| 79 | |||
| 80 | * keymap.c (Fmap_keymap): Doc fix. | ||
| 81 | |||
| 82 | * s/irix6-5.h (GC_SETJMP_WORKS, GC_MARK_STACK): New definitions. | ||
| 83 | |||
| 84 | * keyboard.c (echo_char): Don't omit the space between first two | ||
| 85 | echoed chars. | ||
| 86 | |||
| 87 | * minibuf.c (read_minibuf): Fix previous change. | ||
| 88 | |||
| 1 | 2006-01-19 Kenichi Handa <handa@m17n.org> | 89 | 2006-01-19 Kenichi Handa <handa@m17n.org> |
| 2 | 90 | ||
| 3 | * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF. | 91 | * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF. |
| @@ -571,7 +659,7 @@ | |||
| 571 | * w32fns.c (w32_abort) [__GNUC__]: Add instructions for attaching | 659 | * w32fns.c (w32_abort) [__GNUC__]: Add instructions for attaching |
| 572 | GDB to the abort dialog. | 660 | GDB to the abort dialog. |
| 573 | 661 | ||
| 574 | 2005-12-09 Kyotaro HORIGUCHI <horiguti@meadowy.org> (tiny change) | 662 | 2005-12-09 Kyotaro HORIGUCHI <horiguti@meadowy.org> (tiny change) |
| 575 | 663 | ||
| 576 | * indent.c (Fvertical_motion): Force move if starting on | 664 | * indent.c (Fvertical_motion): Force move if starting on |
| 577 | stretch glyph. | 665 | stretch glyph. |
| @@ -825,7 +913,7 @@ | |||
| 825 | 913 | ||
| 826 | * s/darwin.h (LIBS_CARBON) [!HAVE_CARBON]: Remove `-framework Carbon'. | 914 | * s/darwin.h (LIBS_CARBON) [!HAVE_CARBON]: Remove `-framework Carbon'. |
| 827 | 915 | ||
| 828 | 2005-11-11 David Reitter <david.reitter@gmail.com> | 916 | 2005-11-11 David Reitter <david.reitter@gmail.com> |
| 829 | 917 | ||
| 830 | * macterm.c (syms_of_macterm): Remove macCtrlKey, macShiftKey, | 918 | * macterm.c (syms_of_macterm): Remove macCtrlKey, macShiftKey, |
| 831 | macMetaKey, macAltKey. Introduce Qctrl, Qmeta, | 919 | macMetaKey, macAltKey. Introduce Qctrl, Qmeta, |
| @@ -857,7 +945,7 @@ | |||
| 857 | ignore_overlay_strings_at_pos_p if dpvec came from an overlay | 945 | ignore_overlay_strings_at_pos_p if dpvec came from an overlay |
| 858 | string, so we skip those overlay strings at current pos. | 946 | string, so we skip those overlay strings at current pos. |
| 859 | 947 | ||
| 860 | 2005-11-10 Lars Hansen <larsh@soem.dk> | 948 | 2005-11-10 Lars Hansen <larsh@soem.dk> |
| 861 | 949 | ||
| 862 | * fileio.c (file-regular-p): Doc fix. | 950 | * fileio.c (file-regular-p): Doc fix. |
| 863 | 951 | ||
| @@ -968,7 +1056,7 @@ | |||
| 968 | 1056 | ||
| 969 | * xdisp.c (display_line): Restore it->current_x and call | 1057 | * xdisp.c (display_line): Restore it->current_x and call |
| 970 | extend_face_to_end_of_line when last glyph doesn't fit on line. | 1058 | extend_face_to_end_of_line when last glyph doesn't fit on line. |
| 971 | (set_glyph_string_background_width): Remove specific tests here | 1059 | (set_glyph_string_background_width): Remove specific tests here |
| 972 | to see if face background should extend to end of line. Simplify. | 1060 | to see if face background should extend to end of line. Simplify. |
| 973 | 1061 | ||
| 974 | 2005-10-30 Richard M. Stallman <rms@gnu.org> | 1062 | 2005-10-30 Richard M. Stallman <rms@gnu.org> |
| @@ -1570,7 +1658,7 @@ | |||
| 1570 | 1658 | ||
| 1571 | * dispextern.h (fatal): Delete prototype. | 1659 | * dispextern.h (fatal): Delete prototype. |
| 1572 | 1660 | ||
| 1573 | * systime.h: (make_time): Prototype moved from ... | 1661 | * systime.h (make_time): Prototype moved from ... |
| 1574 | * editfns.c (make_time): ... here. | 1662 | * editfns.c (make_time): ... here. |
| 1575 | 1663 | ||
| 1576 | * editfns.c: Move systime.h include after lisp.h. | 1664 | * editfns.c: Move systime.h include after lisp.h. |
| @@ -1804,9 +1892,9 @@ | |||
| 1804 | get_current_dir_name. | 1892 | get_current_dir_name. |
| 1805 | (get_current_dir_name): Remove prototype. | 1893 | (get_current_dir_name): Remove prototype. |
| 1806 | 1894 | ||
| 1807 | * xsmfns.c: (get_current_dir_name): Remove prototype. | 1895 | * xsmfns.c (get_current_dir_name): Remove prototype. |
| 1808 | 1896 | ||
| 1809 | * lisp.h: (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]: | 1897 | * lisp.h (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]: |
| 1810 | Add prototype. | 1898 | Add prototype. |
| 1811 | 1899 | ||
| 1812 | * sysdep.c [WINDOWSNT]: Add prototype for getwd. | 1900 | * sysdep.c [WINDOWSNT]: Add prototype for getwd. |
| @@ -2497,7 +2585,7 @@ | |||
| 2497 | 2585 | ||
| 2498 | * window.c (window_scroll_pixel_based, window_scroll_line_based): | 2586 | * window.c (window_scroll_pixel_based, window_scroll_line_based): |
| 2499 | Handle `scroll-preserve-screen-position' non-nil, non-t specially. | 2587 | Handle `scroll-preserve-screen-position' non-nil, non-t specially. |
| 2500 | (syms_of_window): <scroll-preserve-screen-position>: Doc fix. | 2588 | (syms_of_window) <scroll-preserve-screen-position>: Doc fix. |
| 2501 | 2589 | ||
| 2502 | 2005-07-02 Juri Linkov <juri@jurta.org> | 2590 | 2005-07-02 Juri Linkov <juri@jurta.org> |
| 2503 | 2591 | ||
| @@ -7120,7 +7208,7 @@ | |||
| 7120 | 7208 | ||
| 7121 | * config.in: Rebuild. | 7209 | * config.in: Rebuild. |
| 7122 | 7210 | ||
| 7123 | * Makefile.in: Run setarch i386 ./temacs if exec-shield is present. | 7211 | * Makefile.in: Run setarch i386 ./temacs if exec-shield is present. |
| 7124 | 7212 | ||
| 7125 | 2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca> | 7213 | 2004-09-18 Stefan Monnier <monnier@iro.umontreal.ca> |
| 7126 | 7214 | ||
| @@ -7700,7 +7788,7 @@ | |||
| 7700 | 7788 | ||
| 7701 | * buffer.c (Fswitch_to_buffer, Fpop_to_buffer): Doc fixes. | 7789 | * buffer.c (Fswitch_to_buffer, Fpop_to_buffer): Doc fixes. |
| 7702 | 7790 | ||
| 7703 | * window.c (Fwindow_buffer, Fother_window, Fget_lru_window) | 7791 | * window.c (Fwindow_buffer, Fother_window, Fget_lru_window) |
| 7704 | (Fget_largest_window, Fget_buffer_window, Fdelete_windows_on) | 7792 | (Fget_largest_window, Fget_buffer_window, Fdelete_windows_on) |
| 7705 | (Freplace_buffer_in_windows, Fset_window_buffer) | 7793 | (Freplace_buffer_in_windows, Fset_window_buffer) |
| 7706 | (Fselect-window, Fdisplay-buffer, Fsplit_window): Doc fixes. | 7794 | (Fselect-window, Fdisplay-buffer, Fsplit_window): Doc fixes. |
| @@ -9353,7 +9441,7 @@ | |||
| 9353 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) | 9441 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) |
| 9354 | (make_image, free_image, prepare_image_for_display, image_ascent) | 9442 | (make_image, free_image, prepare_image_for_display, image_ascent) |
| 9355 | (four_corners_best, image_background, image_background_transparent) | 9443 | (four_corners_best, image_background, image_background_transparent) |
| 9356 | (x_clear_image_1, x_clear_image, x_alloc_image_color) | 9444 | (x_clear_image_1, x_clear_image, x_alloc_image_color) |
| 9357 | (make_image_cache, free_image_cache, clear_image_cache) | 9445 | (make_image_cache, free_image_cache, clear_image_cache) |
| 9358 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) | 9446 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) |
| 9359 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) | 9447 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) |
| @@ -9391,7 +9479,7 @@ | |||
| 9391 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) | 9479 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) |
| 9392 | (make_image, free_image, prepare_image_for_display, image_ascent) | 9480 | (make_image, free_image, prepare_image_for_display, image_ascent) |
| 9393 | (four_corners_best, image_background, image_background_transparent) | 9481 | (four_corners_best, image_background, image_background_transparent) |
| 9394 | (x_clear_image_1, x_clear_image, x_alloc_image_color) | 9482 | (x_clear_image_1, x_clear_image, x_alloc_image_color) |
| 9395 | (make_image_cache, free_image_cache, clear_image_cache) | 9483 | (make_image_cache, free_image_cache, clear_image_cache) |
| 9396 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) | 9484 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) |
| 9397 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) | 9485 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) |
| @@ -9423,7 +9511,7 @@ | |||
| 9423 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) | 9511 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) |
| 9424 | (make_image, free_image, prepare_image_for_display, image_ascent) | 9512 | (make_image, free_image, prepare_image_for_display, image_ascent) |
| 9425 | (four_corners_best, image_background, image_background_transparent) | 9513 | (four_corners_best, image_background, image_background_transparent) |
| 9426 | (x_clear_image_1, x_clear_image, x_alloc_image_color) | 9514 | (x_clear_image_1, x_clear_image, x_alloc_image_color) |
| 9427 | (make_image_cache, free_image_cache, clear_image_cache) | 9515 | (make_image_cache, free_image_cache, clear_image_cache) |
| 9428 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) | 9516 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) |
| 9429 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) | 9517 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) |
| @@ -9453,7 +9541,7 @@ | |||
| 9453 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) | 9541 | (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p) |
| 9454 | (make_image, free_image, prepare_image_for_display, image_ascent) | 9542 | (make_image, free_image, prepare_image_for_display, image_ascent) |
| 9455 | (four_corners_best, image_background, image_background_transparent) | 9543 | (four_corners_best, image_background, image_background_transparent) |
| 9456 | (x_clear_image_1, x_clear_image, x_alloc_image_color) | 9544 | (x_clear_image_1, x_clear_image, x_alloc_image_color) |
| 9457 | (make_image_cache, free_image_cache, clear_image_cache) | 9545 | (make_image_cache, free_image_cache, clear_image_cache) |
| 9458 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) | 9546 | (Fclear_image_cache, postprocess_image, lookup_image, cache_image) |
| 9459 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) | 9547 | (forall_images_in_image_cache, x_create_x_image_and_pixmap) |
| @@ -10228,7 +10316,7 @@ | |||
| 10228 | (Fx_change_window_property): Add declaration of parameters type and | 10316 | (Fx_change_window_property): Add declaration of parameters type and |
| 10229 | format. Remove unused variable cons. | 10317 | format. Remove unused variable cons. |
| 10230 | 10318 | ||
| 10231 | * xselect.c: Include stdio,h. | 10319 | * xselect.c: Include stdio.h. |
| 10232 | 10320 | ||
| 10233 | 2004-02-05 Kenichi Handa <handa@m17n.org> | 10321 | 2004-02-05 Kenichi Handa <handa@m17n.org> |
| 10234 | 10322 | ||
| @@ -11861,7 +11949,7 @@ | |||
| 11861 | 11949 | ||
| 11862 | 2003-07-13 Terje Rosten <terjeros@phys.ntnu.no> | 11950 | 2003-07-13 Terje Rosten <terjeros@phys.ntnu.no> |
| 11863 | 11951 | ||
| 11864 | * xterm.c (x_bitmap_icon,x_wm_set_icon_pixmap): Modify to add mask, | 11952 | * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): Modify to add mask, |
| 11865 | and use the Gtk+ function gtk_window_icon_from_file if available. | 11953 | and use the Gtk+ function gtk_window_icon_from_file if available. |
| 11866 | 11954 | ||
| 11867 | * xfns.c (x_bitmap_mask, x_create_bitmap_mask): New functions to | 11955 | * xfns.c (x_bitmap_mask, x_create_bitmap_mask): New functions to |
| @@ -16440,7 +16528,7 @@ | |||
| 16440 | 2002-09-08 Kim F. Storm <storm@cua.dk> | 16528 | 2002-09-08 Kim F. Storm <storm@cua.dk> |
| 16441 | 16529 | ||
| 16442 | * macros.c (executing_macro_index): Change type to EMACS_INT. | 16530 | * macros.c (executing_macro_index): Change type to EMACS_INT. |
| 16443 | (syms_of_macros): DEFVAR_INT it (needed by kmacro). | 16531 | (syms_of_macros): DEFVAR_INT it (needed by kmacro). |
| 16444 | 16532 | ||
| 16445 | * macros.h (executing_macro_index): Change type to EMACS_INT. | 16533 | * macros.h (executing_macro_index): Change type to EMACS_INT. |
| 16446 | 16534 | ||
| @@ -18928,10 +19016,10 @@ | |||
| 18928 | Intern and staticpro QCtype and Qdatagram. | 19016 | Intern and staticpro QCtype and Qdatagram. |
| 18929 | (syms_of_process) [!subprocess]: Intern and staticpro QCtype. | 19017 | (syms_of_process) [!subprocess]: Intern and staticpro QCtype. |
| 18930 | 19018 | ||
| 18931 | * xfns.c: (QCtype): Remove duplicate declaration and | 19019 | * xfns.c (QCtype): Remove duplicate declaration and |
| 18932 | initialization (is now declared in process.c). | 19020 | initialization (is now declared in process.c). |
| 18933 | 19021 | ||
| 18934 | * w32fns.c: (QCtype): Remove duplicate declaration and | 19022 | * w32fns.c (QCtype): Remove duplicate declaration and |
| 18935 | initialization (is now declared in process.c). | 19023 | initialization (is now declared in process.c). |
| 18936 | 19024 | ||
| 18937 | 2002-03-21 Richard M. Stallman <rms@gnu.org> | 19025 | 2002-03-21 Richard M. Stallman <rms@gnu.org> |
| @@ -19046,7 +19134,7 @@ | |||
| 19046 | Doc fix: Member kill_without_query is inverse of query-on-exit flag. | 19134 | Doc fix: Member kill_without_query is inverse of query-on-exit flag. |
| 19047 | 19135 | ||
| 19048 | * process.c (Qlocal, QCname, QCbuffer, QChost, QCservice, QCfamily) | 19136 | * process.c (Qlocal, QCname, QCbuffer, QChost, QCservice, QCfamily) |
| 19049 | (QClocal, QCremote, QCserver, QCdatagram, QCnowait, QCnoquery,QCstop) | 19137 | (QClocal, QCremote, QCserver, QCdatagram, QCnowait, QCnoquery, QCstop) |
| 19050 | (QCcoding, QCoptions, QCfilter, QCsentinel, QClog, QCfeature): | 19138 | (QCcoding, QCoptions, QCfilter, QCsentinel, QClog, QCfeature): |
| 19051 | New variables. | 19139 | New variables. |
| 19052 | (NETCONN1_P): New macro. | 19140 | (NETCONN1_P): New macro. |
| @@ -19376,7 +19464,7 @@ | |||
| 19376 | 19464 | ||
| 19377 | 2002-02-28 Kim F. Storm <storm@cua.dk> | 19465 | 2002-02-28 Kim F. Storm <storm@cua.dk> |
| 19378 | 19466 | ||
| 19379 | * window.c: (minibuf_selected_window): Renamed from | 19467 | * window.c (minibuf_selected_window): Renamed from |
| 19380 | Vminibuf_selected_window. Users changed. | 19468 | Vminibuf_selected_window. Users changed. |
| 19381 | (syms_of_window): Staticpro it. | 19469 | (syms_of_window): Staticpro it. |
| 19382 | 19470 | ||
| @@ -19386,14 +19474,14 @@ | |||
| 19386 | which is similar to Vminibuf_scroll_window, but which is only set | 19474 | which is similar to Vminibuf_scroll_window, but which is only set |
| 19387 | on entry to the minibuffer (from a non-minibuffer window): | 19475 | on entry to the minibuffer (from a non-minibuffer window): |
| 19388 | 19476 | ||
| 19389 | * window.c: (Vminibuf_selected_window): New variable. | 19477 | * window.c (Vminibuf_selected_window): New variable. |
| 19390 | (struct save_window_data): New member minibuf_selected_window. | 19478 | (struct save_window_data): New member minibuf_selected_window. |
| 19391 | (Fset_window_configuration): Restore Vminibuf_selected_window. | 19479 | (Fset_window_configuration): Restore Vminibuf_selected_window. |
| 19392 | (Fcurrent_window_configuration): Save Vminibuf_selected_window. | 19480 | (Fcurrent_window_configuration): Save Vminibuf_selected_window. |
| 19393 | Set minibuf_scroll_window member to nil if minibuf_level is 0. | 19481 | Set minibuf_scroll_window member to nil if minibuf_level is 0. |
| 19394 | (compare_window_configurations): Compare minibuf_selected_window. | 19482 | (compare_window_configurations): Compare minibuf_selected_window. |
| 19395 | 19483 | ||
| 19396 | * window.h: (Vminibuf_selected_window): Declare extern. | 19484 | * window.h (Vminibuf_selected_window): Declare extern. |
| 19397 | 19485 | ||
| 19398 | * minibuf.c (read_minibuf): Set Vminibuf_selected_window on first | 19486 | * minibuf.c (read_minibuf): Set Vminibuf_selected_window on first |
| 19399 | entry to minibuffer or on entry from a non-minibuffer window. | 19487 | entry to minibuffer or on entry from a non-minibuffer window. |
| @@ -19519,7 +19607,7 @@ | |||
| 19519 | 19607 | ||
| 19520 | 2002-02-22 Eli Zaretskii <eliz@is.elta.co.il> | 19608 | 2002-02-22 Eli Zaretskii <eliz@is.elta.co.il> |
| 19521 | 19609 | ||
| 19522 | Support for ICCCM Extended Segments in X selections: | 19610 | Support for ICCCM Extended Segments in X selections: |
| 19523 | 19611 | ||
| 19524 | * xselect.c <Qcompound_text_no_extensions>: New variable. | 19612 | * xselect.c <Qcompound_text_no_extensions>: New variable. |
| 19525 | (syms_of_xselect): Intern and staticpro it. | 19613 | (syms_of_xselect): Intern and staticpro it. |
| @@ -19673,7 +19761,7 @@ | |||
| 19673 | 19761 | ||
| 19674 | 2002-02-13 Kim F. Storm <storm@cua.dk> | 19762 | 2002-02-13 Kim F. Storm <storm@cua.dk> |
| 19675 | 19763 | ||
| 19676 | * window.c: (Vmode_line_in_non_selected_windows): Removed. | 19764 | * window.c (Vmode_line_in_non_selected_windows): Removed. |
| 19677 | (mode_line_in_non_selected_windows): New variable. | 19765 | (mode_line_in_non_selected_windows): New variable. |
| 19678 | (syms_of_window): DEFVAR_BOOL it. | 19766 | (syms_of_window): DEFVAR_BOOL it. |
| 19679 | 19767 | ||
| @@ -19704,7 +19792,7 @@ | |||
| 19704 | 19792 | ||
| 19705 | 2002-02-11 Kim F. Storm <storm@cua.dk> | 19793 | 2002-02-11 Kim F. Storm <storm@cua.dk> |
| 19706 | 19794 | ||
| 19707 | * window.c: (Vmode_line_in_non_selected_windows): New variable. | 19795 | * window.c (Vmode_line_in_non_selected_windows): New variable. |
| 19708 | (syms_of_window): DEFVAR_LISP it. | 19796 | (syms_of_window): DEFVAR_LISP it. |
| 19709 | 19797 | ||
| 19710 | * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): New macro. | 19798 | * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): New macro. |
diff --git a/src/alloc.c b/src/alloc.c index 1ef8f97b040..48065382480 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Storage allocation and gc for GNU Emacs Lisp interpreter. | 1 | /* Storage allocation and gc for GNU Emacs Lisp interpreter. |
| 2 | Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, | 2 | Copyright (C) 1985, 1986, 1988, 1993, 1994, 1995, 1997, 1998, 1999, |
| 3 | 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -1105,6 +1105,9 @@ lisp_align_free (block) | |||
| 1105 | } | 1105 | } |
| 1106 | eassert ((aligned & 1) == aligned); | 1106 | eassert ((aligned & 1) == aligned); |
| 1107 | eassert (i == (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1)); | 1107 | eassert (i == (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1)); |
| 1108 | #ifdef HAVE_POSIX_MEMALIGN | ||
| 1109 | eassert ((unsigned long)ABLOCKS_BASE (abase) % BLOCK_ALIGN == 0); | ||
| 1110 | #endif | ||
| 1108 | free (ABLOCKS_BASE (abase)); | 1111 | free (ABLOCKS_BASE (abase)); |
| 1109 | } | 1112 | } |
| 1110 | UNBLOCK_INPUT; | 1113 | UNBLOCK_INPUT; |
| @@ -1419,6 +1422,8 @@ make_interval () | |||
| 1419 | { | 1422 | { |
| 1420 | INTERVAL val; | 1423 | INTERVAL val; |
| 1421 | 1424 | ||
| 1425 | eassert (!handling_signal); | ||
| 1426 | |||
| 1422 | if (interval_free_list) | 1427 | if (interval_free_list) |
| 1423 | { | 1428 | { |
| 1424 | val = interval_free_list; | 1429 | val = interval_free_list; |
| @@ -1837,6 +1842,8 @@ allocate_string () | |||
| 1837 | { | 1842 | { |
| 1838 | struct Lisp_String *s; | 1843 | struct Lisp_String *s; |
| 1839 | 1844 | ||
| 1845 | eassert (!handling_signal); | ||
| 1846 | |||
| 1840 | /* If the free-list is empty, allocate a new string_block, and | 1847 | /* If the free-list is empty, allocate a new string_block, and |
| 1841 | add all the Lisp_Strings in it to the free-list. */ | 1848 | add all the Lisp_Strings in it to the free-list. */ |
| 1842 | if (string_free_list == NULL) | 1849 | if (string_free_list == NULL) |
| @@ -1971,6 +1978,8 @@ allocate_string_data (s, nchars, nbytes) | |||
| 1971 | old_nbytes = GC_STRING_BYTES (s); | 1978 | old_nbytes = GC_STRING_BYTES (s); |
| 1972 | 1979 | ||
| 1973 | data = b->next_free; | 1980 | data = b->next_free; |
| 1981 | b->next_free = (struct sdata *) ((char *) data + needed + GC_STRING_EXTRA); | ||
| 1982 | |||
| 1974 | data->string = s; | 1983 | data->string = s; |
| 1975 | s->data = SDATA_DATA (data); | 1984 | s->data = SDATA_DATA (data); |
| 1976 | #ifdef GC_CHECK_STRING_BYTES | 1985 | #ifdef GC_CHECK_STRING_BYTES |
| @@ -1983,7 +1992,6 @@ allocate_string_data (s, nchars, nbytes) | |||
| 1983 | bcopy (string_overrun_cookie, (char *) data + needed, | 1992 | bcopy (string_overrun_cookie, (char *) data + needed, |
| 1984 | GC_STRING_OVERRUN_COOKIE_SIZE); | 1993 | GC_STRING_OVERRUN_COOKIE_SIZE); |
| 1985 | #endif | 1994 | #endif |
| 1986 | b->next_free = (struct sdata *) ((char *) data + needed + GC_STRING_EXTRA); | ||
| 1987 | 1995 | ||
| 1988 | /* If S had already data assigned, mark that as free by setting its | 1996 | /* If S had already data assigned, mark that as free by setting its |
| 1989 | string back-pointer to null, and recording the size of the data | 1997 | string back-pointer to null, and recording the size of the data |
| @@ -2552,6 +2560,8 @@ make_float (float_value) | |||
| 2552 | { | 2560 | { |
| 2553 | register Lisp_Object val; | 2561 | register Lisp_Object val; |
| 2554 | 2562 | ||
| 2563 | eassert (!handling_signal); | ||
| 2564 | |||
| 2555 | if (float_free_list) | 2565 | if (float_free_list) |
| 2556 | { | 2566 | { |
| 2557 | /* We use the data field for chaining the free list | 2567 | /* We use the data field for chaining the free list |
| @@ -2671,6 +2681,8 @@ DEFUN ("cons", Fcons, Scons, 2, 2, 0, | |||
| 2671 | { | 2681 | { |
| 2672 | register Lisp_Object val; | 2682 | register Lisp_Object val; |
| 2673 | 2683 | ||
| 2684 | eassert (!handling_signal); | ||
| 2685 | |||
| 2674 | if (cons_free_list) | 2686 | if (cons_free_list) |
| 2675 | { | 2687 | { |
| 2676 | /* We use the cdr for chaining the free list | 2688 | /* We use the cdr for chaining the free list |
| @@ -2852,6 +2864,9 @@ allocate_vectorlike (len, type) | |||
| 2852 | UNBLOCK_INPUT; | 2864 | UNBLOCK_INPUT; |
| 2853 | #endif | 2865 | #endif |
| 2854 | 2866 | ||
| 2867 | /* This gets triggered by code which I haven't bothered to fix. --Stef */ | ||
| 2868 | /* eassert (!handling_signal); */ | ||
| 2869 | |||
| 2855 | nbytes = sizeof *p + (len - 1) * sizeof p->contents[0]; | 2870 | nbytes = sizeof *p + (len - 1) * sizeof p->contents[0]; |
| 2856 | p = (struct Lisp_Vector *) lisp_malloc (nbytes, type); | 2871 | p = (struct Lisp_Vector *) lisp_malloc (nbytes, type); |
| 2857 | 2872 | ||
| @@ -3102,6 +3117,8 @@ Its value and function definition are void, and its property list is nil. */) | |||
| 3102 | 3117 | ||
| 3103 | CHECK_STRING (name); | 3118 | CHECK_STRING (name); |
| 3104 | 3119 | ||
| 3120 | eassert (!handling_signal); | ||
| 3121 | |||
| 3105 | if (symbol_free_list) | 3122 | if (symbol_free_list) |
| 3106 | { | 3123 | { |
| 3107 | XSETSYMBOL (val, symbol_free_list); | 3124 | XSETSYMBOL (val, symbol_free_list); |
| @@ -3182,6 +3199,8 @@ allocate_misc () | |||
| 3182 | { | 3199 | { |
| 3183 | Lisp_Object val; | 3200 | Lisp_Object val; |
| 3184 | 3201 | ||
| 3202 | eassert (!handling_signal); | ||
| 3203 | |||
| 3185 | if (marker_free_list) | 3204 | if (marker_free_list) |
| 3186 | { | 3205 | { |
| 3187 | XSETMISC (val, marker_free_list); | 3206 | XSETMISC (val, marker_free_list); |
diff --git a/src/dired.c b/src/dired.c index eca05cde0db..650600b278e 100644 --- a/src/dired.c +++ b/src/dired.c | |||
| @@ -1037,11 +1037,11 @@ syms_of_dired () | |||
| 1037 | #endif /* VMS */ | 1037 | #endif /* VMS */ |
| 1038 | 1038 | ||
| 1039 | DEFVAR_LISP ("completion-ignored-extensions", &Vcompletion_ignored_extensions, | 1039 | DEFVAR_LISP ("completion-ignored-extensions", &Vcompletion_ignored_extensions, |
| 1040 | doc: /* *Completion ignores filenames ending in any string in this list. | 1040 | doc: /* Completion ignores file names ending in any string in this list. |
| 1041 | Directories are ignored if they match any string in this list which | 1041 | It does not ignore them if all possible completions end in one of |
| 1042 | ends in a slash. | 1042 | these strings or when displaying a list of completions. |
| 1043 | This variable does not affect lists of possible completions, | 1043 | It ignores directory names if they match any string in this list which |
| 1044 | but does affect the commands that actually do completions. */); | 1044 | ends in a slash. */); |
| 1045 | Vcompletion_ignored_extensions = Qnil; | 1045 | Vcompletion_ignored_extensions = Qnil; |
| 1046 | } | 1046 | } |
| 1047 | 1047 | ||
diff --git a/src/keyboard.c b/src/keyboard.c index 07a0deaf828..8434dbe1d7a 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -790,6 +790,8 @@ echo_char (c) | |||
| 790 | else | 790 | else |
| 791 | echo_string = concat2 (echo_string, build_string (" ")); | 791 | echo_string = concat2 (echo_string, build_string (" ")); |
| 792 | } | 792 | } |
| 793 | else if (STRINGP (echo_string)) | ||
| 794 | echo_string = concat2 (echo_string, build_string (" ")); | ||
| 793 | 795 | ||
| 794 | current_kboard->echo_string | 796 | current_kboard->echo_string |
| 795 | = concat2 (echo_string, make_string (buffer, ptr - buffer)); | 797 | = concat2 (echo_string, make_string (buffer, ptr - buffer)); |
| @@ -820,16 +822,16 @@ echo_dash () | |||
| 820 | /* Do nothing if we have already put a dash at the end. */ | 822 | /* Do nothing if we have already put a dash at the end. */ |
| 821 | if (SCHARS (current_kboard->echo_string) > 1) | 823 | if (SCHARS (current_kboard->echo_string) > 1) |
| 822 | { | 824 | { |
| 823 | Lisp_Object last_char, prev_char, idx; | 825 | Lisp_Object last_char, prev_char, idx; |
| 824 | 826 | ||
| 825 | idx = make_number (SCHARS (current_kboard->echo_string) - 2); | 827 | idx = make_number (SCHARS (current_kboard->echo_string) - 2); |
| 826 | prev_char = Faref (current_kboard->echo_string, idx); | 828 | prev_char = Faref (current_kboard->echo_string, idx); |
| 827 | 829 | ||
| 828 | idx = make_number (SCHARS (current_kboard->echo_string) - 1); | 830 | idx = make_number (SCHARS (current_kboard->echo_string) - 1); |
| 829 | last_char = Faref (current_kboard->echo_string, idx); | 831 | last_char = Faref (current_kboard->echo_string, idx); |
| 830 | 832 | ||
| 831 | if (XINT (last_char) == '-' && XINT (prev_char) != ' ') | 833 | if (XINT (last_char) == '-' && XINT (prev_char) != ' ') |
| 832 | return; | 834 | return; |
| 833 | } | 835 | } |
| 834 | 836 | ||
| 835 | /* Put a dash at the end of the buffer temporarily, | 837 | /* Put a dash at the end of the buffer temporarily, |
diff --git a/src/keymap.c b/src/keymap.c index 07bf957cdca..31f80a2593a 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -718,8 +718,10 @@ map_keymap_call (key, val, fun, dummy) | |||
| 718 | } | 718 | } |
| 719 | 719 | ||
| 720 | DEFUN ("map-keymap", Fmap_keymap, Smap_keymap, 2, 3, 0, | 720 | DEFUN ("map-keymap", Fmap_keymap, Smap_keymap, 2, 3, 0, |
| 721 | doc: /* Call FUNCTION for every binding in KEYMAP. | 721 | doc: /* Call FUNCTION once for each binding in KEYMAP. |
| 722 | FUNCTION is called with two arguments: the event and its binding. | 722 | FUNCTION is called with two arguments: the event that is bound, and |
| 723 | the definition it is bound to. | ||
| 724 | |||
| 723 | If KEYMAP has a parent, the parent's bindings are included as well. | 725 | If KEYMAP has a parent, the parent's bindings are included as well. |
| 724 | This works recursively: if the parent has itself a parent, then the | 726 | This works recursively: if the parent has itself a parent, then the |
| 725 | grandparent's bindings are also included and so on. | 727 | grandparent's bindings are also included and so on. |
diff --git a/src/lread.c b/src/lread.c index 7a4437350b1..c035b529ce2 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -982,8 +982,12 @@ Return t if file exists. */) | |||
| 982 | if (!NILP (Fequal (found, XCAR (tem)))) | 982 | if (!NILP (Fequal (found, XCAR (tem)))) |
| 983 | count++; | 983 | count++; |
| 984 | if (count > 3) | 984 | if (count > 3) |
| 985 | Fsignal (Qerror, Fcons (build_string ("Recursive load"), | 985 | { |
| 986 | Fcons (found, Vloads_in_progress))); | 986 | if (fd >= 0) |
| 987 | emacs_close (fd); | ||
| 988 | Fsignal (Qerror, Fcons (build_string ("Recursive load"), | ||
| 989 | Fcons (found, Vloads_in_progress))); | ||
| 990 | } | ||
| 987 | record_unwind_protect (record_load_unwind, Vloads_in_progress); | 991 | record_unwind_protect (record_load_unwind, Vloads_in_progress); |
| 988 | Vloads_in_progress = Fcons (found, Vloads_in_progress); | 992 | Vloads_in_progress = Fcons (found, Vloads_in_progress); |
| 989 | } | 993 | } |
diff --git a/src/minibuf.c b/src/minibuf.c index 9c7542ad090..79b3041c3b2 100644 --- a/src/minibuf.c +++ b/src/minibuf.c | |||
| @@ -653,7 +653,8 @@ read_minibuf (map, initial, prompt, backup_n, expflag, | |||
| 653 | Lisp_Object root_window = Fframe_root_window (frame); | 653 | Lisp_Object root_window = Fframe_root_window (frame); |
| 654 | Lisp_Object mini_window = XWINDOW (root_window)->next; | 654 | Lisp_Object mini_window = XWINDOW (root_window)->next; |
| 655 | 655 | ||
| 656 | if (! NILP (mini_window) && !NILP (Fwindow_minibuffer_p (mini_window))) | 656 | if (! NILP (mini_window) && ! EQ (mini_window, minibuf_window) |
| 657 | && !NILP (Fwindow_minibuffer_p (mini_window))) | ||
| 657 | Fset_window_buffer (mini_window, empty_minibuf, Qnil); | 658 | Fset_window_buffer (mini_window, empty_minibuf, Qnil); |
| 658 | } | 659 | } |
| 659 | 660 | ||
diff --git a/src/puresize.h b/src/puresize.h index f82c705265b..e46ca103d7d 100644 --- a/src/puresize.h +++ b/src/puresize.h | |||
| @@ -42,7 +42,7 @@ Boston, MA 02110-1301, USA. */ | |||
| 42 | #endif | 42 | #endif |
| 43 | 43 | ||
| 44 | #ifndef BASE_PURESIZE | 44 | #ifndef BASE_PURESIZE |
| 45 | #define BASE_PURESIZE (1180000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) | 45 | #define BASE_PURESIZE (1190000 + SYSTEM_PURESIZE_EXTRA + SITELOAD_PURESIZE_EXTRA) |
| 46 | #endif | 46 | #endif |
| 47 | 47 | ||
| 48 | /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */ | 48 | /* Increase BASE_PURESIZE by a ratio depending on the machine's word size. */ |
diff --git a/src/regex.c b/src/regex.c index 412fd1d524d..3548ad3c048 100644 --- a/src/regex.c +++ b/src/regex.c | |||
| @@ -3,7 +3,7 @@ | |||
| 3 | internationalization features.) | 3 | internationalization features.) |
| 4 | 4 | ||
| 5 | Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 5 | Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
| 6 | 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 6 | 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 7 | 7 | ||
| 8 | This program is free software; you can redistribute it and/or modify | 8 | This program is free software; you can redistribute it and/or modify |
| 9 | it under the terms of the GNU General Public License as published by | 9 | it under the terms of the GNU General Public License as published by |
| @@ -1899,8 +1899,9 @@ typedef struct | |||
| 1899 | /* The next available element. */ | 1899 | /* The next available element. */ |
| 1900 | #define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) | 1900 | #define COMPILE_STACK_TOP (compile_stack.stack[compile_stack.avail]) |
| 1901 | 1901 | ||
| 1902 | /* Explicit quit checking is only used on NTemacs. */ | 1902 | /* Explicit quit checking is only used on NTemacs and whenever we |
| 1903 | #if defined WINDOWSNT && defined emacs && defined QUIT | 1903 | use polling to process input events. */ |
| 1904 | #if defined emacs && (defined WINDOWSNT || defined SYNC_INPUT) && defined QUIT | ||
| 1904 | extern int immediate_quit; | 1905 | extern int immediate_quit; |
| 1905 | # define IMMEDIATE_QUIT_CHECK \ | 1906 | # define IMMEDIATE_QUIT_CHECK \ |
| 1906 | do { \ | 1907 | do { \ |
| @@ -5770,7 +5771,6 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) | |||
| 5770 | the repetition text and either the following jump or | 5771 | the repetition text and either the following jump or |
| 5771 | pop_failure_jump back to this on_failure_jump. */ | 5772 | pop_failure_jump back to this on_failure_jump. */ |
| 5772 | case on_failure_jump: | 5773 | case on_failure_jump: |
| 5773 | IMMEDIATE_QUIT_CHECK; | ||
| 5774 | EXTRACT_NUMBER_AND_INCR (mcnt, p); | 5774 | EXTRACT_NUMBER_AND_INCR (mcnt, p); |
| 5775 | DEBUG_PRINT3 ("EXECUTING on_failure_jump %d (to %p):\n", | 5775 | DEBUG_PRINT3 ("EXECUTING on_failure_jump %d (to %p):\n", |
| 5776 | mcnt, p + mcnt); | 5776 | mcnt, p + mcnt); |
| @@ -5786,7 +5786,6 @@ re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop) | |||
| 5786 | then we can use a non-backtracking loop based on | 5786 | then we can use a non-backtracking loop based on |
| 5787 | on_failure_keep_string_jump instead of on_failure_jump. */ | 5787 | on_failure_keep_string_jump instead of on_failure_jump. */ |
| 5788 | case on_failure_jump_smart: | 5788 | case on_failure_jump_smart: |
| 5789 | IMMEDIATE_QUIT_CHECK; | ||
| 5790 | EXTRACT_NUMBER_AND_INCR (mcnt, p); | 5789 | EXTRACT_NUMBER_AND_INCR (mcnt, p); |
| 5791 | DEBUG_PRINT3 ("EXECUTING on_failure_jump_smart %d (to %p).\n", | 5790 | DEBUG_PRINT3 ("EXECUTING on_failure_jump_smart %d (to %p).\n", |
| 5792 | mcnt, p + mcnt); | 5791 | mcnt, p + mcnt); |
diff --git a/src/s/irix6-5.h b/src/s/irix6-5.h index c1cc42a8c0e..9df3e0a2ef6 100644 --- a/src/s/irix6-5.h +++ b/src/s/irix6-5.h | |||
| @@ -33,5 +33,9 @@ | |||
| 33 | 33 | ||
| 34 | #undef TIOCSIGSEND /* defined in usg5-4.h */ | 34 | #undef TIOCSIGSEND /* defined in usg5-4.h */ |
| 35 | 35 | ||
| 36 | /* Tested on Irix 6.5. SCM worked on earlier versions. */ | ||
| 37 | #define GC_SETJMP_WORKS 1 | ||
| 38 | #define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS | ||
| 39 | |||
| 36 | /* arch-tag: d7ad9ec2-54ad-4b2f-adf2-0070c5c63e83 | 40 | /* arch-tag: d7ad9ec2-54ad-4b2f-adf2-0070c5c63e83 |
| 37 | (do not change this comment) */ | 41 | (do not change this comment) */ |
| @@ -3426,13 +3426,13 @@ sys_close (int fd) | |||
| 3426 | { | 3426 | { |
| 3427 | int rc; | 3427 | int rc; |
| 3428 | 3428 | ||
| 3429 | if (fd < 0 || fd >= MAXDESC) | 3429 | if (fd < 0) |
| 3430 | { | 3430 | { |
| 3431 | errno = EBADF; | 3431 | errno = EBADF; |
| 3432 | return -1; | 3432 | return -1; |
| 3433 | } | 3433 | } |
| 3434 | 3434 | ||
| 3435 | if (fd_info[fd].cp) | 3435 | if (fd < MAXDESC && fd_info[fd].cp) |
| 3436 | { | 3436 | { |
| 3437 | child_process * cp = fd_info[fd].cp; | 3437 | child_process * cp = fd_info[fd].cp; |
| 3438 | 3438 | ||
| @@ -3474,7 +3474,7 @@ sys_close (int fd) | |||
| 3474 | because socket handles are fully fledged kernel handles. */ | 3474 | because socket handles are fully fledged kernel handles. */ |
| 3475 | rc = _close (fd); | 3475 | rc = _close (fd); |
| 3476 | 3476 | ||
| 3477 | if (rc == 0) | 3477 | if (rc == 0 && fd < MAXDESC) |
| 3478 | fd_info[fd].flags = 0; | 3478 | fd_info[fd].flags = 0; |
| 3479 | 3479 | ||
| 3480 | return rc; | 3480 | return rc; |
| @@ -3486,7 +3486,7 @@ sys_dup (int fd) | |||
| 3486 | int new_fd; | 3486 | int new_fd; |
| 3487 | 3487 | ||
| 3488 | new_fd = _dup (fd); | 3488 | new_fd = _dup (fd); |
| 3489 | if (new_fd >= 0) | 3489 | if (new_fd >= 0 && new_fd < MAXDESC) |
| 3490 | { | 3490 | { |
| 3491 | /* duplicate our internal info as well */ | 3491 | /* duplicate our internal info as well */ |
| 3492 | fd_info[new_fd] = fd_info[fd]; | 3492 | fd_info[new_fd] = fd_info[fd]; |
| @@ -3641,13 +3641,13 @@ sys_read (int fd, char * buffer, unsigned int count) | |||
| 3641 | DWORD waiting; | 3641 | DWORD waiting; |
| 3642 | char * orig_buffer = buffer; | 3642 | char * orig_buffer = buffer; |
| 3643 | 3643 | ||
| 3644 | if (fd < 0 || fd >= MAXDESC) | 3644 | if (fd < 0) |
| 3645 | { | 3645 | { |
| 3646 | errno = EBADF; | 3646 | errno = EBADF; |
| 3647 | return -1; | 3647 | return -1; |
| 3648 | } | 3648 | } |
| 3649 | 3649 | ||
| 3650 | if (fd_info[fd].flags & (FILE_PIPE | FILE_SOCKET)) | 3650 | if (fd < MAXDESC && fd_info[fd].flags & (FILE_PIPE | FILE_SOCKET)) |
| 3651 | { | 3651 | { |
| 3652 | child_process *cp = fd_info[fd].cp; | 3652 | child_process *cp = fd_info[fd].cp; |
| 3653 | 3653 | ||
| @@ -3785,13 +3785,13 @@ sys_write (int fd, const void * buffer, unsigned int count) | |||
| 3785 | { | 3785 | { |
| 3786 | int nchars; | 3786 | int nchars; |
| 3787 | 3787 | ||
| 3788 | if (fd < 0 || fd >= MAXDESC) | 3788 | if (fd < 0) |
| 3789 | { | 3789 | { |
| 3790 | errno = EBADF; | 3790 | errno = EBADF; |
| 3791 | return -1; | 3791 | return -1; |
| 3792 | } | 3792 | } |
| 3793 | 3793 | ||
| 3794 | if (fd_info[fd].flags & (FILE_PIPE | FILE_SOCKET)) | 3794 | if (fd < MAXDESC && fd_info[fd].flags & (FILE_PIPE | FILE_SOCKET)) |
| 3795 | { | 3795 | { |
| 3796 | if ((fd_info[fd].flags & FILE_WRITE) == 0) | 3796 | if ((fd_info[fd].flags & FILE_WRITE) == 0) |
| 3797 | { | 3797 | { |
| @@ -3833,7 +3833,7 @@ sys_write (int fd, const void * buffer, unsigned int count) | |||
| 3833 | } | 3833 | } |
| 3834 | 3834 | ||
| 3835 | #ifdef HAVE_SOCKETS | 3835 | #ifdef HAVE_SOCKETS |
| 3836 | if (fd_info[fd].flags & FILE_SOCKET) | 3836 | if (fd < MAXDESC && fd_info[fd].flags & FILE_SOCKET) |
| 3837 | { | 3837 | { |
| 3838 | unsigned long nblock = 0; | 3838 | unsigned long nblock = 0; |
| 3839 | if (winsock_lib == NULL) abort (); | 3839 | if (winsock_lib == NULL) abort (); |
diff --git a/src/xdisp.c b/src/xdisp.c index 3af661108d8..8b1b6f59cf2 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | /* Display generation from window structure and buffer text. | 1 | /* Display generation from window structure and buffer text. |
| 2 | Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, | 2 | Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, |
| 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, | 3 | 1997, 1998, 1999, 2000, 2001, 2002, 2003, |
| 4 | 2004, 2005 Free Software Foundation, Inc. | 4 | 2004, 2005, 2006 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | This file is part of GNU Emacs. | 6 | This file is part of GNU Emacs. |
| 7 | 7 | ||
| @@ -3617,6 +3617,11 @@ handle_invisible_prop (it) | |||
| 3617 | skip starting with next_stop. */ | 3617 | skip starting with next_stop. */ |
| 3618 | if (invis_p) | 3618 | if (invis_p) |
| 3619 | IT_CHARPOS (*it) = next_stop; | 3619 | IT_CHARPOS (*it) = next_stop; |
| 3620 | |||
| 3621 | /* If there are adjacent invisible texts, don't lose the | ||
| 3622 | second one's ellipsis. */ | ||
| 3623 | if (invis_p == 2) | ||
| 3624 | display_ellipsis_p = 1; | ||
| 3620 | } | 3625 | } |
| 3621 | while (invis_p); | 3626 | while (invis_p); |
| 3622 | 3627 | ||
| @@ -3637,7 +3642,23 @@ handle_invisible_prop (it) | |||
| 3637 | it->stack[it->sp - 1].display_ellipsis_p = display_ellipsis_p; | 3642 | it->stack[it->sp - 1].display_ellipsis_p = display_ellipsis_p; |
| 3638 | } | 3643 | } |
| 3639 | else if (display_ellipsis_p) | 3644 | else if (display_ellipsis_p) |
| 3640 | setup_for_ellipsis (it, 0); | 3645 | { |
| 3646 | /* Make sure that the glyphs of the ellipsis will get | ||
| 3647 | correct `charpos' values. If we would not update | ||
| 3648 | it->position here, the glyphs would belong to the | ||
| 3649 | last visible character _before_ the invisible | ||
| 3650 | text, which confuses `set_cursor_from_row'. | ||
| 3651 | |||
| 3652 | We use the last invisible position instead of the | ||
| 3653 | first because this way the cursor is always drawn on | ||
| 3654 | the first "." of the ellipsis, whenever PT is inside | ||
| 3655 | the invisible text. Otherwise the cursor would be | ||
| 3656 | placed _after_ the ellipsis when the point is after the | ||
| 3657 | first invisible character. */ | ||
| 3658 | it->position.charpos = IT_CHARPOS (*it) - 1; | ||
| 3659 | it->position.bytepos = CHAR_TO_BYTE (it->position.charpos); | ||
| 3660 | setup_for_ellipsis (it, 0); | ||
| 3661 | } | ||
| 3641 | } | 3662 | } |
| 3642 | } | 3663 | } |
| 3643 | 3664 | ||
| @@ -4151,7 +4172,7 @@ handle_single_display_spec (it, spec, object, position, | |||
| 4151 | { | 4172 | { |
| 4152 | it->method = GET_FROM_STRETCH; | 4173 | it->method = GET_FROM_STRETCH; |
| 4153 | it->object = value; | 4174 | it->object = value; |
| 4154 | it->current.pos = it->position = start_pos; | 4175 | *position = it->position = start_pos; |
| 4155 | } | 4176 | } |
| 4156 | #ifdef HAVE_WINDOW_SYSTEM | 4177 | #ifdef HAVE_WINDOW_SYSTEM |
| 4157 | else | 4178 | else |
| @@ -19772,6 +19793,10 @@ produce_stretch_glyph (it) | |||
| 19772 | else | 19793 | else |
| 19773 | ascent = (height * FONT_BASE (font)) / FONT_HEIGHT (font); | 19794 | ascent = (height * FONT_BASE (font)) / FONT_HEIGHT (font); |
| 19774 | 19795 | ||
| 19796 | if (width > 0 && !it->truncate_lines_p | ||
| 19797 | && it->current_x + width > it->last_visible_x) | ||
| 19798 | width = it->last_visible_x - it->current_x - 1; | ||
| 19799 | |||
| 19775 | if (width > 0 && height > 0 && it->glyph_row) | 19800 | if (width > 0 && height > 0 && it->glyph_row) |
| 19776 | { | 19801 | { |
| 19777 | Lisp_Object object = it->stack[it->sp - 1].string; | 19802 | Lisp_Object object = it->stack[it->sp - 1].string; |
| @@ -19912,8 +19937,8 @@ calc_line_height_property (it, val, font, boff, override) | |||
| 19912 | 19937 | ||
| 19913 | /* RIF: | 19938 | /* RIF: |
| 19914 | Produce glyphs/get display metrics for the display element IT is | 19939 | Produce glyphs/get display metrics for the display element IT is |
| 19915 | loaded with. See the description of struct display_iterator in | 19940 | loaded with. See the description of struct it in dispextern.h |
| 19916 | dispextern.h for an overview of struct display_iterator. */ | 19941 | for an overview of struct it. */ |
| 19917 | 19942 | ||
| 19918 | void | 19943 | void |
| 19919 | x_produce_glyphs (it) | 19944 | x_produce_glyphs (it) |
| @@ -20913,8 +20938,13 @@ get_window_cursor_type (w, glyph, width, active_cursor) | |||
| 20913 | { | 20938 | { |
| 20914 | if (w == XWINDOW (echo_area_window)) | 20939 | if (w == XWINDOW (echo_area_window)) |
| 20915 | { | 20940 | { |
| 20916 | *width = FRAME_CURSOR_WIDTH (f); | 20941 | if (EQ (b->cursor_type, Qt) || NILP (b->cursor_type)) |
| 20917 | return FRAME_DESIRED_CURSOR (f); | 20942 | { |
| 20943 | *width = FRAME_CURSOR_WIDTH (f); | ||
| 20944 | return FRAME_DESIRED_CURSOR (f); | ||
| 20945 | } | ||
| 20946 | else | ||
| 20947 | return get_specified_cursor_type (b->cursor_type, width); | ||
| 20918 | } | 20948 | } |
| 20919 | 20949 | ||
| 20920 | *active_cursor = 0; | 20950 | *active_cursor = 0; |
diff --git a/src/xterm.c b/src/xterm.c index f52ff6133fe..0d1ea7636f2 100644 --- a/src/xterm.c +++ b/src/xterm.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* X Communication module for terminals which understand the X protocol. | 1 | /* X Communication module for terminals which understand the X protocol. |
| 2 | Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, | 2 | Copyright (C) 1989, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
| 3 | 2002, 2003, 2004, 2005 Free Software Foundation, Inc. | 3 | 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -7438,7 +7438,12 @@ x_text_icon (f, icon_name) | |||
| 7438 | /* If non-nil, this should be a string. | 7438 | /* If non-nil, this should be a string. |
| 7439 | It means catch X errors and store the error message in this string. */ | 7439 | It means catch X errors and store the error message in this string. */ |
| 7440 | 7440 | ||
| 7441 | static Lisp_Object x_error_message_string; | 7441 | struct x_error_message_stack { |
| 7442 | char string[X_ERROR_MESSAGE_SIZE]; | ||
| 7443 | Display *dpy; | ||
| 7444 | struct x_error_message_stack *prev; | ||
| 7445 | }; | ||
| 7446 | static struct x_error_message_stack *x_error_message; | ||
| 7442 | 7447 | ||
| 7443 | /* An X error handler which stores the error message in | 7448 | /* An X error handler which stores the error message in |
| 7444 | x_error_message_string. This is called from x_error_handler if | 7449 | x_error_message_string. This is called from x_error_handler if |
| @@ -7450,7 +7455,7 @@ x_error_catcher (display, error) | |||
| 7450 | XErrorEvent *error; | 7455 | XErrorEvent *error; |
| 7451 | { | 7456 | { |
| 7452 | XGetErrorText (display, error->error_code, | 7457 | XGetErrorText (display, error->error_code, |
| 7453 | SDATA (x_error_message_string), | 7458 | x_error_message->string, |
| 7454 | X_ERROR_MESSAGE_SIZE); | 7459 | X_ERROR_MESSAGE_SIZE); |
| 7455 | } | 7460 | } |
| 7456 | 7461 | ||
| @@ -7475,16 +7480,23 @@ x_catch_errors (dpy) | |||
| 7475 | Display *dpy; | 7480 | Display *dpy; |
| 7476 | { | 7481 | { |
| 7477 | int count = SPECPDL_INDEX (); | 7482 | int count = SPECPDL_INDEX (); |
| 7483 | struct x_error_message_stack *data = malloc (sizeof (*data)); | ||
| 7484 | Lisp_Object dummy; | ||
| 7485 | #ifdef ENABLE_CHECKING | ||
| 7486 | dummy = make_number ((EMACS_INT)dpy + (EMACS_INT)x_error_message); | ||
| 7487 | #else | ||
| 7488 | dummy = Qnil; | ||
| 7489 | #endif | ||
| 7478 | 7490 | ||
| 7479 | /* Make sure any errors from previous requests have been dealt with. */ | 7491 | /* Make sure any errors from previous requests have been dealt with. */ |
| 7480 | XSync (dpy, False); | 7492 | XSync (dpy, False); |
| 7481 | 7493 | ||
| 7482 | record_unwind_protect (x_catch_errors_unwind, | 7494 | data->dpy = dpy; |
| 7483 | Fcons (make_save_value (dpy, 0), | 7495 | data->string[0] = 0; |
| 7484 | x_error_message_string)); | 7496 | data->prev = x_error_message; |
| 7497 | x_error_message = data; | ||
| 7485 | 7498 | ||
| 7486 | x_error_message_string = make_uninit_string (X_ERROR_MESSAGE_SIZE); | 7499 | record_unwind_protect (x_catch_errors_unwind, dummy); |
| 7487 | SSET (x_error_message_string, 0, 0); | ||
| 7488 | 7500 | ||
| 7489 | return count; | 7501 | return count; |
| 7490 | } | 7502 | } |
| @@ -7492,11 +7504,11 @@ x_catch_errors (dpy) | |||
| 7492 | /* Unbind the binding that we made to check for X errors. */ | 7504 | /* Unbind the binding that we made to check for X errors. */ |
| 7493 | 7505 | ||
| 7494 | static Lisp_Object | 7506 | static Lisp_Object |
| 7495 | x_catch_errors_unwind (old_val) | 7507 | x_catch_errors_unwind (dummy) |
| 7496 | Lisp_Object old_val; | 7508 | Lisp_Object dummy; |
| 7497 | { | 7509 | { |
| 7498 | Lisp_Object first = XCAR (old_val); | 7510 | Display *dpy = x_error_message->dpy; |
| 7499 | Display *dpy = XSAVE_VALUE (first)->pointer; | 7511 | struct x_error_message_stack *tmp; |
| 7500 | 7512 | ||
| 7501 | /* The display may have been closed before this function is called. | 7513 | /* The display may have been closed before this function is called. |
| 7502 | Check if it is still open before calling XSync. */ | 7514 | Check if it is still open before calling XSync. */ |
| @@ -7507,7 +7519,13 @@ x_catch_errors_unwind (old_val) | |||
| 7507 | UNBLOCK_INPUT; | 7519 | UNBLOCK_INPUT; |
| 7508 | } | 7520 | } |
| 7509 | 7521 | ||
| 7510 | x_error_message_string = XCDR (old_val); | 7522 | tmp = x_error_message; |
| 7523 | x_error_message = x_error_message->prev; | ||
| 7524 | free (tmp); | ||
| 7525 | |||
| 7526 | eassert (EQ (dummy, | ||
| 7527 | make_number ((EMACS_INT)dpy + (EMACS_INT)x_error_message))); | ||
| 7528 | |||
| 7511 | return Qnil; | 7529 | return Qnil; |
| 7512 | } | 7530 | } |
| 7513 | 7531 | ||
| @@ -7523,8 +7541,8 @@ x_check_errors (dpy, format) | |||
| 7523 | /* Make sure to catch any errors incurred so far. */ | 7541 | /* Make sure to catch any errors incurred so far. */ |
| 7524 | XSync (dpy, False); | 7542 | XSync (dpy, False); |
| 7525 | 7543 | ||
| 7526 | if (SREF (x_error_message_string, 0)) | 7544 | if (x_error_message->string[0]) |
| 7527 | error (format, SDATA (x_error_message_string)); | 7545 | error (format, x_error_message->string); |
| 7528 | } | 7546 | } |
| 7529 | 7547 | ||
| 7530 | /* Nonzero if we had any X protocol errors | 7548 | /* Nonzero if we had any X protocol errors |
| @@ -7537,7 +7555,7 @@ x_had_errors_p (dpy) | |||
| 7537 | /* Make sure to catch any errors incurred so far. */ | 7555 | /* Make sure to catch any errors incurred so far. */ |
| 7538 | XSync (dpy, False); | 7556 | XSync (dpy, False); |
| 7539 | 7557 | ||
| 7540 | return SREF (x_error_message_string, 0) != 0; | 7558 | return x_error_message->string[0] != 0; |
| 7541 | } | 7559 | } |
| 7542 | 7560 | ||
| 7543 | /* Forget about any errors we have had, since we did x_catch_errors on DPY. */ | 7561 | /* Forget about any errors we have had, since we did x_catch_errors on DPY. */ |
| @@ -7546,7 +7564,7 @@ void | |||
| 7546 | x_clear_errors (dpy) | 7564 | x_clear_errors (dpy) |
| 7547 | Display *dpy; | 7565 | Display *dpy; |
| 7548 | { | 7566 | { |
| 7549 | SSET (x_error_message_string, 0, 0); | 7567 | x_error_message->string[0] = 0; |
| 7550 | } | 7568 | } |
| 7551 | 7569 | ||
| 7552 | /* Stop catching X protocol errors and let them make Emacs die. | 7570 | /* Stop catching X protocol errors and let them make Emacs die. |
| @@ -7728,7 +7746,7 @@ x_error_handler (display, error) | |||
| 7728 | Display *display; | 7746 | Display *display; |
| 7729 | XErrorEvent *error; | 7747 | XErrorEvent *error; |
| 7730 | { | 7748 | { |
| 7731 | if (! NILP (x_error_message_string)) | 7749 | if (x_error_message) |
| 7732 | x_error_catcher (display, error); | 7750 | x_error_catcher (display, error); |
| 7733 | else | 7751 | else |
| 7734 | x_error_quitter (display, error); | 7752 | x_error_quitter (display, error); |
| @@ -10970,8 +10988,7 @@ x_initialize () | |||
| 10970 | void | 10988 | void |
| 10971 | syms_of_xterm () | 10989 | syms_of_xterm () |
| 10972 | { | 10990 | { |
| 10973 | staticpro (&x_error_message_string); | 10991 | x_error_message = NULL; |
| 10974 | x_error_message_string = Qnil; | ||
| 10975 | 10992 | ||
| 10976 | staticpro (&x_display_name_list); | 10993 | staticpro (&x_display_name_list); |
| 10977 | x_display_name_list = Qnil; | 10994 | x_display_name_list = Qnil; |