aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKaroly Lorentey2007-05-11 18:24:42 +0000
committerKaroly Lorentey2007-05-11 18:24:42 +0000
commitd6897a018781164bf9e7bd4ca51c87b303170313 (patch)
tree591ee4eb30a3a7170739723034f6311629cc45eb /src
parent0218dbe25b68206442908b652b46b4974117bf9e (diff)
parent68380acf41d91014634d625e5f529cd3f773fbd4 (diff)
downloademacs-d6897a018781164bf9e7bd4ca51c87b303170313.tar.gz
emacs-d6897a018781164bf9e7bd4ca51c87b303170313.zip
Merged from emacs@sv.gnu.org
Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-708 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-709 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-710 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-711 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-712 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-713 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-714 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-715 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-716 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-717 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-718 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-719 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-720 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-721 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-722 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-723 Merge from emacs--rel--22: lisp/dired-x.el: Revert 2007-04-06 change. * emacs@sv.gnu.org/emacs--devo--0--patch-724 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-725 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-726 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-727 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-728 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-729 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-730 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-731 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-732 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-733 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-734 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-735 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-736 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-737 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-738 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-739 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--devo--0--patch-740 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-741 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-742 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-743 Merge from emacs--rel--22 * emacs@sv.gnu.org/emacs--rel--22--base-0 tag of emacs@sv.gnu.org/emacs--devo--0--patch-709 * emacs@sv.gnu.org/emacs--rel--22--patch-1 Sync to CVS tag EMACS_22_BRANCHPOINT * emacs@sv.gnu.org/emacs--rel--22--patch-2 Sync to CVS branch EMACS_22_BASE * emacs@sv.gnu.org/emacs--rel--22--patch-3 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-4 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-5 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-6 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-7 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-8 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-9 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-10 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-11 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-12 Update from CVS * emacs@sv.gnu.org/emacs--rel--22--patch-13 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-217 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-218 Merge from emacs--devo--0, emacs--rel--22 * emacs@sv.gnu.org/gnus--rel--5.10--patch-219 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-220 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-605
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog73
-rw-r--r--src/abbrev.c2
-rw-r--r--src/editfns.c3
-rw-r--r--src/gtkutil.c10
-rw-r--r--src/insdel.c6
-rw-r--r--src/keymap.c8
-rw-r--r--src/lisp.h6
-rw-r--r--src/lread.c2
-rw-r--r--src/macmenu.c10
-rw-r--r--src/process.c14
-rw-r--r--src/sysdep.c4
-rw-r--r--src/xdisp.c8
-rw-r--r--src/xmenu.c8
13 files changed, 132 insertions, 22 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 147ee163db8..59a0af5e2c8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,72 @@
12007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM)
4
52007-05-07 Andreas Schwab <schwab@suse.de>
6
7 * keymap.c (Flookup_key): Fix typo in last change.
8
92007-05-07 Stefan Monnier <monnier@iro.umontreal.ca>
10
11 * keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
12 mapping for unibyte strings.
13
142007-05-01 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
15
16 * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
17 (Fx_popup_dialog) [MAC_OSX]: Likewise.
18
192007-04-29 Richard Stallman <rms@gnu.org>
20
21 * insdel.c (replace_range): For undo, record insertion first.
22
232007-04-29 Andreas Schwab <schwab@suse.de>
24
25 * lisp.h (VECSIZE): Use OFFSETOF.
26
272007-04-29 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
28
29 * xdisp.c (try_window_reusing_current_matrix): Fix number of
30 disabled lines.
31
322007-04-28 Richard Stallman <rms@gnu.org>
33
34 * lread.c (read_escape): In a string, \s is always space.
35
362007-04-27 Jan Dj,Ad(Brv <jan.h.d@swipnet.se>
37
38 * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
39
40 * gtkutil.c (xg_update_menubar, create_menus): Create empty
41 submenu for menu bar items.
42
432007-04-24 Chong Yidong <cyd@stupidchicken.com>
44
45 * xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED
46 values of the actual window.
47
482007-04-23 Richard Stallman <rms@gnu.org>
49
50 * process.c (Fstart_process): Doc fix.
51
522007-04-23 Eli Zaretskii <eliz@gnu.org>
53
54 * process.c (Fstart_process): Doc fix.
55
562007-04-22 Richard Stallman <rms@gnu.org>
57
58 * abbrev.c (Fdefine_abbrev): Doc fix.
59
60 * keymap.c (Fdefine_key): Minor doc fix.
61
622007-04-21 Glenn Morris <rgm@gnu.org>
63
64 * keymap.c (Fdefine_key): Fix info ref in doc string.
65
662007-04-20 Glenn Morris <rgm@gnu.org>
67
68 * sysdep.c (init_system_name): Don't accept localhost.localdomain.
69
12007-04-19 Juanma Barranquero <lekktu@gmail.com> 702007-04-19 Juanma Barranquero <lekktu@gmail.com>
2 71
3 * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties) 72 * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties)
@@ -6,8 +75,8 @@
6 75
72007-04-16 Chong Yidong <cyd@stupidchicken.com> 762007-04-16 Chong Yidong <cyd@stupidchicken.com>
8 77
9 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Set 78 * dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
10 garbaged flag in presence of window margins. 79 Set garbaged flag in presence of window margins.
11 (showing_window_margins_p): New function. 80 (showing_window_margins_p): New function.
12 81
13 * xdisp.c (cursor_row_p): Only end row on newline if it's a 82 * xdisp.c (cursor_row_p): Only end row on newline if it's a
diff --git a/src/abbrev.c b/src/abbrev.c
index 7dea6969f35..40cad1832fc 100644
--- a/src/abbrev.c
+++ b/src/abbrev.c
@@ -110,7 +110,7 @@ DEFUN ("clear-abbrev-table", Fclear_abbrev_table, Sclear_abbrev_table, 1, 1, 0,
110 110
111DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_abbrev, 3, 6, 0, 111DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_abbrev, 3, 6, 0,
112 doc: /* Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK. 112 doc: /* Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK.
113NAME must be a string. 113NAME must be a string, and should be lower-case.
114EXPANSION should usually be a string. 114EXPANSION should usually be a string.
115To undefine an abbrev, define it with EXPANSION = nil. 115To undefine an abbrev, define it with EXPANSION = nil.
116If HOOK is non-nil, it should be a function of no arguments; 116If HOOK is non-nil, it should be a function of no arguments;
diff --git a/src/editfns.c b/src/editfns.c
index 2ab852d2925..37498e3b6f7 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -4393,8 +4393,7 @@ Transposing beyond buffer boundaries is an error. */)
4393 fix_start_end_in_overlays (start1, end2); 4393 fix_start_end_in_overlays (start1, end2);
4394 } 4394 }
4395 4395
4396 signal_after_change (XINT (start1), XINT (end2 - start1), 4396 signal_after_change (start1, end2 - start1, end2 - start1);
4397 XINT (end2 - start1));
4398 return Qnil; 4397 return Qnil;
4399} 4398}
4400 4399
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 20a6e244a66..24579d7a1d1 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -2192,7 +2192,9 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
2192 cl_data, 2192 cl_data,
2193 &group); 2193 &group);
2194 2194
2195 if (item->contents) 2195 /* Create a possibly empty submenu for menu bar items, since some
2196 themes don't highlight items correctly without it. */
2197 if (item->contents || menu_bar_p)
2196 { 2198 {
2197 GtkWidget *submenu = create_menus (item->contents, 2199 GtkWidget *submenu = create_menus (item->contents,
2198 f, 2200 f,
@@ -2479,8 +2481,14 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
2479 cl_data, 2481 cl_data,
2480 &group); 2482 &group);
2481 2483
2484 /* Create a possibly empty submenu for menu bar items, since some
2485 themes don't highlight items correctly without it. */
2486 GtkWidget *submenu = create_menus (NULL, f,
2487 select_cb, NULL, highlight_cb,
2488 0, 0, 0, 0, cl_data, 0);
2482 gtk_widget_set_name (w, MENU_ITEM_NAME); 2489 gtk_widget_set_name (w, MENU_ITEM_NAME);
2483 gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos); 2490 gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos);
2491 gtk_menu_item_set_submenu (GTK_MENU_ITEM (w), submenu);
2484 2492
2485 g_list_free (*list); 2493 g_list_free (*list);
2486 *list = iter = gtk_container_get_children (GTK_CONTAINER (menubar)); 2494 *list = iter = gtk_container_get_children (GTK_CONTAINER (menubar));
diff --git a/src/insdel.c b/src/insdel.c
index 7f15f7de52d..65d60b6b8e3 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1603,8 +1603,12 @@ replace_range (from, to, new, prepare, inherit, markers)
1603 1603
1604 if (! EQ (current_buffer->undo_list, Qt)) 1604 if (! EQ (current_buffer->undo_list, Qt))
1605 { 1605 {
1606 /* Record the insertion first, so that when we undo,
1607 the deletion will be undone first. Thus, undo
1608 will insert before deleting, and thus will keep
1609 the markers before and after this text separate. */
1610 record_insert (from + SCHARS (deletion), inschars);
1606 record_delete (from, deletion); 1611 record_delete (from, deletion);
1607 record_insert (from, inschars);
1608 } 1612 }
1609 1613
1610 GAP_SIZE -= outgoing_insbytes; 1614 GAP_SIZE -= outgoing_insbytes;
diff --git a/src/keymap.c b/src/keymap.c
index a5d50b7fbf1..47e3f50786b 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1118,7 +1118,8 @@ DEF is anything that can be a key's definition:
1118 a cons (STRING . DEFN), meaning that DEFN is the definition 1118 a cons (STRING . DEFN), meaning that DEFN is the definition
1119 (DEFN should be a valid definition in its own right), 1119 (DEFN should be a valid definition in its own right),
1120 or a cons (MAP . CHAR), meaning use definition of CHAR in keymap MAP, 1120 or a cons (MAP . CHAR), meaning use definition of CHAR in keymap MAP,
1121 or an extended menu item definition. (See info node `Extended Menu Items'.) 1121 or an extended menu item definition.
1122 (See info node `(elisp)Extended Menu Items'.)
1122 1123
1123If KEYMAP is a sparse keymap with a binding for KEY, the existing 1124If KEYMAP is a sparse keymap with a binding for KEY, the existing
1124binding is altered. If there is no binding for KEY, the new pair 1125binding is altered. If there is no binding for KEY, the new pair
@@ -1148,7 +1149,8 @@ binding KEY to DEF is added at the front of KEYMAP. */)
1148 if (SYMBOLP (def) && !EQ (Vdefine_key_rebound_commands, Qt)) 1149 if (SYMBOLP (def) && !EQ (Vdefine_key_rebound_commands, Qt))
1149 Vdefine_key_rebound_commands = Fcons (def, Vdefine_key_rebound_commands); 1150 Vdefine_key_rebound_commands = Fcons (def, Vdefine_key_rebound_commands);
1150 1151
1151 meta_bit = VECTORP (key) ? meta_modifier : 0x80; 1152 meta_bit = (VECTORP (key) || STRINGP (key) && STRING_MULTIBYTE (key)
1153 ? meta_modifier : 0x80);
1152 1154
1153 if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, 0))) 1155 if (VECTORP (def) && ASIZE (def) > 0 && CONSP (AREF (def, 0)))
1154 { /* DEF is apparently an XEmacs-style keyboard macro. */ 1156 { /* DEF is apparently an XEmacs-style keyboard macro. */
@@ -1304,7 +1306,7 @@ recognize the default bindings, just as `read-key-sequence' does. */)
1304 c = Fevent_convert_list (c); 1306 c = Fevent_convert_list (c);
1305 1307
1306 /* Turn the 8th bit of string chars into a meta modifier. */ 1308 /* Turn the 8th bit of string chars into a meta modifier. */
1307 if (INTEGERP (c) && XINT (c) & 0x80 && STRINGP (key)) 1309 if (STRINGP (key) && XINT (c) & 0x80 && !STRING_MULTIBYTE (key))
1308 XSETINT (c, (XINT (c) | meta_modifier) & ~0x80); 1310 XSETINT (c, (XINT (c) | meta_modifier) & ~0x80);
1309 1311
1310 /* Allow string since binding for `menu-bar-select-buffer' 1312 /* Allow string since binding for `menu-bar-select-buffer'
diff --git a/src/lisp.h b/src/lisp.h
index 8a060b19941..4ae55c5519e 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -735,9 +735,9 @@ struct Lisp_Vector
735 735
736/* If a struct is made to look like a vector, this macro returns the length 736/* If a struct is made to look like a vector, this macro returns the length
737 of the shortest vector that would hold that struct. */ 737 of the shortest vector that would hold that struct. */
738#define VECSIZE(type) ((sizeof (type) - (sizeof (struct Lisp_Vector) \ 738#define VECSIZE(type) ((sizeof (type) \
739 - sizeof (Lisp_Object)) \ 739 - OFFSETOF (struct Lisp_Vector, contents[0]) \
740 + sizeof(Lisp_Object) - 1) /* round up */ \ 740 + sizeof(Lisp_Object) - 1) /* round up */ \
741 / sizeof (Lisp_Object)) 741 / sizeof (Lisp_Object))
742 742
743/* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields 743/* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields
diff --git a/src/lread.c b/src/lread.c
index cc3ae7627d1..49a56a0e935 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -1896,7 +1896,7 @@ read_escape (readcharfun, stringp, byterep)
1896 1896
1897 case 's': 1897 case 's':
1898 c = READCHAR; 1898 c = READCHAR;
1899 if (c != '-') 1899 if (stringp || c != '-')
1900 { 1900 {
1901 UNREAD (c); 1901 UNREAD (c);
1902 return ' '; 1902 return ' ';
diff --git a/src/macmenu.c b/src/macmenu.c
index c7a84df7106..a5196a156eb 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -1011,6 +1011,11 @@ for instance using the window manager, then this produces a quit and
1011 DialogItemIndex item_hit; 1011 DialogItemIndex item_hit;
1012 Lisp_Object tem; 1012 Lisp_Object tem;
1013 1013
1014 /* Force a redisplay before showing the dialog. If a frame is
1015 created just before showing the dialog, its contents may not
1016 have been fully drawn. */
1017 Fredisplay (Qt);
1018
1014 tem = Fstring_match (concat3 (build_string ("\\("), 1019 tem = Fstring_match (concat3 (build_string ("\\("),
1015 call0 (intern ("sentence-end")), 1020 call0 (intern ("sentence-end")),
1016 build_string ("\\)\n")), 1021 build_string ("\\)\n")),
@@ -2943,6 +2948,11 @@ mac_dialog_show (f, keymaps, title, header, error_name)
2943 first_wv = wv; 2948 first_wv = wv;
2944 } 2949 }
2945 2950
2951 /* Force a redisplay before showing the dialog. If a frame is created
2952 just before showing the dialog, its contents may not have been fully
2953 drawn. */
2954 Fredisplay (Qt);
2955
2946 /* Actually create the dialog. */ 2956 /* Actually create the dialog. */
2947#if TARGET_API_MAC_CARBON 2957#if TARGET_API_MAC_CARBON
2948 menu_item_selection = create_and_show_dialog (f, first_wv); 2958 menu_item_selection = create_and_show_dialog (f, first_wv);
diff --git a/src/process.c b/src/process.c
index 56e4335ca2c..bd12f3e1a68 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1558,13 +1558,19 @@ DEFUN ("start-process", Fstart_process, Sstart_process, 3, MANY, 0,
1558 doc: /* Start a program in a subprocess. Return the process object for it. 1558 doc: /* Start a program in a subprocess. Return the process object for it.
1559NAME is name for process. It is modified if necessary to make it unique. 1559NAME is name for process. It is modified if necessary to make it unique.
1560BUFFER is the buffer (or buffer name) to associate with the process. 1560BUFFER is the buffer (or buffer name) to associate with the process.
1561 Process output goes at end of that buffer, unless you specify 1561
1562 an output stream or filter function to handle the output. 1562Process output (both standard output and standard error streams) goes
1563 BUFFER may be also nil, meaning that this process is not associated 1563at end of BUFFER, unless you specify an output stream or filter
1564 with any buffer. 1564function to handle the output. BUFFER may also be nil, meaning that
1565this process is not associated with any buffer.
1566
1565PROGRAM is the program file name. It is searched for in PATH. 1567PROGRAM is the program file name. It is searched for in PATH.
1566Remaining arguments are strings to give program as arguments. 1568Remaining arguments are strings to give program as arguments.
1567 1569
1570If you want to separate standard output from standard error, invoke
1571the command through a shell and redirect one of them using the shell
1572syntax.
1573
1568usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */) 1574usage: (start-process NAME BUFFER PROGRAM &rest PROGRAM-ARGS) */)
1569 (nargs, args) 1575 (nargs, args)
1570 int nargs; 1576 int nargs;
diff --git a/src/sysdep.c b/src/sysdep.c
index 87998088753..bbaa09fbf27 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2531,7 +2531,9 @@ init_system_name ()
2531 /* We still don't have a fully qualified domain name. 2531 /* We still don't have a fully qualified domain name.
2532 Try to find one in the list of alternate names */ 2532 Try to find one in the list of alternate names */
2533 char **alias = hp->h_aliases; 2533 char **alias = hp->h_aliases;
2534 while (*alias && !index (*alias, '.')) 2534 while (*alias
2535 && (!index (*alias, '.')
2536 || !strcmp (*alias, "localhost.localdomain")))
2535 alias++; 2537 alias++;
2536 if (*alias) 2538 if (*alias)
2537 fqdn = *alias; 2539 fqdn = *alias;
diff --git a/src/xdisp.c b/src/xdisp.c
index 66629f659ac..42c579f5cbb 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -12786,8 +12786,7 @@ redisplay_window (window, just_this_one_p)
12786 int rc; 12786 int rc;
12787 int centering_position = -1; 12787 int centering_position = -1;
12788 int last_line_misfit = 0; 12788 int last_line_misfit = 0;
12789 int save_beg_unchanged = BEG_UNCHANGED; 12789 int save_beg_unchanged, save_end_unchanged;
12790 int save_end_unchanged = END_UNCHANGED;
12791 12790
12792 SET_TEXT_POS (lpoint, PT, PT_BYTE); 12791 SET_TEXT_POS (lpoint, PT, PT_BYTE);
12793 opoint = lpoint; 12792 opoint = lpoint;
@@ -12852,6 +12851,9 @@ redisplay_window (window, just_this_one_p)
12852 set_buffer_internal_1 (XBUFFER (w->buffer)); 12851 set_buffer_internal_1 (XBUFFER (w->buffer));
12853 SET_TEXT_POS (opoint, PT, PT_BYTE); 12852 SET_TEXT_POS (opoint, PT, PT_BYTE);
12854 12853
12854 save_beg_unchanged = BEG_UNCHANGED;
12855 save_end_unchanged = END_UNCHANGED;
12856
12855 current_matrix_up_to_date_p 12857 current_matrix_up_to_date_p
12856 = (!NILP (w->window_end_valid) 12858 = (!NILP (w->window_end_valid)
12857 && !current_buffer->clip_changed 12859 && !current_buffer->clip_changed
@@ -13821,7 +13823,7 @@ try_window_reusing_current_matrix (w)
13821 nrows_scrolled); 13823 nrows_scrolled);
13822 13824
13823 /* Disable lines that must be updated. */ 13825 /* Disable lines that must be updated. */
13824 for (i = 0; i < it.vpos; ++i) 13826 for (i = 0; i < nrows_scrolled; ++i)
13825 (start_row + i)->enabled_p = 0; 13827 (start_row + i)->enabled_p = 0;
13826 13828
13827 /* Re-compute Y positions. */ 13829 /* Re-compute Y positions. */
diff --git a/src/xmenu.c b/src/xmenu.c
index a30016e2477..228c89f9aa4 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -3375,6 +3375,14 @@ xdialog_show (f, keymaps, title, header, error_name)
3375 /* No selection has been chosen yet. */ 3375 /* No selection has been chosen yet. */
3376 menu_item_selection = 0; 3376 menu_item_selection = 0;
3377 3377
3378 /* Force a redisplay before showing the dialog. If a frame is created
3379 just before showing the dialog, its contents may not have been fully
3380 drawn, as this depends on timing of events from the X server. Redisplay
3381 is not done when a dialog is shown. If redisplay could be done in the
3382 X event loop (i.e. the X event loop does not run in a signal handler)
3383 this would not be needed. */
3384 Fredisplay (Qt);
3385
3378 /* Actually create and show the dialog. */ 3386 /* Actually create and show the dialog. */
3379 create_and_show_dialog (f, first_wv); 3387 create_and_show_dialog (f, first_wv);
3380 3388