Merge from mainline.
This commit is contained in:
commit
7ea5475741
44 changed files with 4906 additions and 733 deletions
|
@ -1,22 +1,22 @@
|
|||
;;; bzrmerge.el ---
|
||||
|
||||
;; Copyright (C) 2010 Stefan Monnier
|
||||
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
;; Keywords:
|
||||
|
||||
;; This program is free software; you can redistribute it and/or modify
|
||||
;; 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.
|
||||
|
||||
;; This program is distributed in the hope that it will be useful,
|
||||
;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
;;; Commentary:
|
||||
|
||||
|
@ -202,7 +202,7 @@ Does not make other difference."
|
|||
"merge" "-r" (format "%s" endrevno) from)
|
||||
(call-process "bzr" nil t nil "revert" ".")
|
||||
(call-process "bzr" nil t nil "unshelve")))
|
||||
|
||||
|
||||
(defvar bzrmerge-already-done nil)
|
||||
|
||||
(defun bzrmerge-apply (missing from)
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2011-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* loading.texi (Hooks for Loading): Adjust doc of eval-after-load.
|
||||
|
||||
2011-01-02 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* modes.texi (Emulating Mode Line): Fix last change.
|
||||
|
@ -8884,7 +8888,7 @@
|
|||
;; End:
|
||||
|
||||
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
|
|
|
@ -1919,7 +1919,7 @@ The variable @code{directory-abbrev-alist} contains an alist of
|
|||
abbreviations to use for file directories. Each element has the form
|
||||
@code{(@var{from} . @var{to})}, and says to replace @var{from} with
|
||||
@var{to} when it appears in a directory name. The @var{from} string is
|
||||
actually a regular expression; it should always start with @samp{\`}.
|
||||
actually a regular expression; it ought to always start with @samp{\`}.
|
||||
The @var{to} string should be an ordinary absolute directory name. Do
|
||||
not use @samp{~} to stand for a home directory in that string. The
|
||||
function @code{abbreviate-file-name} performs these substitutions.
|
||||
|
|
|
@ -962,7 +962,8 @@ example, @file{my_inst.elc} or @file{my_inst.elc.gz} in some directory
|
|||
@end example
|
||||
|
||||
@var{library} can also be a feature (i.e.@: a symbol), in which case
|
||||
@var{form} is evaluated when @code{(provide @var{library})} is called.
|
||||
@var{form} is evaluated at the end of any file where
|
||||
@code{(provide @var{library})} is called.
|
||||
|
||||
An error in @var{form} does not undo the load, but does prevent
|
||||
execution of the rest of @var{form}.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-01-10 Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
* dbus.texi (Receiving Method Calls): New function
|
||||
dbus-register-service. Rearrange node.
|
||||
|
||||
2011-01-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* texinfo.tex: Update to version 2010-12-23.17 from gnulib,
|
||||
|
|
|
@ -1244,9 +1244,73 @@ message has been arrived, and @var{handler} is called. Example:
|
|||
@cindex method calls, returning
|
||||
@cindex returning method calls
|
||||
|
||||
Emacs can also offer own methods, which can be called by other
|
||||
applications. These methods could be an implementation of an
|
||||
interface of a well known service, like @samp{org.freedesktop.TextEditor}.
|
||||
In order to register methods on the D-Bus, Emacs has to request a well
|
||||
known name on the D-Bus under which it will be available for other
|
||||
clients. Names on the D-Bus can be registered and unregistered using
|
||||
the following functions:
|
||||
|
||||
@defun dbus-register-service bus service &rest flags
|
||||
Register the known name @var{service} on D-Bus @var{bus}.
|
||||
|
||||
@var{bus} is either the symbol @code{:system} or the symbol
|
||||
@code{:session}.
|
||||
|
||||
@var{service} is the service name to be registered on the D-Bus. It
|
||||
must be a known name.
|
||||
|
||||
@var{flags} is a subset of the following keywords:
|
||||
|
||||
@itemize
|
||||
@item @code{:allow-replacement}: Allow another service to become the primary
|
||||
owner if requested.
|
||||
|
||||
@item @code{:replace-existing}: Request to replace the current primary owner.
|
||||
|
||||
@item @code{:do-not-queue}: If we can not become the primary owner do not
|
||||
place us in the queue.
|
||||
@end itemize
|
||||
|
||||
One of the following keywords is returned:
|
||||
|
||||
@itemize
|
||||
|
||||
@item @code{:primary-owner}: We have become the primary owner of the name
|
||||
@var{service}.
|
||||
|
||||
@item @code{:in-queue}: We could not become the primary owner and
|
||||
have been placed in the queue.
|
||||
|
||||
@item @code{:exists}: We already are in the queue.
|
||||
|
||||
@item @code{:already-owner}: We already are the primary
|
||||
owner.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
@defun dbus-unregister-service bus service
|
||||
Unregister all objects from D-Bus @var{bus}, registered by Emacs for
|
||||
@var{service}.
|
||||
|
||||
@var{bus} is either the symbol @code{:system} or the symbol
|
||||
@code{:session}.
|
||||
|
||||
@var{service} is the D-Bus service name of the D-Bus. It must be a
|
||||
known name. Emacs releases its association to @var{service} from
|
||||
D-Bus.
|
||||
|
||||
One of the following keywords is returned:
|
||||
|
||||
@itemize
|
||||
@item @code{:released}: We successfully released the name @var{service}.
|
||||
@item @code{:non-existent}: The name @var{service} does not exist on the bus.
|
||||
@item @code{:not-owner}: We are not an owner of the name @var{service}.
|
||||
@end itemize
|
||||
@end defun
|
||||
|
||||
When a name has been chosen, Emacs can offer own methods, which can be
|
||||
called by other applications. These methods could be an
|
||||
implementation of an interface of a well known service, like
|
||||
@samp{org.freedesktop.TextEditor}.
|
||||
|
||||
It could be also an implementation of an own interface. In this case,
|
||||
the service name must be @samp{org.gnu.Emacs}. The object path shall
|
||||
|
@ -1300,7 +1364,7 @@ When @var{dont-register-service} is non-@code{nil}, the known name
|
|||
@var{service} is not registered. This means that other D-Bus clients
|
||||
have no way of noticing the newly registered method. When interfaces
|
||||
are constructed incrementally by adding single methods or properties
|
||||
at a time, @var{dont-register-service} can be use to prevent other
|
||||
at a time, @var{dont-register-service} can be used to prevent other
|
||||
clients from discovering the still incomplete interface.
|
||||
|
||||
The default D-Bus timeout when waiting for a message reply is 25
|
||||
|
@ -1414,7 +1478,7 @@ When @var{dont-register-service} is non-@code{nil}, the known name
|
|||
@var{service} is not registered. This means that other D-Bus clients
|
||||
have no way of noticing the newly registered method. When interfaces
|
||||
are constructed incrementally by adding single methods or properties
|
||||
at a time, @var{dont-register-service} can be use to prevent other
|
||||
at a time, @var{dont-register-service} can be used to prevent other
|
||||
clients from discovering the still incomplete interface.
|
||||
|
||||
@noindent Example:
|
||||
|
@ -1491,18 +1555,6 @@ registered for the respective service, Emacs releases its association
|
|||
to the service from D-Bus.
|
||||
@end defun
|
||||
|
||||
@defun dbus-unregister-service bus service
|
||||
Unregister all objects from D-Bus @var{bus}, registered by Emacs for
|
||||
@var{service}.
|
||||
|
||||
@var{bus} is either the symbol @code{:system} or the symbol
|
||||
@code{:session}.
|
||||
|
||||
@var{service} is the D-Bus service name of the D-Bus. It must be a
|
||||
known name. Emacs releases its association to @var{service} from
|
||||
D-Bus.
|
||||
@end defun
|
||||
|
||||
|
||||
@node Signals
|
||||
@chapter Sending and receiving signals.
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2011-01-10 Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
* NEWS: Add new function dbus-register-service.
|
||||
|
||||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* themes/tango-theme.el, themes/tango-dark-theme.el: Let-bind
|
||||
tango palette colors. Only define faces for color displays.
|
||||
Customize the ansi-color-names-vector variable. Add Ediff,
|
||||
Flyspell, and Semantic faces as suggested by Jan Moringen.
|
||||
|
||||
2011-01-08 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* compilation.txt: Add column to gcc-include sample.
|
||||
|
|
18
etc/NEWS
18
etc/NEWS
|
@ -219,9 +219,10 @@ Emacs no longer looks for custom themes in `load-path'. The default
|
|||
is to search in `custom-theme-directory', followed by a built-in theme
|
||||
directory named "themes/" in `data-directory'.
|
||||
|
||||
*** New option `custom-safe-theme-files' lists known-safe theme files.
|
||||
If a theme is not in this list, Emacs queries before loading it.
|
||||
The default value treats all themes included in Emacs as safe.
|
||||
*** New option `custom-safe-themes' records known-safe theme files.
|
||||
If a theme is not in this list, Emacs queries before loading it, and
|
||||
offers to save the theme to `custom-safe-themes' automatically. By
|
||||
default, all themes included in Emacs are treated as safe.
|
||||
|
||||
** The user option `remote-file-name-inhibit-cache' controls whether
|
||||
the remote file-name cache is used for read access.
|
||||
|
@ -322,6 +323,10 @@ prompts for a number to count from and for a format string.
|
|||
|
||||
* Changes in Specialized Modes and Packages in Emacs 24.1
|
||||
|
||||
** Prolog mode has been completely revamped, with lots of additional
|
||||
functionality such as more intelligent indentation, electricty, support for
|
||||
more variants, including Mercury, and a lot more.
|
||||
|
||||
** shell-mode can track your cwd by reading it from your prompt.
|
||||
Just set shell-dir-cookie-re to an appropriate regexp.
|
||||
|
||||
|
@ -564,7 +569,12 @@ threads simultaneously.
|
|||
*** It is possible now, to access alternative buses than the default
|
||||
system or session bus.
|
||||
|
||||
*** dbus-register-{method,property} do not necessarily register names anymore.
|
||||
*** dbus-register-{service,method,property}
|
||||
The -method and -property functions do not automatically register
|
||||
names anymore.
|
||||
|
||||
The new function dbus-register-service registers a service known name
|
||||
on a D-Bus without simultaneously registering a property or a method.
|
||||
|
||||
** Tramp
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
;;; tango-dark-theme.el --- Tango-based custom theme for faces
|
||||
|
||||
;; Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Authors: Chong Yidong <cyd@stupidchicken>
|
||||
;; Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -25,63 +28,124 @@
|
|||
;;; Code:
|
||||
|
||||
(deftheme tango-dark
|
||||
"Theme for faces, based on the Tango palette on a dark background.
|
||||
Basic, Font Lock, Isearch, Gnus, and Message faces are included.")
|
||||
"Theme for faces, based on the Tango palette with a dark background.
|
||||
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
||||
Semantic, and Ansi-Color faces are included.")
|
||||
|
||||
(custom-theme-set-faces
|
||||
'tango-dark
|
||||
'(default ((t (:foreground "#eeeeec" :background "#2e3436"))))
|
||||
'(cursor ((t (:foreground "#2e3436" :background "#fce94f"))))
|
||||
'(highlight ((t (:foreground "#2e3436" :background "#edd400"))))
|
||||
'(region ((t (:background "#555753"))))
|
||||
'(font-lock-builtin-face ((t (:foreground "#ad7fa8"))))
|
||||
'(font-lock-comment-face ((t (:foreground "#73d216"))))
|
||||
'(font-lock-constant-face ((t (:foreground "#e6a8df"))))
|
||||
'(font-lock-function-name-face ((t (:foreground "#fce94f"))))
|
||||
'(font-lock-keyword-face ((t (:foreground "#8cc4ff"))))
|
||||
'(font-lock-string-face ((t (:foreground "#e9b96e"))))
|
||||
'(font-lock-type-face ((t (:foreground "#a5ff4d"))))
|
||||
'(font-lock-variable-name-face ((t (:foreground "#fcaf3e"))))
|
||||
'(font-lock-warning-face ((t (:foreground "#ef2929"))))
|
||||
'(button ((t (:underline t :foreground "#729fcf"))))
|
||||
'(link ((t (:underline t :foreground "#729fcf"))))
|
||||
'(link-visited ((t (:underline t :foreground "#3465a4"))))
|
||||
'(mode-line ((t (:box (:line-width -1 :style released-button)
|
||||
:background "#d3d7cf" :foreground "black"))))
|
||||
'(mode-line-inactive ((t (:box (:line-width -1 :style released-button)
|
||||
:background "#555753" :foreground "white"))))
|
||||
'(isearch ((t (:foreground "#ffffff" :background "#ce5c00"))))
|
||||
'(lazy-highlight ((t (:background "#8f5902"))))
|
||||
'(gnus-group-news-1 ((t (:foreground "#ad7fa8"))))
|
||||
'(gnus-group-news-1-low ((t (:foreground "#75507b"))))
|
||||
'(gnus-group-news-2 ((t (:foreground "#729fcf"))))
|
||||
'(gnus-group-news-2-low ((t (:foreground "#3465a4"))))
|
||||
'(gnus-group-news-3 ((t (:foreground "#8ae234"))))
|
||||
'(gnus-group-news-3-low ((t (:foreground "#73d216"))))
|
||||
'(gnus-group-news-4 ((t (:foreground "#e9b9e6"))))
|
||||
'(gnus-group-news-4-low ((t (:foreground "#c17d11"))))
|
||||
'(gnus-group-news-5 ((t (:foreground "#fcaf3e"))))
|
||||
'(gnus-group-news-5-low ((t (:foreground "#f57900"))))
|
||||
'(gnus-group-news-low ((t (:foreground "#edd400"))))
|
||||
'(gnus-group-mail-1 ((t (:foreground "#ad7fa8"))))
|
||||
'(gnus-group-mail-1-low ((t (:foreground "#75507b"))))
|
||||
'(gnus-group-mail-2 ((t (:foreground "#729fcf"))))
|
||||
'(gnus-group-mail-2-low ((t (:foreground "#3465a4"))))
|
||||
'(gnus-group-mail-3 ((t (:foreground "#8ae234"))))
|
||||
'(gnus-group-mail-3-low ((t (:foreground "#73d216"))))
|
||||
'(gnus-group-mail-low ((t (:foreground "#edd400"))))
|
||||
'(gnus-header-content ((t (:weight normal :foreground "#c4a000"))))
|
||||
'(gnus-header-from ((t (:foreground "#edd400"))))
|
||||
'(gnus-header-subject ((t (:foreground "#8ae234"))))
|
||||
'(gnus-header-name ((t (:foreground "#729fcf"))))
|
||||
'(gnus-header-newsgroups ((t (:foreground "#c17d11"))))
|
||||
'(message-header-name ((t (:foreground "#729fcf"))))
|
||||
'(message-header-cc ((t (:foreground "#c4a000"))))
|
||||
'(message-header-other ((t (:foreground "#c17d11"))))
|
||||
'(message-header-subject ((t (:foreground "#8ae234"))))
|
||||
'(message-header-to ((t (:foreground "#edd400"))))
|
||||
'(message-cited-text ((t (:foreground "#8ae234"))))
|
||||
'(message-separator ((t (:foreground "#ad7fa8")))))
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
;; Tango palette colors.
|
||||
(butter-1 "#fce94f") (butter-2 "#edd400") (butter-3 "#c4a000")
|
||||
(orange-1 "#fcaf3e") (orange-2 "#f57900") (orange-3 "#ce5c00")
|
||||
(choc-1 "#e9b96e") (choc-2 "#c17d11") (choc-3 "#8f5902")
|
||||
(cham-1 "#8ae234") (cham-2 "#73d216") (cham-3 "#4e9a06")
|
||||
(blue-1 "#729fcf") (blue-2 "#3465a4") (blue-3 "#204a87")
|
||||
(plum-1 "#ad7fa8") (plum-2 "#75507b") (plum-3 "#5c3566")
|
||||
(red-1 "#ef2929") (red-2 "#cc0000") (red-3 "#a40000")
|
||||
(alum-1 "#eeeeec") (alum-2 "#d3d7cf") (alum-3 "#babdb6")
|
||||
(alum-4 "#888a85") (alum-5 "#555753") (alum-6 "#2e3436")
|
||||
;; Not in Tango palette; used for better contrast.
|
||||
(cham-0 "#b4fa70") (blue-0 "#8cc4ff") (plum-0 "#e6a8df")
|
||||
(red-0 "#ff4b4b") (alum-5.5 "#41423f") (alum-7 "#212526"))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'tango-dark
|
||||
`(default ((,class (:foreground ,alum-1 :background ,alum-6))))
|
||||
`(cursor ((,class (:foreground ,alum-6 :background ,butter-1))))
|
||||
;; Highlighting faces
|
||||
`(fringe ((,class (:background ,alum-7))))
|
||||
`(highlight ((,class (:foreground ,alum-6 :background ,butter-2))))
|
||||
`(region ((,class (:background ,alum-5))))
|
||||
`(secondary-selection ((,class (:background ,blue-3))))
|
||||
`(isearch ((,class (:foreground ,alum-1 :background ,orange-3))))
|
||||
`(lazy-highlight ((,class (:background ,choc-3))))
|
||||
`(trailing-whitespace ((,class (:background ,red-3))))
|
||||
;; Mode line faces
|
||||
`(mode-line ((,class
|
||||
(:box (:line-width -1 :style released-button)
|
||||
:background ,alum-2 :foreground ,alum-6))))
|
||||
`(mode-line-inactive ((,class
|
||||
(:box (:line-width -1 :style released-button)
|
||||
:background ,alum-5 :foreground ,alum-1))))
|
||||
;; Escape and prompt faces
|
||||
`(minibuffer-prompt ((,class (:foreground ,cham-0))))
|
||||
`(escape-glyph ((,class (:foreground ,butter-3))))
|
||||
;; Font lock faces
|
||||
`(font-lock-builtin-face ((,class (:foreground ,plum-1))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,cham-2))))
|
||||
`(font-lock-constant-face ((,class (:foreground ,plum-0))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,butter-1))))
|
||||
`(font-lock-keyword-face ((,class (:foreground ,cham-0))))
|
||||
`(font-lock-string-face ((,class (:foreground ,choc-1))))
|
||||
`(font-lock-type-face ((,class (:foreground ,blue-0))))
|
||||
`(font-lock-variable-name-face ((,class (:foreground ,orange-1))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,red-0))))
|
||||
;; Button and link faces
|
||||
`(button ((,class (:underline t :foreground ,blue-1))))
|
||||
`(link ((,class (:underline t :foreground ,blue-1))))
|
||||
`(link-visited ((,class (:underline t :foreground ,blue-2))))
|
||||
;; Gnus faces
|
||||
`(gnus-group-news-1 ((,class (:foreground ,plum-1))))
|
||||
`(gnus-group-news-1-low ((,class (:foreground ,plum-2))))
|
||||
`(gnus-group-news-2 ((,class (:foreground ,blue-1))))
|
||||
`(gnus-group-news-2-low ((,class (:foreground ,blue-2))))
|
||||
`(gnus-group-news-3 ((,class (:foreground ,cham-1))))
|
||||
`(gnus-group-news-3-low ((,class (:foreground ,cham-2))))
|
||||
`(gnus-group-news-4 ((,class (:foreground ,plum-0))))
|
||||
`(gnus-group-news-4-low ((,class (:foreground ,choc-2))))
|
||||
`(gnus-group-news-5 ((,class (:foreground ,orange-1))))
|
||||
`(gnus-group-news-5-low ((,class (:foreground ,orange-2))))
|
||||
`(gnus-group-news-low ((,class (:foreground ,butter-2))))
|
||||
`(gnus-group-mail-1 ((,class (:foreground ,plum-1))))
|
||||
`(gnus-group-mail-1-low ((,class (:foreground ,plum-2))))
|
||||
`(gnus-group-mail-2 ((,class (:foreground ,blue-1))))
|
||||
`(gnus-group-mail-2-low ((,class (:foreground ,blue-2))))
|
||||
`(gnus-group-mail-3 ((,class (:foreground ,cham-1))))
|
||||
`(gnus-group-mail-3-low ((,class (:foreground ,cham-2))))
|
||||
`(gnus-group-mail-low ((,class (:foreground ,butter-2))))
|
||||
`(gnus-header-content ((,class (:weight normal :foreground ,butter-3))))
|
||||
`(gnus-header-from ((,class (:foreground ,butter-2))))
|
||||
`(gnus-header-subject ((,class (:foreground ,cham-1))))
|
||||
`(gnus-header-name ((,class (:foreground ,blue-1))))
|
||||
`(gnus-header-newsgroups ((,class (:foreground ,choc-2))))
|
||||
;; Message faces
|
||||
`(message-header-name ((,class (:foreground ,blue-1))))
|
||||
`(message-header-cc ((,class (:foreground ,butter-3))))
|
||||
`(message-header-other ((,class (:foreground ,choc-2))))
|
||||
`(message-header-subject ((,class (:foreground ,cham-1))))
|
||||
`(message-header-to ((,class (:foreground ,butter-2))))
|
||||
`(message-cited-text ((,class (:foreground ,cham-1))))
|
||||
`(message-separator ((,class (:foreground ,plum-1))))
|
||||
;; SMerge faces
|
||||
`(smerge-refined-change ((,class (:background ,blue-3))))
|
||||
;; Ediff faces
|
||||
`(ediff-current-diff-A ((,class (:background ,alum-5))))
|
||||
`(ediff-fine-diff-A ((,class (:background ,blue-3))))
|
||||
`(ediff-even-diff-A ((,class (:background ,alum-5.5))))
|
||||
`(ediff-odd-diff-A ((,class (:background ,alum-5.5))))
|
||||
`(ediff-current-diff-B ((,class (:background ,alum-5))))
|
||||
`(ediff-fine-diff-B ((,class (:background ,choc-3))))
|
||||
`(ediff-even-diff-B ((,class (:background ,alum-5.5))))
|
||||
`(ediff-odd-diff-B ((,class (:background ,alum-5.5))))
|
||||
;; Flyspell faces
|
||||
`(flyspell-duplicate ((,class (:underline ,orange-1))))
|
||||
`(flyspell-incorrect ((,class (:underline ,red-1))))
|
||||
;; Semantic faces
|
||||
`(semantic-decoration-on-includes ((,class (:underline ,alum-4))))
|
||||
`(semantic-decoration-on-private-members-face
|
||||
((,class (:background ,plum-3))))
|
||||
`(semantic-decoration-on-protected-members-face
|
||||
((,class (:background ,choc-3))))
|
||||
`(semantic-decoration-on-unknown-includes
|
||||
((,class (:background ,red-3))))
|
||||
`(semantic-decoration-on-unparsed-includes
|
||||
((,class (:background ,alum-5.5))))
|
||||
`(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
|
||||
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))))
|
||||
|
||||
(custom-theme-set-variables
|
||||
'tango-dark
|
||||
`(ansi-color-names-vector [,alum-7 ,red-0 ,cham-0 ,butter-1
|
||||
,blue-1 ,plum-1 ,blue-0 ,alum-1])))
|
||||
|
||||
(provide-theme 'tango-dark)
|
||||
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
;;; tango-theme.el --- Tango-based custom theme for faces
|
||||
|
||||
;; Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Authors: Chong Yidong <cyd@stupidchicken>
|
||||
;; Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
;; This file is part of GNU Emacs.
|
||||
|
||||
|
@ -25,63 +28,117 @@
|
|||
;;; Code:
|
||||
|
||||
(deftheme tango
|
||||
"Theme for faces, based on the Tango palette on a light background.
|
||||
Basic, Font Lock, Isearch, Gnus, and Message faces are included.")
|
||||
"Theme for faces, based on the Tango palette with a light background.
|
||||
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
|
||||
Semantic, and Ansi-Color faces are included.")
|
||||
|
||||
(custom-theme-set-faces
|
||||
'tango
|
||||
'(default ((t (:foreground "#16191a" :background "#eeeeec"))))
|
||||
'(cursor ((t (:foreground "#eeeeec" :background "#204a87"))))
|
||||
'(highlight ((t (:background "#babdb6"))))
|
||||
'(region ((t (:background "#babdb6"))))
|
||||
'(font-lock-builtin-face ((t (:weight bold :foreground "#204a87"))))
|
||||
'(font-lock-comment-face ((t (:foreground "#204a87"))))
|
||||
'(font-lock-constant-face ((t (:weight bold :foreground "#5c3566"))))
|
||||
'(font-lock-function-name-face ((t (:weight bold :foreground "#ce5c00"))))
|
||||
'(font-lock-keyword-face ((t (:foreground "#a40000"))))
|
||||
'(font-lock-string-face ((t (:foreground "#5c3566"))))
|
||||
'(font-lock-type-face ((t (:weight bold :foreground "#4e9a06"))))
|
||||
'(font-lock-variable-name-face ((t (:weight bold :foreground "#c17d11"))))
|
||||
'(font-lock-warning-face ((t (:foreground "#cc0000"))))
|
||||
'(button ((t (:underline t :foreground "#204a87"))))
|
||||
'(link ((t (:underline t :foreground "#204a87"))))
|
||||
'(link-visited ((t (:underline t :foreground "#3465a4"))))
|
||||
'(mode-line ((t (:box (:line-width -1 :style released-button)
|
||||
:background "#d3d7cf" :foreground "black"))))
|
||||
'(mode-line-inactive ((t (:box (:line-width -1 :style released-button)
|
||||
:background "#babdb6" :foreground "black"))))
|
||||
'(isearch ((t (:foreground "#ffffff" :background "#ce5c00"))))
|
||||
'(lazy-highlight ((t (:background "#e9b96e"))))
|
||||
'(gnus-group-news-1 ((t (:weight bold :foreground "#5c3566"))))
|
||||
'(gnus-group-news-1-low ((t (:foreground "#5c3566"))))
|
||||
'(gnus-group-news-2 ((t (:weight bold :foreground "#204a87"))))
|
||||
'(gnus-group-news-2-low ((t (:foreground "#204a87"))))
|
||||
'(gnus-group-news-3 ((t (:weight bold :foreground "#4e0a06"))))
|
||||
'(gnus-group-news-3-low ((t (:foreground "#4e0a06"))))
|
||||
'(gnus-group-news-4 ((t (:weight bold :foreground "#7a4c02"))))
|
||||
'(gnus-group-news-4-low ((t (:foreground "#7a4c02"))))
|
||||
'(gnus-group-news-5 ((t (:weight bold :foreground "#ce5c00"))))
|
||||
'(gnus-group-news-5-low ((t (:foreground "#ce5c00"))))
|
||||
'(gnus-group-news-low ((t (:foreground "#888a85"))))
|
||||
'(gnus-group-mail-1 ((t (:weight bold :foreground "#5c3566"))))
|
||||
'(gnus-group-mail-1-low ((t (:foreground "#5c3566"))))
|
||||
'(gnus-group-mail-2 ((t (:weight bold :foreground "#204a87"))))
|
||||
'(gnus-group-mail-2-low ((t (:foreground "#204a87"))))
|
||||
'(gnus-group-mail-3 ((t (:weight bold :foreground "#4e0a06"))))
|
||||
'(gnus-group-mail-3-low ((t (:foreground "#4e0a06"))))
|
||||
'(gnus-group-mail-low ((t (:foreground "#888a85"))))
|
||||
'(gnus-header-content ((t (:foreground "#4e9a06"))))
|
||||
'(gnus-header-from ((t (:weight bold :foreground "#c4a000"))))
|
||||
'(gnus-header-subject ((t (:foreground "#4e0a06"))))
|
||||
'(gnus-header-name ((t (:foreground "#204a87"))))
|
||||
'(gnus-header-newsgroups ((t (:foreground "#888a85"))))
|
||||
'(message-header-name ((t (:foreground "#204a87"))))
|
||||
'(message-header-cc ((t (:foreground "#c4a000"))))
|
||||
'(message-header-other ((t (:foreground "#c17d11"))))
|
||||
'(message-header-subject ((t (:foreground "#4e0a06"))))
|
||||
'(message-header-to ((t (:weight bold :foreground "#c4a000"))))
|
||||
'(message-cited-text ((t (:foreground "#888a85"))))
|
||||
'(message-separator ((t (:weight bold :foreground "#4e9a06")))))
|
||||
(let ((class '((class color) (min-colors 89)))
|
||||
;; Tango palette colors.
|
||||
(butter-1 "#fce94f") (butter-2 "#edd400") (butter-3 "#c4a000")
|
||||
(orange-1 "#fcaf3e") (orange-2 "#f57900") (orange-3 "#ce5c00")
|
||||
(choc-1 "#e9b96e") (choc-2 "#c17d11") (choc-3 "#8f5902")
|
||||
(cham-1 "#8ae234") (cham-2 "#73d216") (cham-3 "#4e9a06")
|
||||
(blue-1 "#729fcf") (blue-2 "#3465a4") (blue-3 "#204a87")
|
||||
(plum-1 "#ad7fa8") (plum-2 "#75507b") (plum-3 "#5c3566")
|
||||
(red-1 "#ef2929") (red-2 "#cc0000") (red-3 "#a40000")
|
||||
(alum-1 "#eeeeec") (alum-2 "#d3d7cf") (alum-3 "#babdb6")
|
||||
(alum-4 "#888a85") (alum-5 "#555753") (alum-6 "#2e3436")
|
||||
;; Not in Tango palette; used for better contrast.
|
||||
(cham-4 "#346604") (blue-0 "#8cc4ff"))
|
||||
|
||||
(custom-theme-set-faces
|
||||
'tango
|
||||
`(default ((,class (:foreground ,"#16191a" :background ,alum-1))))
|
||||
`(cursor ((,class (:foreground ,alum-1 :background ,blue-3))))
|
||||
;; Highlighting faces
|
||||
`(fringe ((,class (:background ,alum-2))))
|
||||
`(highlight ((,class (:background ,alum-3))))
|
||||
`(region ((,class (:background ,alum-3))))
|
||||
`(secondary-selection ((,class (:background ,blue-0))))
|
||||
`(isearch ((,class (:foreground ,"#ffffff" :background ,orange-3))))
|
||||
`(lazy-highlight ((,class (:background ,choc-1))))
|
||||
`(trailing-whitespace ((,class (:background ,red-1))))
|
||||
;; Mode line faces
|
||||
`(mode-line ((,class (:box (:line-width -1 :style released-button)
|
||||
:background ,alum-2 :foreground ,alum-6))))
|
||||
`(mode-line-inactive ((,class (:box (:line-width -1 :style released-button)
|
||||
:background ,alum-4 :foreground ,alum-6))))
|
||||
;; Escape and prompt faces
|
||||
`(minibuffer-prompt ((,class (:weight bold :foreground ,blue-3))))
|
||||
`(escape-glyph ((,class (:foreground ,red-3))))
|
||||
;; Font lock faces
|
||||
`(font-lock-builtin-face ((,class (:weight bold :foreground ,plum-3))))
|
||||
`(font-lock-comment-face ((,class (:foreground ,cham-4))))
|
||||
`(font-lock-constant-face ((,class (:weight bold :foreground ,blue-3))))
|
||||
`(font-lock-function-name-face ((,class (:foreground ,red-3))))
|
||||
`(font-lock-keyword-face ((,class (:weight bold :foreground ,choc-2))))
|
||||
`(font-lock-string-face ((,class (:foreground ,plum-3))))
|
||||
`(font-lock-type-face ((,class (:foreground ,blue-3))))
|
||||
`(font-lock-variable-name-face ((,class (:weight bold :foreground ,orange-3))))
|
||||
`(font-lock-warning-face ((,class (:foreground ,red-2))))
|
||||
;; Button and link faces
|
||||
`(button ((,class (:underline t :foreground ,blue-3))))
|
||||
`(link ((,class (:underline t :foreground ,blue-3))))
|
||||
`(link-visited ((,class (:underline t :foreground ,blue-2))))
|
||||
;; Gnus faces
|
||||
`(gnus-group-news-1 ((,class (:weight bold :foreground ,plum-3))))
|
||||
`(gnus-group-news-1-low ((,class (:foreground ,plum-3))))
|
||||
`(gnus-group-news-2 ((,class (:weight bold :foreground ,blue-3))))
|
||||
`(gnus-group-news-2-low ((,class (:foreground ,blue-3))))
|
||||
`(gnus-group-news-3 ((,class (:weight bold :foreground ,"#4e0a06"))))
|
||||
`(gnus-group-news-3-low ((,class (:foreground ,"#4e0a06"))))
|
||||
`(gnus-group-news-4 ((,class (:weight bold :foreground ,"#7a4c02"))))
|
||||
`(gnus-group-news-4-low ((,class (:foreground ,"#7a4c02"))))
|
||||
`(gnus-group-news-5 ((,class (:weight bold :foreground ,orange-3))))
|
||||
`(gnus-group-news-5-low ((,class (:foreground ,orange-3))))
|
||||
`(gnus-group-news-low ((,class (:foreground ,"#888a85"))))
|
||||
`(gnus-group-mail-1 ((,class (:weight bold :foreground ,plum-3))))
|
||||
`(gnus-group-mail-1-low ((,class (:foreground ,plum-3))))
|
||||
`(gnus-group-mail-2 ((,class (:weight bold :foreground ,blue-3))))
|
||||
`(gnus-group-mail-2-low ((,class (:foreground ,blue-3))))
|
||||
`(gnus-group-mail-3 ((,class (:weight bold :foreground ,"#4e0a06"))))
|
||||
`(gnus-group-mail-3-low ((,class (:foreground ,"#4e0a06"))))
|
||||
`(gnus-group-mail-low ((,class (:foreground ,"#888a85"))))
|
||||
`(gnus-header-content ((,class (:foreground ,cham-3))))
|
||||
`(gnus-header-from ((,class (:weight bold :foreground ,butter-3))))
|
||||
`(gnus-header-subject ((,class (:foreground ,"#4e0a06"))))
|
||||
`(gnus-header-name ((,class (:foreground ,blue-3))))
|
||||
`(gnus-header-newsgroups ((,class (:foreground ,"#888a85"))))
|
||||
;; Message faces
|
||||
`(message-header-name ((,class (:foreground ,blue-3))))
|
||||
`(message-header-cc ((,class (:foreground ,butter-3))))
|
||||
`(message-header-other ((,class (:foreground ,choc-2))))
|
||||
`(message-header-subject ((,class (:foreground ,"#4e0a06"))))
|
||||
`(message-header-to ((,class (:weight bold :foreground ,butter-3))))
|
||||
`(message-cited-text ((,class (:foreground ,"#888a85"))))
|
||||
`(message-separator ((,class (:weight bold :foreground ,cham-3))))
|
||||
;; SMerge
|
||||
`(smerge-refined-change ((,class (:background ,plum-1))))
|
||||
;; Ediff
|
||||
`(ediff-current-diff-A ((,class (:background ,blue-1))))
|
||||
`(ediff-fine-diff-A ((,class (:background ,plum-1))))
|
||||
`(ediff-current-diff-B ((,class (:background ,butter-1))))
|
||||
`(ediff-fine-diff-B ((,class (:background ,orange-1))))
|
||||
;; Flyspell
|
||||
`(flyspell-duplicate ((,class (:underline ,orange-1))))
|
||||
`(flyspell-incorrect ((,class (:underline ,red-1))))
|
||||
;; Semantic faces
|
||||
`(semantic-decoration-on-includes ((,class (:underline ,cham-4))))
|
||||
`(semantic-decoration-on-private-members-face
|
||||
((,class (:background ,alum-2))))
|
||||
`(semantic-decoration-on-protected-members-face
|
||||
((,class (:background ,alum-2))))
|
||||
`(semantic-decoration-on-unknown-includes
|
||||
((,class (:background ,choc-3))))
|
||||
`(semantic-decoration-on-unparsed-includes
|
||||
((,class (:underline ,orange-3))))
|
||||
`(semantic-tag-boundary-face ((,class (:overline ,blue-1))))
|
||||
`(semantic-unmatched-syntax-face ((,class (:underline ,red-1)))))
|
||||
|
||||
(custom-theme-set-variables
|
||||
'tango
|
||||
`(ansi-color-names-vector [,alum-6 ,red-3 ,cham-3 ,butter-3
|
||||
,blue-3 ,plum-3 ,blue-1 ,alum-1])))
|
||||
|
||||
(provide-theme 'tango)
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
'(diff-indicator-changed ((t (:weight bold))))
|
||||
'(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
|
||||
'(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
|
||||
'(dired-directory ((t (:inherit font-lock-function-name-face :weight bold))))
|
||||
'(hl-line ((t (:background "grey28"))))
|
||||
'(message-header-subject ((t (:foreground "SkyBlue"))))
|
||||
'(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
'(diff-indicator-changed ((t (:weight bold))))
|
||||
'(diff-indicator-removed ((t (:inherit diff-indicator-changed))))
|
||||
'(diff-removed ((t (:inherit diff-changed :background "sandy brown"))))
|
||||
'(dired-directory ((t (:inherit font-lock-function-name-face :weight bold))))
|
||||
'(hl-line ((t (:background "grey95"))))
|
||||
'(minibuffer-prompt ((t (:background "yellow" :foreground "medium blue" :box (:line-width -1 :color "red" :style released-button) :weight bold))))
|
||||
'(mode-line ((t (:box (:line-width -1 :color "red" :style released-button) :family "DejaVu Sans"))))
|
||||
|
|
137
lisp/ChangeLog
137
lisp/ChangeLog
|
@ -1,5 +1,128 @@
|
|||
2011-01-11 Johan Bockgård <bojohan@gnu.org>
|
||||
|
||||
* emacs-lisp/unsafep.el (unsafep): Handle backquoted forms.
|
||||
|
||||
2011-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* progmodes/prolog.el: Fix up coding convention and such.
|
||||
(prolog-indent-width): Use the same default as in
|
||||
previous prolog.el rather than tab-width which depends on which buffer
|
||||
is current when the file is loaded.
|
||||
(prolog-electric-newline-flag): Only enable if electric-indent-mode
|
||||
is not available.
|
||||
(prolog-emacs): Remove. Use (featurep 'xemacs) instead.
|
||||
(prolog-known-systems): Remove.
|
||||
(prolog-mode-syntax-table, prolog-inferior-mode-map):
|
||||
Move initialization into declaration.
|
||||
(prolog-mode-map): Move initialization into declaration.
|
||||
Remove system-specific mode-map vars, since they referred to the same
|
||||
keymap anyway.
|
||||
(prolog-mode-variables): Obey the user's preference w.r.t
|
||||
adaptive-fill-mode. Prefer symbol-value to `eval'.
|
||||
(prolog-mode-keybindings-edit): Add compatibility bindings.
|
||||
(prolog-mode): Use define-derived-mode. Don't handle mercury here.
|
||||
(mercury-mode-map): New var.
|
||||
(mercury-mode, prolog-inferior-mode): Use define-derived-mode.
|
||||
(prolog-ensure-process, prolog-process-insert-string)
|
||||
(prolog-consult-compile): Use with-current-buffer.
|
||||
(prolog-guess-fill-prefix): Simplify data flow.
|
||||
(prolog-replace-in-string): New function to use instead of
|
||||
replace-in-string.
|
||||
(prolog-enable-sicstus-sd): Don't abuse `eval'.
|
||||
(prolog-uncomment-region): Use `uncomment-region' when available.
|
||||
(prolog-electric-colon, prolog-electric-dash): Use `eolp'.
|
||||
(prolog-int-to-char, prolog-char-to-int): New functions to use instead
|
||||
of int-to-char and char-to-int.
|
||||
(prolog-mode-hook, prolog-inferior-mode-hook): Don't force font-lock.
|
||||
|
||||
2011-01-11 Stefan Bruda <stefan@bruda.ca>
|
||||
|
||||
* progmodes/prolog.el: Replace by a whole new file.
|
||||
|
||||
2011-01-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* subr.el (eval-after-load): Fix timing for features (bug#7769).
|
||||
(declare-function, undefined, insert-for-yank)
|
||||
(replace-regexp-in-string): Follow checkdoc's recommendations.
|
||||
|
||||
2011-01-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* calendar/diary-lib.el (diary-mode): Refresh *Calendar* after
|
||||
refreshing the diary buffer.
|
||||
|
||||
2011-01-10 Ken Manheimer <ken.manheimer@gmail.com>
|
||||
|
||||
* allout.el: Add 2011 to the file copyright.
|
||||
(allout-encrypt-string): Prevent encryption from adding an extra
|
||||
newline at the end of the topic body.
|
||||
(allout-version): Increment to 2.3.
|
||||
|
||||
2011-01-10 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/dbus.el (dbus-unregister-service): Complete doc.
|
||||
Fix call of dbus-error signal.
|
||||
(dbus-register-property): Use `dont-register' keyword.
|
||||
|
||||
2011-01-10 Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
* net/dbus.el (dbus-unregister-service): Translate returned
|
||||
integer into a symbol.
|
||||
(dbus-register-property): Use `dbus-register-service' to do the
|
||||
name registration.
|
||||
|
||||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* progmodes/idlw-help.el (idlwave-help-link): Inherit from link face.
|
||||
Suggested by Joakim Verona.
|
||||
|
||||
* comint.el (comint-highlight-prompt): Inherit minibuffer-prompt.
|
||||
|
||||
* wid-edit.el (visibility): Replace :on-image and :off-image
|
||||
widget properties with :on-glyph and :off-glyph, for consistency
|
||||
with the `visibility' widget.
|
||||
(widget-toggle-value-create, widget-visibility-value-create):
|
||||
Merge into a single function `widget-toggle-value-create'.
|
||||
|
||||
* cus-edit.el (custom-variable-value-create, custom-visibility)
|
||||
(custom-face-edit-value-create, custom-face-value-create):
|
||||
Replace :on-image and :off-image widget properties with :on-glyph and
|
||||
:off-glyph, for consistency with the `visibility' widget.
|
||||
|
||||
2011-01-09 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* net/ldap.el (ldap-search-internal): Don't use eval.
|
||||
|
||||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* subr.el (read-char-choice): Use read-key.
|
||||
|
||||
* custom.el (custom-safe-themes): Rename from
|
||||
custom-safe-theme-files. Add :risky tag.
|
||||
(load-theme, custom-theme-load-confirm): Save sha1 hashes to
|
||||
custom-safe-themes, not filenames. Suggested by Stefan Monnier.
|
||||
|
||||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* tool-bar.el (tool-bar-setup): Remove Help button. Remove label
|
||||
from Search and add a label to Undo.
|
||||
|
||||
* vc/vc-dir.el (vc-dir-tool-bar-map): Rearrange, removing
|
||||
inappropriate buttons and adding :vert-only tags.
|
||||
|
||||
* progmodes/compile.el (compilation-mode-tool-bar-map): Adjust to
|
||||
removal of Help tool-bar button. Remove Undo button for space.
|
||||
|
||||
* info.el (info-tool-bar-map): Add :vert-only tags.
|
||||
|
||||
2011-01-08 Tassilo Horn <tassilo@member.fsf.org>
|
||||
|
||||
* doc-view.el (doc-view-mode-p): Check for png or imagemagick
|
||||
image backend support. Either of them is fine.
|
||||
|
||||
2011-01-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* subr.el (y-or-n-p): Doc fix.
|
||||
|
||||
* custom.el (custom-safe-theme-files): New defcustom.
|
||||
(custom-theme-load-confirm): New function.
|
||||
(load-theme): Load theme using `load', confirming with
|
||||
|
@ -97,7 +220,7 @@
|
|||
|
||||
2011-01-04 Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
* net/dbus.el (dbus-register-property): Added optional parameter
|
||||
* net/dbus.el (dbus-register-property): Add optional parameter
|
||||
dont-register-service. Updated docstring accordingly.
|
||||
|
||||
2011-01-04 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
@ -266,8 +389,8 @@
|
|||
|
||||
2010-12-30 Tassilo Horn <tassilo@member.fsf.org>
|
||||
|
||||
* doc-view.el (doc-view-mode, doc-view-toggle-display): Use
|
||||
normal-mode without doc-view-mode bindings in auto-mode-alist as
|
||||
* doc-view.el (doc-view-mode, doc-view-toggle-display):
|
||||
Use normal-mode without doc-view-mode bindings in auto-mode-alist as
|
||||
fallback instead of hard coding fundamental mode.
|
||||
|
||||
2010-12-30 Tassilo Horn <tassilo@member.fsf.org>
|
||||
|
@ -462,8 +585,8 @@
|
|||
|
||||
2010-12-16 Leo <sdl.web@gmail.com>
|
||||
|
||||
* eshell/eshell.el (eshell-directory-name): Use
|
||||
locate-user-emacs-file (Bug#7578).
|
||||
* eshell/eshell.el (eshell-directory-name):
|
||||
Use locate-user-emacs-file (Bug#7578).
|
||||
|
||||
2010-12-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
|
@ -488,8 +611,8 @@
|
|||
(tramp-handle-insert-file-contents): Do not set permanent-local
|
||||
property.
|
||||
|
||||
* net/tramp-cache.el (tramp-persistency-file-name): Use
|
||||
`locate-user-emacs-file' if fboundp.
|
||||
* net/tramp-cache.el (tramp-persistency-file-name):
|
||||
Use `locate-user-emacs-file' if fboundp.
|
||||
|
||||
* net/tramp-sh.el (tramp-methods): Add "ksu".
|
||||
(tramp-default-user-alist): Add "ksu". Use `regexp-opt' for
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
;;; allout.el --- extensive outline mode for use alone and with other modes
|
||||
|
||||
;; Copyright (C) 1992, 1993, 1994, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Ken Manheimer <ken dot manheimer at gmail dot com>
|
||||
;; Maintainer: Ken Manheimer <ken dot manheimer at gmail dot com>
|
||||
;; Created: Dec 1991 -- first release to usenet
|
||||
;; Version: 2.2.2
|
||||
;; Version: 2.3
|
||||
;; Keywords: outlines wp languages
|
||||
;; Website: http://myriadicity.net/Sundry/EmacsAllout
|
||||
|
||||
|
@ -569,7 +569,7 @@ themselves:
|
|||
`!' - exclamation point/bang -- emphatic
|
||||
`[' - open square bracket -- meta-note, about item instead of item's subject
|
||||
`\"' - double quote -- a quotation or other citation
|
||||
`=' - equal sign -- an assignement, equating a name with some connotation
|
||||
`=' - equal sign -- an assignment, some kind of definition
|
||||
`^' - carat -- relates to something above
|
||||
|
||||
Some are more elusive, but their rationale may be recognizable:
|
||||
|
@ -891,7 +891,7 @@ For details, see `allout-toggle-current-subtree-encryption's docstring."
|
|||
;;;_ #1 Internal Outline Formatting and Configuration
|
||||
;;;_ : Version
|
||||
;;;_ = allout-version
|
||||
(defvar allout-version "2.2.2"
|
||||
(defvar allout-version "2.3"
|
||||
"Version of currently loaded outline package. (allout.el)")
|
||||
;;;_ > allout-version
|
||||
(defun allout-version (&optional here)
|
||||
|
@ -6226,10 +6226,11 @@ signal."
|
|||
(epg-decrypt-string epg-context
|
||||
(encode-coding-string massaged-text
|
||||
(or encoding 'utf-8)))
|
||||
(epg-encrypt-string epg-context
|
||||
(encode-coding-string massaged-text
|
||||
(or encoding 'utf-8))
|
||||
recipients)))
|
||||
(replace-regexp-in-string "\n$" ""
|
||||
(epg-encrypt-string epg-context
|
||||
(encode-coding-string massaged-text
|
||||
(or encoding 'utf-8))
|
||||
recipients))))
|
||||
|
||||
;; validate result -- non-empty
|
||||
(if (not result-text)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; diary-lib.el --- diary functions
|
||||
|
||||
;; Copyright (C) 1989, 1990, 1992, 1993, 1994, 1995, 2001, 2002, 2003,
|
||||
;; 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Edward M. Reingold <reingold@cs.uiuc.edu>
|
||||
|
@ -2346,6 +2346,9 @@ return a font-lock pattern matching array of MONTHS and marking SYMBOL."
|
|||
'(diary-font-lock-keywords t))
|
||||
(add-to-invisibility-spec '(diary . nil))
|
||||
(add-hook 'after-save-hook 'diary-redraw-calendar nil t)
|
||||
;; In case the file was modified externally, refresh the calendar
|
||||
;; after refreshing the diary buffer.
|
||||
(add-hook 'after-revert-hook 'diary-redraw-calendar nil t)
|
||||
(if diary-header-line-flag
|
||||
(setq header-line-format diary-header-line-format)))
|
||||
|
||||
|
|
|
@ -227,9 +227,7 @@ This variable is buffer-local."
|
|||
:group 'comint)
|
||||
|
||||
(defface comint-highlight-prompt
|
||||
'((((min-colors 88) (background dark)) (:foreground "cyan1"))
|
||||
(((background dark)) (:foreground "cyan"))
|
||||
(t (:foreground "dark blue")))
|
||||
'((t :inherit minibuffer-prompt))
|
||||
"Face to use to highlight prompts."
|
||||
:group 'comint)
|
||||
|
||||
|
|
|
@ -2551,9 +2551,9 @@ try matching its doc string against `custom-guess-doc-alist'."
|
|||
(push (widget-create-child-and-convert
|
||||
widget 'custom-visibility
|
||||
:help-echo "Show the value of this option."
|
||||
:on-image "down"
|
||||
:on-glyph "down"
|
||||
:on "Hide"
|
||||
:off-image "right"
|
||||
:off-glyph "right"
|
||||
:off "Show Value"
|
||||
:action 'custom-toggle-hide-variable
|
||||
nil)
|
||||
|
@ -2573,8 +2573,8 @@ try matching its doc string against `custom-guess-doc-alist'."
|
|||
:help-echo "Hide the value of this option."
|
||||
:on "Hide"
|
||||
:off "Show"
|
||||
:on-image "down"
|
||||
:off-image "right"
|
||||
:on-glyph "down"
|
||||
:off-glyph "right"
|
||||
:action 'custom-toggle-hide-variable
|
||||
t)
|
||||
buttons)
|
||||
|
@ -2603,8 +2603,8 @@ try matching its doc string against `custom-guess-doc-alist'."
|
|||
:help-echo "Hide or show this option."
|
||||
:on "Hide"
|
||||
:off "Show"
|
||||
:on-image "down"
|
||||
:off-image "right"
|
||||
:on-glyph "down"
|
||||
:off-glyph "right"
|
||||
:action 'custom-toggle-hide-variable
|
||||
t)
|
||||
buttons)
|
||||
|
@ -3056,8 +3056,8 @@ to switch between two values."
|
|||
:pressed-face 'custom-visibility
|
||||
:mouse-face 'highlight
|
||||
:pressed-face 'highlight
|
||||
:on-image nil
|
||||
:off-image nil)
|
||||
:on-glyph nil
|
||||
:off-glyph nil)
|
||||
|
||||
(defface custom-visibility
|
||||
'((t :height 0.8 :inherit link))
|
||||
|
@ -3120,7 +3120,7 @@ face attributes (as specified by a `default' defface entry)."
|
|||
:pressed-face 'custom-visibility
|
||||
:mouse-face 'highlight
|
||||
:on "Hide Unused Attributes" :off "Show All Attributes"
|
||||
:on-image nil :off-image nil
|
||||
:on-glyph nil :off-glyph nil
|
||||
:always-active t
|
||||
:action 'custom-face-edit-value-visibility-action
|
||||
show-all)
|
||||
|
@ -3475,7 +3475,7 @@ the present value is saved to its :shown-value property instead."
|
|||
widget 'custom-visibility
|
||||
:help-echo "Hide or show this face."
|
||||
:on "Hide" :off "Show"
|
||||
:on-image "down" :off-image "right"
|
||||
:on-glyph "down" :off-glyph "right"
|
||||
:action 'custom-toggle-hide-face
|
||||
(not hiddenp))
|
||||
buttons)
|
||||
|
|
136
lisp/custom.el
136
lisp/custom.el
|
@ -1105,14 +1105,16 @@ property `theme-feature' (which is usually a symbol created by
|
|||
(let ((custom-enabling-themes t))
|
||||
(enable-theme 'user))))
|
||||
|
||||
(defcustom custom-safe-theme-files '(default)
|
||||
"List of theme files that are considered safe to load.
|
||||
Each list element should be either an absolute file name, or the
|
||||
symbol `default', which stands for the built-in Emacs theme
|
||||
directory (a directory named \"themes\" in `data-directory'."
|
||||
(defcustom custom-safe-themes '(default)
|
||||
"List of themes that are considered safe to load.
|
||||
Each list element should be the `sha1' hash of a theme file, or
|
||||
the symbol `default', which stands for any theme in the built-in
|
||||
Emacs theme directory (a directory named \"themes\" in
|
||||
`data-directory')."
|
||||
:type '(repeat
|
||||
(choice file (const :tag "Built-in theme directory" default)))
|
||||
(choice string (const :tag "Built-in themes" default)))
|
||||
:group 'customize
|
||||
:risky t
|
||||
:version "24.1")
|
||||
|
||||
(defvar safe-functions) ; From unsafep.el
|
||||
|
@ -1140,74 +1142,74 @@ in one of the directories specified by `custom-theme-load-path'."
|
|||
(put theme 'theme-documentation nil))
|
||||
(let ((fn (locate-file (concat (symbol-name theme) "-theme.el")
|
||||
(custom-theme--load-path)
|
||||
'("" "c"))))
|
||||
'("" "c")))
|
||||
hash)
|
||||
(unless fn
|
||||
(error "Unable to find theme file for `%s'." theme))
|
||||
;; Check file safety.
|
||||
(when (or (and (memq 'default custom-safe-theme-files)
|
||||
(equal (file-name-directory fn)
|
||||
(expand-file-name "themes/" data-directory)))
|
||||
(member fn custom-safe-theme-files)
|
||||
;; If the file is not in the builtin theme directory or
|
||||
;; in `custom-safe-theme-files', check it with unsafep.
|
||||
(with-temp-buffer
|
||||
(require 'unsafep)
|
||||
(insert-file-contents fn)
|
||||
(let ((safe-functions (append '(provide-theme deftheme
|
||||
custom-theme-set-variables
|
||||
custom-theme-set-faces)
|
||||
safe-functions))
|
||||
unsafep form)
|
||||
(while (and (setq form (condition-case nil
|
||||
(let ((read-circle nil))
|
||||
(read (current-buffer)))
|
||||
(end-of-file nil)))
|
||||
(null (setq unsafep (unsafep form)))))
|
||||
(or (null unsafep)
|
||||
(custom-theme-load-confirm fn)))))
|
||||
(let ((custom--inhibit-theme-enable no-enable))
|
||||
(load fn)))))
|
||||
(with-temp-buffer
|
||||
(insert-file-contents fn)
|
||||
(setq hash (sha1 (current-buffer)))
|
||||
;; Check file safety.
|
||||
(when (or (and (memq 'default custom-safe-themes)
|
||||
(equal (file-name-directory fn)
|
||||
(expand-file-name "themes/" data-directory)))
|
||||
(member hash custom-safe-themes)
|
||||
;; If the theme is not in `custom-safe-themes', check
|
||||
;; it with unsafep.
|
||||
(progn
|
||||
(require 'unsafep)
|
||||
(let ((safe-functions
|
||||
(append '(provide-theme deftheme
|
||||
custom-theme-set-variables
|
||||
custom-theme-set-faces)
|
||||
safe-functions))
|
||||
unsafep form)
|
||||
(while (and (setq form (condition-case nil
|
||||
(let ((read-circle nil))
|
||||
(read (current-buffer)))
|
||||
(end-of-file nil)))
|
||||
(null (setq unsafep (unsafep form)))))
|
||||
(or (null unsafep)
|
||||
(custom-theme-load-confirm hash)))))
|
||||
(let ((custom--inhibit-theme-enable no-enable))
|
||||
(eval-buffer))))))
|
||||
|
||||
(defun custom-theme-load-confirm (filename)
|
||||
(defun custom-theme-load-confirm (hash)
|
||||
"Query the user about loading a Custom theme that may not be safe.
|
||||
The theme should be in the current buffer. If the user agrees,
|
||||
query also about adding HASH to `custom-safe-themes'."
|
||||
(if noninteractive
|
||||
nil
|
||||
(let ((existing-buffer (find-buffer-visiting filename))
|
||||
(exit-chars '(?y ?n ?\s ?\C-g))
|
||||
(let ((exit-chars '(?y ?n ?\s))
|
||||
prompt char)
|
||||
(save-window-excursion
|
||||
(if existing-buffer
|
||||
(pop-to-buffer existing-buffer)
|
||||
(find-file filename))
|
||||
(unwind-protect
|
||||
(progn
|
||||
(setq prompt
|
||||
(format "This theme is not guaranteed to be safe. Really load? %s"
|
||||
(if (< (line-number-at-pos (point-max))
|
||||
(window-body-height))
|
||||
"(y or n) "
|
||||
(push ?\C-v exit-chars)
|
||||
"Type y or n, or C-v to scroll: ")))
|
||||
(goto-char (point-min))
|
||||
(while (null char)
|
||||
(setq char (read-char-choice prompt exit-chars t))
|
||||
(when (eq char ?\C-v)
|
||||
(condition-case nil
|
||||
(scroll-up)
|
||||
(error (goto-char (point-min))))
|
||||
(setq char nil)))
|
||||
(when (memq char '(?\s ?y))
|
||||
(push filename custom-safe-theme-files)
|
||||
;; Offer to save to `custom-safe-theme-files'.
|
||||
(and (or custom-file user-init-file)
|
||||
(y-or-n-p "Treat %s as safe for future loads? "
|
||||
(file-name-nondirectory filename))
|
||||
(let ((coding-system-for-read nil))
|
||||
(customize-save-variable
|
||||
'custom-safe-theme-files
|
||||
custom-safe-theme-files)))
|
||||
t))
|
||||
;; Unwind form.
|
||||
(unless existing-buffer (kill-buffer)))))))
|
||||
(rename-buffer "*Custom Theme*" t)
|
||||
(emacs-lisp-mode)
|
||||
(display-buffer (current-buffer))
|
||||
(setq prompt
|
||||
(format "This theme is not guaranteed to be safe. Really load? %s"
|
||||
(if (< (line-number-at-pos (point-max))
|
||||
(window-body-height))
|
||||
"(y or n) "
|
||||
(push ?\C-v exit-chars)
|
||||
"Type y or n, or C-v to scroll: ")))
|
||||
(goto-char (point-min))
|
||||
(while (null char)
|
||||
(setq char (read-char-choice prompt exit-chars))
|
||||
(when (eq char ?\C-v)
|
||||
(condition-case nil
|
||||
(scroll-up)
|
||||
(error (goto-char (point-min))))
|
||||
(setq char nil)))
|
||||
(when (memq char '(?\s ?y))
|
||||
(push hash custom-safe-themes)
|
||||
;; Offer to save to `custom-safe-themes'.
|
||||
(and (or custom-file user-init-file)
|
||||
(y-or-n-p "Treat this theme as safe for future loads? ")
|
||||
(let ((coding-system-for-read nil))
|
||||
(customize-save-variable 'custom-safe-themes
|
||||
custom-safe-themes)))
|
||||
t)))))
|
||||
|
||||
(defun custom-theme-name-valid-p (name)
|
||||
"Return t if NAME is a valid name for a Custom theme, nil otherwise.
|
||||
|
|
|
@ -621,7 +621,8 @@ It's a subdirectory of `doc-view-cache-directory'."
|
|||
Document types are symbols like `dvi', `ps', `pdf', or `odf' (any
|
||||
OpenDocument format)."
|
||||
(and (display-graphic-p)
|
||||
(image-type-available-p 'png)
|
||||
(or (image-type-available-p 'imagemagick)
|
||||
(image-type-available-p 'png))
|
||||
(cond
|
||||
((eq type 'dvi)
|
||||
(and (doc-view-mode-p 'pdf)
|
||||
|
|
|
@ -202,6 +202,9 @@ UNSAFEP-VARS is a list of symbols with local bindings."
|
|||
(dolist (x (nthcdr 3 form))
|
||||
(setq reason (unsafep-progn (cdr x)))
|
||||
(if reason (throw 'unsafep reason))))))
|
||||
((eq fun '\`)
|
||||
;; Backquoted form - safe if its expansion is.
|
||||
(unsafep (cdr (backquote-process (cadr form)))))
|
||||
(t
|
||||
;;First unsafep-function call above wasn't nil, no special case applies
|
||||
reason)))))
|
||||
|
|
|
@ -57,7 +57,7 @@ when it has unsaved changes."
|
|||
A list of elements of the form (FROM . TO), each meaning to replace
|
||||
FROM with TO when it appears in a directory name. This replacement is
|
||||
done when setting up the default directory of a newly visited file.
|
||||
*Every* FROM string should start with \"\\\\`\".
|
||||
*Every* FROM string ought to start with \"\\\\`\".
|
||||
|
||||
FROM and TO should be equivalent names, which refer to the
|
||||
same directory. Do not use `~' in the TO strings;
|
||||
|
|
|
@ -1,3 +1,22 @@
|
|||
2011-01-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* nnimap.el (nnimap-convert-partial-article): Protect against
|
||||
zero-length body parts.
|
||||
|
||||
* mm-decode.el (mm-preferred-alternative-precedence): Discourage
|
||||
showing empty parts.
|
||||
|
||||
* gnus-int.el (gnus-request-accept-article): Don't try to update marks
|
||||
and stuff if the backend didn't return the article number. This fixes
|
||||
an Exchange-related nnimap bug.
|
||||
|
||||
* gnus-sum.el (gnus-summary-next-article): Remove hack to reselect
|
||||
group window, because it does the wrong thing when a separate frame
|
||||
displays the group buffer.
|
||||
|
||||
* proto-stream.el (open-protocol-stream): Protect against the low-level
|
||||
transport functions returning nil.
|
||||
|
||||
2011-01-07 Daiki Ueno <ueno@unixuser.org>
|
||||
|
||||
* mml2015.el (epg-sub-key-fingerprint): Autoload.
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; gnus-int.el --- backend interface functions for Gnus
|
||||
|
||||
;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
|
||||
;; 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
;; Keywords: news
|
||||
|
@ -711,7 +711,9 @@ If GROUP is nil, all groups on GNUS-COMMAND-METHOD are scanned."
|
|||
(if (stringp group) (gnus-group-real-name group) group)
|
||||
(cadr gnus-command-method)
|
||||
last)))
|
||||
(when (and gnus-agent (gnus-agent-method-p gnus-command-method))
|
||||
(when (and gnus-agent
|
||||
(gnus-agent-method-p gnus-command-method)
|
||||
(cdr result))
|
||||
(gnus-agent-regenerate-group group (list (cdr result))))
|
||||
result))
|
||||
|
||||
|
|
|
@ -7687,9 +7687,6 @@ If BACKWARD, the previous article is selected instead of the next."
|
|||
(if (eq gnus-keep-same-level 'best)
|
||||
(gnus-summary-best-group gnus-newsgroup-name)
|
||||
(gnus-summary-search-group backward gnus-keep-same-level))))
|
||||
;; For some reason, the group window gets selected. We change
|
||||
;; it back.
|
||||
(select-window (get-buffer-window (current-buffer)))
|
||||
;; Select next unread newsgroup automagically.
|
||||
(cond
|
||||
((or (not gnus-auto-select-next)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; mm-decode.el --- Functions for decoding MIME things
|
||||
|
||||
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
;; MORIOKA Tomohiko <morioka@jaist.ac.jp>
|
||||
|
@ -1367,13 +1367,18 @@ Use CMD as the process."
|
|||
|
||||
(defun mm-preferred-alternative-precedence (handles)
|
||||
"Return the precedence based on HANDLES and `mm-discouraged-alternatives'."
|
||||
(let ((seq (nreverse (mapcar #'mm-handle-media-type
|
||||
handles))))
|
||||
(dolist (disc (reverse mm-discouraged-alternatives))
|
||||
(dolist (elem (copy-sequence seq))
|
||||
(when (string-match disc elem)
|
||||
(setq seq (nconc (delete elem seq) (list elem))))))
|
||||
seq))
|
||||
(setq handles (reverse handles))
|
||||
(dolist (disc (reverse mm-discouraged-alternatives))
|
||||
(dolist (handle (copy-sequence handles))
|
||||
(when (string-match disc (mm-handle-media-type handle))
|
||||
(setq handles (nconc (delete handle handles) (list handle))))))
|
||||
;; Remove empty parts.
|
||||
(dolist (handle (copy-sequence handles))
|
||||
(unless (with-current-buffer (mm-handle-buffer handle)
|
||||
(goto-char (point-min))
|
||||
(re-search-forward "[^ \t\n]" nil t))
|
||||
(setq handles (nconc (delete handle handles) (list handle)))))
|
||||
(mapcar #'mm-handle-media-type handles))
|
||||
|
||||
(defun mm-get-content-id (id)
|
||||
"Return the handle(s) referred to by ID."
|
||||
|
|
|
@ -582,7 +582,7 @@ textual parts.")
|
|||
;; Collect all the body parts.
|
||||
(while (looking-at ".*BODY\\[\\([.0-9]+\\)\\]")
|
||||
(setq id (match-string 1)
|
||||
bytes (nnimap-get-length))
|
||||
bytes (or (nnimap-get-length) 0))
|
||||
(beginning-of-line)
|
||||
(delete-region (point) (progn (forward-line 1) (point)))
|
||||
(push (list id (buffer-substring (point) (+ (point) bytes)))
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; proto-stream.el --- negotiating TLS, STARTTLS and other connections
|
||||
|
||||
;; Copyright (C) 2010 Free Software Foundation, Inc.
|
||||
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
;; Keywords: network
|
||||
|
@ -101,14 +101,17 @@ command to switch on STARTTLS otherwise."
|
|||
(setq type 'network))
|
||||
((eq type 'ssl)
|
||||
(setq type 'tls)))
|
||||
(destructuring-bind (stream greeting capabilities)
|
||||
(funcall (intern (format "proto-stream-open-%s" type) obarray)
|
||||
name buffer host service parameters)
|
||||
(list (and stream
|
||||
(memq (process-status stream)
|
||||
'(open run))
|
||||
stream)
|
||||
greeting capabilities))))
|
||||
(let ((open-result
|
||||
(funcall (intern (format "proto-stream-open-%s" type) obarray)
|
||||
name buffer host service parameters)))
|
||||
(if (null open-result)
|
||||
(list nil nil nil)
|
||||
(destructuring-bind (stream greeting capabilities) open-result
|
||||
(list (and stream
|
||||
(memq (process-status stream)
|
||||
'(open run))
|
||||
stream)
|
||||
greeting capabilities))))))
|
||||
|
||||
(defun proto-stream-open-network-only (name buffer host service parameters)
|
||||
(let ((start (with-current-buffer buffer (point)))
|
||||
|
|
11
lisp/info.el
11
lisp/info.el
|
@ -3777,13 +3777,16 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
|
|||
(tool-bar-local-item-from-menu 'Info-up "up-node" map Info-mode-map
|
||||
:vert-only t)
|
||||
(define-key-after map [separator-2] menu-bar-separator)
|
||||
(tool-bar-local-item-from-menu 'Info-top-node "home" map Info-mode-map)
|
||||
(tool-bar-local-item-from-menu 'Info-top-node "home" map Info-mode-map
|
||||
:vert-only t)
|
||||
(tool-bar-local-item-from-menu 'Info-goto-node "jump-to" map Info-mode-map)
|
||||
(define-key-after map [separator-3] menu-bar-separator)
|
||||
(tool-bar-local-item-from-menu 'Info-index "index" map Info-mode-map
|
||||
:label "Index Search")
|
||||
(tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map)
|
||||
(tool-bar-local-item-from-menu 'Info-exit "exit" map Info-mode-map)
|
||||
:label "Index")
|
||||
(tool-bar-local-item-from-menu 'Info-search "search" map Info-mode-map
|
||||
:vert-only t)
|
||||
(tool-bar-local-item-from-menu 'Info-exit "exit" map Info-mode-map
|
||||
:vert-only t)
|
||||
map))
|
||||
|
||||
(defvar Info-menu-last-node nil)
|
||||
|
|
|
@ -183,7 +183,18 @@ association to the service from D-Bus."
|
|||
(defun dbus-unregister-service (bus service)
|
||||
"Unregister all objects related to SERVICE from D-Bus BUS.
|
||||
BUS is either a Lisp symbol, `:system' or `:session', or a string
|
||||
denoting the bus address. SERVICE must be a known service name."
|
||||
denoting the bus address. SERVICE must be a known service name.
|
||||
|
||||
The function returns a keyword, indicating the result of the
|
||||
operation. One of the following keywords is returned:
|
||||
|
||||
`:released': Service has become the primary owner of the name.
|
||||
|
||||
`:non-existent': Service name does not exist on this bus.
|
||||
|
||||
`:not-owner': We are neither the primary owner nor waiting in the
|
||||
queue of this service."
|
||||
|
||||
(maphash
|
||||
(lambda (key value)
|
||||
(dolist (elt value)
|
||||
|
@ -193,9 +204,14 @@ denoting the bus address. SERVICE must be a known service name."
|
|||
(puthash key (delete elt value) dbus-registered-objects-table)
|
||||
(remhash key dbus-registered-objects-table))))))
|
||||
dbus-registered-objects-table)
|
||||
(dbus-call-method
|
||||
bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus
|
||||
"ReleaseName" service))
|
||||
(let ((reply (dbus-call-method
|
||||
bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus
|
||||
"ReleaseName" service)))
|
||||
(case reply
|
||||
(1 :released)
|
||||
(2 :non-existent)
|
||||
(3 :not-owner)
|
||||
(t (signal 'dbus-error (list "Could not unregister service" service))))))
|
||||
|
||||
(defun dbus-call-method-non-blocking-handler (&rest args)
|
||||
"Handler for reply messages of asynchronous D-Bus message calls.
|
||||
|
@ -914,17 +930,20 @@ clients from discovering the still incomplete interface."
|
|||
bus dbus-service-dbus dbus-path-dbus dbus-interface-dbus
|
||||
"RequestName" service 0))
|
||||
|
||||
;; Add the handler. We use `dbus-service-emacs' as service name, in
|
||||
;; order to let unregister SERVICE despite of this default handler.
|
||||
;; Add handlers for the three property-related methods.
|
||||
(dbus-register-method
|
||||
bus service path dbus-interface-properties "Get" 'dbus-property-handler
|
||||
dont-register-service)
|
||||
bus service path dbus-interface-properties "Get"
|
||||
'dbus-property-handler 'dont-register)
|
||||
(dbus-register-method
|
||||
bus service path dbus-interface-properties "GetAll" 'dbus-property-handler
|
||||
dont-register-service)
|
||||
bus service path dbus-interface-properties "GetAll"
|
||||
'dbus-property-handler 'dont-register)
|
||||
(dbus-register-method
|
||||
bus service path dbus-interface-properties "Set" 'dbus-property-handler
|
||||
dont-register-service)
|
||||
bus service path dbus-interface-properties "Set"
|
||||
'dbus-property-handler 'dont-register)
|
||||
|
||||
;; Register the name SERVICE with BUS.
|
||||
(unless dont-register-service
|
||||
(dbus-register-service bus service))
|
||||
|
||||
;; Send the PropertiesChanged signal.
|
||||
(when emits-signal
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; ldap.el --- client interface to LDAP for Emacs
|
||||
|
||||
;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
||||
;; 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
|
||||
;; 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Oscar Figueiredo <oscar@cpe.fr>
|
||||
;; Maintainer: FSF
|
||||
|
@ -556,13 +556,9 @@ an alist of attribute/value pairs."
|
|||
(if (and sizelimit
|
||||
(not (equal "" sizelimit)))
|
||||
(setq arglist (nconc arglist (list (format "-z%s" sizelimit)))))
|
||||
(eval `(call-process ldap-ldapsearch-prog
|
||||
nil
|
||||
buf
|
||||
nil
|
||||
,@arglist
|
||||
,@ldap-ldapsearch-args
|
||||
,@filter))
|
||||
(apply #'call-process ldap-ldapsearch-prog
|
||||
nil buf nil
|
||||
(append arglist ldap-ldapsearch-args filter))
|
||||
(insert "\n")
|
||||
(goto-char (point-min))
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* org-faces.el (org-link): Inherit from link face.
|
||||
Suggested by Joakim Verona.
|
||||
|
||||
2010-12-11 Tassilo Horn <tassilo@member.fsf.org>
|
||||
|
||||
* org-footnote.el (org-footnote-create-definition): Place
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
;;; org-faces.el --- Face definitions for Org-mode.
|
||||
|
||||
;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Carsten Dominik <carsten at orgmode dot org>
|
||||
|
@ -247,9 +247,7 @@ column view defines special faces for each outline level. See the file
|
|||
:group 'org-faces)
|
||||
|
||||
(defface org-link
|
||||
'((((class color) (background light)) (:foreground "Purple" :underline t))
|
||||
(((class color) (background dark)) (:foreground "Cyan" :underline t))
|
||||
(t (:underline t)))
|
||||
'((t :inherit link))
|
||||
"Face for links."
|
||||
:group 'org-faces)
|
||||
|
||||
|
|
|
@ -1569,9 +1569,11 @@ Returns the compilation buffer created."
|
|||
(defvar compilation-mode-tool-bar-map
|
||||
;; When bootstrapping, tool-bar-map is not properly initialized yet,
|
||||
;; so don't do anything.
|
||||
(when (keymapp (butlast tool-bar-map))
|
||||
(let ((map (butlast (copy-keymap tool-bar-map)))
|
||||
(help (last tool-bar-map))) ;; Keep Help last in tool bar
|
||||
(when (keymapp tool-bar-map)
|
||||
(let ((map (copy-keymap tool-bar-map)))
|
||||
(define-key map [undo] nil)
|
||||
(define-key map [separator-2] nil)
|
||||
(define-key-after map [separator-compile] menu-bar-separator)
|
||||
(tool-bar-local-item
|
||||
"left-arrow" 'previous-error-no-select 'previous-error-no-select map
|
||||
:rtl "right-arrow"
|
||||
|
@ -1588,7 +1590,7 @@ Returns the compilation buffer created."
|
|||
(tool-bar-local-item
|
||||
"refresh" 'recompile 'recompile map
|
||||
:help "Restart compilation")
|
||||
(append map help))))
|
||||
map)))
|
||||
|
||||
(put 'compilation-mode 'mode-class 'special)
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
;;; idlw-help.el --- HTML Help code for IDLWAVE
|
||||
|
||||
;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
|
||||
;; 2009, 2010 Free Software Foundation, Inc.
|
||||
;; 2009, 2010, 2011 Free Software Foundation, Inc.
|
||||
;;
|
||||
;; Authors: J.D. Smith <jdsmith@as.arizona.edu>
|
||||
;; Carsten Dominik <dominik@science.uva.nl>
|
||||
|
@ -195,8 +195,7 @@ support."
|
|||
:type 'string)
|
||||
|
||||
(defface idlwave-help-link
|
||||
'((((class color)) (:foreground "Blue"))
|
||||
(t (:weight bold)))
|
||||
'((t :inherit link))
|
||||
"Face for highlighting links into IDLWAVE online help."
|
||||
:group 'idlwave-online-help)
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
44
lisp/subr.el
44
lisp/subr.el
|
@ -1,7 +1,7 @@
|
|||
;;; subr.el --- basic lisp subroutines for Emacs
|
||||
|
||||
;; Copyright (C) 1985, 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002, 2003,
|
||||
;; 2004, 2005, 2006, 2007, 2008, 2009, 2010
|
||||
;; 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
|
||||
;; Free Software Foundation, Inc.
|
||||
|
||||
;; Maintainer: FSF
|
||||
|
@ -60,7 +60,7 @@ function-definitions that `check-declare' does not recognize, e.g.
|
|||
`defstruct'.
|
||||
|
||||
To specify a value for FILEONLY without passing an argument list,
|
||||
set ARGLIST to `t'. This is necessary because `nil' means an
|
||||
set ARGLIST to t. This is necessary because nil means an
|
||||
empty argument list, rather than an unspecified one.
|
||||
|
||||
Note that for the purposes of `check-declare', this statement
|
||||
|
@ -483,6 +483,7 @@ saving keyboard macros (see `edmacro-mode')."
|
|||
(read-kbd-macro keys))
|
||||
|
||||
(defun undefined ()
|
||||
"Beep to tell the user this binding is undefined."
|
||||
(interactive)
|
||||
(ding))
|
||||
|
||||
|
@ -1599,11 +1600,7 @@ extension for a compressed format \(e.g. \".gz\") on FILE will not affect
|
|||
this name matching.
|
||||
|
||||
Alternatively, FILE can be a feature (i.e. a symbol), in which case FORM
|
||||
is evaluated whenever that feature is `provide'd. Note that although
|
||||
provide statements are usually at the end of files, this is not always
|
||||
the case (e.g., sometimes they are at the start to avoid a recursive
|
||||
load error). If your FORM should not be evaluated until the code in
|
||||
FILE has been, do not use the symbol form for FILE in such cases.
|
||||
is evaluated at the end of any file that `provide's this feature.
|
||||
|
||||
Usually FILE is just a library name like \"font-lock\" or a feature name
|
||||
like 'font-lock.
|
||||
|
@ -1612,11 +1609,27 @@ This function makes or adds to an entry on `after-load-alist'."
|
|||
;; Add this FORM into after-load-alist (regardless of whether we'll be
|
||||
;; evaluating it now).
|
||||
(let* ((regexp-or-feature
|
||||
(if (stringp file) (setq file (purecopy (load-history-regexp file))) file))
|
||||
(if (stringp file)
|
||||
(setq file (purecopy (load-history-regexp file)))
|
||||
file))
|
||||
(elt (assoc regexp-or-feature after-load-alist)))
|
||||
(unless elt
|
||||
(setq elt (list regexp-or-feature))
|
||||
(push elt after-load-alist))
|
||||
(when (symbolp regexp-or-feature)
|
||||
;; For features, the after-load-alist elements get run when `provide' is
|
||||
;; called rather than at the end of the file. So add an indirection to
|
||||
;; make sure that `form' is really run "after-load" in case the provide
|
||||
;; call happens early.
|
||||
(setq form
|
||||
`(when load-file-name
|
||||
(let ((fun (make-symbol "eval-after-load-helper")))
|
||||
(fset fun `(lambda (file)
|
||||
(if (not (equal file ',load-file-name))
|
||||
nil
|
||||
(remove-hook 'after-load-functions ',fun)
|
||||
,',form)))
|
||||
(add-hook 'after-load-functions fun)))))
|
||||
;; Add FORM to the element unless it's already there.
|
||||
(unless (member form (cdr elt))
|
||||
(nconc elt (purecopy (list form))))
|
||||
|
@ -1872,7 +1885,7 @@ This function echoes `.' for each character that the user types.
|
|||
The user ends with RET, LFD, or ESC. DEL or C-h rubs out.
|
||||
C-y yanks the current kill. C-u kills line.
|
||||
C-g quits; if `inhibit-quit' was non-nil around this function,
|
||||
then it returns nil if the user types C-g, but quit-flag remains set.
|
||||
then it returns nil if the user types C-g, but `quit-flag' remains set.
|
||||
|
||||
Once the caller uses the password, it can erase the password
|
||||
by doing (clear-string STRING)."
|
||||
|
@ -1985,7 +1998,7 @@ keyboard-quit events while waiting for a valid input."
|
|||
(unless (get-text-property 0 'face prompt)
|
||||
(setq prompt (propertize prompt 'face 'minibuffer-prompt)))
|
||||
(setq char (let ((inhibit-quit inhibit-keyboard-quit))
|
||||
(read-event prompt)))
|
||||
(read-key prompt)))
|
||||
(cond
|
||||
((not (numberp char)))
|
||||
((memq char chars)
|
||||
|
@ -2043,8 +2056,11 @@ floating point support."
|
|||
|
||||
(defun y-or-n-p (prompt &rest args)
|
||||
"Ask user a \"y or n\" question. Return t if answer is \"y\".
|
||||
The argument PROMPT is the string to display to ask the question.
|
||||
It should end in a space; `y-or-n-p' adds `(y or n) ' to it.
|
||||
The string to display to ask the question is obtained by
|
||||
formatting the string PROMPT with arguments ARGS (see `format').
|
||||
The result should end in a space; `y-or-n-p' adds \"(y or n) \"
|
||||
to it.
|
||||
|
||||
No confirmation of the answer is requested; a single character is enough.
|
||||
Also accepts Space to mean yes, or Delete to mean no. \(Actually, it uses
|
||||
the bindings in `query-replace-map'; see the documentation of that variable
|
||||
|
@ -2493,7 +2509,7 @@ Replaces `category' properties with their defined properties."
|
|||
(defvar yank-undo-function)
|
||||
|
||||
(defun insert-for-yank (string)
|
||||
"Calls `insert-for-yank-1' repetitively for each `yank-handler' segment.
|
||||
"Call `insert-for-yank-1' repetitively for each `yank-handler' segment.
|
||||
|
||||
See `insert-for-yank-1' for more details."
|
||||
(let (to)
|
||||
|
@ -3177,7 +3193,7 @@ is non-nil, start replacements at that index in STRING.
|
|||
REP is either a string used as the NEWTEXT arg of `replace-match' or a
|
||||
function. If it is a function, it is called with the actual text of each
|
||||
match, and its value is used as the replacement text. When REP is called,
|
||||
the match-data are the result of matching REGEXP against a substring
|
||||
the match data are the result of matching REGEXP against a substring
|
||||
of STRING.
|
||||
|
||||
To replace only the first match (if any), make REGEXP match up to \\'
|
||||
|
|
|
@ -254,7 +254,7 @@ holds a keymap."
|
|||
(tool-bar-add-item-from-menu 'save-buffer "save" nil
|
||||
:label "Save")
|
||||
(define-key-after (default-value 'tool-bar-map) [separator-1] menu-bar-separator)
|
||||
(tool-bar-add-item-from-menu 'undo "undo" nil :vert-only t)
|
||||
(tool-bar-add-item-from-menu 'undo "undo" nil)
|
||||
(define-key-after (default-value 'tool-bar-map) [separator-2] menu-bar-separator)
|
||||
(tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [cut])
|
||||
"cut" nil :vert-only t)
|
||||
|
@ -263,25 +263,22 @@ holds a keymap."
|
|||
(tool-bar-add-item-from-menu (lookup-key menu-bar-edit-menu [paste])
|
||||
"paste" nil :vert-only t)
|
||||
(define-key-after (default-value 'tool-bar-map) [separator-3] menu-bar-separator)
|
||||
(tool-bar-add-item-from-menu 'nonincremental-search-forward "search"
|
||||
nil :label "Search")
|
||||
(tool-bar-add-item-from-menu 'isearch-forward "search"
|
||||
nil :label "Search" :vert-only t)
|
||||
;;(tool-bar-add-item-from-menu 'ispell-buffer "spell")
|
||||
|
||||
;; There's no icon appropriate for News and we need a command rather
|
||||
;; than a lambda for Read Mail.
|
||||
;;(tool-bar-add-item-from-menu 'compose-mail "mail/compose")
|
||||
|
||||
|
||||
;; tool-bar-add-item-from-menu itself operates on
|
||||
;; (default-value 'tool-bar-map), but when we don't use that function,
|
||||
;; we must explicitly operate on the default value.
|
||||
|
||||
(let ((tool-bar-map (default-value 'tool-bar-map)))
|
||||
(tool-bar-add-item "help" (lambda ()
|
||||
(interactive)
|
||||
(popup-menu menu-bar-help-menu))
|
||||
'help
|
||||
:help "Pop up the Help menu")))
|
||||
;; Help button on a tool bar is rather non-standard...
|
||||
;; (let ((tool-bar-map (default-value 'tool-bar-map)))
|
||||
;; (tool-bar-add-item "help" (lambda ()
|
||||
;; (interactive)
|
||||
;; (popup-menu menu-bar-help-menu))
|
||||
;; 'help
|
||||
;; :help "Pop up the Help menu"))
|
||||
)
|
||||
|
||||
(if (featurep 'move-toolbar)
|
||||
(defcustom tool-bar-position 'top
|
||||
|
|
|
@ -196,7 +196,7 @@ See `run-hooks'."
|
|||
'(menu-item "Show Incoming Log" vc-log-incoming
|
||||
:help "Show a log of changes that will be received with a pull operation"))
|
||||
(define-key map [log]
|
||||
'(menu-item "Show history" vc-print-log
|
||||
'(menu-item "Show History" vc-print-log
|
||||
:help "List the change log of the current file set in a window"))
|
||||
(define-key map [rlog]
|
||||
'(menu-item "Show Top of the Tree History " vc-print-root-log
|
||||
|
@ -307,33 +307,36 @@ If BODY uses EVENT, it should be a variable,
|
|||
|
||||
(defvar vc-dir-tool-bar-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(tool-bar-local-item-from-menu 'vc-dir-find-file "open"
|
||||
map vc-dir-mode-map)
|
||||
(tool-bar-local-item "bookmark_add"
|
||||
'vc-dir-toggle-mark 'vc-dir-toggle-mark map
|
||||
:help "Toggle mark on current item"
|
||||
:label "Toggle Mark")
|
||||
(tool-bar-local-item-from-menu 'vc-dir-previous-line "left-arrow"
|
||||
map vc-dir-mode-map
|
||||
:rtl "right-arrow")
|
||||
(tool-bar-local-item-from-menu 'vc-dir-next-line "right-arrow"
|
||||
map vc-dir-mode-map
|
||||
:rtl "left-arrow")
|
||||
(tool-bar-local-item-from-menu 'find-file "new" map nil
|
||||
:label "New File" :vert-only t)
|
||||
(tool-bar-local-item-from-menu 'menu-find-file-existing "open" map nil
|
||||
:label "Open" :vert-only t)
|
||||
(tool-bar-local-item-from-menu 'dired "diropen" map nil
|
||||
:vert-only t)
|
||||
(tool-bar-local-item-from-menu 'quit-window "close" map vc-dir-mode-map
|
||||
:vert-only t)
|
||||
(tool-bar-local-item-from-menu 'vc-next-action "saveas" map
|
||||
vc-dir-mode-map :label "Commit")
|
||||
(tool-bar-local-item-from-menu 'vc-print-log "info"
|
||||
map vc-dir-mode-map)
|
||||
(tool-bar-local-item-from-menu 'revert-buffer "refresh"
|
||||
map vc-dir-mode-map)
|
||||
(tool-bar-local-item-from-menu 'nonincremental-search-forward
|
||||
"search" map nil
|
||||
:label "Search")
|
||||
(tool-bar-local-item-from-menu 'vc-dir-query-replace-regexp
|
||||
"search-replace" map vc-dir-mode-map
|
||||
:label "Replace")
|
||||
map vc-dir-mode-map
|
||||
:label "Log")
|
||||
(define-key-after map [separator-1] menu-bar-separator)
|
||||
(tool-bar-local-item-from-menu 'vc-dir-kill-dir-status-process "cancel"
|
||||
map vc-dir-mode-map
|
||||
:label "Cancel")
|
||||
(tool-bar-local-item-from-menu 'quit-window "exit"
|
||||
map vc-dir-mode-map)
|
||||
:label "Stop" :vert-only t)
|
||||
(tool-bar-local-item-from-menu 'revert-buffer "refresh"
|
||||
map vc-dir-mode-map :vert-only t)
|
||||
(define-key-after map [separator-2] menu-bar-separator)
|
||||
(tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [cut])
|
||||
"cut" map nil :vert-only t)
|
||||
(tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [copy])
|
||||
"copy" map nil :vert-only t)
|
||||
(tool-bar-local-item-from-menu (lookup-key menu-bar-edit-menu [paste])
|
||||
"paste" map nil :vert-only t)
|
||||
(define-key-after map [separator-3] menu-bar-separator)
|
||||
(tool-bar-local-item-from-menu 'isearch-forward
|
||||
"search" map nil
|
||||
:label "Search" :vert-only t)
|
||||
map))
|
||||
|
||||
(defun vc-dir-node-directory (node)
|
||||
|
|
|
@ -2162,21 +2162,13 @@ when he invoked the menu."
|
|||
|
||||
(defun widget-toggle-value-create (widget)
|
||||
"Insert text representing the `on' and `off' states."
|
||||
(if (widget-value widget)
|
||||
(let ((image (widget-get widget :on-glyph)))
|
||||
(and (display-graphic-p)
|
||||
(listp image)
|
||||
(not (eq (car image) 'image))
|
||||
(widget-put widget :on-glyph (setq image (eval image))))
|
||||
(widget-image-insert widget
|
||||
(widget-get widget :on)
|
||||
image))
|
||||
(let ((image (widget-get widget :off-glyph)))
|
||||
(and (display-graphic-p)
|
||||
(listp image)
|
||||
(not (eq (car image) 'image))
|
||||
(widget-put widget :off-glyph (setq image (eval image))))
|
||||
(widget-image-insert widget (widget-get widget :off) image))))
|
||||
(let* ((val (widget-value widget))
|
||||
(text (widget-get widget (if val :on :off)))
|
||||
(img (widget-image-find
|
||||
(widget-get widget (if val :on-glyph :off-glyph)))))
|
||||
(widget-image-insert widget (or text "")
|
||||
(if img
|
||||
(append img '(:ascent center))))))
|
||||
|
||||
(defun widget-toggle-action (widget &optional event)
|
||||
;; Toggle value.
|
||||
|
@ -2816,34 +2808,22 @@ Return an alist of (TYPE MATCH)."
|
|||
"An indicator and manipulator for hidden items.
|
||||
|
||||
The following properties have special meanings for this widget:
|
||||
:on-image Image filename or spec to display when the item is visible.
|
||||
:on-glyph Image filename or spec to display when the item is visible.
|
||||
:on Text shown if the \"on\" image is nil or cannot be displayed.
|
||||
:off-image Image filename or spec to display when the item is hidden.
|
||||
:off-glyph Image filename or spec to display when the item is hidden.
|
||||
:off Text shown if the \"off\" image is nil cannot be displayed."
|
||||
:format "%[%v%]"
|
||||
:button-prefix ""
|
||||
:button-suffix ""
|
||||
:on-image "down"
|
||||
:on-glyph "down"
|
||||
:on "Hide"
|
||||
:off-image "right"
|
||||
:off-glyph "right"
|
||||
:off "Show"
|
||||
:value-create 'widget-visibility-value-create
|
||||
:action 'widget-toggle-action
|
||||
:match (lambda (widget value) t))
|
||||
|
||||
(defun widget-visibility-value-create (widget)
|
||||
;; Insert text representing the `on' and `off' states.
|
||||
(let* ((val (widget-value widget))
|
||||
(text (widget-get widget (if val :on :off)))
|
||||
(img (widget-image-find
|
||||
(widget-get widget (if val :on-image :off-image)))))
|
||||
(widget-image-insert widget
|
||||
(if text
|
||||
(concat widget-push-button-prefix text
|
||||
widget-push-button-suffix)
|
||||
"")
|
||||
(if img
|
||||
(append img '(:ascent center))))))
|
||||
(defalias 'widget-visibility-value-create 'widget-toggle-value-create)
|
||||
|
||||
;;; The `documentation-link' Widget.
|
||||
;;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
2011-01-09 Paul Eggert <eggert@cs.ucla.edu>
|
||||
2011-01-11 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Give a name FLOAT_TO_STRING_BUFSIZE to the constant 350.
|
||||
* lisp.h (FLOAT_TO_STRING_BUFSIZE): New macro.
|
||||
|
@ -27,14 +27,50 @@
|
|||
(float_to_string): Use dtoastr rather than rolling our own code,
|
||||
which had an off-by-one bug on non-IEEE hosts.
|
||||
|
||||
2011-01-08 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Automate syncing from gnulib.
|
||||
* Makefile.in (lib): New macro.
|
||||
(ALL_CFLAGS): Add -I$(lib) -I$(srcdir)/../lib.
|
||||
($(lib)/libgnu.a): New rule.
|
||||
(temacs$(EXEEXT)): Also link $(lib)/libgnu.a.
|
||||
|
||||
2011-01-11 Tassilo Horn <tassilo@member.fsf.org>
|
||||
|
||||
* image.c (imagemagick_load_image, Finit_image_library): Free
|
||||
intermediate image after creating a MagickWand from it. Terminate
|
||||
MagickWand environment after image loading.
|
||||
|
||||
2011-01-10 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* dbusbind.c (Fdbus_register_service): Raise an error in case of
|
||||
unexpected return values.
|
||||
(Fdbus_register_method): Remove connection initialization.
|
||||
|
||||
2011-01-10 Jan Moringen <jan.moringen@uni-bielefeld.de>
|
||||
|
||||
* dbusbind.c (QCdbus_request_name_allow_replacement): New symbol;
|
||||
used by Fdbus_register_service.
|
||||
(QCdbus_request_name_replace_existing): Likewise.
|
||||
(QCdbus_request_name_do_not_queue): Likewise.
|
||||
(QCdbus_request_name_reply_primary_owner): Likewise.
|
||||
(QCdbus_request_name_reply_in_queue): Likewise.
|
||||
(QCdbus_request_name_reply_exists): Likewise.
|
||||
(QCdbus_request_name_reply_already_owner): Likewise.
|
||||
(Fdbus_register_service): New function.
|
||||
(Fdbus_register_method): Use Fdbus_register_service to do the name
|
||||
registration.
|
||||
(syms_of_dbusbind): Add symbols dbus-register-service,
|
||||
:allow-replacement, :replace-existing, :do-not-queue,
|
||||
:primary-owner, :existing, :in-queue and :already-owner.
|
||||
|
||||
2011-01-09 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* gtkutil.c (update_frame_tool_bar): Don't advance tool-bar index
|
||||
when removing extra buttons.
|
||||
|
||||
2011-01-08 Chong Yidong <cyd@stupidchicken.com>
|
||||
|
||||
* fns.c (Fyes_or_no_p): Doc fix.
|
||||
|
||||
2011-01-08 Andreas Schwab <schwab@linux-m68k.org>
|
||||
|
||||
* fns.c (Fyes_or_no_p): Add usage.
|
||||
|
|
164
src/dbusbind.c
164
src/dbusbind.c
|
@ -38,6 +38,7 @@ Lisp_Object Qdbus_call_method_asynchronously;
|
|||
Lisp_Object Qdbus_method_return_internal;
|
||||
Lisp_Object Qdbus_method_error_internal;
|
||||
Lisp_Object Qdbus_send_signal;
|
||||
Lisp_Object Qdbus_register_service;
|
||||
Lisp_Object Qdbus_register_signal;
|
||||
Lisp_Object Qdbus_register_method;
|
||||
|
||||
|
@ -50,6 +51,17 @@ Lisp_Object QCdbus_system_bus, QCdbus_session_bus;
|
|||
/* Lisp symbol for method call timeout. */
|
||||
Lisp_Object QCdbus_timeout;
|
||||
|
||||
/* Lisp symbols for name request flags. */
|
||||
Lisp_Object QCdbus_request_name_allow_replacement;
|
||||
Lisp_Object QCdbus_request_name_replace_existing;
|
||||
Lisp_Object QCdbus_request_name_do_not_queue;
|
||||
|
||||
/* Lisp symbols for name request replies. */
|
||||
Lisp_Object QCdbus_request_name_reply_primary_owner;
|
||||
Lisp_Object QCdbus_request_name_reply_in_queue;
|
||||
Lisp_Object QCdbus_request_name_reply_exists;
|
||||
Lisp_Object QCdbus_request_name_reply_already_owner;
|
||||
|
||||
/* Lisp symbols of D-Bus types. */
|
||||
Lisp_Object QCdbus_type_byte, QCdbus_type_boolean;
|
||||
Lisp_Object QCdbus_type_int16, QCdbus_type_uint16;
|
||||
|
@ -1835,6 +1847,114 @@ xd_read_queued_messages (int fd, void *data, int for_read)
|
|||
xd_in_read_queued_messages = 0;
|
||||
}
|
||||
|
||||
DEFUN ("dbus-register-service", Fdbus_register_service, Sdbus_register_service,
|
||||
2, MANY, 0,
|
||||
doc: /* Register known name SERVICE on the D-Bus BUS.
|
||||
|
||||
BUS is either a Lisp symbol, `:system' or `:session', or a string
|
||||
denoting the bus address.
|
||||
|
||||
SERVICE is the D-Bus service name that should be registered. It must
|
||||
be a known name.
|
||||
|
||||
FLAGS are keywords, which control how the service name is registered.
|
||||
The following keywords are recognized:
|
||||
|
||||
`:allow-replacement': Allow another service to become the primary
|
||||
owner if requested.
|
||||
|
||||
`:replace-existing': Request to replace the current primary owner.
|
||||
|
||||
`:do-not-queue': If we can not become the primary owner do not place
|
||||
us in the queue.
|
||||
|
||||
The function returns a keyword, indicating the result of the
|
||||
operation. One of the following keywords is returned:
|
||||
|
||||
`:primary-owner': Service has become the primary owner of the
|
||||
requested name.
|
||||
|
||||
`:in-queue': Service could not become the primary owner and has been
|
||||
placed in the queue.
|
||||
|
||||
`:exists': Service is already in the queue.
|
||||
|
||||
`:already-owner': Service is already the primary owner.
|
||||
|
||||
Example:
|
||||
|
||||
\(dbus-register-service :session dbus-service-emacs)
|
||||
|
||||
=> :primary-owner.
|
||||
|
||||
\(dbus-register-service
|
||||
:session "org.freedesktop.TextEditor"
|
||||
dbus-service-allow-replacement dbus-service-replace-existing)
|
||||
|
||||
=> :already-owner.
|
||||
|
||||
usage: (dbus-register-service BUS SERVICE &rest FLAGS) */)
|
||||
(int nargs, register Lisp_Object *args)
|
||||
{
|
||||
Lisp_Object bus, service;
|
||||
struct gcpro gcpro1, gcpro2;
|
||||
DBusConnection *connection;
|
||||
unsigned int i;
|
||||
unsigned int value;
|
||||
unsigned int flags = 0;
|
||||
int result;
|
||||
DBusError derror;
|
||||
|
||||
bus = args[0];
|
||||
service = args[1];
|
||||
|
||||
/* Check parameters. */
|
||||
CHECK_STRING (service);
|
||||
|
||||
/* Process flags. */
|
||||
for (i = 2; i < nargs; ++i) {
|
||||
value = ((EQ (args[i], QCdbus_request_name_replace_existing))
|
||||
? DBUS_NAME_FLAG_REPLACE_EXISTING
|
||||
: (EQ (args[i], QCdbus_request_name_allow_replacement))
|
||||
? DBUS_NAME_FLAG_ALLOW_REPLACEMENT
|
||||
: (EQ (args[i], QCdbus_request_name_do_not_queue))
|
||||
? DBUS_NAME_FLAG_DO_NOT_QUEUE
|
||||
: -1);
|
||||
if (value == -1)
|
||||
XD_SIGNAL2 (build_string ("Unrecognized name request flag"), args[i]);
|
||||
flags |= value;
|
||||
}
|
||||
|
||||
/* Open a connection to the bus. */
|
||||
connection = xd_initialize (bus, TRUE);
|
||||
|
||||
/* Request the known name from the bus. */
|
||||
dbus_error_init (&derror);
|
||||
result = dbus_bus_request_name (connection, SDATA (service), flags,
|
||||
&derror);
|
||||
if (dbus_error_is_set (&derror))
|
||||
XD_ERROR (derror);
|
||||
|
||||
/* Cleanup. */
|
||||
dbus_error_free (&derror);
|
||||
|
||||
/* Return object. */
|
||||
switch (result)
|
||||
{
|
||||
case DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER:
|
||||
return QCdbus_request_name_reply_primary_owner;
|
||||
case DBUS_REQUEST_NAME_REPLY_IN_QUEUE:
|
||||
return QCdbus_request_name_reply_in_queue;
|
||||
case DBUS_REQUEST_NAME_REPLY_EXISTS:
|
||||
return QCdbus_request_name_reply_exists;
|
||||
case DBUS_REQUEST_NAME_REPLY_ALREADY_OWNER:
|
||||
return QCdbus_request_name_reply_already_owner;
|
||||
default:
|
||||
/* This should not happen. */
|
||||
XD_SIGNAL2 (build_string ("Could not register service"), service);
|
||||
}
|
||||
}
|
||||
|
||||
DEFUN ("dbus-register-signal", Fdbus_register_signal, Sdbus_register_signal,
|
||||
6, MANY, 0,
|
||||
doc: /* Register for signal SIGNAL on the D-Bus BUS.
|
||||
|
@ -2011,9 +2131,8 @@ discovering the still incomplete interface.*/)
|
|||
Lisp_Object dont_register_service)
|
||||
{
|
||||
Lisp_Object key, key1, value;
|
||||
DBusConnection *connection;
|
||||
int result;
|
||||
DBusError derror;
|
||||
Lisp_Object args[2] = { bus, service };
|
||||
|
||||
/* Check parameters. */
|
||||
CHECK_STRING (service);
|
||||
|
@ -2025,21 +2144,9 @@ discovering the still incomplete interface.*/)
|
|||
/* TODO: We must check for a valid service name, otherwise there is
|
||||
a segmentation fault. */
|
||||
|
||||
/* Open a connection to the bus. */
|
||||
connection = xd_initialize (bus, TRUE);
|
||||
|
||||
/* Request the known name from the bus. We can ignore the result,
|
||||
it is set to -1 if there is an error - kind of redundancy. */
|
||||
/* Request the name. */
|
||||
if (NILP (dont_register_service))
|
||||
{
|
||||
dbus_error_init (&derror);
|
||||
result = dbus_bus_request_name (connection, SDATA (service), 0, &derror);
|
||||
if (dbus_error_is_set (&derror))
|
||||
XD_ERROR (derror);
|
||||
|
||||
/* Cleanup. */
|
||||
dbus_error_free (&derror);
|
||||
}
|
||||
Fdbus_register_service (2, args);
|
||||
|
||||
/* Create a hash table entry. We use nil for the unique name,
|
||||
because the method might be called from anybody. */
|
||||
|
@ -2091,6 +2198,10 @@ syms_of_dbusbind (void)
|
|||
staticpro (&Qdbus_send_signal);
|
||||
defsubr (&Sdbus_send_signal);
|
||||
|
||||
Qdbus_register_service = intern_c_string ("dbus-register-service");
|
||||
staticpro (&Qdbus_register_service);
|
||||
defsubr (&Sdbus_register_service);
|
||||
|
||||
Qdbus_register_signal = intern_c_string ("dbus-register-signal");
|
||||
staticpro (&Qdbus_register_signal);
|
||||
defsubr (&Sdbus_register_signal);
|
||||
|
@ -2112,6 +2223,27 @@ syms_of_dbusbind (void)
|
|||
QCdbus_session_bus = intern_c_string (":session");
|
||||
staticpro (&QCdbus_session_bus);
|
||||
|
||||
QCdbus_request_name_allow_replacement = intern_c_string (":allow-replacement");
|
||||
staticpro (&QCdbus_request_name_allow_replacement);
|
||||
|
||||
QCdbus_request_name_replace_existing = intern_c_string (":replace-existing");
|
||||
staticpro (&QCdbus_request_name_replace_existing);
|
||||
|
||||
QCdbus_request_name_do_not_queue = intern_c_string (":do-not-queue");
|
||||
staticpro (&QCdbus_request_name_do_not_queue);
|
||||
|
||||
QCdbus_request_name_reply_primary_owner = intern_c_string (":primary-owner");
|
||||
staticpro (&QCdbus_request_name_reply_primary_owner);
|
||||
|
||||
QCdbus_request_name_reply_exists = intern_c_string (":exists");
|
||||
staticpro (&QCdbus_request_name_reply_exists);
|
||||
|
||||
QCdbus_request_name_reply_in_queue = intern_c_string (":in-queue");
|
||||
staticpro (&QCdbus_request_name_reply_in_queue);
|
||||
|
||||
QCdbus_request_name_reply_already_owner = intern_c_string (":already-owner");
|
||||
staticpro (&QCdbus_request_name_reply_already_owner);
|
||||
|
||||
QCdbus_timeout = intern_c_string (":timeout");
|
||||
staticpro (&QCdbus_timeout);
|
||||
|
||||
|
|
11
src/fns.c
11
src/fns.c
|
@ -2460,10 +2460,13 @@ do_yes_or_no_p (Lisp_Object prompt)
|
|||
|
||||
DEFUN ("yes-or-no-p", Fyes_or_no_p, Syes_or_no_p, 1, MANY, 0,
|
||||
doc: /* Ask user a yes-or-no question. Return t if answer is yes.
|
||||
Takes one argument, which is the string to display to ask the question.
|
||||
It should end in a space; `yes-or-no-p' adds `(yes or no) ' to it.
|
||||
The user must confirm the answer with RET,
|
||||
and can edit it until it has been confirmed.
|
||||
The string to display to ask the question is obtained by
|
||||
formatting the string PROMPT with arguments ARGS (see `format').
|
||||
The result should end in a space; `yes-or-no-p' adds
|
||||
\"(yes or no) \" to it.
|
||||
|
||||
The user must confirm the answer with RET, and can edit it until it
|
||||
has been confirmed.
|
||||
|
||||
Under a windowing system a dialog box will be used if `last-nonmenu-event'
|
||||
is nil, and `use-dialog-box' is non-nil.
|
||||
|
|
|
@ -4439,7 +4439,7 @@ update_frame_tool_bar (FRAME_PTR f)
|
|||
/* Remove buttons not longer needed. */
|
||||
do
|
||||
{
|
||||
ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (wtoolbar), j++);
|
||||
ti = gtk_toolbar_get_nth_item (GTK_TOOLBAR (wtoolbar), j);
|
||||
if (ti)
|
||||
gtk_container_remove (GTK_CONTAINER (wtoolbar), GTK_WIDGET (ti));
|
||||
} while (ti != NULL);
|
||||
|
|
11
src/image.c
11
src/image.c
|
@ -7518,6 +7518,9 @@ imagemagick_load_image (/* Pointer to emacs frame structure. */
|
|||
image. Interface :index is same as for GIF. First we "ping" the
|
||||
image to see how many sub-images it contains. Pinging is faster
|
||||
than loading the image to find out things about it. */
|
||||
|
||||
/* MagickWandGenesis() initializes the imagemagick library. */
|
||||
MagickWandGenesis ();
|
||||
image = image_spec_value (img->spec, QCindex, NULL);
|
||||
ino = INTEGERP (image) ? XFASTINT (image) : 0;
|
||||
ping_wand = NewMagickWand ();
|
||||
|
@ -7546,6 +7549,7 @@ imagemagick_load_image (/* Pointer to emacs frame structure. */
|
|||
img->data.lisp_val));
|
||||
|
||||
DestroyMagickWand (ping_wand);
|
||||
|
||||
/* Now, after pinging, we know how many images are inside the
|
||||
file. If its not a bundle, just one. */
|
||||
|
||||
|
@ -7563,6 +7567,7 @@ imagemagick_load_image (/* Pointer to emacs frame structure. */
|
|||
if (im_image != NULL)
|
||||
{
|
||||
image_wand = NewMagickWandFromImage (im_image);
|
||||
DestroyImage(im_image);
|
||||
status = MagickTrue;
|
||||
}
|
||||
else
|
||||
|
@ -7573,7 +7578,7 @@ imagemagick_load_image (/* Pointer to emacs frame structure. */
|
|||
image_wand = NewMagickWand ();
|
||||
status = MagickReadImageBlob (image_wand, contents, size);
|
||||
}
|
||||
image_error ("im read failed", Qnil, Qnil);
|
||||
|
||||
if (status == MagickFalse) goto imagemagick_error;
|
||||
|
||||
/* If width and/or height is set in the display spec assume we want
|
||||
|
@ -7802,11 +7807,13 @@ imagemagick_load_image (/* Pointer to emacs frame structure. */
|
|||
|
||||
/* Final cleanup. image_wand should be the only resource left. */
|
||||
DestroyMagickWand (image_wand);
|
||||
MagickWandTerminus ();
|
||||
|
||||
return 1;
|
||||
|
||||
imagemagick_error:
|
||||
DestroyMagickWand (image_wand);
|
||||
MagickWandTerminus ();
|
||||
/* TODO more cleanup. */
|
||||
image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil);
|
||||
return 0;
|
||||
|
@ -8678,8 +8685,6 @@ of `dynamic-library-alist', which see). */)
|
|||
#if defined (HAVE_IMAGEMAGICK)
|
||||
if (EQ (type, Qimagemagick))
|
||||
{
|
||||
/* MagickWandGenesis() initializes the imagemagick library. */
|
||||
MagickWandGenesis ();
|
||||
return CHECK_LIB_AVAILABLE (&imagemagick_type, init_imagemagick_functions,
|
||||
libraries);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue