Merge from trunk.

This commit is contained in:
Paul Eggert 2011-07-06 16:34:39 -07:00
commit 59361254a6
72 changed files with 4371 additions and 1709 deletions

View file

@ -1,4 +1,4 @@
2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
Assume support for memcmp, memcpy, memmove, memset.
This simplifies the code a bit. All current platforms have these,
@ -6,6 +6,10 @@
can add the gnulib modules for these (a 1-line change to Makefile.in).
* configure.in: Don't check for memcmp, memcpy, memmove, memset.
2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
* configure.in (HAVE_GCONF): Allow both HAVE_GCONF and HAVE_GSETTINGS.
2011-07-01 Glenn Morris <rgm@gnu.org>
* configure.in (SETTINGS_CFLAGS, SETTINGS_LIBS) [HAVE_GCONF]: Fix typo.

6
autogen/configure vendored
View file

@ -11166,7 +11166,7 @@ $as_echo "#define HAVE_GSETTINGS 1" >>confdefs.h
fi
HAVE_GCONF=no
if test "${HAVE_GSETTINGS}" = "no" && test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
succeeded=no
@ -11265,8 +11265,8 @@ $as_echo "no" >&6; }
$as_echo "#define HAVE_GCONF 1" >>confdefs.h
SETTINGS_CFLAGS="$GCONF_CFLAGS"
SETTINGS_LIBS="$GCONF_LIBS"
SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GCONF_CFLAGS"
SETTINGS_LIBS="$SETTINGS_LIBS $GCONF_LIBS"
fi
fi

View file

@ -1996,13 +1996,13 @@ fi
dnl GConf has been tested under GNU/Linux only.
dnl The version is really arbitrary, it is about the same age as Gtk+ 2.6.
HAVE_GCONF=no
if test "${HAVE_GSETTINGS}" = "no" && test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
if test "${HAVE_X11}" = "yes" && test "${with_gconf}" = "yes"; then
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.13, HAVE_GCONF=yes, HAVE_GCONF=no)
if test "$HAVE_GCONF" = yes; then
AC_DEFINE(HAVE_GCONF, 1, [Define to 1 if using GConf.])
dnl Newer GConf doesn't link with g_objects, so this is not defined.
SETTINGS_CFLAGS="$GCONF_CFLAGS"
SETTINGS_LIBS="$GCONF_LIBS"
SETTINGS_CFLAGS="$SETTINGS_CFLAGS $GCONF_CFLAGS"
SETTINGS_LIBS="$SETTINGS_LIBS $GCONF_LIBS"
fi
fi

View file

@ -1,3 +1,18 @@
2011-07-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* functions.texi (Calling Functions): Link to the "Interactive
Call" node (bug#1001).
2011-07-06 Chong Yidong <cyd@stupidchicken.com>
* customize.texi (Composite Types): Move alist and plist to here
from Simple Types (Bug#7545).
* elisp.texi (Top): Update menu description.
* display.texi (Face Attributes): Document negative line widths
(Bug#6113).
2011-07-03 Tobias C. Rittweiler <tcr@freebits.de> (tiny change)
* searching.texi (Match Data): Note that match data can be

View file

@ -513,8 +513,7 @@ equivalent to @code{(string)}.
Introduction, widget, The Emacs Widget Library}, for details.
@menu
* Simple Types:: Simple customization types: sexp, integer, number,
string, file, directory, alist.
* Simple Types:: Simple customization types: sexp, integer, etc.
* Composite Types:: Build new types from other types or data.
* Splicing into Lists:: Splice elements into list with @code{:inline}.
* Type Keywords:: Keyword-argument pairs in a customization type.
@ -577,22 +576,103 @@ You can use the @code{:options} keyword in a hook variable's
@code{defcustom} to specify a list of functions recommended for use in
the hook; see @ref{Variable Definitions}.
@item alist
The value must be a list of cons-cells, the @sc{car} of each cell
representing a key, and the @sc{cdr} of the same cell representing an
associated value. The user can add and delete key/value pairs, and
edit both the key and the value of each pair.
@item symbol
The value must be a symbol. It appears in the customization buffer as
the name of the symbol.
You can specify the key and value types like this:
@item function
The value must be either a lambda expression or a function name. When
it is a function name, you can do completion with @kbd{M-@key{TAB}}.
@smallexample
(alist :key-type @var{key-type} :value-type @var{value-type})
@end smallexample
@item variable
The value must be a variable name, and you can do completion with
@kbd{M-@key{TAB}}.
@item face
The value must be a symbol which is a face name, and you can do
completion with @kbd{M-@key{TAB}}.
@item boolean
The value is boolean---either @code{nil} or @code{t}. Note that by
using @code{choice} and @code{const} together (see the next section),
you can specify that the value must be @code{nil} or @code{t}, but also
specify the text to describe each value in a way that fits the specific
meaning of the alternative.
@item coding-system
The value must be a coding-system name, and you can do completion with
@kbd{M-@key{TAB}}.
@item color
The value must be a valid color name, and you can do completion with
@kbd{M-@key{TAB}}. A sample is provided.
@end table
@node Composite Types
@subsection Composite Types
@cindex composite types (customization)
When none of the simple types is appropriate, you can use composite
types, which build new types from other types or from specified data.
The specified types or data are called the @dfn{arguments} of the
composite type. The composite type normally looks like this:
@example
(@var{constructor} @var{arguments}@dots{})
@end example
@noindent
where @var{key-type} and @var{value-type} are customization type
specifications. The default key type is @code{sexp}, and the default
value type is @code{sexp}.
but you can also add keyword-value pairs before the arguments, like
this:
@example
(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
@end example
Here is a table of constructors and how to use them to write
composite types:
@table @code
@item (cons @var{car-type} @var{cdr-type})
The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
symbol)} is a customization type which matches values such as
@code{("foo" . foo)}.
In the customization buffer, the @sc{car} and the @sc{cdr} are
displayed and edited separately, each according to the type
that you specify for it.
@item (list @var{element-types}@dots{})
The value must be a list with exactly as many elements as the
@var{element-types} given; and each element must fit the
corresponding @var{element-type}.
For example, @code{(list integer string function)} describes a list of
three elements; the first element must be an integer, the second a
string, and the third a function.
In the customization buffer, each element is displayed and edited
separately, according to the type specified for it.
@item (group @var{element-types}@dots{})
This works like @code{list} except for the formatting
of text in the Custom buffer. @code{list} labels each
element value with its tag; @code{group} does not.
@item (vector @var{element-types}@dots{})
Like @code{list} except that the value must be a vector instead of a
list. The elements work the same as in @code{list}.
@item (alist :key-type @var{key-type} :value-type @var{value-type})
The value must be a list of cons-cells, the @sc{car} of each cell
representing a key of customization type @var{key-type}, and the
@sc{cdr} of the same cell representing a value of customization type
@var{value-type}. The user can add and delete key/value pairs, and
edit both the key and the value of each pair.
If omitted, @var{key-type} and @var{value-type} default to
@code{sexp}.
The user can add any key matching the specified key type, but you can
give some keys a preferential treatment by specifying them with the
@ -687,105 +767,11 @@ and the VALUE is a list of that person's pets."
:type '(alist :value-type (repeat string)))
@end smallexample
@item plist
The @code{plist} custom type is similar to the @code{alist} (see above),
except that the information is stored as a property list, i.e. a list of
this form:
@smallexample
(@var{key} @var{value} @var{key} @var{value} @var{key} @var{value} @dots{})
@end smallexample
The default @code{:key-type} for @code{plist} is @code{symbol},
rather than @code{sexp}.
@item symbol
The value must be a symbol. It appears in the customization buffer as
the name of the symbol.
@item function
The value must be either a lambda expression or a function name. When
it is a function name, you can do completion with @kbd{M-@key{TAB}}.
@item variable
The value must be a variable name, and you can do completion with
@kbd{M-@key{TAB}}.
@item face
The value must be a symbol which is a face name, and you can do
completion with @kbd{M-@key{TAB}}.
@item boolean
The value is boolean---either @code{nil} or @code{t}. Note that by
using @code{choice} and @code{const} together (see the next section),
you can specify that the value must be @code{nil} or @code{t}, but also
specify the text to describe each value in a way that fits the specific
meaning of the alternative.
@item coding-system
The value must be a coding-system name, and you can do completion with
@kbd{M-@key{TAB}}.
@item color
The value must be a valid color name, and you can do completion with
@kbd{M-@key{TAB}}. A sample is provided.
@end table
@node Composite Types
@subsection Composite Types
@cindex composite types (customization)
When none of the simple types is appropriate, you can use composite
types, which build new types from other types or from specified data.
The specified types or data are called the @dfn{arguments} of the
composite type. The composite type normally looks like this:
@example
(@var{constructor} @var{arguments}@dots{})
@end example
@noindent
but you can also add keyword-value pairs before the arguments, like
this:
@example
(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
@end example
Here is a table of constructors and how to use them to write
composite types:
@table @code
@item (cons @var{car-type} @var{cdr-type})
The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
its @sc{cdr} must fit @var{cdr-type}. For example, @code{(cons string
symbol)} is a customization type which matches values such as
@code{("foo" . foo)}.
In the customization buffer, the @sc{car} and the @sc{cdr} are
displayed and edited separately, each according to the type
that you specify for it.
@item (list @var{element-types}@dots{})
The value must be a list with exactly as many elements as the
@var{element-types} given; and each element must fit the
corresponding @var{element-type}.
For example, @code{(list integer string function)} describes a list of
three elements; the first element must be an integer, the second a
string, and the third a function.
In the customization buffer, each element is displayed and edited
separately, according to the type specified for it.
@item (group @var{element-types}@dots{})
This works like @code{list} except for the formatting
of text in the Custom buffer. @code{list} labels each
element value with its tag; @code{group} does not.
@item (vector @var{element-types}@dots{})
Like @code{list} except that the value must be a vector instead of a
list. The elements work the same as in @code{list}.
@item (plist :key-type @var{key-type} :value-type @var{value-type})
This customization type is similar to @code{alist} (see above), except
that (i) the information is stored as a property list,
(@pxref{Property Lists}), and (ii) @var{key-type}, if omitted,
defaults to @code{symbol} rather than @code{sexp}.
@item (choice @var{alternative-types}@dots{})
The value must fit at least one of @var{alternative-types}.

View file

@ -2092,7 +2092,10 @@ Draw a box with lines of width 1, in color @var{color}.
@item @code{(:line-width @var{width} :color @var{color} :style @var{style})}
This way you can explicitly specify all aspects of the box. The value
@var{width} specifies the width of the lines to draw; it defaults to 1.
@var{width} specifies the width of the lines to draw; it defaults to
1. A negative width @var{-n} means to draw a line of width @var{n}
that occupies the space of the underlying text, thus avoiding any
increase in the character height or width.
The value @var{color} specifies the color to draw with. The default is
the foreground color of the face for simple boxes, and the background

View file

@ -508,8 +508,7 @@ Writing Customization Definitions
Customization Types
* Simple Types:: Simple customization types: sexp, integer, number,
string, file, directory, alist.
* Simple Types:: Simple customization types: sexp, integer, etc.
* Composite Types:: Build new types from other types or data.
* Splicing into Lists:: Splice elements into list with @code{:inline}.
* Type Keywords:: Keyword-argument pairs in a customization type.

View file

@ -790,6 +790,12 @@ This function returns @var{arg} and has no side effects.
This function ignores any arguments and returns @code{nil}.
@end defun
Emacs Lisp functions can also be user-visible @dfn{commands}. A
command is a function that has an @dfn{interactive} specification.
You may want to call these functions as if they were called
interactively. See @ref{Interactive Call} for details on how to do
that.
@node Mapping Functions
@section Mapping Functions
@cindex mapping functions

View file

@ -1,3 +1,10 @@
2011-07-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Expiring Mail): Document gnus-auto-expirable-marks.
(Filtering New Groups): Clarify how simple the "options -n" format is.
(Agent Expiry): Remove mention of `gnus-request-expire-articles', which
is internal.
2011-07-04 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Cleanup remote connections): Add

View file

@ -1302,6 +1302,10 @@ subscribing these groups.
@code{gnus-subscribe-options-newsgroup-method} is used instead. This
variable defaults to @code{gnus-subscribe-alphabetically}.
The ``options -n'' format is very simplistic. The syntax above is all
that is supports -- you can force-subscribe hierarchies, or you can
deny hierarchies, and that's it.
@vindex gnus-options-not-subscribe
@vindex gnus-options-subscribe
If you don't want to mess with your @file{.newsrc} file, you can just
@ -15648,14 +15652,16 @@ will remain on your system until hell freezes over. This bears
repeating one more time, with some spurious capitalizations: IF you do
NOT mark articles as EXPIRABLE, Gnus will NEVER delete those ARTICLES.
@vindex gnus-auto-expirable-marks
You do not have to mark articles as expirable by hand. Gnus provides
two features, called ``auto-expire'' and ``total-expire'', that can help you
with this. In a nutshell, ``auto-expire'' means that Gnus hits @kbd{E}
for you when you select an article. And ``total-expire'' means that Gnus
considers all articles as expirable that are read. So, in addition to
the articles marked @samp{E}, also the articles marked @samp{r},
@samp{R}, @samp{O}, @samp{K}, @samp{Y} and so on are considered
expirable.
@samp{R}, @samp{O}, @samp{K}, @samp{Y} (and so on) are considered
expirable. @code{gnus-auto-expirable-marks} has the full list of
these marks.
When should either auto-expire or total-expire be used? Most people
who are subscribed to mailing lists split each list into its own group
@ -19004,9 +19010,8 @@ that you're running out of space. Neither are particularly fast or
efficient, and it's not a particularly good idea to interrupt them (with
@kbd{C-g} or anything else) once you've started one of them.
Note that other functions, e.g. @code{gnus-request-expire-articles},
might run @code{gnus-agent-expire} for you to keep the agent
synchronized with the group.
Note that other functions might run @code{gnus-agent-expire} for you
to keep the agent synchronized with the group.
The agent parameter @code{agent-enable-expiration} may be used to
prevent expiration in selected groups.

View file

@ -1,3 +1,15 @@
2011-07-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* NEWS: Clarify that `smtpmail-starttls-credentials' doesn't exist.
2011-07-05 Juanma Barranquero <lekktu@gmail.com>
* NEWS: Document new emacs-lock.el and renaming of old one.
2011-07-05 Manoj Srivastava <srivasta@ieee.org>
* themes/manoj-dark-theme.el (manoj-dark): New file.
2011-03-29 Kevin Ryde <user42@zip.com.au>
* compilation.txt (perl-Test2): New samples.

View file

