aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaroly Lorentey2005-09-05 14:21:08 +0000
committerKaroly Lorentey2005-09-05 14:21:08 +0000
commit6f5b225036d2dd45cb413d9b373abae8cb44a2eb (patch)
tree7876bf4c58b1e7d3f6f2db39d02052298c64f4d1
parent4bed7e65b4c7c2702b499e874f6bc599045b3c07 (diff)
parent656f8fc5fd872e6b4d5ca65ec95e205e21a5bf13 (diff)
downloademacs-6f5b225036d2dd45cb413d9b373abae8cb44a2eb.tar.gz
emacs-6f5b225036d2dd45cb413d9b373abae8cb44a2eb.zip
Merged in changes from CVS trunk. (Testing my own CVS gateway.)
Patches applied: * lorentey@elte.hu--2004/emacs--cvs-trunk--0--patch-3 Update from CVS. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-395
-rw-r--r--admin/FOR-RELEASE8
-rw-r--r--lisp/ChangeLog12
-rw-r--r--lisp/custom.el27
-rw-r--r--lispref/ChangeLog13
-rw-r--r--lispref/intro.texi22
-rw-r--r--lispref/tips.texi14
-rw-r--r--man/ChangeLog9
-rw-r--r--man/custom.texi56
-rw-r--r--man/search.texi6
-rw-r--r--src/ChangeLog10
-rw-r--r--src/editfns.c5
-rw-r--r--src/fns.c2
-rw-r--r--src/xdisp.c26
13 files changed, 172 insertions, 38 deletions
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 5375db09f69..d41dcec061b 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -33,10 +33,6 @@ To be done by Andre Spiegel <spiegel@gnu.org>.
33 33
34** Update Speedbar. 34** Update Speedbar.
35 35
36** Debug custom themes.
37
38** Get rid of the defadvice calls in org.el.
39
40* FATAL ERRORS 36* FATAL ERRORS
41 37
42** Investigate reported crashes in compact_small_strings. 38** Investigate reported crashes in compact_small_strings.
@@ -115,8 +111,6 @@ The class A seems to be missing.
115 111
116* DOCUMENTATION 112* DOCUMENTATION
117 113
118** Document Custom Themes.
119
120** Update man/info.texi. 114** Update man/info.texi.
121 115
122** Add missing years in copyright notices of all files. 116** Add missing years in copyright notices of all files.
@@ -243,7 +237,7 @@ lispref/hash.texi "Luc Teirlinck" Chong Yidong
243lispref/help.texi "Luc Teirlinck" Chong Yidong 237lispref/help.texi "Luc Teirlinck" Chong Yidong
244lispref/hooks.texi Lute Kamstra 238lispref/hooks.texi Lute Kamstra
245lispref/internals.texi "Luc Teirlinck" Chong Yidong 239lispref/internals.texi "Luc Teirlinck" Chong Yidong
246lispref/intro.texi "Luc Teirlinck" 240lispref/intro.texi "Luc Teirlinck" Josh Varner
247lispref/keymaps.texi "Luc Teirlinck" Chong Yidong 241lispref/keymaps.texi "Luc Teirlinck" Chong Yidong
248lispref/lists.texi "Luc Teirlinck" Chong Yidong 242lispref/lists.texi "Luc Teirlinck" Chong Yidong
249lispref/loading.texi "Luc Teirlinck" Chong Yidong 243lispref/loading.texi "Luc Teirlinck" Chong Yidong
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 1bcdf7628b4..1782616a1c9 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,15 @@
12005-09-04 Chong Yidong <cyd@stupidchicken.com>
2
3 * custom.el (load-theme): Renamed from require-theme.
4 Add interactive spec.
5 (enable-theme): Renamed from custom-enable-theme.
6 Add interactive spec.
7 (disable-theme): Renamed from custom-disable-theme.
8 Add interactive spec.
9 (custom-make-theme-feature): Doc fix.
10 (custom-theme-directory): Doc fix.
11 (provide-theme): Call enable-theme.
12
12005-09-02 Dan Nicolaescu <dann@ics.uci.edu> 132005-09-02 Dan Nicolaescu <dann@ics.uci.edu>
2 14
3 * term/xterm.el (terminal-init-xterm): Add eval-when-compile to 15 * term/xterm.el (terminal-init-xterm): Add eval-when-compile to
diff --git a/lisp/custom.el b/lisp/custom.el
index 0831535f181..c4eae52751b 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -953,7 +953,7 @@ into `features'.
953 953
954This allows for a file-name convention for autoloading themes: 954This allows for a file-name convention for autoloading themes:
955Every theme X has a property `provide-theme' whose value is \"X-theme\". 955Every theme X has a property `provide-theme' whose value is \"X-theme\".
956\(require-theme X) then attempts to load the file `X-theme.el'." 956\(load-theme X) then attempts to load the file `X-theme.el'."
957 (intern (concat (symbol-name theme) "-theme"))) 957 (intern (concat (symbol-name theme) "-theme")))
958 958
959;;; Loading themes. 959;;; Loading themes.
@@ -996,7 +996,7 @@ Every theme X has a property `provide-theme' whose value is \"X-theme\".
996 "~/_emacs.d/" 996 "~/_emacs.d/"
997 "~/.emacs.d/") 997 "~/.emacs.d/")
998 "Directory in which Custom theme files should be written. 998 "Directory in which Custom theme files should be written.
999`require-theme' searches this directory in addition to load-path. 999`load-theme' searches this directory in addition to load-path.
1000The command `customize-create-theme' writes the files it produces 1000The command `customize-create-theme' writes the files it produces
1001into this directory." 1001into this directory."
1002 :type 'string 1002 :type 'string
@@ -1031,11 +1031,11 @@ by `custom-make-theme-feature'."
1031 ;; `user' must always be the highest-precedence enabled theme. 1031 ;; `user' must always be the highest-precedence enabled theme.
1032 ;; Make that remain true. (This has the effect of making user settings 1032 ;; Make that remain true. (This has the effect of making user settings
1033 ;; override the ones just loaded, too.) 1033 ;; override the ones just loaded, too.)
1034 (custom-enable-theme 'user)) 1034 (enable-theme 'user))
1035 1035
1036(defun require-theme (theme) 1036(defun load-theme (theme)
1037 "Try to load a theme's settings from its file. 1037 "Try to load a theme's settings from its file.
1038This also enables the theme; use `custom-disable-theme' to disable it." 1038This also enables the theme; use `disable-theme' to disable it."
1039 1039
1040 ;; THEME's feature is stored in THEME's `theme-feature' property. 1040 ;; THEME's feature is stored in THEME's `theme-feature' property.
1041 ;; Usually the `theme-feature' property contains a symbol created 1041 ;; Usually the `theme-feature' property contains a symbol created
@@ -1043,6 +1043,7 @@ This also enables the theme; use `custom-disable-theme' to disable it."
1043 1043
1044 ;; Note we do no check for validity of the theme here. 1044 ;; Note we do no check for validity of the theme here.
1045 ;; This allows to pull in themes by a file-name convention 1045 ;; This allows to pull in themes by a file-name convention
1046 (interactive "SCustom theme name: ")
1046 (let ((load-path (if (file-directory-p custom-theme-directory) 1047 (let ((load-path (if (file-directory-p custom-theme-directory)
1047 (cons custom-theme-directory load-path) 1048 (cons custom-theme-directory load-path)
1048 load-path))) 1049 load-path)))
@@ -1070,12 +1071,12 @@ All the themes loaded for BY-THEME are recorded in BY-THEME's property
1070 (let ((themes-loaded (get by-theme 'theme-loads-themes))) 1071 (let ((themes-loaded (get by-theme 'theme-loads-themes)))
1071 (dolist (theme body) 1072 (dolist (theme body)
1072 (cond ((and (consp theme) (eq (car theme) 'reset)) 1073 (cond ((and (consp theme) (eq (car theme) 'reset))
1073 (custom-disable-theme (cadr theme))) 1074 (disable-theme (cadr theme)))
1074 ((and (consp theme) (eq (car theme) 'hidden)) 1075 ((and (consp theme) (eq (car theme) 'hidden))
1075 (require-theme (cadr theme)) 1076 (load-theme (cadr theme))
1076 (custom-disable-theme (cadr theme))) 1077 (disable-theme (cadr theme)))
1077 (t 1078 (t
1078 (require-theme theme))) 1079 (load-theme theme)))
1079 (push theme themes-loaded)) 1080 (push theme themes-loaded))
1080 (put by-theme 'theme-loads-themes themes-loaded))) 1081 (put by-theme 'theme-loads-themes themes-loaded)))
1081 1082
@@ -1087,10 +1088,11 @@ See `custom-theme-load-themes' for more information on BODY."
1087 1088
1088;;; Enabling and disabling loaded themes. 1089;;; Enabling and disabling loaded themes.
1089 1090
1090(defun custom-enable-theme (theme) 1091(defun enable-theme (theme)
1091 "Reenable all variable and face settings defined by THEME. 1092 "Reenable all variable and face settings defined by THEME.
1092The newly enabled theme gets the highest precedence (after `user'). 1093The newly enabled theme gets the highest precedence (after `user').
1093If it is already enabled, just give it highest precedence (after `user')." 1094If it is already enabled, just give it highest precedence (after `user')."
1095 (interactive "SEnable Custom theme: ")
1094 (let ((settings (get theme 'theme-settings))) 1096 (let ((settings (get theme 'theme-settings)))
1095 (dolist (s settings) 1097 (dolist (s settings)
1096 (let* ((prop (car s)) 1098 (let* ((prop (car s))
@@ -1104,11 +1106,12 @@ If it is already enabled, just give it highest precedence (after `user')."
1104 (cons theme (delq theme custom-enabled-themes))) 1106 (cons theme (delq theme custom-enabled-themes)))
1105 ;; `user' must always be the highest-precedence enabled theme. 1107 ;; `user' must always be the highest-precedence enabled theme.
1106 (unless (eq theme 'user) 1108 (unless (eq theme 'user)
1107 (custom-enable-theme 'user))) 1109 (enable-theme 'user)))
1108 1110
1109(defun custom-disable-theme (theme) 1111(defun disable-theme (theme)
1110 "Disable all variable and face settings defined by THEME. 1112 "Disable all variable and face settings defined by THEME.
1111See `custom-known-themes' for a list of known themes." 1113See `custom-known-themes' for a list of known themes."
1114 (interactive "SDisable Custom theme: ")
1112 (let ((settings (get theme 'theme-settings))) 1115 (let ((settings (get theme 'theme-settings)))
1113 (dolist (s settings) 1116 (dolist (s settings)
1114 (let* ((prop (car s)) 1117 (let* ((prop (car s))
diff --git a/lispref/ChangeLog b/lispref/ChangeLog
index 9c19c136926..ec8885138b5 100644
--- a/lispref/ChangeLog
+++ b/lispref/ChangeLog
@@ -1,3 +1,16 @@
12005-09-03 Richard M. Stallman <rms@gnu.org>
2
3 * tips.texi (Programming Tips): Add conventions for minibuffer
4 questions and prompts.
5
62005-09-03 Joshua Varner <jlvarner@gmail.com> (tiny change)
7
8 * intro.texi (nil and t): Minor cleanup.
9 Delete spurious mention of keyword symbols.
10 (Evaluation Notation): Add index entry.
11 (A Sample Function Description): Minor cleanup.
12 (A Sample Variable Description): Not all vars can be set.
13
12005-09-03 Thien-Thi Nguyen <ttn@gnu.org> 142005-09-03 Thien-Thi Nguyen <ttn@gnu.org>
2 15
3 * text.texi (Buffer Contents): Use "\n" in examples' result strings. 16 * text.texi (Buffer Contents): Use "\n" in examples' result strings.
diff --git a/lispref/intro.texi b/lispref/intro.texi
index 01ffeb3321c..8c3501c823b 100644
--- a/lispref/intro.texi
+++ b/lispref/intro.texi
@@ -197,7 +197,7 @@ in Lisp programs also.
197(not nil) ; @r{Emphasize the truth value @var{false}} 197(not nil) ; @r{Emphasize the truth value @var{false}}
198@end example 198@end example
199 199
200@cindex @code{t} and truth 200@cindex @code{t}, uses of
201@cindex true 201@cindex true
202 In contexts where a truth value is expected, any non-@code{nil} value 202 In contexts where a truth value is expected, any non-@code{nil} value
203is considered to be @var{true}. However, @code{t} is the preferred way 203is considered to be @var{true}. However, @code{t} is the preferred way
@@ -209,14 +209,14 @@ choosing, use @code{t}. The symbol @code{t} always has the value
209 In Emacs Lisp, @code{nil} and @code{t} are special symbols that always 209 In Emacs Lisp, @code{nil} and @code{t} are special symbols that always
210evaluate to themselves. This is so that you do not need to quote them 210evaluate to themselves. This is so that you do not need to quote them
211to use them as constants in a program. An attempt to change their 211to use them as constants in a program. An attempt to change their
212values results in a @code{setting-constant} error. The same is true of 212values results in a @code{setting-constant} error. @xref{Constant
213any symbol whose name starts with a colon (@samp{:}). @xref{Constant
214Variables}. 213Variables}.
215 214
216@node Evaluation Notation 215@node Evaluation Notation
217@subsection Evaluation Notation 216@subsection Evaluation Notation
218@cindex evaluation notation 217@cindex evaluation notation
219@cindex documentation notation 218@cindex documentation notation
219@cindex notation
220 220
221 A Lisp expression that you can evaluate is called a @dfn{form}. 221 A Lisp expression that you can evaluate is called a @dfn{form}.
222Evaluating a form always produces a result, which is a Lisp object. In 222Evaluating a form always produces a result, which is a Lisp object. In
@@ -355,11 +355,11 @@ indicates that the subsequent arguments may be omitted (omitted
355arguments default to @code{nil}). Do not write @code{&optional} when 355arguments default to @code{nil}). Do not write @code{&optional} when
356you call the function. 356you call the function.
357 357
358 The keyword @code{&rest} (which must be followed by a single argument 358 The keyword @code{&rest} (which must be followed by a single
359name) indicates that any number of arguments can follow. The single 359argument name) indicates that any number of arguments can follow. The
360following argument name will have a value, as a variable, which is a 360single argument name following @code{&rest} will receive, as its
361list of all these remaining arguments. Do not write @code{&rest} when 361value, a list of all the remaining arguments passed to the function.
362you call the function. 362Do not write @code{&rest} when you call the function.
363 363
364 Here is a description of an imaginary function @code{foo}: 364 Here is a description of an imaginary function @code{foo}:
365 365
@@ -450,9 +450,9 @@ from @var{body}, which includes all remaining elements of the form.
450@cindex variable descriptions 450@cindex variable descriptions
451@cindex option descriptions 451@cindex option descriptions
452 452
453 A @dfn{variable} is a name that can hold a value. Although any 453 A @dfn{variable} is a name that can hold a value. Although nearly
454variable can be set by the user, certain variables that exist 454all variables can be set by the user, certain variables exist
455specifically so that users can change them are called @dfn{user 455specifically so that users can change them; these are called @dfn{user
456options}. Ordinary variables and user options are described using a 456options}. Ordinary variables and user options are described using a
457format like that for functions except that there are no arguments. 457format like that for functions except that there are no arguments.
458 458
diff --git a/lispref/tips.texi b/lispref/tips.texi
index 46eb887dce8..d651eb95f0e 100644
--- a/lispref/tips.texi
+++ b/lispref/tips.texi
@@ -374,6 +374,20 @@ An error message should start with a capital letter but should not end
374with a period. 374with a period.
375 375
376@item 376@item
377A question asked in the minibuffer with @code{y-or-n-p} or
378@code{yes-or-no-p} should start with a capital letter and end with
379@samp{? }.
380
381@item
382When you mention a default value in a minibuffer prompt,
383put it and the word @samp{default} inside parentheses.
384It should look like this:
385
386@example
387Enter the answer: (default 42)
388@end example
389
390@item
377In @code{interactive}, if you use a Lisp expression to produce a list 391In @code{interactive}, if you use a Lisp expression to produce a list
378of arguments, don't try to provide the ``correct'' default values for 392of arguments, don't try to provide the ``correct'' default values for
379region or position arguments. Instead, provide @code{nil} for those 393region or position arguments. Instead, provide @code{nil} for those
diff --git a/man/ChangeLog b/man/ChangeLog
index ac992ec6922..3f956c71625 100644
--- a/man/ChangeLog
+++ b/man/ChangeLog
@@ -1,3 +1,12 @@
12005-09-05 Chong Yidong <cyd@stupidchicken.com>
2
3 * custom.texi (Custom Themes): New node.
4
52005-09-03 Richard M. Stallman <rms@gnu.org>
6
7 * search.texi (Search Case): Mention vars that control
8 case-fold-search for various operations.
9
12005-08-30 Carsten Dominik <dominik@science.uva.nl> 102005-08-30 Carsten Dominik <dominik@science.uva.nl>
2 11
3 * org.texi: Version 3.15. 12 * org.texi: Version 3.15.
diff --git a/man/custom.texi b/man/custom.texi
index d531d92eb0f..87722f63b69 100644
--- a/man/custom.texi
+++ b/man/custom.texi
@@ -199,6 +199,8 @@ the active fields and other features.
199* Face Customization:: How to edit the attributes of a face. 199* Face Customization:: How to edit the attributes of a face.
200* Specific Customization:: Making a customization buffer for specific 200* Specific Customization:: Making a customization buffer for specific
201 variables, faces, or groups. 201 variables, faces, or groups.
202* Custom Themes:: How to define collections of customized options
203 that can be loaded and unloaded together.
202@end menu 204@end menu
203 205
204@node Customization Groups 206@node Customization Groups
@@ -652,6 +654,60 @@ changes. Use @kbd{M-x customize-saved} to look at the options that
652you have saved. Use @kbd{M-x customize-customized} to look at the 654you have saved. Use @kbd{M-x customize-customized} to look at the
653options that you have set but not saved. 655options that you have set but not saved.
654 656
657@node Custom Themes
658@subsection Customization Themes
659@cindex custom themes
660
661@dfn{Custom themes} are collections of customized options that can be
662enabled or disabled as a unit. You can use Custom themes to switch
663quickly and easily between various collections of settings, and to
664transfer such collections from one computer to another.
665
666@findex customize-create-theme
667To define a Custom theme, use the command
668@kbd{M-x customize-create-theme}, which brings up a buffer named
669@samp{*New Custom Theme*}. At the top of the buffer is an editable
670field where you can specify the name of the theme. To add a
671customization option to the theme, click on the @samp{INS} button to
672open up a field where you can insert the name of the option. The
673current value of that option is applied to the theme. After adding as
674many options as you like, click on @samp{Done} to save the Custom
675theme.
676
677@vindex custom-theme-directory
678Saving a Custom theme named @var{foo} writes its definition into the
679file @file{@var{foo}-theme.el}, in the directory @file{~/.emacs.d/}
680(you can specify the directory by setting
681@code{custom-theme-directory}).
682
683@findex load-theme
684@findex enable-theme
685@findex disable-theme
686You can load the themes you've previously defined with the command
687@code{load-theme}. It prompts for a theme name in the minibuffer,
688then loads that theme if it isn't already loaded. It also
689@dfn{enables} the theme, which means putting its settings into effect.
690An enabled theme can be @dfn{disabled} with the command
691@kbd{M-x disable-theme}; this returns the options specified in the
692theme to their original values. To re-enable the theme, use the
693command @kbd{M-x enable-theme}.
694
695To enable a Custom theme named @var{foo} whenever Emacs is started up,
696add the line @code{(load-theme '@var{foo})} to your @file{.emacs} file
697(@pxref{Init File}).
698
699Enabling a custom theme does not disable the themes already enabled;
700instead, they are all enabled together. If two enabled Custom themes
701specify different values for an option, the last theme to be enabled
702takes effect.
703
704The options that you set in the ordinary customization buffer
705(@pxref{Easy Customization}) are also considered part of a Custom
706theme, called @samp{user}. The @samp{user} theme is always enabled,
707and always takes precedence over all other enabled Custom themes.
708Additionally, the @samp{user} theme is recorded in your @file{.emacs}
709file, rather than a @file{user-theme.el} file.
710
655@node Variables 711@node Variables
656@section Variables 712@section Variables
657@cindex variable 713@cindex variable
diff --git a/man/search.texi b/man/search.texi
index 0233f7ce8de..b252e9c7c8c 100644
--- a/man/search.texi
+++ b/man/search.texi
@@ -907,6 +907,12 @@ searches also, including those performed by the replace commands
907(@pxref{Replace}) and the minibuffer history matching commands 907(@pxref{Replace}) and the minibuffer history matching commands
908(@pxref{Minibuffer History}). 908(@pxref{Minibuffer History}).
909 909
910 Several related variables control case-sensitivity of searching and
911matching for specific commands or activities. For instance,
912@code{tags-case-fold-search} controls case sensitivity for
913@code{find-tag}. To find these variables, do @kbd{M-x
914apropos-variable @key{RET} case-fold-search @key{RET}}.
915
910@node Replace 916@node Replace
911@section Replacement Commands 917@section Replacement Commands
912@cindex replacement 918@cindex replacement
diff --git a/src/ChangeLog b/src/ChangeLog
index 09a3ba2d825..bc76f96208a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,13 @@
12005-09-03 Richard M. Stallman <rms@gnu.org>
2
3 * xdisp.c (redisplay_internal): Make UPDATED as long as needed.
4 (move_it_in_display_line_to): Stop after last char on line even
5 on a windowing terminal, if that's the specified stop position.
6
7 * fns.c (Fsort): Doc fix.
8
9 * editfns.c (Fpropertize): Don't insist that properties be symbols.
10
12005-09-01 Stefan Monnier <monnier@iro.umontreal.ca> 112005-09-01 Stefan Monnier <monnier@iro.umontreal.ca>
2 12
3 * dispnew.c (window_to_frame_hpos, update_window): 13 * dispnew.c (window_to_frame_hpos, update_window):
diff --git a/src/editfns.c b/src/editfns.c
index da4533d2537..a05d2396448 100644
--- a/src/editfns.c
+++ b/src/editfns.c
@@ -3260,10 +3260,7 @@ usage: (propertize STRING &rest PROPERTIES) */)
3260 string = Fcopy_sequence (args[0]); 3260 string = Fcopy_sequence (args[0]);
3261 3261
3262 for (i = 1; i < nargs; i += 2) 3262 for (i = 1; i < nargs; i += 2)
3263 { 3263 properties = Fcons (args[i], Fcons (args[i + 1], properties));
3264 CHECK_SYMBOL (args[i]);
3265 properties = Fcons (args[i], Fcons (args[i + 1], properties));
3266 }
3267 3264
3268 Fadd_text_properties (make_number (0), 3265 Fadd_text_properties (make_number (0),
3269 make_number (SCHARS (string)), 3266 make_number (SCHARS (string)),
diff --git a/src/fns.c b/src/fns.c
index 1e26ec9a392..3c23aef282e 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1894,7 +1894,7 @@ DEFUN ("sort", Fsort, Ssort, 2, 2, 0,
1894 doc: /* Sort LIST, stably, comparing elements using PREDICATE. 1894 doc: /* Sort LIST, stably, comparing elements using PREDICATE.
1895Returns the sorted list. LIST is modified by side effects. 1895Returns the sorted list. LIST is modified by side effects.
1896PREDICATE is called with two elements of LIST, and should return non-nil 1896PREDICATE is called with two elements of LIST, and should return non-nil
1897if the first element is "less" than the second. */) 1897if the first element should sort before the second. */)
1898 (list, predicate) 1898 (list, predicate)
1899 Lisp_Object list, predicate; 1899 Lisp_Object list, predicate;
1900{ 1900{
diff --git a/src/xdisp.c b/src/xdisp.c
index a32cb70f436..b887c8d702c 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -5999,6 +5999,8 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
5999 glyphs have the same width. */ 5999 glyphs have the same width. */
6000 int single_glyph_width = it->pixel_width / it->nglyphs; 6000 int single_glyph_width = it->pixel_width / it->nglyphs;
6001 int new_x; 6001 int new_x;
6002 int x_before_this_char = x;
6003 int hpos_before_this_char = it->hpos;
6002 6004
6003 for (i = 0; i < it->nglyphs; ++i, x = new_x) 6005 for (i = 0; i < it->nglyphs; ++i, x = new_x)
6004 { 6006 {
@@ -6030,8 +6032,22 @@ move_it_in_display_line_to (it, to_charpos, to_x, op)
6030 { 6032 {
6031 ++it->hpos; 6033 ++it->hpos;
6032 it->current_x = new_x; 6034 it->current_x = new_x;
6035
6036 /* The character's last glyph just barely fits
6037 in this row. */
6033 if (i == it->nglyphs - 1) 6038 if (i == it->nglyphs - 1)
6034 { 6039 {
6040 /* If this is the destination position,
6041 return a position *before* it in this row,
6042 now that we know it fits in this row. */
6043 if (BUFFER_POS_REACHED_P ())
6044 {
6045 it->hpos = hpos_before_this_char;
6046 it->current_x = x_before_this_char;
6047 result = MOVE_POS_MATCH_OR_ZV;
6048 break;
6049 }
6050
6035 set_iterator_to_next (it, 1); 6051 set_iterator_to_next (it, 1);
6036#ifdef HAVE_WINDOW_SYSTEM 6052#ifdef HAVE_WINDOW_SYSTEM
6037 if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it)) 6053 if (IT_OVERFLOW_NEWLINE_INTO_FRINGE (it))
@@ -10600,9 +10616,13 @@ redisplay_internal (preserve_echo_area)
10600 if (consider_all_windows_p) 10616 if (consider_all_windows_p)
10601 { 10617 {
10602 Lisp_Object tail, frame; 10618 Lisp_Object tail, frame;
10603 int i, n = 0, size = 50; 10619 int i, n = 0, size = 5;
10604 struct frame **updated 10620 struct frame **updated;
10605 = (struct frame **) alloca (size * sizeof *updated); 10621
10622 FOR_EACH_FRAME (tail, frame)
10623 size++;
10624
10625 updated = (struct frame **) alloca (size * sizeof *updated);
10606 10626
10607 /* Recompute # windows showing selected buffer. This will be 10627 /* Recompute # windows showing selected buffer. This will be
10608 incremented each time such a window is displayed. */ 10628 incremented each time such a window is displayed. */