aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2011-03-17 09:32:03 -0700
committerPaul Eggert2011-03-17 09:32:03 -0700
commitb1d876f1a19ae65c8a8dd61c4ce17055ca53f16c (patch)
tree5dd8a40d7e3e0b86749cecfee7443ad81bdbfe5e
parentb766f86726fc2828a035cb8db149598a3a84de96 (diff)
parentd6cd56f187a791983579bf5d4ce3702d2ddf2499 (diff)
downloademacs-b1d876f1a19ae65c8a8dd61c4ce17055ca53f16c.tar.gz
emacs-b1d876f1a19ae65c8a8dd61c4ce17055ca53f16c.zip
Merge from mainline.
-rw-r--r--doc/misc/ChangeLog13
-rw-r--r--doc/misc/calc.texi235
-rw-r--r--doc/misc/message.texi19
-rw-r--r--doc/misc/tramp.texi29
-rw-r--r--etc/ChangeLog10
-rw-r--r--etc/NEWS6
-rw-r--r--lisp/ChangeLog116
-rw-r--r--lisp/allout.el25
-rw-r--r--lisp/calc/README2
-rw-r--r--lisp/calc/calc-ext.el31
-rw-r--r--lisp/calc/calc-help.el4
-rw-r--r--lisp/calc/calc-units.el114
-rw-r--r--lisp/calc/calc.el4
-rw-r--r--lisp/custom.el16
-rw-r--r--lisp/emacs-lisp/bytecomp.el3
-rw-r--r--lisp/gnus/ChangeLog127
-rw-r--r--lisp/gnus/auth-source.el28
-rw-r--r--lisp/gnus/gnus-art.el13
-rw-r--r--lisp/gnus/gnus-group.el5
-rw-r--r--lisp/gnus/gnus-int.el4
-rw-r--r--lisp/gnus/gnus-start.el9
-rw-r--r--lisp/gnus/gnus-sum.el56
-rw-r--r--lisp/gnus/gnus-win.el6
-rw-r--r--lisp/gnus/gssapi.el105
-rw-r--r--lisp/gnus/message.el18
-rw-r--r--lisp/gnus/mm-uu.el2
-rw-r--r--lisp/gnus/nnimap.el25
-rw-r--r--lisp/help-fns.el1
-rw-r--r--lisp/minibuffer.el10
-rw-r--r--lisp/net/quickurl.el10
-rw-r--r--lisp/net/xesam.el8
-rw-r--r--lisp/notifications.el4
-rw-r--r--lisp/org/ChangeLog10
-rw-r--r--lisp/org/ob-exp.el14
-rw-r--r--lisp/org/ob-ref.el12
-rw-r--r--lisp/org/ob-sql.el22
-rw-r--r--lisp/org/org-freemind.el6
-rw-r--r--lisp/org/org-mouse.el10
-rw-r--r--lisp/org/org-plot.el24
-rw-r--r--lisp/org/org-src.el14
-rw-r--r--lisp/play/bubbles.el50
-rw-r--r--lisp/play/gamegrid.el10
-rw-r--r--lisp/progmodes/delphi.el75
-rw-r--r--lisp/progmodes/ebrowse.el12
-rw-r--r--lisp/progmodes/ruby-mode.el2
-rw-r--r--lisp/shell.el15
-rw-r--r--lisp/startup.el32
-rw-r--r--lisp/subr.el36
-rw-r--r--lisp/vc/vc-dir.el6
-rw-r--r--lisp/vc/vc-hg.el6
-rw-r--r--src/ChangeLog56
-rw-r--r--src/buffer.c4
-rw-r--r--src/coding.c159
-rw-r--r--src/emacs.c12
-rw-r--r--src/keyboard.h4
-rw-r--r--src/lisp.h2
-rw-r--r--src/print.c24
-rw-r--r--src/w32.c5
-rw-r--r--src/w32console.c9
-rw-r--r--src/w32fns.c15
-rw-r--r--src/w32font.c3
-rw-r--r--src/w32inevt.c9
-rw-r--r--src/w32menu.c8
-rw-r--r--src/w32proc.c8
-rw-r--r--src/w32select.c2
-rw-r--r--src/w32term.c14
-rw-r--r--src/w32term.h6
-rw-r--r--src/w32uniscribe.c4
68 files changed, 1095 insertions, 663 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index db3a944c160..5dd5e3e4fdc 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,16 @@
12011-03-17 Jay Belanger <jay.p.belanger@gmail.com>
2
3 * calc.texi (Logarithmic Units): Update the function names.
4
52011-03-15 Antoine Levitt <antoine.levitt@gmail.com>
6
7 * message.texi (Insertion Variables): Document message-cite-style.
8
92011-03-14 Michael Albinus <michael.albinus@gmx.de>
10
11 * tramp.texi (Remote processes): New subsection "Running shell on
12 a remote host".
13
12011-03-12 Teodor Zlatanov <tzz@lifelogs.com> 142011-03-12 Teodor Zlatanov <tzz@lifelogs.com>
2 15
3 * auth.texi (Help for developers): Update docs to explain that the 16 * auth.texi (Help for developers): Update docs to explain that the
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 88103fc0034..f732eff5690 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -28126,47 +28126,15 @@ tell Calc to use a different file for the Calc init file.)
28126@section Logarithmic Units 28126@section Logarithmic Units
28127 28127
28128The units @code{dB} (decibels) and @code{Np} (nepers) are logarithmic 28128The units @code{dB} (decibels) and @code{Np} (nepers) are logarithmic
28129units which are typically manipulated differently than standard units. 28129units which are manipulated differently than standard units. Calc
28130Calc provides commands to work with these logarithmic units. 28130provides commands to work with these logarithmic units.
28131 28131
28132Decibels and nepers are used to measure power quantities as well as 28132Decibels and nepers are used to measure power quantities as well as
28133field quantities (quantities whose squares are proportional to power). 28133field quantities (quantities whose squares are proportional to power);
28134The decibel and neper values of a quantity are relative to 28134these two types of quantities are handled slightly different from each
28135a reference quantity; for example, the decibel value of a sound 28135other. By default the Calc commands work as if power quantities are
28136pressure level of 28136being used; with the @kbd{H} prefix the Calc commands work as if field
28137@infoline @math{60 uPa} 28137quantities are being used.
28138@texline @math{60 \mu{\rm Pa}}
28139relative to
28140@infoline @math{20 uPa}
28141@texline @math{20 \mu{\rm Pa}}
28142(the threshhold of human hearing) is
28143@infoline @math{20 log10(60 uPa/ 20 uPa) dB = 20 log10(3) dB},
28144@texline @math{20 \log_{10}(60 \mu{\rm Pa}/20 \mu{\rm Pa}) {\rm dB} = 20 \log_{10}(3) {\rm dB}},
28145which is about
28146@infoline @math{9.54 dB}.
28147@texline @math{9.54 {\rm dB}}.
28148Note that in taking the ratio, the original units cancel and so these
28149logarithmic units are dimensionless.
28150
28151@vindex calc-logunits-power-reference
28152@vindex calc-logunits-field-reference
28153The Calc commands for the logarithmic units assume that power quantities
28154are being used unless the @kbd{H} prefix is used, in which case they assume that
28155field quantities are being used. For power quantities, Calc uses
28156@infoline @math{1 mW}
28157@texline @math{1 {\rm mW}}
28158as the default reference quantity; this default can be changed by changing
28159the value of the customizable variable
28160@code{calc-logunits-power-reference} (@pxref{Customizing Calc}).
28161For field quantities, Calc uses
28162@infoline @math{20 uPa}
28163@texline @math{20 \mu{\rm Pa}}
28164as the default reference quantity; this is the value used in acoustics
28165which is where decibels are commonly encountered. This default can be
28166changed by changing the value of the customizable variable
28167@code{calc-logunits-field-reference} (@pxref{Customizing Calc}). A
28168non-default reference quantity will be read from the stack if the
28169capital @kbd{O} prefix is used.
28170 28138
28171The decibel level of a power 28139The decibel level of a power
28172@infoline @math{P1}, 28140@infoline @math{P1},
@@ -28214,6 +28182,20 @@ relative to a reference
28214is defined as 28182is defined as
28215@infoline @math{20 log10(F1/F0) dB}. 28183@infoline @math{20 log10(F1/F0) dB}.
28216@texline @math{20 \log_{10}(F_{1}/F_{0}) {\rm dB}}. 28184@texline @math{20 \log_{10}(F_{1}/F_{0}) {\rm dB}}.
28185For example, the decibel value of a sound pressure level of
28186@infoline @math{60 uPa}
28187@texline @math{60 \mu{\rm Pa}}
28188relative to
28189@infoline @math{20 uPa}
28190@texline @math{20 \mu{\rm Pa}}
28191(the threshhold of human hearing) is
28192@infoline @math{20 log10(60 uPa/ 20 uPa) dB = 20 log10(3) dB},
28193@texline @math{20 \log_{10}(60 \mu{\rm Pa}/20 \mu{\rm Pa}) {\rm dB} = 20 \log_{10}(3) {\rm dB}},
28194which is about
28195@infoline @math{9.54 dB}.
28196@texline @math{9.54 {\rm dB}}.
28197Note that in taking the ratio, the original units cancel and so these
28198logarithmic units are dimensionless.
28217 28199
28218Nepers (named after John Napier, who is credited with inventing the 28200Nepers (named after John Napier, who is credited with inventing the
28219logarithm) are similar to bels except they use natural logarithms instead 28201logarithm) are similar to bels except they use natural logarithms instead
@@ -28236,55 +28218,72 @@ is
28236@infoline @math{ln(F1/F0) Np}. 28218@infoline @math{ln(F1/F0) Np}.
28237@texline @math{\ln(F_1/F_0) {\rm Np}}. 28219@texline @math{\ln(F_1/F_0) {\rm Np}}.
28238 28220
28221@vindex calc-lu-power-reference
28222@vindex calc-lu-field-reference
28223For power quantities, Calc uses
28224@infoline @math{1 mW}
28225@texline @math{1 {\rm mW}}
28226as the default reference quantity; this default can be changed by changing
28227the value of the customizable variable
28228@code{calc-lu-power-reference} (@pxref{Customizing Calc}).
28229For field quantities, Calc uses
28230@infoline @math{20 uPa}
28231@texline @math{20 \mu{\rm Pa}}
28232as the default reference quantity; this is the value used in acoustics
28233which is where decibels are commonly encountered. This default can be
28234changed by changing the value of the customizable variable
28235@code{calc-lu-field-reference} (@pxref{Customizing Calc}). A
28236non-default reference quantity will be read from the stack if the
28237capital @kbd{O} prefix is used.
28238
28239@kindex l q 28239@kindex l q
28240@pindex calc-logunits-quantity 28240@pindex calc-lu-quant
28241@tindex powerquant 28241@tindex lupquant
28242@tindex fieldquant 28242@tindex lufquant
28243The @kbd{l q} (@code{calc-logunits-quantity}) [@code{powerquant}] 28243The @kbd{l q} (@code{calc-lu-quant}) [@code{lupquant}]
28244command computes the power quantity corresponding to a given number of 28244command computes the power quantity corresponding to a given number of
28245logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the 28245logarithmic units. With the capital @kbd{O} prefix, @kbd{O l q}, the
28246reference level will be read from the top of the stack. (In an 28246reference level will be read from the top of the stack. (In an
28247algebraic formula, @code{powerquant} can be given an optional second 28247algebraic formula, @code{lupquant} can be given an optional second
28248argument which will be used for the reference level.) For example, 28248argument which will be used for the reference level.) For example,
28249@code{20 dB @key{RET} l q} will return @code{100 mW}; 28249@code{20 dB @key{RET} l q} will return @code{100 mW};
28250@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}. 28250@code{20 dB @key{RET} 4 W @key{RET} O l q} will return @code{400 W}.
28251The @kbd{H l q} [@code{fieldquant}] command behaves like @kbd{l q} but 28251The @kbd{H l q} [@code{lufquant}] command behaves like @kbd{l q} but
28252computes field quantities instead of power quantities. 28252computes field quantities instead of power quantities.
28253 28253
28254@kindex l d 28254@kindex l d
28255@pindex calc-dblevel 28255@pindex calc-db
28256@tindex dbpowerlevel 28256@tindex dbpower
28257@tindex dbfieldlevel 28257@tindex dbfield
28258@kindex l n 28258@kindex l n
28259@pindex calc-nplevel 28259@pindex calc-np
28260@tindex nppowerlevel 28260@tindex nppower
28261@tindex npfieldlevel 28261@tindex npfield
28262The @kbd{l d} (@code{calc-dblevel}) [@code{dbpowerlevel}] 28262The @kbd{l d} (@code{calc-db}) [@code{dbpower}] command will compute
28263command will compute the decibel level of a power quantity using the 28263the decibel level of a power quantity using the default reference
28264default reference level; @kbd{H l d} [@code{dbfieldlevel}] will 28264level; @kbd{H l d} [@code{dbfield}] will compute the decibel level of
28265compute the decibel level of a field quantity. The commands @kbd{l n} 28265a field quantity. The commands @kbd{l n} (@code{calc-np})
28266(@code{calc-nplevel}) [@code{nppowerlevel}] and @kbd{H l n} 28266[@code{nppower}] and @kbd{H l n} [@code{npfield}] will similarly
28267[@code{npfieldlevel}] will similarly compute neper levels. With the 28267compute neper levels. With the capital @kbd{O} prefix these commands
28268capital @kbd{O} prefix these commands will read a reference level 28268will read a reference level from the stack; in an algebraic formula
28269from the stack; in an algebraic formula the reference level can be 28269the reference level can be given as an optional second argument.
28270given as an optional second argument.
28271 28270
28272@kindex l + 28271@kindex l +
28273@pindex calc-logunits-add 28272@pindex calc-lu-plus
28274@tindex lupoweradd 28273@tindex lupadd
28275@tindex lufieldadd 28274@tindex lufadd
28276@kindex l - 28275@kindex l -
28277@pindex calc-logunits-sub 28276@pindex calc-lu-minus
28278@tindex lupowersub 28277@tindex lupsub
28279@tindex lufieldsub 28278@tindex lufsub
28280@kindex l * 28279@kindex l *
28281@pindex calc-logunits-mul 28280@pindex calc-lu-times
28282@tindex lupowermul 28281@tindex lupmul
28283@tindex lufieldmul 28282@tindex lufmul
28284@kindex l / 28283@kindex l /
28285@pindex calc-logunits-div 28284@pindex calc-lu-divide
28286@tindex lupowerdiv 28285@tindex lupdiv
28287@tindex lufielddiv 28286@tindex lufdiv
28288The sum of two power or field quantities doesn't correspond to the sum 28287The sum of two power or field quantities doesn't correspond to the sum
28289of the corresponding decibel or neper levels. If the powers 28288of the corresponding decibel or neper levels. If the powers
28290corresponding to decibel levels 28289corresponding to decibel levels
@@ -28305,13 +28304,13 @@ $$ 10 \log_{10}(10^{D_1/10} + 10^{D_2/10}) {\rm dB}.$$
28305@end tex 28304@end tex
28306 28305
28307@noindent 28306@noindent
28308When field quantities are combined, it often means the 28307When field quantities are combined, it often means the corresponding
28309corresponding powers are added and so the above formula might be used. 28308powers are added and so the above formula might be used. In
28310In acoustics, for example, the decibel sound pressure level is defined 28309acoustics, for example, the sound pressure level is a field quantity
28311using the field formula but the sound pressure levels are combined 28310and so the decibels are often defined using the field formula, but the
28312as the sound power levels, and so the above formula should be used. If 28311sound pressure levels are combined as the sound power levels, and so
28313two field quantities themselves are added, the new decibel level will be 28312the above formula should be used. If two field quantities themselves
28314 28313are added, the new decibel level will be
28315 28314
28316@ifnottex 28315@ifnottex
28317@example 28316@example
@@ -28349,20 +28348,18 @@ $$ D + 20 \log_{10}(N) {\rm dB}.$$
28349@end tex 28348@end tex
28350 28349
28351@noindent 28350@noindent
28352There are similar formulas for combining nepers. 28351There are similar formulas for combining nepers. The @kbd{l +}
28353The @kbd{l +} (@code{calc-logunits-add}) [@code{lupoweradd}] command 28352(@code{calc-lu-plus}) [@code{lupadd}] command will ``add'' two
28354will ``add'' two logarithmic unit power levels this way; with the 28353logarithmic unit power levels this way; with the @kbd{H} prefix,
28355@kbd{H} prefix, @kbd{H l +} [@code{lufieldadd}] will add logarithmic 28354@kbd{H l +} [@code{lufadd}] will add logarithmic unit field levels.
28356unit field levels. Similarly, logarithmic units can be 28355Similarly, logarithmic units can be ``subtracted'' with @kbd{l -}
28357``subtracted'' with @kbd{l -} (@code{calc-logunits-sub}) 28356(@code{calc-lu-minus}) [@code{lupsub}] or @kbd{H l -} [@code{lufsub}].
28358[@code{lupowersub}] or @kbd{H l -} [@code{lufieldsub}]. 28357The @kbd{l *} (@code{calc-lu-times}) [@code{lupmul}] and @kbd{H l *}
28359The @kbd{l *} (@code{calc-logunits-mul}) [@code{lupowermul}] 28358[@code{lufmul}] commands will ``multiply'' a logarithmic unit by a
28360and @kbd{H l *} [@code{lufieldmul}] commands will ``multiply'' 28359number; the @kbd{l /} (@code{calc-lu-divide}) [@code{lupdiv}] and
28361a logarithmic unit by a number; the @kbd{l /} 28360@kbd{H l /} [@code{lufdiv}] commands will ``divide'' a logarithmic
28362(@code{calc-logunits-divide}) [@code{lupowerdiv}] and 28361unit by a number. Note that the reference quantities don't play a role
28363@kbd{H l /} [@code{lufielddiv}] commands will ``divide'' a 28362in this arithmetic.
28364logarithmic unit by a number. Note that the reference quantities don't
28365play a role in this arithmetic.
28366 28363
28367@node Musical Notes, , Logarithmic Units, Units 28364@node Musical Notes, , Logarithmic Units, Units
28368@section Musical Notes 28365@section Musical Notes
@@ -35539,16 +35536,16 @@ should also be added to @code{calc-embedded-announce-formula-alist}
35539and @code{calc-embedded-open-close-plain-alist}. 35536and @code{calc-embedded-open-close-plain-alist}.
35540@end defvar 35537@end defvar
35541 35538
35542@defvar calc-logunits-power-reference 35539@defvar calc-lu-power-reference
35543@defvarx calc-logunits-field-reference 35540@defvarx calc-lu-field-reference
35544See @ref{Logarithmic Units}.@* 35541See @ref{Logarithmic Units}.@*
35545The variables @code{calc-logunits-power-reference} and 35542The variables @code{calc-lu-power-reference} and
35546@code{calc-logunits-field-reference} are unit expressions (written as 35543@code{calc-lu-field-reference} are unit expressions (written as
35547strings) which Calc will use as reference quantities for logarithmic 35544strings) which Calc will use as reference quantities for logarithmic
35548units. 35545units.
35549 35546
35550The default value of @code{calc-logunits-power-reference} is @code{"mW"} 35547The default value of @code{calc-lu-power-reference} is @code{"mW"}
35551and the default value of @code{calc-logunits-field-reference} is 35548and the default value of @code{calc-lu-field-reference} is
35552@code{"20 uPa"}. 35549@code{"20 uPa"}.
35553@end defvar 35550@end defvar
35554 35551
@@ -36209,26 +36206,26 @@ keystrokes are not listed in this summary.
36209@r{ v x@: I k T @: @: @:ltpt@:(x,v)} 36206@r{ v x@: I k T @: @: @:ltpt@:(x,v)}
36210 36207
36211@c 36208@c
36212@r{ a b@: l + @: @: @:lupoweradd@:(a,b)} 36209@r{ a b@: l + @: @: @:lupadd@:(a,b)}
36213@r{ a b@: H l + @: @: @:lufieldadd@:(a,b)} 36210@r{ a b@: H l + @: @: @:lufadd@:(a,b)}
36214@r{ a b@: l - @: @: @:lupowersub@:(a,b)} 36211@r{ a b@: l - @: @: @:lupsub@:(a,b)}
36215@r{ a b@: H l - @: @: @:lufieldsub@:(a,b)} 36212@r{ a b@: H l - @: @: @:lufsub@:(a,b)}
36216@r{ a b@: l * @: @: @:lupowermul@:(a,b)} 36213@r{ a b@: l * @: @: @:lupmul@:(a,b)}
36217@r{ a b@: H l * @: @: @:lufieldmul@:(a,b)} 36214@r{ a b@: H l * @: @: @:lufmul@:(a,b)}
36218@r{ a b@: l / @: @: @:lupowerdiv@:(a,b)} 36215@r{ a b@: l / @: @: @:lupdiv@:(a,b)}
36219@r{ a b@: H l / @: @: @:lufielddiv@:(a,b)} 36216@r{ a b@: H l / @: @: @:lufdiv@:(a,b)}
36220@r{ a@: l d @: @: @:dbpowerlevel@:(a)} 36217@r{ a@: l d @: @: @:dbpower@:(a)}
36221@r{ a b@: O l d @: @: @:dbpowerlevel@:(a,b)} 36218@r{ a b@: O l d @: @: @:dbpower@:(a,b)}
36222@r{ a@: H l d @: @: @:dbfieldlevel@:(a)} 36219@r{ a@: H l d @: @: @:dbfield@:(a)}
36223@r{ a b@: O H l d @: @: @:dbfieldlevel@:(a,b)} 36220@r{ a b@: O H l d @: @: @:dbfield@:(a,b)}
36224@r{ a@: l n @: @: @:nppowerlevel@:(a)} 36221@r{ a@: l n @: @: @:nppower@:(a)}
36225@r{ a b@: O l n @: @: @:nppowerlevel@:(a,b)} 36222@r{ a b@: O l n @: @: @:nppower@:(a,b)}
36226@r{ a@: H l n @: @: @:npfieldlevel@:(a)} 36223@r{ a@: H l n @: @: @:npfield@:(a)}
36227@r{ a b@: O H l n @: @: @:npfieldlevel@:(a,b)} 36224@r{ a b@: O H l n @: @: @:npfield@:(a,b)}
36228@r{ a@: l q @: @: @:powerquant@:(a)} 36225@r{ a@: l q @: @: @:lupquant@:(a)}
36229@r{ a b@: O l q @: @: @:powerquant@:(a,b)} 36226@r{ a b@: O l q @: @: @:lupquant@:(a,b)}
36230@r{ a@: H l q @: @: @:fieldquant@:(a)} 36227@r{ a@: H l q @: @: @:lufquant@:(a)}
36231@r{ a b@: O H l q @: @: @:fieldquant@:(a,b)} 36228@r{ a b@: O H l q @: @: @:lufquant@:(a,b)}
36232@r{ a@: l s @: @: @:spn@:(a)} 36229@r{ a@: l s @: @: @:spn@:(a)}
36233@r{ a@: l m @: @: @:midi@:(a)} 36230@r{ a@: l m @: @: @:midi@:(a)}
36234@r{ a@: l f @: @: @:freq@:(a)} 36231@r{ a@: l f @: @: @:freq@:(a)}
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 2937037ebb3..7d61ffd9efa 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -1930,6 +1930,25 @@ posting a prepared news message.
1930@section Insertion Variables 1930@section Insertion Variables
1931 1931
1932@table @code 1932@table @code
1933@item message-cite-style
1934@vindex message-cite-style
1935The overall style to be used when replying to messages. This controls
1936things like where the reply should be put relative to the original,
1937how the citation is formatted, where the signature goes, etc.
1938
1939Value is either @code{nil} (no variable overrides) or a let-style list
1940of pairs @code{(VARIABLE VALUE)} to override default values.
1941
1942See @code{gnus-posting-styles} to set this variable for specific
1943groups. Presets to impersonate popular mail agents are available in the
1944@code{message-cite-style-*} variables.
1945
1946@item message-cite-reply-position
1947@vindex message-cite-reply-position
1948Where the reply should be positioned. Available styles are
1949@code{traditional} to reply inline, @code{above} for top-posting, and
1950@code{below} for bottom-posting
1951
1933@item message-ignored-cited-headers 1952@item message-ignored-cited-headers
1934@vindex message-ignored-cited-headers 1953@vindex message-ignored-cited-headers
1935All headers that match this regexp will be removed from yanked 1954All headers that match this regexp will be removed from yanked
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index bdbba437af7..e1c4a806de2 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -2540,7 +2540,28 @@ Another trick might be that you put @code{ForwardX11 yes} or
2540that host. 2540that host.
2541 2541
2542 2542
2543@subsection Running shell-command on a remote host 2543@subsection Running @code{shell} on a remote host
2544@cindex shell
2545
2546Calling @code{M-x shell} in a buffer related to a remote host runs the
2547local shell as defined in @option{shell-file-name}. This might be
2548also a valid path name for a shell to be applied on the remote host,
2549but it will fail at least when your local and remote hosts belong to
2550different system types, like @samp{windows-nt} and @samp{gnu/linux}.
2551
2552You must set the variable @option{explicit-shell-file-name} to the
2553shell path name on the remote host, in order to start that shell on
2554the remote host.
2555
2556@ifset emacs
2557Starting with Emacs 24 this won't be necessary, if you call
2558@code{shell} interactively. You will be asked for the remote shell
2559path, if you are on a remote buffer, and if
2560@option{explicit-shell-file-name} is equal to @code{nil}.
2561@end ifset
2562
2563
2564@subsection Running @code{shell-command} on a remote host
2544@cindex shell-command 2565@cindex shell-command
2545 2566
2546@code{shell-command} allows to execute commands in a shell, either 2567@code{shell-command} allows to execute commands in a shell, either
@@ -2556,13 +2577,13 @@ You will see the buffer @file{*Async Shell Command*}, containing the
2556continuous output of the @command{tail} command. 2577continuous output of the @command{tail} command.
2557 2578
2558 2579
2559@subsection Running eshell on a remote host 2580@subsection Running @code{eshell} on a remote host
2560@cindex eshell 2581@cindex eshell
2561 2582
2562@value{tramp} is integrated into @file{eshell.el}. That is, you can 2583@value{tramp} is integrated into @file{eshell.el}. That is, you can
2563open an interactive shell on your remote host, and run commands there. 2584open an interactive shell on your remote host, and run commands there.
2564After you have started @code{eshell}, you could perform commands like 2585After you have started @code{M-x eshell}, you could perform commands
2565this: 2586like this:
2566 2587
2567@example 2588@example
2568@b{~ $} cd @trampfn{sudo, , , /etc} @key{RET} 2589@b{~ $} cd @trampfn{sudo, , , /etc} @key{RET}
diff --git a/etc/ChangeLog b/etc/ChangeLog
index 862ce24d29a..cbe46d3a53e 100644
--- a/etc/ChangeLog
+++ b/etc/ChangeLog
@@ -1,3 +1,13 @@
12011-03-16 Juanma Barranquero <lekktu@gmail.com>
2
3 * NEWS: Document warning about _emacs.
4
52011-03-14 Michael Albinus <michael.albinus@gmx.de>
6
7 * NEWS: `shell' prompts for the shell path name, when the default
8 directory is a remote file name and neither environment variable
9 $ESHELL nor variable `explicit-shell-file-name' is set.
10
12011-03-08 Kristoffer Grönlund <krig@koru.se> 112011-03-08 Kristoffer Grönlund <krig@koru.se>
2 12
3 * themes/wombat-theme.el: New file. 13 * themes/wombat-theme.el: New file.
diff --git a/etc/NEWS b/etc/NEWS
index 330a3b6ee51..bb59e0e2a24 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -62,6 +62,8 @@ longer have any effect. (They were declared obsolete in Emacs 23.)
62** New command line option `--no-site-lisp' removes site-lisp directories 62** New command line option `--no-site-lisp' removes site-lisp directories
63from load-path. -Q now implies this. 63from load-path. -Q now implies this.
64 64
65** On Windows, Emacs now warns when the obsolete _emacs init file is used.
66
65 67
66* Changes in Emacs 24.1 68* Changes in Emacs 24.1
67 69
@@ -335,6 +337,10 @@ between applications.
335the lines in the current rectangle. With an prefix argument, this 337the lines in the current rectangle. With an prefix argument, this
336prompts for a number to count from and for a format string. 338prompts for a number to count from and for a format string.
337 339
340** The command shell prompts for the shell path name, when the default
341directory is a remote file name and neither environment variable
342$ESHELL nor variable `explicit-shell-file-name' is set.
343
338 344
339* Changes in Specialized Modes and Packages in Emacs 24.1 345* Changes in Specialized Modes and Packages in Emacs 24.1
340 346
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c74e7cbdb2d..5164207a5ce 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,119 @@
12011-03-17 Juanma Barranquero <lekktu@gmail.com>
2
3 * custom.el (custom-known-themes): Reflow docstring.
4 (custom-theme-load-path): Fix typo in docstring.
5 (load-theme): Fix typo in error message.
6 (custom-available-themes, custom-variable-theme-value):
7 Use `let', not `let*'.
8
92011-03-17 Jay Belanger <jay.p.belanger@gmail.com>
10
11 * calc/README: Mention inclusion of musical notes.
12
13 * calc/calc-units.el (calc-lu-quant): Rename from
14 `calc-logunits-quantity'.
15 (calcFunc-lupquant): Rename from `calcFunc-powerquant'.
16 (calcFunc-lufquant): Rename from `calcFunc-fieldquant'.
17 (calc-db): Rename from `calc-dblevel'.
18 (calcFunc-dbpower): Rename from `calcFunc-dbpowerlevel'.
19 (calcFunc-dbfield): Rename from `calcFunc-dbfieldlevel'.
20 (calc-np): Rename from `calc-nplevel'.
21 (calcFunc-nppower): Rename from `calcFunc-nppowerlevel'.
22 (calcFunc-npfield): Rename from `calcFunc-npfieldlevel'.
23 (calc-lu-plus): Rename from `calc-logunits-add'.
24 (calcFunc-lupadd): Rename from `calcFunc-lupoweradd'.
25 (calcFunc-lufadd): Rename from `calcFunc-lufieldadd'.
26 (calc-lu-minus): Rename from `calc-logunits-sub'.
27 (calcFunc-lupsub): Rename from `calcFunc-lupowersub'.
28 (calcFunc-lufsub): Rename from `calcFunc-lufieldsub'.
29 (calc-lu-times): Rename from `calc-logunits-mul'.
30 (calcFunc-lupmul): Rename from `calcFunc-lupowermul'.
31 (calcFunc-lufmul): Rename from `calcFunc-lufieldmul'.
32 (calc-lu-divide): Rename from `calc-logunits-div'.
33 (calcFunc-lupdiv): Rename from `calcFunc-lupowerdiv'.
34 (calcFunc-lufdiv): Rename from `calcFunc-lufielddiv'.
35
36 * calc/calc-ext.el (calc-init-extensions): Update the names of the
37 functions being autoloaded.
38
39 * calc/calc.el (calc-lu-power-reference): Rename from
40 `calc-logunits-power-reference'.
41 (calc-lu-field-reference): Rename from
42 `calc-logunits-field-reference'.
43
44 * calc/calc-help (calc-l-prefix-help): Mention musical note functions.
45
462011-03-17 Stefan Monnier <monnier@iro.umontreal.ca>
47
48 * minibuffer.el (completion-all-sorted-completions):
49 Use :completion-cycle-penalty text property if present.
50
512011-03-16 Ken Manheimer <ken.manheimer@gmail.com>
52
53 * allout.el (allout-yank-processing): Adjust for new rebulleting
54 regime so bullet being yanked is used without prompting the user
55 for a choice.
56
572011-03-16 Juanma Barranquero <lekktu@gmail.com>
58
59 * startup.el (command-line): Warn the user that _emacs is deprecated.
60
612011-03-16 Juanma Barranquero <lekktu@gmail.com>
62
63 * progmodes/delphi.el (delphi-search-path, delphi-indent-level)
64 (delphi-verbose, delphi-comment-face, delphi-string-face)
65 (delphi-keyword-face, delphi-ignore-changes, delphi-indent-line)
66 (delphi-mode-abbrev-table, delphi-debug-buffer, delphi-tab)
67 (delphi-find-unit, delphi-find-current-xdef, delphi-fill-comment)
68 (delphi-new-comment-line, delphi-font-lock-defaults)
69 (delphi-debug-mode-map, delphi-mode-syntax-table, delphi-mode):
70 Fix typos in docstrings.
71
722011-03-15 Ken Manheimer <ken.manheimer@gmail.com>
73
74 * allout.el (allout-make-topic-prefix, allout-rebullet-heading):
75 Invert the roles of character and string values for INSTEAD, so a
76 string is used for the more common case of a defaulting prompt.
77
782011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
79
80 * progmodes/ruby-mode.el (ruby-backward-sexp):
81 * progmodes/ebrowse.el (ebrowse-draw-file-member-info):
82 * play/gamegrid.el (gamegrid-make-face):
83 * play/bubbles.el (bubbles--grid-width, bubbles--grid-height)
84 (bubbles--colors, bubbles--shift-mode, bubbles--initialize-images):
85 * notifications.el (notifications-notify):
86 * net/xesam.el (xesam-search-engines):
87 * net/quickurl.el (quickurl-list-insert):
88 * vc/vc-hg.el (vc-hg-dir-printer): Fix use of case.
89
902011-03-15 Chong Yidong <cyd@stupidchicken.com>
91
92 * startup.el (command-line): Update package subdirectory regexp.
93
942011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
95
96 * allout.el (allout-abbreviate-flattened-numbering)
97 (allout-mode-deactivate-hook): Fix up obsolescence "date".
98
99 * subr.el (read-char-choice): Only show the cursor after the prompt,
100 not after the answer.
101
1022011-03-15 Kevin Ryde <user42@zip.com.au>
103
104 * help-fns.el (variable-at-point): Skip leading quotes, if any
105 (bug#8253).
106
1072011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
108
109 * emacs-lisp/bytecomp.el (byte-compile-save-excursion): Change the
110 warning message.
111
1122011-03-14 Michael Albinus <michael.albinus@gmx.de>
113
114 * shell.el (shell): When called interactively, offer to change the
115 shell file name on remote hosts.
116
12011-03-13 Teodor Zlatanov <tzz@lifelogs.com> 1172011-03-13 Teodor Zlatanov <tzz@lifelogs.com>
2 118
3 * net/ldap.el (ldap-search-internal): Add `auth-source-search' 119 * net/ldap.el (ldap-search-internal): Add `auth-source-search'
diff --git a/lisp/allout.el b/lisp/allout.el
index 91eaa28fdaf..3fb8ed7ccd5 100644
--- a/lisp/allout.el
+++ b/lisp/allout.el
@@ -310,6 +310,7 @@ Auto-layout is not.
310 310
311With value nil, inhibit any automatic allout-mode activation." 311With value nil, inhibit any automatic allout-mode activation."
312 :set 'allout-auto-activation-helper 312 :set 'allout-auto-activation-helper
313 ;; FIXME: Using strings here is unusual and less efficient than symbols.
313 :type '(choice (const :tag "On" t) 314 :type '(choice (const :tag "On" t)
314 (const :tag "Ask about layout" "ask") 315 (const :tag "Ask about layout" "ask")
315 (const :tag "Mode only" "activate") 316 (const :tag "Mode only" "activate")
@@ -752,7 +753,7 @@ Set this var to the bullet you want to use for file cross-references."
752 753
753;;;_ = allout-flattened-numbering-abbreviation 754;;;_ = allout-flattened-numbering-abbreviation
754(define-obsolete-variable-alias 'allout-abbreviate-flattened-numbering 755(define-obsolete-variable-alias 'allout-abbreviate-flattened-numbering
755 'allout-flattened-numbering-abbreviation "24.0") 756 'allout-flattened-numbering-abbreviation "24.1")
756(defcustom allout-flattened-numbering-abbreviation nil 757(defcustom allout-flattened-numbering-abbreviation nil
757 "If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic 758 "If non-nil, `allout-flatten-exposed-to-buffer' abbreviates topic
758numbers to minimal amount with some context. Otherwise, entire 759numbers to minimal amount with some context. Otherwise, entire
@@ -1402,7 +1403,7 @@ their settings before allout-mode was started."
1402(defvar allout-mode-deactivate-hook nil 1403(defvar allout-mode-deactivate-hook nil
1403 "*Hook that's run when allout mode ends.") 1404 "*Hook that's run when allout mode ends.")
1404(define-obsolete-variable-alias 'allout-mode-deactivate-hook 1405(define-obsolete-variable-alias 'allout-mode-deactivate-hook
1405 'allout-mode-off-hook "future") 1406 'allout-mode-off-hook "24.1")
1406;;;_ = allout-exposure-category 1407;;;_ = allout-exposure-category
1407(defvar allout-exposure-category nil 1408(defvar allout-exposure-category nil
1408 "Symbol for use as allout invisible-text overlay category.") 1409 "Symbol for use as allout invisible-text overlay category.")
@@ -3495,8 +3496,8 @@ the current topics' depth.
3495If INSTEAD is: 3496If INSTEAD is:
3496 3497
3497- nil, then the bullet char for the context is used, per distinction or depth 3498- nil, then the bullet char for the context is used, per distinction or depth
3498- a string, then the first character of the string will be used 3499- a \(numeric) character, then character's string representation is used
3499- a character, then the user is solicited for bullet, with that char as default 3500- a string, then the user is asked for bullet with the first char as default
3500- anything else, the user is solicited with bullet char per context as default 3501- anything else, the user is solicited with bullet char per context as default
3501 3502
3502\(INSTEAD overrides other options, including, eg, a distinctive 3503\(INSTEAD overrides other options, including, eg, a distinctive
@@ -3553,10 +3554,12 @@ index for each successive sibling)."
3553 ((progn (setq body (make-string (- depth 2) ?\ )) 3554 ((progn (setq body (make-string (- depth 2) ?\ ))
3554 ;; The actual condition: 3555 ;; The actual condition:
3555 instead) 3556 instead)
3556 (let* ((got 3557 (let ((got (cond ((stringp instead)
3557 (if (and (stringp instead)(> (length instead) 0)) 3558 (if (> (length instead) 0)
3558 (substring instead 0 1) 3559 (allout-solicit-alternate-bullet
3559 (allout-solicit-alternate-bullet depth instead)))) 3560 depth (substring instead 0 1))))
3561 ((characterp instead) (char-to-string instead))
3562 (t (allout-solicit-alternate-bullet depth)))))
3560 ;; Gotta check whether we're numbering and got a numbered bullet: 3563 ;; Gotta check whether we're numbering and got a numbered bullet:
3561 (setq numbering (and allout-numbered-bullet 3564 (setq numbering (and allout-numbered-bullet
3562 (not (and number-control (not index))) 3565 (not (and number-control (not index)))
@@ -3950,8 +3953,8 @@ All args are optional.
3950 3953
3951If INSTEAD is: 3954If INSTEAD is:
3952- nil, then the bullet char for the context is used, per distinction or depth 3955- nil, then the bullet char for the context is used, per distinction or depth
3953- a string, then the first character of the string will be used 3956- a \(numeric) character, then character's string representation is used
3954- a character, then the user is solicited for bullet, with that char as default 3957- a string, then the user is asked for bullet with the first char as default
3955- anything else, the user is solicited with bullet char per context as default 3958- anything else, the user is solicited with bullet char per context as default
3956 3959
3957Second arg DEPTH forces the topic prefix to that depth, regardless 3960Second arg DEPTH forces the topic prefix to that depth, regardless
@@ -4596,7 +4599,7 @@ however, are left exactly like normal, non-allout-specific yanks."
4596 (if (looking-at " ") 4599 (if (looking-at " ")
4597 (delete-char 1)))) 4600 (delete-char 1))))
4598 ;; Assert new topic's bullet - minimal effort if unchanged: 4601 ;; Assert new topic's bullet - minimal effort if unchanged:
4599 (allout-rebullet-heading prefix-bullet)) 4602 (allout-rebullet-heading (string-to-char prefix-bullet)))
4600 (exchange-point-and-mark)))) 4603 (exchange-point-and-mark))))
4601 (if rectify-numbering 4604 (if rectify-numbering
4602 (progn 4605 (progn
diff --git a/lisp/calc/README b/lisp/calc/README
index 533b80baeb0..308b5115aa2 100644
--- a/lisp/calc/README
+++ b/lisp/calc/README
@@ -72,6 +72,8 @@ Summary of changes to "Calc"
72 72
73Emacs 24.1 73Emacs 24.1
74 74
75* Support for musical notes added.
76
75* Support for logarithmic units added. 77* Support for logarithmic units added.
76 78
77* Calc no longer uses the tex prefix for TeX specific unit 79* Calc no longer uses the tex prefix for TeX specific unit
diff --git a/lisp/calc/calc-ext.el b/lisp/calc/calc-ext.el
index 11a26d6d125..9ea773fbb98 100644
--- a/lisp/calc/calc-ext.el
+++ b/lisp/calc/calc-ext.el
@@ -422,13 +422,13 @@
422 (define-key calc-mode-map "kT" 'calc-utpt) 422 (define-key calc-mode-map "kT" 'calc-utpt)
423 423
424 (define-key calc-mode-map "l" nil) 424 (define-key calc-mode-map "l" nil)
425 (define-key calc-mode-map "lq" 'calc-logunits-quantity) 425 (define-key calc-mode-map "lq" 'calc-lu-quant)
426 (define-key calc-mode-map "ld" 'calc-dblevel) 426 (define-key calc-mode-map "ld" 'calc-db)
427 (define-key calc-mode-map "ln" 'calc-nplevel) 427 (define-key calc-mode-map "ln" 'calc-np)
428 (define-key calc-mode-map "l+" 'calc-logunits-add) 428 (define-key calc-mode-map "l+" 'calc-lu-plus)
429 (define-key calc-mode-map "l-" 'calc-logunits-sub) 429 (define-key calc-mode-map "l-" 'calc-lu-minus)
430 (define-key calc-mode-map "l*" 'calc-logunits-mul) 430 (define-key calc-mode-map "l*" 'calc-lu-times)
431 (define-key calc-mode-map "l/" 'calc-logunits-divide) 431 (define-key calc-mode-map "l/" 'calc-lu-divide)
432 (define-key calc-mode-map "ls" 'calc-spn) 432 (define-key calc-mode-map "ls" 'calc-spn)
433 (define-key calc-mode-map "lm" 'calc-midi) 433 (define-key calc-mode-map "lm" 'calc-midi)
434 (define-key calc-mode-map "lf" 'calc-freq) 434 (define-key calc-mode-map "lf" 'calc-freq)
@@ -943,12 +943,11 @@ calc-store-value calc-var-name)
943 ("calc-stuff" calc-explain-why calcFunc-clean 943 ("calc-stuff" calc-explain-why calcFunc-clean
944calcFunc-pclean calcFunc-pfloat calcFunc-pfrac) 944calcFunc-pclean calcFunc-pfloat calcFunc-pfrac)
945 945
946 ("calc-units" calcFunc-usimplify calcFunc-lufieldadd 946 ("calc-units" calcFunc-usimplify calcFunc-lufadd calcFunc-lupadd
947calcFunc-lupoweradd calcFunc-lufieldsub calcFunc-lupowersub 947calcFunc-lufsub calcFunc-lupsub calcFunc-lufmul calcFunc-lupmul
948calcFunc-lufieldmul calcFunc-lupowermul calcFunc-lufielddiv 948calcFunc-lufdiv calcFunc-lupdiv calcFunc-lufquant calcFunc-lupquant
949calcFunc-lupowerdiv calcFunc-fieldquant calcFunc-powerquant 949calcFunc-dbfield calcFunc-dbpower calcFunc-npfield
950calcFunc-dbfieldlevel calcFunc-dbpowerlevel calcFunc-npfieldlevel 950calcFunc-nppower calcFunc-spn calcFunc-midi calcFunc-freq
951calcFunc-nppowerlevel calcFunc-spn calcFunc-midi calcFunc-freq
952math-build-units-table math-build-units-table-buffer 951math-build-units-table math-build-units-table-buffer
953math-check-unit-name math-convert-temperature math-convert-units 952math-check-unit-name math-convert-temperature math-convert-units
954math-extract-units math-remove-units math-simplify-units 953math-extract-units math-remove-units math-simplify-units
@@ -1180,9 +1179,9 @@ calc-convert-temperature calc-convert-units calc-define-unit
1180calc-enter-units-table calc-explain-units calc-extract-units 1179calc-enter-units-table calc-explain-units calc-extract-units
1181calc-get-unit-definition calc-permanent-units calc-quick-units 1180calc-get-unit-definition calc-permanent-units calc-quick-units
1182calc-remove-units calc-simplify-units calc-undefine-unit 1181calc-remove-units calc-simplify-units calc-undefine-unit
1183calc-view-units-table calc-logunits-quantity calc-dblevel 1182calc-view-units-table calc-lu-quant calc-db
1184calc-nplevel calc-logunits-add calc-logunits-sub 1183calc-np calc-lu-plus calc-lu-minus
1185calc-logunits-mul calc-logunits-divide calc-spn calc-midi 1184calc-lu-times calc-lu-divide calc-spn calc-midi
1186calc-freq) 1185calc-freq)
1187 1186
1188 ("calc-vec" calc-arrange-vector calc-build-vector calc-cnorm 1187 ("calc-vec" calc-arrange-vector calc-build-vector calc-cnorm
diff --git a/lisp/calc/calc-help.el b/lisp/calc/calc-help.el
index d688b31b3cb..427cf6ba233 100644
--- a/lisp/calc/calc-help.el
+++ b/lisp/calc/calc-help.el
@@ -673,7 +673,9 @@ C-w Describe how there is no warranty for Calc."
673 (interactive) 673 (interactive)
674 (calc-do-prefix-help 674 (calc-do-prefix-help
675 '("Quantity, DB level, Np level" 675 '("Quantity, DB level, Np level"
676 "+, -, *, /") 676 "+, -, *, /"
677 "Scientific pitch notation, Midi number, Frequency"
678 )
677 "log units" ?l)) 679 "log units" ?l))
678 680
679(defun calc-v-prefix-help () 681(defun calc-v-prefix-help ()
diff --git a/lisp/calc/calc-units.el b/lisp/calc/calc-units.el
index 7f0adc9fe7e..43cb5828e85 100644
--- a/lisp/calc/calc-units.el
+++ b/lisp/calc/calc-units.el
@@ -1623,39 +1623,39 @@ In symbolic mode, return the list (^ a b)."
1623 coef))) 1623 coef)))
1624 units))))))) 1624 units)))))))
1625 1625
1626(defun calcFunc-lufieldplus (a b) 1626(defun calcFunc-lufadd (a b)
1627 (math-logunits-add a b nil nil)) 1627 (math-logunits-add a b nil nil))
1628 1628
1629(defun calcFunc-lupowerplus (a b) 1629(defun calcFunc-lupadd (a b)
1630 (math-logunits-add a b nil t)) 1630 (math-logunits-add a b nil t))
1631 1631
1632(defun calcFunc-lufieldminus (a b) 1632(defun calcFunc-lufsub (a b)
1633 (math-logunits-add a b t nil)) 1633 (math-logunits-add a b t nil))
1634 1634
1635(defun calcFunc-lupowerminus (a b) 1635(defun calcFunc-lupsub (a b)
1636 (math-logunits-add a b t t)) 1636 (math-logunits-add a b t t))
1637 1637
1638(defun calc-logunits-add (arg) 1638(defun calc-lu-plus (arg)
1639 (interactive "P") 1639 (interactive "P")
1640 (calc-slow-wrapper 1640 (calc-slow-wrapper
1641 (if (calc-is-inverse) 1641 (if (calc-is-inverse)
1642 (if (calc-is-hyperbolic) 1642 (if (calc-is-hyperbolic)
1643 (calc-binary-op "lu-" 'calcFunc-lufieldminus arg) 1643 (calc-binary-op "lu-" 'calcFunc-lufsub arg)
1644 (calc-binary-op "lu-" 'calcFunc-lupowerminus arg)) 1644 (calc-binary-op "lu-" 'calcFunc-lupsub arg))
1645 (if (calc-is-hyperbolic) 1645 (if (calc-is-hyperbolic)
1646 (calc-binary-op "lu+" 'calcFunc-lufieldplus arg) 1646 (calc-binary-op "lu+" 'calcFunc-lufadd arg)
1647 (calc-binary-op "lu+" 'calcFunc-lupowerplus arg))))) 1647 (calc-binary-op "lu+" 'calcFunc-lupadd arg)))))
1648 1648
1649(defun calc-logunits-sub (arg) 1649(defun calc-lu-minus (arg)
1650 (interactive "P") 1650 (interactive "P")
1651 (calc-slow-wrapper 1651 (calc-slow-wrapper
1652 (if (calc-is-inverse) 1652 (if (calc-is-inverse)
1653 (if (calc-is-hyperbolic) 1653 (if (calc-is-hyperbolic)
1654 (calc-binary-op "lu+" 'calcFunc-lufieldplus arg) 1654 (calc-binary-op "lu+" 'calcFunc-lufadd arg)
1655 (calc-binary-op "lu+" 'calcFunc-lupowerplus arg)) 1655 (calc-binary-op "lu+" 'calcFunc-lupadd arg))
1656 (if (calc-is-hyperbolic) 1656 (if (calc-is-hyperbolic)
1657 (calc-binary-op "lu-" 'calcFunc-lufieldminus arg) 1657 (calc-binary-op "lu-" 'calcFunc-lufsub arg)
1658 (calc-binary-op "lu-" 'calcFunc-lupowerminus arg))))) 1658 (calc-binary-op "lu-" 'calcFunc-lupsub arg)))))
1659 1659
1660(defun math-logunits-mul (a b power) 1660(defun math-logunits-mul (a b power)
1661 (let (logunit coef units number) 1661 (let (logunit coef units number)
@@ -1719,39 +1719,39 @@ In symbolic mode, return the list (^ a b)."
1719 (math-div (math-conditional-apply 'calcFunc-ln b) (if power 2 1))) 1719 (math-div (math-conditional-apply 'calcFunc-ln b) (if power 2 1)))
1720 units))))))))) 1720 units)))))))))
1721 1721
1722(defun calcFunc-lufieldtimes (a b) 1722(defun calcFunc-lufmul (a b)
1723 (math-logunits-mul a b nil)) 1723 (math-logunits-mul a b nil))
1724 1724
1725(defun calcFunc-lupowertimes (a b) 1725(defun calcFunc-lupmul (a b)
1726 (math-logunits-mul a b t)) 1726 (math-logunits-mul a b t))
1727 1727
1728(defun calc-logunits-mul (arg) 1728(defun calc-lu-times (arg)
1729 (interactive "P") 1729 (interactive "P")
1730 (calc-slow-wrapper 1730 (calc-slow-wrapper
1731 (if (calc-is-inverse) 1731 (if (calc-is-inverse)
1732 (if (calc-is-hyperbolic) 1732 (if (calc-is-hyperbolic)
1733 (calc-binary-op "lu/" 'calcFunc-lufielddiv arg) 1733 (calc-binary-op "lu/" 'calcFunc-lufdiv arg)
1734 (calc-binary-op "lu/" 'calcFunc-lupowerdiv arg)) 1734 (calc-binary-op "lu/" 'calcFunc-lupdiv arg))
1735 (if (calc-is-hyperbolic) 1735 (if (calc-is-hyperbolic)
1736 (calc-binary-op "lu*" 'calcFunc-lufieldtimes arg) 1736 (calc-binary-op "lu*" 'calcFunc-lufmul arg)
1737 (calc-binary-op "lu*" 'calcFunc-lupowertimes arg))))) 1737 (calc-binary-op "lu*" 'calcFunc-lupmul arg)))))
1738 1738
1739(defun calcFunc-lufielddiv (a b) 1739(defun calcFunc-lufdiv (a b)
1740 (math-logunits-divide a b nil)) 1740 (math-logunits-divide a b nil))
1741 1741
1742(defun calcFunc-lupowerdiv (a b) 1742(defun calcFunc-lupdiv (a b)
1743 (math-logunits-divide a b t)) 1743 (math-logunits-divide a b t))
1744 1744
1745(defun calc-logunits-divide (arg) 1745(defun calc-lu-divide (arg)
1746 (interactive "P") 1746 (interactive "P")
1747 (calc-slow-wrapper 1747 (calc-slow-wrapper
1748 (if (calc-is-inverse) 1748 (if (calc-is-inverse)
1749 (if (calc-is-hyperbolic) 1749 (if (calc-is-hyperbolic)
1750 (calc-binary-op "lu*" 'calcFunc-lufieldtimes arg) 1750 (calc-binary-op "lu*" 'calcFunc-lufmul arg)
1751 (calc-binary-op "lu*" 'calcFunc-lupowertimes arg)) 1751 (calc-binary-op "lu*" 'calcFunc-lupmul arg))
1752 (if (calc-is-hyperbolic) 1752 (if (calc-is-hyperbolic)
1753 (calc-binary-op "lu/" 'calcFunc-lufielddiv arg) 1753 (calc-binary-op "lu/" 'calcFunc-lufdiv arg)
1754 (calc-binary-op "lu/" 'calcFunc-lupowerdiv arg))))) 1754 (calc-binary-op "lu/" 'calcFunc-lupdiv arg)))))
1755 1755
1756(defun math-logunits-quant (val ref power) 1756(defun math-logunits-quant (val ref power)
1757 (let* ((units (math-simplify (math-extract-units val))) 1757 (let* ((units (math-simplify (math-extract-units val)))
@@ -1777,29 +1777,29 @@ In symbolic mode, return the list (^ a b)."
1777 coeff)))) 1777 coeff))))
1778 runits))))) 1778 runits)))))
1779 1779
1780(defvar calc-logunits-field-reference) 1780(defvar calc-lu-field-reference)
1781(defvar calc-logunits-power-reference) 1781(defvar calc-lu-power-reference)
1782 1782
1783(defun calcFunc-fieldquant (val &optional ref) 1783(defun calcFunc-lufquant (val &optional ref)
1784 (unless ref 1784 (unless ref
1785 (setq ref (math-read-expr calc-logunits-field-reference))) 1785 (setq ref (math-read-expr calc-lu-field-reference)))
1786 (math-logunits-quant val ref nil)) 1786 (math-logunits-quant val ref nil))
1787 1787
1788(defun calcFunc-powerquant (val &optional ref) 1788(defun calcFunc-lupquant (val &optional ref)
1789 (unless ref 1789 (unless ref
1790 (setq ref (math-read-expr calc-logunits-power-reference))) 1790 (setq ref (math-read-expr calc-lu-power-reference)))
1791 (math-logunits-quant val ref t)) 1791 (math-logunits-quant val ref t))
1792 1792
1793(defun calc-logunits-quantity (arg) 1793(defun calc-lu-quant (arg)
1794 (interactive "P") 1794 (interactive "P")
1795 (calc-slow-wrapper 1795 (calc-slow-wrapper
1796 (if (calc-is-hyperbolic) 1796 (if (calc-is-hyperbolic)
1797 (if (calc-is-option) 1797 (if (calc-is-option)
1798 (calc-binary-op "lupq" 'calcFunc-fieldquant arg) 1798 (calc-binary-op "lupq" 'calcFunc-lufquant arg)
1799 (calc-unary-op "lupq" 'calcFunc-fieldquant arg)) 1799 (calc-unary-op "lupq" 'calcFunc-lufquant arg))
1800 (if (calc-is-option) 1800 (if (calc-is-option)
1801 (calc-binary-op "lufq" 'calcFunc-powerquant arg) 1801 (calc-binary-op "lufq" 'calcFunc-lupquant arg)
1802 (calc-unary-op "lufq" 'calcFunc-powerquant arg))))) 1802 (calc-unary-op "lufq" 'calcFunc-lupquant arg)))))
1803 1803
1804(defun math-logunits-level (val ref db power) 1804(defun math-logunits-level (val ref db power)
1805 "Compute the value of VAL in decibels or nepers." 1805 "Compute the value of VAL in decibels or nepers."
@@ -1817,47 +1817,47 @@ In symbolic mode, return the list (^ a b)."
1817 '(var Np var-Np))) 1817 '(var Np var-Np)))
1818 units))) 1818 units)))
1819 1819
1820(defun calcFunc-dbfieldlevel (val &optional ref) 1820(defun calcFunc-dbfield (val &optional ref)
1821 (unless ref 1821 (unless ref
1822 (setq ref (math-read-expr calc-logunits-field-reference))) 1822 (setq ref (math-read-expr calc-lu-field-reference)))
1823 (math-logunits-level val ref t nil)) 1823 (math-logunits-level val ref t nil))
1824 1824
1825(defun calcFunc-dbpowerlevel (val &optional ref) 1825(defun calcFunc-dbpower (val &optional ref)
1826 (unless ref 1826 (unless ref
1827 (setq ref (math-read-expr calc-logunits-power-reference))) 1827 (setq ref (math-read-expr calc-lu-power-reference)))
1828 (math-logunits-level val ref t t)) 1828 (math-logunits-level val ref t t))
1829 1829
1830(defun calcFunc-npfieldlevel (val &optional ref) 1830(defun calcFunc-npfield (val &optional ref)
1831 (unless ref 1831 (unless ref
1832 (setq ref (math-read-expr calc-logunits-field-reference))) 1832 (setq ref (math-read-expr calc-lu-field-reference)))
1833 (math-logunits-level val ref nil nil)) 1833 (math-logunits-level val ref nil nil))
1834 1834
1835(defun calcFunc-nppowerlevel (val &optional ref) 1835(defun calcFunc-nppower (val &optional ref)
1836 (unless ref 1836 (unless ref
1837 (setq ref (math-read-expr calc-logunits-power-reference))) 1837 (setq ref (math-read-expr calc-lu-power-reference)))
1838 (math-logunits-level val ref nil t)) 1838 (math-logunits-level val ref nil t))
1839 1839
1840(defun calc-dblevel (arg) 1840(defun calc-db (arg)
1841 (interactive "P") 1841 (interactive "P")
1842 (calc-slow-wrapper 1842 (calc-slow-wrapper
1843 (if (calc-is-hyperbolic) 1843 (if (calc-is-hyperbolic)
1844 (if (calc-is-option) 1844 (if (calc-is-option)
1845 (calc-binary-op "ludb" 'calcFunc-dbfieldlevel arg) 1845 (calc-binary-op "ludb" 'calcFunc-dbfield arg)
1846 (calc-unary-op "ludb" 'calcFunc-dbfieldlevel arg)) 1846 (calc-unary-op "ludb" 'calcFunc-dbfield arg))
1847 (if (calc-is-option) 1847 (if (calc-is-option)
1848 (calc-binary-op "ludb" 'calcFunc-dbpowerlevel arg) 1848 (calc-binary-op "ludb" 'calcFunc-dbpower arg)
1849 (calc-unary-op "ludb" 'calcFunc-dbpowerlevel arg))))) 1849 (calc-unary-op "ludb" 'calcFunc-dbpower arg)))))
1850 1850
1851(defun calc-nplevel (arg) 1851(defun calc-np (arg)
1852 (interactive "P") 1852 (interactive "P")
1853 (calc-slow-wrapper 1853 (calc-slow-wrapper
1854 (if (calc-is-hyperbolic) 1854 (if (calc-is-hyperbolic)
1855 (if (calc-is-option) 1855 (if (calc-is-option)
1856 (calc-binary-op "lunp" 'calcFunc-npfieldlevel arg) 1856 (calc-binary-op "lunp" 'calcFunc-npfield arg)
1857 (calc-unary-op "lunp" 'calcFunc-npfieldlevel arg)) 1857 (calc-unary-op "lunp" 'calcFunc-npfield arg))
1858 (if (calc-is-option) 1858 (if (calc-is-option)
1859 (calc-binary-op "lunp" 'calcFunc-nppowerlevel arg) 1859 (calc-binary-op "lunp" 'calcFunc-nppower arg)
1860 (calc-unary-op "lunp" 'calcFunc-nppowerlevel arg))))) 1860 (calc-unary-op "lunp" 'calcFunc-nppower arg)))))
1861 1861
1862;;; Musical notes 1862;;; Musical notes
1863 1863
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index 08ae7b10113..41f549cbe2c 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -434,13 +434,13 @@ by displaying the sub-formula in `calc-selected-face'."
434 :group 'calc 434 :group 'calc
435 :type 'boolean) 435 :type 'boolean)
436 436
437(defcustom calc-logunits-field-reference 437(defcustom calc-lu-field-reference
438 "20 uPa" 438 "20 uPa"
439 "The default reference level for logarithmic units (field)." 439 "The default reference level for logarithmic units (field)."
440 :group 'calc 440 :group 'calc
441 :type '(string)) 441 :type '(string))
442 442
443(defcustom calc-logunits-power-reference 443(defcustom calc-lu-power-reference
444 "mW" 444 "mW"
445 "The default reference level for logarithmic units (power)." 445 "The default reference level for logarithmic units (power)."
446 :group 'calc 446 :group 'calc
diff --git a/lisp/custom.el b/lisp/custom.el
index 923321c03c9..cf06fe27f4d 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -789,10 +789,10 @@ E.g. dumped variables whose default depends on run-time information."
789(defvar custom-known-themes '(user changed) 789(defvar custom-known-themes '(user changed)
790 "Themes that have been defined with `deftheme'. 790 "Themes that have been defined with `deftheme'.
791The default value is the list (user changed). The theme `changed' 791The default value is the list (user changed). The theme `changed'
792contains the settings before custom themes are applied. The 792contains the settings before custom themes are applied. The theme
793theme `user' contains all the settings the user customized and saved. 793`user' contains all the settings the user customized and saved.
794Additional themes declared with the `deftheme' macro will be added to 794Additional themes declared with the `deftheme' macro will be added
795the front of this list.") 795to the front of this list.")
796 796
797(defsubst custom-theme-p (theme) 797(defsubst custom-theme-p (theme)
798 "Non-nil when THEME has been defined." 798 "Non-nil when THEME has been defined."
@@ -1071,7 +1071,7 @@ order. Each element in the list should be one of the following:
1071 named \"themes\" in `data-directory'). 1071 named \"themes\" in `data-directory').
1072- a directory name (a string). 1072- a directory name (a string).
1073 1073
1074Each theme file is named NAME-theme.el, where THEME is the theme 1074Each theme file is named THEME-theme.el, where THEME is the theme
1075name." 1075name."
1076 :type '(repeat (choice (const :tag "custom-theme-directory" 1076 :type '(repeat (choice (const :tag "custom-theme-directory"
1077 custom-theme-directory) 1077 custom-theme-directory)
@@ -1143,7 +1143,7 @@ Return t if THEME was successfully loaded, nil otherwise."
1143 '("" "c"))) 1143 '("" "c")))
1144 hash) 1144 hash)
1145 (unless fn 1145 (unless fn
1146 (error "Unable to find theme file for `%s'." theme)) 1146 (error "Unable to find theme file for `%s'" theme))
1147 (with-temp-buffer 1147 (with-temp-buffer
1148 (insert-file-contents fn) 1148 (insert-file-contents fn)
1149 (setq hash (sha1 (current-buffer))) 1149 (setq hash (sha1 (current-buffer)))
@@ -1209,7 +1209,7 @@ NAME should be a symbol."
1209 1209
1210(defun custom-available-themes () 1210(defun custom-available-themes ()
1211 "Return a list of available Custom themes (symbols)." 1211 "Return a list of available Custom themes (symbols)."
1212 (let* (sym themes) 1212 (let (sym themes)
1213 (dolist (dir (custom-theme--load-path)) 1213 (dolist (dir (custom-theme--load-path))
1214 (when (file-directory-p dir) 1214 (when (file-directory-p dir)
1215 (dolist (file (file-expand-wildcards 1215 (dolist (file (file-expand-wildcards
@@ -1335,7 +1335,7 @@ That is to say, it specifies what the value should be according to
1335currently enabled custom themes. 1335currently enabled custom themes.
1336 1336
1337This function returns nil if no custom theme specifies a value for VARIABLE." 1337This function returns nil if no custom theme specifies a value for VARIABLE."
1338 (let* ((theme-value (get variable 'theme-value))) 1338 (let ((theme-value (get variable 'theme-value)))
1339 (if theme-value 1339 (if theme-value
1340 (cdr (car theme-value))))) 1340 (cdr (car theme-value)))))
1341 1341
diff --git a/lisp/emacs-lisp/bytecomp.el b/lisp/emacs-lisp/bytecomp.el
index 5e24b80ac5a..5c845e59c85 100644
--- a/lisp/emacs-lisp/bytecomp.el
+++ b/lisp/emacs-lisp/bytecomp.el
@@ -3776,7 +3776,8 @@ that suppresses all warnings during execution of BODY."
3776(defun byte-compile-save-excursion (form) 3776(defun byte-compile-save-excursion (form)
3777 (if (and (eq 'set-buffer (car-safe (car-safe (cdr form)))) 3777 (if (and (eq 'set-buffer (car-safe (car-safe (cdr form))))
3778 (byte-compile-warning-enabled-p 'suspicious)) 3778 (byte-compile-warning-enabled-p 'suspicious))
3779 (byte-compile-warn "`save-excursion' defeated by `set-buffer'")) 3779 (byte-compile-warn
3780 "Use `with-current-buffer' rather than save-excursion+set-buffer"))
3780 (byte-compile-out 'byte-save-excursion 0) 3781 (byte-compile-out 'byte-save-excursion 0)
3781 (byte-compile-body-do-effect (cdr form)) 3782 (byte-compile-body-do-effect (cdr form))
3782 (byte-compile-out 'byte-unbind 1)) 3783 (byte-compile-out 'byte-unbind 1))
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index af0bd1519c7..b22ed7397af 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,82 @@
12011-03-16 Julien Danjou <julien@danjou.info>
2
3 * mm-uu.el (mm-uu-dissect-text-parts): Only dissect handle that are
4 inline.
5
6 * gnus-art.el (article-hide-list-identifiers): Use
7 gnus-group-get-list-identifiers.
8
9 * gnus-sum.el (gnus-group-get-list-identifiers): New function.
10 (gnus-summary-remove-list-identifiers): Use
11 gnus-group-get-list-identifiers to get regexp.
12 (gnus-select-newsgroup, gnus-summary-insert-subject)
13 (gnus-summary-insert-articles): Call
14 gnus-summary-remove-list-identifiers unconditionally.
15
162011-03-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
17
18 * gnus-sum.el (gnus-articles-to-read): Revert back to old behaviour if
19 we're selecting a group with unread articles.
20
21 * nnimap.el (nnimap-open-connection-1): Allow `network-only', too.
22
23 * gssapi.el: New file separated out from imap.el to provide a general
24 Kerberos 5 connection facility for Emacs.
25
26 * message.el (message-elide-ellipsis): Document the format spec
27 ellipsis.
28
292011-03-15 Reiner Steib <Reiner.Steib@gmx.de>
30
31 * message.el (message-elide-region): Allow the ellipsis to say how many
32 lines were removed.
33
342011-03-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
35
36 * gnus-win.el (gnus-configure-frame): Protect against trying to restore
37 window configurations containing buffers that are now dead.
38
39 * nnimap.el (nnimap-parse-flags): Remove all MODSEQ entries before
40 parsing to avoid integer overflows.
41 (nnimap-parse-flags): Simplify the last change.
42 (nnimap-parse-flags): Store HIGHESTMODSEQ as a string, since it may be
43 too large for 32-bit Emacsen.
44
452011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
46
47 * auth-source.el (auth-source-netrc-create):
48 * message.el (message-yank-original): Fix use of `case'.
49
502011-03-15 Nelson Ferreira <nelson.ferreira@ieee.org> (tiny change)
51
52 * gnus-art.el (gnus-article-treat-body-boundary): Fix boundary width on
53 XEmacs, which was one character too wide.
54
552011-03-09 Antoine Levitt <antoine.levitt@gmail.com>
56
57 * gnus-sum.el (gnus-articles-to-read): Use gnus-large-newsgroup as
58 default number of articles to display.
59 (gnus-articles-to-read): Use pretty names for prompt.
60
612011-03-15 Lars Magne Ingebrigtsen <larsi@gnus.org>
62
63 * gnus-int.el (gnus-open-server): Ditto.
64
65 * gnus-start.el (gnus-activate-group): Give a backtrace if
66 debug-on-quit is set and the user hits `C-g'.
67 (gnus-read-active-file): Ditto.
68
69 * gnus-group.el (gnus-group-read-ephemeral-group): Ditto.
70
712011-03-15 Teodor Zlatanov <tzz@lifelogs.com>
72
73 * message.el (message-yank-original): Use cond instead of CL case.
74
752011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
76
77 * auth-source.el (auth-source-netrc-create): Use usual format for the
78 default in prompts.
79
12011-03-13 Teodor Zlatanov <tzz@lifelogs.com> 802011-03-13 Teodor Zlatanov <tzz@lifelogs.com>
2 81
3 * auth-source.el (auth-source-netrc-create): Show the default in the 82 * auth-source.el (auth-source-netrc-create): Show the default in the
@@ -15,9 +94,9 @@
15 94
162011-03-11 Teodor Zlatanov <tzz@lifelogs.com> 952011-03-11 Teodor Zlatanov <tzz@lifelogs.com>
17 96
18 * gnus-sync.el (gnus-sync-install-hooks, gnus-sync-unload-hook): Don't 97 * gnus-sync.el (gnus-sync-install-hooks, gnus-sync-unload-hook):
19 install `gnus-sync-read' to any hooks by default. It's buggy. The 98 Don't install `gnus-sync-read' to any hooks by default. It's buggy.
20 user will have to run `gnus-sync-read' manually and wait for Cloudy 99 The user will have to run `gnus-sync-read' manually and wait for Cloudy
21 Gnus. 100 Gnus.
22 101
232011-03-11 Julien Danjou <julien@danjou.info> 1022011-03-11 Julien Danjou <julien@danjou.info>
@@ -101,8 +180,8 @@
101 180
1022011-03-05 Antoine Levitt <antoine.levitt@gmail.com> 1812011-03-05 Antoine Levitt <antoine.levitt@gmail.com>
103 182
104 * message.el (message-cite-reply-position, message-cite-style): New 183 * message.el (message-cite-reply-position, message-cite-style):
105 variables. 184 New variables.
106 (message-yank-original): Use the new citation styles. 185 (message-yank-original): Use the new citation styles.
107 186
1082011-03-04 Daiki Ueno <ueno@unixuser.org> 1872011-03-04 Daiki Ueno <ueno@unixuser.org>
@@ -216,14 +295,14 @@
216 295
2172011-02-23 Lars Ingebrigtsen <larsi@gnus.org> 2962011-02-23 Lars Ingebrigtsen <larsi@gnus.org>
218 297
219 * gnus-start.el (gnus-dribble-read-file): Set 298 * gnus-start.el (gnus-dribble-read-file):
220 buffer-save-without-query, since we always want to save the dribble 299 Set buffer-save-without-query, since we always want to save the dribble
221 file, probably. 300 file, probably.
222 301
223 * nnmail.el (nnmail-article-group): Allow a final "" split to work on 302 * nnmail.el (nnmail-article-group): Allow a final "" split to work on
224 nnimap. 303 nnimap.
225 304
226 * gnus-sum.el (gnus-user-date-format-alist): Renamed back again from 305 * gnus-sum.el (gnus-user-date-format-alist): Rename back again from
227 -summary- since it's a user-visible variable. 306 -summary- since it's a user-visible variable.
228 307
229 * nnimap.el (nnimap-retrieve-group-data-early): Don't do QRESYNC the 308 * nnimap.el (nnimap-retrieve-group-data-early): Don't do QRESYNC the
@@ -469,8 +548,8 @@
4692011-02-14 Teodor Zlatanov <tzz@lifelogs.com> 5482011-02-14 Teodor Zlatanov <tzz@lifelogs.com>
470 549
471 * auth-source.el (auth-source-backend-parse-parameters): Don't rely on 550 * auth-source.el (auth-source-backend-parse-parameters): Don't rely on
472 `plist-get' to accept non-list parameters (XEmacs issue). Fix 551 `plist-get' to accept non-list parameters (XEmacs issue).
473 docstring. 552 Fix docstring.
474 (auth-source-secrets-search): Use `delete-dups', `append mapcar', and 553 (auth-source-secrets-search): Use `delete-dups', `append mapcar', and
475 `butlast' instead of `remove-duplicates', `mapcan', and `subseq'. 554 `butlast' instead of `remove-duplicates', `mapcan', and `subseq'.
476 (auth-sources, auth-source-backend-parse, auth-source-secrets-search): 555 (auth-sources, auth-source-backend-parse, auth-source-secrets-search):
@@ -510,8 +589,8 @@
510 589
5112011-02-13 Tassilo Horn <tassilo@member.fsf.org> (tiny change) 5902011-02-13 Tassilo Horn <tassilo@member.fsf.org> (tiny change)
512 591
513 * nnimap.el (nnimap-request-accept-article, nnimap-process-quirk): Fix 592 * nnimap.el (nnimap-request-accept-article, nnimap-process-quirk):
514 Gcc processing on imap. 593 Fix Gcc processing on imap.
515 594
5162011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> 5952011-02-10 Stefan Monnier <monnier@iro.umontreal.ca>
517 596
@@ -599,8 +678,8 @@
599 678
6002011-02-06 Michael Albinus <michael.albinus@gmx.de> 6792011-02-06 Michael Albinus <michael.albinus@gmx.de>
601 680
602 * auth-source.el (top): Require 'eieio unconditionally. Autoload 681 * auth-source.el (top): Require 'eieio unconditionally.
603 `secrets-get-attributes' instead of `secrets-get-attribute'. 682 Autoload `secrets-get-attributes' instead of `secrets-get-attribute'.
604 (auth-source-secrets-search): Limit search when `max' is greater than 683 (auth-source-secrets-search): Limit search when `max' is greater than
605 number of results. 684 number of results.
606 685
@@ -636,7 +715,7 @@
636 (auth-source-protocol-defaults, auth-source-user-or-password-imap) 715 (auth-source-protocol-defaults, auth-source-user-or-password-imap)
637 (auth-source-user-or-password-pop3, auth-source-user-or-password-ssh) 716 (auth-source-user-or-password-pop3, auth-source-user-or-password-ssh)
638 (auth-source-user-or-password-sftp) 717 (auth-source-user-or-password-sftp)
639 (auth-source-user-or-password-smtp): Removed. 718 (auth-source-user-or-password-smtp): Remove.
640 (auth-source-user-or-password): Deprecated and modified to be a wrapper 719 (auth-source-user-or-password): Deprecated and modified to be a wrapper
641 around `auth-source-search'. Not tested thoroughly. 720 around `auth-source-search'. Not tested thoroughly.
642 721
@@ -802,16 +881,16 @@
802 * gnus-group.el (gnus-group-jump-to-group): Allow jumping to groups 881 * gnus-group.el (gnus-group-jump-to-group): Allow jumping to groups
803 that Gnus doesn't know exists again. 882 that Gnus doesn't know exists again.
804 883
805 * gnus-art.el (gnus-article-date-lapsed-new-header): Removed. 884 * gnus-art.el (gnus-article-date-lapsed-new-header): Remove.
806 (gnus-treat-date-ut): Ditto. 885 (gnus-treat-date-ut): Ditto.
807 (gnus-article-update-date-header): Renamed. 886 (gnus-article-update-date-header): Rename.
808 (gnus-treat-date-local): Removed. 887 (gnus-treat-date-local): Remove.
809 (gnus-treat-date-english): Removed. 888 (gnus-treat-date-english): Remove.
810 (gnus-treat-date-lapsed): Removed. 889 (gnus-treat-date-lapsed): Remove.
811 (gnus-treat-date-combined-lapsed): Removed. 890 (gnus-treat-date-combined-lapsed): Remove.
812 (gnus-treat-date-original): Removed. 891 (gnus-treat-date-original): Remove.
813 (gnus-treat-date-iso8601): Removed. 892 (gnus-treat-date-iso8601): Remove.
814 (gnus-treat-date-user-defined): Removed. 893 (gnus-treat-date-user-defined): Remove.
815 (gnus-article-date-headers): New variable to control all the date 894 (gnus-article-date-headers): New variable to control all the date
816 header options. 895 header options.
817 (article-date-ut): Rewrite to allow using the new way to format date 896 (article-date-ut): Rewrite to allow using the new way to format date
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el
index 52f2b92e933..e0bea324a25 100644
--- a/lisp/gnus/auth-source.el
+++ b/lisp/gnus/auth-source.el
@@ -1093,17 +1093,19 @@ See `auth-source-search' for details on SPEC."
1093 (?h ,(aget printable-defaults 'host)) 1093 (?h ,(aget printable-defaults 'host))
1094 (?p ,(aget printable-defaults 'port)))))) 1094 (?p ,(aget printable-defaults 'port))))))
1095 1095
1096 ;; store the data, prompting for the password if needed 1096 ;; Store the data, prompting for the password if needed.
1097 (setq data 1097 (setq data
1098 (cond 1098 (cond
1099 ((and (null data) (eq r 'secret)) 1099 ((and (null data) (eq r 'secret))
1100 ;; special case prompt for passwords 1100 ;; Special case prompt for passwords.
1101 (read-passwd prompt)) 1101 (read-passwd prompt))
1102 ((null data) 1102 ((null data)
1103 (when default 1103 (when default
1104 (setq 1104 (setq prompt
1105 prompt 1105 (if (string-match ": *\\'" prompt)
1106 (concat prompt (format "(default %s) " default)))) 1106 (concat (substring prompt 0 (match-beginning 0))
1107 " (default " default "): ")
1108 (concat prompt "(default " default ") "))))
1107 (read-string prompt nil nil default)) 1109 (read-string prompt nil nil default))
1108 (t (or data default)))) 1110 (t (or data default))))
1109 1111
@@ -1115,7 +1117,7 @@ See `auth-source-search' for details on SPEC."
1115 (lambda () data)) 1117 (lambda () data))
1116 data)))) 1118 data))))
1117 1119
1118 ;; when r is not an empty string... 1120 ;; When r is not an empty string...
1119 (when (and (stringp data) 1121 (when (and (stringp data)
1120 (< 0 (length data))) 1122 (< 0 (length data)))
1121 ;; this function is not strictly necessary but I think it 1123 ;; this function is not strictly necessary but I think it
@@ -1128,10 +1130,10 @@ See `auth-source-search' for details on SPEC."
1128 (if (zerop (length add)) "" " ") 1130 (if (zerop (length add)) "" " ")
1129 ;; remap auth-source tokens to netrc 1131 ;; remap auth-source tokens to netrc
1130 (case r 1132 (case r
1131 ('user "login") 1133 (user "login")
1132 ('host "machine") 1134 (host "machine")
1133 ('secret "password") 1135 (secret "password")
1134 ('port "port") ; redundant but clearer 1136 (port "port") ; redundant but clearer
1135 (t (symbol-name r))) 1137 (t (symbol-name r)))
1136 ;; the value will be printed in %S format 1138 ;; the value will be printed in %S format
1137 data)))) 1139 data))))
@@ -1173,7 +1175,7 @@ Respects `auth-source-save-behavior'. Uses
1173 ;; we want the new data to be found first, so insert at beginning 1175 ;; we want the new data to be found first, so insert at beginning
1174 (goto-char (point-min)) 1176 (goto-char (point-min))
1175 1177
1176 ;; ask AFTER we've successfully opened the file 1178 ;; Ask AFTER we've successfully opened the file.
1177 (let ((prompt (format "Save auth info to file %s? " file)) 1179 (let ((prompt (format "Save auth info to file %s? " file))
1178 (done (not (eq auth-source-save-behavior 'ask))) 1180 (done (not (eq auth-source-save-behavior 'ask)))
1179 (bufname "*auth-source Help*") 1181 (bufname "*auth-source Help*")
@@ -1190,6 +1192,8 @@ Respects `auth-source-save-behavior'. Uses
1190 "(N)o and don't ask to save again\n" 1192 "(N)o and don't ask to save again\n"
1191 "(e)dit the line\n" 1193 "(e)dit the line\n"
1192 "(?) for help as you can see.\n")) 1194 "(?) for help as you can see.\n"))
1195 ;; Why? Doesn't with-output-to-temp-buffer already do
1196 ;; the exact same thing anyway? --Stef
1193 (set-buffer standard-output) 1197 (set-buffer standard-output)
1194 (help-mode)))) 1198 (help-mode))))
1195 (?n (setq add "" 1199 (?n (setq add ""
@@ -1203,7 +1207,7 @@ Respects `auth-source-save-behavior'. Uses
1203 (when (get-buffer-window bufname) 1207 (when (get-buffer-window bufname)
1204 (delete-window (get-buffer-window bufname))) 1208 (delete-window (get-buffer-window bufname)))
1205 1209
1206 ;; make sure the info is not saved 1210 ;; Make sure the info is not saved.
1207 (when (null auth-source-save-behavior) 1211 (when (null auth-source-save-behavior)
1208 (setq add "")) 1212 (setq add ""))
1209 1213
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el
index c64138b43d7..b994a2839bc 100644
--- a/lisp/gnus/gnus-art.el
+++ b/lisp/gnus/gnus-art.el
@@ -2337,10 +2337,12 @@ long lines if and only if arg is positive."
2337 (let ((start (point))) 2337 (let ((start (point)))
2338 (insert "X-Boundary: ") 2338 (insert "X-Boundary: ")
2339 (gnus-add-text-properties start (point) '(invisible t intangible t)) 2339 (gnus-add-text-properties start (point) '(invisible t intangible t))
2340 (insert (let (str) 2340 (insert (let (str (max (window-width)))
2341 (while (>= (window-width) (length str)) 2341 (if (featurep 'xemacs)
2342 (setq max (1- max)))
2343 (while (>= max (length str))
2342 (setq str (concat str gnus-body-boundary-delimiter))) 2344 (setq str (concat str gnus-body-boundary-delimiter)))
2343 (substring str 0 (window-width))) 2345 (substring str 0 max))
2344 "\n") 2346 "\n")
2345 (gnus-put-text-property start (point) 'gnus-decoration 'header))))) 2347 (gnus-put-text-property start (point) 'gnus-decoration 'header)))))
2346 2348
@@ -3074,10 +3076,7 @@ images if any to the browser, and deletes them when exiting the group
3074The `gnus-list-identifiers' variable specifies what to do." 3076The `gnus-list-identifiers' variable specifies what to do."
3075 (interactive) 3077 (interactive)
3076 (let ((inhibit-point-motion-hooks t) 3078 (let ((inhibit-point-motion-hooks t)
3077 (regexp (or (gnus-parameter-list-identifier gnus-newsgroup-name) 3079 (regexp (gnus-group-get-list-identifiers gnus-newsgroup-name))
3078 (if (consp gnus-list-identifiers)
3079 (mapconcat 'identity gnus-list-identifiers " *\\|")
3080 gnus-list-identifiers)))
3081 (inhibit-read-only t)) 3080 (inhibit-read-only t))
3082 (when regexp 3081 (when regexp
3083 (save-excursion 3082 (save-excursion
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 9ed3cf02a49..e928811b558 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -2313,9 +2313,10 @@ Return the name of the group if selection was successful."
2313 gnus-fetch-old-ephemeral-headers)) 2313 gnus-fetch-old-ephemeral-headers))
2314 (gnus-group-read-group (or number t) t group select-articles)) 2314 (gnus-group-read-group (or number t) t group select-articles))
2315 group) 2315 group)
2316 ;;(error nil)
2317 (quit 2316 (quit
2318 (message "Quit reading the ephemeral group") 2317 (if debug-on-quit
2318 (debug "Quit")
2319 (message "Quit reading the ephemeral group"))
2319 nil))))) 2320 nil)))))
2320 2321
2321(defcustom gnus-gmane-group-download-format 2322(defcustom gnus-gmane-group-download-format
diff --git a/lisp/gnus/gnus-int.el b/lisp/gnus/gnus-int.el
index a67063bb970..ef15a479892 100644
--- a/lisp/gnus/gnus-int.el
+++ b/lisp/gnus/gnus-int.el
@@ -270,7 +270,9 @@ If it is down, start it up (again)."
270 server (error-message-string err)) 270 server (error-message-string err))
271 nil) 271 nil)
272 (quit 272 (quit
273 (gnus-message 1 "Quit trying to open server %s" server) 273 (if debug-on-quit
274 (debug "Quit")
275 (gnus-message 1 "Quit trying to open server %s" server))
274 nil))) 276 nil)))
275 open-offline) 277 open-offline)
276 ;; If this hasn't been opened before, we add it to the list. 278 ;; If this hasn't been opened before, we add it to the list.
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el
index c6ff6044b92..afded87fe37 100644
--- a/lisp/gnus/gnus-start.el
+++ b/lisp/gnus/gnus-start.el
@@ -1462,9 +1462,10 @@ If SCAN, request a scan of that group as well."
1462 (inline (gnus-request-group group (or dont-sub-check dont-check) 1462 (inline (gnus-request-group group (or dont-sub-check dont-check)
1463 method 1463 method
1464 (gnus-get-info group))) 1464 (gnus-get-info group)))
1465 ;;(error nil)
1466 (quit 1465 (quit
1467 (message "Quit activating %s" group) 1466 (if debug-on-quit
1467 (debug "Quit")
1468 (message "Quit activating %s" group))
1468 nil))) 1469 nil)))
1469 (unless dont-check 1470 (unless dont-check
1470 (setq active (gnus-parse-active)) 1471 (setq active (gnus-parse-active))
@@ -2004,7 +2005,9 @@ If SCAN, request a scan of that group as well."
2004 ;; We catch C-g so that we can continue past servers 2005 ;; We catch C-g so that we can continue past servers
2005 ;; that do not respond. 2006 ;; that do not respond.
2006 (quit 2007 (quit
2007 (message "Quit reading the active file") 2008 (if debug-on-quit
2009 (debug "Quit")
2010 (message "Quit reading the active file"))
2008 nil)))))))) 2011 nil))))))))
2009 2012
2010(defun gnus-read-active-file-1 (method force) 2013(defun gnus-read-active-file-1 (method force)
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index a8786e39c7b..29a98b7d11d 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -5510,12 +5510,17 @@ or a straight list of headers."
5510 (cdr (assq number gnus-newsgroup-scored)) 5510 (cdr (assq number gnus-newsgroup-scored))
5511 (memq number gnus-newsgroup-processable)))))) 5511 (memq number gnus-newsgroup-processable))))))
5512 5512
5513(defun gnus-group-get-list-identifiers (group)
5514 "Get list identifier regexp for GROUP."
5515 (or (gnus-parameter-list-identifier group)
5516 (if (consp gnus-list-identifiers)
5517 (mapconcat 'identity gnus-list-identifiers " *\\|")
5518 gnus-list-identifiers)))
5519
5513(defun gnus-summary-remove-list-identifiers () 5520(defun gnus-summary-remove-list-identifiers ()
5514 "Remove list identifiers in `gnus-list-identifiers' from articles in the current group." 5521 "Remove list identifiers in `gnus-list-identifiers' from articles in the current group."
5515 (let ((regexp (if (consp gnus-list-identifiers) 5522 (let ((regexp (gnus-group-get-list-identifiers gnus-newsgroup-name))
5516 (mapconcat 'identity gnus-list-identifiers " *\\|") 5523 changed subject)
5517 gnus-list-identifiers))
5518 changed subject)
5519 (when regexp 5524 (when regexp
5520 (setq regexp (concat "^\\(?:R[Ee]: +\\)*\\(" regexp " *\\)")) 5525 (setq regexp (concat "^\\(?:R[Ee]: +\\)*\\(" regexp " *\\)"))
5521 (dolist (header gnus-newsgroup-headers) 5526 (dolist (header gnus-newsgroup-headers)
@@ -5707,8 +5712,7 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5707 (when gnus-agent 5712 (when gnus-agent
5708 (gnus-agent-get-undownloaded-list)) 5713 (gnus-agent-get-undownloaded-list))
5709 ;; Remove list identifiers from subject 5714 ;; Remove list identifiers from subject
5710 (when gnus-list-identifiers 5715 (gnus-summary-remove-list-identifiers)
5711 (gnus-summary-remove-list-identifiers))
5712 ;; Check whether auto-expire is to be done in this group. 5716 ;; Check whether auto-expire is to be done in this group.
5713 (setq gnus-newsgroup-auto-expire 5717 (setq gnus-newsgroup-auto-expire
5714 (gnus-group-auto-expirable-p group)) 5718 (gnus-group-auto-expirable-p group))
@@ -5798,7 +5802,8 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5798 5802
5799(defun gnus-articles-to-read (group &optional read-all) 5803(defun gnus-articles-to-read (group &optional read-all)
5800 "Find out what articles the user wants to read." 5804 "Find out what articles the user wants to read."
5801 (let* ((articles 5805 (let* ((only-read-p t)
5806 (articles
5802 ;; Select all articles if `read-all' is non-nil, or if there 5807 ;; Select all articles if `read-all' is non-nil, or if there
5803 ;; are no unread articles. 5808 ;; are no unread articles.
5804 (if (or read-all 5809 (if (or read-all
@@ -5822,6 +5827,7 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5822 (gnus-uncompress-range (gnus-active group))) 5827 (gnus-uncompress-range (gnus-active group)))
5823 (gnus-cache-articles-in-group group)) 5828 (gnus-cache-articles-in-group group))
5824 ;; Select only the "normal" subset of articles. 5829 ;; Select only the "normal" subset of articles.
5830 (setq only-read-p nil)
5825 (gnus-sorted-nunion 5831 (gnus-sorted-nunion
5826 (gnus-sorted-union gnus-newsgroup-dormant gnus-newsgroup-marked) 5832 (gnus-sorted-union gnus-newsgroup-dormant gnus-newsgroup-marked)
5827 gnus-newsgroup-unreads))) 5833 gnus-newsgroup-unreads)))
@@ -5845,16 +5851,25 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5845 (let* ((cursor-in-echo-area nil) 5851 (let* ((cursor-in-echo-area nil)
5846 (initial (gnus-parameter-large-newsgroup-initial 5852 (initial (gnus-parameter-large-newsgroup-initial
5847 gnus-newsgroup-name)) 5853 gnus-newsgroup-name))
5854 (default (if only-read-p
5855 (or initial gnus-large-newsgroup)
5856 number))
5848 (input 5857 (input
5849 (read-string 5858 (read-string
5850 (format 5859 (if only-read-p
5851 "How many articles from %s (%s %d): " 5860 (format
5852 (gnus-group-decoded-name gnus-newsgroup-name) 5861 "How many articles from %s (available %d, default %d): "
5853 (if initial "max" "default") 5862 (gnus-group-decoded-name
5854 number) 5863 (gnus-group-real-name gnus-newsgroup-name))
5855 (if initial 5864 number default)
5856 (cons (number-to-string initial) 5865 (format
5857 0))))) 5866 "How many articles from %s (%d available): "
5867 (gnus-group-decoded-name
5868 (gnus-group-real-name gnus-newsgroup-name))
5869 default))
5870 nil
5871 nil
5872 (number-to-string default))))
5858 (if (string-match "^[ \t]*$" input) number input))) 5873 (if (string-match "^[ \t]*$" input) number input)))
5859 ((and (> scored marked) (< scored number) 5874 ((and (> scored marked) (< scored number)
5860 (> (- scored number) 20)) 5875 (> (- scored number) 20))
@@ -5862,7 +5877,8 @@ If SELECT-ARTICLES, only select those articles from GROUP."
5862 (read-string 5877 (read-string
5863 (format "%s %s (%d scored, %d total): " 5878 (format "%s %s (%d scored, %d total): "
5864 "How many articles from" 5879 "How many articles from"
5865 (gnus-group-decoded-name group) 5880 (gnus-group-decoded-name
5881 (gnus-group-real-name gnus-newsgroup-name))
5866 scored number)))) 5882 scored number))))
5867 (if (string-match "^[ \t]*$" input) 5883 (if (string-match "^[ \t]*$" input)
5868 number input))) 5884 number input)))
@@ -6564,9 +6580,8 @@ the subject line on."
6564 (1+ (point-at-eol)) 6580 (1+ (point-at-eol))
6565 (gnus-delete-line)))))) 6581 (gnus-delete-line))))))
6566 ;; Remove list identifiers from subject. 6582 ;; Remove list identifiers from subject.
6567 (when gnus-list-identifiers 6583 (let ((gnus-newsgroup-headers (list header)))
6568 (let ((gnus-newsgroup-headers (list header))) 6584 (gnus-summary-remove-list-identifiers))
6569 (gnus-summary-remove-list-identifiers)))
6570 (when old-header 6585 (when old-header
6571 (mail-header-set-number header (mail-header-number old-header))) 6586 (mail-header-set-number header (mail-header-number old-header)))
6572 (setq gnus-newsgroup-sparse 6587 (setq gnus-newsgroup-sparse
@@ -12670,8 +12685,7 @@ returned."
12670 (when gnus-agent 12685 (when gnus-agent
12671 (gnus-agent-get-undownloaded-list)) 12686 (gnus-agent-get-undownloaded-list))
12672 ;; Remove list identifiers from subject 12687 ;; Remove list identifiers from subject
12673 (when gnus-list-identifiers 12688 (gnus-summary-remove-list-identifiers)
12674 (gnus-summary-remove-list-identifiers))
12675 ;; First and last article in this newsgroup. 12689 ;; First and last article in this newsgroup.
12676 (when gnus-newsgroup-headers 12690 (when gnus-newsgroup-headers
12677 (setq gnus-newsgroup-begin 12691 (setq gnus-newsgroup-begin
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index 156f9a020fd..c38f57d96cb 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -268,8 +268,10 @@ See the Gnus manual for an explanation of the syntax used.")
268 (error "Invalid buffer type: %s" type)) 268 (error "Invalid buffer type: %s" type))
269 (let ((buf (gnus-get-buffer-create 269 (let ((buf (gnus-get-buffer-create
270 (gnus-window-to-buffer-helper buffer)))) 270 (gnus-window-to-buffer-helper buffer))))
271 (if (eq buf (window-buffer (selected-window))) (set-buffer buf) 271 (when (buffer-name buf)
272 (switch-to-buffer buf))) 272 (if (eq buf (window-buffer (selected-window)))
273 (set-buffer buf)
274 (switch-to-buffer buf))))
273 (when (memq 'frame-focus split) 275 (when (memq 'frame-focus split)
274 (setq gnus-window-frame-focus window)) 276 (setq gnus-window-frame-focus window))
275 ;; We return the window if it has the `point' spec. 277 ;; We return the window if it has the `point' spec.
diff --git a/lisp/gnus/gssapi.el b/lisp/gnus/gssapi.el
new file mode 100644
index 00000000000..3765fb84ee8
--- /dev/null
+++ b/lisp/gnus/gssapi.el
@@ -0,0 +1,105 @@
1;;; gssapi.el --- GSSAPI/Kerberos 5 interface for Emacs
2
3;; Copyright (C) 2011 Free Software Foundation, Inc.
4
5;; Author: Simon Josefsson <simon@josefsson.org>
6;; Lars Magne Ingebrigtsen <larsi@gnus.org>
7;; Keywords: network
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is free software: you can redistribute it and/or modify
12;; it under the terms of the GNU General Public License as published by
13;; the Free Software Foundation, either version 3 of the License, or
14;; (at your option) any later version.
15
16;; GNU Emacs is distributed in the hope that it will be useful,
17;; but WITHOUT ANY WARRANTY; without even the implied warranty of
18;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19;; GNU General Public License for more details.
20
21;; You should have received a copy of the GNU General Public License
22;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24;;; Commentary:
25
26;;; Code:
27
28(require 'format-spec)
29
30(defcustom gssapi-program (list
31 (concat "gsasl %s %p "
32 "--mechanism GSSAPI "
33 "--authentication-id %l")
34 "imtest -m gssapi -u %l -p %p %s")
35 "List of strings containing commands for GSSAPI (krb5) authentication.
36%s is replaced with server hostname, %p with port to connect to, and
37%l with the value of `imap-default-user'. The program should accept
38IMAP commands on stdin and return responses to stdout. Each entry in
39the list is tried until a successful connection is made."
40 :group 'network
41 :type '(repeat string))
42
43(defun open-gssapi-stream (name buffer server port)
44 (let ((cmds gssapi-program)
45 cmd done)
46 (with-current-buffer buffer
47 (while (and (not done)
48 (setq cmd (pop cmds)))
49 (message "Opening GSSAPI connection with `%s'..." cmd)
50 (erase-buffer)
51 (let* ((coding-system-for-read 'binary)
52 (coding-system-for-write 'binary)
53 (process (start-process
54 name buffer shell-file-name shell-command-switch
55 (format-spec
56 cmd
57 (format-spec-make
58 ?s server
59 ?p (number-to-string port)
60 ?l imap-default-user))))
61 response)
62 (when process
63 (while (and (memq (process-status process) '(open run))
64 (goto-char (point-min))
65 ;; Athena IMTEST can output SSL verify errors
66 (or (while (looking-at "^verify error:num=")
67 (forward-line))
68 t)
69 (or (while (looking-at "^TLS connection established")
70 (forward-line))
71 t)
72 ;; cyrus 1.6.x (13? < x <= 22) queries capabilities
73 (or (while (looking-at "^C:")
74 (forward-line))
75 t)
76 ;; cyrus 1.6 imtest print "S: " before server greeting
77 (or (not (looking-at "S: "))
78 (forward-char 3)
79 t)
80 ;; GNU SASL may print 'Trying ...' first.
81 (or (not (looking-at "Trying "))
82 (forward-line)
83 t)
84 (not (and (looking-at "\\* \\(OK\\|PREAUTH\\|BYE\\) ")
85 ;; success in imtest 1.6:
86 (re-search-forward
87 (concat "^\\(\\(Authenticat.*\\)\\|\\("
88 "Client authentication "
89 "finished.*\\)\\)")
90 nil t)
91 (setq response (match-string 1)))))
92 (accept-process-output process 1)
93 (sit-for 1))
94 (erase-buffer)
95 (message "GSSAPI IMAP connection: %s" (or response "failed"))
96 (if (and response (let ((case-fold-search nil))
97 (not (string-match "failed" response))))
98 (setq done process)
99 (delete-process process)
100 nil))))
101 done)))
102
103(provide 'gssapi)
104
105;;; gssapi.el ends here
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 08c59b00bfc..bb9215aca7c 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -49,6 +49,7 @@
49(require 'mail-parse) 49(require 'mail-parse)
50(require 'mml) 50(require 'mml)
51(require 'rfc822) 51(require 'rfc822)
52(require 'format-spec)
52 53
53(autoload 'mailclient-send-it "mailclient") ;; Emacs 22 or contrib/ 54(autoload 'mailclient-send-it "mailclient") ;; Emacs 22 or contrib/
54 55
@@ -438,7 +439,10 @@ whitespace)."
438 :group 'message-various) 439 :group 'message-various)
439 440
440(defcustom message-elide-ellipsis "\n[...]\n\n" 441(defcustom message-elide-ellipsis "\n[...]\n\n"
441 "*The string which is inserted for elided text." 442 "*The string which is inserted for elided text.
443This is a format-spec string, and you can use %l to say how many
444lines were removed, and %c to say how many characters were
445removed."
442 :type 'string 446 :type 'string
443 :link '(custom-manual "(message)Various Commands") 447 :link '(custom-manual "(message)Various Commands")
444 :group 'message-various) 448 :group 'message-various)
@@ -3535,8 +3539,12 @@ Note that this should not be used in newsgroups."
3535An ellipsis (from `message-elide-ellipsis') will be inserted where the 3539An ellipsis (from `message-elide-ellipsis') will be inserted where the
3536text was killed." 3540text was killed."
3537 (interactive "r") 3541 (interactive "r")
3538 (kill-region b e) 3542 (let ((lines (count-lines b e))
3539 (insert message-elide-ellipsis)) 3543 (chars (- e b)))
3544 (kill-region b e)
3545 (insert (format-spec message-elide-ellipsis
3546 `((?l . ,lines)
3547 (?c . ,chars))))))
3540 3548
3541(defvar message-caesar-translation-table nil) 3549(defvar message-caesar-translation-table nil)
3542 3550
@@ -3749,12 +3757,12 @@ prefix, and don't delete any headers."
3749 (insert-before-markers ?\n) 3757 (insert-before-markers ?\n)
3750 (goto-char pt)))) 3758 (goto-char pt))))
3751 (case message-cite-reply-position 3759 (case message-cite-reply-position
3752 ('above 3760 (above
3753 (message-goto-body) 3761 (message-goto-body)
3754 (insert body-text) 3762 (insert body-text)
3755 (insert (if (bolp) "\n" "\n\n")) 3763 (insert (if (bolp) "\n" "\n\n"))
3756 (message-goto-body)) 3764 (message-goto-body))
3757 ('below 3765 (below
3758 (message-goto-signature))) 3766 (message-goto-signature)))
3759 ;; Add a `message-setup-very-last-hook' here? 3767 ;; Add a `message-setup-very-last-hook' here?
3760 ;; Add `gnus-article-highlight-citation' here? 3768 ;; Add `gnus-article-highlight-citation' here?
diff --git a/lisp/gnus/mm-uu.el b/lisp/gnus/mm-uu.el
index 96dce48a774..4f7b5ed26b3 100644
--- a/lisp/gnus/mm-uu.el
+++ b/lisp/gnus/mm-uu.el
@@ -705,6 +705,8 @@ Assume text has been decoded if DECODED is non-nil."
705 ;; Mutt still uses application/pgp even though 705 ;; Mutt still uses application/pgp even though
706 ;; it has already been withdrawn. 706 ;; it has already been withdrawn.
707 (string-match "\\`text/\\|\\`application/pgp\\'" type) 707 (string-match "\\`text/\\|\\`application/pgp\\'" type)
708 (equal (car (mm-handle-disposition handle))
709 "inline")
708 (setq 710 (setq
709 children 711 children
710 (with-current-buffer buffer 712 (with-current-buffer buffer
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el
index e76ead515c5..e0804f81e2e 100644
--- a/lisp/gnus/nnimap.el
+++ b/lisp/gnus/nnimap.el
@@ -340,6 +340,7 @@ textual parts.")
340 (ports 340 (ports
341 (cond 341 (cond
342 ((or (eq nnimap-stream 'network) 342 ((or (eq nnimap-stream 'network)
343 (eq nnimap-stream 'network-only)
343 (eq nnimap-stream 'starttls)) 344 (eq nnimap-stream 'starttls))
344 (nnheader-message 7 "Opening connection to %s..." 345 (nnheader-message 7 "Opening connection to %s..."
345 nnimap-address) 346 nnimap-address)
@@ -1452,6 +1453,11 @@ textual parts.")
1452 ;; Change \Delete etc to %Delete, so that the reader can read it. 1453 ;; Change \Delete etc to %Delete, so that the reader can read it.
1453 (subst-char-in-region (point-min) (point-max) 1454 (subst-char-in-region (point-min) (point-max)
1454 ?\\ ?% t) 1455 ?\\ ?% t)
1456 ;; Remove any MODSEQ entries in the buffer, because they may contain
1457 ;; numbers that are too large for 32-bit Emacsen.
1458 (while (re-search-forward " MODSEQ ([0-9]+)" nil t)
1459 (replace-match "" t t))
1460 (goto-char (point-min))
1455 (let (start end articles groups uidnext elems permanent-flags 1461 (let (start end articles groups uidnext elems permanent-flags
1456 uidvalidity vanished highestmodseq) 1462 uidvalidity vanished highestmodseq)
1457 (dolist (elem sequences) 1463 (dolist (elem sequences)
@@ -1491,9 +1497,9 @@ textual parts.")
1491 (match-string 1))) 1497 (match-string 1)))
1492 (goto-char start) 1498 (goto-char start)
1493 (setq highestmodseq 1499 (setq highestmodseq
1494 (and (search-forward "HIGHESTMODSEQ " 1500 (and (re-search-forward "HIGHESTMODSEQ \\([0-9]+\\)"
1495 (or end (point-min)) t) 1501 (or end (point-min)) t)
1496 (read (current-buffer)))) 1502 (match-string 1)))
1497 (goto-char end) 1503 (goto-char end)
1498 (forward-line -1)) 1504 (forward-line -1))
1499 ;; The UID FETCH FLAGS was successful. 1505 ;; The UID FETCH FLAGS was successful.
@@ -1507,18 +1513,7 @@ textual parts.")
1507 (goto-char end)) 1513 (goto-char end))
1508 (while (re-search-forward "^\\* [0-9]+ FETCH " start t) 1514 (while (re-search-forward "^\\* [0-9]+ FETCH " start t)
1509 (let ((p (point))) 1515 (let ((p (point)))
1510 ;; FIXME: For FETCH lines like "* 2971 FETCH (FLAGS (%Recent) UID 1516 (setq elems (read (current-buffer)))
1511 ;; 12509 MODSEQ (13419098521433281274))" we get an
1512 ;; overflow-error. The handler simply deletes that large number
1513 ;; and reads again. But maybe there's a better fix...
1514 (setq elems (condition-case nil (read (current-buffer))
1515 (overflow-error
1516 ;; After an overflow-error, point is just after
1517 ;; the too large number. So delete it and try
1518 ;; again.
1519 (delete-region (point) (progn (backward-word) (point)))
1520 (goto-char p)
1521 (read (current-buffer)))))
1522 (push (cons (cadr (memq 'UID elems)) 1517 (push (cons (cadr (memq 'UID elems))
1523 (cadr (memq 'FLAGS elems))) 1518 (cadr (memq 'FLAGS elems)))
1524 articles))) 1519 articles)))
@@ -1674,6 +1669,8 @@ textual parts.")
1674 (goto-char (point-max))) 1669 (goto-char (point-max)))
1675 openp) 1670 openp)
1676 (quit 1671 (quit
1672 (when debug-on-quit
1673 (debug "Quit"))
1677 ;; The user hit C-g while we were waiting: kill the process, in case 1674 ;; The user hit C-g while we were waiting: kill the process, in case
1678 ;; it's a gnutls-cli process that's stuck (tends to happen a lot behind 1675 ;; it's a gnutls-cli process that's stuck (tends to happen a lot behind
1679 ;; NAT routers). 1676 ;; NAT routers).
diff --git a/lisp/help-fns.el b/lisp/help-fns.el
index e27a1e47b5c..ede80f858bf 100644
--- a/lisp/help-fns.el
+++ b/lisp/help-fns.el
@@ -534,6 +534,7 @@ If ANY-SYMBOL is non-nil, don't insist the symbol be bound."
534 (with-syntax-table emacs-lisp-mode-syntax-table 534 (with-syntax-table emacs-lisp-mode-syntax-table
535 (or (condition-case () 535 (or (condition-case ()
536 (save-excursion 536 (save-excursion
537 (skip-chars-forward "'")
537 (or (not (zerop (skip-syntax-backward "_w"))) 538 (or (not (zerop (skip-syntax-backward "_w")))
538 (eq (char-syntax (following-char)) ?w) 539 (eq (char-syntax (following-char)) ?w)
539 (eq (char-syntax (following-char)) ?_) 540 (eq (char-syntax (following-char)) ?_)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 3c8628c9cfa..fa36da01cd9 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -704,7 +704,15 @@ scroll the window of possible completions."
704 (when last 704 (when last
705 (setcdr last nil) 705 (setcdr last nil)
706 ;; Prefer shorter completions. 706 ;; Prefer shorter completions.
707 (setq all (sort all (lambda (c1 c2) (< (length c1) (length c2))))) 707 (setq all (sort all (lambda (c1 c2)
708 (let ((s1 (get-text-property
709 0 :completion-cycle-penalty c1))
710 (s2 (get-text-property
711 0 :completion-cycle-penalty c2)))
712 (if (eq s1 s2)
713 (< (length c1) (length c2))
714 (< (or s1 (length c1))
715 (or s2 (length c2))))))))
708 ;; Prefer recently used completions. 716 ;; Prefer recently used completions.
709 (let ((hist (symbol-value minibuffer-history-variable))) 717 (let ((hist (symbol-value minibuffer-history-variable)))
710 (setq all (sort all (lambda (c1 c2) 718 (setq all (sort all (lambda (c1 c2)
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index 4045a443640..c3da1707165 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -511,15 +511,15 @@ TYPE dictates what will be inserted, options are:
511 (with-current-buffer quickurl-list-last-buffer 511 (with-current-buffer quickurl-list-last-buffer
512 (insert 512 (insert
513 (case type 513 (case type
514 ('url (funcall quickurl-format-function url)) 514 (url (funcall quickurl-format-function url))
515 ('naked-url (quickurl-url-url url)) 515 (naked-url (quickurl-url-url url))
516 ('with-lookup (format "%s <URL:%s>" 516 (with-lookup (format "%s <URL:%s>"
517 (quickurl-url-keyword url) 517 (quickurl-url-keyword url)
518 (quickurl-url-url url))) 518 (quickurl-url-url url)))
519 ('with-desc (format "%S <URL:%s>" 519 (with-desc (format "%S <URL:%s>"
520 (quickurl-url-description url) 520 (quickurl-url-description url)
521 (quickurl-url-url url))) 521 (quickurl-url-url url)))
522 ('lookup (quickurl-url-keyword url))))) 522 (lookup (quickurl-url-keyword url)))))
523 (error "No URL details on that line")) 523 (error "No URL details on that line"))
524 url)) 524 url))
525 525
diff --git a/lisp/net/xesam.el b/lisp/net/xesam.el
index 21a22749408..64c26cfb2c9 100644
--- a/lisp/net/xesam.el
+++ b/lisp/net/xesam.el
@@ -414,18 +414,18 @@ If there is no registered search engine at all, the function returns `nil'."
414 ;; Hopefully, this will change later. 414 ;; Hopefully, this will change later.
415 (setq hit-fields 415 (setq hit-fields
416 (case (intern vendor-id) 416 (case (intern vendor-id)
417 ('Beagle 417 (Beagle
418 '("xesam:mimeType" "xesam:url")) 418 '("xesam:mimeType" "xesam:url"))
419 ('Strigi 419 (Strigi
420 '("xesam:author" "xesam:cc" "xesam:charset" 420 '("xesam:author" "xesam:cc" "xesam:charset"
421 "xesam:contentType" "xesam:fileExtension" 421 "xesam:contentType" "xesam:fileExtension"
422 "xesam:id" "xesam:lineCount" "xesam:links" 422 "xesam:id" "xesam:lineCount" "xesam:links"
423 "xesam:mimeType" "xesam:name" "xesam:size" 423 "xesam:mimeType" "xesam:name" "xesam:size"
424 "xesam:sourceModified" "xesam:subject" "xesam:to" 424 "xesam:sourceModified" "xesam:subject" "xesam:to"
425 "xesam:url")) 425 "xesam:url"))
426 ('TrackerXesamSession 426 (TrackerXesamSession
427 '("xesam:relevancyRating" "xesam:url")) 427 '("xesam:relevancyRating" "xesam:url"))
428 ('Debbugs 428 (Debbugs
429 '("xesam:keyword" "xesam:owner" "xesam:title" 429 '("xesam:keyword" "xesam:owner" "xesam:title"
430 "xesam:url" "xesam:sourceModified" "xesam:mimeType" 430 "xesam:url" "xesam:sourceModified" "xesam:mimeType"
431 "debbugs:key")) 431 "debbugs:key"))
diff --git a/lisp/notifications.el b/lisp/notifications.el
index 893b9ed095f..adb9fdd641a 100644
--- a/lisp/notifications.el
+++ b/lisp/notifications.el
@@ -210,8 +210,8 @@ used to manipulate the notification item with
210 (add-to-list 'hints `(:dict-entry 210 (add-to-list 'hints `(:dict-entry
211 "urgency" 211 "urgency"
212 (:variant :byte ,(case urgency 212 (:variant :byte ,(case urgency
213 ('low 0) 213 (low 0)
214 ('critical 2) 214 (critical 2)
215 (t 1)))) t)) 215 (t 1)))) t))
216 (when category 216 (when category
217 (add-to-list 'hints `(:dict-entry 217 (add-to-list 'hints `(:dict-entry
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog
index e75821b6860..44a2cb15b7e 100644
--- a/lisp/org/ChangeLog
+++ b/lisp/org/ChangeLog
@@ -1,3 +1,13 @@
12011-03-15 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * org-src.el (org-src-switch-to-buffer):
4 * org-plot.el (org-plot/gnuplot-script, org-plot/gnuplot):
5 * org-mouse.el (org-mouse-agenda-type):
6 * org-freemind.el (org-freemind-node-to-org):
7 * ob-sql.el (org-babel-execute:sql):
8 * ob-exp.el (org-babel-exp-do-export, org-babel-exp-code):
9 * ob-ref.el (org-babel-ref-resolve): Fix use of case.
10
12011-03-06 Juanma Barranquero <lekktu@gmail.com> 112011-03-06 Juanma Barranquero <lekktu@gmail.com>
2 12
3 * org.el (org-blank-before-new-entry, org-context-in-file-links) 13 * org.el (org-blank-before-new-entry, org-context-in-file-links)
diff --git a/lisp/org/ob-exp.el b/lisp/org/ob-exp.el
index 1be45198e0d..3215bcf4d8a 100644
--- a/lisp/org/ob-exp.el
+++ b/lisp/org/ob-exp.el
@@ -231,10 +231,10 @@ The function respects the value of the :exports header argument."
231 (org-babel-exp-results info type 'silent)))) 231 (org-babel-exp-results info type 'silent))))
232 (clean () (org-babel-remove-result info))) 232 (clean () (org-babel-remove-result info)))
233 (case (intern (or (cdr (assoc :exports (nth 2 info))) "code")) 233 (case (intern (or (cdr (assoc :exports (nth 2 info))) "code"))
234 ('none (silently) (clean) "") 234 (none (silently) (clean) "")
235 ('code (silently) (clean) (org-babel-exp-code info type)) 235 (code (silently) (clean) (org-babel-exp-code info type))
236 ('results (org-babel-exp-results info type)) 236 (results (org-babel-exp-results info type))
237 ('both (concat (org-babel-exp-code info type) 237 (both (concat (org-babel-exp-code info type)
238 "\n\n" 238 "\n\n"
239 (org-babel-exp-results info type)))))) 239 (org-babel-exp-results info type))))))
240 240
@@ -250,8 +250,8 @@ The code block is not evaluated."
250 (name (nth 4 info)) 250 (name (nth 4 info))
251 (args (mapcar #'cdr (org-babel-get-header (nth 2 info) :var)))) 251 (args (mapcar #'cdr (org-babel-get-header (nth 2 info) :var))))
252 (case type 252 (case type
253 ('inline (format "=%s=" body)) 253 (inline (format "=%s=" body))
254 ('block 254 (block
255 (let ((str 255 (let ((str
256 (format "#+BEGIN_SRC %s %s\n%s%s#+END_SRC\n" lang switches body 256 (format "#+BEGIN_SRC %s %s\n%s%s#+END_SRC\n" lang switches body
257 (if (and body (string-match "\n$" body)) 257 (if (and body (string-match "\n$" body))
@@ -265,7 +265,7 @@ The code block is not evaluated."
265 (mapconcat #'identity args ", "))) 265 (mapconcat #'identity args ", ")))
266 str)) 266 str))
267 str)) 267 str))
268 ('lob 268 (lob
269 (let ((call-line (and (string-match "results=" (car args)) 269 (let ((call-line (and (string-match "results=" (car args))
270 (substring (car args) (match-end 0))))) 270 (substring (car args) (match-end 0)))))
271 (cond 271 (cond
diff --git a/lisp/org/ob-ref.el b/lisp/org/ob-ref.el
index 7b06e90f924..96819df8ea1 100644
--- a/lisp/org/ob-ref.el
+++ b/lisp/org/ob-ref.el
@@ -147,12 +147,12 @@ the variable."
147 (let ((params (append args '((:results . "silent"))))) 147 (let ((params (append args '((:results . "silent")))))
148 (setq result 148 (setq result
149 (case type 149 (case type
150 ('results-line (org-babel-read-result)) 150 (results-line (org-babel-read-result))
151 ('table (org-babel-read-table)) 151 (table (org-babel-read-table))
152 ('list (org-babel-read-list)) 152 (list (org-babel-read-list))
153 ('file (org-babel-read-link)) 153 (file (org-babel-read-link))
154 ('source-block (org-babel-execute-src-block nil nil params)) 154 (source-block (org-babel-execute-src-block nil nil params))
155 ('lob (org-babel-execute-src-block nil lob-info params))))) 155 (lob (org-babel-execute-src-block nil lob-info params)))))
156 (if (symbolp result) 156 (if (symbolp result)
157 (format "%S" result) 157 (format "%S" result)
158 (if (and index (listp result)) 158 (if (and index (listp result))
diff --git a/lisp/org/ob-sql.el b/lisp/org/ob-sql.el
index 3bd10d6b2bd..49859d24a17 100644
--- a/lisp/org/ob-sql.el
+++ b/lisp/org/ob-sql.el
@@ -66,18 +66,18 @@ This function is called by `org-babel-execute-src-block'."
66 (out-file (or (cdr (assoc :out-file params)) 66 (out-file (or (cdr (assoc :out-file params))
67 (org-babel-temp-file "sql-out-"))) 67 (org-babel-temp-file "sql-out-")))
68 (command (case (intern engine) 68 (command (case (intern engine)
69 ('msosql (format "osql %s -s \"\t\" -i %s -o %s" 69 (msosql (format "osql %s -s \"\t\" -i %s -o %s"
70 (or cmdline "")
71 (org-babel-process-file-name in-file)
72 (org-babel-process-file-name out-file)))
73 ('mysql (format "mysql %s -e \"source %s\" > %s"
74 (or cmdline "") 70 (or cmdline "")
75 (org-babel-process-file-name in-file) 71 (org-babel-process-file-name in-file)
76 (org-babel-process-file-name out-file))) 72 (org-babel-process-file-name out-file)))
77 ('postgresql (format "psql -A -P footer=off -F \"\t\" -f %s -o %s %s" 73 (mysql (format "mysql %s -e \"source %s\" > %s"
78 (org-babel-process-file-name in-file) 74 (or cmdline "")
79 (org-babel-process-file-name out-file) 75 (org-babel-process-file-name in-file)
80 (or cmdline ""))) 76 (org-babel-process-file-name out-file)))
77 (postgresql (format "psql -A -P footer=off -F \"\t\" -f %s -o %s %s"
78 (org-babel-process-file-name in-file)
79 (org-babel-process-file-name out-file)
80 (or cmdline "")))
81 (t (error "no support for the %s sql engine" engine))))) 81 (t (error "no support for the %s sql engine" engine)))))
82 (with-temp-file in-file 82 (with-temp-file in-file
83 (insert (org-babel-expand-body:sql body params))) 83 (insert (org-babel-expand-body:sql body params)))
diff --git a/lisp/org/org-freemind.el b/lisp/org/org-freemind.el
index c85b4bac36a..dccdf449296 100644
--- a/lisp/org/org-freemind.el
+++ b/lisp/org/org-freemind.el
@@ -1172,8 +1172,8 @@ PATH should be a list of steps, where each step has the form
1172 (when (< 0 (- level skip-levels)) 1172 (when (< 0 (- level skip-levels))
1173 (dolist (attrib attributes) 1173 (dolist (attrib attributes)
1174 (case (car attrib) 1174 (case (car attrib)
1175 ('TEXT (setq text (cdr attrib))) 1175 (TEXT (setq text (cdr attrib)))
1176 ('text (setq text (cdr attrib))))) 1176 (text (setq text (cdr attrib)))))
1177 (unless text 1177 (unless text
1178 ;; There should be a richcontent node holding the text: 1178 ;; There should be a richcontent node holding the text:
1179 (setq text (org-freemind-get-richcontent-node-text node))) 1179 (setq text (org-freemind-get-richcontent-node-text node)))
@@ -1193,7 +1193,7 @@ PATH should be a list of steps, where each step has the form
1193 (setq text (replace-regexp-in-string "\n $" "" text)) 1193 (setq text (replace-regexp-in-string "\n $" "" text))
1194 (insert text)) 1194 (insert text))
1195 (case qname 1195 (case qname
1196 ('node 1196 (node
1197 (insert (make-string (- level skip-levels) ?*) " " text "\n") 1197 (insert (make-string (- level skip-levels) ?*) " " text "\n")
1198 (when note 1198 (when note
1199 (insert ":COMMENT:\n" note "\n:END:\n")) 1199 (insert ":COMMENT:\n" note "\n:END:\n"))
diff --git a/lisp/org/org-mouse.el b/lisp/org/org-mouse.el
index d30f172f42f..cec19d89de1 100644
--- a/lisp/org/org-mouse.el
+++ b/lisp/org/org-mouse.el
@@ -476,11 +476,11 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
476 476
477(defun org-mouse-agenda-type (type) 477(defun org-mouse-agenda-type (type)
478 (case type 478 (case type
479 ('tags "Tags: ") 479 (tags "Tags: ")
480 ('todo "TODO: ") 480 (todo "TODO: ")
481 ('tags-tree "Tags tree: ") 481 (tags-tree "Tags tree: ")
482 ('todo-tree "TODO tree: ") 482 (todo-tree "TODO tree: ")
483 ('occur-tree "Occur tree: ") 483 (occur-tree "Occur tree: ")
484 (t "Agenda command ???"))) 484 (t "Agenda command ???")))
485 485
486 486
diff --git a/lisp/org/org-plot.el b/lisp/org/org-plot.el
index c5f4bff24fa..10722403f7e 100644
--- a/lisp/org/org-plot.el
+++ b/lisp/org/org-plot.el
@@ -206,18 +206,18 @@ manner suitable for prepending to a user-specified script."
206 (y-labels (plist-get params :ylabels)) 206 (y-labels (plist-get params :ylabels))
207 (plot-str "'%s' using %s%d%s with %s title '%s'") 207 (plot-str "'%s' using %s%d%s with %s title '%s'")
208 (plot-cmd (case type 208 (plot-cmd (case type
209 ('2d "plot") 209 (2d "plot")
210 ('3d "splot") 210 (3d "splot")
211 ('grid "splot"))) 211 (grid "splot")))
212 (script "reset") plot-lines) 212 (script "reset") plot-lines)
213 (flet ((add-to-script (line) (setf script (format "%s\n%s" script line)))) 213 (flet ((add-to-script (line) (setf script (format "%s\n%s" script line))))
214 (when file ;; output file 214 (when file ;; output file
215 (add-to-script (format "set term %s" (file-name-extension file))) 215 (add-to-script (format "set term %s" (file-name-extension file)))
216 (add-to-script (format "set output '%s'" file))) 216 (add-to-script (format "set output '%s'" file)))
217 (case type ;; type 217 (case type ;; type
218 ('2d ()) 218 (2d ())
219 ('3d (if map (add-to-script "set map"))) 219 (3d (if map (add-to-script "set map")))
220 ('grid (if map 220 (grid (if map
221 (add-to-script "set pm3d map") 221 (add-to-script "set pm3d map")
222 (add-to-script "set pm3d")))) 222 (add-to-script "set pm3d"))))
223 (when title (add-to-script (format "set title '%s'" title))) ;; title 223 (when title (add-to-script (format "set title '%s'" title))) ;; title
@@ -243,7 +243,7 @@ manner suitable for prepending to a user-specified script."
243 "%Y-%m-%d-%H:%M:%S") "\""))) 243 "%Y-%m-%d-%H:%M:%S") "\"")))
244 (unless preface 244 (unless preface
245 (case type ;; plot command 245 (case type ;; plot command
246 ('2d (dotimes (col num-cols) 246 (2d (dotimes (col num-cols)
247 (unless (and (equal type '2d) 247 (unless (and (equal type '2d)
248 (or (and ind (equal (+ 1 col) ind)) 248 (or (and ind (equal (+ 1 col) ind))
249 (and deps (not (member (+ 1 col) deps))))) 249 (and deps (not (member (+ 1 col) deps)))))
@@ -258,10 +258,10 @@ manner suitable for prepending to a user-specified script."
258 with 258 with
259 (or (nth col col-labels) (format "%d" (+ 1 col)))) 259 (or (nth col col-labels) (format "%d" (+ 1 col))))
260 plot-lines))))) 260 plot-lines)))))
261 ('3d 261 (3d
262 (setq plot-lines (list (format "'%s' matrix with %s title ''" 262 (setq plot-lines (list (format "'%s' matrix with %s title ''"
263 data-file with)))) 263 data-file with))))
264 ('grid 264 (grid
265 (setq plot-lines (list (format "'%s' with %s title ''" 265 (setq plot-lines (list (format "'%s' with %s title ''"
266 data-file with))))) 266 data-file with)))))
267 (add-to-script 267 (add-to-script
@@ -305,9 +305,9 @@ line directly before or after the table."
305 (setf params (org-plot/collect-options params)))) 305 (setf params (org-plot/collect-options params))))
306 ;; dump table to datafile (very different for grid) 306 ;; dump table to datafile (very different for grid)
307 (case (plist-get params :plot-type) 307 (case (plist-get params :plot-type)
308 ('2d (org-plot/gnuplot-to-data table data-file params)) 308 (2d (org-plot/gnuplot-to-data table data-file params))
309 ('3d (org-plot/gnuplot-to-data table data-file params)) 309 (3d (org-plot/gnuplot-to-data table data-file params))
310 ('grid (let ((y-labels (org-plot/gnuplot-to-grid-data 310 (grid (let ((y-labels (org-plot/gnuplot-to-grid-data
311 table data-file params))) 311 table data-file params)))
312 (when y-labels (plist-put params :ylabels y-labels))))) 312 (when y-labels (plist-put params :ylabels y-labels)))))
313 ;; check for timestamp ind column 313 ;; check for timestamp ind column
diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el
index 98fdb75423d..bd1c3802044 100644
--- a/lisp/org/org-src.el
+++ b/lisp/org/org-src.el
@@ -335,26 +335,26 @@ buffer."
335 335
336(defun org-src-switch-to-buffer (buffer context) 336(defun org-src-switch-to-buffer (buffer context)
337 (case org-src-window-setup 337 (case org-src-window-setup
338 ('current-window 338 (current-window
339 (switch-to-buffer buffer)) 339 (switch-to-buffer buffer))
340 ('other-window 340 (other-window
341 (switch-to-buffer-other-window buffer)) 341 (switch-to-buffer-other-window buffer))
342 ('other-frame 342 (other-frame
343 (case context 343 (case context
344 ('exit 344 (exit
345 (let ((frame (selected-frame))) 345 (let ((frame (selected-frame)))
346 (switch-to-buffer-other-frame buffer) 346 (switch-to-buffer-other-frame buffer)
347 (delete-frame frame))) 347 (delete-frame frame)))
348 ('save 348 (save
349 (kill-buffer (current-buffer)) 349 (kill-buffer (current-buffer))
350 (switch-to-buffer buffer)) 350 (switch-to-buffer buffer))
351 (t 351 (t
352 (switch-to-buffer-other-frame buffer)))) 352 (switch-to-buffer-other-frame buffer))))
353 ('reorganize-frame 353 (reorganize-frame
354 (if (eq context 'edit) (delete-other-windows)) 354 (if (eq context 'edit) (delete-other-windows))
355 (org-switch-to-buffer-other-window buffer) 355 (org-switch-to-buffer-other-window buffer)
356 (if (eq context 'exit) (delete-other-windows))) 356 (if (eq context 'exit) (delete-other-windows)))
357 ('switch-invisibly 357 (switch-invisibly
358 (set-buffer buffer)) 358 (set-buffer buffer))
359 (t 359 (t
360 (message "Invalid value %s for org-src-window-setup" 360 (message "Invalid value %s for org-src-window-setup"
diff --git a/lisp/play/bubbles.el b/lisp/play/bubbles.el
index 8fea2cef6ad..0dc556007ba 100644
--- a/lisp/play/bubbles.el
+++ b/lisp/play/bubbles.el
@@ -719,57 +719,57 @@ static char * dot3d_xpm[] = {
719(defsubst bubbles--grid-width () 719(defsubst bubbles--grid-width ()
720 "Return the grid width for the current game theme." 720 "Return the grid width for the current game theme."
721 (car (case bubbles-game-theme 721 (car (case bubbles-game-theme
722 ('easy 722 (easy
723 bubbles--grid-small) 723 bubbles--grid-small)
724 ('medium 724 (medium
725 bubbles--grid-medium) 725 bubbles--grid-medium)
726 ('difficult 726 (difficult
727 bubbles--grid-large) 727 bubbles--grid-large)
728 ('hard 728 (hard
729 bubbles--grid-huge) 729 bubbles--grid-huge)
730 ('user-defined 730 (user-defined
731 bubbles-grid-size)))) 731 bubbles-grid-size))))
732 732
733(defsubst bubbles--grid-height () 733(defsubst bubbles--grid-height ()
734 "Return the grid height for the current game theme." 734 "Return the grid height for the current game theme."
735 (cdr (case bubbles-game-theme 735 (cdr (case bubbles-game-theme
736 ('easy 736 (easy
737 bubbles--grid-small) 737 bubbles--grid-small)
738 ('medium 738 (medium
739 bubbles--grid-medium) 739 bubbles--grid-medium)
740 ('difficult 740 (difficult
741 bubbles--grid-large) 741 bubbles--grid-large)
742 ('hard 742 (hard
743 bubbles--grid-huge) 743 bubbles--grid-huge)
744 ('user-defined 744 (user-defined
745 bubbles-grid-size)))) 745 bubbles-grid-size))))
746 746
747(defsubst bubbles--colors () 747(defsubst bubbles--colors ()
748 "Return the color list for the current game theme." 748 "Return the color list for the current game theme."
749 (case bubbles-game-theme 749 (case bubbles-game-theme
750 ('easy 750 (easy
751 bubbles--colors-2) 751 bubbles--colors-2)
752 ('medium 752 (medium
753 bubbles--colors-3) 753 bubbles--colors-3)
754 ('difficult 754 (difficult
755 bubbles--colors-4) 755 bubbles--colors-4)
756 ('hard 756 (hard
757 bubbles--colors-5) 757 bubbles--colors-5)
758 ('user-defined 758 (user-defined
759 bubbles-colors))) 759 bubbles-colors)))
760 760
761(defsubst bubbles--shift-mode () 761(defsubst bubbles--shift-mode ()
762 "Return the shift mode for the current game theme." 762 "Return the shift mode for the current game theme."
763 (case bubbles-game-theme 763 (case bubbles-game-theme
764 ('easy 764 (easy
765 'default) 765 'default)
766 ('medium 766 (medium
767 'default) 767 'default)
768 ('difficult 768 (difficult
769 'always) 769 'always)
770 ('hard 770 (hard
771 'always) 771 'always)
772 ('user-defined 772 (user-defined
773 bubbles-shift-mode))) 773 bubbles-shift-mode)))
774 774
775(defun bubbles-save-settings () 775(defun bubbles-save-settings ()
@@ -1346,11 +1346,11 @@ Return t if new char is non-empty."
1346 (when (and (display-images-p) 1346 (when (and (display-images-p)
1347 (not (eq bubbles-graphics-theme 'ascii))) 1347 (not (eq bubbles-graphics-theme 'ascii)))
1348 (let ((template (case bubbles-graphics-theme 1348 (let ((template (case bubbles-graphics-theme
1349 ('circles bubbles--image-template-circle) 1349 (circles bubbles--image-template-circle)
1350 ('balls bubbles--image-template-ball) 1350 (balls bubbles--image-template-ball)
1351 ('squares bubbles--image-template-square) 1351 (squares bubbles--image-template-square)
1352 ('diamonds bubbles--image-template-diamond) 1352 (diamonds bubbles--image-template-diamond)
1353 ('emacs bubbles--image-template-emacs)))) 1353 (emacs bubbles--image-template-emacs))))
1354 (setq bubbles--empty-image 1354 (setq bubbles--empty-image
1355 (create-image (replace-regexp-in-string 1355 (create-image (replace-regexp-in-string
1356 "^\"\\(.*\\)\t.*c .*\",$" 1356 "^\"\\(.*\\)\t.*c .*\",$"
diff --git a/lisp/play/gamegrid.el b/lisp/play/gamegrid.el
index d3d8350a43f..99e3b487437 100644
--- a/lisp/play/gamegrid.el
+++ b/lisp/play/gamegrid.el
@@ -213,19 +213,19 @@ static unsigned char gamegrid_bits[] = {
213 (let ((data (gamegrid-match-spec-list data-spec-list)) 213 (let ((data (gamegrid-match-spec-list data-spec-list))
214 (color (gamegrid-match-spec-list color-spec-list))) 214 (color (gamegrid-match-spec-list color-spec-list)))
215 (case data 215 (case data
216 ('color-x 216 (color-x
217 (gamegrid-make-color-x-face color)) 217 (gamegrid-make-color-x-face color))
218 ('grid-x 218 (grid-x
219 (unless gamegrid-grid-x-face 219 (unless gamegrid-grid-x-face
220 (setq gamegrid-grid-x-face (gamegrid-make-grid-x-face))) 220 (setq gamegrid-grid-x-face (gamegrid-make-grid-x-face)))
221 gamegrid-grid-x-face) 221 gamegrid-grid-x-face)
222 ('mono-x 222 (mono-x
223 (unless gamegrid-mono-x-face 223 (unless gamegrid-mono-x-face
224 (setq gamegrid-mono-x-face (gamegrid-make-mono-x-face))) 224 (setq gamegrid-mono-x-face (gamegrid-make-mono-x-face)))
225 gamegrid-mono-x-face) 225 gamegrid-mono-x-face)
226 ('color-tty 226 (color-tty
227 (gamegrid-make-color-tty-face color)) 227 (gamegrid-make-color-tty-face color))
228 ('mono-tty 228 (mono-tty
229 (unless gamegrid-mono-tty-face 229 (unless gamegrid-mono-tty-face
230 (setq gamegrid-mono-tty-face (gamegrid-make-mono-tty-face))) 230 (setq gamegrid-mono-tty-face (gamegrid-make-mono-tty-face)))
231 gamegrid-mono-tty-face)))) 231 gamegrid-mono-tty-face))))
diff --git a/lisp/progmodes/delphi.el b/lisp/progmodes/delphi.el
index c376b25fae0..0f823c806e0 100644
--- a/lisp/progmodes/delphi.el
+++ b/lisp/progmodes/delphi.el
@@ -26,14 +26,14 @@
26 26
27;; To enter Delphi mode when you find a Delphi source file, one must override 27;; To enter Delphi mode when you find a Delphi source file, one must override
28;; the auto-mode-alist to associate Delphi with .pas (and .dpr and .dpk) 28;; the auto-mode-alist to associate Delphi with .pas (and .dpr and .dpk)
29;; files. Emacs, by default, will otherwise enter Pascal mode. E.g. 29;; files. Emacs, by default, will otherwise enter Pascal mode. E.g.
30;; 30;;
31;; (autoload 'delphi-mode "delphi") 31;; (autoload 'delphi-mode "delphi")
32;; (setq auto-mode-alist 32;; (setq auto-mode-alist
33;; (cons '("\\.\\(pas\\|dpr\\|dpk\\)$" . delphi-mode) auto-mode-alist)) 33;; (cons '("\\.\\(pas\\|dpr\\|dpk\\)$" . delphi-mode) auto-mode-alist))
34 34
35;; To get keyword, comment, and string literal coloring, be sure that font-lock 35;; To get keyword, comment, and string literal coloring, be sure that font-lock
36;; is running. One can manually do M-x font-lock-mode in a Delphi buffer, or 36;; is running. One can manually do M-x font-lock-mode in a Delphi buffer, or
37;; one can put in .emacs: 37;; one can put in .emacs:
38;; 38;;
39;; (add-hook 'delphi-mode-hook 'turn-on-font-lock) 39;; (add-hook 'delphi-mode-hook 'turn-on-font-lock)
@@ -56,8 +56,8 @@
56;; When you have entered Delphi mode, you may get more info by pressing 56;; When you have entered Delphi mode, you may get more info by pressing
57;; C-h m. 57;; C-h m.
58 58
59;; This delphi mode implementation is fairly tolerant of syntax errors, relying 59;; This Delphi mode implementation is fairly tolerant of syntax errors, relying
60;; as much as possible on the indentation of the previous statement. This also 60;; as much as possible on the indentation of the previous statement. This also
61;; makes it faster and simpler, since there is less searching for properly 61;; makes it faster and simpler, since there is less searching for properly
62;; constructed beginnings. 62;; constructed beginnings.
63 63
@@ -74,15 +74,16 @@
74 "True if in debug mode.") 74 "True if in debug mode.")
75 75
76(defcustom delphi-search-path "." 76(defcustom delphi-search-path "."
77 "*Directories to search when finding external units. It is a list of 77 "*Directories to search when finding external units.
78directory strings. If only a single directory, it can be a single 78It is a list of directory strings. If only a single directory,
79string instead of a list. If a directory ends in \"...\" then that 79it can be a single string instead of a list. If a directory
80directory is recursively searched." 80ends in \"...\" then that directory is recursively searched."
81 :type 'string 81 :type 'string
82 :group 'delphi) 82 :group 'delphi)
83 83
84(defcustom delphi-indent-level 3 84(defcustom delphi-indent-level 3
85 "*Indentation of Delphi statements with respect to containing block. E.g. 85 "*Indentation of Delphi statements with respect to containing block.
86E.g.
86 87
87begin 88begin
88 // This is an indent of 3. 89 // This is an indent of 3.
@@ -117,7 +118,7 @@ end; end;"
117 :group 'delphi) 118 :group 'delphi)
118 119
119(defcustom delphi-verbose t ; nil 120(defcustom delphi-verbose t ; nil
120 "*If true then delphi token processing progress is reported to the user." 121 "*If true then Delphi token processing progress is reported to the user."
121 :type 'boolean 122 :type 'boolean
122 :group 'delphi) 123 :group 'delphi)
123 124
@@ -137,17 +138,17 @@ differs from the default."
137 :group 'delphi) 138 :group 'delphi)
138 139
139(defcustom delphi-comment-face 'font-lock-comment-face 140(defcustom delphi-comment-face 'font-lock-comment-face
140 "*Face used to color delphi comments." 141 "*Face used to color Delphi comments."
141 :type 'face 142 :type 'face
142 :group 'delphi) 143 :group 'delphi)
143 144
144(defcustom delphi-string-face 'font-lock-string-face 145(defcustom delphi-string-face 'font-lock-string-face
145 "*Face used to color delphi strings." 146 "*Face used to color Delphi strings."
146 :type 'face 147 :type 'face
147 :group 'delphi) 148 :group 'delphi)
148 149
149(defcustom delphi-keyword-face 'font-lock-keyword-face 150(defcustom delphi-keyword-face 'font-lock-keyword-face
150 "*Face used to color delphi keywords." 151 "*Face used to color Delphi keywords."
151 :type 'face 152 :type 'face
152 :group 'delphi) 153 :group 'delphi)
153 154
@@ -720,9 +721,9 @@ routine.")
720 (delphi-progress-done))))) 721 (delphi-progress-done)))))
721 722
722(defvar delphi-ignore-changes t 723(defvar delphi-ignore-changes t
723 "Internal flag to control if the delphi-mode responds to buffer changes. 724 "Internal flag to control if the Delphi mode responds to buffer changes.
724Defaults to t in case the delphi-after-change function is called on a 725Defaults to t in case the `delphi-after-change' function is called on a
725non-delphi buffer. Set to nil in a delphi buffer. To override, just do: 726non-Delphi buffer. Set to nil in a Delphi buffer. To override, just do:
726 (let ((delphi-ignore-changes t)) ...)") 727 (let ((delphi-ignore-changes t)) ...)")
727 728
728(defun delphi-after-change (change-start change-end old-length) 729(defun delphi-after-change (change-start change-end old-length)
@@ -1521,8 +1522,8 @@ non-delphi buffer. Set to nil in a delphi buffer. To override, just do:
1521 indent))) 1522 indent)))
1522 1523
1523(defun delphi-indent-line () 1524(defun delphi-indent-line ()
1524 "Indent the current line according to the current language construct. If 1525 "Indent the current line according to the current language construct.
1525before the indent, the point is moved to the indent." 1526If before the indent, the point is moved to the indent."
1526 (interactive) 1527 (interactive)
1527 (delphi-save-match-data 1528 (delphi-save-match-data
1528 (let ((marked-point (point-marker)) ; Maintain our position reliably. 1529 (let ((marked-point (point-marker)) ; Maintain our position reliably.
@@ -1547,7 +1548,7 @@ before the indent, the point is moved to the indent."
1547 (set-marker marked-point nil)))) 1548 (set-marker marked-point nil))))
1548 1549
1549(defvar delphi-mode-abbrev-table nil 1550(defvar delphi-mode-abbrev-table nil
1550 "Abbrev table in use in delphi-mode buffers.") 1551 "Abbrev table in use in Delphi mode buffers.")
1551(define-abbrev-table 'delphi-mode-abbrev-table ()) 1552(define-abbrev-table 'delphi-mode-abbrev-table ())
1552 1553
1553(defmacro delphi-ensure-buffer (buffer-var buffer-name) 1554(defmacro delphi-ensure-buffer (buffer-var buffer-name)
@@ -1568,7 +1569,7 @@ before the indent, the point is moved to the indent."
1568;; Debugging helpers: 1569;; Debugging helpers:
1569 1570
1570(defvar delphi-debug-buffer nil 1571(defvar delphi-debug-buffer nil
1571 "Buffer to write delphi-mode debug messages to. Created on demand.") 1572 "Buffer to write Delphi mode debug messages to. Created on demand.")
1572 1573
1573(defun delphi-debug-log (format-string &rest args) 1574(defun delphi-debug-log (format-string &rest args)
1574 ;; Writes a message to the log buffer. 1575 ;; Writes a message to the log buffer.
@@ -1679,7 +1680,7 @@ before the indent, the point is moved to the indent."
1679 1680
1680(defun delphi-tab () 1681(defun delphi-tab ()
1681 "Indent the region, when Transient Mark mode is enabled and the region is 1682 "Indent the region, when Transient Mark mode is enabled and the region is
1682active. Otherwise, indent the current line or insert a TAB, depending on the 1683active. Otherwise, indent the current line or insert a TAB, depending on the
1683value of `delphi-tab-always-indents' and the current line position." 1684value of `delphi-tab-always-indents' and the current line position."
1684 (interactive) 1685 (interactive)
1685 (cond ((use-region-p) 1686 (cond ((use-region-p)
@@ -1768,8 +1769,8 @@ value of `delphi-tab-always-indents' and the current line position."
1768 nil)) 1769 nil))
1769 1770
1770(defun delphi-find-unit (unit) 1771(defun delphi-find-unit (unit)
1771 "Finds the specified delphi source file according to `delphi-search-path'. 1772 "Find the specified Delphi source file according to `delphi-search-path'.
1772If no extension is specified, .pas is assumed. Creates a buffer for the unit." 1773If no extension is specified, .pas is assumed. Creates a buffer for the unit."
1773 (interactive "sDelphi unit name: ") 1774 (interactive "sDelphi unit name: ")
1774 (let* ((unit-file (if (string-match "^\\(.*\\)\\.[a-z]+$" unit) 1775 (let* ((unit-file (if (string-match "^\\(.*\\)\\.[a-z]+$" unit)
1775 unit 1776 unit
@@ -1791,7 +1792,7 @@ If no extension is specified, .pas is assumed. Creates a buffer for the unit."
1791 "Find the definition of the identifier under the current point, searching 1792 "Find the definition of the identifier under the current point, searching
1792in external units if necessary (as listed in the current unit's use clause). 1793in external units if necessary (as listed in the current unit's use clause).
1793The set of directories to search for a unit is specified by the global variable 1794The set of directories to search for a unit is specified by the global variable
1794delphi-search-path." 1795`delphi-search-path'."
1795 (interactive) 1796 (interactive)
1796 (error "delphi-find-current-xdef: not implemented yet")) 1797 (error "delphi-find-current-xdef: not implemented yet"))
1797 1798
@@ -1802,7 +1803,7 @@ it is a routine."
1802 (error "delphi-find-current-body: not implemented yet")) 1803 (error "delphi-find-current-body: not implemented yet"))
1803 1804
1804(defun delphi-fill-comment () 1805(defun delphi-fill-comment ()
1805 "Fills the text of the current comment, according to `fill-column'. 1806 "Fill the text of the current comment, according to `fill-column'.
1806An error is raised if not in a comment." 1807An error is raised if not in a comment."
1807 (interactive) 1808 (interactive)
1808 (save-excursion 1809 (save-excursion
@@ -1888,8 +1889,8 @@ An error is raised if not in a comment."
1888 (delphi-progress-done))))))) 1889 (delphi-progress-done)))))))
1889 1890
1890(defun delphi-new-comment-line () 1891(defun delphi-new-comment-line ()
1891 "If in a // comment, does a newline, indented such that one is still in the 1892 "If in a // comment, do a newline, indented such that one is still in the
1892comment block. If not in a // comment, just does a normal newline." 1893comment block. If not in a // comment, just does a normal newline."
1893 (interactive) 1894 (interactive)
1894 (let ((comment (delphi-current-token))) 1895 (let ((comment (delphi-current-token)))
1895 (if (not (eq 'comment-single-line (delphi-token-kind comment))) 1896 (if (not (eq 'comment-single-line (delphi-token-kind comment)))
@@ -1923,7 +1924,7 @@ comment block. If not in a // comment, just does a normal newline."
1923 nil ; Syntax begin movement doesn't apply 1924 nil ; Syntax begin movement doesn't apply
1924 (font-lock-fontify-region-function . delphi-fontify-region) 1925 (font-lock-fontify-region-function . delphi-fontify-region)
1925 (font-lock-verbose . delphi-fontifying-progress-step)) 1926 (font-lock-verbose . delphi-fontifying-progress-step))
1926 "Delphi mode font-lock defaults. Syntactic fontification is ignored.") 1927 "Delphi mode font-lock defaults. Syntactic fontification is ignored.")
1927 1928
1928(defvar delphi-debug-mode-map 1929(defvar delphi-debug-mode-map
1929 (let ((kmap (make-sparse-keymap))) 1930 (let ((kmap (make-sparse-keymap)))
@@ -1944,7 +1945,7 @@ comment block. If not in a // comment, just does a normal newline."
1944 ("x" delphi-debug-show-is-stable) 1945 ("x" delphi-debug-show-is-stable)
1945 )) 1946 ))
1946 kmap) 1947 kmap)
1947 "Keystrokes for delphi-mode debug commands.") 1948 "Keystrokes for Delphi mode debug commands.")
1948 1949
1949(defvar delphi-mode-map 1950(defvar delphi-mode-map
1950 (let ((kmap (make-sparse-keymap))) 1951 (let ((kmap (make-sparse-keymap)))
@@ -1964,7 +1965,7 @@ comment block. If not in a // comment, just does a normal newline."
1964 "Keymap used in Delphi mode.") 1965 "Keymap used in Delphi mode.")
1965 1966
1966(defconst delphi-mode-syntax-table (make-syntax-table) 1967(defconst delphi-mode-syntax-table (make-syntax-table)
1967 "Delphi mode's syntax table. It is just a standard syntax table. 1968 "Delphi mode's syntax table. It is just a standard syntax table.
1968This is ok since we do our own keyword/comment/string face coloring.") 1969This is ok since we do our own keyword/comment/string face coloring.")
1969 1970
1970;;;###autoload 1971;;;###autoload
@@ -1976,7 +1977,7 @@ This is ok since we do our own keyword/comment/string face coloring.")
1976\\[delphi-fill-comment]\t- Fill the current comment. 1977\\[delphi-fill-comment]\t- Fill the current comment.
1977\\[delphi-new-comment-line]\t- If in a // comment, do a new comment line. 1978\\[delphi-new-comment-line]\t- If in a // comment, do a new comment line.
1978 1979
1979M-x indent-region also works for indenting a whole region. 1980\\[indent-region] also works for indenting a whole region.
1980 1981
1981Customization: 1982Customization:
1982 1983
@@ -1996,21 +1997,21 @@ Customization:
1996 `delphi-search-path' (default .) 1997 `delphi-search-path' (default .)
1997 Directories to search when finding external units. 1998 Directories to search when finding external units.
1998 `delphi-verbose' (default nil) 1999 `delphi-verbose' (default nil)
1999 If true then delphi token processing progress is reported to the user. 2000 If true then Delphi token processing progress is reported to the user.
2000 2001
2001Coloring: 2002Coloring:
2002 2003
2003 `delphi-comment-face' (default font-lock-comment-face) 2004 `delphi-comment-face' (default font-lock-comment-face)
2004 Face used to color delphi comments. 2005 Face used to color Delphi comments.
2005 `delphi-string-face' (default font-lock-string-face) 2006 `delphi-string-face' (default font-lock-string-face)
2006 Face used to color delphi strings. 2007 Face used to color Delphi strings.
2007 `delphi-keyword-face' (default font-lock-keyword-face) 2008 `delphi-keyword-face' (default font-lock-keyword-face)
2008 Face used to color delphi keywords. 2009 Face used to color Delphi keywords.
2009 `delphi-other-face' (default nil) 2010 `delphi-other-face' (default nil)
2010 Face used to color everything else. 2011 Face used to color everything else.
2011 2012
2012Turning on Delphi mode calls the value of the variable delphi-mode-hook with 2013Turning on Delphi mode calls the value of the variable `delphi-mode-hook'
2013no args, if that value is non-nil." 2014with no args, if that value is non-nil."
2014 (interactive) 2015 (interactive)
2015 (kill-all-local-variables) 2016 (kill-all-local-variables)
2016 (use-local-map delphi-mode-map) 2017 (use-local-map delphi-mode-map)
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index d674484345a..87e5875c943 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -3566,12 +3566,12 @@ KIND is an additional string printed in the buffer."
3566 (insert kind) 3566 (insert kind)
3567 (indent-to 50) 3567 (indent-to 50)
3568 (insert (case (second info) 3568 (insert (case (second info)
3569 ('ebrowse-ts-member-functions "member function") 3569 (ebrowse-ts-member-functions "member function")
3570 ('ebrowse-ts-member-variables "member variable") 3570 (ebrowse-ts-member-variables "member variable")
3571 ('ebrowse-ts-static-functions "static function") 3571 (ebrowse-ts-static-functions "static function")
3572 ('ebrowse-ts-static-variables "static variable") 3572 (ebrowse-ts-static-variables "static variable")
3573 ('ebrowse-ts-friends (if globals-p "define" "friend")) 3573 (ebrowse-ts-friends (if globals-p "define" "friend"))
3574 ('ebrowse-ts-types "type") 3574 (ebrowse-ts-types "type")
3575 (t "unknown")) 3575 (t "unknown"))
3576 "\n"))) 3576 "\n")))
3577 3577
diff --git a/lisp/progmodes/ruby-mode.el b/lisp/progmodes/ruby-mode.el
index 9d40b4d8fd7..c8b156c5441 100644
--- a/lisp/progmodes/ruby-mode.el
+++ b/lisp/progmodes/ruby-mode.el
@@ -974,7 +974,7 @@ With ARG, do it many times. Negative ARG means move forward."
974 (goto-char (scan-sexps (1+ (point)) -1)) 974 (goto-char (scan-sexps (1+ (point)) -1))
975 (case (char-before) 975 (case (char-before)
976 (?% (forward-char -1)) 976 (?% (forward-char -1))
977 ('(?q ?Q ?w ?W ?r ?x) 977 ((?q ?Q ?w ?W ?r ?x)
978 (if (eq (char-before (1- (point))) ?%) (forward-char -2)))) 978 (if (eq (char-before (1- (point))) ?%) (forward-char -2))))
979 nil) 979 nil)
980 ((looking-at "\\s\"\\|\\\\\\S_") 980 ((looking-at "\\s\"\\|\\\\\\S_")
diff --git a/lisp/shell.el b/lisp/shell.el
index bceea990baf..dde81c6cb95 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -583,6 +583,21 @@ Otherwise, one argument `-i' is passed to the shell.
583 (get-buffer-create (or buffer "*shell*")) 583 (get-buffer-create (or buffer "*shell*"))
584 ;; If the current buffer is a dead shell buffer, use it. 584 ;; If the current buffer is a dead shell buffer, use it.
585 (current-buffer))) 585 (current-buffer)))
586
587 ;; On remote hosts, the local `shell-file-name' might be useless.
588 (if (and (interactive-p)
589 (file-remote-p default-directory)
590 (null explicit-shell-file-name)
591 (null (getenv "ESHELL")))
592 (with-current-buffer buffer
593 (set (make-local-variable 'explicit-shell-file-name)
594 (file-remote-p
595 (expand-file-name
596 (read-file-name
597 "Remote shell path: " default-directory shell-file-name
598 t shell-file-name))
599 'localname))))
600
586 ;; Pop to buffer, so that the buffer's window will be correctly set 601 ;; Pop to buffer, so that the buffer's window will be correctly set
587 ;; when we call comint (so that comint sets the COLUMNS env var properly). 602 ;; when we call comint (so that comint sets the COLUMNS env var properly).
588 (pop-to-buffer buffer) 603 (pop-to-buffer buffer)
diff --git a/lisp/startup.el b/lisp/startup.el
index 384d81391ab..65b1a013c21 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1006,19 +1006,23 @@ opening the first frame (e.g. open a connection to an X server).")
1006 (if init-file-user 1006 (if init-file-user
1007 (let ((user-init-file-1 1007 (let ((user-init-file-1
1008 (cond 1008 (cond
1009 ((eq system-type 'ms-dos) 1009 ((eq system-type 'ms-dos)
1010 (concat "~" init-file-user "/_emacs")) 1010 (concat "~" init-file-user "/_emacs"))
1011 ((eq system-type 'windows-nt) 1011 ((not (eq system-type 'windows-nt))
1012 ;; Prefer .emacs on Windows. 1012 (concat "~" init-file-user "/.emacs"))
1013 (if (directory-files "~" nil "^\\.emacs\\(\\.elc?\\)?$") 1013 ;; Else deal with the Windows situation
1014 "~/.emacs" 1014 ((directory-files "~" nil "^\\.emacs\\(\\.elc?\\)?$")
1015 ;; Also support _emacs for compatibility. 1015 ;; Prefer .emacs on Windows.
1016 (if (directory-files "~" nil "^_emacs\\(\\.elc?\\)?$") 1016 "~/.emacs")
1017 "~/_emacs" 1017 ((directory-files "~" nil "^_emacs\\(\\.elc?\\)?$")
1018 ;; But default to .emacs if _emacs does not exist. 1018 ;; Also support _emacs for compatibility, but warn about it.
1019 "~/.emacs"))) 1019 (display-warning
1020 (t 1020 'initialization
1021 (concat "~" init-file-user "/.emacs"))))) 1021 "`_emacs' init file is deprecated, please use `.emacs'"
1022 :warning)
1023 "~/_emacs")
1024 (t ;; But default to .emacs if _emacs does not exist.
1025 "~/.emacs"))))
1022 ;; This tells `load' to store the file name found 1026 ;; This tells `load' to store the file name found
1023 ;; into user-init-file. 1027 ;; into user-init-file.
1024 (setq user-init-file t) 1028 (setq user-init-file t)
@@ -1191,7 +1195,7 @@ the `--debug-init' option to view a complete error backtrace."
1191 (dolist (subdir (directory-files dir)) 1195 (dolist (subdir (directory-files dir))
1192 (when (and (file-directory-p (expand-file-name subdir dir)) 1196 (when (and (file-directory-p (expand-file-name subdir dir))
1193 ;; package-subdirectory-regexp from package.el 1197 ;; package-subdirectory-regexp from package.el
1194 (string-match "^\\([^.].*\\)-\\([0-9]+\\(?:[.][0-9]+\\)*\\)$" 1198 (string-match "\\`\\([^.].*?\\)-\\([0-9]+\\(?:[.][0-9]+\\|\\(?:pre\\|beta\\|alpha\\)[0-9]+\\)*\\)\\'"
1195 subdir)) 1199 subdir))
1196 (throw 'package-dir-found t))))))) 1200 (throw 'package-dir-found t)))))))
1197 (package-initialize)) 1201 (package-initialize))
diff --git a/lisp/subr.el b/lisp/subr.el
index 3330fa20379..6f39a41709e 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2003,24 +2003,24 @@ If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
2003keyboard-quit events while waiting for a valid input." 2003keyboard-quit events while waiting for a valid input."
2004 (unless (consp chars) 2004 (unless (consp chars)
2005 (error "Called `read-char-choice' without valid char choices")) 2005 (error "Called `read-char-choice' without valid char choices"))
2006 (let ((cursor-in-echo-area t) 2006 (let (char done)
2007 (executing-kbd-macro executing-kbd-macro) 2007 (let ((cursor-in-echo-area t)
2008 char done) 2008 (executing-kbd-macro executing-kbd-macro))
2009 (while (not done) 2009 (while (not done)
2010 (unless (get-text-property 0 'face prompt) 2010 (unless (get-text-property 0 'face prompt)
2011 (setq prompt (propertize prompt 'face 'minibuffer-prompt))) 2011 (setq prompt (propertize prompt 'face 'minibuffer-prompt)))
2012 (setq char (let ((inhibit-quit inhibit-keyboard-quit)) 2012 (setq char (let ((inhibit-quit inhibit-keyboard-quit))
2013 (read-key prompt))) 2013 (read-key prompt)))
2014 (cond 2014 (cond
2015 ((not (numberp char))) 2015 ((not (numberp char)))
2016 ((memq char chars) 2016 ((memq char chars)
2017 (setq done t)) 2017 (setq done t))
2018 ((and executing-kbd-macro (= char -1)) 2018 ((and executing-kbd-macro (= char -1))
2019 ;; read-event returns -1 if we are in a kbd macro and 2019 ;; read-event returns -1 if we are in a kbd macro and
2020 ;; there are no more events in the macro. Attempt to 2020 ;; there are no more events in the macro. Attempt to
2021 ;; get an event interactively. 2021 ;; get an event interactively.
2022 (setq executing-kbd-macro nil)))) 2022 (setq executing-kbd-macro nil)))))
2023 ;; Display the question with the answer. 2023 ;; Display the question with the answer. But without cursor-in-echo-area.
2024 (message "%s%s" prompt (char-to-string char)) 2024 (message "%s%s" prompt (char-to-string char))
2025 char)) 2025 char))
2026 2026
diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el
index d4970207b94..01b6f2fc26e 100644
--- a/lisp/vc/vc-dir.el
+++ b/lisp/vc/vc-dir.el
@@ -104,7 +104,7 @@ See `run-hooks'."
104 ;; We pass a filename to create-file-buffer because it is what 104 ;; We pass a filename to create-file-buffer because it is what
105 ;; the function expects, and also what uniquify needs (if active) 105 ;; the function expects, and also what uniquify needs (if active)
106 (with-current-buffer (create-file-buffer (expand-file-name bname dir)) 106 (with-current-buffer (create-file-buffer (expand-file-name bname dir))
107 (cd dir) 107 (setq default-directory dir)
108 (vc-setup-buffer (current-buffer)) 108 (vc-setup-buffer (current-buffer))
109 ;; Reset the vc-parent-buffer-name so that it does not appear 109 ;; Reset the vc-parent-buffer-name so that it does not appear
110 ;; in the mode-line. 110 ;; in the mode-line.
@@ -1002,7 +1002,7 @@ specific headers."
1002 (generate-new-buffer (format " *VC-%s* tmp status" backend)))) 1002 (generate-new-buffer (format " *VC-%s* tmp status" backend))))
1003 (lexical-let ((buffer (current-buffer))) 1003 (lexical-let ((buffer (current-buffer)))
1004 (with-current-buffer vc-dir-process-buffer 1004 (with-current-buffer vc-dir-process-buffer
1005 (cd def-dir) 1005 (setq default-directory def-dir)
1006 (erase-buffer) 1006 (erase-buffer)
1007 (vc-call-backend 1007 (vc-call-backend
1008 backend 'dir-status-files def-dir files default-state 1008 backend 'dir-status-files def-dir files default-state
@@ -1067,7 +1067,7 @@ Throw an error if another update process is in progress."
1067 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "") 1067 (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")
1068 (lexical-let ((buffer (current-buffer))) 1068 (lexical-let ((buffer (current-buffer)))
1069 (with-current-buffer vc-dir-process-buffer 1069 (with-current-buffer vc-dir-process-buffer
1070 (cd def-dir) 1070 (setq default-directory def-dir)
1071 (erase-buffer) 1071 (erase-buffer)
1072 (vc-call-backend 1072 (vc-call-backend
1073 backend 'dir-status def-dir 1073 backend 'dir-status def-dir
diff --git a/lisp/vc/vc-hg.el b/lisp/vc/vc-hg.el
index 4ac7ef15fc7..0516abbf024 100644
--- a/lisp/vc/vc-hg.el
+++ b/lisp/vc/vc-hg.el
@@ -529,9 +529,9 @@ REV is the revision to check out into WORKFILE."
529 (insert (propertize 529 (insert (propertize
530 (format " (%s %s)" 530 (format " (%s %s)"
531 (case (vc-hg-extra-fileinfo->rename-state extra) 531 (case (vc-hg-extra-fileinfo->rename-state extra)
532 ('copied "copied from") 532 (copied "copied from")
533 ('renamed-from "renamed from") 533 (renamed-from "renamed from")
534 ('renamed-to "renamed to")) 534 (renamed-to "renamed to"))
535 (vc-hg-extra-fileinfo->extra-name extra)) 535 (vc-hg-extra-fileinfo->extra-name extra))
536 'face 'font-lock-comment-face))))) 536 'face 'font-lock-comment-face)))))
537 537
diff --git a/src/ChangeLog b/src/ChangeLog
index 2b7d5289e67..7243eb23527 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -26,8 +26,6 @@
26 26
27 * deps.mk (unexalpha.o): Remove; unused. 27 * deps.mk (unexalpha.o): Remove; unused.
28 28
292011-03-16 Paul Eggert <eggert@cs.ucla.edu>
30
31 New file unexec.h, the (simple) interface for unexec (Bug#8267). 29 New file unexec.h, the (simple) interface for unexec (Bug#8267).
32 * unexec.h: New file. 30 * unexec.h: New file.
33 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o): 31 * deps.mk (emacs.o, unexaix.o, unexcw.o, unexcoff.o, unexelf.o):
@@ -98,8 +96,6 @@
98 Rename or remove local vars to avoid shadowing. 96 Rename or remove local vars to avoid shadowing.
99 (Ftranslate_region_internal): Mark var as initialized. 97 (Ftranslate_region_internal): Mark var as initialized.
100 98
1012011-03-15 Paul Eggert <eggert@cs.ucla.edu>
102
103 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to 99 * doc.c (Fdocumentation, Fsnarf_documentation): Move locals to
104 avoid shadowing. 100 avoid shadowing.
105 101
@@ -249,10 +245,7 @@
249 (fix_start_end_in_overlays): Likewise. This function should be 245 (fix_start_end_in_overlays): Likewise. This function should be
250 simplified by using pointers-to-pointers, but that's a different 246 simplified by using pointers-to-pointers, but that's a different
251 matter. 247 matter.
252 248 (switch_to_buffer_1): Now static.
2532011-03-14 Paul Eggert <eggert@cs.ucla.edu>
254
255 * buffer.c (switch_to_buffer_1): Now static.
256 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte): 249 (Fkill_buffer, record_buffer, Fbury_buffer, Fset_buffer_multibyte):
257 (report_overlay_modification): Rename locals to avoid shadowing. 250 (report_overlay_modification): Rename locals to avoid shadowing.
258 251
@@ -317,6 +310,51 @@
317 if GCC considers string literals to be constants. 310 if GCC considers string literals to be constants.
318 (Fdbus_register_service, Fdbus_register_method): Remove unused vars. 311 (Fdbus_register_service, Fdbus_register_method): Remove unused vars.
319 312
3132011-03-16 Stefan Monnier <monnier@iro.umontreal.ca>
314
315 * print.c (PRINT_CIRCLE_CANDIDATE_P): New macro.
316 (print_preprocess, print_object): New macro to fix last change.
317
318 * print.c (print_preprocess): Don't forget font objects.
319
3202011-03-16 Juanma Barranquero <lekktu@gmail.com>
321
322 * emacs.c (USAGE3): Doc fixes.
323
3242011-03-15 Andreas Schwab <schwab@linux-m68k.org>
325
326 * coding.c (detect_coding_iso_2022): Reorganize code to clarify
327 structure.
328
3292011-03-14 Juanma Barranquero <lekktu@gmail.com>
330
331 * lisp.h (VWindow_system, Qfile_name_history):
332 * keyboard.h (lispy_function_keys) [WINDOWSNT]:
333 * w32term.h (w32_system_caret_hwnd, w32_system_caret_height)
334 (w32_system_caret_x, w32_system_caret_y): Declare extern.
335
336 * w32select.c: Don't #include "keyboard.h".
337 (run_protected): Add extern declaration for waiting_for_input.
338
339 * w32.c (Qlocal, noninteractive1, inhibit_window_system):
340 * w32console.c (detect_input_pending, read_input_pending)
341 (encode_terminal_code):
342 * w32fns.c (quit_char, lispy_function_keys, Qtooltip)
343 (w32_system_caret_hwnd, w32_system_caret_height, w32_system_caret_x)
344 (w32_system_caret_y, Qfile_name_history):
345 * w32font.c (w32font_driver, QCantialias, QCotf, QClang):
346 * w32inevt.c (reinvoke_input_signal, lispy_function_keys):
347 * w32menu.c (Qmenu_bar, QCtoggle, QCradio, Qoverriding_local_map)
348 (Qoverriding_terminal_local_map, Qmenu_bar_update_hook):
349 * w32proc.c (Qlocal, report_file_error):
350 * w32term.c (Vwindow_system, updating_frame):
351 * w32uniscribe.c (initialized, uniscribe_font_driver):
352 Remove unneeded extern declarations.
353
3542011-03-14 Chong Yidong <cyd@stupidchicken.com>
355
356 * buffer.c (Fmake_indirect_buffer): Fix incorrect assertions.
357
3202011-03-13 Chong Yidong <cyd@stupidchicken.com> 3582011-03-13 Chong Yidong <cyd@stupidchicken.com>
321 359
322 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT) 360 * buffer.h (BUF_BEGV, BUF_BEGV_BYTE, BUF_ZV, BUF_ZV_BYTE, BUF_PT)
@@ -420,7 +458,7 @@
420 458
4212011-03-12 Eli Zaretskii <eliz@gnu.org> 4592011-03-12 Eli Zaretskii <eliz@gnu.org>
422 460
423 * termcap.c [MSDOS]: Include "msdos.h. 461 * termcap.c [MSDOS]: Include "msdos.h".
424 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent): 462 (find_capability, tgetnum, tgetflag, tgetstr, tputs, tgetent):
425 Constify `char *' arguments and their references according to 463 Constify `char *' arguments and their references according to
426 prototypes in tparam.h. 464 prototypes in tparam.h.
diff --git a/src/buffer.c b/src/buffer.c
index b718bf3e576..c0e6866dee1 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -611,8 +611,8 @@ CLONE nil means the indirect buffer's state is reset to default values. */)
611 /* Make sure the base buffer has markers for its narrowing. */ 611 /* Make sure the base buffer has markers for its narrowing. */
612 if (NILP (BVAR (b->base_buffer, pt_marker))) 612 if (NILP (BVAR (b->base_buffer, pt_marker)))
613 { 613 {
614 eassert (NILP (BVAR (b, begv_marker))); 614 eassert (NILP (BVAR (b->base_buffer, begv_marker)));
615 eassert (NILP (BVAR (b, zv_marker))); 615 eassert (NILP (BVAR (b->base_buffer, zv_marker)));
616 616
617 BVAR (b->base_buffer, pt_marker) = Fmake_marker (); 617 BVAR (b->base_buffer, pt_marker) = Fmake_marker ();
618 set_marker_both (BVAR (b->base_buffer, pt_marker), base_buffer, 618 set_marker_both (BVAR (b->base_buffer, pt_marker), base_buffer,
diff --git a/src/coding.c b/src/coding.c
index 9a6a4484e50..0c2836c19f6 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -2954,12 +2954,7 @@ detect_coding_iso_2022 (struct coding_system *coding,
2954 const unsigned char *src_end = coding->source + coding->src_bytes; 2954 const unsigned char *src_end = coding->source + coding->src_bytes;
2955 int multibytep = coding->src_multibyte; 2955 int multibytep = coding->src_multibyte;
2956 int single_shifting = 0; 2956 int single_shifting = 0;
2957 2957 int id;
2958 /* FIXME: Does ID need to be initialized here? The "End of composition"
2959 code below does not initialize ID even though ID is used
2960 afterwards, and perhaps that is a bug. */
2961 int id = 0;
2962
2963 int c, c1; 2958 int c, c1;
2964 int consumed_chars = 0; 2959 int consumed_chars = 0;
2965 int i; 2960 int i;
@@ -2999,40 +2994,11 @@ detect_coding_iso_2022 (struct coding_system *coding,
2999 break; 2994 break;
3000 single_shifting = 0; 2995 single_shifting = 0;
3001 ONE_MORE_BYTE (c); 2996 ONE_MORE_BYTE (c);
3002 if (c >= '(' && c <= '/') 2997 if (c == 'N' || c == 'O')
3003 {
3004 /* Designation sequence for a charset of dimension 1. */
3005 ONE_MORE_BYTE (c1);
3006 if (c1 < ' ' || c1 >= 0x80
3007 || (id = iso_charset_table[0][c >= ','][c1]) < 0)
3008 /* Invalid designation sequence. Just ignore. */
3009 break;
3010 }
3011 else if (c == '$')
3012 {
3013 /* Designation sequence for a charset of dimension 2. */
3014 ONE_MORE_BYTE (c);
3015 if (c >= '@' && c <= 'B')
3016 /* Designation for JISX0208.1978, GB2312, or JISX0208. */
3017 id = iso_charset_table[1][0][c];
3018 else if (c >= '(' && c <= '/')
3019 {
3020 ONE_MORE_BYTE (c1);
3021 if (c1 < ' ' || c1 >= 0x80
3022 || (id = iso_charset_table[1][c >= ','][c1]) < 0)
3023 /* Invalid designation sequence. Just ignore. */
3024 break;
3025 }
3026 else
3027 /* Invalid designation sequence. Just ignore it. */
3028 break;
3029 }
3030 else if (c == 'N' || c == 'O')
3031 { 2998 {
3032 /* ESC <Fe> for SS2 or SS3. */ 2999 /* ESC <Fe> for SS2 or SS3. */
3033 single_shifting = 1; 3000 single_shifting = 1;
3034 rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT; 3001 rejected |= CATEGORY_MASK_ISO_7BIT | CATEGORY_MASK_ISO_8BIT;
3035 break;
3036 } 3002 }
3037 else if (c == '1') 3003 else if (c == '1')
3038 { 3004 {
@@ -3048,36 +3014,66 @@ detect_coding_iso_2022 (struct coding_system *coding,
3048 { 3014 {
3049 /* ESC <Fp> for start/end composition. */ 3015 /* ESC <Fp> for start/end composition. */
3050 composition_count = 0; 3016 composition_count = 0;
3051 break;
3052 } 3017 }
3053 else 3018 else
3054 { 3019 {
3055 /* Invalid escape sequence. Just ignore it. */ 3020 if (c >= '(' && c <= '/')
3056 break; 3021 {
3057 } 3022 /* Designation sequence for a charset of dimension 1. */
3023 ONE_MORE_BYTE (c1);
3024 if (c1 < ' ' || c1 >= 0x80
3025 || (id = iso_charset_table[0][c >= ','][c1]) < 0)
3026 /* Invalid designation sequence. Just ignore. */
3027 break;
3028 }
3029 else if (c == '$')
3030 {
3031 /* Designation sequence for a charset of dimension 2. */
3032 ONE_MORE_BYTE (c);
3033 if (c >= '@' && c <= 'B')
3034 /* Designation for JISX0208.1978, GB2312, or JISX0208. */
3035 id = iso_charset_table[1][0][c];
3036 else if (c >= '(' && c <= '/')
3037 {
3038 ONE_MORE_BYTE (c1);
3039 if (c1 < ' ' || c1 >= 0x80
3040 || (id = iso_charset_table[1][c >= ','][c1]) < 0)
3041 /* Invalid designation sequence. Just ignore. */
3042 break;
3043 }
3044 else
3045 /* Invalid designation sequence. Just ignore it. */
3046 break;
3047 }
3048 else
3049 {
3050 /* Invalid escape sequence. Just ignore it. */
3051 break;
3052 }
3058 3053
3059 /* We found a valid designation sequence for CHARSET. */ 3054 /* We found a valid designation sequence for CHARSET. */
3060 rejected |= CATEGORY_MASK_ISO_8BIT; 3055 rejected |= CATEGORY_MASK_ISO_8BIT;
3061 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7], 3056 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7],
3062 id)) 3057 id))
3063 found |= CATEGORY_MASK_ISO_7; 3058 found |= CATEGORY_MASK_ISO_7;
3064 else 3059 else
3065 rejected |= CATEGORY_MASK_ISO_7; 3060 rejected |= CATEGORY_MASK_ISO_7;
3066 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_tight], 3061 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_tight],
3067 id)) 3062 id))
3068 found |= CATEGORY_MASK_ISO_7_TIGHT; 3063 found |= CATEGORY_MASK_ISO_7_TIGHT;
3069 else 3064 else
3070 rejected |= CATEGORY_MASK_ISO_7_TIGHT; 3065 rejected |= CATEGORY_MASK_ISO_7_TIGHT;
3071 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_else], 3066 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_7_else],
3072 id)) 3067 id))
3073 found |= CATEGORY_MASK_ISO_7_ELSE; 3068 found |= CATEGORY_MASK_ISO_7_ELSE;
3074 else 3069 else
3075 rejected |= CATEGORY_MASK_ISO_7_ELSE; 3070 rejected |= CATEGORY_MASK_ISO_7_ELSE;
3076 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_8_else], 3071 if (SAFE_CHARSET_P (&coding_categories[coding_category_iso_8_else],
3077 id)) 3072 id))
3078 found |= CATEGORY_MASK_ISO_8_ELSE; 3073 found |= CATEGORY_MASK_ISO_8_ELSE;
3079 else 3074 else
3080 rejected |= CATEGORY_MASK_ISO_8_ELSE; 3075 rejected |= CATEGORY_MASK_ISO_8_ELSE;
3076 }
3081 break; 3077 break;
3082 3078
3083 case ISO_CODE_SO: 3079 case ISO_CODE_SO:
@@ -3105,13 +3101,32 @@ detect_coding_iso_2022 (struct coding_system *coding,
3105 rejected |= CATEGORY_MASK_ISO_7BIT; 3101 rejected |= CATEGORY_MASK_ISO_7BIT;
3106 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1]) 3102 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
3107 & CODING_ISO_FLAG_SINGLE_SHIFT) 3103 & CODING_ISO_FLAG_SINGLE_SHIFT)
3108 found |= CATEGORY_MASK_ISO_8_1, single_shifting = 1; 3104 {
3105 found |= CATEGORY_MASK_ISO_8_1;
3106 single_shifting = 1;
3107 }
3109 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_2]) 3108 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_2])
3110 & CODING_ISO_FLAG_SINGLE_SHIFT) 3109 & CODING_ISO_FLAG_SINGLE_SHIFT)
3111 found |= CATEGORY_MASK_ISO_8_2, single_shifting = 1; 3110 {
3111 found |= CATEGORY_MASK_ISO_8_2;
3112 single_shifting = 1;
3113 }
3112 if (single_shifting) 3114 if (single_shifting)
3113 break; 3115 break;
3114 goto check_extra_latin; 3116 check_extra_latin:
3117 if (! VECTORP (Vlatin_extra_code_table)
3118 || NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
3119 {
3120 rejected = CATEGORY_MASK_ISO;
3121 break;
3122 }
3123 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
3124 & CODING_ISO_FLAG_LATIN_EXTRA)
3125 found |= CATEGORY_MASK_ISO_8_1;
3126 else
3127 rejected |= CATEGORY_MASK_ISO_8_1;
3128 rejected |= CATEGORY_MASK_ISO_8_2;
3129 break;
3115 3130
3116 default: 3131 default:
3117 if (c < 0) 3132 if (c < 0)
@@ -3162,20 +3177,6 @@ detect_coding_iso_2022 (struct coding_system *coding,
3162 } 3177 }
3163 break; 3178 break;
3164 } 3179 }
3165 check_extra_latin:
3166 single_shifting = 0;
3167 if (! VECTORP (Vlatin_extra_code_table)
3168 || NILP (XVECTOR (Vlatin_extra_code_table)->contents[c]))
3169 {
3170 rejected = CATEGORY_MASK_ISO;
3171 break;
3172 }
3173 if (CODING_ISO_FLAGS (&coding_categories[coding_category_iso_8_1])
3174 & CODING_ISO_FLAG_LATIN_EXTRA)
3175 found |= CATEGORY_MASK_ISO_8_1;
3176 else
3177 rejected |= CATEGORY_MASK_ISO_8_1;
3178 rejected |= CATEGORY_MASK_ISO_8_2;
3179 } 3180 }
3180 } 3181 }
3181 detect_info->rejected |= CATEGORY_MASK_ISO; 3182 detect_info->rejected |= CATEGORY_MASK_ISO;
diff --git a/src/emacs.c b/src/emacs.c
index d30d42f1ee4..052f22ea622 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -141,7 +141,7 @@ Lisp_Object Qfile_name_handler_alist;
141 141
142Lisp_Object Qrisky_local_variable; 142Lisp_Object Qrisky_local_variable;
143 143
144/* If non-zero, emacs should not attempt to use a window-specific code, 144/* If non-zero, Emacs should not attempt to use a window-specific code,
145 but instead should use the virtual terminal under which it was started. */ 145 but instead should use the virtual terminal under which it was started. */
146int inhibit_window_system; 146int inhibit_window_system;
147 147
@@ -169,7 +169,6 @@ static unsigned long heap_bss_diff;
169#define MAX_HEAP_BSS_DIFF (1024*1024) 169#define MAX_HEAP_BSS_DIFF (1024*1024)
170 170
171/* Nonzero means running Emacs without interactive terminal. */ 171/* Nonzero means running Emacs without interactive terminal. */
172
173int noninteractive; 172int noninteractive;
174 173
175/* Nonzero means remove site-lisp directories from load-path. */ 174/* Nonzero means remove site-lisp directories from load-path. */
@@ -249,14 +248,14 @@ Display options:\n\
249--border-color, -bd COLOR main border color\n\ 248--border-color, -bd COLOR main border color\n\
250--border-width, -bw WIDTH width of main border\n\ 249--border-width, -bw WIDTH width of main border\n\
251--color, --color=MODE override color mode for character terminals;\n\ 250--color, --color=MODE override color mode for character terminals;\n\
252 MODE defaults to `auto', and can also\n\ 251 MODE defaults to `auto', and\n\
253 be `never', `auto', `always',\n\ 252 can also be `never', `always',\n\
254 or a mode name like `ansi8'\n\ 253 or a mode name like `ansi8'\n\
255--cursor-color, -cr COLOR color of the Emacs cursor indicating point\n\ 254--cursor-color, -cr COLOR color of the Emacs cursor indicating point\n\
256--font, -fn FONT default font; must be fixed-width\n\ 255--font, -fn FONT default font; must be fixed-width\n\
257--foreground-color, -fg COLOR window foreground color\n\ 256--foreground-color, -fg COLOR window foreground color\n\
258--fullheight, -fh make the first frame high as the screen\n\ 257--fullheight, -fh make the first frame high as the screen\n\
259--fullscreen, -fs make first frame fullscreen\n\ 258--fullscreen, -fs make the first frame fullscreen\n\
260--fullwidth, -fw make the first frame wide as the screen\n\ 259--fullwidth, -fw make the first frame wide as the screen\n\
261--maximized, -mm make the first frame maximized\n\ 260--maximized, -mm make the first frame maximized\n\
262--geometry, -g GEOMETRY window geometry\n\ 261--geometry, -g GEOMETRY window geometry\n\
@@ -577,7 +576,8 @@ DEFINE_DUMMY_FUNCTION (__main)
577 enough information to do it right. */ 576 enough information to do it right. */
578 577
579static int 578static int
580argmatch (char **argv, int argc, const char *sstr, const char *lstr, int minlen, char **valptr, int *skipptr) 579argmatch (char **argv, int argc, const char *sstr, const char *lstr,
580 int minlen, char **valptr, int *skipptr)
581{ 581{
582 char *p = NULL; 582 char *p = NULL;
583 int arglen; 583 int arglen;
diff --git a/src/keyboard.h b/src/keyboard.h
index 765979b3997..00745a09140 100644
--- a/src/keyboard.h
+++ b/src/keyboard.h
@@ -519,3 +519,7 @@ extern int tty_read_avail_input (struct terminal *, int,
519 struct input_event *); 519 struct input_event *);
520extern EMACS_TIME timer_check (int); 520extern EMACS_TIME timer_check (int);
521extern void mark_kboards (void); 521extern void mark_kboards (void);
522
523#ifdef WINDOWSNT
524extern const char *const lispy_function_keys[];
525#endif
diff --git a/src/lisp.h b/src/lisp.h
index 04d75d55dc6..283b0989c1d 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2581,6 +2581,7 @@ extern void syms_of_insdel (void);
2581 2581
2582/* Defined in dispnew.c */ 2582/* Defined in dispnew.c */
2583extern Lisp_Object selected_frame; 2583extern Lisp_Object selected_frame;
2584extern Lisp_Object Vwindow_system;
2584EXFUN (Fding, 1); 2585EXFUN (Fding, 1);
2585EXFUN (Fredraw_frame, 1); 2586EXFUN (Fredraw_frame, 1);
2586EXFUN (Fsleep_for, 2); 2587EXFUN (Fsleep_for, 2);
@@ -2990,6 +2991,7 @@ extern Lisp_Object Qfile_error;
2990extern Lisp_Object Qfile_exists_p; 2991extern Lisp_Object Qfile_exists_p;
2991extern Lisp_Object Qfile_directory_p; 2992extern Lisp_Object Qfile_directory_p;
2992extern Lisp_Object Qinsert_file_contents; 2993extern Lisp_Object Qinsert_file_contents;
2994extern Lisp_Object Qfile_name_history;
2993EXFUN (Ffind_file_name_handler, 2); 2995EXFUN (Ffind_file_name_handler, 2);
2994EXFUN (Ffile_name_as_directory, 1); 2996EXFUN (Ffile_name_as_directory, 1);
2995EXFUN (Fexpand_file_name, 2); 2997EXFUN (Fexpand_file_name, 2);
diff --git a/src/print.c b/src/print.c
index b2e5965cd1c..5b2778cf251 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1173,6 +1173,16 @@ print (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag)
1173 print_object (obj, printcharfun, escapeflag); 1173 print_object (obj, printcharfun, escapeflag);
1174} 1174}
1175 1175
1176#define PRINT_CIRCLE_CANDIDATE_P(obj) \
1177 (STRINGP (obj) || CONSP (obj) \
1178 || (VECTORLIKEP (obj) \
1179 && (VECTORP (obj) || COMPILEDP (obj) \
1180 || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj) \
1181 || HASH_TABLE_P (obj) || FONTP (obj))) \
1182 || (! NILP (Vprint_gensym) \
1183 && SYMBOLP (obj) \
1184 && !SYMBOL_INTERNED_P (obj)))
1185
1176/* Construct Vprint_number_table according to the structure of OBJ. 1186/* Construct Vprint_number_table according to the structure of OBJ.
1177 OBJ itself and all its elements will be added to Vprint_number_table 1187 OBJ itself and all its elements will be added to Vprint_number_table
1178 recursively if it is a list, vector, compiled function, char-table, 1188 recursively if it is a list, vector, compiled function, char-table,
@@ -1207,12 +1217,7 @@ print_preprocess (Lisp_Object obj)
1207 halftail = obj; 1217 halftail = obj;
1208 1218
1209 loop: 1219 loop:
1210 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj) 1220 if (PRINT_CIRCLE_CANDIDATE_P (obj))
1211 || COMPILEDP (obj) || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)
1212 || HASH_TABLE_P (obj)
1213 || (! NILP (Vprint_gensym)
1214 && SYMBOLP (obj)
1215 && !SYMBOL_INTERNED_P (obj)))
1216 { 1221 {
1217 if (!HASH_TABLE_P (Vprint_number_table)) 1222 if (!HASH_TABLE_P (Vprint_number_table))
1218 { 1223 {
@@ -1389,12 +1394,7 @@ print_object (Lisp_Object obj, register Lisp_Object printcharfun, int escapeflag
1389 error ("Apparently circular structure being printed"); 1394 error ("Apparently circular structure being printed");
1390 1395
1391 /* Detect circularities and truncate them. */ 1396 /* Detect circularities and truncate them. */
1392 if (STRINGP (obj) || CONSP (obj) || VECTORP (obj) 1397 if (PRINT_CIRCLE_CANDIDATE_P (obj))
1393 || COMPILEDP (obj) || CHAR_TABLE_P (obj) || SUB_CHAR_TABLE_P (obj)
1394 || HASH_TABLE_P (obj)
1395 || (! NILP (Vprint_gensym)
1396 && SYMBOLP (obj)
1397 && !SYMBOL_INTERNED_P (obj)))
1398 { 1398 {
1399 if (NILP (Vprint_circle) && NILP (Vprint_gensym)) 1399 if (NILP (Vprint_circle) && NILP (Vprint_gensym))
1400 { 1400 {
diff --git a/src/w32.c b/src/w32.c
index ae2373be46e..721cea07d20 100644
--- a/src/w32.c
+++ b/src/w32.c
@@ -147,9 +147,6 @@ typedef HRESULT (WINAPI * ShGetFolderPath_fn)
147void globals_of_w32 (void); 147void globals_of_w32 (void);
148static DWORD get_rid (PSID); 148static DWORD get_rid (PSID);
149 149
150/* Defined in process.c for its own purpose. */
151extern Lisp_Object Qlocal;
152
153 150
154/* Initialization states. 151/* Initialization states.
155 152
@@ -5666,8 +5663,6 @@ sys_write (int fd, const void * buffer, unsigned int count)
5666static void 5663static void
5667check_windows_init_file (void) 5664check_windows_init_file (void)
5668{ 5665{
5669 extern int noninteractive, inhibit_window_system;
5670
5671 /* A common indication that Emacs is not installed properly is when 5666 /* A common indication that Emacs is not installed properly is when
5672 it cannot find the Windows installation file. If this file does 5667 it cannot find the Windows installation file. If this file does
5673 not exist in the expected place, tell the user. */ 5668 not exist in the expected place, tell the user. */
diff --git a/src/w32console.c b/src/w32console.c
index 31c4a7c4e5a..3c200405cb5 100644
--- a/src/w32console.c
+++ b/src/w32console.c
@@ -41,12 +41,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
41/* from window.c */ 41/* from window.c */
42extern Lisp_Object Frecenter (Lisp_Object); 42extern Lisp_Object Frecenter (Lisp_Object);
43 43
44/* from keyboard.c */
45extern int detect_input_pending (void);
46
47/* from sysdep.c */
48extern int read_input_pending (void);
49
50static void w32con_move_cursor (struct frame *f, int row, int col); 44static void w32con_move_cursor (struct frame *f, int row, int col);
51static void w32con_clear_to_end (struct frame *f); 45static void w32con_clear_to_end (struct frame *f);
52static void w32con_clear_frame (struct frame *f); 46static void w32con_clear_frame (struct frame *f);
@@ -277,9 +271,6 @@ w32con_insert_glyphs (struct frame *f, register struct glyph *start,
277 } 271 }
278} 272}
279 273
280extern unsigned char *encode_terminal_code (struct glyph *, int,
281 struct coding_system *);
282
283static void 274static void
284w32con_write_glyphs (struct frame *f, register struct glyph *string, 275w32con_write_glyphs (struct frame *f, register struct glyph *string,
285 register int len) 276 register int len)
diff --git a/src/w32fns.c b/src/w32fns.c
index 09442d41e14..0c899cdceff 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -80,10 +80,6 @@ extern void w32_menu_display_help (HWND, HMENU, UINT, UINT);
80extern void w32_free_menu_strings (HWND); 80extern void w32_free_menu_strings (HWND);
81extern const char *map_w32_filename (const char *, const char **); 81extern const char *map_w32_filename (const char *, const char **);
82 82
83extern int quit_char;
84
85extern const char *const lispy_function_keys[];
86
87/* If non-zero, a w32 timer that, when it expires, displays an 83/* If non-zero, a w32 timer that, when it expires, displays an
88 hourglass cursor on all frames. */ 84 hourglass cursor on all frames. */
89static unsigned hourglass_timer = 0; 85static unsigned hourglass_timer = 0;
@@ -187,18 +183,10 @@ unsigned int msh_mousewheel = 0;
187#define MENU_FREE_DELAY 1000 183#define MENU_FREE_DELAY 1000
188static unsigned menu_free_timer = 0; 184static unsigned menu_free_timer = 0;
189 185
190extern Lisp_Object Qtooltip;
191
192#ifdef GLYPH_DEBUG 186#ifdef GLYPH_DEBUG
193int image_cache_refcount, dpyinfo_refcount; 187int image_cache_refcount, dpyinfo_refcount;
194#endif 188#endif
195 189
196
197extern HWND w32_system_caret_hwnd;
198
199extern int w32_system_caret_height;
200extern int w32_system_caret_x;
201extern int w32_system_caret_y;
202static HWND w32_visible_system_caret_hwnd; 190static HWND w32_visible_system_caret_hwnd;
203 191
204/* From w32menu.c */ 192/* From w32menu.c */
@@ -5851,7 +5839,6 @@ Value is t if tooltip was open, nil otherwise. */)
5851/*********************************************************************** 5839/***********************************************************************
5852 File selection dialog 5840 File selection dialog
5853 ***********************************************************************/ 5841 ***********************************************************************/
5854extern Lisp_Object Qfile_name_history;
5855 5842
5856/* Callback for altering the behavior of the Open File dialog. 5843/* Callback for altering the behavior of the Open File dialog.
5857 Makes the Filename text field contain "Current Directory" and be 5844 Makes the Filename text field contain "Current Directory" and be
@@ -5899,7 +5886,7 @@ file_dialog_callback (HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
5899 no man's land and the user will be unable to tab through the 5886 no man's land and the user will be unable to tab through the
5900 dialog box (pressing tab will only result in a beep). 5887 dialog box (pressing tab will only result in a beep).
5901 Avoid that problem by setting focus to the list here. */ 5888 Avoid that problem by setting focus to the list here. */
5902 if (CDN_INITDONE == notify->hdr.code) 5889 if (notify->hdr.code == CDN_INITDONE)
5903 SetFocus (list); 5890 SetFocus (list);
5904 } 5891 }
5905 else 5892 else
diff --git a/src/w32font.c b/src/w32font.c
index aef62f61a3a..40ff0782b88 100644
--- a/src/w32font.c
+++ b/src/w32font.c
@@ -54,8 +54,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
54#define JOHAB_CHARSET 130 54#define JOHAB_CHARSET 130
55#endif 55#endif
56 56
57extern struct font_driver w32font_driver;
58
59Lisp_Object Qgdi; 57Lisp_Object Qgdi;
60Lisp_Object Quniscribe; 58Lisp_Object Quniscribe;
61static Lisp_Object QCformat; 59static Lisp_Object QCformat;
@@ -64,7 +62,6 @@ static Lisp_Object Qserif, Qscript, Qdecorative;
64static Lisp_Object Qraster, Qoutline, Qunknown; 62static Lisp_Object Qraster, Qoutline, Qunknown;
65 63
66/* antialiasing */ 64/* antialiasing */
67extern Lisp_Object QCantialias, QCotf, QClang; /* defined in font.c */
68extern Lisp_Object Qnone; /* reuse from w32fns.c */ 65extern Lisp_Object Qnone; /* reuse from w32fns.c */
69static Lisp_Object Qstandard, Qsubpixel, Qnatural; 66static Lisp_Object Qstandard, Qsubpixel, Qnatural;
70 67
diff --git a/src/w32inevt.c b/src/w32inevt.c
index d0b097100fd..c4858dea908 100644
--- a/src/w32inevt.c
+++ b/src/w32inevt.c
@@ -40,18 +40,15 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
40#include "w32heap.h" 40#include "w32heap.h"
41#include "w32term.h" 41#include "w32term.h"
42 42
43/* stdin, from ntterm */ 43/* stdin, from w32console.c */
44extern HANDLE keyboard_handle; 44extern HANDLE keyboard_handle;
45 45
46/* Info for last mouse motion */ 46/* Info for last mouse motion */
47static COORD movement_pos; 47static COORD movement_pos;
48static DWORD movement_time; 48static DWORD movement_time;
49 49
50/* from keyboard.c */ 50/* from w32fns.c */
51extern void reinvoke_input_signal (void);
52
53extern unsigned int map_keypad_keys (unsigned int, unsigned int); 51extern unsigned int map_keypad_keys (unsigned int, unsigned int);
54
55extern unsigned int w32_key_to_modifier (int key); 52extern unsigned int w32_key_to_modifier (int key);
56 53
57/* Event queue */ 54/* Event queue */
@@ -261,8 +258,6 @@ w32_kbd_patch_key (KEY_EVENT_RECORD *event)
261} 258}
262 259
263 260
264extern const char *const lispy_function_keys[];
265
266static int faked_key = 0; 261static int faked_key = 0;
267 262
268/* return code -1 means that event_queue_ptr won't be incremented. 263/* return code -1 means that event_queue_ptr won't be incremented.
diff --git a/src/w32menu.c b/src/w32menu.c
index 92447eb9fae..a2e62f24f6a 100644
--- a/src/w32menu.c
+++ b/src/w32menu.c
@@ -84,14 +84,6 @@ MessageBoxW_Proc unicode_message_box = NULL;
84 84
85Lisp_Object Qdebug_on_next_call; 85Lisp_Object Qdebug_on_next_call;
86 86
87extern Lisp_Object Qmenu_bar;
88
89extern Lisp_Object QCtoggle, QCradio;
90
91extern Lisp_Object Qoverriding_local_map, Qoverriding_terminal_local_map;
92
93extern Lisp_Object Qmenu_bar_update_hook;
94
95void set_frame_menubar (FRAME_PTR, int, int); 87void set_frame_menubar (FRAME_PTR, int, int);
96 88
97#ifdef HAVE_DIALOGS 89#ifdef HAVE_DIALOGS
diff --git a/src/w32proc.c b/src/w32proc.c
index bb8b428ffe4..e94d9aa3254 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -67,8 +67,6 @@ extern BOOL WINAPI IsValidLocale (LCID, DWORD);
67 + ((DWORD)(var) - (section)->VirtualAddress) \ 67 + ((DWORD)(var) - (section)->VirtualAddress) \
68 + (filedata).file_base)) 68 + (filedata).file_base))
69 69
70extern Lisp_Object Qlocal;
71
72Lisp_Object Qhigh, Qlow; 70Lisp_Object Qhigh, Qlow;
73 71
74#ifdef EMACSDEBUG 72#ifdef EMACSDEBUG
@@ -1053,7 +1051,7 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp)
1053 detect that we were woken up by C-g, we return -1 with errno set to 1051 detect that we were woken up by C-g, we return -1 with errno set to
1054 EINTR as on Unix. */ 1052 EINTR as on Unix. */
1055 1053
1056/* From ntterm.c */ 1054/* From w32console.c */
1057extern HANDLE keyboard_handle; 1055extern HANDLE keyboard_handle;
1058 1056
1059/* From w32xfns.c */ 1057/* From w32xfns.c */
@@ -1559,8 +1557,6 @@ sys_kill (int pid, int sig)
1559 return rc; 1557 return rc;
1560} 1558}
1561 1559
1562/* extern int report_file_error (char *, Lisp_Object); */
1563
1564/* The following two routines are used to manipulate stdin, stdout, and 1560/* The following two routines are used to manipulate stdin, stdout, and
1565 stderr of our child processes. 1561 stderr of our child processes.
1566 1562
@@ -1660,7 +1656,7 @@ set_process_dir (char * dir)
1660 dial-up users to only be connected when they actually need to use 1656 dial-up users to only be connected when they actually need to use
1661 socket services. */ 1657 socket services. */
1662 1658
1663/* From nt.c */ 1659/* From w32.c */
1664extern HANDLE winsock_lib; 1660extern HANDLE winsock_lib;
1665extern BOOL term_winsock (void); 1661extern BOOL term_winsock (void);
1666extern BOOL init_winsock (int load_now); 1662extern BOOL init_winsock (int load_now);
diff --git a/src/w32select.c b/src/w32select.c
index 23d5fb68c77..ef0cb3adc24 100644
--- a/src/w32select.c
+++ b/src/w32select.c
@@ -78,7 +78,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
78#include "w32term.h" /* for all of the w32 includes */ 78#include "w32term.h" /* for all of the w32 includes */
79#include "w32heap.h" /* os_subtype */ 79#include "w32heap.h" /* os_subtype */
80#include "blockinput.h" 80#include "blockinput.h"
81#include "keyboard.h" /* cmd_error_internal() */
82#include "charset.h" 81#include "charset.h"
83#include "coding.h" 82#include "coding.h"
84#include "character.h" 83#include "character.h"
@@ -391,6 +390,7 @@ run_protected (Lisp_Object (*code) (Lisp_Object), Lisp_Object arg)
391 with global variables and calling strange looking functions. Is 390 with global variables and calling strange looking functions. Is
392 this really the right way to run Lisp callbacks? */ 391 this really the right way to run Lisp callbacks? */
393 392
393 extern int waiting_for_input; /* from keyboard.c */
394 int owfi; 394 int owfi;
395 395
396 BLOCK_INPUT; 396 BLOCK_INPUT;
diff --git a/src/w32term.c b/src/w32term.c
index 67e853f21f0..f31c4e90e77 100644
--- a/src/w32term.c
+++ b/src/w32term.c
@@ -88,8 +88,6 @@ extern void free_frame_menubar (struct frame *);
88extern int w32_codepage_for_font (char *fontname); 88extern int w32_codepage_for_font (char *fontname);
89extern Cursor w32_load_cursor (LPCTSTR name); 89extern Cursor w32_load_cursor (LPCTSTR name);
90 90
91extern Lisp_Object Vwindow_system;
92
93#define x_any_window_to_frame x_window_to_frame 91#define x_any_window_to_frame x_window_to_frame
94#define x_top_window_to_frame x_window_to_frame 92#define x_top_window_to_frame x_window_to_frame
95 93
@@ -138,13 +136,6 @@ BOOL (WINAPI *pfnSetLayeredWindowAttributes) (HWND, COLORREF, BYTE, DWORD);
138#define WS_EX_LAYERED 0x80000 136#define WS_EX_LAYERED 0x80000
139#endif 137#endif
140 138
141/* Frame being updated by update_frame. This is declared in term.c.
142 This is set by update_begin and looked at by all the
143 w32 functions. It is zero while not inside an update.
144 In that case, the w32 functions assume that `SELECTED_FRAME ()'
145 is the frame to apply to. */
146extern struct frame *updating_frame;
147
148/* This is a frame waiting to be autoraised, within w32_read_socket. */ 139/* This is a frame waiting to be autoraised, within w32_read_socket. */
149struct frame *pending_autoraise_frame; 140struct frame *pending_autoraise_frame;
150 141
@@ -2536,8 +2527,7 @@ x_delete_glyphs (struct frame *f, register int n)
2536} 2527}
2537 2528
2538 2529
2539/* Clear entire frame. If updating_frame is non-null, clear that 2530/* Clear entire frame. */
2540 frame. Otherwise clear the selected frame. */
2541 2531
2542static void 2532static void
2543x_clear_frame (struct frame *f) 2533x_clear_frame (struct frame *f)
@@ -6060,7 +6050,7 @@ w32_create_terminal (struct w32_display_info *dpyinfo)
6060 terminal->mouse_position_hook = w32_mouse_position; 6050 terminal->mouse_position_hook = w32_mouse_position;
6061 terminal->frame_rehighlight_hook = w32_frame_rehighlight; 6051 terminal->frame_rehighlight_hook = w32_frame_rehighlight;
6062 terminal->frame_raise_lower_hook = w32_frame_raise_lower; 6052 terminal->frame_raise_lower_hook = w32_frame_raise_lower;
6063 // terminal->fullscreen_hook = XTfullscreen_hook; 6053 /* terminal->fullscreen_hook = XTfullscreen_hook; */
6064 terminal->set_vertical_scroll_bar_hook = w32_set_vertical_scroll_bar; 6054 terminal->set_vertical_scroll_bar_hook = w32_set_vertical_scroll_bar;
6065 terminal->condemn_scroll_bars_hook = w32_condemn_scroll_bars; 6055 terminal->condemn_scroll_bars_hook = w32_condemn_scroll_bars;
6066 terminal->redeem_scroll_bar_hook = w32_redeem_scroll_bar; 6056 terminal->redeem_scroll_bar_hook = w32_redeem_scroll_bar;
diff --git a/src/w32term.h b/src/w32term.h
index c79352a8db8..cf6751b7d63 100644
--- a/src/w32term.h
+++ b/src/w32term.h
@@ -547,7 +547,7 @@ do { \
547#define WM_APPCOMMAND 0x319 547#define WM_APPCOMMAND 0x319
548#define GET_APPCOMMAND_LPARAM(lParam) (HIWORD(lParam) & 0x7fff) 548#define GET_APPCOMMAND_LPARAM(lParam) (HIWORD(lParam) & 0x7fff)
549#endif 549#endif
550#ifndef WM_UNICHAR 550#ifndef WM_UNICHAR
551#define WM_UNICHAR 0x109 551#define WM_UNICHAR 0x109
552#endif 552#endif
553#ifndef UNICODE_NOCHAR 553#ifndef UNICODE_NOCHAR
@@ -697,3 +697,7 @@ typedef BOOL (WINAPI * AppendMenuW_Proc) (
697 IN UINT_PTR, 697 IN UINT_PTR,
698 IN LPCWSTR); 698 IN LPCWSTR);
699 699
700extern HWND w32_system_caret_hwnd;
701extern int w32_system_caret_height;
702extern int w32_system_caret_x;
703extern int w32_system_caret_y;
diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c
index 319f934e3bb..39d1ee5c851 100644
--- a/src/w32uniscribe.c
+++ b/src/w32uniscribe.c
@@ -52,10 +52,6 @@ int uniscribe_available = 0;
52extern Lisp_Object Quniscribe; 52extern Lisp_Object Quniscribe;
53extern Lisp_Object Qopentype; 53extern Lisp_Object Qopentype;
54 54
55extern int initialized;
56
57extern struct font_driver uniscribe_font_driver;
58
59/* EnumFontFamiliesEx callback. */ 55/* EnumFontFamiliesEx callback. */
60static int CALLBACK add_opentype_font_name_to_list (ENUMLOGFONTEX *, 56static int CALLBACK add_opentype_font_name_to_list (ENUMLOGFONTEX *,
61 NEWTEXTMETRICEX *, 57 NEWTEXTMETRICEX *,