diff options
| author | Miles Bader | 2005-03-03 10:35:22 +0000 |
|---|---|---|
| committer | Miles Bader | 2005-03-03 10:35:22 +0000 |
| commit | dedb5504d3464bd50b6c591d36791c5535af68c1 (patch) | |
| tree | 83ce1054c597d5e7c0d9be5dffd1d08dae2e330c /src | |
| parent | c638e2237cd90a294ed01ae2d29a51e25887bd43 (diff) | |
| parent | 139c65cf7b6b0bce5f4cd6e45f450ff4f02d5421 (diff) | |
| download | emacs-dedb5504d3464bd50b6c591d36791c5535af68c1.tar.gz emacs-dedb5504d3464bd50b6c591d36791c5535af68c1.zip | |
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-21
Merge from emacs--cvs-trunk--0
Patches applied:
* miles@gnu.org--gnu-2005/emacs--cvs-trunk--0 (patch 129-149)
- Update from CVS
- Merge from gnus--rel--5.10
- (make-text-button): Default button type if not specified
- quick-install-emacs: Use mkdir --verbose only when requested
* miles@gnu.org--gnu-2005/gnus--rel--5.10 (patch 31-33)
- Merge from emacs--cvs-trunk--0
- Update from CVS
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 60 | ||||
| -rw-r--r-- | src/buffer.c | 2 | ||||
| -rw-r--r-- | src/dispextern.h | 14 | ||||
| -rw-r--r-- | src/gtkutil.c | 6 | ||||
| -rw-r--r-- | src/keyboard.c | 7 | ||||
| -rw-r--r-- | src/xdisp.c | 65 |
6 files changed, 102 insertions, 52 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index bcde95958dd..eb0a3d0cf3b 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,38 @@ | |||
| 1 | 2005-03-02 Kim F. Storm <storm@cua.dk> | ||
| 2 | |||
| 3 | * dispextern.h (XASSERTS): Define to 0 if not already defined. | ||
| 4 | (xassert) [!XASSERTS]: Define dummy version. | ||
| 5 | |||
| 6 | 2005-03-02 Kim F. Storm <storm@cua.dk> | ||
| 7 | |||
| 8 | * xdisp.c (redisplay_window): YABX (yet another bogus xassert). | ||
| 9 | Reported by David Kastrup. | ||
| 10 | |||
| 11 | 2005-03-01 Ehud Karni <ehud@unix.mvs.co.il> | ||
| 12 | |||
| 13 | * xdisp.c (get_next_display_element): Fix control and escape | ||
| 14 | glyph from display vector. | ||
| 15 | |||
| 16 | 2005-03-01 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 17 | |||
| 18 | * keyboard.c (Fposn_at_x_y): Check integerness of X and Y. | ||
| 19 | |||
| 20 | 2005-02-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se> | ||
| 21 | |||
| 22 | * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to | ||
| 23 | gtk_window_resize and x_wm_set_size_hint. | ||
| 24 | |||
| 25 | 2005-02-25 Kim F. Storm <storm@cua.dk> | ||
| 26 | |||
| 27 | * dispextern.h (OVERLAY_STRING_CHUNK_SIZE): Increase from 3 to 16. | ||
| 28 | |||
| 29 | * xdisp.c (init_from_display_pos): Don't read past end of | ||
| 30 | it->overlay_strings array. | ||
| 31 | |||
| 32 | 2005-02-25 Stephan Stahl <stahl@eos.franken.de> (tiny change) | ||
| 33 | |||
| 34 | * buffer.c (syms_of_buffer): Fix typo. | ||
| 35 | |||
| 1 | 2005-02-23 Lute Kamstra <lute@gnu.org> | 36 | 2005-02-23 Lute Kamstra <lute@gnu.org> |
| 2 | 37 | ||
| 3 | * buffer.c (Foverlay_buffer): Doc fix. | 38 | * buffer.c (Foverlay_buffer): Doc fix. |
| @@ -14,7 +49,7 @@ | |||
| 14 | * window.c (window_scroll_pixel_based): When scrolling backwards, | 49 | * window.c (window_scroll_pixel_based): When scrolling backwards, |
| 15 | handle partial visible line at end of window even when we hit PT. | 50 | handle partial visible line at end of window even when we hit PT. |
| 16 | 51 | ||
| 17 | 2005-02-21 Stefan <monnier@iro.umontreal.ca> | 52 | 2005-02-21 Stefan Monnier <monnier@iro.umontreal.ca> |
| 18 | 53 | ||
| 19 | * keymap.h: Declare Fcurrent_active_maps, used in doc.c. | 54 | * keymap.h: Declare Fcurrent_active_maps, used in doc.c. |
| 20 | 55 | ||
| @@ -72,8 +107,7 @@ | |||
| 72 | (Fx_window_property): Likewise. | 107 | (Fx_window_property): Likewise. |
| 73 | 108 | ||
| 74 | * xselect.c (Fx_disown_selection_internal): Use union of struct | 109 | * xselect.c (Fx_disown_selection_internal): Use union of struct |
| 75 | input_event and struct selection_input_event to avoid aliasing | 110 | input_event and struct selection_input_event to avoid aliasing issues. |
| 76 | issues. | ||
| 77 | 111 | ||
| 78 | * xterm.c (handle_one_xevent): Use union of struct input_event and | 112 | * xterm.c (handle_one_xevent): Use union of struct input_event and |
| 79 | struct selection_input_event to avoid aliasing issues. | 113 | struct selection_input_event to avoid aliasing issues. |
| @@ -102,21 +136,20 @@ | |||
| 102 | clipboard operations and delayed rendering. | 136 | clipboard operations and delayed rendering. |
| 103 | 137 | ||
| 104 | Drop last_clipboard_text and related code, keep track of | 138 | Drop last_clipboard_text and related code, keep track of |
| 105 | ownership via clipboard_owner instead. Drop old #if0 | 139 | ownership via clipboard_owner instead. Drop old #if0 sections. |
| 106 | sections. | ||
| 107 | 140 | ||
| 108 | (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP) | 141 | (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP) |
| 109 | (clipboard_owner, modifying_clipboard, cfg_coding_system) | 142 | (clipboard_owner, modifying_clipboard, cfg_coding_system) |
| 110 | (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text) | 143 | (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text) |
| 111 | (current_coding_system, current_requires_encoding) | 144 | (current_coding_system, current_requires_encoding) |
| 112 | (current_num_nls, current_clipboard_type, current_lcid): New | 145 | (current_num_nls, current_clipboard_type, current_lcid): |
| 113 | static variables. | 146 | New static variables. |
| 114 | 147 | ||
| 115 | (convert_to_handle_as_ascii, convert_to_handle_as_coded) | 148 | (convert_to_handle_as_ascii, convert_to_handle_as_coded) |
| 116 | (render, render_all, run_protected, lisp_error_handler) | 149 | (render, render_all, run_protected, lisp_error_handler) |
| 117 | (owner_callback, create_owner, setup_config) | 150 | (owner_callback, create_owner, setup_config) |
| 118 | (enum_locale_callback, cp_from_locale, coding_from_cp): New | 151 | (enum_locale_callback, cp_from_locale, coding_from_cp): |
| 119 | local functions. | 152 | New local functions. |
| 120 | 153 | ||
| 121 | (term_w32select, globals_of_w32select): New global functions. | 154 | (term_w32select, globals_of_w32select): New global functions. |
| 122 | 155 | ||
| @@ -316,8 +349,7 @@ | |||
| 316 | (casify_region): Fix loop condition, args to replace_range_2, and | 349 | (casify_region): Fix loop condition, args to replace_range_2, and |
| 317 | update opoint_byte. | 350 | update opoint_byte. |
| 318 | 351 | ||
| 319 | * insdel.c (replace_range_2): Fix bugs in adjusting markers and | 352 | * insdel.c (replace_range_2): Fix bugs in adjusting markers and point. |
| 320 | point. | ||
| 321 | 353 | ||
| 322 | 2005-02-01 Kim F. Storm <storm@cua.dk> | 354 | 2005-02-01 Kim F. Storm <storm@cua.dk> |
| 323 | 355 | ||
| @@ -10994,9 +11026,9 @@ | |||
| 10994 | These changes were in part based upon suggestions made by Peter | 11026 | These changes were in part based upon suggestions made by Peter |
| 10995 | 'Luna' Runestig [peter@runestig.com]. | 11027 | 'Luna' Runestig [peter@runestig.com]. |
| 10996 | 11028 | ||
| 10997 | * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token, | 11029 | * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token) |
| 10998 | g_b_init_get_token_information, g_b_init_lookup_account_sid, | 11030 | (g_b_init_get_token_information, g_b_init_lookup_account_sid) |
| 10999 | g_b_init_get_sid_identifier_authority ): Add several static | 11031 | (g_b_init_get_sid_identifier_authority ): Add several static |
| 11000 | global variables. | 11032 | global variables. |
| 11001 | 11033 | ||
| 11002 | * w32.c (globals_of_w32): New function. Used to initialize those | 11034 | * w32.c (globals_of_w32): New function. Used to initialize those |
diff --git a/src/buffer.c b/src/buffer.c index be4f4dcae69..224c1bbcdef 100644 --- a/src/buffer.c +++ b/src/buffer.c | |||
| @@ -5689,7 +5689,7 @@ arrow bitmaps. | |||
| 5689 | 5689 | ||
| 5690 | If value is a symbol `left' or `right', both angle and arrow bitmaps | 5690 | If value is a symbol `left' or `right', both angle and arrow bitmaps |
| 5691 | are displayed in the left or right fringe, resp. Any other value | 5691 | are displayed in the left or right fringe, resp. Any other value |
| 5692 | that doesn't look like an alist means displat the angle bitmaps in | 5692 | that doesn't look like an alist means display the angle bitmaps in |
| 5693 | the left fringe but no arrows. | 5693 | the left fringe but no arrows. |
| 5694 | 5694 | ||
| 5695 | You can exercise more precise control by using an alist as the | 5695 | You can exercise more precise control by using an alist as the |
diff --git a/src/dispextern.h b/src/dispextern.h index 19f35a744e8..feeae776149 100644 --- a/src/dispextern.h +++ b/src/dispextern.h | |||
| @@ -119,6 +119,13 @@ enum window_part | |||
| 119 | #define GLYPH_DEBUG 0 | 119 | #define GLYPH_DEBUG 0 |
| 120 | #endif | 120 | #endif |
| 121 | 121 | ||
| 122 | /* If XASSERTS is non-zero, additional consistency checks are activated. | ||
| 123 | Turn it off by defining the macro XASSERTS to zero. */ | ||
| 124 | |||
| 125 | #ifndef XASSERTS | ||
| 126 | #define XASSERTS 0 | ||
| 127 | #endif | ||
| 128 | |||
| 122 | /* Macros to include code only if GLYPH_DEBUG != 0. */ | 129 | /* Macros to include code only if GLYPH_DEBUG != 0. */ |
| 123 | 130 | ||
| 124 | #if GLYPH_DEBUG | 131 | #if GLYPH_DEBUG |
| @@ -127,8 +134,11 @@ enum window_part | |||
| 127 | #define IF_DEBUG(X) (void) 0 | 134 | #define IF_DEBUG(X) (void) 0 |
| 128 | #endif | 135 | #endif |
| 129 | 136 | ||
| 130 | /* Maybe move this inside the above `#ifdef GLYPH_DEBUG' for release. */ | 137 | #if XASSERTS |
| 131 | #define xassert(X) do {if (!(X)) abort ();} while (0) | 138 | #define xassert(X) do {if (!(X)) abort ();} while (0) |
| 139 | #else | ||
| 140 | #define xassert(X) (void) 0 | ||
| 141 | #endif | ||
| 132 | 142 | ||
| 133 | /* Macro for displaying traces of redisplay. If Emacs was compiled | 143 | /* Macro for displaying traces of redisplay. If Emacs was compiled |
| 134 | with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to | 144 | with GLYPH_DEBUG != 0, the variable trace_redisplay_p can be set to |
| @@ -1881,7 +1891,7 @@ struct it | |||
| 1881 | 1891 | ||
| 1882 | /* Vector of overlays to process. Overlay strings are processed | 1892 | /* Vector of overlays to process. Overlay strings are processed |
| 1883 | OVERLAY_STRING_CHUNK_SIZE at a time. */ | 1893 | OVERLAY_STRING_CHUNK_SIZE at a time. */ |
| 1884 | #define OVERLAY_STRING_CHUNK_SIZE 3 | 1894 | #define OVERLAY_STRING_CHUNK_SIZE 16 |
| 1885 | Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; | 1895 | Lisp_Object overlay_strings[OVERLAY_STRING_CHUNK_SIZE]; |
| 1886 | 1896 | ||
| 1887 | /* Total number of overlay strings to process. This can be > | 1897 | /* Total number of overlay strings to process. This can be > |
diff --git a/src/gtkutil.c b/src/gtkutil.c index c291b44f5a2..6dcba3036c0 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c | |||
| @@ -556,12 +556,6 @@ xg_resize_outer_widget (f, columns, rows) | |||
| 556 | int columns; | 556 | int columns; |
| 557 | int rows; | 557 | int rows; |
| 558 | { | 558 | { |
| 559 | gtk_window_resize (GTK_WINDOW (FRAME_GTK_OUTER_WIDGET (f)), | ||
| 560 | FRAME_PIXEL_WIDTH (f), FRAME_TOTAL_PIXEL_HEIGHT (f)); | ||
| 561 | |||
| 562 | /* base_height is now changed. */ | ||
| 563 | x_wm_set_size_hint (f, 0, 0); | ||
| 564 | |||
| 565 | /* If we are not mapped yet, set geometry once again, as window | 559 | /* If we are not mapped yet, set geometry once again, as window |
| 566 | height now have changed. */ | 560 | height now have changed. */ |
| 567 | if (! GTK_WIDGET_MAPPED (FRAME_GTK_OUTER_WIDGET (f))) | 561 | if (! GTK_WIDGET_MAPPED (FRAME_GTK_OUTER_WIDGET (f))) |
diff --git a/src/keyboard.c b/src/keyboard.c index 32d8a34216b..fbdd768dd3a 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Keyboard and mouse input; editor command loop. | 1 | /* Keyboard and mouse input; editor command loop. |
| 2 | Copyright (C) 1985,86,87,88,89,93,94,95,96,97,99,2000,01,02,03,04 | 2 | Copyright (C) 1985, 1986, 1987, 1988, 1989, 1993, 1994, 1995, 1996, 1997, |
| 3 | Free Software Foundation, Inc. | 3 | 1999, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | This file is part of GNU Emacs. | 5 | This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -10529,6 +10529,9 @@ The `posn-' functions access elements of such lists. */) | |||
| 10529 | (x, y, frame_or_window, whole) | 10529 | (x, y, frame_or_window, whole) |
| 10530 | Lisp_Object x, y, frame_or_window, whole; | 10530 | Lisp_Object x, y, frame_or_window, whole; |
| 10531 | { | 10531 | { |
| 10532 | CHECK_NATNUM (x); | ||
| 10533 | CHECK_NATNUM (y); | ||
| 10534 | |||
| 10532 | if (NILP (frame_or_window)) | 10535 | if (NILP (frame_or_window)) |
| 10533 | frame_or_window = selected_window; | 10536 | frame_or_window = selected_window; |
| 10534 | 10537 | ||
diff --git a/src/xdisp.c b/src/xdisp.c index 3d3225a6762..463d016381c 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2541,7 +2541,10 @@ init_from_display_pos (it, w, pos) | |||
| 2541 | after-string. */ | 2541 | after-string. */ |
| 2542 | init_iterator (it, w, charpos, bytepos, NULL, DEFAULT_FACE_ID); | 2542 | init_iterator (it, w, charpos, bytepos, NULL, DEFAULT_FACE_ID); |
| 2543 | 2543 | ||
| 2544 | for (i = 0; i < it->n_overlay_strings; ++i) | 2544 | /* This only scans the current chunk -- it should scan all chunks. |
| 2545 | However, OVERLAY_STRING_CHUNK_SIZE has been increased from 3 in 21.1 | ||
| 2546 | to 16 in 22.1 to make this a lesser problem. */ | ||
| 2547 | for (i = 0; i < it->n_overlay_strings && i < OVERLAY_STRING_CHUNK_SIZE; ++i) | ||
| 2545 | { | 2548 | { |
| 2546 | const char *s = SDATA (it->overlay_strings[i]); | 2549 | const char *s = SDATA (it->overlay_strings[i]); |
| 2547 | const char *e = s + SBYTES (it->overlay_strings[i]); | 2550 | const char *e = s + SBYTES (it->overlay_strings[i]); |
| @@ -5178,11 +5181,12 @@ get_next_display_element (it) | |||
| 5178 | display. Then, set IT->dpvec to these glyphs. */ | 5181 | display. Then, set IT->dpvec to these glyphs. */ |
| 5179 | GLYPH g; | 5182 | GLYPH g; |
| 5180 | int ctl_len; | 5183 | int ctl_len; |
| 5181 | int face_id, lface_id; | 5184 | int face_id, lface_id = 0 ; |
| 5182 | GLYPH escape_glyph; | 5185 | GLYPH escape_glyph; |
| 5183 | 5186 | ||
| 5184 | if (it->c < 128 && it->ctl_arrow_p) | 5187 | if (it->c < 128 && it->ctl_arrow_p) |
| 5185 | { | 5188 | { |
| 5189 | g = '^'; /* default glyph for Control */ | ||
| 5186 | /* Set IT->ctl_chars[0] to the glyph for `^'. */ | 5190 | /* Set IT->ctl_chars[0] to the glyph for `^'. */ |
| 5187 | if (it->dp | 5191 | if (it->dp |
| 5188 | && INTEGERP (DISP_CTRL_GLYPH (it->dp)) | 5192 | && INTEGERP (DISP_CTRL_GLYPH (it->dp)) |
| @@ -5190,19 +5194,18 @@ get_next_display_element (it) | |||
| 5190 | { | 5194 | { |
| 5191 | g = XINT (DISP_CTRL_GLYPH (it->dp)); | 5195 | g = XINT (DISP_CTRL_GLYPH (it->dp)); |
| 5192 | lface_id = FAST_GLYPH_FACE (g); | 5196 | lface_id = FAST_GLYPH_FACE (g); |
| 5193 | if (lface_id) | 5197 | } |
| 5194 | { | 5198 | if (lface_id) |
| 5195 | g = FAST_GLYPH_CHAR (g); | 5199 | { |
| 5196 | face_id = merge_faces (it->f, Qt, lface_id, | 5200 | g = FAST_GLYPH_CHAR (g); |
| 5197 | it->face_id); | 5201 | face_id = merge_faces (it->f, Qt, lface_id, |
| 5198 | } | 5202 | it->face_id); |
| 5199 | } | 5203 | } |
| 5200 | else | 5204 | else |
| 5201 | { | 5205 | { |
| 5202 | /* Merge the escape-glyph face into the current face. */ | 5206 | /* Merge the escape-glyph face into the current face. */ |
| 5203 | face_id = merge_faces (it->f, Qescape_glyph, 0, | 5207 | face_id = merge_faces (it->f, Qescape_glyph, 0, |
| 5204 | it->face_id); | 5208 | it->face_id); |
| 5205 | g = '^'; | ||
| 5206 | } | 5209 | } |
| 5207 | 5210 | ||
| 5208 | XSETINT (it->ctl_chars[0], g); | 5211 | XSETINT (it->ctl_chars[0], g); |
| @@ -5212,25 +5215,25 @@ get_next_display_element (it) | |||
| 5212 | goto display_control; | 5215 | goto display_control; |
| 5213 | } | 5216 | } |
| 5214 | 5217 | ||
| 5218 | escape_glyph = '\\'; /* default for Octal display */ | ||
| 5215 | if (it->dp | 5219 | if (it->dp |
| 5216 | && INTEGERP (DISP_ESCAPE_GLYPH (it->dp)) | 5220 | && INTEGERP (DISP_ESCAPE_GLYPH (it->dp)) |
| 5217 | && GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp)))) | 5221 | && GLYPH_CHAR_VALID_P (XFASTINT (DISP_ESCAPE_GLYPH (it->dp)))) |
| 5218 | { | 5222 | { |
| 5219 | escape_glyph = XFASTINT (DISP_ESCAPE_GLYPH (it->dp)); | 5223 | escape_glyph = XFASTINT (DISP_ESCAPE_GLYPH (it->dp)); |
| 5220 | lface_id = FAST_GLYPH_FACE (escape_glyph); | 5224 | lface_id = FAST_GLYPH_FACE (escape_glyph); |
| 5221 | if (lface_id) | 5225 | } |
| 5222 | { | 5226 | if (lface_id) |
| 5223 | escape_glyph = FAST_GLYPH_CHAR (escape_glyph); | 5227 | { |
| 5224 | face_id = merge_faces (it->f, Qt, lface_id, | 5228 | escape_glyph = FAST_GLYPH_CHAR (escape_glyph); |
| 5225 | it->face_id); | 5229 | face_id = merge_faces (it->f, Qt, lface_id, |
| 5226 | } | 5230 | it->face_id); |
| 5227 | } | 5231 | } |
| 5228 | else | 5232 | else |
| 5229 | { | 5233 | { |
| 5230 | /* Merge the escape-glyph face into the current face. */ | 5234 | /* Merge the escape-glyph face into the current face. */ |
| 5231 | face_id = merge_faces (it->f, Qescape_glyph, 0, | 5235 | face_id = merge_faces (it->f, Qescape_glyph, 0, |
| 5232 | it->face_id); | 5236 | it->face_id); |
| 5233 | escape_glyph = '\\'; | ||
| 5234 | } | 5237 | } |
| 5235 | 5238 | ||
| 5236 | if (it->c == 0xA0 || it->c == 0xAD) | 5239 | if (it->c == 0xA0 || it->c == 0xAD) |
| @@ -5947,9 +5950,9 @@ move_it_in_display_line_to (it, to_charpos, to_x, op) | |||
| 5947 | ((op & MOVE_TO_POS) != 0 \ | 5950 | ((op & MOVE_TO_POS) != 0 \ |
| 5948 | && BUFFERP (it->object) \ | 5951 | && BUFFERP (it->object) \ |
| 5949 | && IT_CHARPOS (*it) >= to_charpos \ | 5952 | && IT_CHARPOS (*it) >= to_charpos \ |
| 5950 | && (it->method == GET_FROM_BUFFER || \ | 5953 | && (it->method == GET_FROM_BUFFER \ |
| 5951 | (it->method == GET_FROM_DISPLAY_VECTOR && \ | 5954 | || (it->method == GET_FROM_DISPLAY_VECTOR \ |
| 5952 | it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) | 5955 | && it->dpvec + it->current.dpvec_index + 1 >= it->dpend))) |
| 5953 | 5956 | ||
| 5954 | 5957 | ||
| 5955 | while (1) | 5958 | while (1) |
| @@ -12386,7 +12389,11 @@ redisplay_window (window, just_this_one_p) | |||
| 12386 | { | 12389 | { |
| 12387 | init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); | 12390 | init_iterator (&it, w, PT, PT_BYTE, NULL, DEFAULT_FACE_ID); |
| 12388 | move_it_vertically_backward (&it, 0); | 12391 | move_it_vertically_backward (&it, 0); |
| 12392 | #if 0 | ||
| 12393 | /* I think this assert is bogus if buffer contains | ||
| 12394 | invisible text or images. KFS. */ | ||
| 12389 | xassert (IT_CHARPOS (it) <= PT); | 12395 | xassert (IT_CHARPOS (it) <= PT); |
| 12396 | #endif | ||
| 12390 | it.current_y = 0; | 12397 | it.current_y = 0; |
| 12391 | } | 12398 | } |
| 12392 | 12399 | ||
| @@ -20920,8 +20927,10 @@ fast_find_position (w, charpos, hpos, vpos, x, y, stop) | |||
| 20920 | 20927 | ||
| 20921 | /* If whole rows or last part of a row came from a display overlay, | 20928 | /* If whole rows or last part of a row came from a display overlay, |
| 20922 | row_containing_pos will skip over such rows because their end pos | 20929 | row_containing_pos will skip over such rows because their end pos |
| 20923 | equals the start pos of the overlay or interval. Backtrack if we | 20930 | equals the start pos of the overlay or interval. |
| 20924 | have a STOP object and previous row's end glyph came from STOP. */ | 20931 | |
| 20932 | Move back if we have a STOP object and previous row's | ||
| 20933 | end glyph came from STOP. */ | ||
| 20925 | if (!NILP (stop)) | 20934 | if (!NILP (stop)) |
| 20926 | { | 20935 | { |
| 20927 | struct glyph_row *prev; | 20936 | struct glyph_row *prev; |
| @@ -20929,11 +20938,11 @@ fast_find_position (w, charpos, hpos, vpos, x, y, stop) | |||
| 20929 | && MATRIX_ROW_END_CHARPOS (prev) == charpos | 20938 | && MATRIX_ROW_END_CHARPOS (prev) == charpos |
| 20930 | && prev->used[TEXT_AREA] > 0) | 20939 | && prev->used[TEXT_AREA] > 0) |
| 20931 | { | 20940 | { |
| 20932 | end = prev->glyphs[TEXT_AREA]; | 20941 | struct glyph *beg = prev->glyphs[TEXT_AREA]; |
| 20933 | glyph = end + prev->used[TEXT_AREA]; | 20942 | glyph = beg + prev->used[TEXT_AREA]; |
| 20934 | while (--glyph >= end | 20943 | while (--glyph >= beg |
| 20935 | && INTEGERP (glyph->object)); | 20944 | && INTEGERP (glyph->object)); |
| 20936 | if (glyph < end | 20945 | if (glyph < beg |
| 20937 | || !EQ (stop, glyph->object)) | 20946 | || !EQ (stop, glyph->object)) |
| 20938 | break; | 20947 | break; |
| 20939 | row = prev; | 20948 | row = prev; |
| @@ -22961,8 +22970,10 @@ Bind this around calls to `message' to let it take effect. */); | |||
| 22961 | message_truncate_lines = 0; | 22970 | message_truncate_lines = 0; |
| 22962 | 22971 | ||
| 22963 | DEFVAR_LISP ("menu-bar-update-hook", &Vmenu_bar_update_hook, | 22972 | DEFVAR_LISP ("menu-bar-update-hook", &Vmenu_bar_update_hook, |
| 22964 | doc: /* Normal hook run for clicks on menu bar, before displaying a submenu. | 22973 | doc: /* Normal hook run to update the menu bar definitions. |
| 22965 | Can be used to update submenus whose contents should vary. */); | 22974 | Redisplay runs this hook before it redisplays the menu bar. |
| 22975 | This is used to update submenus such as Buffers, | ||
| 22976 | whose contents depend on various data. */); | ||
| 22966 | Vmenu_bar_update_hook = Qnil; | 22977 | Vmenu_bar_update_hook = Qnil; |
| 22967 | 22978 | ||
| 22968 | DEFVAR_BOOL ("inhibit-menubar-update", &inhibit_menubar_update, | 22979 | DEFVAR_BOOL ("inhibit-menubar-update", &inhibit_menubar_update, |