aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-08-26 09:13:07 -0700
committerPaul Eggert2011-08-26 09:13:07 -0700
commit5fc295a42feaef453b57010b826e589b9b9cb7dd (patch)
tree8a965da92c7ebc7d78c04d2dbc220a6bbe40e094
parentfcbc5f60ee9c1ed2fb8b8b4f36b8a0658250a1bd (diff)
parent7254299e4d19b0acdfc5dd7580c24be817731488 (diff)
downloademacs-5fc295a42feaef453b57010b826e589b9b9cb7dd.tar.gz
emacs-5fc295a42feaef453b57010b826e589b9b9cb7dd.zip
Merge from trunk.
-rw-r--r--ChangeLog4
-rwxr-xr-xautogen/configure4
-rw-r--r--configure.in4
-rw-r--r--doc/emacs/ChangeLog8
-rw-r--r--doc/emacs/Makefile.in1
-rw-r--r--doc/emacs/custom.texi2
-rw-r--r--doc/emacs/emacs.texi2
-rw-r--r--doc/emacs/help.texi12
-rw-r--r--doc/emacs/makefile.w32-in1
-rw-r--r--doc/emacs/misc.texi2
-rw-r--r--doc/emacs/package.texi230
-rw-r--r--doc/emacs/trouble.texi2
-rw-r--r--etc/NEWS3
-rw-r--r--lisp/ChangeLog9
-rw-r--r--lisp/emacs-lisp/cl-loaddefs.el2
-rw-r--r--lisp/emacs-lisp/cl-macs.el10
-rw-r--r--lisp/emacs-lisp/package.el26
-rw-r--r--lisp/gnus/ChangeLog2
-rw-r--r--lisp/gnus/mailcap.el2
-rw-r--r--src/ChangeLog7
-rw-r--r--src/xdisp.c10
21 files changed, 312 insertions, 31 deletions
diff --git a/ChangeLog b/ChangeLog
index 55deca05751..dd803790093 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
12011-08-26 Jan Djärv <jan.h.d@swipnet.se>
2
3 * configure.in: Add -MP to DEPFLAGS (Bug#9372).
4
12011-08-13 Jan Djärv <jan.h.d@swipnet.se> 52011-08-13 Jan Djärv <jan.h.d@swipnet.se>
2 6
3 * configure.in: Add header check: sys/socket.h (Bug#8477), 7 * configure.in: Add header check: sys/socket.h (Bug#8477),
diff --git a/autogen/configure b/autogen/configure
index 02fa5abb626..5996e241c0e 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -9112,7 +9112,7 @@ $as_echo "$HAVE_GNU_MAKE" >&6; }
9112 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -MMD -MF" >&5 9112 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether gcc understands -MMD -MF" >&5
9113$as_echo_n "checking whether gcc understands -MMD -MF... " >&6; } 9113$as_echo_n "checking whether gcc understands -MMD -MF... " >&6; }
9114 SAVE_CFLAGS="$CFLAGS" 9114 SAVE_CFLAGS="$CFLAGS"
9115 CFLAGS="$CFLAGS -MMD -MF deps.d" 9115 CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
9116 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 9116 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
9117/* end confdefs.h. */ 9117/* end confdefs.h. */
9118 9118
@@ -9137,7 +9137,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
9137$as_echo "$ac_enable_autodepend" >&6; } 9137$as_echo "$ac_enable_autodepend" >&6; }
9138 fi 9138 fi
9139 if test $ac_enable_autodepend = yes; then 9139 if test $ac_enable_autodepend = yes; then
9140 DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d' 9140 DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
9141 ## In parallel builds, another make might create depdir between 9141 ## In parallel builds, another make might create depdir between
9142 ## the first test and mkdir, so stick another test on the end. 9142 ## the first test and mkdir, so stick another test on the end.
9143 ## Or use install-sh -d? mkdir -p is not portable. 9143 ## Or use install-sh -d? mkdir -p is not portable.
diff --git a/configure.in b/configure.in
index cfb9dc8bab2..f62f364715f 100644
--- a/configure.in
+++ b/configure.in
@@ -1390,7 +1390,7 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1390 if test $HAVE_GNU_MAKE = yes; then 1390 if test $HAVE_GNU_MAKE = yes; then
1391 AC_MSG_CHECKING([whether gcc understands -MMD -MF]) 1391 AC_MSG_CHECKING([whether gcc understands -MMD -MF])
1392 SAVE_CFLAGS="$CFLAGS" 1392 SAVE_CFLAGS="$CFLAGS"
1393 CFLAGS="$CFLAGS -MMD -MF deps.d" 1393 CFLAGS="$CFLAGS -MMD -MF deps.d -MP"
1394 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no) 1394 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], , ac_enable_autodepend=no)
1395 CFLAGS="$SAVE_CFLAGS" 1395 CFLAGS="$SAVE_CFLAGS"
1396 test -f deps.d || ac_enable_autodepend=no 1396 test -f deps.d || ac_enable_autodepend=no
@@ -1398,7 +1398,7 @@ if test "$GCC" = yes && test "$ac_enable_autodepend" = yes; then
1398 AC_MSG_RESULT([$ac_enable_autodepend]) 1398 AC_MSG_RESULT([$ac_enable_autodepend])
1399 fi 1399 fi
1400 if test $ac_enable_autodepend = yes; then 1400 if test $ac_enable_autodepend = yes; then
1401 DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d' 1401 DEPFLAGS='-MMD -MF ${DEPDIR}/$*.d -MP'
1402 ## In parallel builds, another make might create depdir between 1402 ## In parallel builds, another make might create depdir between
1403 ## the first test and mkdir, so stick another test on the end. 1403 ## the first test and mkdir, so stick another test on the end.
1404 ## Or use install-sh -d? mkdir -p is not portable. 1404 ## Or use install-sh -d? mkdir -p is not portable.
diff --git a/doc/emacs/ChangeLog b/doc/emacs/ChangeLog
index 9050efa83d0..f74f06e962f 100644
--- a/doc/emacs/ChangeLog
+++ b/doc/emacs/ChangeLog
@@ -1,3 +1,11 @@
12011-08-26 Chong Yidong <cyd@stupidchicken.com>
2
3 * package.texi: New file, documenting the package manager.
4
5 * emacs.texi: Include it.
6
7 * help.texi (Help Summary): Add describe-package.
8
12011-08-25 Chong Yidong <cyd@stupidchicken.com> 92011-08-25 Chong Yidong <cyd@stupidchicken.com>
2 10
3 * misc.texi (Printing): Convert subnodes into subsections. 11 * misc.texi (Printing): Convert subnodes into subsections.
diff --git a/doc/emacs/Makefile.in b/doc/emacs/Makefile.in
index 9465c726eba..66cd7f1d92e 100644
--- a/doc/emacs/Makefile.in
+++ b/doc/emacs/Makefile.in
@@ -96,6 +96,7 @@ EMACSSOURCES= \
96 ${srcdir}/dired.texi \ 96 ${srcdir}/dired.texi \
97 ${srcdir}/calendar.texi \ 97 ${srcdir}/calendar.texi \
98 ${srcdir}/misc.texi \ 98 ${srcdir}/misc.texi \
99 ${srcdir}/package.texi \
99 ${srcdir}/custom.texi \ 100 ${srcdir}/custom.texi \
100 ${srcdir}/trouble.texi \ 101 ${srcdir}/trouble.texi \
101 ${srcdir}/cmdargs.texi \ 102 ${srcdir}/cmdargs.texi \
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 6a6d465438d..a22d6c1f5dd 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -2,7 +2,7 @@
2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011 2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c Free Software Foundation, Inc. 3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions. 4@c See file emacs.texi for copying conditions.
5@node Customization, Quitting, Amusements, Top 5@node Customization
6@chapter Customization 6@chapter Customization
7@cindex customization 7@cindex customization
8 8
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 24a7e6d62e6..060f939fa7a 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -212,6 +212,7 @@ Advanced Features
212* Emulation:: Emulating some other editors with Emacs. 212* Emulation:: Emulating some other editors with Emacs.
213* Hyperlinking:: Following links in buffers. 213* Hyperlinking:: Following links in buffers.
214* Amusements:: Various games and hacks. 214* Amusements:: Various games and hacks.
215* Packages:: Installing additional features.
215* Customization:: Modifying the behavior of Emacs. 216* Customization:: Modifying the behavior of Emacs.
216 217
217Recovery from Problems 218Recovery from Problems
@@ -1497,6 +1498,7 @@ Lisp programming.
1497@include rmail.texi 1498@include rmail.texi
1498@c Includes picture-xtra.texi 1499@c Includes picture-xtra.texi
1499@include misc.texi 1500@include misc.texi
1501@include package.texi
1500@include custom.texi 1502@include custom.texi
1501@include trouble.texi 1503@include trouble.texi
1502 1504
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 9a75bfb1887..bf93892c0db 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -126,16 +126,20 @@ The complete Emacs manual is available on-line in Info.
126Display the name and documentation of the command that @var{key} runs 126Display the name and documentation of the command that @var{key} runs
127(@code{describe-key}). 127(@code{describe-key}).
128@item C-h l 128@item C-h l
129Display a description of your last 300 keystrokes 129Display a description of your last 300 keystrokes
130(@code{view-lossage}). 130(@code{view-lossage}).
131@item C-h m 131@item C-h m
132Display documentation of the current major mode (@code{describe-mode}). 132Display documentation of the current major mode (@code{describe-mode}).
133@item C-h n 133@item C-h n
134Display news of recent Emacs changes (@code{view-emacs-news}). 134Display news of recent Emacs changes (@code{view-emacs-news}).
135@item C-h p 135@item C-h p
136Find packages by topic keyword (@code{finder-by-keyword}). For an 136Find packages by topic keyword (@code{finder-by-keyword}). This lists
137alternative interface to the same information, try the @code{info-finder} 137packages using a package menu buffer (@pxref{Package Menu}); for an
138command. 138alternative interface to the same information, try the
139@code{info-finder} command.
140@item C-h P @var{package} @key{RET}
141Display documentation about the package named @var{package}
142(@code{describe-package}; @pxref{Packages}).
139@item C-h r 143@item C-h r
140Display the Emacs manual in Info (@code{info-emacs-manual}). 144Display the Emacs manual in Info (@code{info-emacs-manual}).
141@item C-h s 145@item C-h s
diff --git a/doc/emacs/makefile.w32-in b/doc/emacs/makefile.w32-in
index 4064f4ef6a3..e128a50ebd3 100644
--- a/doc/emacs/makefile.w32-in
+++ b/doc/emacs/makefile.w32-in
@@ -88,6 +88,7 @@ EMACSSOURCES= \
88 $(srcdir)/dired.texi \ 88 $(srcdir)/dired.texi \
89 $(srcdir)/calendar.texi \ 89 $(srcdir)/calendar.texi \
90 $(srcdir)/misc.texi \ 90 $(srcdir)/misc.texi \
91 $(srcdir)/package.texi \
91 $(srcdir)/custom.texi \ 92 $(srcdir)/custom.texi \
92 $(srcdir)/trouble.texi \ 93 $(srcdir)/trouble.texi \
93 $(srcdir)/cmdargs.texi \ 94 $(srcdir)/cmdargs.texi \
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index e43a8adce74..2dab70c512a 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -2513,7 +2513,7 @@ Display a menu of files and URLs mentioned in current buffer, then
2513find the one you select (@code{ffap-menu}). 2513find the one you select (@code{ffap-menu}).
2514@end table 2514@end table
2515 2515
2516@node Amusements, Customization, Hyperlinking, Top 2516@node Amusements, Packages, Hyperlinking, Top
2517@section Other Amusements 2517@section Other Amusements
2518@cindex boredom 2518@cindex boredom
2519 2519
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
new file mode 100644
index 00000000000..739a8ce6c65
--- /dev/null
+++ b/doc/emacs/package.texi
@@ -0,0 +1,230 @@
1@c This is part of the Emacs manual.
2@c Copyright (C) 1985-1987, 1993-1995, 1997, 2000-2011
3@c Free Software Foundation, Inc.
4@c See file emacs.texi for copying conditions.
5@node Packages
6@chapter Emacs Lisp Packages
7@cindex Package
8@cindex Emacs Lisp package archive
9@cindex Package archive
10@cindex Emacs Lisp package
11
12Emacs includes a facility that lets you easily download and install
13@dfn{packages} that implement additional features. Each package is a
14separate Emacs Lisp program, sometimes including other components such
15as an Info manual.
16
17 @kbd{M-x list-packages} brings up a buffer named @samp{*Packages*}
18with a list of all packages. You can install or uninstall packages
19via this buffer. @xref{Package Menu}.
20
21@findex describe-package
22 The command @kbd{C-h P} (@code{describe-package}) prompts for the
23name of a package, and displays a help buffer describing that
24attributes of the package and the features that it implements.
25
26 By default, Emacs downloads packages from a @dfn{package archive}
27maintained by the Emacs developers and hosted by the GNU project.
28Optionally, you can also download packages from archives maintained by
29third parties. @xref{Package Installation}.
30
31 For information about turning an Emacs Lisp program into an
32installable package, @xref{Packaging,,,elisp, The Emacs Lisp Reference
33Manual}. For information about finding third-party packages and other
34Emacs Lisp extensions, @xref{Packages that do not come with
35Emacs,,,efaq, GNU Emacs FAQ}.
36
37@menu
38* Package Menu:: Buffer for viewing and managing packages.
39* Package Installation:: Options for package installation.
40* Package Files:: Where packages are installed.
41@end menu
42
43@node Package Menu
44@section The Package Menu Buffer
45@cindex package menu
46@cindex built-in package
47@findex list-packages
48
49The command @kbd{M-x list-packages} brings up the @dfn{package menu}.
50This is a buffer listing all the packages that Emacs knows about, one
51on each line, with the following information:
52
53@itemize @bullet
54@item
55The package name (e.g. @samp{auctex}).
56
57@item
58The package's version number (e.g. @samp{11.86}).
59
60@item
61The package's status---normally one of @samp{available} (can be
62downloaded from the package archive), @samp{installed}, or
63@samp{built-in} (included in Emacs by default).
64
65In some instances, the status can be @samp{held}, @samp{disabled}, or
66@samp{obsolete}. @xref{Package Installation}.
67
68@item
69A short description of the package.
70@end itemize
71
72@noindent
73The @code{list-packages} command accesses the network, to retrieve the
74list of available packages from the package archive server. If the
75network is unavailable, it falls back on the most recently retrieved
76list.
77
78The following commands are available in the package menu:
79
80@table @kbd
81@item h
82Print a short message summarizing how to use the package menu
83(@code{package-menu-quick-help}).
84
85@item ?
86@itemx @key{RET}
87Display a help buffer for the package on the current line
88(@code{package-menu-describe-package}), similar to the help window
89displayed by the @kbd{C-h P} command (@pxref{Packages}).
90
91@item i
92Mark the package on the current line for installation
93(@code{package-menu-mark-install}). If the package status is
94@samp{available}, this adds an @samp{I} character to the start of the
95line; typing @kbd{x} (see below) will download and install the
96package.
97
98@item d
99Mark the package on the current line for deletion
100(@code{package-menu-mark-delete}). If the package status is
101@samp{installed}, this adds a @samp{D} character to the start of the
102line; typing @kbd{x} (see below) will delete the package.
103@xref{Package Files}, for information about what package deletion
104entails.
105
106@item u
107Remove any installation or deletion mark previously added to the
108current line by an @kbd{i} or @kbd{d} command.
109
110@item x
111Download and install all packages marked with @kbd{i}, and their
112dependencies; also, delete all packages marked with @kbd{d}
113(@code{package-menu-execute}). This also removes the marks.
114
115@item r
116Refresh the package list (@code{package-menu-refresh}). This also
117retrieves the list of available packages from the package archive
118again.
119@end table
120
121@noindent
122For example, you can install a package by typing @kbd{i} on the line
123listing that package, followed by @kbd{x}.
124
125@node Package Installation
126@section Package Installation
127
128@findex package-install
129 Packages are most conveniently installed using the package menu
130(@pxref{Package Menu}), but you can also use the command @kbd{M-x
131package-install}. This prompts for the name of a package with the
132@samp{available} status, then downloads and installs it.
133
134@cindex package requirements
135 A package may @dfn{require} certain other packages to be installed,
136because it relies on functionality provided by them. When Emacs
137installs such a package, it also automatically downloads and installs
138any required package that is not already installed. (If a required
139package is somehow unavailable, Emacs signals an error and stops
140installation.) A package's requirements list is shown in its help
141buffer.
142
143@vindex package-archives
144 By default, packages are downloaded from a single package archive
145maintained by the Emacs developers. This is controlled by the
146variable @code{package-archives}, whose value is a list of package
147archives known to Emacs. Each list element must have the form
148@code{(@var{id} . @var{location})}, where @var{id} is the name of a
149package archive and @var{location} is the @acronym{HTTP} address or
150directory name of the package archive. You can alter this list if you
151wish to use third party package archives---but do so at your own risk,
152and use only third parties that you think you can trust!
153
154 Once a package is downloaded and installed, it takes effect in the
155current Emacs session. What ``taking effect'' means depends on the
156package; most packages just make some new commands available, while
157others have more wide-ranging effects on the Emacs session. For such
158information, consult the package's help buffer.
159
160 By default, Emacs also automatically loads all installed packages
161(causing them to ``take effect'') in subsequent Emacs sessions. This
162happens at startup, after processing the init file (@pxref{Init
163File}). As an exception, Emacs does not load packages at startup if
164invoked with the @samp{-q} or @samp{--no-init-file} options
165(@pxref{Initial Options}).
166
167@vindex package-enable-at-startup
168@findex package-initialize
169 To disable automatic package loading, change the variable
170@code{package-enable-at-startup} to @code{nil}. If you do this, you
171can use the command @kbd{M-x package-initialize} to load your
172packages.
173
174@vindex package-load-list
175 For finer control over package loading, you can use the variable
176@code{package-load-list}. Its value should be a list. A list element
177of the form @code{(@var{name} @var{version})} tells Emacs to load
178version @var{version} of the package named @var{name}. Here,
179@var{version} should be a version string (corresponding to a specific
180version of the package), or @code{t} (which means to load any
181installed version), or @code{nil} (which means no version; this
182``disables'' the package, preventing it from being loaded). A list
183element can also be the symbol @code{all}, which means to load the
184latest installed version of any package not named by the other list
185elements. The default value is just @code{'(all)}.
186
187 For example, if you set @code{package-load-list} to @code{'((muse
188"3.20") all)}, then Emacs only loads version 3.20 of the @samp{muse}
189package, plus any installed version of packages other than
190@samp{muse}. Any other version of @samp{muse} that happens to be
191installed will be ignored. The @samp{muse} package will be listed in
192the package menu with the @samp{held} status.
193
194@node Package Files
195@section Package Files and Directory Layout
196@cindex package directory
197
198@cindex package file
199@findex package-install-file
200 Each package is downloaded from the package archive in the form of a
201single @dfn{package file}---either an Emacs Lisp source file, or a tar
202file containing multiple Emacs Lisp source and other files. Package
203files are automatically retrieved, processed, and disposed of by the
204Emacs commands that install packages. Normally, you will not need to
205deal directly with them, unless you are making a package
206(@pxref{Packaging,,,elisp, The Emacs Lisp Reference Manual}). Should
207you ever need to install a package directly from a package file, use
208the command @kbd{M-x package-install-file}.
209
210@vindex package-user-dir
211 Once installed, the contents of a package are placed in a
212subdirectory of @file{~/.emacs.d/elpa/} (you can change the name of
213that directory by changing the variable @code{package-user-dir}). The
214package subdirectory is named @file{@var{name}-@var{version}}, where
215@var{name} is the package name and @var{version} is its version
216string.
217
218@cindex system-wide packages
219@vindex package-directory-list
220 In addition to @code{package-user-dir}, Emacs looks for installed
221packages in the directories listed in @code{package-directory-list}.
222These directories are meant for system administrators to make Emacs
223packages available system-wide; Emacs itself never installs packages
224there. The package subdirectories for @code{package-directory-list}
225are laid out in the same way as in @code{package-user-dir}.
226
227 Deleting a package (@pxref{Package Menu}) involves deleting the
228corresponding package subdirectory. This only works for packages
229installed in @code{package-user-dir}; if told to act on a package in a
230system-wide package directory, the deletion command signals an error.
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 4be892639fc..fd06dde5174 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -15,7 +15,7 @@ also considered.
15@raisesections 15@raisesections
16@end ifnottex 16@end ifnottex
17 17
18@node Quitting, Lossage, Customization, Top 18@node Quitting
19@section Quitting and Aborting 19@section Quitting and Aborting
20@cindex quitting 20@cindex quitting
21 21
diff --git a/etc/NEWS b/etc/NEWS
index cec19d0c0a2..841b11bcdb9 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -319,11 +319,14 @@ for `list-colors-display'.
319This is a convenient way to download and install additional packages, 319This is a convenient way to download and install additional packages,
320from a package repository at elpa.gnu.org. 320from a package repository at elpa.gnu.org.
321 321
322+++
322*** `M-x list-packages' shows a list of packages, which can be 323*** `M-x list-packages' shows a list of packages, which can be
323selected for installation. 324selected for installation.
324 325
326+++
325*** New command `describe-package', bound to `C-h P'. 327*** New command `describe-package', bound to `C-h P'.
326 328
329+++
327*** By default, all installed packages are loaded and activated 330*** By default, all installed packages are loaded and activated
328automatically when Emacs starts up. To disable this, set 331automatically when Emacs starts up. To disable this, set
329`package-enable-at-startup' to nil. To change which packages are 332`package-enable-at-startup' to nil. To change which packages are
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b922e21681f..e3fe51454e5 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,12 @@
12011-08-26 Chong Yidong <cyd@stupidchicken.com>
2
3 * emacs-lisp/package.el (package-install): Call package-initialize
4 if called interactively.
5
62011-08-26 Leo Liu <sdl.web@gmail.com>
7
8 * emacs-lisp/cl-macs.el (defstruct): Fix format. (Bug#9357)
9
12011-08-25 Juri Linkov <juri@jurta.org> 102011-08-25 Juri Linkov <juri@jurta.org>
2 11
3 * isearch.el (isearch-occur): Let-bind `search-spaces-regexp' to 12 * isearch.el (isearch-occur): Let-bind `search-spaces-regexp' to
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el
index 7beb4d4b4cc..d6512306ad1 100644
--- a/lisp/emacs-lisp/cl-loaddefs.el
+++ b/lisp/emacs-lisp/cl-loaddefs.el
@@ -282,7 +282,7 @@ Not documented
282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist 282;;;;;; flet progv psetq do-all-symbols do-symbols dotimes dolist
283;;;;;; do* do loop return-from return block etypecase typecase ecase 283;;;;;; do* do loop return-from return block etypecase typecase ecase
284;;;;;; case load-time-value eval-when destructuring-bind function* 284;;;;;; case load-time-value eval-when destructuring-bind function*
285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "0907093f7720996444ededb4edfe8072") 285;;;;;; defmacro* defun* gentemp gensym) "cl-macs" "cl-macs.el" "cc8cbd8c86e2facbe61986e992e6c508")
286;;; Generated autoloads from cl-macs.el 286;;; Generated autoloads from cl-macs.el
287 287
288(autoload 'gensym "cl-macs" "\ 288(autoload 'gensym "cl-macs" "\
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index fb19115287c..d9531cc5261 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -2416,9 +2416,8 @@ value, that slot cannot be set via `setf'.
2416 (append 2416 (append
2417 (and pred-check 2417 (and pred-check
2418 (list (list 'or pred-check 2418 (list (list 'or pred-check
2419 (list 'error 2419 `(error "%s accessing a non-%s"
2420 (format "%s accessing a non-%s" 2420 ',accessor ',name))))
2421 accessor name)))))
2422 (list (if (eq type 'vector) (list 'aref 'cl-x pos) 2421 (list (if (eq type 'vector) (list 'aref 'cl-x pos)
2423 (if (= pos 0) '(car cl-x) 2422 (if (= pos 0) '(car cl-x)
2424 (list 'nth pos 'cl-x)))))) forms) 2423 (list 'nth pos 'cl-x)))))) forms)
@@ -2426,9 +2425,8 @@ value, that slot cannot be set via `setf'.
2426 (push (list 'define-setf-method accessor '(cl-x) 2425 (push (list 'define-setf-method accessor '(cl-x)
2427 (if (cadr (memq :read-only (cddr desc))) 2426 (if (cadr (memq :read-only (cddr desc)))
2428 (list 'progn '(ignore cl-x) 2427 (list 'progn '(ignore cl-x)
2429 (list 'error 2428 `(error "%s is a read-only slot"
2430 (format "%s is a read-only slot" 2429 ',accessor))
2431 'accessor)))
2432 ;; If cl is loaded only for compilation, 2430 ;; If cl is loaded only for compilation,
2433 ;; the call to cl-struct-setf-expander would 2431 ;; the call to cl-struct-setf-expander would
2434 ;; cause a warning because it may not be 2432 ;; cause a warning because it may not be
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 19e8375966b..88282606aa8 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -852,18 +852,26 @@ using `package-compute-transaction'."
852 (t 852 (t
853 (error "Unknown package kind: %s" (symbol-name kind))))))) 853 (error "Unknown package kind: %s" (symbol-name kind)))))))
854 854
855(defvar package--initialized nil)
856
855;;;###autoload 857;;;###autoload
856(defun package-install (name) 858(defun package-install (name)
857 "Install the package named NAME. 859 "Install the package named NAME.
858Interactively, prompt for the package name. 860NAME should be the name of one of the available packages in an
859The package is found on one of the archives in `package-archives'." 861archive in `package-archives'. Interactively, prompt for NAME."
860 (interactive 862 (interactive
861 (list (intern (completing-read "Install package: " 863 (progn
862 (mapcar (lambda (elt) 864 ;; Initialize the package system to get the list of package
863 (cons (symbol-name (car elt)) 865 ;; symbols for completion.
864 nil)) 866 (unless package--initialized
865 package-archive-contents) 867 (package-initialize t))
866 nil t)))) 868 (list (intern (completing-read
869 "Install package: "
870 (mapcar (lambda (elt)
871 (cons (symbol-name (car elt))
872 nil))
873 package-archive-contents)
874 nil t)))))
867 (let ((pkg-desc (assq name package-archive-contents))) 875 (let ((pkg-desc (assq name package-archive-contents)))
868 (unless pkg-desc 876 (unless pkg-desc
869 (error "Package `%s' is not available for installation" 877 (error "Package `%s' is not available for installation"
@@ -1076,8 +1084,6 @@ makes them available for download."
1076 (car archive))))) 1084 (car archive)))))
1077 (package-read-all-archive-contents)) 1085 (package-read-all-archive-contents))
1078 1086
1079(defvar package--initialized nil)
1080
1081;;;###autoload 1087;;;###autoload
1082(defun package-initialize (&optional no-activate) 1088(defun package-initialize (&optional no-activate)
1083 "Load Emacs Lisp packages, and activate them. 1089 "Load Emacs Lisp packages, and activate them.
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 076afdd2323..5c8b4333332 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,5 +1,7 @@
12011-08-26 Katsumi Yamaoka <yamaoka@jpl.org> 12011-08-26 Katsumi Yamaoka <yamaoka@jpl.org>
2 2
3 * mailcap.el (mailcap-mime-data): Regexp-quote MIME subtype.
4
3 * gnus-msg.el (gnus-setup-message): Remove extra apostrophe. 5 * gnus-msg.el (gnus-setup-message): Remove extra apostrophe.
4 6
52011-08-21 Lars Magne Ingebrigtsen <larsi@gnus.org> 72011-08-21 Lars Magne Ingebrigtsen <larsi@gnus.org>
diff --git a/lisp/gnus/mailcap.el b/lisp/gnus/mailcap.el
index dffb279daba..7959104d646 100644
--- a/lisp/gnus/mailcap.el
+++ b/lisp/gnus/mailcap.el
@@ -90,7 +90,7 @@ This is a compatibility function for different Emacsen."
90;; files for the rest? -- fx 90;; files for the rest? -- fx
91(defvar mailcap-mime-data 91(defvar mailcap-mime-data
92 `(("application" 92 `(("application"
93 ("vnd.ms-excel" 93 ("vnd\\.ms-excel"
94 (viewer . "gnumeric %s") 94 (viewer . "gnumeric %s")
95 (test . (getenv "DISPLAY")) 95 (test . (getenv "DISPLAY"))
96 (type . "application/vnd.ms-excel")) 96 (type . "application/vnd.ms-excel"))
diff --git a/src/ChangeLog b/src/ChangeLog
index b5ba1d74f8a..bb2a0d20c1f 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,4 +1,4 @@
12011-08-25 Paul Eggert <eggert@cs.ucla.edu> 12011-08-26 Paul Eggert <eggert@cs.ucla.edu>
2 2
3 Integer and memory overflow issues (Bug#9196). 3 Integer and memory overflow issues (Bug#9196).
4 4
@@ -422,6 +422,11 @@
422 (gs_load): Use printmax_t to print the widest integers possible. 422 (gs_load): Use printmax_t to print the widest integers possible.
423 Check for integer overflow when computing image height and width. 423 Check for integer overflow when computing image height and width.
424 424
4252011-08-26 Eli Zaretskii <eliz@gnu.org>
426
427 * xdisp.c (redisplay_window): Don't force window start if point
428 will be invisible in the resulting window. (Bug#9324)
429
4252011-08-25 Eli Zaretskii <eliz@gnu.org> 4302011-08-25 Eli Zaretskii <eliz@gnu.org>
426 431
427 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when 432 * xdisp.c (compute_display_string_pos): Return 2 in DISP_PROP when
diff --git a/src/xdisp.c b/src/xdisp.c
index 5f7020ba379..b60e3b466a8 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -15097,6 +15097,7 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
15097 || (XFASTINT (w->last_modified) >= MODIFF 15097 || (XFASTINT (w->last_modified) >= MODIFF
15098 && XFASTINT (w->last_overlay_modified) >= OVERLAY_MODIFF))) 15098 && XFASTINT (w->last_overlay_modified) >= OVERLAY_MODIFF)))
15099 { 15099 {
15100 int d1, d2, d3, d4, d5, d6;
15100 15101
15101 /* If first window line is a continuation line, and window start 15102 /* If first window line is a continuation line, and window start
15102 is inside the modified region, but the first change is before 15103 is inside the modified region, but the first change is before
@@ -15118,7 +15119,14 @@ redisplay_window (Lisp_Object window, int just_this_one_p)
15118 compute_window_start_on_continuation_line. (See also 15119 compute_window_start_on_continuation_line. (See also
15119 bug#197). */ 15120 bug#197). */
15120 && XMARKER (w->start)->buffer == current_buffer 15121 && XMARKER (w->start)->buffer == current_buffer
15121 && compute_window_start_on_continuation_line (w)) 15122 && compute_window_start_on_continuation_line (w)
15123 /* It doesn't make sense to force the window start like we
15124 do at label force_start if it is already known that point
15125 will not be visible in the resulting window, because
15126 doing so will move point from its correct position
15127 instead of scrolling the window to bring point into view.
15128 See bug#9324. */
15129 && pos_visible_p (w, PT, &d1, &d2, &d3, &d4, &d5, &d6))
15122 { 15130 {
15123 w->force_start = Qt; 15131 w->force_start = Qt;
15124 SET_TEXT_POS_FROM_MARKER (startp, w->start); 15132 SET_TEXT_POS_FROM_MARKER (startp, w->start);