Commit 3aff2f57 authored by Kenichi Handa's avatar Kenichi Handa
Browse files

merge trunk

parents 0ca754d0 e8dd0787
2013-09-07 Paul Eggert <eggert@cs.ucla.edu>
Port --without-x --enable-gcc-warnings to Fedora 19.
* configure.ac (WERROR_CFLAGS): Omit redundant use of
-Wmissing-field-initializers, -Wswitch, -Wtype-limits,
-Wunused-parameter. If there is no window system, also omit
-Wsuggest-attribute=const and -Wsuggest-attribute=noreturn; this
is needed for Fedora 19.
2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
Make --without-x compatible with --enable-gcc-warnings.
......
......@@ -7656,6 +7656,13 @@ fi
# The following line should be removable at some point.
nw="$nw -Wsuggest-attribute=pure"
 
# This part is merely for shortening the command line,
# since -Wno-FOO needs to be added below regardless.
nw="$nw -Wmissing-field-initializers"
nw="$nw -Wswitch"
nw="$nw -Wtype-limits"
nw="$nw -Wunused-parameter"
# clang is unduly picky about some things.
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is clang" >&5
$as_echo_n "checking whether the compiler is clang... " >&6; }
......@@ -10342,6 +10349,25 @@ fi
 
if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
# Too many warnings for now.
nw=
nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=noreturn"
gl_warn_set=
set x $WARN_CFLAGS; shift
for gl_warn_item
do
case " $nw " in
*" $gl_warn_item "*)
;;
*)
gl_warn_set="$gl_warn_set $gl_warn_item"
;;
esac
done
WARN_CFLAGS=$gl_warn_set
 
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler handles -Wno-unused-variable" >&5
$as_echo_n "checking whether C compiler handles -Wno-unused-variable... " >&6; }
......
......@@ -826,6 +826,13 @@ else
# The following line should be removable at some point.
nw="$nw -Wsuggest-attribute=pure"
# This part is merely for shortening the command line,
# since -Wno-FOO needs to be added below regardless.
nw="$nw -Wmissing-field-initializers"
nw="$nw -Wswitch"
nw="$nw -Wtype-limits"
nw="$nw -Wunused-parameter"
# clang is unduly picky about some things.
AC_CACHE_CHECK([whether the compiler is clang], [emacs_cv_clang],
[AC_COMPILE_IFELSE(
......@@ -1777,6 +1784,11 @@ fi
if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
# Too many warnings for now.
nw=
nw="$nw -Wsuggest-attribute=const"
nw="$nw -Wsuggest-attribute=noreturn"
gl_MANYWARN_COMPLEMENT([WARN_CFLAGS], [$WARN_CFLAGS], [$nw])
gl_WARN_ADD([-Wno-unused-variable])
gl_WARN_ADD([-Wno-unused-but-set-variable])
gl_WARN_ADD([-Wno-unused-but-set-parameter])
......
2013-09-06 Michael Albinus <michael.albinus@gmx.de>
* tramp.texi (Alternative Syntax): Remove chapter.
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
* Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
......
......@@ -225,7 +225,6 @@ Configuring @value{tramp} for use
Using @value{tramp}
* Filename Syntax:: @value{tramp} filename conventions.
* Alternative Syntax:: URL-like filename syntax.
* Filename completion:: Filename completion.
* Ad-hoc multi-hops:: Declaring multiple hops in the file name.
* Remote processes:: Integration with other @value{emacsname} packages.
......@@ -2356,7 +2355,6 @@ minute you have already forgotten that you hit that key!
@menu
* Filename Syntax:: @value{tramp} filename conventions.
* Alternative Syntax:: URL-like filename syntax.
* Filename completion:: Filename completion.
* Ad-hoc multi-hops:: Declaring multiple hops in the file name.
* Remote processes:: Integration with other @value{emacsname} packages.
......@@ -2453,46 +2451,6 @@ by adding @file{#<port>} to the host name, like in @file{@trampfn{ssh,
daniel, melancholia#42, .emacs}}.
@node Alternative Syntax
@section URL-like filename syntax
@cindex filename syntax
@cindex filename examples
Additionally to the syntax described in the previous chapter, it is
possible to use a URL-like syntax for @value{tramp}. This can be
switched on by customizing the variable @code{tramp-syntax}. Please
note that this feature is experimental for the time being.
The variable @code{tramp-syntax} must be set before requiring @value{tramp}:
@lisp
(setq tramp-syntax 'url)
(require 'tramp)
@end lisp
Then, a @value{tramp} filename would look like this:
@file{/@var{method}://@var{user}@@@var{machine}:@var{port}/@var{path/to.file}}.
@file{/@var{method}://} is mandatory, all other parts are optional.
@file{:@var{port}} is useful for methods only who support this.
The last example from the previous section would look like this:
@file{/ssh://daniel@@melancholia/.emacs}.
For the time being, @code{tramp-syntax} can have the following values:
@itemize @w{}
@ifset emacs
@item @code{ftp}---That is the default syntax
@item @code{url}---URL-like syntax
@end ifset
@ifset xemacs
@item @code{sep}---That is the default syntax
@item @code{url}---URL-like syntax
@item @code{ftp}---EFS-like syntax
@end ifset
@end itemize
@node Filename completion
@section Filename completion
@cindex filename completion
......
......@@ -332,6 +332,10 @@ This is useful to avoid a query when you have no key for that name.
*** key bindings to navigate through and select the completions.
*** The icomplete-separator is customizable, and its default has changed.
*** Removed icomplete-show-key-bindings.
*** Icomplete-mode by defaults applies to all forms of minibuffer completion.
(setq icomplete-with-completion-tables '(internal-complete-buffer))
will revert to the old behavior.
** Ido
*** Ido has a manual now.
......@@ -461,6 +465,8 @@ todo-mode.el has been made obsolete and renamed otodo-mode.el.
** Tramp
*** The experimental url syntax for remote file names is withdrawn.
+++
*** New connection method "adb", which allows to access Android
devices by the Android Debug Bridge. The variable `tramp-adb-program'
......@@ -754,6 +760,11 @@ used in place of the 9th element of `file-attributes'.
`preserve-extended-attributes' as it now handles both SELinux context
and ACL entries.
** The `common-substring' argument of display-completion-list is obsolete.
Either use `completion-all-completions' which already returns highlighted
strings (including for partial or substring completion) or call
`completion-hilit-commonality' to add the highlight.
** Changes to the Emacs Lisp Coding Conventions in Emacs 24.4
*** The package descriptor and name of global variables, constants,
......
......@@ -3,6 +3,121 @@
* international/characters.el: Set category "^" (Combining) for
more characters.
2013-09-07 Alan Mackenzie <acm@muc.de>
Correctly fontify Java class constructors.
* progmodes/cc-langs.el (c-type-decl-suffix-key): Now matches ")"
in Java Mode.
(c-recognize-typeless-decls): Set the Java value to t.
* progmodes/cc-engine.el (c-forward-decl-or-cast-1): While
handling a "(", add a check for, effectively, Java, and handle a
"typeless" declaration there.
2013-09-07 Roland Winkler <winkler@gnu.org>
* textmodes/bibtex.el (bibtex-biblatex-entry-alist): Add optional
field subtitle for entry type book.
2013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* minibuffer.el: Make minibuffer-complete call completion-in-region
rather than other way around.
(completion--some, completion-pcm--find-all-completions):
Don't delay signals when debugging.
(minibuffer-completion-contents): Beware fields within the
minibuffer contents.
(completion-all-sorted-completions): Use defvar-local.
(completion--do-completion, completion--cache-all-sorted-completions)
(completion-all-sorted-completions, minibuffer-force-complete):
Add args `beg' and `end'.
(completion--in-region-1): New fun, extracted from minibuffer-complete.
(minibuffer-complete): Use completion-in-region.
(completion-complete-and-exit): New fun, extracted from
minibuffer-complete-and-exit.
(minibuffer-complete-and-exit): Use it.
(completion--complete-and-exit): Rename from
minibuffer--complete-and-exit.
(completion-in-region--single-word): New function, extracted from
minibuffer-complete-word.
(minibuffer-complete-word): Use it.
(display-completion-list): Make `common-substring' argument obsolete.
(completion--in-region): Call completion--in-region-1 instead of
minibuffer-complete.
(completion-help-at-point): Pass boundaries to
minibuffer-completion-help as args rather than via an overlay.
(completion-pcm--string->pattern): Use `any-delim'.
(completion-pcm--optimize-pattern): New function.
(completion-pcm--pattern->regex): Handle `any-delim'.
* icomplete.el (icomplete-forward-completions)
(icomplete-backward-completions, icomplete-completions):
Adjust calls to completion-all-sorted-completions and
completion--cache-all-sorted-completions.
(icomplete-with-completion-tables): Default to t.
* emacs-lisp/crm.el (crm--current-element): Rename from
crm--select-current-element. Don't put an overlay but return the
boundaries instead.
(crm--completion-command): Take two new args to bind to the boundaries.
(crm-completion-help): Adjust accordingly.
(crm-complete): Use completion-in-region.
(crm-complete-word): Use completion-in-region--single-word.
(crm-complete-and-exit): Use completion-complete-and-exit.
2013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* dired-x.el (dired-mark-sexp): Bind the vars lexically rather
than dynamically.
2013-09-06 Juri Linkov <juri@jurta.org>
* info.el (Info-display-images-node): When image file doesn't exist
display text version of the image if it's provided in the Info file.
Otherwise, display the location of missing image from SRC attribute.
Add help-echo text property from ALT attribute. (Bug#15279)
2013-09-06 Stefan Monnier <monnier@iro.umontreal.ca>
* abbrev.el (edit-abbrevs-mode-map): Rename from edit-abbrevs-map.
(edit-abbrevs-mode): Use define-derived-mode.
* epa.el (epa--encode-coding-string, epa--decode-coding-string)
(epa--select-safe-coding-system, epa--derived-mode-p): Make it obvious
that it's defined.
(epa-key-list-mode, epa-key-mode, epa-info-mode):
Use define-derived-mode.
* epg.el (epg-start-encrypt): Minor CSE simplification.
2013-09-06 William Xu <william.xwl@gmail.com>
* arc-mode.el: Add support for 7za (bug#15264).
(archive-7z-program): New var.
(archive-zip-extract, archive-zip-expunge, archive-zip-update)
(archive-zip-update-case, archive-7z-extract, archive-7z-expunge)
(archive-7z-update, archive-zip-extract, archive-7z-summarize): Use it.
2013-09-06 Michael Albinus <michael.albinus@gmx.de>
Remove URL syntax.
* net/tramp.el (tramp-syntax, tramp-prefix-format)
(tramp-postfix-method-format, tramp-prefix-ipv6-format)
(tramp-postfix-ipv6-format, tramp-prefix-port-format)
(tramp-postfix-host-format, tramp-file-name-regexp)
(tramp-completion-file-name-regexp)
(tramp-completion-dissect-file-name)
(tramp-handle-substitute-in-file-name): Remove 'url case.
(tramp-file-name-regexp-url)
(tramp-completion-file-name-regexp-url): Remove constants.
2013-09-06 Glenn Morris <rgm@gnu.org>
* replace.el (replace-string): Doc fix re start/end. (Bug#15275)
2013-09-05 Dmitry Gutov <dgutov@yandex.ru>
* progmodes/ruby-mode.el (ruby-font-lock-keywords): Move "Perl-ish
keywords" below "here-doc beginnings" (Bug#15270).
2013-09-05 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (pop): Use `car-safe'.
......@@ -64,6 +179,30 @@
2013-09-04 Stefan Monnier <monnier@iro.umontreal.ca>
* vc/vc-dispatcher.el (vc-run-delayed): New macro.
(vc-do-command, vc-set-async-update):
* vc/vc-mtn.el (vc-mtn-dir-status):
* vc/vc-hg.el (vc-hg-dir-status, vc-hg-dir-status-files)
(vc-hg-pull, vc-hg-merge-branch):
* vc/vc-git.el (vc-git-dir-status-goto-stage, vc-git-pull)
(vc-git-merge-branch):
* vc/vc-cvs.el (vc-cvs-print-log, vc-cvs-dir-status)
(vc-cvs-dir-status-files):
* vc/vc-bzr.el (vc-bzr-pull, vc-bzr-merge-branch, vc-bzr-dir-status)
(vc-bzr-dir-status-files):
* vc/vc-arch.el (vc-arch-dir-status): Use vc-run-delayed.
* vc/vc-annotate.el: Use lexical-binding.
(vc-annotate-display-select, vc-annotate): Use vc-run-delayed.
(vc-sentinel-movepoint): Declare.
(vc-annotate): Don't use `goto-line'.
* vc/vc.el (vc-diff-internal): Prefer a closure to `(lambda...).
(vc-diff-internal, vc-log-internal-common): Use vc-run-delayed.
(vc-sentinel-movepoint): Declare.
* vc/vc-svn.el: Use lexical-binding.
(vc-svn-dir-status, vc-svn-dir-status-files): Use vc-run-delayed.
* vc/vc-sccs.el:
* vc/vc-rcs.el: Use lexical-binding.
* autorevert.el (auto-revert-notify-handler): Explicitly ignore
`deleted'. Don't drop errors silently.
......
......@@ -67,13 +67,15 @@ be replaced by its expansion."
(put 'abbrev-mode 'safe-local-variable 'booleanp)
(defvar edit-abbrevs-map
(defvar edit-abbrevs-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-x\C-s" 'abbrev-edit-save-buffer)
(define-key map "\C-x\C-w" 'abbrev-edit-save-to-file)
(define-key map "\C-c\C-c" 'edit-abbrevs-redefine)
map)
"Keymap used in `edit-abbrevs'.")
(define-obsolete-variable-alias 'edit-abbrevs-map
'edit-abbrevs-mode-map "24.4")
(defun kill-all-abbrevs ()
"Undefine all defined abbrevs."
......@@ -144,16 +146,6 @@ Otherwise display all abbrevs."
(set-buffer-modified-p nil)
(current-buffer))))
(defun edit-abbrevs-mode ()
"Major mode for editing the list of abbrev definitions.
\\{edit-abbrevs-map}"
(interactive)
(kill-all-local-variables)
(setq major-mode 'edit-abbrevs-mode)
(setq mode-name "Edit-Abbrevs")
(use-local-map edit-abbrevs-map)
(run-mode-hooks 'edit-abbrevs-mode-hook))
(defun edit-abbrevs ()
"Alter abbrev definitions by editing a list of them.
Selects a buffer containing a list of abbrev definitions with
......@@ -1013,6 +1005,11 @@ SORTFUN is passed to `sort' to change the default ordering."
(sort entries (lambda (x y)
(funcall sortfun (nth 2 x) (nth 2 y)))))))
;; Keep it after define-abbrev-table, since define-derived-mode uses
;; define-abbrev-table.
(define-derived-mode edit-abbrevs-mode special-mode "Edit-Abbrevs"
"Major mode for editing the list of abbrev definitions.")
(provide 'abbrev)
;;; abbrev.el ends here
......@@ -218,9 +218,14 @@ Archive and member name will be added."
;; ------------------------------
;; Zip archive configuration
(defvar archive-7z-program (let ((7z (or (executable-find "7z")
(executable-find "7za"))))
(when 7z
(file-name-nondirectory 7z))))
(defcustom archive-zip-extract
(cond ((executable-find "unzip") '("unzip" "-qq" "-c"))
((executable-find "7z") '("7z" "x" "-so"))
(archive-7z-program `(,archive-7z-program "x" "-so"))
((executable-find "pkunzip") '("pkunzip" "-e" "-o-"))
(t '("unzip" "-qq" "-c")))
"Program and its options to run in order to extract a zip file member.
......@@ -239,7 +244,7 @@ be added."
(defcustom archive-zip-expunge
(cond ((executable-find "zip") '("zip" "-d" "-q"))
((executable-find "7z") '("7z" "d"))
(archive-7z-program `(,archive-7z-program "d"))
((executable-find "pkzip") '("pkzip" "-d"))
(t '("zip" "-d" "-q")))
"Program and its options to run in order to delete zip file members.
......@@ -252,7 +257,7 @@ Archive and member names will be added."
(defcustom archive-zip-update
(cond ((executable-find "zip") '("zip" "-q"))
((executable-find "7z") '("7z" "u"))
(archive-7z-program `(,archive-7z-program "u"))
((executable-find "pkzip") '("pkzip" "-u" "-P"))
(t '("zip" "-q")))
"Program and its options to run in order to update a zip file member.
......@@ -266,7 +271,7 @@ file. Archive and member name will be added."
(defcustom archive-zip-update-case
(cond ((executable-find "zip") '("zip" "-q" "-k"))
((executable-find "7z") '("7z" "u"))
(archive-7z-program `(,archive-7z-program "u"))
((executable-find "pkzip") '("pkzip" "-u" "-P"))
(t '("zip" "-q" "-k")))
"Program and its options to run in order to update a case fiddled zip member.
......@@ -321,7 +326,7 @@ Archive and member name will be added."
;; 7z archive configuration
(defcustom archive-7z-extract
'("7z" "x" "-so")
`(,archive-7z-program "x" "-so")
"Program and its options to run in order to extract a 7z file member.
Extraction should happen to standard output. Archive and member name will
be added."
......@@ -333,7 +338,7 @@ be added."
:group 'archive-7z)
(defcustom archive-7z-expunge
'("7z" "d")
`(,archive-7z-program "d")
"Program and its options to run in order to delete 7z file members.
Archive and member names will be added."
:version "24.1"
......@@ -344,7 +349,7 @@ Archive and member names will be added."
:group 'archive-7z)
(defcustom archive-7z-update
'("7z" "u")
`(,archive-7z-program "u")
"Program and its options to run in order to update a 7z file member.
Options should ensure that specified directory will be put into the 7z
file. Archive and member name will be added."
......@@ -1864,7 +1869,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
(cond
((member-ignore-case (car archive-zip-extract) '("pkunzip" "pkzip"))
(archive-*-extract archive name archive-zip-extract))
((equal (car archive-zip-extract) "7z")
((equal (car archive-zip-extract) archive-7z-program)
(let ((archive-7z-extract archive-zip-extract))
(archive-7z-extract archive name)))
(t
......@@ -2088,7 +2093,7 @@ This doesn't recover lost files, it just undoes changes in the buffer itself."
(file buffer-file-name)
(files ()))
(with-temp-buffer
(call-process "7z" nil t nil "l" "-slt" file)
(call-process archive-7z-program nil t nil "l" "-slt" file)
(goto-char (point-min))
;; Four dashes start the meta info section that should be skipped.
;; Archive members start with more than four dashes.
......
;;; dired-x.el --- extra Dired functionality
;;; dired-x.el --- extra Dired functionality -*- lexical-binding:t -*-
;; Copyright (C) 1993-1994, 1997, 2001-2013 Free Software Foundation,
;; Inc.
......@@ -1185,7 +1185,7 @@ results in
(setq count (1+ count)
start (1+ start)))
;; ... and prepend a "../" for each slash found:
(dotimes (n count)
(dotimes (_ count)
(setq name1 (concat "../" name1)))))
(make-symbolic-link
(directory-file-name name1) ; must not link to foo/
......@@ -1397,22 +1397,6 @@ Considers buffers closer to the car of `buffer-list' to be more recent."
;; Does anyone use this? - lrd 6/29/93.
;; Apparently people do use it. - lrd 12/22/97.
(with-no-warnings
;; Warnings are suppressed to avoid "global/dynamic var `X' lacks a prefix".
;; This is unbearably ugly, but not more than having global variables
;; named size, time, name or s, however practical it can be while writing
;; `dired-mark-sexp' predicates.
(defvar inode)
(defvar s)
(defvar mode)
(defvar nlink)
(defvar uid)
(defvar gid)
(defvar size)
(defvar time)
(defvar name)
(defvar sym))
(defun dired-mark-sexp (predicate &optional unflag-p)
"Mark files for which PREDICATE returns non-nil.
With a prefix arg, unmark or unflag those files instead.
......@@ -1505,7 +1489,17 @@ to mark all zero length files."
(line-end-position))
""))
t)
(eval predicate)))
(eval predicate
`((inode . ,inode)
(s . ,s)
(mode . ,mode)
(nlink . ,nlink)
(uid . ,uid)
(gid . ,gid)
(size . ,size)
(time . ,time)
(name . ,name)
(sym . ,sym)))))
(format "'%s file" predicate))))
......
......@@ -4352,7 +4352,7 @@ instead.
;;;***
;;;### (autoloads nil "dired-x" "dired-x.el" "130484d4c94bb9929c210774f9e475f5")
;;;### (autoloads nil "dired-x" "dired-x.el" "1bf4009b81e55bf51947bc87b2c82994")
;;; Generated autoloads from dired-x.el
(autoload 'dired-jump "dired-x" "\
......
......@@ -157,33 +157,32 @@ Functions'."
predicate
flag)))
(defun crm--select-current-element ()
(defun crm--current-element ()
"Parse the minibuffer to find the current element.
Place an overlay on the element, with a `field' property, and return it."
(let* ((bob (minibuffer-prompt-end))
(start (save-excursion
Return the element's boundaries as (START . END)."
(let ((bob (minibuffer-prompt-end)))
(cons (save-excursion
(if (re-search-backward crm-separator bob t)
(match-end 0)
bob)))
(end (save-excursion
bob))
(save-excursion
(if (re-search-forward crm-separator nil t)
(match-beginning 0)
(point-max))))
(ol (make-overlay start end nil nil t)))
(overlay-put ol 'field (make-symbol "crm"))
ol))
(defmacro crm--completion-command (command)
"Make COMMAND a completion command for `completing-read-multiple'."
`(let ((ol (crm--select-current-element)))
(unwind-protect
,command
(delete-overlay ol))))
(point-max))))))
(defmacro crm--completion-command (beg end &rest body)
"Run BODY with BEG and END bound to the current element's boundaries."
(declare (indent 2) (debug (sexp sexp &rest body)))
`(let* ((crm--boundaries (crm--current-element))
(,beg (car crm--boundaries))
(,end (cdr crm--boundaries)))
,@body))
(defun crm-completion-help ()
"Display a list of possible completions of the current minibuffer element."
(interactive)
(crm--completion-command (minibuffer-completion-help))
(crm--completion-command beg end
(minibuffer-completion-help beg end))
nil)
(defun crm-complete ()
......@@ -192,13 +191,18 @@ If no characters can be completed, display a list of possible completions.
Return t if the current element is now a valid match; otherwise return nil."
(interactive)
(crm--completion-command (minibuffer-complete)))
(crm--completion-command beg end
(completion-in-region beg end
minibuffer-completion-table
minibuffer-completion-predicate)))
(defun crm-complete-word ()
"Complete the current element at most a single word.
Like `minibuffer-complete-word' but for `completing-read-multiple'."
(interactive)
(crm--completion-command (minibuffer-complete-word)))
(crm--completion-command beg end
(completion-in-region--single-word
beg end minibuffer-completion-table minibuffer-completion-predicate)))
(defun crm-complete-and-exit ()
"If all of the minibuffer elements are valid completions then exit.
......@@ -211,16 +215,14 @@ This function is modeled after `minibuffer-complete-and-exit'."
(goto-char (minibuffer-prompt-end))
(while
(and doexit
(let ((ol (crm--select-current-element)))
(goto-char (overlay-end ol))
(unwind-protect
(catch 'exit
(minibuffer-complete-and-exit)
;; This did not throw `exit', so there was a problem.
(setq doexit nil))
(goto-char (overlay-end ol))
(delete-overlay ol))
(not (eobp)))
(crm--completion-command beg end
(let ((end (copy-marker end t)))
(goto-char end)
(setq doexit nil)
(completion-complete-and-exit beg end
(lambda () (setq doexit t)))
(goto-char end)
(not (eobp))))
(looking-at crm-separator))
;; Skip to the next element.
(goto-char (match-end 0)))
......
......@@ -268,62 +268,40 @@ You should bind this variable with `let', but do not set it globally.")
(epg-sub-key-id (car (epg-key-sub-key-list
(widget-get widget :value))))))
(eval-and-compile
(if (fboundp 'encode-coding-string)
(defalias 'epa--encode-coding-string 'encode-coding-string)
(defalias 'epa--encode-coding-string 'identity)))
(defalias 'epa--encode-coding-string