@ -130,8 +130,8 @@ difference), but if it were a direct list of user names and passwords,
you will be prompted for the user name and the password instead, and
they will then be saved to ~/.authinfo.
** Similarly, if you had `smtpmail-starttls-credentials' set, then
then you need to put
** Similarly, `smtpmail-starttls-credentials' no longer exists. If
you had thet set, then then you need to put
machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
@ -475,6 +475,11 @@ Just set shell-dir-cookie-re to an appropriate regexp.
** BibTeX mode
*** BibTeX mode now supports biblatex.
Use the variable bibtex-dialect to select support for different BibTeX dialects.
bibtex-entry-field-alist is now an obsolete alias for
bibtex-BibTeX-entry-alist.
*** New command `bibtex-search-entries' bound to C-c C-a.
*** New `bibtex-entry-format' option `sort-fields', disabled by default.
@ -857,6 +862,13 @@ soap-inspect.el is an interactive inspector for SOAP WSDL structures.
** xmodmap-generic-mode for xmodmap files.
** New emacs-lock.el package.
(The pre-existing one has been renamed to old-emacs-lock.el and moved
to obsolete/.) Now, Emacs Lock is a proper minor mode
`emacs-lock-mode'. Protection against exiting Emacs and killing the
buffer can be set separately. The mechanism for auto turning off
protection for buffers with inferior processes has been generalized.
* Incompatible Lisp Changes in Emacs 24.1

View file

@ -0,0 +1,700 @@
;;; manoj-dark.el --- A dark theme from Manoj
;; Copyright (C) 2011 Free Software Foundation, Inc.
;; Author: Manoj Srivastava <srivasta@ieee.org>
;; Keywords: lisp, faces
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; I spend a lot of time workin in front of a screen (many hours in a
;; dimly lit room) and eye fatigue is an issue. This is a dark color
;; theme for emacs, which is easier on the eyes than light themes.
;; It does not help that I am blue-green color blind, so subtle
;; variations are often lost on me. I do want to use color contrast to
;; increase productivity, but I also want to avoid the jarring angry
;; fruit salad look, and so I am in the process of crafting a logical
;; color scheme that is high contrast enough for me, without being too
;; unpleasing.
;; In circumstances where there a lot of related faces that can be
;; viewed, for example, the Gnus group buffer, consistent and logical
;; color choices are the only sane option. Gnus groups can be newa
;; (blueish) or mail (greenish), have states (large number of under
;; messages, normal, and empty). The large number unread groups have
;; highest luminance (appear brighter), and the empty one have lower
;; luminance (appear greyer), but have the same chroma and saturation.
;; Sub states and group priorities are rendered using a color series
;; which has constant luminance and saturation, and vary in hue by a
;; constant separation -- so all the related groups have the same
;; brightness ({mail,news}/{unread,normal,empty}), and a graded
;; selection of foreground colors. It sounds more complicated that it
;; looks. The eye is drawn naturally to the unread groups, and first
;; to the mail, then USENET groups (which is my preference).
;; Similar color variations occur for individual messages in a group;
;; high scoring messages bubble to the top, and have a higher
;; luminance. This color schema has made me slightly faster at
;; reading mail/USENET.
;; In the message itself, quoted mail messages from different people
;; are color coordinated, with high contrast beteen citations that are
;; close to each other in the heirarchy, so it is less likely that one
;; misunderstands who said what in a long conversation.
;; The following scheme covers programming languages, Gnus, Erc, mail,
;; org-mode, CUA-mode, apt-utils, bbdb, compilation buffers, changelog
;; mode, diff and ediff, eshell, and more. You need emacs-goodies
;; package on Debian to use this. See the wiki page at
;; http://www.emacswiki.org/cgi-bin/wiki?ColorTheme for details. The
;; project home page is at https://gna.org/projects/color-theme.
;;; Code:
(deftheme manoj-dark
"Very high contrast faces with a black background.
This theme avoids subtle color variations, while avoiding the
jarring angry fruit salad look to reduce eye fatigue.")
(custom-theme-set-faces
'manoj-dark
'(default ((t (:background "black" :foreground "WhiteSmoke"))))
;; Font lock faces
'(font-lock-builtin-face ((t (:foreground "LightSteelBlue"))))
'(font-lock-constant-face ((t (:foreground "LightSlateBlue" :bold t))))
'(font-lock-preprocessor-face ((t (:foreground "CornFlowerBlue" :italic t))))
'(font-lock-keyword-face ((t (:foreground "cyan1"))))
'(font-lock-type-face ((t (:foreground "SteelBlue1"))))
'(font-lock-regexp-grouping-backslash ((t (:bold t :weight bold))))
'(font-lock-regexp-grouping-construct ((t (:bold t :weight bold))))
'(font-lock-variable-name-face ((t (:foreground "Aquamarine"))))
'(font-lock-function-name-face ((t (:foreground "mediumspringgreen"
:weight bold :height 1.1))))
'(font-lock-string-face ((t (:foreground "RosyBrown1"))))
'(font-lock-comment-face ((t (:italic t :slant oblique :foreground "chocolate1"))))
'(font-lock-comment-delimiter-face ((t (:foreground "Salmon"))))
'(font-lock-doc-face ((t (:italic t :slant oblique :foreground "LightCoral"))))
'(font-lock-doc-string-face ((t (:foreground "Plum"))))
'(font-lock-warning-face ((t (:bold t :foreground "Pink" :weight bold))))
'(cperl-array-face ((t (:foreground "LawnGreen" :background "B;ack" :bold t))))
'(cperl-hash-face ((t (:foreground "SpringGreen" :background "B;ack" :bold t :italic t))))
'(cperl-nonoverridable-face ((t (:foreground "chartreuse3"))))
'(gnus-button ((t (:bold t :weight bold :background "#191932" :box (:line-width 2 :style released-button)))))
'(gnus-cite-attribution-face ((t (:italic t))))
'(gnus-cite-face-1 ((t (:foreground "CornflowerBlue"))))
'(gnus-cite-face-2 ((t (:foreground "PaleGreen"))))
'(gnus-cite-face-3 ((t (:foreground "LightGoldenrod"))))
'(gnus-cite-face-4 ((t (:foreground "LightPink"))))
'(gnus-cite-face-5 ((t (:foreground "turquoise"))))
'(gnus-cite-face-6 ((t (:foreground "khaki"))))
'(gnus-cite-face-7 ((t (:foreground "plum"))))
'(gnus-cite-face-8 ((t (:foreground "DeepSkyBlue1"))))
'(gnus-cite-face-9 ((t (:foreground "chartreuse1"))))
'(gnus-cite-face-10 ((t (:foreground "thistle1"))))
'(gnus-cite-face-11 ((t (:foreground "LightYellow1"))))
'(gnus-emphasis-bold ((t (:bold t :weight bold))))
'(gnus-emphasis-bold-italic ((t (:italic t :bold t :slant italic :weight bold))))
'(gnus-emphasis-highlight-words ((t (:background "black" :foreground "yellow"))))
'(gnus-emphasis-italic ((t (:italic t :slant italic))))
'(gnus-emphasis-strikethru ((t (:strike-through t))))
'(gnus-emphasis-underline ((t (:underline t))))
'(gnus-emphasis-underline-bold ((t (:bold t :underline t :weight bold))))
'(gnus-emphasis-underline-bold-italic ((t (:italic t :bold t :underline t :slant italic :weight bold))))
'(gnus-emphasis-underline-italic ((t (:italic t :underline t :slant italic))))
'(gnus-header-content ((t (:italic t :foreground "DarkKhaki" :slant italic))))
'(gnus-header-content-face ((t (:italic t :foreground "DarkKhaki" :slant italic))))
'(gnus-header-from ((t (:foreground "PaleGreen1"))))
'(gnus-header-from-face ((t (:foreground "PaleGreen1"))))
'(gnus-header-name ((t (:bold t :foreground "BlanchedAlmond" :weight bold))))
'(gnus-header-name-face ((t (:bold t :foreground "BlanchedAlmond" :weight bold))))
'(gnus-header-newsgroups ((t (:italic t :foreground "yellow" :slant italic))))
'(gnus-header-newsgroups-face ((t (:italic t :foreground "yellow" :slant italic))))
'(gnus-header-subject ((t (:foreground "coral1"))))
'(gnus-header-subject-face ((t (:foreground "coral1"))))
'(gnus-signature ((t (:italic t :slant italic))))
'(gnus-signature-face ((t (:italic t :slant italic))))
'(gnus-splash ((t (:foreground "#cccccc"))))
'(gnus-summary-cancelled ((t (:background "black" :foreground "yellow"))))
'(gnus-summary-cancelled-face ((t (:background "black" :foreground "yellow"))))
'(gnus-summary-high-ancient ((t (:bold t :foreground "CornflowerBlue" :weight bold))))
'(gnus-summary-high-ancient-face ((t (:bold t :foreground "CornflowerBlue" :weight bold))))
'(gnus-summary-normal-ancient ((t (:foreground "SkyBlue"))))
'(gnus-summary-normal-ancient-face ((t (:foreground "SkyBlue"))))
'(gnus-summary-low-ancient ((t (:italic t :foreground "LightSteelBlue" :slant italic))))
'(gnus-summary-low-ancien-facet ((t (:italic t :foreground "LightSteelBlue" :slant italic))))
'(gnus-summary-high-read ((t (:bold t :foreground "grey60" :weight bold))))
'(gnus-summary-high-read-face ((t (:bold t :foreground "grey60" :weight bold))))
'(gnus-summary-normal-read ((t (:foreground "grey50"))))
'(gnus-summary-normal-read-face ((t (:foreground "grey50"))))
'(gnus-summary-low-read ((t (:italic t :foreground "LightSlateGray" :slant italic))))
'(gnus-summary-low-read-face ((t (:italic t :foreground "LightSlateGray" :slant italic))))
'(gnus-summary-high-ticked ((t (:bold t :foreground "RosyBrown" :weight bold))))
'(gnus-summary-high-ticked-face ((t (:bold t :foreground "RosyBrown" :weight bold))))
'(gnus-summary-normal-ticked ((t (:foreground "LightSalmon"))))
'(gnus-summary-normal-ticked-face ((t (:foreground "LightSalmon"))))
'(gnus-summary-low-ticked ((t (:italic t :foreground "pink" :slant italic))))
'(gnus-summary-low-ticked-face ((t (:italic t :foreground "pink" :slant italic))))
'(gnus-summary-high-undownloaded ((t (:bold t :foreground "ivory3" :weight bold))))
'(gnus-summary-normal-undownloaded ((t (:foreground "LightGray" :weight normal))))
'(gnus-summary-low-undownloaded ((t (:italic t :foreground "grey75" :slant italic :weight normal))))
'(gnus-summary-high-unread ((t (:bold t :foreground "PaleGreen" :weight bold))))
'(gnus-summary-high-unread-face ((t (:bold t :foreground "PaleGreen" :weight bold))))
'(gnus-summary-normal-unread ((t (:foreground "YellowGreen"))))
'(gnus-summary-normal-unread-face ((t (:foreground "YellowGreen"))))
'(gnus-summary-low-unread ((t (:italic t :foreground "MediumSeaGreen" :slant italic))))
'(gnus-summary-low-unread-face ((t (:italic t :foreground "MediumSeaGreen" :slant italic))))
'(gnus-summary-root-face ((t (:bold t :foreground "Red" :weight bold))))
'(gnus-summary-selected ((t (:underline t :foreground "LemonChiffon"))))
'(gnus-summary-selected-face ((t (:underline t :foreground "LemonChiffon"))))
'(gnus-user-agent-bad-face ((t (:bold t :background "black" :foreground "red" :weight bold))))
'(gnus-user-agent-good-face ((t (:background "black" :foreground "green"))))
'(gnus-user-agent-unknown-face ((t (:bold t :background "black" :foreground "orange" :weight bold))))
'(gnus-x-face ((t (:background "white" :foreground "black"))))
'(gnus-group-mail-1 ((t (:bold t :foreground "#3BFF00" :weight normal))))
'(gnus-group-mail-1-face ((t (:bold t :foreground "#3BFF00" :weight normal))))
'(gnus-group-mail-2 ((t (:bold t :foreground "#5EFF00" :weight normal))))
'(gnus-group-mail-2-face ((t (:bold t :foreground "#5EFF00" :weight normal))))
'(gnus-group-mail-3 ((t (:bold t :foreground "#80FF00" :weight normal))))
'(gnus-group-mail-3-face ((t (:bold t :foreground "#A1FF00" :weight normal))))
'(gnus-group-mail-1-empty ((t (:foreground "#249900"))))
'(gnus-group-mail-1-empty-face ((t (:foreground "#249900"))))
'(gnus-group-mail-2-empty ((t (:foreground "#389900"))))
'(gnus-group-mail-2-empty-face ((t (:foreground "#389900"))))
'(gnus-group-mail-3-empty ((t (:foreground "#4D9900"))))
'(gnus-group-mail-3-empty-face ((t (:foreground "#4D9900"))))
'(gnus-group-mail-low ((t (:bold t :foreground "aquamarine2" :weight bold))))
'(gnus-group-mail-low-face ((t (:bold t :foreground "aquamarine2" :weight bold))))
'(gnus-group-mail-low-empty ((t (:foreground "aquamarine2"))))
'(gnus-group-mail-low-empty-face ((t (:foreground "aquamarine2"))))
'(gnus-group-news-1 ((t (:bold t :foreground "#8480FF" :weight bold))))
'(gnus-group-news-1-face ((t (:bold t :foreground "#8480FF" :weight bold))))
'(gnus-group-news-2 ((t (:bold t :foreground "#8088FF" :weight bold))))
'(gnus-group-news-2-face ((t (:bold t :foreground "#8088FF" :weight bold))))
'(gnus-group-news-3 ((t (:bold t :foreground "#8095FF" :weight bold))))
'(gnus-group-news-3-face ((t (:bold t :foreground "#8095FF" :weight bold))))
'(gnus-group-news-4 ((t (:bold t :foreground "#80A1FF" :weight bold))))
'(gnus-group-news-4-face ((t (:bold t :foreground "#80A1FF" :weight bold))))
'(gnus-group-news-5 ((t (:bold t :foreground "#80AEFF" :weight bold))))
'(gnus-group-news-5-face ((t (:bold t :foreground "#80AEFF" :weight bold))))
'(gnus-group-news-6 ((t (:bold t :foreground "#80BBFF" :weight bold))))
'(gnus-group-news-6-face ((t (:bold t :foreground "#80BBFF" :weight bold))))
'(gnus-group-news-1-empty ((t (:foreground "#524DFF"))))
'(gnus-group-news-1-empty-face ((t (:foreground "#524DFF"))))
'(gnus-group-news-2-empty ((t (:foreground "#4D58FF"))))
'(gnus-group-news-2-empty-face ((t (:foreground "#4D58FF"))))
'(gnus-group-news-3-empty ((t (:foreground "#4D6AFF"))))
'(gnus-group-news-3-empty-face ((t (:foreground "#4D6AFF"))))
'(gnus-group-news-4-empty ((t (:foreground "#4D7CFF"))))
'(gnus-group-news-4-empty-face ((t (:foreground "#4D7CFF"))))
'(gnus-group-news-5-empty ((t (:foreground "#4D8EFF"))))
'(gnus-group-news-5-empty-face ((t (:foreground "#4D8EFF"))))
'(gnus-group-news-6-empty ((t (:foreground "#4DA0FF"))))
'(gnus-group-news-6-empty-face ((t (:foreground "#4DA0FF"))))
'(gnus-group-news-low ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
'(gnus-group-news-low-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
'(gnus-group-news-low-empty ((t (:foreground "DarkTurquoise"))))
'(gnus-group-news-low-empty-face ((t (:foreground "DarkTurquoise"))))
;;message faces
'(message-cited-text ((t (:foreground "red3"))))
'(message-header-cc ((t (:bold t :foreground "chartreuse1" :weight bold))))
'(message-header-cc-face ((t (:bold t :foreground "chartreuse1" :weight bold))))
'(message-header-name ((t (:foreground "green"))))
'(message-header-name-face ((t (:foreground "green"))))
'(message-header-newsgroups ((t (:italic t :bold t :foreground "papaya whip" :slant italic :weight bold))))
'(message-header-newsgroups-face ((t (:italic t :bold t :foreground "papaya whip" :slant italic :weight bold))))
'(message-header-other ((t (:foreground "ivory"))))
'(message-header-other-face ((t (:foreground "ivory"))))
'(message-header-subject ((t (:foreground "OliveDrab1"))))
'(message-header-subject-face ((t (:foreground "OliveDrab1"))))
'(message-header-to ((t (:bold t :foreground "floral white" :weight bold))))
'(message-header-to-face ((t (:bold t :foreground "floral white" :weight bold))))
'(message-header-xheader ((t (:foreground "DeepSkyBlue1"))))
'(message-header-xheader-face ((t (:foreground "DeepSkyBlue1"))))
'(message-mml ((t (:foreground "MediumSpringGreen"))))
'(message-mml-face ((t (:foreground "MediumSpringGreen"))))
'(message-separator ((t (:foreground "LightSkyBlue1"))))
'(message-separator-face ((t (:foreground "LightSkyBlue1"))))
'(message-url ((t (:bold t :foreground "blue" :weight bold))))
'(bg:erc-color-face0 ((t (:background "saddle brown"))))
'(bg:erc-color-face1 ((t (:background "black"))))
'(bg:erc-color-face10 ((t (:background "DodgerBlue4"))))
'(bg:erc-color-face11 ((t (:background "cyan4"))))
'(bg:erc-color-face12 ((t (:background "blue"))))
'(bg:erc-color-face13 ((t (:background "deeppink"))))
'(bg:erc-color-face14 ((t (:background "gray50"))))
'(bg:erc-color-face15 ((t (:background "grey15"))))
'(bg:erc-color-face2 ((t (:background "blue4"))))
'(bg:erc-color-face3 ((t (:background "green4"))))
'(bg:erc-color-face4 ((t (:background "red"))))
'(bg:erc-color-face5 ((t (:background "brown"))))
'(bg:erc-color-face6 ((t (:background "purple"))))
'(bg:erc-color-face7 ((t (:background "orange"))))
'(bg:erc-color-face8 ((t (:background "yellow4"))))
'(bg:erc-color-face9 ((t (:background "green"))))
'(erc-action-face ((t (:bold t :weight bold :foreground "turquoise1"))))
'(erc-bold-face ((t (:bold t :weight bold))))
'(erc-button ((t (:bold t :weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button)))))
'(erc-button-face ((t (:bold t :weight bold :foreground "RoyalBlue1" :box (:line-width 2 :style released-button)))))
'(erc-command-indicator-face ((t (:bold t :weight bold))))
'(erc-current-nick-face ((t (:bold t :foreground "DarkTurquoise" :weight bold))))
'(erc-dangerous-host-face ((t (:foreground "red"))))
'(erc-direct-msg-face ((t (:foreground "sandybrown"))))
'(erc-error-face ((t (:foreground "red"))))
'(erc-fool-face ((t (:foreground "dim gray"))))
'(erc-header-line ((t (:background "grey95" :foreground "ConFlowerBlue"))))
'(erc-input-face ((t (:foreground "brown"))))
'(erc-inverse-face ((t (:background "Black" :foreground "White"))))
'(erc-keyword-face ((t (:bold t :foreground "pale green" :weight bold))))
'(erc-my-nick-face ((t (:bold t :foreground "brown" :weight bold))))
'(erc-nick-default-face ((t (:bold t :weight bold :foreground "DodgerBlue1"))))
'(erc-button-nickname-face ((t (:bold t :weight bold :background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button) ))))
'(erc-nick-msg-face ((t (:bold t :foreground "IndianRed" :weight bold))))
'(erc-notice-face ((t (:bold t :foreground "SlateBlue" :weight bold))))
'(erc-pal-face ((t (:bold t :foreground "Magenta" :weight bold))))
'(erc-prompt-face ((t (:bold t :background "Navy" :foreground "lightBlue2" :weight bold))))
'(erc-timestamp-face ((t (:bold t :foreground "SeaGreen1" :weight bold))))
'(erc-underline-face ((t (:underline t))))
'(fg:erc-color-face0 ((t (:foreground "BlanchedAlmond"))))
'(fg:erc-color-face1 ((t (:foreground "beige"))))
'(fg:erc-color-face10 ((t (:foreground "pale goldenrod"))))
'(fg:erc-color-face11 ((t (:foreground "cyan"))))
'(fg:erc-color-face12 ((t (:foreground "lightblue1"))))
'(fg:erc-color-face13 ((t (:foreground "deeppink"))))
'(fg:erc-color-face14 ((t (:foreground "gray50"))))
'(fg:erc-color-face15 ((t (:foreground "gray90"))))
'(fg:erc-color-face2 ((t (:foreground "blue4"))))
'(fg:erc-color-face3 ((t (:foreground "green4"))))
'(fg:erc-color-face4 ((t (:foreground "red"))))
'(fg:erc-color-face5 ((t (:foreground "brown"))))
'(fg:erc-color-face6 ((t (:foreground "purple"))))
'(fg:erc-color-face7 ((t (:foreground "orange"))))
'(fg:erc-color-face8 ((t (:foreground "yellow"))))
'(fg:erc-color-face9 ((t (:foreground "green"))))
'(org-agenda-date ((t (:foreground "LightSkyBlue"))))
'(org-agenda-date-weekend ((t (:bold t :foreground "LightSkyBlue" :weight bold))))
'(org-agenda-restriction-lock ((t (:background "skyblue4"))))
'(org-agenda-structure ((t (:foreground "LightSkyBlue"))))
'(org-archived ((t (:foreground "grey70"))))
'(org-code ((t (:foreground "grey70"))))
'(org-column ((t (:background "grey30" :slant normal :weight normal :height 81 :family "unknown-DejaVu Sans Mono"))))
'(org-column-title ((t (:bold t :background "grey30" :underline t :weight bold))))
'(org-date ((t (:foreground "Cyan" :underline t))))
'(org-done ((t (:bold t :foreground "PaleGreen" :weight bold))))
'(org-drawer ((t (:foreground "LightSkyBlue"))))
'(org-ellipsis ((t (:foreground "LightGoldenrod" :underline t))))
'(org-formula ((t (:foreground "chocolate1"))))
'(org-headline-done ((t (:foreground "LightSalmon"))))
'(org-hide ((t (:foreground "black"))))
'(org-latex-and-export-specials ((t (:foreground "burlywood"))))
'(org-level-1 ((t (:foreground "LightSkyBlue"))))
'(org-level-2 ((t (:foreground "LightGoldenrod"))))
'(org-level-3 ((t (:foreground "Cyan1"))))
'(org-level-4 ((t (:foreground "chocolate1"))))
'(org-level-5 ((t (:foreground "PaleGreen"))))
'(org-level-6 ((t (:foreground "Aquamarine"))))
'(org-level-7 ((t (:foreground "LightSteelBlue"))))
'(org-level-8 ((t (:foreground "LightSalmon"))))
'(org-link ((t (:foreground "Cyan" :underline t))))
'(org-mode-line-clock ((t (:foreground "DarkGreen" :underline t))))
'(org-scheduled-previously ((t (:foreground "chocolate1"))))
'(org-scheduled-today ((t (:foreground "PaleGreen"))))
'(org-sexp-date ((t (:foreground "Cyan"))))
'(org-special-keyword ((t (:foreground "LightSalmon"))))
'(org-table ((t (:foreground "LightSkyBlue"))))
'(org-tag ((t (:bold t :weight bold))))
'(org-target ((t (:underline t))))
'(org-time-grid ((t (:foreground "LightGoldenrod"))))
'(org-todo ((t (:bold t :foreground "Pink" :weight bold))))
'(org-upcoming-deadline ((t (:foreground "chocolate1"))))
'(org-verbatim ((t (:foreground "grey70" :underline t))))
'(org-warning ((t (:bold t :weight bold :foreground "Pink"))))
'(outline-1 ((t (:foreground "LightSkyBlue"))))
'(outline-2 ((t (:foreground "LightGoldenrod"))))
'(outline-3 ((t (:foreground "Cyan1"))))
'(outline-4 ((t (:foreground "chocolate1"))))
'(outline-5 ((t (:foreground "PaleGreen"))))
'(outline-6 ((t (:foreground "Aquamarine"))))
'(outline-7 ((t (:foreground "LightSteelBlue"))))
'(outline-8 ((t (:foreground "LightSalmon"))))
'(CUA-global-mark-face ((t (:background "cyan" :foreground "black"))))
'(CUA-rectangle-face ((t (:background "maroon" :foreground "white"))))
'(CUA-rectangle-noselect-face ((t (:background "dimgray" :foreground "white"))))
'(Info-title-1-face ((t (:bold t :weight bold :family "helv" :height 1.728))))
'(Info-title-2-face ((t (:bold t :family "helv" :weight bold :height 1.44))))
'(Info-title-3-face ((t (:bold t :weight bold :family "helv" :height 1.2))))
'(Info-title-4-face ((t (:bold t :family "helv" :weight bold))))
'(align-highlight-nochange-face ((t (:background "SkyBlue4"))))
'(antlr-font-lock-keyword-face ((t (:foreground "SteelBlue")))) ;%
'(antlr-font-lock-literal-face ((t (:foreground "PaleVioletRed"))))
'(antlr-font-lock-ruledef-face ((t (:foreground "DarkGreen"))))
'(antlr-font-lock-ruleref-face ((t (:foreground "SteelBlue"))))
'(antlr-font-lock-tokendef-face ((t (:foreground "khaki"))))
'(antlr-font-lock-tokenref-face ((t (:foreground "LightSteelBlue4"))))
'(bbdb-company ((t (:italic t :slant italic :foreground "indian red"))))
'(bbdb-field-name ((t (:bold t :weight bold :foreground "steel blue"))))
'(bbdb-field-value ((t (:foreground "AntiqueWhite2"))))
'(bbdb-name ((t (:underline t :foreground "cadet blue"))))
'(bold ((t (:bold t :weight bold))))
'(bold-italic ((t (:bold t :italic t :slant italic :weight bold))))
'(border ((t (:background "gold" :foreground "black" ))))
'(buffer-menu-buffer ((t (:bold t :weight bold))))
'(button ((t (:underline t :box (:line-width 2 :color "grey"
:style released-button)
:foreground "black" :background "grey"
:weight bold ))))
'(calendar-today-face ((t (:underline t :bold t :foreground "cornsilk"))))
'(change-log-acknowledgement-face ((t (:italic t :slant oblique :foreground "AntiqueWhite3"))))
'(change-log-conditionals-face ((t (:foreground "Aquamarine"))))
'(change-log-date-face ((t (:italic t :slant oblique :foreground "BurlyWood"))))
'(change-log-email-face ((t (:foreground "Aquamarine"))))
'(change-log-file-face ((t (:bold t :family "Verdana" :weight bold :foreground "LightSkyBlue" :height 0.9))))
'(change-log-function-face ((t (:foreground "Aquamarine"))))
'(change-log-list-face ((t (:foreground "LightSkyBlue"))))
'(change-log-name-face ((t (:bold t :weight bold :foreground "Gold"))))
'(comint-highlight-input ((t (:bold t :weight bold))))
'(comint-highlight-prompt ((t (:foreground "cyan1"))))
'(compilation-column-number ((t (:foreground "PaleGreen"))))
'(compilation-error ((t (:bold t :weight bold :foreground "Brown1"))))
'(compilation-info ((t (:bold t :foreground "LightPink1" :weight bold))))
'(compilation-line-number ((t (:foreground "LightGoldenrod"))))
'(compilation-message-face ((t (:underline t))))
'(compilation-warning ((t (:bold t :foreground "Orange" :weight bold))))
'(compilation-warning-face ((t (:bold t :foreground "Orange" :weight bold))))
'(completions-common-part ((t (:family "unknown-DejaVu Sans Mono"
:width normal :weight normal
:slant normal :foreground "WhiteSmoke"
:background "black" :height 81))))
'(completions-first-difference ((t (:bold t :weight bold))))
'(css-selector ((t (:foreground "LightSteelBlue"))))
'(css-property ((t (:foreground "light sea green"))))
'(cursor ((t (:background "orchid"))))
'(custom-button-face ((t (:background "lightgrey" :foreground "black"
:box '(:line-width 2 :style released-button)))))
'(custom-button-pressed-face ((t (:background "lightgrey"
:foreground "black"
:box '(:line-width 2 :style pressed-button)))))
'(custom-changed-face ((t (:foreground "wheat" :background "blue"))))
'(custom-comment-face ((t (:background "dim gray"))))
'(custom-comment-tag-face ((t (:foreground "gray80"))))
'(custom-face-tag-face ((t (:bold t :family "helv" :weight bold :height 1.1))))
'(custom-group-tag-face ((t (:bold t :family "helv" :foreground "light blue" :weight bold :height 1.1))))
'(custom-group-tag-face-1 ((t (:bold t :family "helv" :foreground "pink" :weight bold :height 1.1))))
'(custom-invalid-face ((t (:background "red" :foreground "yellow"))))
'(custom-modified-face ((t (:background "blue" :foreground "white"))))
'(custom-rogue-face ((t (:background "black" :foreground "pink"))))
'(custom-saved-face ((t (:underline t))))
'(custom-set-face ((t (:background "white" :foreground "blue"))))
'(custom-state-face ((t (:foreground "lime green"))))
'(custom-variable-button-face ((t (:bold t :underline t :weight bold
:background "lightgrey"
:foreground "black"
:box '(:line-width 2 :style released-button)))))
'(custom-variable-tag-face ((t (:bold t :family "helv"
:foreground "light blue"
:weight bold :height 1.2))))
'(diary ((t (:foreground "IndianRed"))))
'(diary-anniversary ((t (:foreground "Cyan1"))))
'(diary-button ((t (:background "lightgrey" :foreground "black" :box (:line-width 2 :style released-button)))))
'(diary-face ((t (:foreground "IndianRed"))))
'(diary-time ((t (:foreground "LightGoldenrod"))))
'(diff-added ((t (:foreground "Green"))))
'(diff-added-face ((t (:foreground "Green"))))
'(diff-changed-face ((t (:foreground "Khaki"))))
'(diff-context-face ((t (:foreground "grey70"))))
'(diff-file-header ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold))))
'(diff-file-header-face ((t (:bold t :background "grey20" :foreground "ivory1" :weight bold))))
'(diff-function-face ((t (:foreground "SpringGreen1"))))
'(diff-header-face ((t (:background "SlateBlue4"))))
'(diff-hunk-header ((t (:slant italic :background "DodgerBlue4"))))
'(diff-hunk-header-face ((t (:slant italic :background "DodgerBlue4"))))
'(diff-index-face ((t (:bold t :weight bold :background "SteelBlue4" :foreground "linen" ))))
'(diff-nonexistent ((t (:bold t :weight bold :background "Black" :foreground "Wheat1"))))
'(diff-nonexistent-face ((t (:bold t :weight bold :background "Black" :foreground "Wheat1"))))
'(diff-removed ((t (:foreground "salmon1"))))
'(diff-removed-face ((t (:foreground "salmon1"))))
'(diff-refine-change-face ((t (:background "MidnightBlue"))))
'(diff-refine-change ((t (:background "MidnightBlue"))))
'(ediff-current-diff-face-A ((t (:foreground "firebrick" :background "pale green"))))
'(ediff-current-diff-face-Ancestor ((t (:foreground "Black" :background "VioletRed"))))
'(ediff-current-diff-face-B ((t (:foreground "DarkOrchid" :background "Yellow"))))
'(ediff-current-diff-face-C ((t (:foreground "Navy" :background "Pink"))))
'(ediff-even-diff-face-A ((t (:foreground "Black" :background "light grey"))))
'(ediff-even-diff-face-Ancestor ((t (:foreground "White" :background "Grey"))))
'(ediff-even-diff-face-B ((t (:foreground "White" :background "Grey"))))
'(ediff-even-diff-face-C ((t (:foreground "Black" :background "light grey"))))
'(ediff-fine-diff-face-A ((t (:foreground "Navy" :background "sky blue"))))
'(ediff-fine-diff-face-Ancestor ((t (:foreground "Black" :background "Green"))))
'(ediff-fine-diff-face-B ((t (:foreground "Black" :background "cyan"))))
'(ediff-fine-diff-face-C ((t (:foreground "Black" :background "Turquoise"))))
'(ediff-odd-diff-face-A ((t (:foreground "White" :background "Grey"))))
'(ediff-odd-diff-face-Ancestor ((t (:foreground "Black" :background "light grey"))))
'(ediff-odd-diff-face-B ((t (:foreground "Black" :background "light grey"))))
'(ediff-odd-diff-face-C ((t (:foreground "White" :background "Grey"))))
'(eieio-custom-slot-tag-face ((t (:foreground "light blue"))))
'(eldoc-highlight-function-argument ((t (:bold t :weight bold))))
'(epa-field-body ((t (:italic t :foreground "turquoise" :slant italic))))
'(epa-field-name ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
'(epa-mark ((t (:bold t :foreground "orange" :weight bold))))
'(epa-string ((t (:foreground "lightyellow"))))
'(epa-validity-disabled ((t (:italic t :slant italic))))
'(epa-validity-high ((t (:bold t :foreground "PaleTurquoise" :weight bold))))
'(epa-validity-low ((t (:italic t :slant italic))))
'(epa-validity-medium ((t (:italic t :foreground "PaleTurquoise" :slant italic))))
'(escape-glyph ((t (:foreground "cyan"))))
'(eshell-ls-archive-face ((t (:bold t :foreground "IndianRed"))))
'(eshell-ls-backup-face ((t (:foreground "Grey"))))
'(eshell-ls-clutter-face ((t (:foreground "DimGray"))))
'(eshell-ls-directory-face ((t (:bold t :foreground "MediumSlateBlue"))))
'(eshell-ls-executable-face ((t (:foreground "Coral"))))
'(eshell-ls-missing-face ((t (:foreground "black"))))
'(eshell-ls-picture-face ((t (:foreground "Violet"))))
'(eshell-ls-product-face ((t (:foreground "sandybrown"))))
'(eshell-ls-readonly-face ((t (:foreground "Aquamarine"))))
'(eshell-ls-special-face ((t (:foreground "Gold"))))
'(eshell-ls-symlink-face ((t (:foreground "DarkCyan" :bold t))))
'(eshell-ls-symlink-face ((t (:foreground "White"))))
'(eshell-ls-unreadable-face ((t (:foreground "DimGray"))))
'(eshell-prompt-face ((t (:foreground "MediumAquamarine"))))
'(eshell-test-failed-face ((t (:foreground "OrangeRed" :bold t))))
'(eshell-test-ok-face ((t (:foreground "Green" :bold t))))
'(excerpt ((t (:italic t))))
'(file-name-shadow ((t (:foreground "grey70"))))
'(fixed ((t (:bold t))))
'(fixed-pitch ((t (:family "courier"))))
'(flyspell-duplicate-face ((t (:foreground "IndianRed" :bold t :underline t))))
'(flyspell-incorrect-face ((t (:foreground "Pink" :bold t :underline t))))
'(fringe ((t (:background "grey30" :foreground "Wheat"))))
'(header-line ((t (:box (:line-width -1 :color "grey20" :style released-button) :background "grey20" :foreground "grey90" :height 0.9))))
'(help-argument-name ((t (:italic t :slant italic))))
'(highlight ((t (:background "gray10" :foreground "Old Lace"))))
'(hl-line ((t (:background "grey10" :foreground "Old Lace"))))
'(gnus-mouse-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(erc-button-mouse-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(align-highlight-change-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(goto-address-url-mouse-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(goto-address-url-mouse-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(ispell-highlight-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(ispell-highlight-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(widget-mouse-face ((t (:background "darkseagreen2" :foreground "blue"))))
'(highlight-beyond-fill-column-face ((t (:underline t))))
'(highlight-changes ((t (:foreground nil :background "#382f2f"))))
'(highlight-changes-delete ((t (:foreground nil :background "#916868"))))
'(holiday ((t (:background "chocolate4"))))
'(holiday-face ((t (:background "chocolate4"))))
'(ibuffer-dired-buffer-face ((t (:foreground "mediumspringgreen" :weight bold :height 1.1))))
'(ibuffer-help-buffer-face ((t (:italic t :slant oblique :foreground "chocolate1"))))
'(ibuffer-hidden-buffer-face ((t (:bold t :foreground "Pink" :weight bold))))
'(ibuffer-occur-match-face ((t (:bold t :foreground "Pink" :weight bold))))
'(ibuffer-read-only-buffer-face ((t (:foreground "SteelBlue1"))))
'(ibuffer-special-buffer-face ((t (:foreground "SteelBlue1"))))
'(ido-first-match ((t (:bold t :weight bold))))
'(ido-incomplete-regexp ((t (:bold t :weight bold :foreground "Pink"))))
'(ido-indicator ((t (:background "red1" :foreground "yellow1" :width condensed))))
'(ido-only-match ((t (:foreground "ForestGreen"))))
'(ido-subdir ((t (:foreground "red1"))))
'(info-menu-5 ((t (:underline t))))
'(info-menu-header ((t (:bold t :family "helv" :weight bold))))
'(info-node ((t (:bold t :italic t :foreground "yellow"))))
'(info-node ((t (:italic t :bold t :foreground "white" :slant italic :weight bold))))
'(info-xref ((t (:bold t :foreground "DodgerBlue1"))))
'(info-xref ((t (:bold t :foreground "cyan" :weight bold))))
'(isearch ((t (:background "palevioletred2" :foreground "brown4"))))
'(isearch-fail ((t (:background "red4"))))
'(isearch-lazy-highlight-face ((t (:background "paleturquoise4"))))
'(isearch-secondary ((t (:foreground "red3"))))
'(italic ((t (:italic t))))
'(js2-builtin-face ((t (:foreground "sandy brown"))))
'(js2-comment-face ((t (:foreground "dark orchid"))))
'(js2-constant-face ((t (:foreground "pale violet red"))))
'(js2-error-face ((t (:background "indian red" :foreground "green" :bold t))))
'(js2-function-name-face ((t (:foreground "cadet blue"))))
'(js2-function-param-face ((t (:foreground "IndianRed1"))))
'(js2-instance-member-face ((t (:foreground "IndianRed1"))))
'(js2-jsdoc-tag-face ((t (:foreground "medium orchid"))))
'(js2-jsdoc-type-face ((t (:foreground "medium orchid"))))
'(js2-jsdoc-value-face ((t (:foreground "medium orchid"))))
'(js2-keyword-face ((t (:foreground "steel blue"))))
'(js2-private-function-call-face ((t (:foreground "cadet blue"))))
'(js2-private-member-face ((t (:foreground "IndianRed1"))))
'(js2-regexp-face ((t (:foreground "khaki"))))
'(js2-string-face ((t (:foreground "lemon chiffon"))))
'(js2-type-face ((t (:foreground "medium sea green"))))
'(js2-variable-name-face ((t (:foreground "IndianRed1"))))
'(js2-warning-face ((t (:background "indian red" :foreground "green"))))
'(lazy-highlight ((t (:background "paleturquoise4"))))
'(link ((t (:foreground "cyan1" :underline t))))
'(link-visited ((t (:underline t :foreground "violet"))))
'(makefile-space ((t (:background "hotpink"))))
'(man-bold ((t (:bold t))))
'(man-heading ((t (:bold t))))
'(man-italic ((t (:foreground "yellow"))))
'(man-xref ((t (:underline t))))
'(match ((t (:background "RoyalBlue3"))))
'(minibuffer-prompt ((t (:foreground "cyan"))))
'(mode-line ((t (:background "grey75" :foreground "Blue"
:box '(:line-width -1 :style released-button)
:height 0.9))))
'(mode-line-buffer-id ((t (:background "grey65" :foreground "red"
:bold t :weight bold :height 0.9))))
'(mode-line-emphasis ((t (:bold t :weight bold))))
'(mode-line-highlight ((t (:box (:line-width 2 :color "grey40"
:style released-button :height 0.9)))))
'(mode-line-inactive ((t (:background "grey30" :foreground "grey80"
:box '(:line-width -1 :color "grey40")
:weight light :height 0.9))))
'(mouse ((t (:background "OrangeRed"))))
'(next-error ((t (:background "blue3"))))
'(nobreak-space ((t (:foreground "cyan" :underline t))))
'(paren-blink-off ((t (:foreground "black"))))
'(paren-mismatch-face ((t (:bold t :background "white" :foreground "red"))))
'(paren-no-match-face ((t (:bold t :background "white" :foreground "red"))))
'(query-replace ((t (:foreground "brown4" :background "palevioletred2"))))
'(region ((t (:background "blue3"))))
'(scroll-bar ((t (:background "grey75" :foreground "WhiteSmoke"))))
'(secondary-selection ((t (:background "SkyBlue4"))))
'(semantic-dirty-token-face ((t (:background "lightyellow"))))
'(semantic-highlight-edits-face ((t (:background "gray20"))))
'(semantic-unmatched-syntax-face ((t (:underline "red"))))
'(senator-intangible-face ((t (:foreground "gray75"))))
'(senator-momentary-highlight-face ((t (:background "gray30"))))
'(senator-read-only-face ((t (:background "#664444"))))
'(sgml-doctype-face ((t (:foreground "orange"))))
'(sgml-end-tag-face ((t (:foreground "greenyellow"))))
'(sgml-entity-face ((t (:foreground "gold"))))
'(sgml-ignored-face ((t (:foreground "gray20" :background "gray60"))))
'(sgml-sgml-face ((t (:foreground "yellow"))))
'(sgml-start-tag-face ((t (:foreground "mediumspringgreen"))))
'(shadow ((t (:foreground "grey70"))))
'(show-paren-match ((t (:background "steelblue3"))))
'(show-paren-match-face ((t (:background "steelblue3"))))
'(show-paren-mismatch ((t (:background "purple" :foreground "white"))))
'(smerge-base ((t (:foreground "orange"))))
'(smerge-markers ((t (:background "grey30"))))
'(smerge-mine ((t (:foreground "cyan"))))
'(smerge-other ((t (:foreground "lightgreen"))))
'(smerge-refined-change ((t (:background "blue4"))))
'(speedbar-button-face ((t (:foreground "green3"))))
'(speedbar-directory-face ((t (:foreground "light blue"))))
'(speedbar-file-face ((t (:foreground "cyan"))))
'(speedbar-highlight-face ((t (:background "sea green"))))
'(speedbar-selected-face ((t (:foreground "red" :underline t))))
'(speedbar-separator-face ((t (:background "blue" :foreground "white" :overline "gray"))))
'(speedbar-tag-face ((t (:foreground "yellow"))))
'(table-cell ((t (:background "blue1" :foreground "gray90"))))
'(tool-bar ((t (:background "grey75" :foreground "black" :box (:line-width 1 :style released-button)))))
'(tooltip ((t (:family "helv" :background "lightyellow" :foreground "black"))))
'(trailing-whitespace ((t (:background "red1"))))
'(underline ((t (:underline t))))
'(variable-pitch ((t (:family "helv"))))
'(vcursor ((t (:foreground "blue" :background "cyan" :underline t))))
'(vertical-border ((t (:background "dim gray"))))
'(vhdl-font-lock-attribute-face ((t (:foreground "Orchid"))))
'(vhdl-font-lock-directive-face ((t (:foreground "CadetBlue"))))
'(vhdl-font-lock-enumvalue-face ((t (:foreground "Gold4"))))
'(vhdl-font-lock-function-face ((t (:foreground "Orchid4"))))
'(vhdl-font-lock-prompt-face ((t (:foreground "Red" :bold t))))
'(vhdl-font-lock-reserved-words-face ((t (:foreground "Orange" :bold t))))
'(vhdl-font-lock-translate-off-face ((t (:background "LightGray"))))
'(vhdl-speedbar-architecture-face ((t (:foreground "Blue"))))
'(vhdl-speedbar-architecture-selected-face ((t (:foreground "Blue" :underline t))))
'(vhdl-speedbar-configuration-face ((t (:foreground "DarkGoldenrod"))))
'(vhdl-speedbar-configuration-selected-face ((t (:foreground "DarkGoldenrod" :underline t))))
'(vhdl-speedbar-entity-face ((t (:foreground "ForestGreen"))))
'(vhdl-speedbar-entity-selected-face ((t (:foreground "ForestGreen" :underline t))))
'(vhdl-speedbar-instantiation-face ((t (:foreground "Brown"))))
'(vhdl-speedbar-instantiation-selected-face ((t (:foreground "Brown" :underline t))))
'(vhdl-speedbar-package-face ((t (:foreground "Grey50"))))
'(vhdl-speedbar-package-selected-face ((t (:foreground "Grey50" :underline t))))
'(viper-minibuffer-emacs-face ((t (:foreground "Black" :background "darkseagreen2"))))
'(viper-minibuffer-insert-face ((t (:foreground "Black" :background "pink"))))
'(viper-minibuffer-vi-face ((t (:foreground "DarkGreen" :background "grey"))))
'(viper-replace-overlay-face ((t (:foreground "Black" :background "darkseagreen2"))))
'(viper-search-face ((t (:foreground "Black" :background "khaki"))))
'(vm-highlight-url-face ((t (:bold t :italic t :slant italic :weight bold))))
'(vm-highlighted-header-face ((t (:bold t :weight bold))))
'(vm-mime-button-face ((t (:background "grey75" :foreground "black" :box (:line-width 2 :style released-button)))))
'(vm-summary-highlight-face ((t (:bold t :weight bold))))
'(vm-xface ((t (:background "white" :foreground "black"))))
'(which-func ((t (:foreground "Blue1"))))
'(widget ((t (:height 1.2 :background "Gray80" :foreground "black"))))
'(widget-button ((t (:bold t :weight bold :box (:line-width 2 :style released-button)))))
'(widget-button-face ((t (:bold t :weight bold :box (:line-width 2 :style released-button)))))
'(widget-button-pressed ((t (:foreground "red1" :background "lightgrey" :box (:line-width 2 :style pressed-button)))))
'(widget-button-pressed-face ((t (:foreground "red1" :background "lightgrey" :box (:line-width 2 :style pressed-button)))))
'(widget-documentation ((t (:foreground "lime green"))))
'(widget-documentation-face ((t (:foreground "lime green"))))
'(widget-field ((t (:background "dim gray"))))
'(widget-field-face ((t (:background "dim gray"))))
'(widget-inactive ((t (:foreground "grey70"))))
'(widget-inactive-face ((t (:foreground "grey70"))))
'(widget-single-line-field ((t (:background "dim gray"))))
'(widget-single-line-field-face ((t (:background "dim gray"))))
'(woman-bold-face ((t (:bold t))))
'(woman-italic-face ((t (:foreground "beige"))))
'(woman-unknown-face ((t (:foreground "LightSalmon")))))
(provide-theme 'manoj-dark)
;; Local Variables:
;; no-byte-compile: t
;; End:
;;; manoj-dark.el ends here

View file

@ -1,4 +1,4 @@
2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
Assume support for memcmp, memcpy, memmove, memset.
* etags.c (absolute_filename): Assume memmove exists.

View file

@ -1,3 +1,219 @@
2011-07-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* mail/smtpmail.el (smtpmail-default-smtp-server): Made into a
defcustom again for backwards compatibility.
* simple.el (shell-command-on-region): Fill.
* dired-aux.el (dired-kill-line): Add a doc string.
* dabbrev.el (dabbrev-abbrev-char-regexp): Note that nil defaults
to "\\sw\\|\\s_" (bug#358).
* dired.el (dired-mode): Clarify "unmark or unflag" (bug#8770).
(dired-unmark-backward): Ditto.
(dired-flag-backup-files): Ditto.
* dired-x.el (dired-mark-sexp): Ditto.
2011-07-06 Richard Stallman <rms@gnu.org>
* mail/rmailmm.el: Give entity a new slot, TRUNCATED.
(rmail-mime-entity): New arg TRUNCATED.
(rmail-mime-entity-truncated, rmail-mime-entity-set-truncated):
New functions.
(rmail-mime-save): Warn if entity is truncated.
(rmail-mime-toggle-hidden): Likewise, for showing.
(rmail-mime-process-multipart): Record when an entity is truncated.
* mail/rmailmm.el (rmail-search-mime-message): Don't get confused
if ENTITY is a string.
2011-07-06 Lars Magne Ingebrigtsen <larsi@gnus.org>
* emacs-lisp/lisp-mode.el (eval-defun-1): Update the documentation
of faces when `M-C-x'-ing their definitions (bug#8378). Also
clean up the code slightly.
* progmodes/grep.el (rgrep): Don't bind `process-connection-type',
because that makes the colours go away.
* mail/sendmail.el (send-mail-function): Change the default to
`sendmail-query-once'.
(sendmail-query-once): Add an autoload cookie.
* net/network-stream.el (network-stream-open-starttls): Try using
a plain connection even if the server offered STARTTLS, and we
kinda wanted to use it, if Emacs doesn't have any STARTTLS
capability. This should make smtpmail.el work in slightly more
configurations.
2011-07-06 Michael Albinus <michael.albinus@gmx.de>
* net/tramp-compat.el (tramp-compat-pop-to-buffer-same-window):
New defun.
* net/tramp-cmds.el (tramp-append-tramp-buffers): Use it.
2011-07-06 Michael R. Mauger <mmaug@yahoo.com>
* progmodes/sql.el: Version 3.0
(sql-product-alist): Added product :completion-object,
:completion-column, and :statement attributes.
(sql-mode-menu, sql-interactive-mode-map): Fixed List entries.
(sql-mode-syntax-table): Mark all punctuation.
(sql-font-lock-keywords-builder): Temporarily removed fallback on
ansi keywords.
(sql-regexp-abbrev, sql-regexp-abbrev-list): New functions.
(sql-mode-oracle-font-lock-keywords): Improved.
(sql-oracle-show-reserved-words): New function for development.
(sql-product-font-lock): Simplify for source code buffers.
(sql-product-syntax-table, sql-product-font-lock-syntax-alist):
New functions.
(sql-highlight-product): Set product specific syntax table.
(sql-mode-map): Added statement movement functions.
(sql-ansi-statement-starters, sql-oracle-statement-starters): New
variable.
(sql-statement-regexp, sql-beginning-of-statement)
(sql-end-of-statement, sql-signum): New functions.
(sql-buffer-live-p, sql=find-sqli-buffer): Added CONNECTION
parameter.
(sql-show-sqli-buffer): Bug fix.
(sql-interactive-mode): Store connection data as buffer local.
(sql-connect): Added NEW-NAME parameter. Redesigned interaction
with sql-interactive-mode.
(sql-save-connection): Save buffer local settings.
(sql-connection-menu-filter): Changed menu entry name.
(sql-product-interactive): Bug fix.
(sql-preoutput-hold): New variable.
(sql-interactive-remove-continuation-prompt): Bug fixes.
(sql-debug-redirect): New variable.
(sql-str-literal): New function.
(sql-redirect, sql-redirect-one, sql-redirect-value, sql-execute):
Redesigned.
(sql-oracle-save-settings, sql-oracle-restore-settings)
(sql-oracle-list-all, sql-oracle-list-table): New functions.
(sql-completion-object, sql-completion-column)
(sql-completion-sqlbuf): New variables.
(sql-build-completions-1, sql-build-completions)
(sql-try-completion): New functions.
(sql-read-table-name): Use them.
(sql-contains-names): New buffer local variable.
(sql-list-all, sql-list-table): Use it.
(sql-oracle-completion-types): New variable.
(sql-oracle-completion-object, sql-sqlite-completion-object)
(sql-postgres-completion-object): New functions.
2011-07-06 Glenn Morris <rgm@gnu.org>
* window.el (pop-to-buffer): Doc fix.
2011-07-06 Markus Heiser <markus.heiser@darmarit.de> (tiny change)
* progmodes/gud.el (gud-pdb-marker-regexp): Accept \r char (Bug#5653).
2011-07-06 Chong Yidong <cyd@stupidchicken.com>
* window.el (special-display-popup-frame): Doc fix (Bug#8853).
* info.el (Info-directory-toc-nodes): Minor doc fix (Bug#8833).
2011-07-05 Chong Yidong <cyd@stupidchicken.com>
* button.el (button): Inherit from link face. Suggested by Dan
Nicolaescu.
2011-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/gdb-mi.el: Fit in 80 columns.
(gdb-setup-windows, gdb-restore-windows): Avoid other-window and
switch-to-buffer.
* progmodes/which-func.el (which-func-ff-hook): Don't output a message
if imenu is simply not configured (bug#8941).
2011-07-05 Ken Manheimer <ken.manheimer@gmail.com>
* allout.el (allout-post-undo-hook): New allout outline-change
event hook to signal undo activity.
(allout-post-command-business): Run allout-post-undo-hook if an
undo just occurred.
(allout-after-copy-or-kill-hook, allout-mode): Minor docstring changes.
* allout-widgets.el (allout-widgets-after-undo-function):
Ensure the integrity of the current item's decoration after it has been
in the vicinity of an undo.
(allout-widgets-mode): Include allout-widgets-after-undo-function
on the new allout-post-undo-hook.
2011-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
* emacs-lisp/lisp-mode.el (lisp-interaction-mode-abbrev-table):
Let define-derived-mode define it.
* emacs-lisp/derived.el (define-derived-mode): Try to avoid creating
cycles of abbrev-table inheritance (bug#8998).
2011-07-05 Roland Winkler <winkler@gnu.org>
* textmodes/bibtex.el: Add support for biblatex.
(bibtex-BibTeX-entry-alist, bibtex-biblatex-entry-alist)
(bibtex-BibTeX-field-alist, bibtex-biblatex-field-alist)
(bibtex-dialect-list, bibtex-dialect, bibtex-no-opt-remove-re)
(bibtex-entry-alist, bibtex-field-alist): New variables.
(bibtex-entry-field-alist): Obsolete alias for
bibtex-BibTeX-entry-alist.
(bibtex-entry-alist, bibtex-field-alist): New widgets.
(bibtex-set-dialect): New command.
(bibtex-entry-type, bibtex-entry-head)
(bibtex-entry-maybe-empty-head, bibtex-any-valid-entry-type):
Bind via bibtex-set-dialect.
(bibtex-Article, bibtex-Book, bibtex-Booklet, bibtex-InBook)
(bibtex-InCollection, bibtex-InProceedings, bibtex-Manual)
(bibtex-MastersThesis, bibtex-Misc, bibtex-PhdThesis)
(bibtex-Proceedings, bibtex-TechReport, bibtex-Unpublished):
Define via bibtex-set-dialect.
(bibtex-name-in-field, bibtex-remove-OPT-or-ALT):
Obey bibtex-no-opt-remove-re.
(bibtex-vec-push, bibtex-vec-incr): New functions.
(bibtex-format-entry, bibtex-field-list)
(bibtex-print-help-message, bibtex-validate)
(bibtex-search-entries): Use new format of bibtex-entry-alist.
2011-07-05 Stefan Monnier <monnier@iro.umontreal.ca>
* progmodes/compile.el (compilation-goto-locus):
* net/tramp-cmds.el (tramp-append-tramp-buffers):
* bs.el (bs-cycle-next, bs-cycle-previous):
* bookmark.el (bookmark-bmenu-list, bookmark-bmenu-2-window):
* bindings.el (mode-line-other-buffer):
* autoinsert.el (auto-insert):
* arc-mode.el (archive-extract):
* abbrev.el (edit-abbrevs): Fix some uses of switch-to-buffer.
2011-07-05 Juanma Barranquero <lekktu@gmail.com>
* emacs-lock.el (emacs-lock-mode): Fix typo in variable name.
Fix check of `emacs-lock-unlockable-modes'.
Coerce true values of `emacs-lock--try-unlocking' to t.
2011-07-05 Juanma Barranquero <lekktu@gmail.com>
* obsolete/old-emacs-lock.el: Rename from emacs-lock.el.
* emacs-lock.el: New file.
2011-07-05 Julien Danjou <julien@danjou.info>
* textmodes/rst.el (rst-define-level-faces): Use `facep' rather
than `boundp' to check if face is set.
2011-07-05 Juanma Barranquero <lekktu@gmail.com>
* register.el (registerv-make):
* window.el (window-min-height): Fix typos in docstrings.
2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
* dynamic-setting.el (dynamic-setting-handle-config-changed-event):
Update doc string.
2011-07-04 Juanma Barranquero <lekktu@gmail.com>
* server.el (server-execute): Catch quit and call
@ -38,8 +254,8 @@
according to whether there are or aren't any plain-text topics
pending encryption.
(allout-inhibit-auto-save-info-for-decryption): Adjust
buffer-saved-size and some allout state to inhibit auto-saves if
(allout-inhibit-auto-save-info-for-decryption):
Adjust buffer-saved-size and some allout state to inhibit auto-saves if
there are plain-text topics pending encryption.
(allout-maybe-resume-auto-save-info-after-encryption): Adjust

View file

@ -159,7 +159,7 @@ where NAME and EXPANSION are strings with quotes,
USECOUNT is an integer, and HOOK is any valid function
or may be omitted (it is usually omitted)."
(interactive)
(switch-to-buffer (prepare-abbrev-list-buffer)))
(pop-to-buffer-same-window (prepare-abbrev-list-buffer)))
(defun edit-abbrevs-redefine ()
"Redefine abbrevs according to current buffer contents."

View file

@ -561,6 +561,8 @@ outline hot-spot navigation \(see `allout-mode')."
'allout-widgets-shifts-recorder nil 'local)
(add-hook 'allout-after-copy-or-kill-hook
'allout-widgets-after-copy-or-kill-function nil 'local)
(add-hook 'allout-post-undo-hook
'allout-widgets-after-undo-function nil 'local)
(add-hook 'before-change-functions 'allout-widgets-before-change-handler
nil 'local)
@ -1130,6 +1132,14 @@ Dispatched by `allout-widgets-post-command-business' in response to
Intended for use on allout-after-copy-or-kill-hook."
(if (car kill-ring)
(setcar kill-ring (allout-widgets-undecorate-text (car kill-ring)))))
;;;_ > allout-widgets-after-undo-function ()
(defun allout-widgets-after-undo-function ()
"Do allout-widgets processing of text after an undo.
Intended for use on allout-post-undo-hook."
(save-excursion
(if (allout-goto-prefix)
(allout-redecorate-item (allout-get-or-create-item-widget)))))
;;;_ > allout-widgets-exposure-undo-recorder (widget from-state)
(defun allout-widgets-exposure-undo-recorder (widget)

View file

@ -1461,7 +1461,15 @@ This hook might be invoked multiple times by a single command.")
(defvar allout-after-copy-or-kill-hook nil
"*Hook that's run after copying outline text.
Functions on the hook should not take any arguments.")
Functions on the hook should not require any arguments.")
;;;_ = allout-post-undo-hook
(defvar allout-post-undo-hook nil
"*Hook that's run after undo activity.
The item that's current when the hook is run *may* be the one
that was affected by the undo.
Functions on the hook should not require any arguments.")
;;;_ = allout-outside-normal-auto-fill-function
(defvar allout-outside-normal-auto-fill-function nil
"Value of normal-auto-fill-function outside of allout mode.
@ -1874,6 +1882,7 @@ without changes to the allout core. Here are key ones:
`allout-structure-deleted-hook'
`allout-structure-shifted-hook'
`allout-after-copy-or-kill-hook'
`allout-post-undo-hook'
Terminology
@ -3313,6 +3322,7 @@ coordinating with allout activity.")
(when allout-just-did-undo
(setq allout-just-did-undo nil)
(run-hooks 'allout-post-undo-hook)
(cond ((and (= buffer-saved-size -1)
allout-auto-save-temporarily-disabled)
;; user possibly undid a decryption, deinhibit auto-save:

View file

@ -1083,7 +1083,7 @@ using `make-temp-file', and the generated name is returned."
(view-buffer buffer (and just-created 'kill-buffer-if-not-modified)))
((eq other-window-p 'display) (display-buffer buffer))
(other-window-p (switch-to-buffer-other-window buffer))
(t (switch-to-buffer buffer))))))
(t (pop-to-buffer-same-window buffer))))))
(defun archive-*-extract (archive name command)
(let* ((default-directory (file-name-as-directory archive-tmpdir))

View file

@ -360,7 +360,7 @@ Matches the visited file name against the elements of `auto-insert-alist'."
(save-window-excursion
;; make buffer visible before skeleton or function
;; which might ask the user for something
(switch-to-buffer (current-buffer))
(pop-to-buffer-same-window (current-buffer))
(if (and (consp action)
(not (eq (car action) 'lambda)))
(skeleton-insert action)

View file

@ -471,7 +471,8 @@ Like `bury-buffer', but temporarily select EVENT's window."
(defun mode-line-other-buffer () "\
Switch to the most recently selected buffer other than the current one."
(interactive)
(switch-to-buffer (other-buffer)))
(with-no-warnings ; We really do want to call `switch-to-buffer' here.
(switch-to-buffer (other-buffer))))
(defun mode-line-next-buffer (event)
"Like `next-buffer', but temporarily select EVENT's window."

View file

@ -1539,9 +1539,7 @@ deletion, or > if it is flagged for displaying."
(bookmark-maybe-load-default-file)
(let ((buf (get-buffer-create "*Bookmark List*")))
(if (called-interactively-p 'interactive)
(if (or (window-dedicated-p) (window-minibuffer-p))
(pop-to-buffer buf)
(switch-to-buffer buf))
(pop-to-buffer-same-window buf)
(set-buffer buf)))
(let ((inhibit-read-only t))
(erase-buffer)
@ -1843,7 +1841,8 @@ With a prefix arg, prompts for a file to save them in."
(menu (current-buffer))
(pop-up-windows t))
(delete-other-windows)
(switch-to-buffer (other-buffer))
(with-no-warnings ; We really do want to call `switch-to-buffer' here.
(switch-to-buffer (other-buffer)))
(bookmark--jump-via bmrk 'pop-to-buffer)
(bury-buffer menu)))

View file

@ -1215,7 +1215,8 @@ by buffer configuration `bs-cycle-configuration-name'."
;; We don't want the frame iconified if the only window in the frame
;; happens to be dedicated.
(bury-buffer (current-buffer))
(switch-to-buffer next)
(with-no-warnings ; We really do want to call `switch-to-buffer' here.
(switch-to-buffer next))
(setq bs--cycle-list (append (cdr cycle-list)
(list (car cycle-list))))
(bs-message-without-log "Next buffers: %s"
@ -1244,7 +1245,8 @@ by buffer configuration `bs-cycle-configuration-name'."
bs--cycle-list)))
(prev-buffer (car tupel))
(cycle-list (cdr tupel)))
(switch-to-buffer prev-buffer)
(with-no-warnings ; We really do want to call `switch-to-buffer' here.
(switch-to-buffer prev-buffer))
(setq bs--cycle-list (append (last cycle-list)
(reverse (cdr (reverse cycle-list)))))
(bs-message-without-log "Previous buffers: %s"

View file

@ -54,10 +54,7 @@
;; Use color for the MS-DOS port because it doesn't support underline.
;; FIXME if MS-DOS correctly answers the (supports) question, it need
;; no longer be a special case.
(defface button '((((type pc) (class color))
(:foreground "lightblue"))
(((supports :underline t)) :underline t)
(t (:foreground "lightblue")))
(defface button '((t :inherit link))
"Default face used for buttons."
:group 'basic-faces)

View file

@ -1407,7 +1407,7 @@ This function returns nil if no custom theme specifies a value for VARIABLE."
(face-spec-recalc face frame)))
;;; XEmacs compability functions
;;; XEmacs compatibility functions
;; In XEmacs, when you reset a Custom Theme, you have to specify the
;; theme to reset it to. We just apply the next available theme, so

View file

@ -206,7 +206,8 @@ starting with or containing `no-'. If you set this variable to
expanding `yes-or-no-' signals an error because `-' is not part of a word;
but expanding `yes-or-no' looks for a word starting with `no'.
The recommended value is \"\\\\sw\\\\|\\\\s_\"."
The recommended value is nil, which will make dabbrev default to
using \"\\\\sw\\\\|\\\\s_\"."
:type '(choice (const nil)
regexp)
:group 'dabbrev)

View file

@ -699,6 +699,9 @@ can be produced by `dired-get-marked-files', for example."
;; Commands that delete or redisplay part of the dired buffer.
(defun dired-kill-line (&optional arg)
"Kill the current line (not the files).
With a prefix argument, kill that many lines starting with the current line.
\(A negative argument kills backward.)"
(interactive "P")
(setq arg (prefix-numeric-value arg))
(let (buffer-read-only file)
@ -1008,7 +1011,7 @@ See Info node `(emacs)Subdir switches' for more details."
(dired-uncache
(if (consp dired-directory) (car dired-directory) dired-directory))
(dired-map-over-marks (let ((fname (dired-get-filename))
;; Postphone readin hook till we map
;; Postpone readin hook till we map
;; over all marked files (Bug#6810).
(dired-after-readin-hook nil))
(message "Redisplaying... %s" fname)

View file

@ -1406,7 +1406,7 @@ Considers buffers closer to the car of `buffer-list' to be more recent."
(defun dired-mark-sexp (predicate &optional unflag-p)
"Mark files for which PREDICATE returns non-nil.
With a prefix arg, unflag those files instead.
With a prefix arg, unmark or unflag those files instead.
PREDICATE is a lisp expression that can refer to the following symbols:

View file

@ -1812,7 +1812,7 @@ Type \\[dired-mark] to Mark a file or subdirectory for later commands.
Mark-using commands display a list of failures afterwards. Type \\[dired-summary]
to see why something went wrong.
Type \\[dired-unmark] to Unmark a file or all files of an inserted subdirectory.
Type \\[dired-unmark-backward] to back up one line and unflag.
Type \\[dired-unmark-backward] to back up one line and unmark or unflag.
Type \\[dired-do-flagged-delete] to delete (eXecute) the files flagged `D'.
Type \\[dired-find-file] to Find the current line's file
(or dired it in another buffer, if it is a directory).
@ -3028,8 +3028,9 @@ If on a subdir headerline, mark all its files except `.' and `..'."
(dired-mark arg)))
(defun dired-unmark-backward (arg)
"In Dired, move up lines and remove deletion flag there.
Optional prefix ARG says how many lines to unflag; default is one line."
"In Dired, move up lines and remove marks or deletion flags there.
Optional prefix ARG says how many lines to unmark/unflag; default
is one line."
(interactive "p")
(dired-unmark (- arg)))
@ -3123,14 +3124,14 @@ The match is against the non-directory part of the filename. Use `^'
(defun dired-mark-symlinks (unflag-p)
"Mark all symbolic links.
With prefix argument, unflag all those files."
With prefix argument, unmark or unflag all those files."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
(dired-mark-if (looking-at dired-re-sym) "symbolic link")))
(defun dired-mark-directories (unflag-p)
"Mark all directory file lines except `.' and `..'.
With prefix argument, unflag all those files."
With prefix argument, unmark or unflag all those files."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
(dired-mark-if (and (looking-at dired-re-dir)
@ -3139,7 +3140,7 @@ With prefix argument, unflag all those files."
(defun dired-mark-executables (unflag-p)
"Mark all executable files.
With prefix argument, unflag all those files."
With prefix argument, unmark or unflag all those files."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\040 dired-marker-char)))
(dired-mark-if (looking-at dired-re-exe) "executable file")))
@ -3149,7 +3150,7 @@ With prefix argument, unflag all those files."
(defun dired-flag-auto-save-files (&optional unflag-p)
"Flag for deletion files whose names suggest they are auto save files.
A prefix argument says to unflag those files instead."
A prefix argument says to unmark or unflag those files instead."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\040 dired-del-marker)))
(dired-mark-if
@ -3189,7 +3190,7 @@ A prefix argument says to unflag those files instead."
(defun dired-flag-backup-files (&optional unflag-p)
"Flag all backup files (names ending with `~') for deletion.
With prefix argument, unflag these files."
With prefix argument, unmark or unflag these files."
(interactive "P")
(let ((dired-marker-char (if unflag-p ?\s dired-del-marker)))
(dired-mark-if
@ -3642,7 +3643,7 @@ Ask means pop up a menu for the user to select one of copy, move or link."
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "65e65633e08c3e4b4a4b1c735f2f48b8")
;;;;;; dired-diff) "dired-aux" "dired-aux.el" "d7b197829c8d456cc5bc6c5fdab7c4b0")
;;; Generated autoloads from dired-aux.el
(autoload 'dired-diff "dired-aux" "\

View file

@ -86,7 +86,9 @@ current form for the frame (i.e. hinting or somesuch changed)."
Changes can be
The monospace font. If `font-use-system-font' is nil, the font
is not changed.
The normal font.
Xft parameters, like DPI and hinting.
The Gtk+ theme name.
The tool bar style."
(interactive "e")
(let ((type (nth 1 event))

View file

@ -255,7 +255,10 @@ No problems result if this variable is not bound.
(not (eq parent (standard-syntax-table))))
(set-char-table-parent ,syntax (syntax-table)))))
,(when declare-abbrev
`(unless (abbrev-table-get ,abbrev :parents)
`(unless (or (abbrev-table-get ,abbrev :parents)
;; This can happen if the major mode defines
;; the abbrev-table to be its parent's.
(eq ,abbrev local-abbrev-table))
(abbrev-table-put ,abbrev :parents
(list local-abbrev-table))))))
(use-local-map ,map)

View file

@ -525,7 +525,6 @@ if that value is non-nil."
"Keymap for Lisp Interaction mode.
All commands in `lisp-mode-shared-map' are inherited by this map.")
(defvar lisp-interaction-mode-abbrev-table lisp-mode-abbrev-table)
(define-derived-mode lisp-interaction-mode emacs-lisp-mode "Lisp Interaction"
"Major mode for typing and evaluating Lisp forms.
Like Lisp mode except that \\[eval-print-last-sexp] evals the Lisp expression
@ -790,25 +789,25 @@ Reinitialize the face according to the `defface' specification."
;; `defface' is macroexpanded to `custom-declare-face'.
((eq (car form) 'custom-declare-face)
;; Reset the face.
(setq face-new-frame-defaults
(assq-delete-all (eval (nth 1 form) lexical-binding)
face-new-frame-defaults))
(put (eval (nth 1 form) lexical-binding) 'face-defface-spec nil)
;; Setting `customized-face' to the new spec after calling
;; the form, but preserving the old saved spec in `saved-face',
;; imitates the situation when the new face spec is set
;; temporarily for the current session in the customize
;; buffer, thus allowing `face-user-default-spec' to use the
;; new customized spec instead of the saved spec.
;; Resetting `saved-face' temporarily to nil is needed to let
;; `defface' change the spec, regardless of a saved spec.
(prog1 `(prog1 ,form
(put ,(nth 1 form) 'saved-face
',(get (eval (nth 1 form) lexical-binding)
'saved-face))
(put ,(nth 1 form) 'customized-face
,(nth 2 form)))
(put (eval (nth 1 form) lexical-binding) 'saved-face nil)))
(let ((face-symbol (eval (nth 1 form) lexical-binding)))
(setq face-new-frame-defaults
(assq-delete-all face-symbol face-new-frame-defaults))
(put face-symbol 'face-defface-spec nil)
(put face-symbol 'face-documentation (nth 3 form))
;; Setting `customized-face' to the new spec after calling
;; the form, but preserving the old saved spec in `saved-face',
;; imitates the situation when the new face spec is set
;; temporarily for the current session in the customize
;; buffer, thus allowing `face-user-default-spec' to use the
;; new customized spec instead of the saved spec.
;; Resetting `saved-face' temporarily to nil is needed to let
;; `defface' change the spec, regardless of a saved spec.
(prog1 `(prog1 ,form
(put ,(nth 1 form) 'saved-face
',(get face-symbol 'saved-face))
(put ,(nth 1 form) 'customized-face
,(nth 2 form)))
(put face-symbol 'saved-face nil))))
((eq (car form) 'progn)
(cons 'progn (mapcar 'eval-defun-1 (cdr form))))
(t form)))

View file

@ -1,9 +1,10 @@
;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked
;;; emacs-lock.el --- protect buffers against killing or exiting -*- lexical-binding: t -*-
;; Copyright (C) 1994, 1997, 2001-2011 Free Software Foundation, Inc
;; Copyright (C) 2011 Free Software Foundation, Inc
;; Author: Tom Wurgler <twurgler@goodyear.com>
;; Created: 12/8/94
;; Author: Juanma Barranquero <lekktu@gmail.com>
;; Inspired by emacs-lock.el by Tom Wurgler <twurgler@goodyear.com>
;; Maintainer: FSF
;; Keywords: extensions, processes
;; This file is part of GNU Emacs.
@ -23,78 +24,220 @@
;;; Commentary:
;; This code sets a buffer-local variable to t if toggle-emacs-lock is run,
;; then if the user attempts to exit Emacs, the locked buffer name will be
;; displayed and the exit aborted. This is just a way of protecting
;; yourself from yourself. For example, if you have a shell running a big
;; program and exiting Emacs would abort that program, you may want to lock
;; that buffer, then if you forget about it after a while, you won't
;; accidentally exit Emacs. To unlock the buffer, just goto the buffer and
;; run toggle-emacs-lock again.
;; This package defines a minor mode Emacs Lock to mark a buffer as
;; protected against accidental killing, or exiting Emacs, or both.
;; Buffers associated with inferior modes, like shell or telnet, can
;; be treated specially, by auto-unlocking them if their interior
;; processes are dead.
;;; Code:
(defvar emacs-lock-from-exiting nil
"Whether Emacs is locked to prevent exiting. See `check-emacs-lock'.")
(make-variable-buffer-local 'emacs-lock-from-exiting)
(defgroup emacs-lock nil
"Emacs-Lock mode."
:version "24.1"
:group 'convenience)
(defvar emacs-lock-buffer-locked nil
"Whether a shell or telnet buffer was locked when its process was killed.")
(make-variable-buffer-local 'emacs-lock-buffer-locked)
(put 'emacs-lock-buffer-locked 'permanent-local t)
(defcustom emacs-lock-default-locking-mode 'all
"Default locking mode of Emacs-Locked buffers.
(defun check-emacs-lock ()
"Check if variable `emacs-lock-from-exiting' is t for any buffer.
If any locked buffer is found, signal error and display the buffer's name."
(save-excursion
(dolist (buffer (buffer-list))
(set-buffer buffer)
(when emacs-lock-from-exiting
(error "Emacs is locked from exit due to buffer: %s" (buffer-name))))))
Its value is used as the default for `emacs-lock-mode' (which
see) the first time that Emacs Lock mode is turned on in a buffer
without passing an explicit locking mode.
(defun toggle-emacs-lock ()
"Toggle `emacs-lock-from-exiting' for the current buffer.
See `check-emacs-lock'."
(interactive)
(setq emacs-lock-from-exiting (not emacs-lock-from-exiting))
(if emacs-lock-from-exiting
(message "Buffer is now locked")
(message "Buffer is now unlocked")))
Possible values are:
exit -- Emacs cannot exit while the buffer is locked
kill -- the buffer cannot be killed, but Emacs can exit as usual
all -- the buffer is locked against both actions
nil -- the buffer is not locked"
:type '(choice
(const :tag "Do not allow Emacs to exit" exit)
(const :tag "Do not allow killing the buffer" kill)
(const :tag "Do not allow killing the buffer or exiting Emacs" all)
(const :tag "Do not lock the buffer" nil))
:group 'emacs-lock
:version "24.1")
(defun emacs-lock-check-buffer-lock ()
"Check if variable `emacs-lock-from-exiting' is t for a buffer.
If the buffer is locked, signal error and display its name."
(when emacs-lock-from-exiting
(error "Buffer `%s' is locked, can't delete it" (buffer-name))))
;; Note: as auto-unlocking can lead to data loss, it would be better
;; to default to nil; but the value below is for compatibility with
;; the old emacs-lock.el.
(defcustom emacs-lock-unlockable-modes '((shell-mode . all)
(telnet-mode . all))
"Alist of auto-unlockable modes.
Each element is a pair (MAJOR-MODE . ACTION), where ACTION is
one of `kill', `exit' or `all'. Buffers with matching major
modes are auto-unlocked for the specific action if their
inferior processes are not alive. If this variable is t, all
buffers associated to inferior processes are auto-unlockable
for both actions (NOT RECOMMENDED)."
:type '(choice
(const :tag "All buffers with inferior processes" t)
(repeat :tag "Selected modes"
(cons :tag "Set auto-unlock for"
(symbol :tag "Major mode")
(radio
(const :tag "Allow exiting" exit)
(const :tag "Allow killing" kill)
(const :tag "Allow both" all)))))
:group 'emacs-lock
:version "24.1")
; These next defuns make it so if you exit a shell that is locked, the lock
; is shut off for that shell so you can exit Emacs. Same for telnet.
; Also, if a shell or a telnet buffer was locked and the process killed,
; turn the lock back on again if the process is restarted.
(defvar emacs-lock-mode nil
"If non-nil, the current buffer is locked.
It can be one of the following values:
exit -- Emacs cannot exit while the buffer is locked
kill -- the buffer cannot be killed, but Emacs can exit as usual
all -- the buffer is locked against both actions
nil -- the buffer is not locked")
(make-variable-buffer-local 'emacs-lock-mode)
(put 'emacs-lock-mode 'permanent-local t)
(defun emacs-lock-shell-sentinel ()
(set-process-sentinel
(get-buffer-process (buffer-name)) (function emacs-lock-clear-sentinel)))
(defvar emacs-lock--old-mode nil
"Most recent locking mode set on the buffer.
Internal use only.")
(make-variable-buffer-local 'emacs-lock--old-mode)
(put 'emacs-lock--old-mode 'permanent-local t)
(defun emacs-lock-clear-sentinel (_proc _str)
(if emacs-lock-from-exiting
(defvar emacs-lock--try-unlocking nil
"Non-nil if current buffer should be checked for auto-unlocking.
Internal use only.")
(make-variable-buffer-local 'emacs-lock--try-unlocking)
(put 'emacs-lock--try-unlocking 'permanent-local t)
(defun emacs-lock-live-process-p (buffer-or-name)
"Return t if BUFFER-OR-NAME is associated with a live process."
(let ((proc (get-buffer-process buffer-or-name)))
(and proc (process-live-p proc))))
(defun emacs-lock--can-auto-unlock (action)
"Return t if the current buffer can auto-unlock for ACTION.
ACTION must be one of `kill' or `exit'.
See `emacs-lock-unlockable-modes'."
(and emacs-lock--try-unlocking
(not (emacs-lock-live-process-p (current-buffer)))
(or (eq emacs-lock-unlockable-modes t)
(let ((unlock (cdr (assq major-mode emacs-lock-unlockable-modes))))
(or (eq unlock 'all) (eq unlock action))))))
(defun emacs-lock--exit-locked-buffer ()
"Return the name of the first exit-locked buffer found."
(save-current-buffer
(catch :found
(dolist (buffer (buffer-list))
(set-buffer buffer)
(unless (or (emacs-lock--can-auto-unlock 'exit)
(memq emacs-lock-mode '(nil kill)))
(throw :found (buffer-name))))
nil)))
(defun emacs-lock--kill-emacs-hook ()
"Signal an error if any buffer is exit-locked.
Used from `kill-emacs-hook' (which see)."
(let ((buffer-name (emacs-lock--exit-locked-buffer)))
(when buffer-name
(error "Emacs cannot exit because buffer %S is locked" buffer-name))))
(defun emacs-lock--kill-emacs-query-functions ()
"Display a message if any buffer is exit-locked.
Return a value appropriate for `kill-emacs-query-functions' (which see)."
(let ((locked (emacs-lock--exit-locked-buffer)))
(or (not locked)
(progn
(message "Emacs cannot exit because buffer %S is locked" locked)
nil))))
(defun emacs-lock--kill-buffer-query-functions ()
"Display a message if the current buffer is kill-locked.
Return a value appropriate for `kill-buffer-query-functions' (which see)."
(or (emacs-lock--can-auto-unlock 'kill)
(memq emacs-lock-mode '(nil exit))
(progn
(setq emacs-lock-from-exiting nil)
(setq emacs-lock-buffer-locked t)
(message "Buffer is now unlocked"))
(setq emacs-lock-buffer-locked nil)))
(message "Buffer %S is locked and cannot be killed" (buffer-name))
nil)))
(defun emacs-lock-was-buffer-locked ()
(if emacs-lock-buffer-locked
(setq emacs-lock-from-exiting t)))
(defun emacs-lock--set-mode (mode arg)
"Setter function for `emacs-lock-mode'."
(setq emacs-lock-mode
(cond ((memq arg '(all exit kill))
;; explicit locking mode arg, use it
arg)
((and (eq arg current-prefix-arg) (consp current-prefix-arg))
;; called with C-u M-x emacs-lock-mode, so ask the user
(intern (completing-read "Locking mode: "
'("all" "exit" "kill")
nil t nil nil
(symbol-name
emacs-lock-default-locking-mode))))
((eq mode t)
;; turn on, so use previous setting, or customized default
(or emacs-lock--old-mode emacs-lock-default-locking-mode))
(t
;; anything else (turn off)
mode))))
;;;###autoload
(define-minor-mode emacs-lock-mode
"Toggle Emacs Lock mode in the current buffer.
With \\[universal-argument], ask for the locking mode to be used.
With other prefix ARG, turn mode on if ARG is positive, off otherwise.
Initially, if the user does not pass an explicit locking mode, it defaults
to `emacs-lock-default-locking-mode' (which see); afterwards, the locking
mode most recently set on the buffer is used instead.
When called from Elisp code, ARG can be any locking mode:
exit -- Emacs cannot exit while the buffer is locked
kill -- the buffer cannot be killed, but Emacs can exit as usual
all -- the buffer is locked against both actions
Other values are interpreted as usual."
:init-value nil
:lighter (""
(emacs-lock--try-unlocking " locked:" " Locked:")
(:eval (symbol-name emacs-lock-mode)))
:group 'emacs-lock
:variable (emacs-lock-mode .
(lambda (mode)
(emacs-lock--set-mode mode arg)))
(when emacs-lock-mode
(setq emacs-lock--old-mode emacs-lock-mode)
(setq emacs-lock--try-unlocking
(and (if (eq emacs-lock-unlockable-modes t)
(emacs-lock-live-process-p (current-buffer))
(assq major-mode emacs-lock-unlockable-modes))
t))))
(unless noninteractive
(add-hook 'kill-emacs-hook 'check-emacs-lock))
(add-hook 'kill-buffer-hook 'emacs-lock-check-buffer-lock)
(add-hook 'shell-mode-hook 'emacs-lock-was-buffer-locked)
(add-hook 'shell-mode-hook 'emacs-lock-shell-sentinel)
(add-hook 'telnet-mode-hook 'emacs-lock-was-buffer-locked)
(add-hook 'telnet-mode-hook 'emacs-lock-shell-sentinel)
(add-hook 'kill-buffer-query-functions 'emacs-lock--kill-buffer-query-functions)
;; We set a hook in both kill-emacs-hook and kill-emacs-query-functions because
;; we really want to use k-e-q-f to stop as soon as possible, but don't want to
;; be caught by surprise if someone calls `kill-emacs' instead.
(add-hook 'kill-emacs-hook 'emacs-lock--kill-emacs-hook)
(add-hook 'kill-emacs-query-functions 'emacs-lock--kill-emacs-query-functions))
(defun emacs-lock-unload-function ()
"Unload the Emacs Lock library."
(catch :continue
(dolist (buffer (buffer-list))
(set-buffer buffer)
(when emacs-lock-mode
(if (y-or-n-p (format "Buffer %S is locked, unlock it? " (buffer-name)))
(emacs-lock-mode -1)
(message "Unloading of feature `emacs-lock' aborted.")
(throw :continue t))))
;; continue standard unloading
nil))
;;; Compatibility
(define-obsolete-variable-alias 'emacs-lock-from-exiting 'emacs-lock-mode "24.1")
(defun toggle-emacs-lock ()
"Toggle `emacs-lock-from-exiting' for the current buffer."
(interactive)
(call-interactively 'emacs-lock-mode))
(make-obsolete 'toggle-emacs-lock 'emacs-lock-mode "24.1")
(provide 'emacs-lock)

View file

@ -1,3 +1,37 @@
2011-07-06 Glenn Morris <rgm@gnu.org>
* gnus-group.el (gnus-read-ephemeral-emacs-bug-group): Silence compiler.
2011-07-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.el (gnus-refer-article-method): Remove mention of nnspool, which
no longer is much used.
(gnus-summary-line-format): Link to "Marking Articles" instead of "Read
Articles".
2011-04-03 Kan-Ru Chen <kanru@kanru.info>
* nnir.el (nnir-notmuch-program, nnir-notmuch-additional-switches)
(nnir-notmuch-remove-prefix, nnir-engines, nnir-run-notmuch): New nnir
`notmuch' backend.
2011-07-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
* mm-decode.el (mm-text-html-renderer): Doc fix.
* gnus-msg.el (gnus-bug): Fix the MML tag.
* pop3.el (pop3-open-server): -ERR is a valid response to CAPA.
2011-07-05 Daiki Ueno <ueno@unixuser.org>
* gnus-start.el (gnus-get-unread-articles): Don't connect to the
secondary methods if started with `gnus-no-server'.
2011-07-05 Juanma Barranquero <lekktu@gmail.com>
* message.el (message-return-action): Fix typo in docstring.
2011-07-04 Lars Magne Ingebrigtsen <larsi@gnus.org>
* nnimap.el (nnimap-request-scan): Say that splitting has finished.

View file

@ -2428,25 +2428,28 @@ the bug number, and browsing the URL must return mbox output."
:version "24.1"
:type '(repeat (cons (symbol) (string :tag "URL format string"))))
(defun gnus-read-ephemeral-bug-group (number mbox-url &optional window-conf)
(defun gnus-read-ephemeral-bug-group (ids mbox-url &optional window-conf)
"Browse bug NUMBER as ephemeral group."
(interactive (list (read-string "Enter bug number: "
(thing-at-point 'word) nil)
;; FIXME: Add completing-read from
;; `gnus-emacs-bug-group-download-format' ...
(cdr (assoc 'emacs gnus-bug-group-download-format-alist))))
(when (stringp number)
(setq number (string-to-number number)))
(when (stringp ids)
(setq ids (string-to-number ids)))
(unless (listp ids)
(setq ids (list ids)))
(let ((tmpfile (mm-make-temp-file "gnus-temp-group-"))
(coding-system-for-write 'binary)
(coding-system-for-read 'binary))
(with-temp-file tmpfile
(url-insert-file-contents (format mbox-url number))
(dolist (id ids)
(url-insert-file-contents (format mbox-url id)))
(goto-char (point-min))
;; Add the debbugs address so that we can respond to reports easily.
(while (re-search-forward "^To: " nil t)
(end-of-line)
(insert (format ", %s@%s" number
(insert (format ", %s@%s" (car ids)
(gnus-replace-in-string
(gnus-replace-in-string mbox-url "^http://" "")
"/.*$" ""))))
@ -2466,19 +2469,23 @@ the bug number, and browsing the URL must return mbox output."
number
(cdr (assoc 'debian gnus-bug-group-download-format-alist))))
(defun gnus-read-ephemeral-emacs-bug-group (number &optional window-conf)
"Browse Emacs bug NUMBER as ephemeral group."
(defvar debbugs-bug-number) ; debbugs-gnu
(defun gnus-read-ephemeral-emacs-bug-group (ids &optional window-conf)
"Browse Emacs bugs IDS as an ephemeral group."
(interactive (list (string-to-number
(read-string "Enter bug number: "
(thing-at-point 'word) nil))))
(unless (listp ids)
(setq ids (list ids)))
(gnus-read-ephemeral-bug-group
number
ids
(cdr (assoc 'emacs gnus-bug-group-download-format-alist))
window-conf)
(when (boundp 'debbugs-summary-mode)
(when (fboundp 'debbugs-summary-mode)
(with-current-buffer (window-buffer (selected-window))
(debbugs-summary-mode 1)
(set (make-local-variable 'debbugs-bug-number) number))))
(set (make-local-variable 'debbugs-bug-number) (car ids)))))
(defun gnus-group-jump-to-group (group &optional prompt)
"Jump to newsgroup GROUP.

View file

@ -1480,10 +1480,10 @@ If YANK is non-nil, include the original article."
(erase-buffer)
(gnus-debug)
(setq text (buffer-string)))
(insert (concat "<#part type=application/emacs-lisp"
"disposition=inline description=\"User settings\">\n"
text
"\n<#/part>")))
(insert "<#part type=application/emacs-lisp "
"disposition=inline description=\"User settings\">\n"
text
"\n<#/part>"))
(goto-char (point-min))
(search-forward "Subject: " nil t)
(message "")))

View file

@ -1043,7 +1043,7 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
;; Find the number of unread articles in each non-dead group.
(let ((gnus-read-active-file (and (not level) gnus-read-active-file)))
(gnus-get-unread-articles level))))
(gnus-get-unread-articles level dont-connect))))
(defun gnus-call-subscribe-functions (method group)
"Call METHOD to subscribe GROUP.
@ -1606,7 +1606,7 @@ If SCAN, request a scan of that group as well."
;; Go though `gnus-newsrc-alist' and compare with `gnus-active-hashtb'
;; and compute how many unread articles there are in each group.
(defun gnus-get-unread-articles (&optional level)
(defun gnus-get-unread-articles (&optional level dont-connect)
(setq gnus-server-method-cache nil)
(require 'gnus-agent)
(let* ((newsrc (cdr gnus-newsrc-alist))
@ -1702,12 +1702,13 @@ If SCAN, request a scan of that group as well."
;; If we have primary/secondary select methods, but no groups from
;; them, we still want to issue a retrieval request from them.
(dolist (method (cons gnus-select-method
gnus-secondary-select-methods))
(when (and (not (assoc method type-cache))
(gnus-check-backend-function 'request-list (car method)))
(with-current-buffer nntp-server-buffer
(gnus-read-active-file-1 method nil))))
(unless dont-connect
(dolist (method (cons gnus-select-method
gnus-secondary-select-methods))
(when (and (not (assoc method type-cache))
(gnus-check-backend-function 'request-list (car method)))
(with-current-buffer nntp-server-buffer
(gnus-read-active-file-1 method nil)))))
;; Start early async retrieval of data.
(let ((done-methods nil)

View file

@ -1423,10 +1423,6 @@ no need to set this variable."
(defcustom gnus-refer-article-method 'current
"Preferred method for fetching an article by Message-ID.
If you are reading news from the local spool (with nnspool), fetching
articles by Message-ID is painfully slow. By setting this method to an
nntp method, you might get acceptable results.
The value of this variable must be a valid select method as discussed
in the documentation of `gnus-select-method'.
@ -2967,7 +2963,7 @@ with some simple extensions.
%R \"A\" if this article has been replied to, \" \"
otherwise (character)
%U \"Read\" status of this article.
See Info node `(gnus)Read Articles'
See Info node `(gnus)Marking Articles'
%[ Opening bracket (character, \"[\" or \"<\")
%] Closing bracket (character, \"]\" or \">\")
%> Spaces of length thread-level (string)

View file

@ -1185,7 +1185,7 @@ It is a vector of the following headers:
(defvar message-send-actions nil
"A list of actions to be performed upon successful sending of a message.")
(defvar message-return-action nil
"Action to return to the caller after sending or postphoning a message.")
"Action to return to the caller after sending or postponing a message.")
(defvar message-exit-actions nil
"A list of actions to be performed upon exiting after sending a message.")
(defvar message-kill-actions nil

View file

@ -114,14 +114,14 @@
"Render of HTML contents.
It is one of defined renderer types, or a rendering function.
The defined renderer types are:
`shr': use Gnus simple HTML renderer;
`gnus-w3m' : use Gnus renderer based on w3m;
`w3m' : use emacs-w3m;
`w3m-standalone': use w3m;
`shr': use the built-in Gnus HTML renderer;
`gnus-w3m': use Gnus renderer based on w3m;
`w3m': use emacs-w3m;
`w3m-standalone': use plain w3m;
`links': use links;
`lynx' : use lynx;
`w3' : use Emacs/W3;
`html2text' : use html2text;
`lynx': use lynx;
`w3': use Emacs/W3;
`html2text': use html2text;
nil : use external viewer (default web browser)."
:version "24.1"
:type '(choice (const shr)

View file

@ -499,6 +499,31 @@ arrive at the correct group name, \"mail.misc\"."
:type '(directory)
:group 'nnir)
(defcustom nnir-notmuch-program "notmuch"
"*Name of notmuch search executable."
:type '(string)
:group 'nnir)
(defcustom nnir-notmuch-additional-switches '()
"*A list of strings, to be given as additional arguments to notmuch.
Note that this should be a list. Ie, do NOT use the following:
(setq nnir-notmuch-additional-switches \"-i -w\") ; wrong
Instead, use this:
(setq nnir-notmuch-additional-switches '(\"-i\" \"-w\"))"
:type '(repeat (string))
:group 'nnir)
(defcustom nnir-notmuch-remove-prefix (concat (getenv "HOME") "/Mail/")
"*The prefix to remove from each file name returned by notmuch
in order to get a group name (albeit with / instead of .). This is a
regular expression.
This variable is very similar to `nnir-namazu-remove-prefix', except
that it is for notmuch, not Namazu."
:type '(regexp)
:group 'nnir)
;;; Developer Extension Variable:
(defvar nnir-engines
@ -519,6 +544,8 @@ arrive at the correct group name, \"mail.misc\"."
((group . "Swish-e Group spec: ")))
(namazu nnir-run-namazu
())
(notmuch nnir-run-notmuch
())
(hyrex nnir-run-hyrex
((group . "Hyrex Group spec: ")))
(find-grep nnir-run-find-grep
@ -1338,6 +1365,80 @@ Tested with Namazu 2.0.6 on a GNU/Linux system."
(> (nnir-artitem-rsv x)
(nnir-artitem-rsv y)))))))))
(defun nnir-run-notmuch (query server &optional group)
"Run QUERY against notmuch.
Returns a vector of (group name, file name) pairs (also vectors,
actually)."
;; (when group
;; (error "The notmuch backend cannot search specific groups"))
(save-excursion
(let ( (qstring (cdr (assq 'query query)))
(groupspec (cdr (assq 'group query)))
(prefix (nnir-read-server-parm 'nnir-notmuch-remove-prefix server))
artlist
(article-pattern (if (string= (gnus-group-server server) "nnmaildir")
":[0-9]+"
"^[0-9]+$"))
artno dirnam filenam)
(when (equal "" qstring)
(error "notmuch: You didn't enter anything"))
(set-buffer (get-buffer-create nnir-tmp-buffer))
(erase-buffer)
(if groupspec
(message "Doing notmuch query %s on %s..." qstring groupspec)
(message "Doing notmuch query %s..." qstring))
(let* ((cp-list `( ,nnir-notmuch-program
nil ; input from /dev/null
t ; output
nil ; don't redisplay
"search"
"--format=text"
"--output=files"
,@(nnir-read-server-parm 'nnir-notmuch-additional-switches server)
,qstring ; the query, in notmuch format
))
(exitstatus
(progn
(message "%s args: %s" nnir-notmuch-program
(mapconcat 'identity (cddddr cp-list) " ")) ;; ???
(apply 'call-process cp-list))))
(unless (or (null exitstatus)
(zerop exitstatus))
(nnheader-report 'nnir "Couldn't run notmuch: %s" exitstatus)
;; notmuch failure reason is in this buffer, show it if
;; the user wants it.
(when (> gnus-verbose 6)
(display-buffer nnir-tmp-buffer))))
;; The results are output in the format of:
;; absolute-path-name
(goto-char (point-min))
(while (not (eobp))
(setq filenam (buffer-substring-no-properties (line-beginning-position)
(line-end-position))
artno (file-name-nondirectory filenam)
dirnam (file-name-directory filenam))
(forward-line 1)
;; don't match directories
(when (string-match article-pattern artno)
(when (not (null dirnam))
;; maybe limit results to matching groups.
(when (or (not groupspec)
(string-match groupspec dirnam))
(nnir-add-result dirnam artno "" prefix server artlist)))))
(message "Massaging notmuch output...done")
artlist)))
(defun nnir-run-find-grep (query server &optional grouplist)
"Run find and grep to obtain matching articles."
(let* ((method (gnus-server-to-method server))

View file

@ -307,7 +307,7 @@ Returns the process associated with the connection."
(or pop3-stream-type 'network)))
:capability-command "CAPA\r\n"
:end-of-command "^\\(-ERR\\|+OK \\).*\n"
:end-of-capability "^\\.\r?\n"
:end-of-capability "^\\.\r?\n\\|^-ERR"
:success "^\\+OK.*\n"
:return-list t
:starttls-function

View file

@ -2092,7 +2092,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
))
(defun Info-directory-toc-nodes (filename)
"Directory-specific implementation of `Info-directory-toc-nodes'."
"Directory-specific implementation of `Info-toc-nodes'."
`(,filename
("Top" nil nil nil)))

View file

@ -351,7 +351,7 @@
;; systems with non-classic /bin/[r]mail behavior
;; guard against nil user-mail-address in generating MESSAGE-ID:
;; feedmail-queue-slug-suspect-regexp is now a variable to
;; accomodate non-ASCII environments (thanks to
;; accommodate non-ASCII environments (thanks to
;; Makoto.Nakagawa@jp.compaq.com for this suggestion)
;; feedmail-buffer-to-smtp, to parallel feedmail-buffer-to-smtpmail
;; patchlevel 10, 22 April 2001

View file

@ -153,20 +153,21 @@ MIME entities.")
;;; MIME-entity object
(defun rmail-mime-entity (type disposition transfer-encoding
display header tagline body children handler)
display header tagline body children handler
&optional truncated)
"Retrun a newly created MIME-entity object from arguments.
A MIME-entity is a vector of 9 elements:
A MIME-entity is a vector of 10 elements:
[TYPE DISPOSITION TRANSFER-ENCODING DISPLAY HEADER TAGLINE BODY
CHILDREN HANDLER]
CHILDREN HANDLER TRUNCATED]
TYPE and DISPOSITION correspond to MIME headers Content-Type and
Cotent-Disposition respectively, and has this format:
Content-Disposition respectively, and have this format:
\(VALUE (ATTRIBUTE . VALUE) (ATTRIBUTE . VALUE) ...)
VALUE is a string and ATTRIBUTE is a symbol.
Each VALUE is a string and each ATTRIBUTE is a string.
Consider the following header, for example:
@ -208,9 +209,12 @@ entity have one or more children. A \"message/rfc822\" entity
has just one child. Any other entity has no child.
HANDLER is a function to insert the entity according to DISPLAY.
It is called with one argument ENTITY."
It is called with one argument ENTITY.
TRUNCATED is non-nil if the text of this entity was truncated."
(vector type disposition transfer-encoding
display header tagline body children handler))
display header tagline body children handler truncated))
;; Accessors for a MIME-entity object.
(defsubst rmail-mime-entity-type (entity) (aref entity 0))
@ -222,6 +226,9 @@ It is called with one argument ENTITY."
(defsubst rmail-mime-entity-body (entity) (aref entity 6))
(defsubst rmail-mime-entity-children (entity) (aref entity 7))
(defsubst rmail-mime-entity-handler (entity) (aref entity 8))
(defsubst rmail-mime-entity-truncated (entity) (aref entity 9))
(defsubst rmail-mime-entity-set-truncated (entity truncated)
(aset entity 9 truncated))
(defsubst rmail-mime-message-p ()
"Non-nil if and only if the current message is a MIME."
@ -237,6 +244,10 @@ It is called with one argument ENTITY."
(directory (button-get button 'directory))
(data (button-get button 'data))
(ofilename filename))
(if (and (not (stringp data))
(rmail-mime-entity-truncated data))
(unless (y-or-n-p "This entity is truncated; save anyway? ")
(error "Aborted")))
(setq filename (expand-file-name
(read-file-name (format "Save as (default: %s): " filename)
directory
@ -387,6 +398,11 @@ The value is a vector [ INDEX HEADER TAGLINE BODY END], where
(if (and rmail-mime-mbox-buffer (= (aref segment 1) (point-min)))
(let ((new (aref (rmail-mime-entity-display entity) 1)))
(aset new 0 t))))
;; Query as a warning before showing if truncated.
(if (and (not (stringp entity))
(rmail-mime-entity-truncated entity))
(unless (y-or-n-p "This entity is truncated; show anyway? ")
(error "Aborted")))
;; Enter the shown mode.
(rmail-mime-shown-mode entity)
;; Force this body shown.
@ -816,7 +832,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'."
(let ((boundary (cdr (assq 'boundary content-type)))
(subtype (cadr (split-string (car content-type) "/")))
(index 0)
beg end next entities)
beg end next entities truncated)
(unless boundary
(rmail-mm-get-boundary-error-message
"No boundary defined" content-type content-disposition
@ -845,7 +861,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'."
(setq beg (point-min))
(while (or (and (search-forward boundary nil t)
(setq end (match-beginning 0)))
(setq truncated nil end (match-beginning 0)))
;; If the boundary does not appear at all,
;; the message was truncated.
;; Handle the rest of the truncated message
@ -854,7 +870,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'."
(and (save-excursion
(skip-chars-forward "\n")
(> (point-max) (point)))
(setq end (point-max))))
(setq truncated t end (point-max))))
;; If this is the last boundary according to RFC 2046, hide the
;; epilogue, else hide the boundary only. Use a marker for
;; `next' because `rmail-mime-show' may change the buffer.
@ -862,7 +878,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'."
(setq next (point-max-marker)))
((looking-at "[ \t]*\n")
(setq next (copy-marker (match-end 0) t)))
((= end (point-max))
(truncated
;; We're handling what's left of a truncated message.
(setq next (point-max-marker)))
(t
@ -886,6 +902,7 @@ The other arguments are the same as `rmail-mime-multipart-handler'."
;; Display a tagline.
(aset (aref (rmail-mime-entity-display child) 1) 1
(aset (rmail-mime-entity-tagline child) 2 t))
(rmail-mime-entity-set-truncated child truncated)
(push child entities)))
(delete-region end next)
@ -1391,6 +1408,8 @@ This is the usual value of `rmail-insert-mime-forwarded-message-function'."
(re-search-forward regexp nil t))
;; Next, search the body.
(if (and entity
;; RMS: I am not sure why, but sometimes this is a string.
(not (stringp entity))
(let* ((content-type (rmail-mime-entity-type entity))
(charset (cdr (assq 'charset (cdr content-type)))))
(or (not (string-match "text/.*" (car content-type)))

View file

@ -144,19 +144,11 @@ Otherwise, let mailer send back a message to report errors."
;;;###autoload
(put 'send-mail-function 'standard-value
;; MS-Windows can access the clipboard even under -nw.
'((if (or (and window-system (eq system-type 'darwin))
(eq system-type 'windows-nt))
'mailclient-send-it
'sendmail-send-it)))
'('sendmail-query-once))
;; Useful to set in site-init.el
;;;###autoload
(defcustom send-mail-function
(if (or (and window-system (eq system-type 'darwin))
;; MS-Windows can access the clipboard even under -nw.
(eq system-type 'windows-nt))
'mailclient-send-it
'sendmail-send-it)
(defcustom send-mail-function 'sendmail-query-once
"Function to call to send the current buffer as mail.
The headers should be delimited by a line which is
not a valid RFC822 header or continuation line,
@ -170,11 +162,13 @@ This is used by the default mail-sending commands. See also
(function-item mailclient-send-it :tag "Use Mailclient package")
function)
:initialize 'custom-initialize-delay
:version "24.1"
:group 'sendmail)
(defvar sendmail-query-once-function 'query
"Either a function to send email, or the symbol `query'.")
;;;###autoload
(defun sendmail-query-once ()
"Send an email via `sendmail-query-once-function'.
If `sendmail-query-once-function' is `query', ask the user what

View file

@ -71,9 +71,11 @@
:group 'mail)
(defvar smtpmail-default-smtp-server nil
(defcustom smtpmail-default-smtp-server nil
"Specify default SMTP server.
This only has effect if you specify it before loading the smtpmail library.")
This only has effect if you specify it before loading the smtpmail library."
:type '(choice (const nil) string)
:group 'smtpmail)
(defcustom smtpmail-smtp-server
(or (getenv "SMTPSERVER") smtpmail-default-smtp-server)

View file

@ -281,18 +281,14 @@ functionality.
(network-stream-command stream capability-command eo-capa))))
;; If TLS is mandatory, close the connection if it's unencrypted.
(when (and (or require-tls
;; The server said it was possible to do STARTTLS,
;; and we wanted to use it...
(and starttls-command
(plist-get parameters :use-starttls-if-possible)))
(when (and require-tls
;; ... but Emacs wasn't able to -- either no built-in
;; support, or no gnutls-cli installed.
(eq resulting-type 'plain))
(setq error
(if require-tls
"Server does not support TLS"
"Server supports STARTTLS, but Emacs does not have support for it"))
(setq error
(if require-tls
"Server does not support TLS"
"Server supports STARTTLS, but Emacs does not have support for it"))
(delete-process stream)
(setq stream nil))
;; Return value:

View file

@ -308,7 +308,7 @@ buffer in your bug report.
;; There is at least one Tramp buffer.
(when buffer-list
(switch-to-buffer (list-buffers-noselect nil))
(tramp-compat-pop-to-buffer-same-window (list-buffers-noselect nil))
(delete-other-windows)
(setq buffer-read-only nil)
(goto-char (point-min))
@ -343,7 +343,7 @@ the debug buffer(s).")
;; OK, let's send. First we delete the buffer list.
(progn
(kill-buffer nil)
(switch-to-buffer curbuf)
(tramp-compat-pop-to-buffer-same-window curbuf)
(goto-char (point-max))
(insert "\n\
This is a special notion of the `gnus/message' package. If you

View file

@ -23,9 +23,9 @@
;;; Commentary:
;; Tramp's main Emacs version for development is GNU Emacs 24. This
;; package provides compatibility functions for GNU Emacs 22, GNU
;; Emacs 23 and XEmacs 21.4+.
;; Tramp's main Emacs version for development is Emacs 24. This
;; package provides compatibility functions for Emacs 22, Emacs 23,
;; XEmacs 21.4+ and SXEmacs 22.
;;; Code:
@ -286,9 +286,8 @@ Not actually used. Use `(format \"%o\" i)' instead?"
(tramp-compat-funcall 'file-attributes filename id-format)
(wrong-number-of-arguments (file-attributes filename))))))
;; PRESERVE-UID-GID has been introduced with Emacs 23. It does not
;; hurt to ignore it for other (X)Emacs versions.
;; PRESERVE-SELINUX-CONTEXT has been introduced with Emacs 24.
;; PRESERVE-UID-GID does not exist in XEmacs.
;; PRESERVE-SELINUX-CONTEXT has been introduced with Emacs 24.1.
(defun tramp-compat-copy-file
(filename newname &optional ok-if-already-exists keep-date
preserve-uid-gid preserve-selinux-context)
@ -484,10 +483,7 @@ exiting if process is running."
(tramp-compat-funcall 'set-process-query-on-exit-flag process flag)
(tramp-compat-funcall 'process-kill-without-query process flag)))
(add-hook 'tramp-unload-hook
(lambda ()
(unload-feature 'tramp-compat 'force)))
;; There exist different implementations for this function.
(defun tramp-compat-coding-system-change-eol-conversion (coding-system eol-type)
"Return a coding system like CODING-SYSTEM but with given EOL-TYPE.
EOL-TYPE can be one of `dos', `unix', or `mac'."
@ -506,6 +502,19 @@ EOL-TYPE can be one of `dos', `unix', or `mac'."
"`dos', `unix', or `mac'")))))
(t (error "Can't change EOL conversion -- is MULE missing?"))))
;; `pop-to-buffer-same-window' has been introduced with Emacs 24.1.
(defun tramp-compat-pop-to-buffer-same-window
(&optional buffer-or-name norecord label)
"Pop to buffer specified by BUFFER-OR-NAME in the selected window."
(if (fboundp 'pop-to-buffer-same-window)
(tramp-compat-funcall
'pop-to-buffer-same-window buffer-or-name norecord label)
(tramp-compat-funcall 'switch-to-buffer buffer-or-name norecord)))
(add-hook 'tramp-unload-hook
(lambda ()
(unload-feature 'tramp-compat 'force)))
(provide 'tramp-compat)
;;; TODO:

View file

@ -0,0 +1,102 @@
;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked
;; Copyright (C) 1994, 1997, 2001-2011 Free Software Foundation, Inc
;; Author: Tom Wurgler <twurgler@goodyear.com>
;; Created: 12/8/94
;; Keywords: extensions, processes
;; Obsolete-since: 24.1
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;; This code sets a buffer-local variable to t if toggle-emacs-lock is run,
;; then if the user attempts to exit Emacs, the locked buffer name will be
;; displayed and the exit aborted. This is just a way of protecting
;; yourself from yourself. For example, if you have a shell running a big
;; program and exiting Emacs would abort that program, you may want to lock
;; that buffer, then if you forget about it after a while, you won't
;; accidentally exit Emacs. To unlock the buffer, just goto the buffer and
;; run toggle-emacs-lock again.
;;; Code:
(defvar emacs-lock-from-exiting nil
"Whether Emacs is locked to prevent exiting. See `check-emacs-lock'.")
(make-variable-buffer-local 'emacs-lock-from-exiting)
(defvar emacs-lock-buffer-locked nil
"Whether a shell or telnet buffer was locked when its process was killed.")
(make-variable-buffer-local 'emacs-lock-buffer-locked)
(put 'emacs-lock-buffer-locked 'permanent-local t)
(defun check-emacs-lock ()
"Check if variable `emacs-lock-from-exiting' is t for any buffer.
If any locked buffer is found, signal error and display the buffer's name."
(save-excursion
(dolist (buffer (buffer-list))
(set-buffer buffer)
(when emacs-lock-from-exiting
(error "Emacs is locked from exit due to buffer: %s" (buffer-name))))))
(defun toggle-emacs-lock ()
"Toggle `emacs-lock-from-exiting' for the current buffer.
See `check-emacs-lock'."
(interactive)
(setq emacs-lock-from-exiting (not emacs-lock-from-exiting))
(if emacs-lock-from-exiting
(message "Buffer is now locked")
(message "Buffer is now unlocked")))
(defun emacs-lock-check-buffer-lock ()
"Check if variable `emacs-lock-from-exiting' is t for a buffer.
If the buffer is locked, signal error and display its name."
(when emacs-lock-from-exiting
(error "Buffer `%s' is locked, can't delete it" (buffer-name))))
; These next defuns make it so if you exit a shell that is locked, the lock
; is shut off for that shell so you can exit Emacs. Same for telnet.
; Also, if a shell or a telnet buffer was locked and the process killed,
; turn the lock back on again if the process is restarted.
(defun emacs-lock-shell-sentinel ()
(set-process-sentinel
(get-buffer-process (buffer-name)) (function emacs-lock-clear-sentinel)))
(defun emacs-lock-clear-sentinel (_proc _str)
(if emacs-lock-from-exiting
(progn
(setq emacs-lock-from-exiting nil)
(setq emacs-lock-buffer-locked t)
(message "Buffer is now unlocked"))
(setq emacs-lock-buffer-locked nil)))
(defun emacs-lock-was-buffer-locked ()
(if emacs-lock-buffer-locked
(setq emacs-lock-from-exiting t)))
(unless noninteractive
(add-hook 'kill-emacs-hook 'check-emacs-lock))
(add-hook 'kill-buffer-hook 'emacs-lock-check-buffer-lock)
(add-hook 'shell-mode-hook 'emacs-lock-was-buffer-locked)
(add-hook 'shell-mode-hook 'emacs-lock-shell-sentinel)
(add-hook 'telnet-mode-hook 'emacs-lock-was-buffer-locked)
(add-hook 'telnet-mode-hook 'emacs-lock-shell-sentinel)
(provide 'emacs-lock)
;;; emacs-lock.el ends here

View file

@ -2410,9 +2410,7 @@ and overlay is highlighted between MK and END-MK."
;; display the source in another window.
(let ((pop-up-windows t))
(pop-to-buffer (marker-buffer mk) 'other-window))
(if (window-dedicated-p (selected-window))
(pop-to-buffer (marker-buffer mk))
(switch-to-buffer (marker-buffer mk))))
(pop-to-buffer-same-window (marker-buffer mk)))
(unless (eq (goto-char mk) (point))
;; If narrowing gets in the way of going to the right place, widen.
(widen)

File diff suppressed because it is too large Load diff

View file

@ -966,8 +966,7 @@ This command shares argument histories with \\[lgrep] and \\[grep-find]."
(setq dir default-directory))
(if (null files)
(if (not (string= regexp grep-find-command))
(let ((process-connection-type nil))
(compilation-start regexp 'grep-mode)))
(compilation-start regexp 'grep-mode))
(setq dir (file-name-as-directory (expand-file-name dir)))
(require 'find-dired) ; for `find-name-arg'
(let ((command (grep-expand-template

View file

@ -1581,7 +1581,8 @@ and source-file directory for your debugger."
;; Last group is for return value, e.g. "> test.py(2)foo()->None"
;; Either file or function name may be omitted: "> <string>(0)?()"
(defvar gud-pdb-marker-regexp
"^> \\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\|<module>\\)()\\(->[^\n]*\\)?\n")
"^> \\([-a-zA-Z0-9_/.:\\]*\\|<string>\\)(\\([0-9]+\\))\\([a-zA-Z0-9_]*\\|\\?\\|<module>\\)()\\(->[^\n\r]*\\)?[\n\r]")
(defvar gud-pdb-marker-regexp-file-group 1)
(defvar gud-pdb-marker-regexp-line-group 2)
(defvar gud-pdb-marker-regexp-fnname-group 3)

File diff suppressed because it is too large Load diff

View file

@ -206,7 +206,8 @@ It creates the Imenu index for the buffer, if necessary."
(setq imenu--index-alist
(save-excursion (funcall imenu-create-index-function))))
(error
(message "which-func-ff-hook error: %S" err)
(unless (equal err '(error "This buffer cannot use `imenu-default-create-index-function'"))
(message "which-func-ff-hook error: %S" err))
(setq which-func-mode nil))))
(defun which-func-update ()

View file

@ -70,7 +70,7 @@
DATA can be any value.
PRINT-FUNC if provided controls how `list-registers' and
`view-register' print the register. It should be a function
recieving one argument DATA and print text that completes
receiving one argument DATA and print text that completes
this sentence:
Register X contains [TEXT PRINTED BY PRINT-FUNC]
JUMP-FUNC if provided, controls how `jump-to-register' jumps to the register.

View file

@ -2533,7 +2533,8 @@ specifies the value of ERROR-BUFFER."
(< 0 (nth 7 (file-attributes error-file))))
(format "some error output%s"
(if shell-command-default-error-buffer
(format " to the \"%s\" buffer" shell-command-default-error-buffer)
(format " to the \"%s\" buffer"
shell-command-default-error-buffer)
""))
"no output")))
(cond ((null exit-status)

File diff suppressed because it is too large Load diff

View file

@ -2800,7 +2800,7 @@ details check the Rst Faces Defaults group."
rst-level-face-base-color
(+ (* (1- i) rst-level-face-step-light)
rst-level-face-base-light))))
(unless (boundp sym)
(unless (facep sym)
(make-empty-face sym)
(set-face-doc-string sym doc)
(set-face-background sym col)

View file

@ -1,3 +1,8 @@
2011-07-06 Nick Dokos <nicholas.dokos@hp.com> (tiny change)
* url-cache.el (url-cache-extract): Set buffer multibyte flag to
nil (bug#8827).
2011-07-03 Nicolas Avrutin <nicolasavru@gmail.com> (tiny change)
* url-http.el (url-http-create-request): Remove double carriage

View file

@ -192,6 +192,7 @@ Very fast if you have an `md5' primitive function, suitably fast otherwise."
(defun url-cache-extract (fnam)
"Extract FNAM from the local disk cache."
(erase-buffer)
(set-buffer-multibyte nil)
(insert-file-contents-literally fnam))
(defun url-cache-expired (url &optional expire-time)

View file

@ -163,8 +163,8 @@ Anything less might crash Emacs.")
(defcustom window-min-height 4
"The minimum number of lines of any window.
The value has to accomodate a mode- or header-line if present. A
value less than `window-safe-min-height' is ignored. The value
The value has to accommodate a mode- or header-line if present.
A value less than `window-safe-min-height' is ignored. The value
of this variable is honored when windows are resized or split.
Applications should never rebind this variable. To resize a
@ -3380,7 +3380,7 @@ WINDOW must be an iso-combination."
(balance-windows-2 window horizontal)
(let ((size (window-new-total window)))
(while sub
(set-window-new-total sub size)
(set-window-new-total sub size)
(balance-windows-1 sub horizontal)
(setq sub (window-right sub))))))))
@ -5039,7 +5039,7 @@ description."
(setq window
(cond
((eq cand 'largest)
;; The largest window.
;; The largest window.
(get-largest-window frame t))
((eq cand 'lru)
;; The least recently used window.
@ -5750,7 +5750,7 @@ this list as arguments."
(display-buffer-reuse-window
buffer '(nil nil t) '((reuse-window-dedicated . t)))))))
(defsubst display-buffer-same-window (&optional buffer-or-name label)
(defsubst display-buffer-same-window (&optional buffer-or-name label)
"Display buffer specified by BUFFER-OR-NAME in the selected window.
Another window will be used only if the buffer can't be shown in
the selected window, usually because it is dedicated to another
@ -5759,7 +5759,7 @@ buffer. Optional argument BUFFER-OR-NAME and LABEL are as for
(interactive "BDisplay buffer in same window:\nP")
(display-buffer buffer-or-name 'same-window label))
(defsubst display-buffer-same-frame (&optional buffer-or-name label)
(defsubst display-buffer-same-frame (&optional buffer-or-name label)
"Display buffer specified by BUFFER-OR-NAME in a window on the same frame.
Another frame will be used only if there is no other choice.
Optional argument BUFFER-OR-NAME and LABEL are as for
@ -5767,7 +5767,7 @@ Optional argument BUFFER-OR-NAME and LABEL are as for
(interactive "BDisplay buffer on same frame:\nP")
(display-buffer buffer-or-name 'same-frame label))
(defsubst display-buffer-other-window (&optional buffer-or-name label)
(defsubst display-buffer-other-window (&optional buffer-or-name label)
"Display buffer specified by BUFFER-OR-NAME in another window.
The selected window will be used only if there is no other
choice. Windows on the selected frame are preferred to windows
@ -5776,7 +5776,7 @@ for `display-buffer'."
(interactive "BDisplay buffer in another window:\nP")
(display-buffer buffer-or-name 'other-window label))
(defun display-buffer-same-frame-other-window (&optional buffer-or-name label)
(defun display-buffer-same-frame-other-window (&optional buffer-or-name label)
"Display buffer specified by BUFFER-OR-NAME in another window on the same frame.
The selected window or another frame will be used only if there
is no other choice. Optional argument BUFFER-OR-NAME and LABEL are
@ -5797,31 +5797,30 @@ If this command uses another frame, it will also select that frame."
(defun pop-to-buffer (&optional buffer-or-name specifiers norecord label)
"Display buffer specified by BUFFER-OR-NAME and select the window used.
Optional argument BUFFER-OR-NAME may be a buffer, a string \(a
buffer name), or nil. If BUFFER-OR-NAME is a string not naming
an existent buffer, create a buffer with that name. If
buffer name), or nil. If BUFFER-OR-NAME is a string naming a buffer
that does not exist, create a buffer with that name. If
BUFFER-OR-NAME is nil or omitted, display the current buffer.
Interactively, prompt for the buffer name using the minibuffer.
Optional second argument SPECIFIERS must be a list of buffer
display specifiers, a single location specifier, `t' which means
the latter means to display the buffer in any but the selected
window, or nil which means to exclusively apply the specifiers
customized by the user.
Optional second argument SPECIFIERS can be: a list of buffer
display specifiers (see `display-buffer-alist'); a single
location specifier; t, which means to display the buffer in any
but the selected window; or nil, which means to exclusively apply
the specifiers customized by the user. See `display-buffer' for
more details.
Optional argument NORECORD non-nil means do not put the buffer
specified by BUFFER-OR-NAME at the front of the buffer list and
do not make the window displaying it the most recently selected
one.
Optional argument NORECORD non-nil means do not put the displayed
buffer at the front of the buffer list, and do not make the window
displaying it the most recently selected one.
The optional argument LABEL, if non-nil, is a symbol specifying the
display purpose. Applications should set this when the buffer
shall be displayed in a special way but BUFFER-OR-NAME does not
should be displayed in a special way but BUFFER-OR-NAME does not
identify the buffer as special. Buffers that typically fit into
this category are those whose names have been derived from the
name of the file they are visiting.
Return the buffer specified by BUFFER-OR-NAME or nil if
displaying the buffer failed.
Returns the displayed buffer, or nil if displaying the buffer failed.
This uses the function `display-buffer' as a subroutine; see the
documentations of `display-buffer' and `display-buffer-alist' for
@ -5853,7 +5852,7 @@ as for `pop-to-buffer'."
(interactive "BPop to buffer in selected window:\nP")
(pop-to-buffer buffer-or-name 'same-window norecord label))
(defsubst pop-to-buffer-same-frame (&optional buffer-or-name norecord label)
(defsubst pop-to-buffer-same-frame (&optional buffer-or-name norecord label)
"Pop to buffer specified by BUFFER-OR-NAME in a window on the selected frame.
Another frame will be used only if there is no other choice.
Optional arguments BUFFER-OR-NAME, NORECORD and LABEL are as for
@ -5870,7 +5869,7 @@ LABEL are as for `pop-to-buffer'."
(interactive "BPop to buffer in another window:\nP")
(pop-to-buffer buffer-or-name 'other-window norecord))
(defsubst pop-to-buffer-same-frame-other-window (&optional buffer-or-name norecord label)
(defsubst pop-to-buffer-same-frame-other-window (&optional buffer-or-name norecord label)
"Pop to buffer specified by BUFFER-OR-NAME in another window on the selected frame.
The selected window or another frame will be used only if there
is no other choice. Optional arguments BUFFER-OR-NAME, NORECORD
@ -6108,7 +6107,7 @@ BUFFER in a window on the selected frame.
If ARGS is a list whose car is a symbol, use (car ARGS) as a
function to do the work. Pass it BUFFER as first argument,
and (cdr ARGS) as second."
and (cdr ARGS) as the rest of the arguments."
(if (and args (symbolp (car args)))
(apply (car args) buffer (cdr args))
(let ((window (get-buffer-window buffer 0)))
@ -6908,7 +6907,7 @@ WINDOW was scrolled."
;; window and the current buffer when we're done.
(setq window (window-normalize-live-window window))
;; Can't resize a full height or fixed-size window.
(unless (or (window-size-fixed-p window)
(unless (or (window-size-fixed-p window)
(window-full-height-p window))
;; `with-selected-window' should orderly restore the current buffer.
(with-selected-window window

View file

@ -1,4 +1,4 @@
# alloca.m4 serial 12
# alloca.m4 serial 13
dnl Copyright (C) 2002-2004, 2006-2007, 2009-2011 Free Software Foundation,
dnl Inc.
dnl This file is free software; the Free Software Foundation
@ -76,17 +76,17 @@ wenotbecray
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
AC_CHECK_FUNC($ac_func,
[AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
[Define to one of `_getb67', `GETB67',
`getb67' for Cray-2 and Cray-YMP
systems. This function is required for
`alloca.c' support on those systems.])
[AC_DEFINE_UNQUOTED(CRAY_STACKSEG_END, $ac_func,
[Define to one of `_getb67', `GETB67',
`getb67' for Cray-2 and Cray-YMP
systems. This function is required for
`alloca.c' support on those systems.])
break])
done
fi
AC_CACHE_CHECK([stack direction for C alloca],
[ac_cv_c_stack_direction],
[ac_cv_c_stack_direction],
[AC_RUN_IFELSE([AC_LANG_SOURCE(
[AC_INCLUDES_DEFAULT
int
@ -105,16 +105,16 @@ main (int argc, char **argv)
{
return find_stack_direction (0, argc + !argv + 20) < 0;
}])],
[ac_cv_c_stack_direction=1],
[ac_cv_c_stack_direction=-1],
[ac_cv_c_stack_direction=0])])
[ac_cv_c_stack_direction=1],
[ac_cv_c_stack_direction=-1],
[ac_cv_c_stack_direction=0])])
AH_VERBATIM([STACK_DIRECTION],
[/* If using the C implementation of alloca, define if you know the
direction of stack growth for your system; otherwise it will be
automatically deduced at runtime.
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
STACK_DIRECTION > 0 => grows toward higher addresses
STACK_DIRECTION < 0 => grows toward lower addresses
STACK_DIRECTION = 0 => direction of growth unknown */
@%:@undef STACK_DIRECTION])dnl
AC_DEFINE_UNQUOTED(STACK_DIRECTION, $ac_cv_c_stack_direction)
])# _AC_LIBOBJ_ALLOCA

View file

@ -1,4 +1,4 @@
2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
Assume support for memcmp, memcpy, memmove, memset.
* lisp.h, sysdep.c (memcmp, memcpy, memmove, memset):
@ -12,6 +12,52 @@
Use EMACS_INT, not EMACS_UINT, for sizes. The code works equally
well either way, and we prefer signed to unsigned.
2011-07-06 Paul Eggert <eggert@cs.ucla.edu>
Remove unportable assumption about struct layout (Bug#8884).
* alloc.c (mark_buffer):
* buffer.c (reset_buffer_local_variables, Fbuffer_local_variables)
(clone_per_buffer_values): Don't assume that
sizeof (struct buffer) is a multiple of sizeof (Lisp_Object).
This isn't true in general, and it's particularly not true
if Emacs is configured with --with-wide-int.
* buffer.h (FIRST_FIELD_PER_BUFFER, LAST_FIELD_PER_BUFFER):
New macros, used in the buffer.c change.
2011-07-05 Jan Djärv <jan.h.d@swipnet.se>
* xsettings.c: Use both GConf and GSettings if both are available.
(store_config_changed_event): Add comment.
(dpyinfo_valid, store_font_name_changed, map_tool_bar_style)
(store_tool_bar_style_changed): New functions.
(store_monospaced_changed): Add comment. Call dpyinfo_valid.
(struct xsettings): Move font inside HAVE_XFT.
(GSETTINGS_TOOL_BAR_STYLE, GSETTINGS_FONT_NAME): New defines.
(GSETTINGS_MONO_FONT): Renamed from SYSTEM_MONO_FONT.
Move inside HAVE_XFT.
(something_changed_gsettingsCB): Renamed from something_changedCB.
Check for changes in GSETTINGS_TOOL_BAR_STYLE and GSETTINGS_FONT_NAME
also.
(GCONF_TOOL_BAR_STYLE, GCONF_FONT_NAME): New defines.
(GCONF_MONO_FONT): Renamed from SYSTEM_MONO_FONT. Move inside HAVE_XFT.
(something_changed_gconfCB): Renamed from something_changedCB.
Check for changes in GCONF_TOOL_BAR_STYLE and GCONF_FONT_NAME also.
(parse_settings): Move check for font inside HAVE_XFT.
(read_settings, apply_xft_settings): Add comment.
(read_and_apply_settings): Add comment. Call map_tool_bar_style and
store_tool_bar_style_changed. Move check for font inside HAVE_XFT and
call store_font_name_changed.
(xft_settings_event): Add comment.
(init_gsettings): Add comment. Get values for GSETTINGS_TOOL_BAR_STYLE
and GSETTINGS_FONT_NAME. Move check for fonts within HAVE_XFT.
(init_gconf): Add comment. Get values for GCONF_TOOL_BAR_STYLE
and GCONF_FONT_NAME. Move check for fonts within HAVE_XFT.
(xsettings_initialize): Call init_gsettings last.
(xsettings_get_system_font, xsettings_get_system_normal_font): Add
comment.
2011-07-05 Paul Eggert <eggert@cs.ucla.edu>
Random fixes. E.g., (random) never returned negative values.
* fns.c (Frandom): Use GET_EMACS_TIME for random seed, and add the
subseconds part to the entropy, as that's a bit more random.
@ -153,7 +199,7 @@
with value as argument.
(init_gsettings): Check that GSETTINGS_SCHEMA exists before calling
g_settings_new (Bug#8967). Do not create gsettings_obj.
Remove calls to g_settings_bind. Connect something_changedCB to
Remove calls to g_settings_bind. Connect something_changedCB to
"changed".
* xgselect.c: Add defined (HAVE_GSETTINGS).
@ -250,8 +296,8 @@
min_width/height (Bug#8919).
* gtkutil.c (xg_create_frame_widgets): Pass f to emacs_fixed_new.
(x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size. Fix
indentation.
(x_wm_set_size_hint): Remove call to emacs_fixed_set_min_size.
Fix indentation.
2011-06-26 Eli Zaretskii <eliz@gnu.org>
@ -1812,7 +1858,7 @@
and %.0c. Fix bug with strchr succeeding on '\0' when looking for
flags. Fix bug with (format "%c" 256.0). Avoid integer overflow when
formatting out-of-range floating point numbers with int
formats. (Bug#8668)
formats. (Bug#8668)
* lisp.h (FIXNUM_OVERFLOW_P): Work even if arg is a NaN.
@ -2776,9 +2822,9 @@
:verify-hostname-error, :verify-error, and :verify-flags
parameters of `gnutls-boot' and documented those parameters in the
docstring. Start callback support.
(emacs_gnutls_handshake): Add Woe32 support. Retry handshake
unless a fatal error occured. Call gnutls_alert_send_appropriate
on error. Return error code.
(emacs_gnutls_handshake): Add Woe32 support. Retry handshake
unless a fatal error occurred. Call gnutls_alert_send_appropriate
on error. Return error code.
(emacs_gnutls_write): Call emacs_gnutls_handle_error.
(emacs_gnutls_read): Likewise.
(Fgnutls_boot): Return handshake error code.

View file

@ -5619,7 +5619,8 @@ mark_buffer (Lisp_Object buf)
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (ptr = &buffer->BUFFER_INTERNAL_FIELD (name);
(char *)ptr < (char *)buffer + sizeof (struct buffer);
ptr <= &PER_BUFFER_VALUE (buffer,
PER_BUFFER_VAR_OFFSET (LAST_FIELD_PER_BUFFER));
ptr++)
mark_object (*ptr);

View file

@ -471,8 +471,8 @@ clone_per_buffer_values (struct buffer *from, struct buffer *to)
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof *to;
for (offset = PER_BUFFER_VAR_OFFSET (FIRST_FIELD_PER_BUFFER);
offset <= PER_BUFFER_VAR_OFFSET (LAST_FIELD_PER_BUFFER);
offset += sizeof (Lisp_Object))
{
Lisp_Object obj;
@ -830,8 +830,8 @@ reset_buffer_local_variables (register struct buffer *b, int permanent_too)
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof *b;
for (offset = PER_BUFFER_VAR_OFFSET (FIRST_FIELD_PER_BUFFER);
offset <= PER_BUFFER_VAR_OFFSET (LAST_FIELD_PER_BUFFER);
offset += sizeof (Lisp_Object))
{
int idx = PER_BUFFER_IDX (offset);
@ -1055,8 +1055,8 @@ No argument or nil as argument means use current buffer as BUFFER. */)
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
for (offset = PER_BUFFER_VAR_OFFSET (undo_list);
offset < sizeof (struct buffer);
for (offset = PER_BUFFER_VAR_OFFSET (FIRST_FIELD_PER_BUFFER);
offset <= PER_BUFFER_VAR_OFFSET (LAST_FIELD_PER_BUFFER);
/* sizeof EMACS_INT == sizeof Lisp_Object */
offset += (sizeof (EMACS_INT)))
{

View file

@ -612,6 +612,7 @@ struct buffer
/* Everything from here down must be a Lisp_Object. */
/* buffer-local Lisp variables start at `undo_list',
tho only the ones from `name' on are GC'd normally. */
#define FIRST_FIELD_PER_BUFFER undo_list
/* Changes in the buffer are recorded here for undo.
t means don't record anything.
@ -846,6 +847,9 @@ struct buffer
t means to use hollow box cursor.
See `cursor-type' for other values. */
Lisp_Object BUFFER_INTERNAL_FIELD (cursor_in_non_selected_windows);
/* This must be the last field in the above list. */
#define LAST_FIELD_PER_BUFFER cursor_in_non_selected_windows
};

View file

@ -3162,7 +3162,7 @@ funcall_lambda (Lisp_Object fun, ptrdiff_t nargs,
shouldn't bind any arguments, instead just call the byte-code
interpreter directly; it will push arguments as necessary.
Byte-code objects with either a non-existant, or a nil value for
Byte-code objects with either a non-existent, or a nil value for
the `push args' slot (the default), have dynamically-bound
arguments, and use the argument-binding code below instead (as do
all interpreted functions, even lexically bound ones). */

View file

@ -379,7 +379,7 @@ emacs_gnutls_read (struct Lisp_Process *proc, char *buf, EMACS_INT nbyte)
/* non-fatal error */
return -1;
else {
/* a fatal error occured */
/* a fatal error occurred */
return 0;
}
}

View file

@ -37,11 +37,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#ifdef HAVE_GSETTINGS
#include <glib-object.h>
#include <gio/gio.h>
#else
#endif
#ifdef HAVE_GCONF
#include <gconf/gconf-client.h>
#endif
#endif
#ifdef HAVE_XFT
#include <X11/Xft/Xft.h>
@ -54,6 +54,8 @@ static Lisp_Object Qmonospace_font_name, Qfont_name, Qfont_render,
Qtool_bar_style;
static Lisp_Object current_tool_bar_style;
/* Store an config changed event in to the event queue. */
static void
store_config_changed_event (Lisp_Object arg, Lisp_Object display_name)
{
@ -65,6 +67,23 @@ store_config_changed_event (Lisp_Object arg, Lisp_Object display_name)
kbd_buffer_store_event (&event);
}
/* Return non-zero if DPYINFO is still valid. */
static int
dpyinfo_valid (struct x_display_info *dpyinfo)
{
int found = 0;
if (dpyinfo != NULL)
{
struct x_display_info *d;
for (d = x_display_list; !found && d; d = d->next)
found = d == dpyinfo && d->display == dpyinfo->display;
}
return found;
}
/* Store a monospace font change event if the monospaced font changed. */
#ifdef HAVE_XFT
static void
store_monospaced_changed (const char *newfont)
{
@ -74,28 +93,69 @@ store_monospaced_changed (const char *newfont)
xfree (current_mono_font);
current_mono_font = xstrdup (newfont);
if (first_dpyinfo != NULL && use_system_font)
if (dpyinfo_valid (first_dpyinfo) && use_system_font)
{
/* Check if display still open */
struct x_display_info *dpyinfo;
int found = 0;
for (dpyinfo = x_display_list; !found && dpyinfo; dpyinfo = dpyinfo->next)
found = dpyinfo == first_dpyinfo;
if (found)
store_config_changed_event (Qmonospace_font_name,
XCAR (first_dpyinfo->name_list_element));
store_config_changed_event (Qmonospace_font_name,
XCAR (first_dpyinfo->name_list_element));
}
}
/* Store a font name change event if the font name changed. */
#ifdef HAVE_GSETTINGS
static GSettings *gsettings_client;
#else
#ifdef HAVE_GCONF
static GConfClient *gconf_client;
#endif
#endif
static void
store_font_name_changed (const char *newfont)
{
if (current_font != NULL && strcmp (newfont, current_font) == 0)
return; /* No change. */
xfree (current_font);
current_font = xstrdup (newfont);
if (dpyinfo_valid (first_dpyinfo))
{
store_config_changed_event (Qfont_name,
XCAR (first_dpyinfo->name_list_element));
}
}
#endif /* HAVE_XFT */
/* Map TOOL_BAR_STYLE from a string to its correspinding Lisp value.
Return Qnil if TOOL_BAR_STYLE is not known. */
static Lisp_Object
map_tool_bar_style (const char *tool_bar_style)
{
Lisp_Object style = Qnil;
if (tool_bar_style)
{
if (strcmp (tool_bar_style, "both") == 0)
style = Qboth;
else if (strcmp (tool_bar_style, "both-horiz") == 0)
style = Qboth_horiz;
else if (strcmp (tool_bar_style, "icons") == 0)
style = Qimage;
else if (strcmp (tool_bar_style, "text") == 0)
style = Qtext;
}
return style;
}
/* Store a tool bar style change event if the tool bar style changed. */
static void
store_tool_bar_style_changed (const char *newstyle,
struct x_display_info *dpyinfo)
{
Lisp_Object style = map_tool_bar_style (newstyle);
if (EQ (current_tool_bar_style, style))
return; /* No change. */
current_tool_bar_style = style;
if (dpyinfo_valid (dpyinfo))
store_config_changed_event (Qtool_bar_style,
XCAR (dpyinfo->name_list_element));
}
#define XSETTINGS_FONT_NAME "Gtk/FontName"
@ -117,67 +177,129 @@ struct xsettings
FcBool aa, hinting;
int rgba, lcdfilter, hintstyle;
double dpi;
#endif
char *font;
#endif
char *tb_style;
unsigned seen;
};
#ifdef HAVE_GSETTINGS
#define GSETTINGS_SCHEMA "org.gnome.desktop.interface"
#define SYSTEM_MONO_FONT "monospace-font-name"
static void
something_changedCB (GSettings *settings,
gchar *key,
gpointer user_data)
{
GVariant *val;
if (strcmp (key, SYSTEM_MONO_FONT) != 0) return;
val = g_settings_get_value (settings, SYSTEM_MONO_FONT);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
{
const gchar *newfont = g_variant_get_string (val, NULL);
store_monospaced_changed (newfont);
}
g_variant_unref (val);
}
}
#else
#ifdef HAVE_GCONF
#define SYSTEM_MONO_FONT "/desktop/gnome/interface/monospace_font_name"
#define GSETTINGS_SCHEMA "org.gnome.desktop.interface"
#define GSETTINGS_TOOL_BAR_STYLE "toolbar-style"
#ifdef HAVE_XFT
# define SYSTEM_FONT "/desktop/gnome/interface/font_name"
#define GSETTINGS_MONO_FONT "monospace-font-name"
#define GSETTINGS_FONT_NAME "font-name"
#endif
/* Callback called when something changed in GConf that we care about,
that is SYSTEM_MONO_FONT. */
/* The single GSettings instance, or NULL if not connected to GSettings. */
static GSettings *gsettings_client;
/* Callback called when something changed in GSettings. */
static void
something_changedCB (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
gpointer user_data)
something_changed_gsettingsCB (GSettings *settings,
gchar *key,
gpointer user_data)
{
GVariant *val;
if (strcmp (key, GSETTINGS_TOOL_BAR_STYLE) == 0)
{
val = g_settings_get_value (settings, GSETTINGS_TOOL_BAR_STYLE);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
{
const gchar *newstyle = g_variant_get_string (val, NULL);
store_tool_bar_style_changed (newstyle, first_dpyinfo);
}
g_variant_unref (val);
}
}
#ifdef HAVE_XFT
else if (strcmp (key, GSETTINGS_MONO_FONT) == 0)
{
val = g_settings_get_value (settings, GSETTINGS_MONO_FONT);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
{
const gchar *newfont = g_variant_get_string (val, NULL);
store_monospaced_changed (newfont);
}
g_variant_unref (val);
}
}
else if (strcmp (key, GSETTINGS_FONT_NAME) == 0)
{
val = g_settings_get_value (settings, GSETTINGS_FONT_NAME);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
{
const gchar *newfont = g_variant_get_string (val, NULL);
store_font_name_changed (newfont);
}
g_variant_unref (val);
}
}
#endif /* HAVE_XFT */
}
#endif /* HAVE_GSETTINGS */
#ifdef HAVE_GCONF
#define GCONF_TOOL_BAR_STYLE "/desktop/gnome/interface/toolbar_style"
#ifdef HAVE_XFT
#define GCONF_MONO_FONT "/desktop/gnome/interface/monospace_font_name"
#define GCONF_FONT_NAME "/desktop/gnome/interface/font_name"
#endif
/* The single GConf instance, or NULL if not connected to GConf. */
static GConfClient *gconf_client;
/* Callback called when something changed in GConf that we care about. */
static void
something_changed_gconfCB (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
gpointer user_data)
{
GConfValue *v = gconf_entry_get_value (entry);
const char *key = gconf_entry_get_key (entry);
if (!v) return;
if (v->type == GCONF_VALUE_STRING)
if (!v || v->type != GCONF_VALUE_STRING || ! key) return;
if (strcmp (key, GCONF_TOOL_BAR_STYLE) == 0)
{
const char *value = gconf_value_get_string (v);
store_tool_bar_style_changed (value, first_dpyinfo);
}
#ifdef HAVE_XFT
else if (strcmp (key, GCONF_MONO_FONT) == 0)
{
const char *value = gconf_value_get_string (v);
store_monospaced_changed (value);
}
else if (strcmp (key, GCONF_FONT_NAME) == 0)
{
const char *value = gconf_value_get_string (v);
store_font_name_changed (value);
}
#endif /* HAVE_XFT */
}
#endif /* HAVE_GCONF */
#endif /* ! HAVE_GSETTINGS */
#ifdef HAVE_XFT
@ -319,14 +441,14 @@ parse_settings (unsigned char *prop,
bytes_parsed += 4; /* Skip serial for this value */
if (bytes_parsed > bytes) return BadLength;
want_this =
want_this =
#ifdef HAVE_XFT
(nlen > 6 && strncmp (name, "Xft/", 4) == 0)
|| strcmp (XSETTINGS_FONT_NAME, name) == 0
||
#endif
(strcmp (XSETTINGS_FONT_NAME, name) == 0)
|| (strcmp (XSETTINGS_TOOL_BAR_STYLE, name) == 0);
strcmp (XSETTINGS_TOOL_BAR_STYLE, name) == 0;
switch (type)
{
case 0: /* Integer */
@ -367,17 +489,17 @@ parse_settings (unsigned char *prop,
if (want_this)
{
++settings_seen;
if (strcmp (name, XSETTINGS_FONT_NAME) == 0)
{
settings->font = xstrdup (sval);
settings->seen |= SEEN_FONT;
}
else if (strcmp (name, XSETTINGS_TOOL_BAR_STYLE) == 0)
if (strcmp (name, XSETTINGS_TOOL_BAR_STYLE) == 0)
{
settings->tb_style = xstrdup (sval);
settings->seen |= SEEN_TB_STYLE;
}
#ifdef HAVE_XFT
else if (strcmp (name, XSETTINGS_FONT_NAME) == 0)
{
settings->font = xstrdup (sval);
settings->seen |= SEEN_FONT;
}
else if (strcmp (name, "Xft/Antialias") == 0)
{
settings->seen |= SEEN_AA;
@ -442,6 +564,10 @@ parse_settings (unsigned char *prop,
return settings_seen;
}
/* Read settings from the XSettings property window on display for DPYINFO.
Store settings read in SETTINGS.
Return non-zero if successful, zero if not. */
static int
read_settings (struct x_display_info *dpyinfo, struct xsettings *settings)
{
@ -471,6 +597,8 @@ read_settings (struct x_display_info *dpyinfo, struct xsettings *settings)
return rc != 0;
}
/* Apply Xft settings in SETTINGS to the Xft library.
If SEND_EVENT_P is non-zero store a Lisp event that Xft settings changed. */
static void
apply_xft_settings (struct x_display_info *dpyinfo,
@ -489,9 +617,9 @@ apply_xft_settings (struct x_display_info *dpyinfo,
pat);
FcPatternGetBool (pat, FC_ANTIALIAS, 0, &oldsettings.aa);
FcPatternGetBool (pat, FC_HINTING, 0, &oldsettings.hinting);
# ifdef FC_HINT_STYLE
#ifdef FC_HINT_STYLE
FcPatternGetInteger (pat, FC_HINT_STYLE, 0, &oldsettings.hintstyle);
# endif
#endif
FcPatternGetInteger (pat, FC_LCD_FILTER, 0, &oldsettings.lcdfilter);
FcPatternGetInteger (pat, FC_RGBA, 0, &oldsettings.rgba);
FcPatternGetDouble (pat, FC_DPI, 0, &oldsettings.dpi);
@ -530,7 +658,7 @@ apply_xft_settings (struct x_display_info *dpyinfo,
oldsettings.lcdfilter = settings->lcdfilter;
}
# ifdef FC_HINT_STYLE
#ifdef FC_HINT_STYLE
if ((settings->seen & SEEN_HINTSTYLE) != 0
&& oldsettings.hintstyle != settings->hintstyle)
{
@ -539,7 +667,7 @@ apply_xft_settings (struct x_display_info *dpyinfo,
++changed;
oldsettings.hintstyle = settings->hintstyle;
}
# endif
#endif
if ((settings->seen & SEEN_DPI) != 0 && oldsettings.dpi != settings->dpi
&& settings->dpi > 0)
@ -590,11 +718,13 @@ apply_xft_settings (struct x_display_info *dpyinfo,
#endif /* HAVE_XFT */
}
/* Read XSettings from the display for DPYINFO.
If SEND_EVENT_P is non-zero store a Lisp event settings that changed. */
static void
read_and_apply_settings (struct x_display_info *dpyinfo, int send_event_p)
{
struct xsettings settings;
Lisp_Object dpyname = XCAR (dpyinfo->name_list_element);
if (!read_settings (dpyinfo, &settings))
return;
@ -602,38 +732,29 @@ read_and_apply_settings (struct x_display_info *dpyinfo, int send_event_p)
apply_xft_settings (dpyinfo, True, &settings);
if (settings.seen & SEEN_TB_STYLE)
{
Lisp_Object style = Qnil;
if (strcmp (settings.tb_style, "both") == 0)
style = Qboth;
else if (strcmp (settings.tb_style, "both-horiz") == 0)
style = Qboth_horiz;
else if (strcmp (settings.tb_style, "icons") == 0)
style = Qimage;
else if (strcmp (settings.tb_style, "text") == 0)
style = Qtext;
if (!NILP (style) && !EQ (style, current_tool_bar_style))
{
current_tool_bar_style = style;
if (send_event_p)
store_config_changed_event (Qtool_bar_style, dpyname);
}
if (send_event_p)
store_tool_bar_style_changed (settings.tb_style, dpyinfo);
else
current_tool_bar_style = map_tool_bar_style (settings.tb_style);
xfree (settings.tb_style);
}
#ifdef HAVE_XFT
if (settings.seen & SEEN_FONT)
{
if (!current_font || strcmp (current_font, settings.font) != 0)
if (send_event_p)
store_font_name_changed (settings.font);
else
{
xfree (current_font);
current_font = settings.font;
if (send_event_p)
store_config_changed_event (Qfont_name, dpyname);
current_font = xstrdup (settings.font);
}
else
xfree (settings.font);
xfree (settings.font);
}
#endif
}
/* Check if EVENT for the display in DPYINFO is XSettings related. */
void
xft_settings_event (struct x_display_info *dpyinfo, XEvent *event)
{
@ -675,6 +796,7 @@ xft_settings_event (struct x_display_info *dpyinfo, XEvent *event)
read_and_apply_settings (dpyinfo, True);
}
/* Initialize GSettings and read startup values. */
static void
init_gsettings (void)
@ -697,8 +819,21 @@ init_gsettings (void)
gsettings_client = g_settings_new (GSETTINGS_SCHEMA);
if (!gsettings_client) return;
g_object_ref_sink (G_OBJECT (gsettings_client));
g_signal_connect (G_OBJECT (gsettings_client), "changed",
G_CALLBACK (something_changed_gsettingsCB), NULL);
val = g_settings_get_value (gsettings_client, SYSTEM_MONO_FONT);
val = g_settings_get_value (gsettings_client, GSETTINGS_TOOL_BAR_STYLE);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
current_tool_bar_style
= map_tool_bar_style (g_variant_get_string (val, NULL));
g_variant_unref (val);
}
#ifdef HAVE_XFT
val = g_settings_get_value (gsettings_client, GSETTINGS_MONO_FONT);
if (val)
{
g_variant_ref_sink (val);
@ -707,46 +842,84 @@ init_gsettings (void)
g_variant_unref (val);
}
g_signal_connect (G_OBJECT (gsettings_client), "changed",
G_CALLBACK (something_changedCB), NULL);
val = g_settings_get_value (gsettings_client, GSETTINGS_FONT_NAME);
if (val)
{
g_variant_ref_sink (val);
if (g_variant_is_of_type (val, G_VARIANT_TYPE_STRING))
current_font = xstrdup (g_variant_get_string (val, NULL));
g_variant_unref (val);
}
#endif /* HAVE_XFT */
#endif /* HAVE_GSETTINGS */
}
/* Init GConf and read startup values. */
static void
init_gconf (void)
{
#if defined (HAVE_GCONF) && defined (HAVE_XFT) && ! defined (HAVE_GSETTINGS)
#if defined (HAVE_GCONF)
char *s;
#ifdef HAVE_G_TYPE_INIT
g_type_init ();
#endif
gconf_client = gconf_client_get_default ();
s = gconf_client_get_string (gconf_client, SYSTEM_MONO_FONT, NULL);
gconf_client_set_error_handling (gconf_client, GCONF_CLIENT_HANDLE_NONE);
gconf_client_add_dir (gconf_client,
GCONF_TOOL_BAR_STYLE,
GCONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
gconf_client_notify_add (gconf_client,
GCONF_TOOL_BAR_STYLE,
something_changed_gconfCB,
NULL, NULL, NULL);
s = gconf_client_get_string (gconf_client, GCONF_TOOL_BAR_STYLE, NULL);
if (s)
{
current_tool_bar_style = map_tool_bar_style (s);
g_free (s);
}
#ifdef HAVE_XFT
s = gconf_client_get_string (gconf_client, GCONF_MONO_FONT, NULL);
if (s)
{
current_mono_font = xstrdup (s);
g_free (s);
}
s = gconf_client_get_string (gconf_client, SYSTEM_FONT, NULL);
s = gconf_client_get_string (gconf_client, GCONF_FONT_NAME, NULL);
if (s)
{
current_font = xstrdup (s);
g_free (s);
}
gconf_client_set_error_handling (gconf_client, GCONF_CLIENT_HANDLE_NONE);
gconf_client_add_dir (gconf_client,
SYSTEM_MONO_FONT,
GCONF_MONO_FONT,
GCONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
gconf_client_notify_add (gconf_client,
SYSTEM_MONO_FONT,
something_changedCB,
GCONF_MONO_FONT,
something_changed_gconfCB,
NULL, NULL, NULL);
#endif /* HAVE_GCONF && HAVE_XFT && ! HAVE_GSETTINGS */
gconf_client_add_dir (gconf_client,
GCONF_FONT_NAME,
GCONF_CLIENT_PRELOAD_ONELEVEL,
NULL);
gconf_client_notify_add (gconf_client,
GCONF_FONT_NAME,
something_changed_gconfCB,
NULL, NULL, NULL);
#endif /* HAVE_XFT */
#endif /* HAVE_GCONF */
}
/* Init Xsettings and read startup values. */
static void
init_xsettings (struct x_display_info *dpyinfo)
{
@ -769,11 +942,14 @@ void
xsettings_initialize (struct x_display_info *dpyinfo)
{
if (first_dpyinfo == NULL) first_dpyinfo = dpyinfo;
init_gsettings ();
init_gconf ();
init_xsettings (dpyinfo);
init_gsettings ();
}
/* Return the system monospaced font.
May be NULL if not known. */
const char *
xsettings_get_system_font (void)
{
@ -781,6 +957,9 @@ xsettings_get_system_font (void)
}
#ifdef USE_LUCID
/* Return the system font.
May be NULL if not known. */
const char *
xsettings_get_system_normal_font (void)
{
@ -831,10 +1010,9 @@ syms_of_xsettings (void)
first_dpyinfo = NULL;
#ifdef HAVE_GSETTINGS
gsettings_client = NULL;
#else
#endif
#ifdef HAVE_GCONF
gconf_client = NULL;
#endif
#endif
DEFSYM (Qmonospace_font_name, "monospace-font-name");