merge trunk
This commit is contained in:
commit
56d968a488
153 changed files with 2027 additions and 1711 deletions
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
|||
2013-09-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (LDFLAGS_NOCOMBRELOC): New variable.
|
||||
(LDFLAGS): Move nocombreloc option from here...
|
||||
(LD_SWITCH_SYSTEM_TEMACS): ... to here.
|
||||
|
||||
2013-09-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* configure.ac (--without-compress-install):
|
||||
Rename from --without-compress-info. (Bug#9789)
|
||||
(GZIP_INFO): Remove.
|
||||
(GZIP_PROG): Allow --without-compress-install to disable it.
|
||||
* Makefile.in (GZIP_INFO): Remove all references.
|
||||
|
||||
* info/dir: Tweak emacs-gnutls entry.
|
||||
|
||||
2013-09-07 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Port --without-x --enable-gcc-warnings to Fedora 19.
|
||||
|
|
10
Makefile.in
10
Makefile.in
|
@ -259,8 +259,6 @@ LN_S_FILEONLY = @LN_S_FILEONLY@
|
|||
|
||||
# We use gzip to compress installed .el files.
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
# If non-nil, gzip the installed Info and man pages.
|
||||
GZIP_INFO = @GZIP_INFO@
|
||||
|
||||
# ============================= Targets ==============================
|
||||
|
||||
|
@ -662,7 +660,7 @@ install-info: info
|
|||
for f in `ls $$elt $$elt-[1-9] $$elt-[1-9][0-9] 2>/dev/null`; do \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${srcdir}/info/$$f $(DESTDIR)${infodir}/$$f); \
|
||||
( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \
|
||||
[ -n "${GZIP_PROG}" ] || continue ; \
|
||||
rm -f $(DESTDIR)${infodir}/$$f.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${infodir}/$$f; \
|
||||
done; \
|
||||
|
@ -684,7 +682,7 @@ install-man:
|
|||
dest=`echo "$${page}" | sed -e 's/\.1$$//' -e '$(TRANSFORM)'`.1; \
|
||||
(cd $${thisdir}; \
|
||||
${INSTALL_DATA} ${mansrcdir}/$${page} $(DESTDIR)${man1dir}/$${dest}); \
|
||||
( [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ] ) || continue ; \
|
||||
[ -n "${GZIP_PROG}" ] || continue ; \
|
||||
rm -f $(DESTDIR)${man1dir}/$${dest}.gz; \
|
||||
${GZIP_PROG} -9n $(DESTDIR)${man1dir}/$${dest} || true; \
|
||||
done
|
||||
|
@ -754,12 +752,12 @@ uninstall: uninstall-$(NTDIR) uninstall-doc
|
|||
for elt in ${INFO_NONMISC} $${info_misc}; do \
|
||||
(cd $${thisdir}; \
|
||||
$(INSTALL_INFO) --remove --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
|
||||
if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
if [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
rm -f $$elt$$ext $$elt-[1-9]$$ext $$elt-[1-9][0-9]$$ext; \
|
||||
done; \
|
||||
fi)
|
||||
(if [ -n "${GZIP_INFO}" ] && [ -n "${GZIP_PROG}" ]; then \
|
||||
(if [ -n "${GZIP_PROG}" ]; then \
|
||||
ext=.gz; else ext=; fi; \
|
||||
if cd ${mansrcdir}; then \
|
||||
for page in *.1; do \
|
||||
|
|
|
@ -677,7 +677,6 @@ GSETTINGS_LIBS = @GSETTINGS_LIBS@
|
|||
GTK_CFLAGS = @GTK_CFLAGS@
|
||||
GTK_LIBS = @GTK_LIBS@
|
||||
GTK_OBJ = @GTK_OBJ@
|
||||
GZIP_INFO = @GZIP_INFO@
|
||||
GZIP_PROG = @GZIP_PROG@
|
||||
HAVE_ALPHASORT = @HAVE_ALPHASORT@
|
||||
HAVE_ATOLL = @HAVE_ATOLL@
|
||||
|
|
37
autogen/configure
vendored
37
autogen/configure
vendored
|
@ -1442,7 +1442,6 @@ build_vendor
|
|||
build_cpu
|
||||
build
|
||||
PROFILING_CFLAGS
|
||||
GZIP_INFO
|
||||
cache_file
|
||||
am__untar
|
||||
am__tar
|
||||
|
@ -1545,7 +1544,7 @@ with_gnutls
|
|||
with_zlib
|
||||
with_file_notification
|
||||
with_makeinfo
|
||||
with_compress_info
|
||||
with_compress_install
|
||||
with_pkg_config_prog
|
||||
with_gameuser
|
||||
with_gnustep_conf
|
||||
|
@ -2278,7 +2277,9 @@ Optional Packages:
|
|||
use a file notification library (LIB one of: yes,
|
||||
gfile, inotify, w32, no)
|
||||
--without-makeinfo don't require makeinfo for building manuals
|
||||
--without-compress-info don't compress the installed Info pages
|
||||
--without-compress-install
|
||||
don't compress some files (.el, .info, etc.) when
|
||||
installing. Equivalent to: make GZIP_PROG= install
|
||||
--with-pkg-config-prog=FILENAME
|
||||
file name of pkg-config for finding GTK and librsvg
|
||||
--with-gameuser=USER user for shared game score files
|
||||
|
@ -4429,17 +4430,11 @@ fi
|
|||
## This is an option because I do not know if all info/man support
|
||||
## compressed files, nor how to test if they do so.
|
||||
|
||||
# Check whether --with-compress-info was given.
|
||||
if test "${with_compress_info+set}" = set; then :
|
||||
withval=$with_compress_info;
|
||||
# Check whether --with-compress-install was given.
|
||||
if test "${with_compress_install+set}" = set; then :
|
||||
withval=$with_compress_install;
|
||||
else
|
||||
with_compress_info=$with_features
|
||||
fi
|
||||
|
||||
if test $with_compress_info = yes; then
|
||||
GZIP_INFO=yes
|
||||
else
|
||||
GZIP_INFO=
|
||||
with_compress_install=$with_features
|
||||
fi
|
||||
|
||||
|
||||
|
@ -8618,6 +8613,9 @@ fi
|
|||
|
||||
|
||||
|
||||
test $with_compress_install != yes && test -n "$GZIP_PROG" && \
|
||||
GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)"
|
||||
|
||||
if test $opsys = gnu-linux; then
|
||||
# Extract the first word of "paxctl", so it can be a program name with args.
|
||||
set dummy paxctl; ac_word=$2
|
||||
|
@ -8781,13 +8779,15 @@ else
|
|||
fi
|
||||
|
||||
|
||||
late_LDFLAGS=$LDFLAGS
|
||||
late_LDFLAGS="$LDFLAGS"
|
||||
if test x$GCC = xyes; then
|
||||
LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
|
||||
LDFLAGS_NOCOMBRELOC="-Wl,-znocombreloc"
|
||||
else
|
||||
LDFLAGS="$LDFLAGS -znocombreloc"
|
||||
LDFLAGS_NOCOMBRELOC="-znocombreloc"
|
||||
fi
|
||||
|
||||
LDFLAGS="$LDFLAGS $LDFLAGS_NOCOMBRELOC"
|
||||
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -znocombreloc" >&5
|
||||
$as_echo_n "checking for -znocombreloc... " >&6; }
|
||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||
|
@ -8805,13 +8805,14 @@ if ac_fn_c_try_link "$LINENO"; then :
|
|||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
|
||||
$as_echo "yes" >&6; }
|
||||
else
|
||||
LDFLAGS=$late_LDFLAGS
|
||||
LDFLAGS_NOCOMBRELOC=
|
||||
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
|
||||
$as_echo "no" >&6; }
|
||||
fi
|
||||
rm -f core conftest.err conftest.$ac_objext \
|
||||
conftest$ac_exeext conftest.$ac_ext
|
||||
|
||||
LDFLAGS="$late_LDFLAGS"
|
||||
|
||||
test "x$CANNOT_DUMP" = "x" && CANNOT_DUMP=no
|
||||
case "$opsys" in
|
||||
|
@ -29051,6 +29052,8 @@ if test x$ac_enable_profiling != x ; then
|
|||
esac
|
||||
fi
|
||||
|
||||
LD_SWITCH_SYSTEM_TEMACS="$LDFLAGS_NOCOMBRELOC $LD_SWITCH_SYSTEM_TEMACS"
|
||||
|
||||
|
||||
|
||||
## MinGW-specific post-link processing of temacs.
|
||||
|
|
34
configure.ac
34
configure.ac
|
@ -266,13 +266,9 @@ AC_SUBST(cache_file)
|
|||
|
||||
## This is an option because I do not know if all info/man support
|
||||
## compressed files, nor how to test if they do so.
|
||||
OPTION_DEFAULT_ON([compress-info],[don't compress the installed Info pages])
|
||||
if test $with_compress_info = yes; then
|
||||
GZIP_INFO=yes
|
||||
else
|
||||
GZIP_INFO=
|
||||
fi
|
||||
AC_SUBST(GZIP_INFO)
|
||||
OPTION_DEFAULT_ON([compress-install],
|
||||
[don't compress some files (.el, .info, etc.) when installing. Equivalent to:
|
||||
make GZIP_PROG= install])
|
||||
|
||||
AC_ARG_WITH([pkg-config-prog],dnl
|
||||
[AS_HELP_STRING([--with-pkg-config-prog=FILENAME],
|
||||
|
@ -950,6 +946,9 @@ AC_PATH_PROG(INSTALL_INFO, install-info, :,
|
|||
dnl Don't use GZIP, which is used by gzip for additional parameters.
|
||||
AC_PATH_PROG(GZIP_PROG, gzip)
|
||||
|
||||
test $with_compress_install != yes && test -n "$GZIP_PROG" && \
|
||||
GZIP_PROG=" # $GZIP_PROG # (disabled by configure --without-compress-install)"
|
||||
|
||||
if test $opsys = gnu-linux; then
|
||||
AC_PATH_PROG(PAXCTL, paxctl,,
|
||||
[$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin])
|
||||
|
@ -1027,19 +1026,30 @@ dnl (Don't use `-z nocombreloc' as -z takes no arg on Irix.)
|
|||
dnl Treat GCC specially since it just gives a non-fatal `unrecognized option'
|
||||
dnl if not built to support GNU ld.
|
||||
|
||||
late_LDFLAGS=$LDFLAGS
|
||||
dnl For a long time, -znocombreloc was added to LDFLAGS rather than
|
||||
dnl LD_SWITCH_SYSTEM_TEMACS. That is:
|
||||
dnl * inappropriate, as LDFLAGS is a user option but this is essential.
|
||||
dnl Eg "make LDFLAGS=... all" could run into problems,
|
||||
dnl http://bugs.debian.org/684788
|
||||
dnl * unnecessary, since temacs is the only thing that actually needs it.
|
||||
dnl Indeed this is where it was originally, prior to:
|
||||
dnl http://lists.gnu.org/archive/html/emacs-pretest-bug/2004-03/msg00170.html
|
||||
late_LDFLAGS="$LDFLAGS"
|
||||
if test x$GCC = xyes; then
|
||||
LDFLAGS="$LDFLAGS -Wl,-znocombreloc"
|
||||
LDFLAGS_NOCOMBRELOC="-Wl,-znocombreloc"
|
||||
else
|
||||
LDFLAGS="$LDFLAGS -znocombreloc"
|
||||
LDFLAGS_NOCOMBRELOC="-znocombreloc"
|
||||
fi
|
||||
|
||||
LDFLAGS="$LDFLAGS $LDFLAGS_NOCOMBRELOC"
|
||||
|
||||
AC_MSG_CHECKING([for -znocombreloc])
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
|
||||
[AC_MSG_RESULT(yes)],
|
||||
LDFLAGS=$late_LDFLAGS
|
||||
LDFLAGS_NOCOMBRELOC=
|
||||
[AC_MSG_RESULT(no)])
|
||||
|
||||
LDFLAGS="$late_LDFLAGS"
|
||||
|
||||
dnl The function dump-emacs will not be defined and temacs will do
|
||||
dnl (load "loadup") automatically unless told otherwise.
|
||||
|
@ -4741,6 +4751,8 @@ if test x$ac_enable_profiling != x ; then
|
|||
esac
|
||||
fi
|
||||
|
||||
LD_SWITCH_SYSTEM_TEMACS="$LDFLAGS_NOCOMBRELOC $LD_SWITCH_SYSTEM_TEMACS"
|
||||
|
||||
AC_SUBST(LD_SWITCH_SYSTEM_TEMACS)
|
||||
|
||||
## MinGW-specific post-link processing of temacs.
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
2013-09-12 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* text.texi (Enriched Justification): Explain values of default-justification.
|
||||
|
||||
2013-09-04 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* maintaining.texi (VC Ignore): Mention `vc-ignore' with prefix argument.
|
||||
|
|
|
@ -2086,6 +2086,7 @@ newlines are used for filling. The @key{RET} (@code{newline}) and
|
|||
commands, including Auto Fill (@pxref{Auto Fill}), insert only soft
|
||||
newlines and delete only soft newlines, leaving hard newlines alone.
|
||||
|
||||
@c FIXME: I don't see ‘unfilled’ in that node. --xfq
|
||||
Thus, when editing with Enriched mode, you should not use @key{RET}
|
||||
or @kbd{C-o} to break lines in the middle of filled paragraphs. Use
|
||||
Auto Fill mode or explicit fill commands (@pxref{Fill Commands})
|
||||
|
@ -2294,13 +2295,13 @@ commands do nothing on text with this setting. You can, however,
|
|||
still indent the left margin.
|
||||
@end table
|
||||
|
||||
@c FIXME: We should explain the effect of these symbols. --xfq
|
||||
@vindex default-justification
|
||||
You can also specify justification styles using the Justification
|
||||
submenu in the Text Properties menu. The default justification style
|
||||
is specified by the per-buffer variable @code{default-justification}.
|
||||
Its value should be one of the symbols @code{left}, @code{right},
|
||||
@code{full}, @code{center}, or @code{none}.
|
||||
@code{full}, @code{center}, or @code{none}; their meanings correspond
|
||||
to the commands above.
|
||||
|
||||
@node Enriched Properties
|
||||
@subsection Setting Other Text Properties
|
||||
|
|
|
@ -1140,6 +1140,7 @@ Please help us keep up with the workload by designing the patch in a
|
|||
form that is clearly safe to install.
|
||||
@end itemize
|
||||
|
||||
@c FIXME: Include the node above?
|
||||
@node Contributing
|
||||
@section Contributing to Emacs Development
|
||||
@cindex contributing to Emacs
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
2013-09-12 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* functions.texi (Obsolete Functions): Add an index for obsolete functions.
|
||||
|
||||
2013-09-11 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* nonascii.texi (Character Properties): Character properties fix
|
||||
for decimal-digit-value and digit-value.
|
||||
|
||||
2013-09-08 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* macros.texi (Defining Macros): Prefer "function" to "lambda
|
||||
expression" (bug#15296).
|
||||
|
||||
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
|
||||
|
|
|
@ -1135,6 +1135,7 @@ examining or altering the structure of closure objects.
|
|||
|
||||
@node Obsolete Functions
|
||||
@section Declaring Functions Obsolete
|
||||
@cindex obsolete functions
|
||||
|
||||
You can mark a named function as @dfn{obsolete}, meaning that it may
|
||||
be removed at some point in the future. This causes Emacs to warn
|
||||
|
|
|
@ -191,8 +191,8 @@ During Compile}).
|
|||
@section Defining Macros
|
||||
|
||||
A Lisp macro object is a list whose @sc{car} is @code{macro}, and
|
||||
whose @sc{cdr} is a lambda expression. Expansion of the macro works
|
||||
by applying the lambda expression (with @code{apply}) to the list of
|
||||
whose @sc{cdr} is a function. Expansion of the macro works
|
||||
by applying the function (with @code{apply}) to the list of
|
||||
@emph{unevaluated} arguments from the macro call.
|
||||
|
||||
It is possible to use an anonymous Lisp macro just like an anonymous
|
||||
|
|
|
@ -478,14 +478,14 @@ unassigned codepoints, the value is the character itself.
|
|||
|
||||
@item decimal-digit-value
|
||||
Corresponds to the Unicode @code{Numeric_Value} property for
|
||||
characters whose @code{Numeric_Type} is @samp{Digit}. The value is an
|
||||
integer number. For unassigned codepoints, the value is @code{nil},
|
||||
which means @acronym{NaN}, or ``not-a-number''.
|
||||
characters whose @code{Numeric_Type} is @samp{Decimal}. The value is
|
||||
an integer number. For unassigned codepoints, the value is
|
||||
@code{nil}, which means @acronym{NaN}, or ``not-a-number''.
|
||||
|
||||
@item digit-value
|
||||
Corresponds to the Unicode @code{Numeric_Value} property for
|
||||
characters whose @code{Numeric_Type} is @samp{Decimal}. The value is
|
||||
an integer number. Examples of such characters include compatibility
|
||||
characters whose @code{Numeric_Type} is @samp{Digit}. The value is an
|
||||
integer number. Examples of such characters include compatibility
|
||||
subscript and superscript digits, for which the value is the
|
||||
corresponding number. For unassigned codepoints, the value is
|
||||
@code{nil}, which means @acronym{NaN}.
|
||||
|
@ -549,6 +549,8 @@ is @code{nil}, which means the character itself.
|
|||
@defun get-char-code-property char propname
|
||||
This function returns the value of @var{char}'s @var{propname} property.
|
||||
|
||||
@c FIXME: Use ‘?\s’ instead of ‘? ’ for the space character in the
|
||||
@c first example? --xfq
|
||||
@example
|
||||
@group
|
||||
(get-char-code-property ? 'general-category)
|
||||
|
@ -684,6 +686,7 @@ which case the returned charset must be supported by that coding
|
|||
system (@pxref{Coding Systems}).
|
||||
@end defun
|
||||
|
||||
@c TODO: Explain the properties here and add indexes such as ‘charset property’.
|
||||
@defun charset-plist charset
|
||||
This function returns the property list of the character set
|
||||
@var{charset}. Although @var{charset} is a symbol, this is not the
|
||||
|
@ -849,6 +852,8 @@ systems specifies its own translation tables, the table that is the
|
|||
value of this variable, if non-@code{nil}, is applied after them.
|
||||
@end defvar
|
||||
|
||||
@c FIXME: This variable is obsolete since 23.1. We should mention
|
||||
@c that here or simply remove this defvar. --xfq
|
||||
@defvar translation-table-for-input
|
||||
Self-inserting characters are translated through this translation
|
||||
table before they are inserted. Search commands also translate their
|
||||
|
|
|
@ -1,3 +1,13 @@
|
|||
2013-09-11 Xue Fuqiao <xfq.free@gmail.com>
|
||||
|
||||
* ido.texi (Interactive Substring Matching): Use @key{RET} instead
|
||||
of @kbd{RET}.
|
||||
(Prefix Matching): Add an index.
|
||||
|
||||
2013-09-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* emacs-gnutls.texi: Tweak direntry.
|
||||
|
||||
2013-09-06 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* tramp.texi (Alternative Syntax): Remove chapter.
|
||||
|
|
|
@ -25,7 +25,7 @@ modify this GNU manual.''
|
|||
|
||||
@dircategory Emacs network features
|
||||
@direntry
|
||||
* GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
|
||||
* Emacs GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
|
||||
@end direntry
|
||||
|
||||
@titlepage
|
||||
|
|
|
@ -258,7 +258,7 @@ Buffer: 23@{123456 | 123@}
|
|||
At this point, you still have two matching buffers. If you want the
|
||||
first buffer in the list, you can simply press @key{RET}. If you want
|
||||
the second in the list, you can press @kbd{C-s} to move it to the top
|
||||
of the list and then press @kbd{RET} to select it.
|
||||
of the list and then press @key{RET} to select it.
|
||||
|
||||
However, if you type @kbd{4}, you'll only have one match left:
|
||||
|
||||
|
@ -366,6 +366,7 @@ users Ido offers in addition to the default substring matching method
|
|||
the only difference to the description of the substring matching
|
||||
above.
|
||||
|
||||
@cindex toggle prefix matching
|
||||
You can toggle prefix matching with @kbd{C-p}
|
||||
(@code{ido-toggle-prefix}).
|
||||
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2013-09-09 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* refcards/Makefile (PS_ENGLISH, PS_CZECH, PS_FRENCH, PS_GERMAN)
|
||||
(PS_POLISH, PS_PORTUGUESE, PS_RUSSIAN, PS_SLOVAKIAN, PS_TARGETS):
|
||||
Use substitution refs.
|
||||
|
||||
2013-08-15 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* refcards/calccard.pdf, refcards/cs-dired-ref.pdf:
|
||||
|
|
15
etc/NEWS
15
etc/NEWS
|
@ -34,6 +34,10 @@ build time. To prevent this, use the configure option
|
|||
`--with-file-notification-no'. See below for file-notify features.
|
||||
FIXME? This feature is not available for the Nextstep port. (?)
|
||||
|
||||
** The configure option `without-compress-info' has been generalized,
|
||||
and renamed to `without-compress-install'. It now prevents compression
|
||||
of _any_ files during installation.
|
||||
|
||||
** The configure option --with-crt-dir has been removed.
|
||||
It is no longer needed, as the crt*.o files are no longer linked
|
||||
specially.
|
||||
|
@ -610,9 +614,20 @@ file using `set-file-extended-attributes'.
|
|||
** `visited-file-modtime' now returns -1 for nonexistent files.
|
||||
Formerly it returned a list (-1 LOW USEC PSEC), but this was ambiguous
|
||||
in the presence of files with negative time stamps.
|
||||
|
||||
** The cars of the elements in `interpreter-mode-alist' are now treated
|
||||
as regexps rather than literal strings. Technically this is an
|
||||
incompatible change, but unless you are using interpreter-mode-alist
|
||||
for something (not just adding elements to it), it ought not to affect you.
|
||||
|
||||
|
||||
* Lisp Changes in Emacs 24.4
|
||||
|
||||
** Comparison functions =, <, >, <=, >= now take many arguments.
|
||||
|
||||
** The second argument of `eval' can now be a lexical-environment.
|
||||
|
||||
** `with-demoted-errors' takes an additional argument `format'.
|
||||
+++
|
||||
** New function `define-error'.
|
||||
|
||||
|
|
|
@ -58,42 +58,16 @@ PDF_SLOVAKIAN = \
|
|||
PDF_TARGETS = $(PDF_ENGLISH) $(PDF_CZECH) $(PDF_FRENCH) $(PDF_GERMAN) \
|
||||
$(PDF_POLISH) $(PDF_PORTUGUESE) $(PDF_RUSSIAN) $(PDF_SLOVAKIAN)
|
||||
|
||||
PS_ENGLISH = \
|
||||
calccard.ps \
|
||||
dired-ref.ps \
|
||||
gnus-booklet.ps \
|
||||
gnus-refcard.ps \
|
||||
orgcard.ps \
|
||||
refcard.ps \
|
||||
survival.ps \
|
||||
vipcard.ps \
|
||||
viperCard.ps
|
||||
PS_ENGLISH = $(PDF_ENGLISH:.pdf=.ps)
|
||||
PS_CZECH = $(PDF_CZECH:.pdf=.ps)
|
||||
PS_FRENCH = $(PDF_FRENCH:.pdf=.ps)
|
||||
PS_GERMAN = $(PDF_GERMAN:.pdf=.ps)
|
||||
PS_POLISH = $(PDF_POLISH:.pdf=.ps)
|
||||
PS_PORTUGUESE = $(PDF_PORTUGUESE:.pdf=.ps)
|
||||
PS_RUSSIAN = $(PDF_RUSSIAN:.pdf=.ps)
|
||||
PS_SLOVAKIAN = $(PDF_SLOVAKIAN:.pdf=.ps)
|
||||
|
||||
PS_CZECH = \
|
||||
cs-dired-ref.ps \
|
||||
cs-refcard.ps \
|
||||
cs-survival.ps
|
||||
|
||||
PS_FRENCH = \
|
||||
fr-dired-ref.ps \
|
||||
fr-refcard.ps \
|
||||
fr-survival.ps \
|
||||
|
||||
PS_GERMAN = de-refcard.ps
|
||||
|
||||
PS_POLISH = pl-refcard.ps
|
||||
|
||||
PS_PORTUGUESE = pt-br-refcard.ps
|
||||
|
||||
PS_RUSSIAN = ru-refcard.ps
|
||||
|
||||
PS_SLOVAKIAN = \
|
||||
sk-dired-ref.ps \
|
||||
sk-refcard.ps \
|
||||
sk-survival.ps
|
||||
|
||||
PS_TARGETS = $(PS_ENGLISH) $(PS_CZECH) $(PS_FRENCH) $(PS_GERMAN) \
|
||||
$(PS_POLISH) $(PS_PORTUGUESE) $(PS_RUSSIAN) $(PS_SLOVAKIAN)
|
||||
PS_TARGETS = $(PDF_TARGETS:.pdf=.ps)
|
||||
|
||||
|
||||
## For emacsver.tex.
|
||||
|
|
2
info/dir
2
info/dir
|
@ -41,7 +41,7 @@ Emacs editing modes
|
|||
Emacs network features
|
||||
* EUDC: (eudc). Emacs client for directory servers (LDAP, PH).
|
||||
* Gnus: (gnus). The newsreader Gnus.
|
||||
* GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
|
||||
* Emacs GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
|
||||
* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer.
|
||||
* MH-E: (mh-e). Emacs interface to the MH mail system.
|
||||
* Message: (message). Mail and news composition mode that
|
||||
|
|
|
@ -1,3 +1,9 @@
|
|||
2013-09-05 Jean Haidouk <haidouk@yandex.com> (tiny change)
|
||||
|
||||
* quail/latin-alt.el ("french-alt-postfix", "latin-alt-postfix"):
|
||||
* quail/latin-pre.el ("french-prefix"):
|
||||
* quail/latin-post.el ("french-postfix"): Add `œ' and `Œ'.
|
||||
|
||||
2013-08-28 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
* Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
|
||||
|
|
|
@ -938,7 +938,7 @@ Par exemple: a` -> à e' -> é.
|
|||
En doublant la frappe des diacritiques, ils s'isoleront de la lettre.
|
||||
Par exemple: e'' -> e'
|
||||
|
||||
<e dans l'o> n'est pas disponible."
|
||||
Œ est produit par O/."
|
||||
nil t nil nil nil nil nil nil nil nil t)
|
||||
|
||||
(quail-define-rules
|
||||
|
@ -959,7 +959,9 @@ Par exemple: e'' -> e'
|
|||
("i^" ?î)
|
||||
("i\"" ?ï)
|
||||
("O^" ?Ô)
|
||||
("O/" ?Œ)
|
||||
("o^" ?ô)
|
||||
("o/" ?œ)
|
||||
("U`" ?Ù)
|
||||
("U^" ?Û)
|
||||
("U\"" ?Ü)
|
||||
|
@ -988,7 +990,9 @@ Par exemple: e'' -> e'
|
|||
("i^^" ["i^"])
|
||||
("i\"\"" ["i\""])
|
||||
("O^^" ["O^"])
|
||||
("O//" ["O/"])
|
||||
("o^^" ["o^"])
|
||||
("o//" ["o/"])
|
||||
("U``" ["U`"])
|
||||
("U^^" ["U^"])
|
||||
("U\"\"" ["U\""])
|
||||
|
@ -1423,6 +1427,7 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
|
|||
("O'" ?Ó)
|
||||
("O-" ?Ō)
|
||||
("O/" ?Ø)
|
||||
("O/" ?Œ)
|
||||
("O:" ?Ő)
|
||||
("O\"" ?Ö)
|
||||
("O^" ?Ô)
|
||||
|
@ -1515,6 +1520,7 @@ Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
|
|||
("o'" ?ó)
|
||||
("o-" ?ō)
|
||||
("o/" ?ø)
|
||||
("o/" ?œ)
|
||||
("o:" ?ő)
|
||||
("o\"" ?ö)
|
||||
("o^" ?ô)
|
||||
|
|
|
@ -1013,7 +1013,7 @@ Par exemple: a` -> à e' -> é.
|
|||
En doublant la frappe des diacritiques, ils s'isoleront de la lettre.
|
||||
Par exemple: e'' -> e'
|
||||
|
||||
<e dans l'o> n'est pas disponible."
|
||||
Œ est produit par O/."
|
||||
nil t nil nil nil nil nil nil nil nil t)
|
||||
|
||||
(quail-define-rules
|
||||
|
@ -1034,7 +1034,9 @@ Par exemple: e'' -> e'
|
|||
("i^" ?î)
|
||||
("i\"" ?ï)
|
||||
("O^" ?Ô)
|
||||
("O/" ?Œ)
|
||||
("o^" ?ô)
|
||||
("o/" ?œ)
|
||||
("U`" ?Ù)
|
||||
("U^" ?Û)
|
||||
("U\"" ?Ü)
|
||||
|
@ -1063,7 +1065,9 @@ Par exemple: e'' -> e'
|
|||
("i^^" ["i^"])
|
||||
("i\"\"" ["i\""])
|
||||
("O^^" ["O^"])
|
||||
("O//" ["O/"])
|
||||
("o^^" ["o^"])
|
||||
("o//" ["o/"])
|
||||
("U``" ["U`"])
|
||||
("U^^" ["U^"])
|
||||
("U\"\"" ["U\""])
|
||||
|
@ -2099,7 +2103,7 @@ of characters from a single Latin-N charset.
|
|||
dot | . | z. -> ż
|
||||
stroke | / | d/ -> đ
|
||||
nordic | / | d/ -> ð t/ -> þ a/ -> å e/ -> æ o/ -> ø
|
||||
others | / | s/ -> ß ?/ -> ¿ !/ -> ¡ // -> °
|
||||
others | / | s/ -> ß ?/ -> ¿ !/ -> ¡ // -> ° o/ -> œ
|
||||
| various | << -> « >> -> » o_ -> º a_ -> ª
|
||||
|
||||
Doubling the postfix separates the letter and postfix: e.g. a'' -> a'
|
||||
|
|
|
@ -264,6 +264,7 @@ Key translation rules are:
|
|||
diaeresis | \" | \"i -> ï
|
||||
cedilla | ~ or , | ~c -> ç ,c -> ç
|
||||
symbol | ~ | ~> -> » ~< -> «
|
||||
misc | / | /o -> œ
|
||||
" nil t nil nil nil nil nil nil nil nil t)
|
||||
|
||||
(quail-define-rules
|
||||
|
@ -295,6 +296,9 @@ Key translation rules are:
|
|||
("\"e" ?ë)
|
||||
("\"i" ?ï)
|
||||
("\" " ?\")
|
||||
("/o" ?œ)
|
||||
("/O" ?Œ)
|
||||
("/ " ?/)
|
||||
("~<" ?\«)
|
||||
("~>" ?\»)
|
||||
("~C" ?Ç)
|
||||
|
|
285
lisp/ChangeLog
285
lisp/ChangeLog
|
@ -3,6 +3,287 @@
|
|||
* composite.el (compose-gstring-for-graphic): Handle enclosing
|
||||
mark.
|
||||
|
||||
2013-09-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* vc/vc-svn.el (vc-svn-dir-status-files, vc-svn-dir-extra-headers)
|
||||
(vc-svn-ignore, vc-svn-retrieve-tag): Mark unused arguments.
|
||||
|
||||
* subr.el (do-after-load-evaluation): Also give compiler warnings
|
||||
when obsolete files are used (except by obsolete files).
|
||||
|
||||
* vc/vc-svn.el (vc-svn-parse-status): If there are multiple files
|
||||
in the status output, assume `filename' is the first. (Bug#15322)
|
||||
|
||||
* vc/vc.el (vc-deduce-fileset): Doc fix.
|
||||
|
||||
* calc/calc-help.el (Info-goto-node):
|
||||
* progmodes/cperl-mode.el (Info-find-node):
|
||||
* vc/ediff.el (Info-goto-node): Update declarations.
|
||||
|
||||
* vc/vc-dispatcher.el (vc-dir-refresh): Declare.
|
||||
|
||||
* vc/vc-bzr.el (vc-compilation-mode): Declare.
|
||||
(vc-bzr-pull): Require vc-dispatcher.
|
||||
* vc/vc-git.el (vc-compilation-mode): Declare.
|
||||
(vc-git-pull): Require vc-dispatcher.
|
||||
|
||||
* progmodes/ruby-mode.el (ruby-syntax-propertize-function): Declare.
|
||||
|
||||
* progmodes/octave.el (help-button-action): Declare.
|
||||
|
||||
* shell.el (shell-directory-tracker): Output error as a message
|
||||
rather than just returning it as a string.
|
||||
(shell-process-pushd): Remove useless use of message.
|
||||
|
||||
* dframe.el (dframe-timer-fn):
|
||||
* files.el (dir-locals-read-from-file):
|
||||
* mpc.el (mpc--status-timer-run, mpc--status-idle-timer-run)
|
||||
(mpc-format):
|
||||
* reveal.el (reveal-post-command):
|
||||
* saveplace.el (load-save-place-alist-from-file):
|
||||
* shell.el (shell-resync-dirs):
|
||||
* w32-common-fns.el (x-get-selection-value):
|
||||
* emacs-lisp/copyright.el (copyright-find-copyright):
|
||||
* emacs-lisp/eldoc.el (eldoc-print-current-symbol-info):
|
||||
* emulation/tpu-edt.el (tpu-copy-keyfile):
|
||||
* play/bubbles.el (bubbles--mark-neighbourhood):
|
||||
* progmodes/executable.el
|
||||
(executable-make-buffer-file-executable-if-script-p):
|
||||
* term/pc-win.el (x-get-selection-value): Use with-demoted-errors.
|
||||
|
||||
2013-09-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
Cleanup Eshell to rely less on dynamic scoping.
|
||||
* eshell/esh-opt.el (eshell-eval-using-options): Don't bind usage-msg,
|
||||
last-value, and ext-command here. Bind `args' closer to `body'.
|
||||
(temp-args, last-value, usage-msg, ext-command, args): Don't defvar.
|
||||
(eshell--args): Declare new dynamic var.
|
||||
(eshell-do-opt): Add argument `args'. Bind our own usage-msg,
|
||||
last-value, and ext-command. Pass `args' to `body'.
|
||||
(eshell-process-args): Bind eshell--args.
|
||||
(eshell-set-option): Use eshell--args.
|
||||
* eshell/eshell.el (eshell): Use derived-mode-p.
|
||||
* eshell/esh-var.el (eshell-parse-variable): Use backquote.
|
||||
(eshell-parse-variable-ref): Remove unused vars `end' and `err'.
|
||||
(eshell-glob-function): Declare.
|
||||
* eshell/esh-util.el: Require cl-lib.
|
||||
(eshell-read-hosts-file): Avoid add-to-list.
|
||||
* eshell/esh-cmd.el (eshell-parse-lisp-argument): Remove unused var
|
||||
`err'.
|
||||
* eshell/em-unix.el (compilation-scroll-output, locate-history-list):
|
||||
Declare.
|
||||
(eshell/diff): Remove unused var `err'.
|
||||
* eshell/em-rebind.el (eshell-delete-backward-char): Remove unused arg
|
||||
`killflag'.
|
||||
* eshell/em-pred.el (eshell-parse-modifiers): Remove unused var `err'.
|
||||
* eshell/em-ls.el (eshell-ls-highlight-alist): Move defvars before
|
||||
first use.
|
||||
* eshell/em-glob.el (eshell-glob-matches, message-shown):
|
||||
Move declaration before first use.
|
||||
* eshell/em-alias.el (eshell-maybe-replace-by-alias): Use backquotes.
|
||||
* autorevert.el (auto-revert-notify-handler): Use `cl-dolist' since we
|
||||
rely on cl-return.
|
||||
|
||||
2013-09-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* term/ns-win.el (global-map): Remove binding for ispell-next,
|
||||
deleted 1999-05-29. (Bug#15357)
|
||||
|
||||
2013-09-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* echistory.el (electric-command-history): Remove call to deleted func.
|
||||
|
||||
* play/landmark.el (landmark-mode): Fix typos.
|
||||
|
||||
* vc/vc-cvs.el (cvs-append-to-ignore): Fix arg spec.
|
||||
Check cvs-sort-ignore-file is bound.
|
||||
|
||||
* savehist.el: No need for cl when compiling on Emacs.
|
||||
|
||||
2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* eshell/esh-mode.el (eshell-mode-syntax-table): Fix up initialization
|
||||
(bug#15338).
|
||||
(eshell-self-insert-command, eshell-send-invisible):
|
||||
Remove unused argument.
|
||||
(eshell-handle-control-codes): Remove unused var `orig'.
|
||||
Avoid delete-backward-char.
|
||||
|
||||
* files.el (set-auto-mode): Simplify a bit further.
|
||||
|
||||
2013-09-11 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.el (interpreter-mode-alist): Remove \\` \\' parts.
|
||||
(set-auto-mode): Don't regexp-quote elements.
|
||||
* progmodes/python.el (interpreter-mode-alist): Remove \\` \\'.
|
||||
* progmodes/cc-mode.el (interpreter-mode-alist):
|
||||
* progmodes/ruby-mode.el (interpreter-mode-alist):
|
||||
Revert previous change.
|
||||
|
||||
2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* play/snake.el (snake-mode):
|
||||
* play/mpuz.el (mpuz-mode):
|
||||
* play/landmark.el (lm-mode):
|
||||
* play/blackbox.el (blackbox-mode):
|
||||
* play/5x5.el (5x5-mode):
|
||||
* obsolete/options.el (Edit-options-mode):
|
||||
* net/quickurl.el (quickurl-list-mode):
|
||||
* net/newst-treeview.el (newsticker-treeview-mode):
|
||||
* mail/rmailsum.el (rmail-summary-mode):
|
||||
* mail/mspools.el (mspools-mode):
|
||||
* locate.el (locate-mode):
|
||||
* ibuffer.el (ibuffer-mode):
|
||||
* emulation/ws-mode.el (wordstar-mode):
|
||||
* emacs-lisp/debug.el (debugger-mode):
|
||||
* array.el (array-mode):
|
||||
* net/eudc.el (eudc-mode): Use define-derived-mode.
|
||||
* net/mairix.el (mairix-searches-mode-font-lock-keywords):
|
||||
Move initialization into declaration.
|
||||
(mairix-searches-mode): Use define-derived-mode.
|
||||
* net/eudc-hotlist.el (eudc-hotlist-mode): Use define-derived-mode.
|
||||
(eudc-edit-hotlist): Use dolist.
|
||||
* man.el (Man-mode-syntax-table): Rename from man-mode-syntax-table.
|
||||
(Man-mode): Use define-derived-mode.
|
||||
* info.el (Info-edit-mode-map): Rename from Info-edit-map.
|
||||
(Info-edit-mode): Use define-derived-mode.
|
||||
(Info-cease-edit): Use Info-mode.
|
||||
* eshell/esh-mode.el (eshell-mode-syntax-table): Move initialization
|
||||
into declaration.
|
||||
(eshell-mode): Use define-derived-mode.
|
||||
* chistory.el (command-history-mode-map): Rename from
|
||||
command-history-map.
|
||||
(command-history-mode): Use define-derived-mode.
|
||||
(Command-history-setup): Remove function.
|
||||
* calc/calc.el (calc-trail-mode-map): New var.
|
||||
(calc-trail-mode): Use define-derived-mode.
|
||||
(calc-trail-buffer): Set calc-main-buffer manually.
|
||||
* bookmark.el (bookmark-insert-annotation): New function.
|
||||
(bookmark-edit-annotation): Use it.
|
||||
(bookmark-edit-annotation-mode): Make it a proper major mode.
|
||||
(bookmark-send-edited-annotation): Use derived-mode-p.
|
||||
* arc-mode.el (archive-mode): Move kill-all-local-variables a tiny bit
|
||||
closer to its ideal place. Use \' to match EOS.
|
||||
|
||||
* profiler.el (profiler-calltree-find): Use function-equal.
|
||||
|
||||
2013-09-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.el (interpreter-mode-alist): Convert to regexps.
|
||||
(set-auto-mode): Adapt for this. (Bug#15306)
|
||||
* progmodes/cperl-mode.el (cperl-clobber-mode-lists):
|
||||
Comment out unused variable.
|
||||
* progmodes/cc-mode.el (interpreter-mode-alist):
|
||||
* progmodes/python.el (interpreter-mode-alist):
|
||||
* progmodes/ruby-mode.el (interpreter-mode-alist): Convert to regexps.
|
||||
* progmodes/sh-script.el (sh-set-shell):
|
||||
No longer use interpreter-mode-alist to get list of shells.
|
||||
|
||||
* progmodes/cc-mode.el (awk-mode): Remove duplicate autoload.
|
||||
|
||||
2013-09-10 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* simple.el: Use set-temporary-overlay-map for universal-argument.
|
||||
(universal-argument-map): Don't use default-bindings (bug#15317).
|
||||
Bind switch-frame explicitly. Replace universal-argument-minus with
|
||||
a conditional binding.
|
||||
(universal-argument-num-events, saved-overriding-map): Remove.
|
||||
(restore-overriding-map): Remove.
|
||||
(universal-argument--mode): Rename from save&set-overriding-map,
|
||||
and rewrite.
|
||||
(universal-argument, universal-argument-more, negative-argument)
|
||||
(digit-argument): Adjust accordingly.
|
||||
(universal-argument-minus): Remove.
|
||||
(universal-argument-other-key): Remove.
|
||||
|
||||
* subr.el (with-demoted-errors): Add `format' argument.
|
||||
|
||||
2013-09-10 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
* net/tramp.el (tramp-cleanup): Remove. Functionality added to
|
||||
`tramp-cleanup-connection'.
|
||||
|
||||
* net/tramp-cmds.el (tramp-cleanup-connection): Add optional
|
||||
parameters KEEP-DEBUG and KEEP-PASSWORD.
|
||||
|
||||
* net/tramp.el (tramp-file-name-handler):
|
||||
* net/tramp-adb.el (tramp-adb-maybe-open-connection):
|
||||
* net/tramp-sh.el (tramp-open-connection-setup-interactive-shell)
|
||||
(tramp-maybe-open-connection):
|
||||
* net/tramp-smb.el (tramp-smb-maybe-open-connection):
|
||||
Use `tramp-cleanup-connection'.
|
||||
|
||||
* net/tramp-sh.el (tramp-maybe-open-connection):
|
||||
Catch 'uname-changed inside the progress reporter.
|
||||
|
||||
2013-09-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* simple.el (read-minibuffer): Unbreak it. (Bug#15318)
|
||||
|
||||
* dired-x.el (dired-mark-sexp): Unbreak for systems where ls
|
||||
returns "alternate access method" in mode (eg "-rw-r--r--.").
|
||||
|
||||
2013-09-08 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* saveplace.el (load-save-place-alist-from-file):
|
||||
Demote errors. (Bug#15305)
|
||||
|
||||
2013-09-08 Michael Albinus <michael.albinus@gmx.de>
|
||||
|
||||
Improve compatibility with older Emacsen, and XEmacs.
|
||||
|
||||
* net/tramp.el (tramp-find-method, tramp-find-user): Call `propertize'
|
||||
only if it is bound. It isn't for XEmacs.
|
||||
(with-tramp-progress-reporter): Do not let-bind `result'.
|
||||
This yields to scoping errors in XEmacs.
|
||||
(tramp-handle-make-auto-save-file-name): New function, moved from
|
||||
tramp-sh.el.
|
||||
|
||||
* net/tramp-adb.el (tramp-adb-file-name-handler-alist): Add handler
|
||||
for `make-auto-save-file-name'.
|
||||
(tramp-adb--gnu-switches-to-ash):
|
||||
Use `tramp-compat-replace-regexp-in-string'.
|
||||
|
||||
* net/tramp-cache.el (tramp-cache-print): Call
|
||||
`substring-no-properties' only if it is bound. It isn't for XEmacs.
|
||||
|
||||
* net/tramp-cmds.el (tramp-bug): Call `propertize' only if it is
|
||||
bound. It isn't for XEmacs.
|
||||
|
||||
* net/tramp-compat.el (tramp-compat-copy-file):
|
||||
Catch `wrong-number-of-arguments' error.
|
||||
(tramp-compat-replace-regexp-in-string): New defun.
|
||||
|
||||
* net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Add handler
|
||||
for `make-auto-save-file-name'.
|
||||
(tramp-gvfs-handle-copy-file): Use `tramp-compat-funcall' for
|
||||
`copy-file'.
|
||||
(tramp-gvfs-file-gvfs-monitor-file-process-filter)
|
||||
(tramp-gvfs-file-name): Use `tramp-compat-replace-regexp-in-string'.
|
||||
(tramp-synce-list-devices): Use `push' instead of `pushnew'.
|
||||
|
||||
* net/tramp-gw.el (tramp-gw-open-network-stream):
|
||||
Use `tramp-compat-replace-regexp-in-string'.
|
||||
|
||||
* net/tramp-sh.el (tramp-sh-file-name-handler-alist):
|
||||
Call `tramp-handle-make-auto-save-file-name'.
|
||||
(tramp-sh-handle-make-auto-save-file-name): Move to tramp.el.
|
||||
(tramp-sh-file-gvfs-monitor-dir-process-filter)
|
||||
(tramp-sh-file-inotifywait-process-filter):
|
||||
Use `tramp-compat-replace-regexp-in-string'.
|
||||
(tramp-compute-multi-hops): Use `push' instead of `pushnew'.
|
||||
|
||||
* net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add handler
|
||||
for `make-auto-save-file-name'.
|
||||
(tramp-smb-handle-copy-directory):
|
||||
Call `tramp-compat-replace-regexp-in-string'.
|
||||
(tramp-smb-get-file-entries): Use `push' instead of `pushnew'.
|
||||
(tramp-smb-handle-copy-file): Improve error message.
|
||||
(tramp-smb-handle-rename-file): Rename directly only in case
|
||||
`newname' does not exist yet. This is a restriction of smbclient.
|
||||
(tramp-smb-maybe-open-connection): Rerun the function only when
|
||||
`auth-sources' is non-nil.
|
||||
|
||||
2013-09-08 Kenichi Handa <handa@gnu.org>
|
||||
|
||||
* international/characters.el: Set category "^" (Combining) for
|
||||
|
@ -14,8 +295,8 @@
|
|||
* 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
|
||||
* 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>
|
||||
|
|
|
@ -683,9 +683,9 @@ archive.
|
|||
;; At present we cannot create archives from scratch
|
||||
(funcall (or (default-value 'major-mode) 'fundamental-mode))
|
||||
(if (and (not force) archive-files) nil
|
||||
(kill-all-local-variables)
|
||||
(let* ((type (archive-find-type))
|
||||
(typename (capitalize (symbol-name type))))
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'archive-subtype)
|
||||
(setq archive-subtype type)
|
||||
|
||||
|
@ -761,7 +761,7 @@ archive.
|
|||
((looking-at "..-l[hz][0-9ds]-") 'lzh)
|
||||
((looking-at "....................[\334]\247\304\375") 'zoo)
|
||||
((and (looking-at "\C-z") ; signature too simple, IMHO
|
||||
(string-match "\\.[aA][rR][cC]$"
|
||||
(string-match "\\.[aA][rR][cC]\\'"
|
||||
(or buffer-file-name (buffer-name))))
|
||||
'arc)
|
||||
;; This pattern modeled on the BSD/GNU+Linux `file' command.
|
||||
|
|
|
@ -800,7 +800,7 @@ Return COLUMN."
|
|||
(put 'array-mode 'mode-class 'special)
|
||||
|
||||
;;;###autoload
|
||||
(defun array-mode ()
|
||||
(define-derived-mode array-mode fundamental-mode "Array"
|
||||
"Major mode for editing arrays.
|
||||
|
||||
Array mode is a specialized mode for editing arrays. An array is
|
||||
|
@ -863,9 +863,6 @@ take a numeric prefix argument):
|
|||
\\[array-display-local-variables] Display the current values of local variables.
|
||||
|
||||
Entering array mode calls the function `array-mode-hook'."
|
||||
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'array-buffer-line)
|
||||
(make-local-variable 'array-buffer-column)
|
||||
(make-local-variable 'array-row)
|
||||
|
@ -888,13 +885,9 @@ Entering array mode calls the function `array-mode-hook'."
|
|||
(+ (floor (1- array-max-column) array-columns-per-line)
|
||||
(if array-rows-numbered 2 1)))
|
||||
(message "")
|
||||
(setq major-mode 'array-mode)
|
||||
(setq mode-name "Array")
|
||||
(force-mode-line-update)
|
||||
(set (make-local-variable 'truncate-lines) t)
|
||||
(setq overwrite-mode 'overwrite-mode-textual)
|
||||
(use-local-map array-mode-map)
|
||||
(run-mode-hooks 'array-mode-hook))
|
||||
(setq overwrite-mode 'overwrite-mode-textual))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -548,7 +548,7 @@ will use an up-to-date value of `auto-revert-interval'"
|
|||
(cl-assert (stringp file))
|
||||
(when (eq action 'renamed) (cl-assert (stringp file1)))
|
||||
;; Loop over all buffers, in order to find the intended one.
|
||||
(dolist (buffer buffers)
|
||||
(cl-dolist (buffer buffers)
|
||||
(when (buffer-live-p buffer)
|
||||
(with-current-buffer buffer
|
||||
(when (and (stringp buffer-file-name)
|
||||
|
|
|
@ -862,31 +862,25 @@ It takes one argument, the name of the bookmark, as a string.")
|
|||
map)
|
||||
"Keymap for editing an annotation of a bookmark.")
|
||||
|
||||
|
||||
(defun bookmark-edit-annotation-mode (bookmark-name-or-record)
|
||||
"Mode for editing the annotation of bookmark BOOKMARK-NAME-OR-RECORD.
|
||||
When you have finished composing, type \\[bookmark-send-annotation].
|
||||
|
||||
\\{bookmark-edit-annotation-mode-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'bookmark-annotation-name)
|
||||
(setq bookmark-annotation-name bookmark-name-or-record)
|
||||
(use-local-map bookmark-edit-annotation-mode-map)
|
||||
(setq major-mode 'bookmark-edit-annotation-mode
|
||||
mode-name "Edit Bookmark Annotation")
|
||||
(defun bookmark-insert-annotation (bookmark-name-or-record)
|
||||
(insert (funcall bookmark-edit-annotation-text-func bookmark-name-or-record))
|
||||
(let ((annotation (bookmark-get-annotation bookmark-name-or-record)))
|
||||
(if (and annotation (not (string-equal annotation "")))
|
||||
(insert annotation)))
|
||||
(run-mode-hooks 'text-mode-hook))
|
||||
(insert annotation))))
|
||||
|
||||
(define-derived-mode bookmark-edit-annotation-mode
|
||||
text-mode "Edit Bookmark Annotation"
|
||||
"Mode for editing the annotation of bookmarks.
|
||||
When you have finished composing, type \\[bookmark-send-annotation].
|
||||
|
||||
\\{bookmark-edit-annotation-mode-map}")
|
||||
|
||||
|
||||
(defun bookmark-send-edited-annotation ()
|
||||
"Use buffer contents as annotation for a bookmark.
|
||||
Lines beginning with `#' are ignored."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'bookmark-edit-annotation-mode))
|
||||
(if (not (derived-mode-p 'bookmark-edit-annotation-mode))
|
||||
(error "Not in bookmark-edit-annotation-mode"))
|
||||
(goto-char (point-min))
|
||||
(while (< (point) (point-max))
|
||||
|
@ -906,7 +900,10 @@ Lines beginning with `#' are ignored."
|
|||
(defun bookmark-edit-annotation (bookmark-name-or-record)
|
||||
"Pop up a buffer for editing bookmark BOOKMARK-NAME-OR-RECORD's annotation."
|
||||
(pop-to-buffer (generate-new-buffer-name "*Bookmark Annotation Compose*"))
|
||||
(bookmark-edit-annotation-mode bookmark-name-or-record))
|
||||
(bookmark-insert-annotation bookmark-name-or-record)
|
||||
(bookmark-edit-annotation-mode)
|
||||
(set (make-local-variable 'bookmark-annotation-name)
|
||||
bookmark-name-or-record))
|
||||
|
||||
|
||||
(defun bookmark-buffer-name ()
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
(require 'calc-macs)
|
||||
|
||||
;; Declare functions which are defined elsewhere.
|
||||
(declare-function Info-goto-node "info" (nodename &optional fork))
|
||||
(declare-function Info-goto-node "info" (nodename &optional fork strict-case))
|
||||
(declare-function Info-last "info" ())
|
||||
|
||||
|
||||
|
|
|
@ -1387,7 +1387,12 @@ Notations: 3.14e6 3.14 * 10^6
|
|||
(calc-check-defines))
|
||||
(setplist 'calc-define nil)))))
|
||||
|
||||
(defun calc-trail-mode (&optional buf)
|
||||
(defvar calc-trail-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map calc-mode-map)
|
||||
map))
|
||||
|
||||
(define-derived-mode calc-trail-mode fundamental-mode "Calc Trail"
|
||||
"Calc Trail mode.
|
||||
This mode is used by the *Calc Trail* buffer, which records all results
|
||||
obtained by the GNU Emacs Calculator.
|
||||
|
@ -1397,26 +1402,18 @@ the Trail.
|
|||
|
||||
This buffer uses the same key map as the *Calculator* buffer; calculator
|
||||
commands given here will actually operate on the *Calculator* stack."
|
||||
(interactive)
|
||||
(fundamental-mode)
|
||||
(use-local-map calc-mode-map)
|
||||
(setq major-mode 'calc-trail-mode)
|
||||
(setq mode-name "Calc Trail")
|
||||
(setq truncate-lines t)
|
||||
(setq buffer-read-only t)
|
||||
(make-local-variable 'overlay-arrow-position)
|
||||
(make-local-variable 'overlay-arrow-string)
|
||||
(when buf
|
||||
(set (make-local-variable 'calc-main-buffer) buf))
|
||||
(when (= (buffer-size) 0)
|
||||
(let ((buffer-read-only nil))
|
||||
(insert (propertize "Emacs Calculator Trail\n" 'face 'italic))))
|
||||
(run-mode-hooks 'calc-trail-mode-hook))
|
||||
(insert (propertize "Emacs Calculator Trail\n" 'face 'italic)))))
|
||||
|
||||
(defun calc-create-buffer ()
|
||||
"Create and initialize a buffer for the Calculator."
|
||||
(set-buffer (get-buffer-create "*Calculator*"))
|
||||
(or (eq major-mode 'calc-mode)
|
||||
(or (derived-mode-p 'calc-mode)
|
||||
(calc-mode))
|
||||
(setq max-lisp-eval-depth (max max-lisp-eval-depth 1000))
|
||||
(when calc-always-load-extensions
|
||||
|
@ -1439,7 +1436,7 @@ commands given here will actually operate on the *Calculator* stack."
|
|||
(when (get-buffer-window "*Calc Keypad*")
|
||||
(calc-keypad)
|
||||
(set-buffer (window-buffer)))
|
||||
(if (eq major-mode 'calc-mode)
|
||||
(if (derived-mode-p 'calc-mode)
|
||||
(calc-quit)
|
||||
(let ((oldbuf (current-buffer)))
|
||||
(calc-create-buffer)
|
||||
|
@ -1490,7 +1487,7 @@ commands given here will actually operate on the *Calculator* stack."
|
|||
(if (and (equal (buffer-name) "*Gnuplot Trail*")
|
||||
(> (recursion-depth) 0))
|
||||
(exit-recursive-edit)
|
||||
(if (eq major-mode 'calc-edit-mode)
|
||||
(if (derived-mode-p 'calc-edit-mode)
|
||||
(calc-edit-finish arg)
|
||||
(if calc-was-keypad-mode
|
||||
(calc-keypad)
|
||||
|
@ -1504,13 +1501,13 @@ commands given here will actually operate on the *Calculator* stack."
|
|||
(if (and (equal (buffer-name) "*Gnuplot Trail*")
|
||||
(> (recursion-depth) 0))
|
||||
(exit-recursive-edit))
|
||||
(if (eq major-mode 'calc-edit-mode)
|
||||
(if (derived-mode-p 'calc-edit-mode)
|
||||
(calc-edit-cancel)
|
||||
(if (and interactive
|
||||
calc-embedded-info
|
||||
(eq (current-buffer) (aref calc-embedded-info 0)))
|
||||
(calc-embedded nil)
|
||||
(unless (eq major-mode 'calc-mode)
|
||||
(unless (derived-mode-p 'calc-mode)
|
||||
(calc-create-buffer))
|
||||
(run-hooks 'calc-end-hook)
|
||||
(if (integerp calc-undo-length)
|
||||
|
@ -1631,10 +1628,10 @@ See calc-keypad for details."
|
|||
(if (math-lessp 1 time)
|
||||
(calc-record time "(t)"))))
|
||||
(or (memq 'no-align calc-command-flags)
|
||||
(eq major-mode 'calc-trail-mode)
|
||||
(derived-mode-p 'calc-trail-mode)
|
||||
(calc-align-stack-window))
|
||||
(and (memq 'position-point calc-command-flags)
|
||||
(if (eq major-mode 'calc-mode)
|
||||
(if (derived-mode-p 'calc-mode)
|
||||
(progn
|
||||
(goto-char (point-min))
|
||||
(forward-line (1- calc-final-point-line))
|
||||
|
@ -1664,7 +1661,7 @@ See calc-keypad for details."
|
|||
(setq calc-command-flags (cons f calc-command-flags))))
|
||||
|
||||
(defun calc-select-buffer ()
|
||||
(or (eq major-mode 'calc-mode)
|
||||
(or (derived-mode-p 'calc-mode)
|
||||
(if calc-main-buffer
|
||||
(set-buffer calc-main-buffer)
|
||||
(let ((buf (get-buffer "*Calculator*")))
|
||||
|
@ -1801,7 +1798,7 @@ See calc-keypad for details."
|
|||
(and calc-embedded-info (calc-embedded-mode-line-change))))))
|
||||
|
||||
(defun calc-align-stack-window ()
|
||||
(if (eq major-mode 'calc-mode)
|
||||
(if (derived-mode-p 'calc-mode)
|
||||
(progn
|
||||
(let ((win (get-buffer-window (current-buffer))))
|
||||
(if win
|
||||
|
@ -1988,7 +1985,7 @@ See calc-keypad for details."
|
|||
(defvar calc-any-evaltos nil)
|
||||
(defun calc-refresh (&optional align)
|
||||
(interactive)
|
||||
(and (eq major-mode 'calc-mode)
|
||||
(and (derived-mode-p 'calc-mode)
|
||||
(not calc-executing-macro)
|
||||
(let* ((buffer-read-only nil)
|
||||
(save-point (point))
|
||||
|
@ -2016,7 +2013,7 @@ See calc-keypad for details."
|
|||
(calc-align-stack-window)
|
||||
(goto-char save-point))
|
||||
(if save-mark (set-mark save-mark))))
|
||||
(and calc-embedded-info (not (eq major-mode 'calc-mode))
|
||||
(and calc-embedded-info (not (derived-mode-p 'calc-mode))
|
||||
(with-current-buffer (aref calc-embedded-info 1)
|
||||
(calc-refresh align)))
|
||||
(setq calc-refresh-count (1+ calc-refresh-count)))
|
||||
|
@ -2078,12 +2075,13 @@ the United States."
|
|||
(null (buffer-name calc-trail-buffer)))
|
||||
(save-excursion
|
||||
(setq calc-trail-buffer (get-buffer-create "*Calc Trail*"))
|
||||
(let ((buf (or (and (not (eq major-mode 'calc-mode))
|
||||
(let ((buf (or (and (not (derived-mode-p 'calc-mode))
|
||||
(get-buffer "*Calculator*"))
|
||||
(current-buffer))))
|
||||
(set-buffer calc-trail-buffer)
|
||||
(or (eq major-mode 'calc-trail-mode)
|
||||
(calc-trail-mode buf)))))
|
||||
(unless (derived-mode-p 'calc-trail-mode)
|
||||
(calc-trail-mode)
|
||||
(set (make-local-variable 'calc-main-buffer) buf)))))
|
||||
(or (and calc-trail-pointer
|
||||
(eq (marker-buffer calc-trail-pointer) calc-trail-buffer))
|
||||
(with-current-buffer calc-trail-buffer
|
||||
|
@ -2152,7 +2150,7 @@ the United States."
|
|||
|
||||
(defun calc-trail-here ()
|
||||
(interactive)
|
||||
(if (eq major-mode 'calc-trail-mode)
|
||||
(if (derived-mode-p 'calc-trail-mode)
|
||||
(progn
|
||||
(beginning-of-line)
|
||||
(if (bobp)
|
||||
|
|
|
@ -1,3 +1,12 @@
|
|||
2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* semantic/grammar.el (semantic-grammar-mode): Use define-derived-mode.
|
||||
(semantic-grammar-mode-syntax-table): Rename from
|
||||
semantic-grammar-syntax-table.
|
||||
(semantic-grammar-mode-map): Rename from semantic-grammar-map.
|
||||
* data-debug.el (data-debug-mode-map): Rename from data-debug-map.
|
||||
(data-debug-mode): Use define-derived-mode.
|
||||
|
||||
2013-09-05 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* semantic/fw.el (semantic-make-local-hook):
|
||||
|
@ -15,15 +24,15 @@
|
|||
|
||||
* semantic/decorate/mode.el
|
||||
(semantic-decoration-on-includes-p-default)
|
||||
(semantic-decoration-on-includes-highlight-default): Declare for
|
||||
(semantic-decoration-on-includes-highlight-default): Declare for
|
||||
byte compiler.
|
||||
|
||||
* semantic/wisent/python.el (semantic/format): New require.
|
||||
|
||||
2013-07-27 Eric Ludlam <zappo@gnu.org>
|
||||
|
||||
* lisp/cedet/semantic/edit.el (semantic-edits-splice-remove): Wrap
|
||||
debug message removing middle tag in semantic-edits-verbose-flag
|
||||
* lisp/cedet/semantic/edit.el (semantic-edits-splice-remove):
|
||||
Wrap debug message removing middle tag in semantic-edits-verbose-flag
|
||||
check.
|
||||
|
||||
2013-07-27 David Engster <deng@randomsample.de>
|
||||
|
@ -69,8 +78,8 @@
|
|||
`semantic/decorate/include' anymore.
|
||||
(semantic-toggle-decoration-style): Error if an unknown decoration
|
||||
style is toggled.
|
||||
(define-semantic-decoration-style): Add new :load option. When
|
||||
:load is specified, add autoload tokens for the definition
|
||||
(define-semantic-decoration-style): Add new :load option.
|
||||
When :load is specified, add autoload tokens for the definition
|
||||
functions so that code is loaded when the mode is used.
|
||||
(semantic-decoration-on-includes): New autoload definition for
|
||||
highlighting includes.
|
||||
|
@ -94,8 +103,8 @@
|
|||
* semantic/ctxt.el (semantic-ctxt-end-of-symbol): New.
|
||||
(semantic-ctxt-current-symbol-default): New.
|
||||
|
||||
* semantic/bovine/el.el (semantic-default-elisp-setup): Add
|
||||
autoload cookie. Explain existence.
|
||||
* semantic/bovine/el.el (semantic-default-elisp-setup):
|
||||
Add autoload cookie. Explain existence.
|
||||
(footer): Add local variable for loaddefs.
|
||||
|
||||
* semantic/db.el (semanticdb-file-table-object): Add new filter,
|
||||
|
@ -120,7 +129,7 @@
|
|||
* ede/cpp-root.el (ede-preprocessor-map): Protect against init
|
||||
problems.
|
||||
|
||||
* ede/proj.el (ede-proj-target): Added a new "custom" option for
|
||||
* ede/proj.el (ede-proj-target): Add a new "custom" option for
|
||||
custom symbols representing a compiler or linker instead of
|
||||
restricting things to only the predefined compilers and linkers.
|
||||
|
||||
|
@ -198,15 +207,15 @@
|
|||
2013-04-27 David Engster <deng@randomsample.de>
|
||||
|
||||
* semantic/complete.el
|
||||
(semantic-collector-calculate-completions-raw): If
|
||||
`completionslist' is not set, refresh the cache if necessary and
|
||||
(semantic-collector-calculate-completions-raw):
|
||||
If `completionslist' is not set, refresh the cache if necessary and
|
||||
use it for completions. This fixes the
|
||||
`semantic-collector-buffer-deep' collector (bug#14265).
|
||||
|
||||
2013-03-26 Leo Liu <sdl.web@gmail.com>
|
||||
|
||||
* semantic/senator.el (senator-copy-tag-to-register): Move
|
||||
register handling logic from register.el. (Bug#14052)
|
||||
* semantic/senator.el (senator-copy-tag-to-register):
|
||||
Move register handling logic from register.el. (Bug#14052)
|
||||
|
||||
2013-03-21 Eric Ludlam <zappo@gnu.org>
|
||||
|
||||
|
@ -223,17 +232,17 @@
|
|||
|
||||
* semantic/find.el (semantic-filter-tags-by-class): New function.
|
||||
|
||||
* semantic/tag-ls.el (semantic-tag-similar-p-default): Add
|
||||
short-circuit in case tag1 and 2 are identical.
|
||||
* semantic/tag-ls.el (semantic-tag-similar-p-default):
|
||||
Add short-circuit in case tag1 and 2 are identical.
|
||||
|
||||
* semantic/analyze/fcn.el
|
||||
(semantic-analyze-dereference-metatype-stack): Use
|
||||
`semantic-tag-similar-p' instead of 'eq' when comparing two tags
|
||||
(semantic-analyze-dereference-metatype-stack):
|
||||
Use `semantic-tag-similar-p' instead of 'eq' when comparing two tags
|
||||
during metatype evaluation in case they are the same, but not the
|
||||
same node. (Tweaked patch from Tomasz Gajewski) (Tiny change)
|
||||
|
||||
* semantic/db-find.el (semanticdb-partial-synchronize): Fix
|
||||
require to semantic/db-typecache to be correct.
|
||||
* semantic/db-find.el (semanticdb-partial-synchronize):
|
||||
Fix require to semantic/db-typecache to be correct.
|
||||
(semanticdb-find-tags-external-children-of-type): Make this a
|
||||
brutish search by default.
|
||||
|
||||
|
@ -243,19 +252,19 @@
|
|||
input tag as the place to start searching for externally defined
|
||||
methods.
|
||||
|
||||
* semantic/db-file.el (semanticdb-default-save-directory): Doc
|
||||
fix: Add ref to default value.
|
||||
* semantic/db-file.el (semanticdb-default-save-directory):
|
||||
Doc fix: Add ref to default value.
|
||||
|
||||
* semantic/complete.el (semantic-complete-post-command-hook): When
|
||||
detecting if cursor is outside completion area, do so if cursor
|
||||
* semantic/complete.el (semantic-complete-post-command-hook):
|
||||
When detecting if cursor is outside completion area, do so if cursor
|
||||
moves before start of overlay, or the original starting location
|
||||
of the overlay (i.e., if user deletes past beginning of the
|
||||
overlay region).
|
||||
(semantic-complete-inline-tag-engine): Initialize original start
|
||||
of `semantic-complete-inline-overlay'.
|
||||
|
||||
* semantic/bovine/c.el (semantic-c-describe-environment): Update
|
||||
some section titles. Test semanticdb table before printing it.
|
||||
* semantic/bovine/c.el (semantic-c-describe-environment):
|
||||
Update some section titles. Test semanticdb table before printing it.
|
||||
(semantic-c-reset-preprocessor-symbol-map): Update
|
||||
`semantic-lex-spp-macro-symbol-obarray' outside the loop over all
|
||||
the files contributing to its value.
|
||||
|
@ -271,8 +280,8 @@
|
|||
* srecode/cpp.el (srecode-semantic-handle-:c): Replace all
|
||||
characters in FILENAME_SYMBOL that aren't valid CPP symbol chars.
|
||||
|
||||
* srecode/map.el (srecode-map-validate-file-for-mode): Force
|
||||
semantic to load if it is not active in the template being added
|
||||
* srecode/map.el (srecode-map-validate-file-for-mode):
|
||||
Force semantic to load if it is not active in the template being added
|
||||
to the map.
|
||||
|
||||
* srecode/srt.el: Add local variables for setting the autoload
|
||||
|
@ -287,7 +296,7 @@
|
|||
has both a version variable and a Version: comment, always use
|
||||
`call-next-method'.
|
||||
|
||||
* ede/cpp-root.el (ede-set-project-variables): Deleted.
|
||||
* ede/cpp-root.el (ede-set-project-variables): Delete.
|
||||
`ede-preprocessor-map' does the job this function was attempting
|
||||
to do with :spp-table.
|
||||
(ede-preprocessor-map): Update file tests to provide better
|
||||
|
@ -302,8 +311,8 @@
|
|||
2013-03-21 David Engster <deng@randomsample.de>
|
||||
|
||||
* semantic/bovine/c.el (semantic-get-local-variables): Also add a
|
||||
new variable 'this' if we are in an inline member function. For
|
||||
detecting this, we check overlays at point if there is a class
|
||||
new variable 'this' if we are in an inline member function.
|
||||
For detecting this, we check overlays at point if there is a class
|
||||
spanning the current function. Also, the variable 'this' has to
|
||||
be a pointer.
|
||||
|
||||
|
@ -350,14 +359,14 @@
|
|||
|
||||
2013-03-21 Tomasz Gajewski <tomga@wp.pl> (tiny change)
|
||||
|
||||
* ede/cpp-root.el (ede-project-autoload, initialize-instance): Fix
|
||||
EDE file symbol to match rename. Fix ede-cpp-root symbol to
|
||||
* ede/cpp-root.el (ede-project-autoload, initialize-instance):
|
||||
Fix EDE file symbol to match rename. Fix ede-cpp-root symbol to
|
||||
include -project in name.
|
||||
|
||||
2013-03-21 Alex Ott <alexott@gmail.com>
|
||||
|
||||
* cedet-files.el (cedet-files-list-recursively): New. Recursively
|
||||
find files whose names are matching to given regex.
|
||||
* cedet-files.el (cedet-files-list-recursively): New.
|
||||
Recursively find files whose names are matching to given regex.
|
||||
|
||||
* ede.el (ede-current-project): Rewrite to avoid imperative style.
|
||||
|
||||
|
|
|
@ -869,7 +869,8 @@ If PARENT is non-nil, it is somehow related as a parent to thing."
|
|||
table)
|
||||
"Syntax table used in data-debug macro buffers.")
|
||||
|
||||
(defvar data-debug-map
|
||||
(define-obsolete-variable-alias 'data-debug-map 'data-debug-mode-map "24.1")
|
||||
(defvar data-debug-mode-map
|
||||
(let ((km (make-sparse-keymap)))
|
||||
(suppress-keymap km)
|
||||
(define-key km [mouse-2] 'data-debug-expand-or-contract-mouse)
|
||||
|
@ -887,22 +888,15 @@ If PARENT is non-nil, it is somehow related as a parent to thing."
|
|||
:group 'data-debug
|
||||
:type 'hook)
|
||||
|
||||
(defun data-debug-mode ()
|
||||
(define-derived-mode data-debug-mode fundamental-mode "DATA-DEBUG"
|
||||
"Major-mode for the Analyzer debugger.
|
||||
|
||||
\\{data-debug-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'data-debug-mode
|
||||
mode-name "DATA-DEBUG"
|
||||
comment-start ";;"
|
||||
\\{data-debug-mode-map}"
|
||||
(setq comment-start ";;"
|
||||
comment-end ""
|
||||
buffer-read-only t)
|
||||
(set (make-local-variable 'comment-start-skip)
|
||||
(setq-local comment-start-skip
|
||||
"\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
|
||||
(set-syntax-table data-debug-mode-syntax-table)
|
||||
(use-local-map data-debug-map)
|
||||
(run-hooks 'data-debug-hook)
|
||||
(buffer-disable-undo)
|
||||
(set (make-local-variable 'font-lock-global-modes) nil)
|
||||
(font-lock-mode -1)
|
||||
|
|
|
@ -860,7 +860,7 @@ Lisp code."
|
|||
;; Use Unix EOLs, so that the file is portable to all platforms.
|
||||
(setq buffer-file-coding-system 'raw-text-unix)
|
||||
(erase-buffer)
|
||||
(unless (eq major-mode 'emacs-lisp-mode)
|
||||
(unless (derived-mode-p 'emacs-lisp-mode)
|
||||
(emacs-lisp-mode))
|
||||
|
||||
;;;; Header + Prologue
|
||||
|
@ -1102,7 +1102,9 @@ END is the limit of the search."
|
|||
;;;; Define major mode
|
||||
;;;;
|
||||
|
||||
(defvar semantic-grammar-syntax-table
|
||||
(define-obsolete-variable-alias 'semantic-grammar-syntax-table
|
||||
'semantic-grammar-mode-syntax-table "24.1")
|
||||
(defvar semantic-grammar-mode-syntax-table
|
||||
(let ((table (make-syntax-table (standard-syntax-table))))
|
||||
(modify-syntax-entry ?\: "." table) ;; COLON
|
||||
(modify-syntax-entry ?\> "." table) ;; GT
|
||||
|
@ -1170,7 +1172,9 @@ END is the limit of the search."
|
|||
semantic-grammar-mode-keywords-1
|
||||
"Font Lock keywords used to highlight Semantic grammar buffers.")
|
||||
|
||||
(defvar semantic-grammar-map
|
||||
(define-obsolete-variable-alias 'semantic-grammar-map
|
||||
'semantic-grammar-mode-map "24.1")
|
||||
(defvar semantic-grammar-mode-map
|
||||
(let ((km (make-sparse-keymap)))
|
||||
|
||||
(define-key km "|" 'semantic-grammar-electric-punctuation)
|
||||
|
@ -1271,22 +1275,17 @@ the change bounds to encompass the whole nonterminal tag."
|
|||
(semantic-tag-start outer)
|
||||
(semantic-tag-end outer)))))
|
||||
|
||||
(defun semantic-grammar-mode ()
|
||||
(define-derived-mode semantic-grammar-mode
|
||||
fundamental-mode "Semantic Grammar Framework"
|
||||
"Initialize a buffer for editing Semantic grammars.
|
||||
|
||||
\\{semantic-grammar-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'semantic-grammar-mode
|
||||
mode-name "Semantic Grammar Framework")
|
||||
\\{semantic-grammar-mode-map}"
|
||||
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||
(set (make-local-variable 'comment-start) ";;")
|
||||
;; Look within the line for a ; following an even number of backslashes
|
||||
;; after either a non-backslash or the line beginning.
|
||||
(set (make-local-variable 'comment-start-skip)
|
||||
"\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
|
||||
(set-syntax-table semantic-grammar-syntax-table)
|
||||
(use-local-map semantic-grammar-map)
|
||||
(set (make-local-variable 'indent-line-function)
|
||||
'semantic-grammar-indent)
|
||||
(set (make-local-variable 'fill-paragraph-function)
|
||||
|
@ -1335,15 +1334,14 @@ the change bounds to encompass the whole nonterminal tag."
|
|||
(semantic-make-local-hook 'semantic-edits-new-change-functions)
|
||||
(add-hook 'semantic-edits-new-change-functions
|
||||
'semantic-grammar-edits-new-change-hook-fcn
|
||||
nil t)
|
||||
(semantic-run-mode-hooks 'semantic-grammar-mode-hook))
|
||||
nil t))
|
||||
|
||||
;;;;
|
||||
;;;; Useful commands
|
||||
;;;;
|
||||
|
||||
(defvar semantic-grammar-skip-quoted-syntax-table
|
||||
(let ((st (copy-syntax-table semantic-grammar-syntax-table)))
|
||||
(let ((st (copy-syntax-table semantic-grammar-mode-syntax-table)))
|
||||
(modify-syntax-entry ?\' "$" st)
|
||||
st)
|
||||
"Syntax table to skip a whole quoted expression in grammar code.
|
||||
|
|
|
@ -121,7 +121,9 @@ The buffer is left in Command History mode."
|
|||
(error "No command history")
|
||||
(command-history-mode)))))
|
||||
|
||||
(defvar command-history-map
|
||||
(define-obsolete-variable-alias 'command-history-map
|
||||
'command-history-mode-map "24.1")
|
||||
(defvar command-history-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map lisp-mode-shared-map)
|
||||
(suppress-keymap map)
|
||||
|
@ -132,21 +134,11 @@ The buffer is left in Command History mode."
|
|||
map)
|
||||
"Keymap for `command-history-mode'.")
|
||||
|
||||
(defun command-history-mode ()
|
||||
(define-derived-mode command-history-mode fundamental-mode "Command History"
|
||||
"Major mode for listing and repeating recent commands.
|
||||
|
||||
Keybindings:
|
||||
\\{command-history-map}"
|
||||
(interactive)
|
||||
(Command-history-setup)
|
||||
(setq major-mode 'command-history-mode)
|
||||
(setq mode-name "Command History")
|
||||
(use-local-map command-history-map)
|
||||
(run-mode-hooks 'command-history-mode-hook))
|
||||
|
||||
(defun Command-history-setup ()
|
||||
(kill-all-local-variables)
|
||||
(use-local-map command-history-map)
|
||||
\\{command-history-mode-map}"
|
||||
(lisp-mode-variables nil)
|
||||
(set-syntax-table emacs-lisp-mode-syntax-table)
|
||||
(setq buffer-read-only t))
|
||||
|
|
|
@ -3793,25 +3793,21 @@ REGEXP-GROUP is the regular expression group in REGEXP to use."
|
|||
;; comint-mode will take care of it. The following example, from shell.el,
|
||||
;; is typical:
|
||||
;;
|
||||
;; (defvar shell-mode-map '())
|
||||
;; (cond ((not shell-mode-map)
|
||||
;; (setq shell-mode-map (copy-keymap comint-mode-map))
|
||||
;; (define-key shell-mode-map "\C-c\C-f" 'shell-forward-command)
|
||||
;; (define-key shell-mode-map "\C-c\C-b" 'shell-backward-command)
|
||||
;; (define-key shell-mode-map "\t" 'completion-at-point)
|
||||
;; (define-key shell-mode-map "\M-?"
|
||||
;; 'comint-dynamic-list-filename-completions)))
|
||||
;; (defvar shell-mode-map
|
||||
;; (let ((map (make-sparse-keymap)))
|
||||
;; (set-keymap-parent map comint-mode-map)
|
||||
;; (define-key map "\C-c\C-f" 'shell-forward-command)
|
||||
;; (define-key map "\C-c\C-b" 'shell-backward-command)
|
||||
;; (define-key map "\t" 'completion-at-point)
|
||||
;; (define-key map "\M-?"
|
||||
;; 'comint-dynamic-list-filename-completions)
|
||||
;; map))
|
||||
;;
|
||||
;; (defun shell-mode ()
|
||||
;; (interactive)
|
||||
;; (comint-mode)
|
||||
;; (define-derived-mode shell-mode comint-mode "Shell"
|
||||
;; "Doc."
|
||||
;; (setq comint-prompt-regexp shell-prompt-pattern)
|
||||
;; (setq major-mode 'shell-mode)
|
||||
;; (setq mode-name "Shell")
|
||||
;; (use-local-map shell-mode-map)
|
||||
;; (setq-local shell-directory-stack nil)
|
||||
;; (add-hook 'comint-input-filter-functions 'shell-directory-tracker)
|
||||
;; (run-mode-hooks 'shell-mode-hook))
|
||||
;; (add-hook 'comint-input-filter-functions 'shell-directory-tracker))
|
||||
;;
|
||||
;;
|
||||
;; Completion for comint-mode users
|
||||
|
|
|
@ -758,9 +758,8 @@ who requested the timer. NULL-ON-ERROR is ignored."
|
|||
Evaluates all cached timer functions in sequence."
|
||||
(let ((l dframe-client-functions))
|
||||
(while (and l (sit-for 0))
|
||||
(condition-case er
|
||||
(funcall (car l))
|
||||
(error (message "DFRAME TIMER ERROR: %S" er)))
|
||||
(with-demoted-errors "DFRAME TIMER ERROR: %S"
|
||||
(funcall (car l)))
|
||||
(setq l (cdr l)))))
|
||||
|
||||
;;; Menu hacking for mouse-3
|
||||
|
|
|
@ -1459,6 +1459,9 @@ to mark all zero length files."
|
|||
s nil))
|
||||
(setq mode (buffer-substring (point) (+ mode-len (point))))
|
||||
(forward-char mode-len)
|
||||
;; Skip any extended attributes marker ("." or "+").
|
||||
(or (looking-at " ")
|
||||
(forward-char 1))
|
||||
(setq nlink (read (current-buffer)))
|
||||
;; Karsten Wenger <kw@cis.uni-muenchen.de> fixed uid.
|
||||
(setq uid (buffer-substring (1+ (point))
|
||||
|
|
|
@ -4352,7 +4352,7 @@ instead.
|
|||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "dired-x" "dired-x.el" "1bf4009b81e55bf51947bc87b2c82994")
|
||||
;;;### (autoloads nil "dired-x" "dired-x.el" "11fd4a8afa32507cc32d4a04d852587f")
|
||||
;;; Generated autoloads from dired-x.el
|
||||
|
||||
(autoload 'dired-jump "dired-x" "\
|
||||
|
|
|
@ -117,7 +117,6 @@ The Command History listing is recomputed each time this mode is invoked."
|
|||
(save-window-excursion
|
||||
(list-command-history)
|
||||
(set-buffer "*Command History*")
|
||||
(Command-history-setup)
|
||||
(setq major-mode 'electric-command-history)
|
||||
(setq mode-name "Electric History")
|
||||
(use-local-map electric-history-map))
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
;;; copyright.el --- update the copyright notice in current buffer
|
||||
|
||||
;; Copyright (C) 1991-1995, 1998, 2001-2013 Free Software Foundation,
|
||||
;; Inc.
|
||||
;; Copyright (C) 1991-1995, 1998, 2001-2013 Free Software Foundation, Inc.
|
||||
|
||||
;; Author: Daniel Pfeiffer <occitan@esperanto.org>
|
||||
;; Keywords: maint, tools
|
||||
|
@ -145,18 +144,17 @@ The header must match `copyright-regexp' and `copyright-names-regexp', if set.
|
|||
This function sets the match-data that `copyright-update-year' uses."
|
||||
(widen)
|
||||
(goto-char (copyright-start-point))
|
||||
(condition-case err
|
||||
;; (1) Need the extra \\( \\) around copyright-regexp because we
|
||||
;; goto (match-end 1) below. See note (2) below.
|
||||
(copyright-re-search (concat "\\(" copyright-regexp
|
||||
"\\)\\([ \t]*\n\\)?.*\\(?:"
|
||||
copyright-names-regexp "\\)")
|
||||
(copyright-limit)
|
||||
t)
|
||||
;; In case the regexp is rejected. This is useful because
|
||||
;; copyright-update is typically called from before-save-hook where
|
||||
;; such an error is very inconvenient for the user.
|
||||
(error (message "Can't update copyright: %s" err) nil)))
|
||||
;; In case the regexp is rejected. This is useful because
|
||||
;; copyright-update is typically called from before-save-hook where
|
||||
;; such an error is very inconvenient for the user.
|
||||
(with-demoted-errors "Can't update copyright: %s"
|
||||
;; (1) Need the extra \\( \\) around copyright-regexp because we
|
||||
;; goto (match-end 1) below. See note (2) below.
|
||||
(copyright-re-search (concat "\\(" copyright-regexp
|
||||
"\\)\\([ \t]*\n\\)?.*\\(?:"
|
||||
copyright-names-regexp "\\)")
|
||||
(copyright-limit)
|
||||
t)))
|
||||
|
||||
(defun copyright-find-end ()
|
||||
"Possibly adjust the search performed by `copyright-find-copyright'.
|
||||
|
|
|
@ -626,7 +626,7 @@ The environment used is the one when entering the activation frame at point."
|
|||
|
||||
(put 'debugger-mode 'mode-class 'special)
|
||||
|
||||
(defun debugger-mode ()
|
||||
(define-derived-mode debugger-mode fundamental-mode "Debugger"
|
||||
"Mode for backtrace buffers, selected in debugger.
|
||||
\\<debugger-mode-map>
|
||||
A line starts with `*' if exiting that frame will call the debugger.
|
||||
|
@ -641,13 +641,9 @@ which functions will enter the debugger when called.
|
|||
|
||||
Complete list of commands:
|
||||
\\{debugger-mode-map}"
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'debugger-mode)
|
||||
(setq mode-name "Debugger")
|
||||
(setq truncate-lines t)
|
||||
(set-syntax-table emacs-lisp-mode-syntax-table)
|
||||
(use-local-map debugger-mode-map)
|
||||
(run-mode-hooks 'debugger-mode-hook))
|
||||
(use-local-map debugger-mode-map))
|
||||
|
||||
(defcustom debugger-record-buffer "*Debugger-record*"
|
||||
"Buffer name for expression values, for \\[debugger-record-expression]."
|
||||
|
|
|
@ -309,27 +309,26 @@ This variable is expected to be made buffer-local by modes (other than
|
|||
Emacs Lisp mode) that support ElDoc.")
|
||||
|
||||
(defun eldoc-print-current-symbol-info ()
|
||||
(condition-case err
|
||||
(and (or (eldoc-display-message-p) eldoc-post-insert-mode)
|
||||
(if eldoc-documentation-function
|
||||
(eldoc-message (funcall eldoc-documentation-function))
|
||||
(let* ((current-symbol (eldoc-current-symbol))
|
||||
(current-fnsym (eldoc-fnsym-in-current-sexp))
|
||||
(doc (cond
|
||||
((null current-fnsym)
|
||||
nil)
|
||||
((eq current-symbol (car current-fnsym))
|
||||
(or (apply 'eldoc-get-fnsym-args-string
|
||||
current-fnsym)
|
||||
(eldoc-get-var-docstring current-symbol)))
|
||||
(t
|
||||
(or (eldoc-get-var-docstring current-symbol)
|
||||
(apply 'eldoc-get-fnsym-args-string
|
||||
current-fnsym))))))
|
||||
(eldoc-message doc))))
|
||||
;; This is run from post-command-hook or some idle timer thing,
|
||||
;; so we need to be careful that errors aren't ignored.
|
||||
(error (message "eldoc error: %s" err))))
|
||||
;; This is run from post-command-hook or some idle timer thing,
|
||||
;; so we need to be careful that errors aren't ignored.
|
||||
(with-demoted-errors "eldoc error: %s"
|
||||
(and (or (eldoc-display-message-p) eldoc-post-insert-mode)
|
||||
(if eldoc-documentation-function
|
||||
(eldoc-message (funcall eldoc-documentation-function))
|
||||
(let* ((current-symbol (eldoc-current-symbol))
|
||||
(current-fnsym (eldoc-fnsym-in-current-sexp))
|
||||
(doc (cond
|
||||
((null current-fnsym)
|
||||
nil)
|
||||
((eq current-symbol (car current-fnsym))
|
||||
(or (apply 'eldoc-get-fnsym-args-string
|
||||
current-fnsym)
|
||||
(eldoc-get-var-docstring current-symbol)))
|
||||
(t
|
||||
(or (eldoc-get-var-docstring current-symbol)
|
||||
(apply 'eldoc-get-fnsym-args-string
|
||||
current-fnsym))))))
|
||||
(eldoc-message doc))))))
|
||||
|
||||
(defun eldoc-get-fnsym-args-string (sym &optional index)
|
||||
"Return a string containing the parameter list of the function SYM.
|
||||
|
|
|
@ -2374,9 +2374,8 @@ If FILE is nil, try to load a default file. The default file names are
|
|||
(goto-char (point-min))
|
||||
(beep)
|
||||
(and (tpu-y-or-n-p "Copy key definitions to the new file now? ")
|
||||
(condition-case conditions
|
||||
(copy-file oldname newname)
|
||||
(error (message "Sorry, couldn't copy - %s." (cdr conditions)))))
|
||||
(with-demoted-errors "Sorry, couldn't copy - %s."
|
||||
(copy-file oldname newname)))
|
||||
(kill-buffer "*TPU-Notice*")))
|
||||
|
||||
(defvar tpu-edt-old-global-values nil)
|
||||
|
|
|
@ -73,8 +73,7 @@
|
|||
(define-key map "\C-x" 'save-buffers-kill-emacs)
|
||||
(define-key map "y" 'ws-delete-block)
|
||||
(define-key map "\C-y" 'ws-delete-block)
|
||||
map)
|
||||
"")
|
||||
map))
|
||||
|
||||
(defvar wordstar-C-o-map
|
||||
(let ((map (make-keymap)))
|
||||
|
@ -140,8 +139,7 @@
|
|||
(define-key map "y" 'ws-kill-eol)
|
||||
(define-key map "\C-y" 'ws-kill-eol)
|
||||
(define-key map "\177" 'ws-kill-bol)
|
||||
map)
|
||||
"")
|
||||
map))
|
||||
|
||||
(defvar wordstar-mode-map
|
||||
(let ((map (make-keymap)))
|
||||
|
@ -170,17 +168,16 @@
|
|||
(define-key map "\C-x" 'next-line)
|
||||
(define-key map "\C-y" 'kill-complete-line)
|
||||
(define-key map "\C-z" 'scroll-up-line)
|
||||
map)
|
||||
"")
|
||||
map))
|
||||
|
||||
;; wordstar-C-j-map not yet implemented
|
||||
(defvar wordstar-C-j-map nil "")
|
||||
(defvar wordstar-C-j-map nil)
|
||||
|
||||
|
||||
(put 'wordstar-mode 'mode-class 'special)
|
||||
|
||||
;;;###autoload
|
||||
(defun wordstar-mode ()
|
||||
(define-derived-mode wordstar-mode fundamental-mode "WordStar"
|
||||
"Major mode with WordStar-like key bindings.
|
||||
|
||||
BUGS:
|
||||
|
@ -191,106 +188,7 @@ BUGS:
|
|||
- Search and replace (C-q a) is only available in forward direction
|
||||
|
||||
No key bindings beginning with ESC are installed, they will work
|
||||
Emacs-like.
|
||||
|
||||
The key bindings are:
|
||||
|
||||
C-a backward-word
|
||||
C-b fill-paragraph
|
||||
C-c scroll-up-line
|
||||
C-d forward-char
|
||||
C-e previous-line
|
||||
C-f forward-word
|
||||
C-g delete-char
|
||||
C-h backward-char
|
||||
C-i indent-for-tab-command
|
||||
C-j help-for-help
|
||||
C-k ordstar-C-k-map
|
||||
C-l ws-repeat-search
|
||||
C-n open-line
|
||||
C-p quoted-insert
|
||||
C-r scroll-down-line
|
||||
C-s backward-char
|
||||
C-t kill-word
|
||||
C-u keyboard-quit
|
||||
C-v overwrite-mode
|
||||
C-w scroll-down
|
||||
C-x next-line
|
||||
C-y kill-complete-line
|
||||
C-z scroll-up
|
||||
|
||||
C-k 0 ws-set-marker-0
|
||||
C-k 1 ws-set-marker-1
|
||||
C-k 2 ws-set-marker-2
|
||||
C-k 3 ws-set-marker-3
|
||||
C-k 4 ws-set-marker-4
|
||||
C-k 5 ws-set-marker-5
|
||||
C-k 6 ws-set-marker-6
|
||||
C-k 7 ws-set-marker-7
|
||||
C-k 8 ws-set-marker-8
|
||||
C-k 9 ws-set-marker-9
|
||||
C-k b ws-begin-block
|
||||
C-k c ws-copy-block
|
||||
C-k d save-buffers-kill-emacs
|
||||
C-k f find-file
|
||||
C-k h ws-show-markers
|
||||
C-k i ws-indent-block
|
||||
C-k k ws-end-block
|
||||
C-k p ws-print-block
|
||||
C-k q kill-emacs
|
||||
C-k r insert-file
|
||||
C-k s save-some-buffers
|
||||
C-k t ws-mark-word
|
||||
C-k u ws-exdent-block
|
||||
C-k C-u keyboard-quit
|
||||
C-k v ws-move-block
|
||||
C-k w ws-write-block
|
||||
C-k x kill-emacs
|
||||
C-k y ws-delete-block
|
||||
|
||||
C-o c wordstar-center-line
|
||||
C-o b switch-to-buffer
|
||||
C-o j justify-current-line
|
||||
C-o k kill-buffer
|
||||
C-o l list-buffers
|
||||
C-o m auto-fill-mode
|
||||
C-o r set-fill-column
|
||||
C-o C-u keyboard-quit
|
||||
C-o wd delete-other-windows
|
||||
C-o wh split-window-right
|
||||
C-o wo other-window
|
||||
C-o wv split-window-below
|
||||
|
||||
C-q 0 ws-find-marker-0
|
||||
C-q 1 ws-find-marker-1
|
||||
C-q 2 ws-find-marker-2
|
||||
C-q 3 ws-find-marker-3
|
||||
C-q 4 ws-find-marker-4
|
||||
C-q 5 ws-find-marker-5
|
||||
C-q 6 ws-find-marker-6
|
||||
C-q 7 ws-find-marker-7
|
||||
C-q 8 ws-find-marker-8
|
||||
C-q 9 ws-find-marker-9
|
||||
C-q a ws-query-replace
|
||||
C-q b ws-to-block-begin
|
||||
C-q c end-of-buffer
|
||||
C-q d end-of-line
|
||||
C-q f ws-search
|
||||
C-q k ws-to-block-end
|
||||
C-q l ws-undo
|
||||
C-q p ws-last-cursorp
|
||||
C-q r beginning-of-buffer
|
||||
C-q C-u keyboard-quit
|
||||
C-q w ws-last-error
|
||||
C-q y ws-kill-eol
|
||||
C-q DEL ws-kill-bol
|
||||
"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(use-local-map wordstar-mode-map)
|
||||
(setq mode-name "WordStar")
|
||||
(setq major-mode 'wordstar-mode)
|
||||
(run-mode-hooks 'wordstar-mode-hook))
|
||||
Emacs-like.")
|
||||
|
||||
|
||||
(defun wordstar-center-paragraph ()
|
||||
|
|
|
@ -221,18 +221,11 @@ file named by `eshell-aliases-file'.")
|
|||
(let ((alias (eshell-lookup-alias command)))
|
||||
(if alias
|
||||
(throw 'eshell-replace-command
|
||||
(list
|
||||
'let
|
||||
(list
|
||||
(list 'eshell-command-name
|
||||
(list 'quote eshell-last-command-name))
|
||||
(list 'eshell-command-arguments
|
||||
(list 'quote eshell-last-arguments))
|
||||
(list 'eshell-prevent-alias-expansion
|
||||
(list 'quote
|
||||
(cons command
|
||||
eshell-prevent-alias-expansion))))
|
||||
(eshell-parse-command (nth 1 alias))))))))
|
||||
`(let ((eshell-command-name ',eshell-last-command-name)
|
||||
(eshell-command-arguments ',eshell-last-arguments)
|
||||
(eshell-prevent-alias-expansion
|
||||
',(cons command eshell-prevent-alias-expansion)))
|
||||
,(eshell-parse-command (nth 1 alias))))))))
|
||||
|
||||
(defun eshell-alias-completions (name)
|
||||
"Find all possible completions for NAME.
|
||||
|
|
|
@ -180,6 +180,8 @@ interpretation."
|
|||
(goto-char (1+ end))))))))))
|
||||
|
||||
(defvar eshell-glob-chars-regexp nil)
|
||||
(defvar eshell-glob-matches)
|
||||
(defvar message-shown)
|
||||
|
||||
(defun eshell-glob-regexp (pattern)
|
||||
"Convert glob-pattern PATTERN to a regular expression.
|
||||
|
@ -262,9 +264,6 @@ the form:
|
|||
(error "No matches found: %s" glob)
|
||||
glob))))
|
||||
|
||||
(defvar eshell-glob-matches)
|
||||
(defvar message-shown)
|
||||
|
||||
;; FIXME does this really need to abuse eshell-glob-matches, message-shown?
|
||||
(defun eshell-glob-entries (path globs &optional recurse-p)
|
||||
"Glob the entries in PATHS, possibly recursing if RECURSE-P is non-nil."
|
||||
|
|
|
@ -268,6 +268,25 @@ scope during the evaluation of TEST-SEXP."
|
|||
:type '(repeat (cons function face))
|
||||
:group 'eshell-ls)
|
||||
|
||||
(defvar block-size)
|
||||
(defvar dereference-links)
|
||||
(defvar dir-literal)
|
||||
(defvar error-func)
|
||||
(defvar flush-func)
|
||||
(defvar human-readable)
|
||||
(defvar ignore-pattern)
|
||||
(defvar insert-func)
|
||||
(defvar listing-style)
|
||||
(defvar numeric-uid-gid)
|
||||
(defvar reverse-list)
|
||||
(defvar show-all)
|
||||
(defvar show-almost-all)
|
||||
(defvar show-recursive)
|
||||
(defvar show-size)
|
||||
(defvar sort-method)
|
||||
(defvar ange-cache)
|
||||
(defvar dired-flag)
|
||||
|
||||
;;; Functions:
|
||||
|
||||
(defun eshell-ls-insert-directory
|
||||
|
@ -315,25 +334,6 @@ instead."
|
|||
|
||||
(put 'eshell/ls 'eshell-no-numeric-conversions t)
|
||||
|
||||
(defvar block-size)
|
||||
(defvar dereference-links)
|
||||
(defvar dir-literal)
|
||||
(defvar error-func)
|
||||
(defvar flush-func)
|
||||
(defvar human-readable)
|
||||
(defvar ignore-pattern)
|
||||
(defvar insert-func)
|
||||
(defvar listing-style)
|
||||
(defvar numeric-uid-gid)
|
||||
(defvar reverse-list)
|
||||
(defvar show-all)
|
||||
(defvar show-almost-all)
|
||||
(defvar show-recursive)
|
||||
(defvar show-size)
|
||||
(defvar sort-method)
|
||||
(defvar ange-cache)
|
||||
(defvar dired-flag)
|
||||
|
||||
(declare-function eshell-glob-regexp "em-glob" (pattern))
|
||||
|
||||
(defun eshell-do-ls (&rest args)
|
||||
|
|
|
@ -307,7 +307,7 @@ functions. PRED-FUNCS take a filename and return t if the test
|
|||
succeeds; MOD-FUNCS take any string and preform a modification,
|
||||
returning the resultant string."
|
||||
(let (result negate follow preds mods)
|
||||
(condition-case err
|
||||
(condition-case nil
|
||||
(while (not (eobp))
|
||||
(let ((char (char-after)))
|
||||
(cond
|
||||
|
|
|
@ -218,7 +218,7 @@ lock it at that."
|
|||
(cdar bindings))
|
||||
(setq bindings (cdr bindings)))))
|
||||
|
||||
(defun eshell-delete-backward-char (n &optional killflag)
|
||||
(defun eshell-delete-backward-char (n)
|
||||
"Delete the last character, unless it's part of the output."
|
||||
(interactive "P")
|
||||
(let ((count (prefix-numeric-value n)))
|
||||
|
|
|
@ -714,6 +714,8 @@ available..."
|
|||
(goto-char (point-min))
|
||||
(resize-temp-buffer-window))))))
|
||||
|
||||
(defvar compilation-scroll-output)
|
||||
|
||||
(defun eshell-grep (command args &optional maybe-use-occur)
|
||||
"Generic service function for the various grep aliases.
|
||||
It calls Emacs's grep utility if the command is not redirecting output,
|
||||
|
@ -989,7 +991,7 @@ Show wall-clock time elapsed during execution of COMMAND.")
|
|||
(setq args nil)
|
||||
(setcdr (last args 3) nil))
|
||||
(with-current-buffer
|
||||
(condition-case err
|
||||
(condition-case nil
|
||||
(diff-no-select
|
||||
old new
|
||||
(nil-blank-string (eshell-flatten-and-stringify args)))
|
||||
|
@ -1014,6 +1016,8 @@ Show wall-clock time elapsed during execution of COMMAND.")
|
|||
|
||||
(put 'eshell/diff 'eshell-no-numeric-conversions t)
|
||||
|
||||
(defvar locate-history-list)
|
||||
|
||||
(defun eshell/locate (&rest args)
|
||||
"Alias \"locate\" to call Emacs `locate' function."
|
||||
(if (or eshell-plain-locate-behavior
|
||||
|
|
|
@ -278,7 +278,7 @@ Point is left at the end of the arguments."
|
|||
(eshell-resolve-current-argument)
|
||||
eshell-current-argument))
|
||||
|
||||
(defsubst eshell-operator (&rest args)
|
||||
(defsubst eshell-operator (&rest _args)
|
||||
"A stub function that generates an error if a floating operator is found."
|
||||
(error "Unhandled operator in input text"))
|
||||
|
||||
|
|
|
@ -650,7 +650,7 @@ For an external command, it means an exit code of 0."
|
|||
(looking-at eshell-lisp-regexp))
|
||||
(let* ((here (point))
|
||||
(obj
|
||||
(condition-case err
|
||||
(condition-case nil
|
||||
(read (current-buffer))
|
||||
(end-of-file
|
||||
(throw 'eshell-incomplete ?\()))))
|
||||
|
|
|
@ -220,74 +220,67 @@ This is used by `eshell-watch-for-password-prompt'."
|
|||
(defvar eshell-last-output-end nil)
|
||||
|
||||
(defvar eshell-currently-handling-window nil)
|
||||
(defvar eshell-mode-syntax-table nil)
|
||||
(defvar eshell-mode-abbrev-table nil)
|
||||
|
||||
(define-abbrev-table 'eshell-mode-abbrev-table ())
|
||||
|
||||
(if (not eshell-mode-syntax-table)
|
||||
(let ((i 0))
|
||||
(setq eshell-mode-syntax-table (make-syntax-table))
|
||||
(while (< i ?0)
|
||||
(modify-syntax-entry i "_ " eshell-mode-syntax-table)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?9))
|
||||
(while (< i ?A)
|
||||
(modify-syntax-entry i "_ " eshell-mode-syntax-table)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?Z))
|
||||
(while (< i ?a)
|
||||
(modify-syntax-entry i "_ " eshell-mode-syntax-table)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?z))
|
||||
(while (< i 128)
|
||||
(modify-syntax-entry i "_ " eshell-mode-syntax-table)
|
||||
(setq i (1+ i)))
|
||||
(modify-syntax-entry ? " " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\t " " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\f " " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\n "> " eshell-mode-syntax-table)
|
||||
;; Give CR the same syntax as newline, for selective-display.
|
||||
(modify-syntax-entry ?\^m "> " eshell-mode-syntax-table)
|
||||
;;; (modify-syntax-entry ?\; "< " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?` "' " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?' "' " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?, "' " eshell-mode-syntax-table)
|
||||
;; Used to be singlequote; changed for flonums.
|
||||
(modify-syntax-entry ?. "_ " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?- "_ " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?| ". " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?# "' " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\" "\" " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\\ "/ " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\( "() " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\) ")( " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\{ "(} " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\} "){ " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\[ "(] " eshell-mode-syntax-table)
|
||||
(modify-syntax-entry ?\] ")[ " eshell-mode-syntax-table)
|
||||
;; All non-word multibyte characters should be `symbol'.
|
||||
(if (featurep 'xemacs)
|
||||
(map-char-table
|
||||
(function
|
||||
(lambda (key val)
|
||||
(and (characterp key)
|
||||
(>= (char-int key) 256)
|
||||
(/= (char-syntax key) ?w)
|
||||
(modify-syntax-entry key "_ "
|
||||
eshell-mode-syntax-table))))
|
||||
(standard-syntax-table))
|
||||
(map-char-table
|
||||
(function
|
||||
(lambda (key val)
|
||||
(and (if (consp key)
|
||||
(and (>= (car key) 128)
|
||||
(/= (char-syntax (car key)) ?w))
|
||||
(and (>= key 256)
|
||||
(/= (char-syntax key) ?w)))
|
||||
(modify-syntax-entry key "_ "
|
||||
eshell-mode-syntax-table))))
|
||||
(standard-syntax-table)))))
|
||||
(defvar eshell-mode-syntax-table
|
||||
(let ((st (make-syntax-table))
|
||||
(i 0))
|
||||
(while (< i ?0)
|
||||
(modify-syntax-entry i "_ " st)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?9))
|
||||
(while (< i ?A)
|
||||
(modify-syntax-entry i "_ " st)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?Z))
|
||||
(while (< i ?a)
|
||||
(modify-syntax-entry i "_ " st)
|
||||
(setq i (1+ i)))
|
||||
(setq i (1+ ?z))
|
||||
(while (< i 128)
|
||||
(modify-syntax-entry i "_ " st)
|
||||
(setq i (1+ i)))
|
||||
(modify-syntax-entry ? " " st)
|
||||
(modify-syntax-entry ?\t " " st)
|
||||
(modify-syntax-entry ?\f " " st)
|
||||
(modify-syntax-entry ?\n "> " st)
|
||||
;; Give CR the same syntax as newline, for selective-display.
|
||||
(modify-syntax-entry ?\^m "> " st)
|
||||
;; (modify-syntax-entry ?\; "< " st)
|
||||
(modify-syntax-entry ?` "' " st)
|
||||
(modify-syntax-entry ?' "' " st)
|
||||
(modify-syntax-entry ?, "' " st)
|
||||
;; Used to be singlequote; changed for flonums.
|
||||
(modify-syntax-entry ?. "_ " st)
|
||||
(modify-syntax-entry ?- "_ " st)
|
||||
(modify-syntax-entry ?| ". " st)
|
||||
(modify-syntax-entry ?# "' " st)
|
||||
(modify-syntax-entry ?\" "\" " st)
|
||||
(modify-syntax-entry ?\\ "/ " st)
|
||||
(modify-syntax-entry ?\( "() " st)
|
||||
(modify-syntax-entry ?\) ")( " st)
|
||||
(modify-syntax-entry ?\{ "(} " st)
|
||||
(modify-syntax-entry ?\} "){ " st)
|
||||
(modify-syntax-entry ?\[ "(] " st)
|
||||
(modify-syntax-entry ?\] ")[ " st)
|
||||
;; All non-word multibyte characters should be `symbol'.
|
||||
(map-char-table
|
||||
(if (featurep 'xemacs)
|
||||
(lambda (key _val)
|
||||
(and (characterp key)
|
||||
(>= (char-int key) 256)
|
||||
(/= (char-syntax key) ?w)
|
||||
(modify-syntax-entry key "_ " st)))
|
||||
(lambda (key _val)
|
||||
(and (if (consp key)
|
||||
(and (>= (car key) 128)
|
||||
(/= (char-syntax (car key)) ?w))
|
||||
(and (>= key 256)
|
||||
(/= (char-syntax key) ?w)))
|
||||
(modify-syntax-entry key "_ " st))))
|
||||
(standard-syntax-table))
|
||||
st))
|
||||
|
||||
;;; User Functions:
|
||||
|
||||
|
@ -303,25 +296,18 @@ and the hook `eshell-exit-hook'."
|
|||
(run-hooks 'eshell-exit-hook))
|
||||
|
||||
;;;###autoload
|
||||
(defun eshell-mode ()
|
||||
"Emacs shell interactive mode.
|
||||
(define-derived-mode eshell-mode fundamental-mode "EShell"
|
||||
"Emacs shell interactive mode."
|
||||
(setq-local eshell-mode t)
|
||||
|
||||
\\{eshell-mode-map}"
|
||||
(kill-all-local-variables)
|
||||
|
||||
(setq major-mode 'eshell-mode)
|
||||
(setq mode-name "EShell")
|
||||
(set (make-local-variable 'eshell-mode) t)
|
||||
|
||||
(make-local-variable 'eshell-mode-map)
|
||||
(setq eshell-mode-map (make-sparse-keymap))
|
||||
;; FIXME: What the hell!?
|
||||
(setq-local eshell-mode-map (make-sparse-keymap))
|
||||
(use-local-map eshell-mode-map)
|
||||
|
||||
(when eshell-status-in-mode-line
|
||||
(make-local-variable 'eshell-command-running-string)
|
||||
(let ((fmt (copy-sequence mode-line-format)))
|
||||
(make-local-variable 'mode-line-format)
|
||||
(setq mode-line-format fmt))
|
||||
(setq-local mode-line-format fmt))
|
||||
(let ((mode-line-elt (memq 'mode-line-modified mode-line-format)))
|
||||
(if mode-line-elt
|
||||
(setcar mode-line-elt 'eshell-command-running-string))))
|
||||
|
@ -331,11 +317,9 @@ and the hook `eshell-exit-hook'."
|
|||
(define-key eshell-mode-map [(meta control ?l)] 'eshell-show-output)
|
||||
(define-key eshell-mode-map [(control ?a)] 'eshell-bol)
|
||||
|
||||
(set (make-local-variable 'eshell-command-prefix)
|
||||
(make-symbol "eshell-command-prefix"))
|
||||
(setq-local eshell-command-prefix (make-symbol "eshell-command-prefix"))
|
||||
(fset eshell-command-prefix (make-sparse-keymap))
|
||||
(set (make-local-variable 'eshell-command-map)
|
||||
(symbol-function eshell-command-prefix))
|
||||
(setq-local eshell-command-map (symbol-function eshell-command-prefix))
|
||||
(define-key eshell-mode-map [(control ?c)] eshell-command-prefix)
|
||||
|
||||
;; without this, find-tag complains about read-only text being
|
||||
|
@ -359,7 +343,6 @@ and the hook `eshell-exit-hook'."
|
|||
(define-key eshell-command-map [(control ?y)] 'eshell-repeat-argument)
|
||||
|
||||
(setq local-abbrev-table eshell-mode-abbrev-table)
|
||||
(set-syntax-table eshell-mode-syntax-table)
|
||||
|
||||
(set (make-local-variable 'dired-directory) default-directory)
|
||||
(set (make-local-variable 'list-buffers-directory)
|
||||
|
@ -442,7 +425,6 @@ and the hook `eshell-exit-hook'."
|
|||
|
||||
(if eshell-first-time-p
|
||||
(run-hooks 'eshell-first-time-mode-hook))
|
||||
(run-mode-hooks 'eshell-mode-hook)
|
||||
(run-hooks 'eshell-post-command-hook))
|
||||
|
||||
(put 'eshell-mode 'mode-class 'special)
|
||||
|
@ -470,8 +452,8 @@ and the hook `eshell-exit-hook'."
|
|||
(add-hook 'pre-command-hook 'eshell-intercept-commands t t)
|
||||
(message "Sending subprocess input directly")))
|
||||
|
||||
(defun eshell-self-insert-command (N)
|
||||
(interactive "i")
|
||||
(defun eshell-self-insert-command ()
|
||||
(interactive)
|
||||
(process-send-string
|
||||
(eshell-interactive-process)
|
||||
(char-to-string (if (symbolp last-command-event)
|
||||
|
@ -944,10 +926,10 @@ a key."
|
|||
(custom-add-option 'eshell-output-filter-functions
|
||||
'eshell-truncate-buffer)
|
||||
|
||||
(defun eshell-send-invisible (str)
|
||||
(defun eshell-send-invisible ()
|
||||
"Read a string without echoing.
|
||||
Then send it to the process running in the current buffer."
|
||||
(interactive "P") ; Defeat snooping via C-x ESC ESC
|
||||
(interactive) ; Don't pass str as argument, to avoid snooping via C-x ESC ESC
|
||||
(let ((str (read-passwd
|
||||
(format "%s Password: "
|
||||
(process-name (eshell-interactive-process))))))
|
||||
|
@ -969,7 +951,7 @@ This function could be in the list `eshell-output-filter-functions'."
|
|||
(beginning-of-line)
|
||||
(if (re-search-forward eshell-password-prompt-regexp
|
||||
eshell-last-output-end t)
|
||||
(eshell-send-invisible nil)))))
|
||||
(eshell-send-invisible)))))
|
||||
|
||||
(custom-add-option 'eshell-output-filter-functions
|
||||
'eshell-watch-for-password-prompt)
|
||||
|
@ -977,32 +959,30 @@ This function could be in the list `eshell-output-filter-functions'."
|
|||
(defun eshell-handle-control-codes ()
|
||||
"Act properly when certain control codes are seen."
|
||||
(save-excursion
|
||||
(let ((orig (point)))
|
||||
(goto-char eshell-last-output-block-begin)
|
||||
(unless (eolp)
|
||||
(beginning-of-line))
|
||||
(while (< (point) eshell-last-output-end)
|
||||
(let ((char (char-after)))
|
||||
(cond
|
||||
((eq char ?\r)
|
||||
(if (< (1+ (point)) eshell-last-output-end)
|
||||
(if (memq (char-after (1+ (point)))
|
||||
'(?\n ?\r))
|
||||
(delete-char 1)
|
||||
(let ((end (1+ (point))))
|
||||
(beginning-of-line)
|
||||
(delete-region (point) end)))
|
||||
(add-text-properties (point) (1+ (point))
|
||||
'(invisible t))
|
||||
(forward-char)))
|
||||
((eq char ?\a)
|
||||
(delete-char 1)
|
||||
(beep))
|
||||
((eq char ?\C-h)
|
||||
(delete-backward-char 1)
|
||||
(delete-char 1))
|
||||
(t
|
||||
(forward-char))))))))
|
||||
(goto-char eshell-last-output-block-begin)
|
||||
(unless (eolp)
|
||||
(beginning-of-line))
|
||||
(while (< (point) eshell-last-output-end)
|
||||
(let ((char (char-after)))
|
||||
(cond
|
||||
((eq char ?\r)
|
||||
(if (< (1+ (point)) eshell-last-output-end)
|
||||
(if (memq (char-after (1+ (point)))
|
||||
'(?\n ?\r))
|
||||
(delete-char 1)
|
||||
(let ((end (1+ (point))))
|
||||
(beginning-of-line)
|
||||
(delete-region (point) end)))
|
||||
(add-text-properties (point) (1+ (point))
|
||||
'(invisible t))
|
||||
(forward-char)))
|
||||
((eq char ?\a)
|
||||
(delete-char 1)
|
||||
(beep))
|
||||
((eq char ?\C-h)
|
||||
(delete-region (1- (point)) (1+ (point))))
|
||||
(t
|
||||
(forward-char)))))))
|
||||
|
||||
(custom-add-option 'eshell-output-filter-functions
|
||||
'eshell-handle-control-codes)
|
||||
|
|
|
@ -28,11 +28,11 @@
|
|||
(require 'esh-ext)
|
||||
|
||||
;; Unused.
|
||||
;;; (defgroup eshell-opt nil
|
||||
;;; "The options processing code handles command argument parsing for
|
||||
;;; Eshell commands implemented in Lisp."
|
||||
;;; :tag "Command options processing"
|
||||
;;; :group 'eshell)
|
||||
;; (defgroup eshell-opt nil
|
||||
;; "The options processing code handles command argument parsing for
|
||||
;; Eshell commands implemented in Lisp."
|
||||
;; :tag "Command options processing"
|
||||
;; :group 'eshell)
|
||||
|
||||
;;; User Functions:
|
||||
|
||||
|
@ -103,32 +103,25 @@ interned variable `args' (created using a `let' form)."
|
|||
macro-args
|
||||
(list 'eshell-stringify-list
|
||||
(list 'eshell-flatten-list macro-args)))))
|
||||
(let ,(append (delq nil (mapcar (lambda (opt)
|
||||
(let ,(delq nil (mapcar (lambda (opt)
|
||||
(and (listp opt) (nth 3 opt)))
|
||||
(cadr options)))
|
||||
'(usage-msg last-value ext-command args))
|
||||
;; FIXME: `options' ends up hiding some variable names under `quote',
|
||||
;; which is incompatible with lexical scoping!!
|
||||
(eshell-do-opt ,name ,options (lambda () ,@body-forms)))))
|
||||
(eshell-do-opt ,name ,options (lambda (args) ,@body-forms) temp-args))))
|
||||
|
||||
;;; Internal Functions:
|
||||
|
||||
(defvar temp-args)
|
||||
(defvar last-value)
|
||||
(defvar usage-msg)
|
||||
(defvar ext-command)
|
||||
;; Documented part of the interface; see eshell-eval-using-options.
|
||||
(defvar args)
|
||||
(defvar eshell--args)
|
||||
|
||||
(defun eshell-do-opt (name options body-fun)
|
||||
(defun eshell-do-opt (name options body-fun args)
|
||||
"Helper function for `eshell-eval-using-options'.
|
||||
This code doesn't really need to be macro expanded everywhere."
|
||||
(setq args temp-args)
|
||||
(if (setq
|
||||
ext-command
|
||||
(let* (last-value
|
||||
(ext-command
|
||||
(catch 'eshell-ext-command
|
||||
(when (setq
|
||||
usage-msg
|
||||
(let ((usage-msg
|
||||
(catch 'eshell-usage
|
||||
(setq last-value nil)
|
||||
(if (and (= (length args) 0)
|
||||
|
@ -136,12 +129,14 @@ This code doesn't really need to be macro expanded everywhere."
|
|||
(throw 'eshell-usage
|
||||
(eshell-show-usage name options)))
|
||||
(setq args (eshell-process-args name args options)
|
||||
last-value (funcall body-fun))
|
||||
nil))
|
||||
(error "%s" usage-msg))))
|
||||
last-value (funcall body-fun args))
|
||||
nil)))
|
||||
(when usage-msg
|
||||
(error "%s" usage-msg))))))
|
||||
(if ext-command
|
||||
(throw 'eshell-external
|
||||
(eshell-external-command ext-command args))
|
||||
last-value))
|
||||
last-value)))
|
||||
|
||||
(defun eshell-show-usage (name options)
|
||||
"Display the usage message for NAME, using OPTIONS."
|
||||
|
@ -197,12 +192,13 @@ will be modified."
|
|||
(if (not (nth 3 opt))
|
||||
(eshell-show-usage name options)
|
||||
(if (eq (nth 2 opt) t)
|
||||
(if (> ai (length args))
|
||||
(if (> ai (length eshell--args))
|
||||
(error "%s: missing option argument" name)
|
||||
(set (nth 3 opt) (nth ai args))
|
||||
(set (nth 3 opt) (nth ai eshell--args))
|
||||
(if (> ai 0)
|
||||
(setcdr (nthcdr (1- ai) args) (nthcdr (1+ ai) args))
|
||||
(setq args (cdr args))))
|
||||
(setcdr (nthcdr (1- ai) eshell--args)
|
||||
(nthcdr (1+ ai) eshell--args))
|
||||
(setq eshell--args (cdr eshell--args))))
|
||||
(set (nth 3 opt) (or (nth 2 opt) t)))))
|
||||
|
||||
(defun eshell-process-option (name switch kind ai options)
|
||||
|
@ -232,14 +228,15 @@ switch is unrecognized."
|
|||
(setq extcmd (eshell-search-path (cadr extcmd)))
|
||||
(if extcmd
|
||||
(throw 'eshell-ext-command extcmd)
|
||||
(if (characterp switch)
|
||||
(error "%s: unrecognized option -%c" name switch)
|
||||
(error "%s: unrecognized option --%s" name switch))))))))
|
||||
(error (if (characterp switch) "%s: unrecognized option -%c"
|
||||
"%s: unrecognized option --%s")
|
||||
name switch)))))))
|
||||
|
||||
(defun eshell-process-args (name args options)
|
||||
"Process the given ARGS using OPTIONS.
|
||||
This assumes that symbols have been intern'd by `eshell-eval-using-options'."
|
||||
(let ((ai 0) arg)
|
||||
(let ((ai 0) arg
|
||||
(eshell--args args))
|
||||
(while (< ai (length args))
|
||||
(setq arg (nth ai args))
|
||||
(if (not (and (stringp arg)
|
||||
|
|
|
@ -23,6 +23,8 @@
|
|||
|
||||
;;; Code:
|
||||
|
||||
(eval-when-compile (require 'cl-lib))
|
||||
|
||||
(defgroup eshell-util nil
|
||||
"This is general utility code, meant for use by Eshell itself."
|
||||
:tag "General utilities"
|
||||
|
@ -484,12 +486,12 @@ list."
|
|||
(while (re-search-forward
|
||||
"^\\([^#[:space:]]+\\)\\s-+\\(\\S-+\\)\\(\\s-*\\(\\S-+\\)\\)?" nil t)
|
||||
(if (match-string 1)
|
||||
(add-to-list 'hosts (match-string 1)))
|
||||
(cl-pushnew (match-string 1) hosts :test #'equal))
|
||||
(if (match-string 2)
|
||||
(add-to-list 'hosts (match-string 2)))
|
||||
(cl-pushnew (match-string 2) hosts :test #'equal))
|
||||
(if (match-string 4)
|
||||
(add-to-list 'hosts (match-string 4)))))
|
||||
(sort hosts 'string-lessp)))
|
||||
(cl-pushnew (match-string 4) hosts :test #'equal))))
|
||||
(sort hosts #'string-lessp)))
|
||||
|
||||
(defun eshell-read-hosts (file result-var timestamp-var)
|
||||
"Read the contents of /etc/passwd for user names."
|
||||
|
|
|
@ -395,12 +395,9 @@ process any indices that come after the variable reference."
|
|||
indices (and (not (eobp))
|
||||
(eq (char-after) ?\[)
|
||||
(eshell-parse-indices))
|
||||
value (list 'let
|
||||
(list (list 'indices
|
||||
(list 'quote indices)))
|
||||
value))
|
||||
value `(let ((indices ',indices)) ,value))
|
||||
(if get-len
|
||||
(list 'length value)
|
||||
`(length ,value)
|
||||
value)))
|
||||
|
||||
(defun eshell-parse-variable-ref ()
|
||||
|
@ -414,67 +411,68 @@ Possible options are:
|
|||
<LONG-NAME> disambiguates the length of the name
|
||||
{COMMAND} result of command is variable's value
|
||||
(LISP-FORM) result of Lisp form is variable's value"
|
||||
(let (end)
|
||||
(cond
|
||||
((eq (char-after) ?{)
|
||||
(let ((end (eshell-find-delimiter ?\{ ?\})))
|
||||
(if (not end)
|
||||
(throw 'eshell-incomplete ?\{)
|
||||
(prog1
|
||||
(list 'eshell-convert
|
||||
(list 'eshell-command-to-value
|
||||
(list 'eshell-as-subcommand
|
||||
(eshell-parse-command
|
||||
(cons (1+ (point)) end)))))
|
||||
(goto-char (1+ end))))))
|
||||
((memq (char-after) '(?\' ?\"))
|
||||
(let ((name (if (eq (char-after) ?\')
|
||||
(eshell-parse-literal-quote)
|
||||
(eshell-parse-double-quote))))
|
||||
(if name
|
||||
(cond
|
||||
((eq (char-after) ?{)
|
||||
(let ((end (eshell-find-delimiter ?\{ ?\})))
|
||||
(if (not end)
|
||||
(throw 'eshell-incomplete ?\{)
|
||||
(prog1
|
||||
(list 'eshell-convert
|
||||
(list 'eshell-command-to-value
|
||||
(list 'eshell-as-subcommand
|
||||
(eshell-parse-command
|
||||
(cons (1+ (point)) end)))))
|
||||
(goto-char (1+ end))))))
|
||||
((memq (char-after) '(?\' ?\"))
|
||||
(let ((name (if (eq (char-after) ?\')
|
||||
(eshell-parse-literal-quote)
|
||||
(eshell-parse-double-quote))))
|
||||
(if name
|
||||
(list 'eshell-get-variable (eval name) 'indices))))
|
||||
((eq (char-after) ?\<)
|
||||
(let ((end (eshell-find-delimiter ?\< ?\>)))
|
||||
(if (not end)
|
||||
(throw 'eshell-incomplete ?\<)
|
||||
(let* ((temp (make-temp-file temporary-file-directory))
|
||||
(cmd (concat (buffer-substring (1+ (point)) end)
|
||||
" > " temp)))
|
||||
(prog1
|
||||
(list
|
||||
'let (list (list 'eshell-current-handles
|
||||
(list 'eshell-create-handles temp
|
||||
(list 'quote 'overwrite))))
|
||||
(list
|
||||
'progn
|
||||
(list 'eshell-as-subcommand
|
||||
(eshell-parse-command cmd))
|
||||
(list 'ignore
|
||||
(list 'nconc 'eshell-this-command-hook
|
||||
(list 'list
|
||||
(list 'function
|
||||
(list 'lambda nil
|
||||
(list 'delete-file temp))))))
|
||||
(list 'quote temp)))
|
||||
(goto-char (1+ end)))))))
|
||||
((eq (char-after) ?\()
|
||||
(condition-case err
|
||||
(list 'eshell-command-to-value
|
||||
(list 'eshell-lisp-command
|
||||
(list 'quote (read (current-buffer)))))
|
||||
(end-of-file
|
||||
(throw 'eshell-incomplete ?\())))
|
||||
((assoc (char-to-string (char-after))
|
||||
eshell-variable-aliases-list)
|
||||
(forward-char)
|
||||
(list 'eshell-get-variable
|
||||
(char-to-string (char-before)) 'indices))
|
||||
((looking-at eshell-variable-name-regexp)
|
||||
(prog1
|
||||
(list 'eshell-get-variable (match-string 0) 'indices)
|
||||
(goto-char (match-end 0))))
|
||||
(t
|
||||
(error "Invalid variable reference")))))
|
||||
((eq (char-after) ?\<)
|
||||
(let ((end (eshell-find-delimiter ?\< ?\>)))
|
||||
(if (not end)
|
||||
(throw 'eshell-incomplete ?\<)
|
||||
(let* ((temp (make-temp-file temporary-file-directory))
|
||||
(cmd (concat (buffer-substring (1+ (point)) end)
|
||||
" > " temp)))
|
||||
(prog1
|
||||
(list
|
||||
'let (list (list 'eshell-current-handles
|
||||
(list 'eshell-create-handles temp
|
||||
(list 'quote 'overwrite))))
|
||||
(list
|
||||
'progn
|
||||
(list 'eshell-as-subcommand
|
||||
(eshell-parse-command cmd))
|
||||
(list 'ignore
|
||||
(list 'nconc 'eshell-this-command-hook
|
||||
(list 'list
|
||||
(list 'function
|
||||
(list 'lambda nil
|
||||
(list 'delete-file temp))))))
|
||||
(list 'quote temp)))
|
||||
(goto-char (1+ end)))))))
|
||||
((eq (char-after) ?\()
|
||||
(condition-case nil
|
||||
(list 'eshell-command-to-value
|
||||
(list 'eshell-lisp-command
|
||||
(list 'quote (read (current-buffer)))))
|
||||
(end-of-file
|
||||
(throw 'eshell-incomplete ?\())))
|
||||
((assoc (char-to-string (char-after))
|
||||
eshell-variable-aliases-list)
|
||||
(forward-char)
|
||||
(list 'eshell-get-variable
|
||||
(char-to-string (char-before)) 'indices))
|
||||
((looking-at eshell-variable-name-regexp)
|
||||
(prog1
|
||||
(list 'eshell-get-variable (match-string 0) 'indices)
|
||||
(goto-char (match-end 0))))
|
||||
(t
|
||||
(error "Invalid variable reference"))))
|
||||
|
||||
(defvar eshell-glob-function)
|
||||
|
||||
(defun eshell-parse-indices ()
|
||||
"Parse and return a list of list of indices."
|
||||
|
|
|
@ -300,7 +300,7 @@ buffer selected (or created)."
|
|||
(get-buffer-create eshell-buffer-name)))))
|
||||
(cl-assert (and buf (buffer-live-p buf)))
|
||||
(pop-to-buffer-same-window buf)
|
||||
(unless (eq major-mode 'eshell-mode)
|
||||
(unless (derived-mode-p 'eshell-mode)
|
||||
(eshell-mode))
|
||||
buf))
|
||||
|
||||
|
|
|
@ -2447,35 +2447,20 @@ and `magic-mode-alist', which determines modes based on file contents.")
|
|||
(mapcar
|
||||
(lambda (l)
|
||||
(cons (purecopy (car l)) (cdr l)))
|
||||
'(("perl" . perl-mode)
|
||||
("perl5" . perl-mode)
|
||||
("miniperl" . perl-mode)
|
||||
("wish" . tcl-mode)
|
||||
("wishx" . tcl-mode)
|
||||
("tcl" . tcl-mode)
|
||||
("tclsh" . tcl-mode)
|
||||
'(("\\(mini\\)?perl5?" . perl-mode)
|
||||
("wishx?" . tcl-mode)
|
||||
("tcl\\(sh\\)?" . tcl-mode)
|
||||
("expect" . tcl-mode)
|
||||
("scm" . scheme-mode)
|
||||
("ash" . sh-mode)
|
||||
("bash" . sh-mode)
|
||||
("bash2" . sh-mode)
|
||||
("csh" . sh-mode)
|
||||
("dtksh" . sh-mode)
|
||||
("[acjkwz]sh" . sh-mode)
|
||||
("r?bash2?" . sh-mode)
|
||||
("\\(dt\\|pd\\|w\\)ksh" . sh-mode)
|
||||
("es" . sh-mode)
|
||||
("itcsh" . sh-mode)
|
||||
("jsh" . sh-mode)
|
||||
("ksh" . sh-mode)
|
||||
("i?tcsh" . sh-mode)
|
||||
("oash" . sh-mode)
|
||||
("pdksh" . sh-mode)
|
||||
("rbash" . sh-mode)
|
||||
("rc" . sh-mode)
|
||||
("rpm" . sh-mode)
|
||||
("sh" . sh-mode)
|
||||
("sh5" . sh-mode)
|
||||
("tcsh" . sh-mode)
|
||||
("wksh" . sh-mode)
|
||||
("wsh" . sh-mode)
|
||||
("zsh" . sh-mode)
|
||||
("sh5?" . sh-mode)
|
||||
("tail" . text-mode)
|
||||
("more" . text-mode)
|
||||
("less" . text-mode)
|
||||
|
@ -2486,9 +2471,10 @@ and `magic-mode-alist', which determines modes based on file contents.")
|
|||
("emacs" . emacs-lisp-mode)))
|
||||
"Alist mapping interpreter names to major modes.
|
||||
This is used for files whose first lines match `auto-mode-interpreter-regexp'.
|
||||
Each element looks like (INTERPRETER . MODE).
|
||||
If INTERPRETER matches the name of the interpreter specified in the first line
|
||||
of a script, mode MODE is enabled.
|
||||
Each element looks like (REGEXP . MODE).
|
||||
If \\\\`REGEXP\\\\' matches the name (minus any directory part) of
|
||||
the interpreter specified in the first line of a script, enable
|
||||
major mode MODE.
|
||||
|
||||
See also `auto-mode-alist'.")
|
||||
|
||||
|
@ -2683,19 +2669,23 @@ we don't actually set it to the same mode the buffer already has."
|
|||
;; If we didn't, look for an interpreter specified in the first line.
|
||||
;; As a special case, allow for things like "#!/bin/env perl", which
|
||||
;; finds the interpreter anywhere in $PATH.
|
||||
(unless done
|
||||
(setq mode (save-excursion
|
||||
(goto-char (point-min))
|
||||
(if (looking-at auto-mode-interpreter-regexp)
|
||||
(match-string 2)
|
||||
""))
|
||||
;; Map interpreter name to a mode, signaling we're done at the
|
||||
;; same time.
|
||||
done (assoc (file-name-nondirectory mode)
|
||||
interpreter-mode-alist))
|
||||
;; If we found an interpreter mode to use, invoke it now.
|
||||
(if done
|
||||
(set-auto-mode-0 (cdr done) keep-mode-if-same)))
|
||||
(and (not done)
|
||||
(setq mode (save-excursion
|
||||
(goto-char (point-min))
|
||||
(if (looking-at auto-mode-interpreter-regexp)
|
||||
(match-string 2))))
|
||||
;; Map interpreter name to a mode, signaling we're done at the
|
||||
;; same time.
|
||||
(setq done (assoc-default
|
||||
(file-name-nondirectory mode)
|
||||
(mapcar (lambda (e)
|
||||
(cons
|
||||
(format "\\`%s\\'" (car e))
|
||||
(cdr e)))
|
||||
interpreter-mode-alist)
|
||||
#'string-match-p))
|
||||
;; If we found an interpreter mode to use, invoke it now.
|
||||
(set-auto-mode-0 done keep-mode-if-same))
|
||||
;; Next try matching the buffer beginning against magic-mode-alist.
|
||||
(unless done
|
||||
(if (setq done (save-excursion
|
||||
|
@ -3647,21 +3637,17 @@ FILE is the name of the file holding the variables to apply.
|
|||
The new class name is the same as the directory in which FILE
|
||||
is found. Returns the new class name."
|
||||
(with-temp-buffer
|
||||
;; This is with-demoted-errors, but we want to mention dir-locals
|
||||
;; in any error message.
|
||||
(condition-case err
|
||||
(progn
|
||||
(insert-file-contents file)
|
||||
(unless (zerop (buffer-size))
|
||||
(let* ((dir-name (file-name-directory file))
|
||||
(class-name (intern dir-name))
|
||||
(variables (let ((read-circle nil))
|
||||
(read (current-buffer)))))
|
||||
(dir-locals-set-class-variables class-name variables)
|
||||
(dir-locals-set-directory-class dir-name class-name
|
||||
(nth 5 (file-attributes file)))
|
||||
class-name)))
|
||||
(error (message "Error reading dir-locals: %S" err) nil))))
|
||||
(with-demoted-errors "Error reading dir-locals: %S"
|
||||
(insert-file-contents file)
|
||||
(unless (zerop (buffer-size))
|
||||
(let* ((dir-name (file-name-directory file))
|
||||
(class-name (intern dir-name))
|
||||
(variables (let ((read-circle nil))
|
||||
(read (current-buffer)))))
|
||||
(dir-locals-set-class-variables class-name variables)
|
||||
(dir-locals-set-directory-class dir-name class-name
|
||||
(nth 5 (file-attributes file)))
|
||||
class-name)))))
|
||||
|
||||
(defcustom enable-remote-dir-locals nil
|
||||
"Non-nil means dir-local variables will be applied to remote files."
|
||||
|
|
|
@ -1,3 +1,34 @@
|
|||
2013-09-12 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* gnus-icalendar.el (gnus-icalendar-event--build-reply-event-body):
|
||||
Avoid using `find', which i) might not be defined at runtime;
|
||||
ii) does not work, since its default test is eql, not equal.
|
||||
(gnus-mime-action-alist): Declare.
|
||||
|
||||
2013-09-11 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* score-mode.el (gnus-score-mode-map): Move initialization
|
||||
into declaration.
|
||||
(gnus-score-mode): Use define-derived-mode.
|
||||
* gnus-srvr.el (gnus-browse-mode): Use define-derived-mode.
|
||||
* gnus-kill.el (gnus-kill-file-mode-map): Move initialization
|
||||
into declaration.
|
||||
(gnus-kill-file-mode): Use define-derived-mode.
|
||||
(gnus-kill-file-edit-file, gnus-kill-file-enter-kill, gnus-kill):
|
||||
Use derived-mode-p.
|
||||
* gnus-group.el (gnus-group-mode): Use define-derived-mode.
|
||||
(gnus-group-setup-buffer, gnus-group-name-at-point)
|
||||
(gnus-group-make-web-group, gnus-group-enter-directory)
|
||||
(gnus-group-suspend): Use derived-mode-p.
|
||||
* gnus-cus.el (gnus-custom-mode): Use define-derived-mode.
|
||||
* gnus-bookmark.el (gnus-bookmark-bmenu-mode): Use define-derived-mode.
|
||||
* gnus-art.el (gnus-article-mode): Use define-derived-mode.
|
||||
(gnus-article-setup-buffer, gnus-article-prepare)
|
||||
(gnus-article-prepare-display, gnus-sticky-article)
|
||||
(gnus-kill-sticky-article-buffer, gnus-kill-sticky-article-buffers)
|
||||
(gnus-bind-safe-url-regexp, gnus-article-check-buffer)
|
||||
(gnus-article-read-summary-keys): Use derived-mode-p.
|
||||
|
||||
2013-08-28 Katsumi Yamaoka <yamaoka@jpl.org>
|
||||
|
||||
* mm-decode.el (mm-temp-files-delete): Fix file deletion logic.
|
||||
|
@ -177,15 +208,15 @@
|
|||
2013-07-10 David Engster <deng@randomsample.de>
|
||||
|
||||
* gnus-start.el (gnus-clean-old-newsrc): Always remove 'unexist' marks
|
||||
if `gnus-newsrc-file-version' does not match `gnus-version'. This
|
||||
fixes a bug in Emacs trunk where the 'unexist' marks were always
|
||||
if `gnus-newsrc-file-version' does not match `gnus-version'.
|
||||
This fixes a bug in Emacs trunk where the 'unexist' marks were always
|
||||
removed at startup because "Gnus v5.13" was considered smaller than "Ma
|
||||
Gnus v0.03".
|
||||
|
||||
2013-07-10 Tassilo Horn <tsdh@gnu.org>
|
||||
|
||||
* gnus.el (gnus-summary-line-format): Reference
|
||||
`gnus-user-date-format-alist' for the &user-date; format, not
|
||||
* gnus.el (gnus-summary-line-format):
|
||||
Reference `gnus-user-date-format-alist' for the &user-date; format, not
|
||||
`gnus-summary-user-date-format-alist'.
|
||||
|
||||
2013-07-08 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
@ -467,7 +498,7 @@
|
|||
|
||||
* shr.el (shr-render-td): Support horizontal alignment.
|
||||
|
||||
* eww.el (eww-put-color): Removed.
|
||||
* eww.el (eww-put-color): Remove.
|
||||
(eww-colorize-region): Use `add-face-text-property'.
|
||||
|
||||
* shr.el (shr-add-font): Append face data, so that we get the correct
|
||||
|
@ -522,7 +553,7 @@
|
|||
|
||||
2013-06-16 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
|
||||
|
||||
* shr.el (shr-dom-to-xml): Fixed function call.
|
||||
* shr.el (shr-dom-to-xml): Fix function call.
|
||||
|
||||
* eww.el (eww): New group.
|
||||
(eww-header-line-format): New custom variable.
|
||||
|
@ -558,8 +589,8 @@
|
|||
(auth-source-netrc-parse): Refactor and improve netrc parser to support
|
||||
single-quoted strings and multiline entries.
|
||||
(auth-source-netrc-parse-next-interesting)
|
||||
(auth-source-netrc-parse-one, auth-source-netrc-parse-entries): New
|
||||
functions to support parser.
|
||||
(auth-source-netrc-parse-one, auth-source-netrc-parse-entries):
|
||||
New functions to support parser.
|
||||
|
||||
2013-06-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
|
@ -707,8 +738,8 @@
|
|||
* registry.el (initialize-instance, registry-lookup)
|
||||
(registry-lookup-breaks-before-lexbind, registry-lookup-secondary)
|
||||
(registry-lookup-secondary-value, registry-search, registry-delete)
|
||||
(registry-insert, registry-reindex, registry-size, registry-prune): Do
|
||||
not wrap methods in `eval-and-compile'. This breaks due to latest
|
||||
(registry-insert, registry-reindex, registry-size, registry-prune):
|
||||
Do not wrap methods in `eval-and-compile'. This breaks due to latest
|
||||
changes in EIEIO (introduction of eieio-core.el).
|
||||
|
||||
2013-05-30 Glenn Morris <rgm@gnu.org>
|
||||
|
@ -988,8 +1019,8 @@
|
|||
2013-03-26 Andrew Cohen <cohen@bu.edu>
|
||||
|
||||
* nnir.el: Major rewrite. Cleaner separation between searches and group
|
||||
management. Marks are now shown in nnir summary buffers. Rudimentary
|
||||
support for real (i.e. not ephemeral) nnir groups.
|
||||
management. Marks are now shown in nnir summary buffers.
|
||||
Rudimentary support for real (i.e. not ephemeral) nnir groups.
|
||||
(gnus-summary-make-nnir-group): New function for initiating searches
|
||||
from a summary buffer.
|
||||
|
||||
|
@ -1018,8 +1049,8 @@
|
|||
2013-02-22 David Engster <deng@randomsample.de>
|
||||
|
||||
* gnus-registry.el (gnus-registry-save): Provide class name when
|
||||
calling `eieio-persistent-read' to avoid "unsafe call" warning. Use
|
||||
`condition-case' to stay compatible with older EIEIO versions which
|
||||
calling `eieio-persistent-read' to avoid "unsafe call" warning.
|
||||
Use `condition-case' to stay compatible with older EIEIO versions which
|
||||
only accept one argument.
|
||||
|
||||
2013-02-17 Daiki Ueno <ueno@gnu.org>
|
||||
|
@ -5295,7 +5326,7 @@
|
|||
a creation default, pass the whole port list down. It will be
|
||||
completed.
|
||||
|
||||
* auth-source.el (auth-source-search): Updated docs to talk about
|
||||
* auth-source.el (auth-source-search): Update docs to talk about
|
||||
multiple creation choices.
|
||||
(auth-source-netrc-create): Accept a list as a value (from the search
|
||||
parameters) and do completion on that list. Keep a separate netrc line
|
||||
|
@ -5362,7 +5393,7 @@
|
|||
(gnus-summary-exit): Kill the correct article buffer on exit from a
|
||||
`C-d' group.
|
||||
|
||||
* gnus-start.el (gnus-use-backend-marks): Removed, since it duplicates
|
||||
* gnus-start.el (gnus-use-backend-marks): Remove, since it duplicates
|
||||
gnus-propagate-marks.
|
||||
|
||||
* gnus-sum.el (gnus-summary-exit-no-update): Restore the group conf
|
||||
|
@ -18399,7 +18430,7 @@
|
|||
|
||||
2005-11-19 Kevin Greiner <kevin.greiner@compsol.cc>
|
||||
|
||||
* gnus-sum.el (gnus-fetch-old-headers): Updated docs to warn that
|
||||
* gnus-sum.el (gnus-fetch-old-headers): Update docs to warn that
|
||||
it can seriously impact performance as it bypasses the agent's
|
||||
local caches.
|
||||
|
||||
|
|
|
@ -3683,7 +3683,7 @@ function and want to see what the date was before converting."
|
|||
(walk-windows
|
||||
(lambda (w)
|
||||
(set-buffer (window-buffer w))
|
||||
(when (eq major-mode 'gnus-article-mode)
|
||||
(when (derived-mode-p 'gnus-article-mode)
|
||||
(let ((old-line (count-lines (point-min) (point)))
|
||||
(old-column (- (point) (line-beginning-position)))
|
||||
(window-start (window-start w))
|
||||
|
@ -4455,7 +4455,7 @@ If variable `gnus-use-long-file-name' is non-nil, it is
|
|||
(defvar bookmark-make-record-function)
|
||||
(defvar shr-put-image-function)
|
||||
|
||||
(defun gnus-article-mode ()
|
||||
(define-derived-mode gnus-article-mode fundamental-mode "Article"
|
||||
"Major mode for displaying an article.
|
||||
|
||||
All normal editing commands are switched off.
|
||||
|
@ -4470,13 +4470,8 @@ commands:
|
|||
\\[gnus-article-mail]\t Send a reply to the address near point
|
||||
\\[gnus-article-describe-briefly]\t Describe the current mode briefly
|
||||
\\[gnus-info-find-node]\t Go to the Gnus info node"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(gnus-simplify-mode-line)
|
||||
(setq mode-name "Article")
|
||||
(setq major-mode 'gnus-article-mode)
|
||||
(make-local-variable 'minor-mode-alist)
|
||||
(use-local-map gnus-article-mode-map)
|
||||
(when (gnus-visual-p 'article-menu 'menu)
|
||||
(gnus-article-make-menu-bar)
|
||||
(when gnus-summary-tool-bar-map
|
||||
|
@ -4504,9 +4499,7 @@ commands:
|
|||
(buffer-disable-undo)
|
||||
(setq buffer-read-only t
|
||||
show-trailing-whitespace nil)
|
||||
(set-syntax-table gnus-article-mode-syntax-table)
|
||||
(mm-enable-multibyte)
|
||||
(gnus-run-mode-hooks 'gnus-article-mode-hook))
|
||||
(mm-enable-multibyte))
|
||||
|
||||
(defun gnus-article-setup-buffer ()
|
||||
"Initialize the article buffer."
|
||||
|
@ -4554,7 +4547,7 @@ commands:
|
|||
(setq gnus-article-mime-handle-alist nil)
|
||||
(buffer-disable-undo)
|
||||
(setq buffer-read-only t)
|
||||
(unless (eq major-mode 'gnus-article-mode)
|
||||
(unless (derived-mode-p 'gnus-article-mode)
|
||||
(gnus-article-mode))
|
||||
(setq truncate-lines gnus-article-truncate-lines)
|
||||
(current-buffer))
|
||||
|
@ -4603,7 +4596,7 @@ If ARTICLE is an id, HEADER should be the article headers.
|
|||
If ALL-HEADERS is non-nil, no headers are hidden."
|
||||
(save-excursion
|
||||
;; Make sure we start in a summary buffer.
|
||||
(unless (eq major-mode 'gnus-summary-mode)
|
||||
(unless (derived-mode-p 'gnus-summary-mode)
|
||||
(set-buffer gnus-summary-buffer))
|
||||
(setq gnus-summary-buffer (current-buffer))
|
||||
(let* ((gnus-article (if header (mail-header-number header) article))
|
||||
|
@ -4714,7 +4707,7 @@ If ALL-HEADERS is non-nil, no headers are hidden."
|
|||
(let ((gnus-article-buffer (current-buffer))
|
||||
buffer-read-only
|
||||
(inhibit-read-only t))
|
||||
(unless (eq major-mode 'gnus-article-mode)
|
||||
(unless (derived-mode-p 'gnus-article-mode)
|
||||
(gnus-article-mode))
|
||||
(setq buffer-read-only nil
|
||||
gnus-article-wash-types nil
|
||||
|
@ -4776,7 +4769,7 @@ If a prefix ARG is given, ask for a name for this sticky article buffer."
|
|||
"*"))
|
||||
(if (and (gnus-buffer-live-p new-art-buf-name)
|
||||
(with-current-buffer new-art-buf-name
|
||||
(eq major-mode 'gnus-sticky-article-mode)))
|
||||
(derived-mode-p 'gnus-sticky-article-mode)))
|
||||
(switch-to-buffer new-art-buf-name)
|
||||
(setq new-art-buf-name (rename-buffer new-art-buf-name t)))
|
||||
(gnus-sticky-article-mode))
|
||||
|
@ -4792,7 +4785,7 @@ If none is given, assume the current buffer and kill it if it has
|
|||
(unless buffer
|
||||
(setq buffer (current-buffer)))
|
||||
(with-current-buffer buffer
|
||||
(when (eq major-mode 'gnus-sticky-article-mode)
|
||||
(when (derived-mode-p 'gnus-sticky-article-mode)
|
||||
(gnus-kill-buffer buffer))))
|
||||
|
||||
(defun gnus-kill-sticky-article-buffers (arg)
|
||||
|
@ -4801,11 +4794,11 @@ If a prefix ARG is given, ask for confirmation."
|
|||
(interactive "P")
|
||||
(dolist (buf (gnus-buffers))
|
||||
(with-current-buffer buf
|
||||
(when (eq major-mode 'gnus-sticky-article-mode)
|
||||
(if (not arg)
|
||||
(gnus-kill-buffer buf)
|
||||
(when (yes-or-no-p (concat "Kill buffer " (buffer-name buf) "? "))
|
||||
(gnus-kill-buffer buf)))))))
|
||||
(when (derived-mode-p 'gnus-sticky-article-mode)
|
||||
(if (not arg)
|
||||
(gnus-kill-buffer buf)
|
||||
(when (yes-or-no-p (concat "Kill buffer " (buffer-name buf) "? "))
|
||||
(gnus-kill-buffer buf)))))))
|
||||
|
||||
;;;
|
||||
;;; Gnus MIME viewing functions
|
||||
|
@ -4893,7 +4886,7 @@ General format specifiers can also be used. See Info node
|
|||
(defmacro gnus-bind-safe-url-regexp (&rest body)
|
||||
"Bind `mm-w3m-safe-url-regexp' according to `gnus-safe-html-newsgroups'."
|
||||
`(let ((mm-w3m-safe-url-regexp
|
||||
(let ((group (if (and (eq major-mode 'gnus-article-mode)
|
||||
(let ((group (if (and (derived-mode-p 'gnus-article-mode)
|
||||
(gnus-buffer-live-p
|
||||
gnus-article-current-summary))
|
||||
(with-current-buffer gnus-article-current-summary
|
||||
|
@ -6477,7 +6470,7 @@ not have a face in `gnus-article-boring-faces'."
|
|||
|
||||
(defun gnus-article-check-buffer ()
|
||||
"Beep if not in an article buffer."
|
||||
(unless (equal major-mode 'gnus-article-mode)
|
||||
(unless (derived-mode-p 'gnus-article-mode)
|
||||
(error "Command invoked outside of a Gnus article buffer")))
|
||||
|
||||
(defun gnus-article-read-summary-keys (&optional arg key not-restore-window)
|
||||
|
@ -6592,7 +6585,7 @@ not have a face in `gnus-article-boring-faces'."
|
|||
new-sum-point
|
||||
(window-live-p win)
|
||||
(with-current-buffer (window-buffer win)
|
||||
(eq major-mode 'gnus-summary-mode)))
|
||||
(derived-mode-p 'gnus-summary-mode)))
|
||||
(set-window-point win new-sum-point)
|
||||
(set-window-start win new-sum-start)
|
||||
(set-window-hscroll win new-sum-hscroll))))
|
||||
|
|
|
@ -190,7 +190,7 @@ So the cdr of each bookmark is an alist too.")
|
|||
"Set a bookmark for this article."
|
||||
(interactive)
|
||||
(gnus-bookmark-maybe-load-default-file)
|
||||
(if (or (not (eq major-mode 'gnus-summary-mode))
|
||||
(if (or (not (derived-mode-p 'gnus-summary-mode))
|
||||
(not gnus-article-current))
|
||||
(error "Please select an article in the Gnus summary buffer")
|
||||
(let* ((group (car gnus-article-current))
|
||||
|
@ -473,7 +473,7 @@ That is, all information but the name."
|
|||
;; Been to lazy to use gnus-bookmark-save...
|
||||
(defalias 'gnus-bookmark-bmenu-save 'gnus-bookmark-write-file)
|
||||
|
||||
(defun gnus-bookmark-bmenu-mode ()
|
||||
(define-derived-mode gnus-bookmark-bmenu-mode fundamental-mode "Bookmark Menu"
|
||||
"Major mode for editing a list of Gnus bookmarks.
|
||||
Each line describes one of the bookmarks in Gnus.
|
||||
Letters do not insert themselves; instead, they are commands.
|
||||
|
@ -497,13 +497,8 @@ Gnus bookmarks names preceded by a \"*\" have annotations.
|
|||
in another buffer.
|
||||
\\[gnus-bookmark-bmenu-show-all-annotations] -- show the annotations of all bookmarks in another buffer.
|
||||
\\[gnus-bookmark-bmenu-edit-annotation] -- edit the annotation for the current bookmark."
|
||||
(kill-all-local-variables)
|
||||
(use-local-map gnus-bookmark-bmenu-mode-map)
|
||||
(setq truncate-lines t)
|
||||
(setq buffer-read-only t)
|
||||
(setq major-mode 'gnus-bookmark-bmenu-mode)
|
||||
(setq mode-name "Bookmark Menu")
|
||||
(gnus-run-mode-hooks 'gnus-bookmark-bmenu-mode-hook))
|
||||
(setq buffer-read-only t))
|
||||
|
||||
;; avoid compilation warnings
|
||||
(defvar gnus-bookmark-bmenu-toggle-infos nil)
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
;;; Widgets:
|
||||
|
||||
(defun gnus-custom-mode ()
|
||||
(define-derived-mode gnus-custom-mode fundamental-mode "Gnus Customize"
|
||||
"Major mode for editing Gnus customization buffers.
|
||||
|
||||
The following commands are available:
|
||||
|
@ -45,9 +45,6 @@ The following commands are available:
|
|||
|
||||
Entry to this mode calls the value of `gnus-custom-mode-hook'
|
||||
if that value is non-nil."
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'gnus-custom-mode
|
||||
mode-name "Gnus Customize")
|
||||
(use-local-map widget-keymap)
|
||||
;; Emacs stuff:
|
||||
(when (and (facep 'custom-button-face)
|
||||
|
@ -63,8 +60,7 @@ if that value is non-nil."
|
|||
(set (make-local-variable 'widget-push-button-prefix) "")
|
||||
(set (make-local-variable 'widget-push-button-suffix) "")
|
||||
(set (make-local-variable 'widget-link-prefix) "")
|
||||
(set (make-local-variable 'widget-link-suffix) ""))
|
||||
(gnus-run-mode-hooks 'gnus-custom-mode-hook))
|
||||
(set (make-local-variable 'widget-link-suffix) "")))
|
||||
|
||||
;;; Group Customization:
|
||||
|
||||
|
|
|
@ -1105,7 +1105,7 @@ When FORCE, rebuild the tool bar."
|
|||
(set (make-local-variable 'tool-bar-map) map))))
|
||||
gnus-group-tool-bar-map)
|
||||
|
||||
(defun gnus-group-mode ()
|
||||
(define-derived-mode gnus-group-mode fundamental-mode "Group"
|
||||
"Major mode for reading news.
|
||||
|
||||
All normal editing commands are switched off.
|
||||
|
@ -1122,17 +1122,12 @@ For more in-depth information on this mode, read the manual (`\\[gnus-info-find-
|
|||
The following commands are available:
|
||||
|
||||
\\{gnus-group-mode-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(when (gnus-visual-p 'group-menu 'menu)
|
||||
(gnus-group-make-menu-bar)
|
||||
(gnus-group-make-tool-bar))
|
||||
(gnus-simplify-mode-line)
|
||||
(setq major-mode 'gnus-group-mode)
|
||||
(setq mode-name "Group")
|
||||
(gnus-group-set-mode-line)
|
||||
(setq mode-line-process nil)
|
||||
(use-local-map gnus-group-mode-map)
|
||||
(buffer-disable-undo)
|
||||
(setq truncate-lines t)
|
||||
(setq buffer-read-only t
|
||||
|
@ -1143,8 +1138,7 @@ The following commands are available:
|
|||
(when gnus-use-undo
|
||||
(gnus-undo-mode 1))
|
||||
(when gnus-slave
|
||||
(gnus-slave-mode))
|
||||
(gnus-run-mode-hooks 'gnus-group-mode-hook))
|
||||
(gnus-slave-mode)))
|
||||
|
||||
(defun gnus-update-group-mark-positions ()
|
||||
(save-excursion
|
||||
|
@ -1193,7 +1187,7 @@ The following commands are available:
|
|||
|
||||
(defun gnus-group-setup-buffer ()
|
||||
(set-buffer (gnus-get-buffer-create gnus-group-buffer))
|
||||
(unless (eq major-mode 'gnus-group-mode)
|
||||
(unless (derived-mode-p 'gnus-group-mode)
|
||||
(gnus-group-mode)))
|
||||
|
||||
(defun gnus-group-name-charset (method group)
|
||||
|
@ -2147,7 +2141,7 @@ be permanent."
|
|||
|
||||
(defun gnus-group-name-at-point ()
|
||||
"Return a group name from around point if it exists, or nil."
|
||||
(if (eq major-mode 'gnus-group-mode)
|
||||
(if (derived-mode-p 'gnus-group-mode)
|
||||
(let ((group (gnus-group-group-name)))
|
||||
(when group
|
||||
(gnus-group-decoded-name group)))
|
||||
|
@ -3114,7 +3108,7 @@ If SOLID (the prefix), create a solid group."
|
|||
(gnus-group-read-ephemeral-group
|
||||
group method t
|
||||
(cons (current-buffer)
|
||||
(if (eq major-mode 'gnus-summary-mode) 'summary 'group))))))
|
||||
(if (derived-mode-p 'gnus-summary-mode) 'summary 'group))))))
|
||||
|
||||
(defvar nnrss-group-alist)
|
||||
(eval-when-compile
|
||||
|
@ -3229,7 +3223,7 @@ mail messages or news articles in files that have numeric names."
|
|||
(unless (gnus-group-read-ephemeral-group
|
||||
name method t
|
||||
(cons (current-buffer)
|
||||
(if (eq major-mode 'gnus-summary-mode)
|
||||
(if (derived-mode-p 'gnus-summary-mode)
|
||||
'summary 'group)))
|
||||
(error "Couldn't enter %s" dir))))
|
||||
|
||||
|
@ -4319,7 +4313,7 @@ The hook `gnus-suspend-gnus-hook' is called before actually suspending."
|
|||
(unless (or (eq buf group-buf)
|
||||
(eq buf gnus-dribble-buffer)
|
||||
(with-current-buffer buf
|
||||
(eq major-mode 'message-mode)))
|
||||
(derived-mode-p 'message-mode)))
|
||||
(gnus-kill-buffer buf)))
|
||||
(setq gnus-backlog-articles nil)
|
||||
(gnus-kill-gnus-frames)
|
||||
|
|
|
@ -257,9 +257,9 @@ status will be retrieved from the first matching attendee record."
|
|||
((string= key "ATTENDEE") (update-attendee-status line))
|
||||
((string= key "SUMMARY") (update-summary line))
|
||||
((string= key "DTSTAMP") (update-dtstamp))
|
||||
((find key '("ORGANIZER" "DTSTART" "DTEND"
|
||||
"LOCATION" "DURATION" "SEQUENCE"
|
||||
"RECURRENCE-ID" "UID")) line)
|
||||
((member key '("ORGANIZER" "DTSTART" "DTEND"
|
||||
"LOCATION" "DURATION" "SEQUENCE"
|
||||
"RECURRENCE-ID" "UID")) line)
|
||||
(t nil))))
|
||||
(when new-line
|
||||
(push new-line reply-event-lines))))))
|
||||
|
@ -816,6 +816,8 @@ is searched."
|
|||
(gnus-icalendar-show-org-agenda
|
||||
(with-current-buffer gnus-article-buffer gnus-icalendar-event)))
|
||||
|
||||
(defvar gnus-mime-action-alist) ; gnus-art
|
||||
|
||||
(defun gnus-icalendar-setup ()
|
||||
(add-to-list 'mm-inlined-types "text/calendar")
|
||||
(add-to-list 'mm-automatic-display "text/calendar")
|
||||
|
|
|
@ -75,20 +75,20 @@ of time."
|
|||
;;; Gnus Kill File Mode
|
||||
;;;
|
||||
|
||||
(defvar gnus-kill-file-mode-map nil)
|
||||
(defvar gnus-kill-file-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map emacs-lisp-mode-map)
|
||||
(gnus-define-keymap map
|
||||
"\C-c\C-k\C-s" gnus-kill-file-kill-by-subject
|
||||
"\C-c\C-k\C-a" gnus-kill-file-kill-by-author
|
||||
"\C-c\C-k\C-t" gnus-kill-file-kill-by-thread
|
||||
"\C-c\C-k\C-x" gnus-kill-file-kill-by-xref
|
||||
"\C-c\C-a" gnus-kill-file-apply-buffer
|
||||
"\C-c\C-e" gnus-kill-file-apply-last-sexp
|
||||
"\C-c\C-c" gnus-kill-file-exit)
|
||||
map))
|
||||
|
||||
(unless gnus-kill-file-mode-map
|
||||
(gnus-define-keymap (setq gnus-kill-file-mode-map
|
||||
(copy-keymap emacs-lisp-mode-map))
|
||||
"\C-c\C-k\C-s" gnus-kill-file-kill-by-subject
|
||||
"\C-c\C-k\C-a" gnus-kill-file-kill-by-author
|
||||
"\C-c\C-k\C-t" gnus-kill-file-kill-by-thread
|
||||
"\C-c\C-k\C-x" gnus-kill-file-kill-by-xref
|
||||
"\C-c\C-a" gnus-kill-file-apply-buffer
|
||||
"\C-c\C-e" gnus-kill-file-apply-last-sexp
|
||||
"\C-c\C-c" gnus-kill-file-exit))
|
||||
|
||||
(defun gnus-kill-file-mode ()
|
||||
(define-derived-mode gnus-kill-file-mode emacs-lisp-mode "Kill"
|
||||
"Major mode for editing kill files.
|
||||
|
||||
If you are using this mode - you probably shouldn't. Kill files
|
||||
|
@ -151,15 +151,7 @@ which are marked as read in the previous Gnus sessions. Marks other
|
|||
than `D' should be used for articles which should really be deleted.
|
||||
|
||||
Entry to this mode calls emacs-lisp-mode-hook and
|
||||
gnus-kill-file-mode-hook with no arguments, if that value is non-nil."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(use-local-map gnus-kill-file-mode-map)
|
||||
(set-syntax-table emacs-lisp-mode-syntax-table)
|
||||
(setq major-mode 'gnus-kill-file-mode)
|
||||
(setq mode-name "Kill")
|
||||
(lisp-mode-variables nil)
|
||||
(gnus-run-mode-hooks 'emacs-lisp-mode-hook 'gnus-kill-file-mode-hook))
|
||||
gnus-kill-file-mode-hook with no arguments, if that value is non-nil.")
|
||||
|
||||
(defun gnus-kill-file-edit-file (newsgroup)
|
||||
"Begin editing a kill file for NEWSGROUP.
|
||||
|
@ -175,10 +167,10 @@ If NEWSGROUP is nil, the global kill file is selected."
|
|||
(let ((buffer (find-file-noselect file)))
|
||||
(cond ((get-buffer-window buffer)
|
||||
(pop-to-buffer buffer))
|
||||
((eq major-mode 'gnus-group-mode)
|
||||
((derived-mode-p 'gnus-group-mode)
|
||||
(gnus-configure-windows 'group) ;Take all windows.
|
||||
(pop-to-buffer buffer))
|
||||
((eq major-mode 'gnus-summary-mode)
|
||||
((derived-mode-p 'gnus-summary-mode)
|
||||
(gnus-configure-windows 'article)
|
||||
(pop-to-buffer gnus-article-buffer)
|
||||
(bury-buffer gnus-article-buffer)
|
||||
|
@ -201,7 +193,7 @@ If NEWSGROUP is nil, the global kill file is selected."
|
|||
;; REGEXP: The string to kill.
|
||||
(save-excursion
|
||||
(let (string)
|
||||
(unless (eq major-mode 'gnus-kill-file-mode)
|
||||
(unless (derived-mode-p 'gnus-kill-file-mode)
|
||||
(gnus-kill-set-kill-buffer))
|
||||
(unless dont-move
|
||||
(goto-char (point-max)))
|
||||
|
@ -520,7 +512,7 @@ COMMAND must be a Lisp expression or a string representing a key sequence."
|
|||
(setq kill-list (cdr kill-list))))
|
||||
(gnus-execute field kill-list command nil (not all))))))
|
||||
(switch-to-buffer old-buffer)
|
||||
(when (and (eq major-mode 'gnus-kill-file-mode) regexp (not silent))
|
||||
(when (and (derived-mode-p 'gnus-kill-file-mode) regexp (not silent))
|
||||
(gnus-pp-gnus-kill
|
||||
(nconc (list 'gnus-kill field
|
||||
(if (consp regexp) (list 'quote regexp) regexp))
|
||||
|
|
|
@ -244,6 +244,7 @@ For more in-depth information on this mode, read the manual
|
|||
The following commands are available:
|
||||
|
||||
\\{gnus-server-mode-map}"
|
||||
;; FIXME: Use define-derived-mode.
|
||||
(interactive)
|
||||
(when (gnus-visual-p 'server-menu 'menu)
|
||||
(gnus-server-make-menu-bar))
|
||||
|
@ -869,7 +870,7 @@ claim them."
|
|||
(gnus-message 5 "Connecting to %s...done" (nth 1 method))
|
||||
t))))
|
||||
|
||||
(defun gnus-browse-mode ()
|
||||
(define-derived-mode gnus-browse-mode fundamental-mode "Browse Server"
|
||||
"Major mode for browsing a foreign server.
|
||||
|
||||
All normal editing commands are switched off.
|
||||
|
@ -884,20 +885,14 @@ buffer.
|
|||
2) `\\[gnus-browse-read-group]' to read a group ephemerally.
|
||||
|
||||
3) `\\[gnus-browse-exit]' to return to the group buffer."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(when (gnus-visual-p 'browse-menu 'menu)
|
||||
(gnus-browse-make-menu-bar))
|
||||
(gnus-simplify-mode-line)
|
||||
(setq major-mode 'gnus-browse-mode)
|
||||
(setq mode-name "Browse Server")
|
||||
(setq mode-line-process nil)
|
||||
(use-local-map gnus-browse-mode-map)
|
||||
(buffer-disable-undo)
|
||||
(setq truncate-lines t)
|
||||
(gnus-set-default-directory)
|
||||
(setq buffer-read-only t)
|
||||
(gnus-run-mode-hooks 'gnus-browse-mode-hook))
|
||||
(setq buffer-read-only t))
|
||||
|
||||
(defun gnus-browse-read-group (&optional no-article number)
|
||||
"Enter the group at the current line.
|
||||
|
@ -1022,7 +1017,7 @@ doing the deletion."
|
|||
(defun gnus-browse-exit ()
|
||||
"Quit browsing and return to the group buffer."
|
||||
(interactive)
|
||||
(when (eq major-mode 'gnus-browse-mode)
|
||||
(when (derived-mode-p 'gnus-browse-mode)
|
||||
(gnus-kill-buffer (current-buffer)))
|
||||
;; Insert the newly subscribed groups in the group buffer.
|
||||
(with-current-buffer gnus-group-buffer
|
||||
|
|
|
@ -40,13 +40,13 @@
|
|||
(defvar gnus-score-edit-exit-function nil
|
||||
"Function run on exit from the score buffer.")
|
||||
|
||||
(defvar gnus-score-mode-map nil)
|
||||
(unless gnus-score-mode-map
|
||||
(setq gnus-score-mode-map (make-sparse-keymap))
|
||||
(set-keymap-parent gnus-score-mode-map emacs-lisp-mode-map)
|
||||
(define-key gnus-score-mode-map "\C-c\C-c" 'gnus-score-edit-exit)
|
||||
(define-key gnus-score-mode-map "\C-c\C-d" 'gnus-score-edit-insert-date)
|
||||
(define-key gnus-score-mode-map "\C-c\C-p" 'gnus-score-pretty-print))
|
||||
(defvar gnus-score-mode-map
|
||||
(let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map emacs-lisp-mode-map)
|
||||
(define-key map "\C-c\C-c" 'gnus-score-edit-exit)
|
||||
(define-key map "\C-c\C-d" 'gnus-score-edit-insert-date)
|
||||
(define-key map "\C-c\C-p" 'gnus-score-pretty-print)
|
||||
map))
|
||||
|
||||
(defvar score-mode-syntax-table
|
||||
(let ((table (copy-syntax-table lisp-mode-syntax-table)))
|
||||
|
@ -58,21 +58,13 @@
|
|||
(defvar score-mode-coding-system mm-universal-coding-system)
|
||||
|
||||
;;;###autoload
|
||||
(defun gnus-score-mode ()
|
||||
(define-derived-mode gnus-score-mode emacs-lisp-mode "Score"
|
||||
"Mode for editing Gnus score files.
|
||||
This mode is an extended emacs-lisp mode.
|
||||
|
||||
\\{gnus-score-mode-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(use-local-map gnus-score-mode-map)
|
||||
(gnus-score-make-menu-bar)
|
||||
(set-syntax-table score-mode-syntax-table)
|
||||
(setq major-mode 'gnus-score-mode)
|
||||
(setq mode-name "Score")
|
||||
(lisp-mode-variables nil)
|
||||
(make-local-variable 'gnus-score-edit-exit-function)
|
||||
(gnus-run-mode-hooks 'emacs-lisp-mode-hook 'gnus-score-mode-hook))
|
||||
(make-local-variable 'gnus-score-edit-exit-function))
|
||||
|
||||
(defun gnus-score-make-menu-bar ()
|
||||
(unless (boundp 'gnus-score-menu)
|
||||
|
|
|
@ -156,7 +156,7 @@ elisp byte-compiler."
|
|||
(null buffer-file-name))
|
||||
italic)
|
||||
(30 (memq major-mode ibuffer-help-buffer-modes) font-lock-comment-face)
|
||||
(35 (eq major-mode 'dired-mode) font-lock-function-name-face))
|
||||
(35 (derived-mode-p 'dired-mode) font-lock-function-name-face))
|
||||
"An alist describing how to fontify buffers.
|
||||
Each element should be of the form (PRIORITY FORM FACE), where
|
||||
PRIORITY is an integer, FORM is an arbitrary form to evaluate in the
|
||||
|
@ -2358,7 +2358,7 @@ FORMATS is the value to use for `ibuffer-formats'.
|
|||
;; We switch to the buffer's window in order to be able
|
||||
;; to modify the value of point
|
||||
(select-window (get-buffer-window buf 0))
|
||||
(or (eq major-mode 'ibuffer-mode)
|
||||
(or (derived-mode-p 'ibuffer-mode)
|
||||
(ibuffer-mode))
|
||||
(setq ibuffer-restore-window-config-on-quit other-window-p)
|
||||
(when shrink
|
||||
|
@ -2383,7 +2383,7 @@ FORMATS is the value to use for `ibuffer-formats'.
|
|||
(message "Commands: m, u, t, RET, g, k, S, D, Q; q to quit; h for help"))))))
|
||||
|
||||
(put 'ibuffer-mode 'mode-class 'special)
|
||||
(defun ibuffer-mode ()
|
||||
(define-derived-mode ibuffer-mode special-mode "IBuffer"
|
||||
"A major mode for viewing a list of buffers.
|
||||
In Ibuffer, you can conveniently perform many operations on the
|
||||
currently open buffers, in addition to filtering your view to a
|
||||
|
@ -2564,10 +2564,6 @@ filter groups are displayed in this order of precedence.
|
|||
You may rearrange filter groups by using the regular
|
||||
'\\[ibuffer-kill-line]' and '\\[ibuffer-yank]' pair. Yanked groups
|
||||
will be inserted before the group at point."
|
||||
(kill-all-local-variables)
|
||||
(use-local-map ibuffer-mode-map)
|
||||
(setq major-mode 'ibuffer-mode)
|
||||
(setq mode-name "Ibuffer")
|
||||
;; Include state info next to the mode name.
|
||||
(set (make-local-variable 'mode-line-process)
|
||||
'(" by "
|
||||
|
@ -2627,13 +2623,12 @@ will be inserted before the group at point."
|
|||
(ibuffer-update-format)
|
||||
(when ibuffer-default-directory
|
||||
(setq default-directory ibuffer-default-directory))
|
||||
(add-hook 'change-major-mode-hook 'font-lock-defontify nil t)
|
||||
(run-mode-hooks 'ibuffer-mode-hook))
|
||||
(add-hook 'change-major-mode-hook 'font-lock-defontify nil t))
|
||||
|
||||
|
||||
;;; Start of automatically extracted autoloads.
|
||||
|
||||
;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "d06b2735a74954e0c6922a811de7608c")
|
||||
;;;### (autoloads nil "ibuf-ext" "ibuf-ext.el" "85795a4045d20654599b73b88e8e1bc9")
|
||||
;;; Generated autoloads from ibuf-ext.el
|
||||
|
||||
(autoload 'ibuffer-auto-mode "ibuf-ext" "\
|
||||
|
|
46
lisp/info.el
46
lisp/info.el
|
@ -790,7 +790,7 @@ See a list of available Info commands in `Info-mode'."
|
|||
|
||||
(defun info-setup (file-or-node buffer)
|
||||
"Display Info node FILE-OR-NODE in BUFFER."
|
||||
(if (and buffer (not (eq major-mode 'Info-mode)))
|
||||
(if (and buffer (not (derived-mode-p 'Info-mode)))
|
||||
(Info-mode))
|
||||
(if file-or-node
|
||||
;; If argument already contains parentheses, don't add another set
|
||||
|
@ -931,7 +931,7 @@ STRICT-CASE is non-nil)."
|
|||
(info-initialize)
|
||||
(setq filename (Info-find-file filename))
|
||||
;; Go into Info buffer.
|
||||
(or (eq major-mode 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
|
||||
;; Record the node we are leaving, if we were in one.
|
||||
(and (not no-going-back)
|
||||
Info-current-file
|
||||
|
@ -961,7 +961,7 @@ otherwise, that defaults to `Top'."
|
|||
"Go to an Info node FILENAME and NODENAME, re-reading disk contents.
|
||||
When *info* is already displaying FILENAME and NODENAME, the window position
|
||||
is preserved, if possible."
|
||||
(or (eq major-mode 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(let ((old-filename Info-current-file)
|
||||
(old-nodename Info-current-node)
|
||||
(window-selected (eq (selected-window) (get-buffer-window)))
|
||||
|
@ -1065,7 +1065,7 @@ is non-nil)."
|
|||
|
||||
(defun Info-find-node-2 (filename nodename &optional no-going-back strict-case)
|
||||
(buffer-disable-undo (current-buffer))
|
||||
(or (eq major-mode 'Info-mode)
|
||||
(or (derived-mode-p 'Info-mode)
|
||||
(Info-mode))
|
||||
(widen)
|
||||
(setq Info-current-node nil)
|
||||
|
@ -2212,7 +2212,7 @@ End of submatch 0, 1, and 3 are the same, so you can safely concat."
|
|||
(interactive)
|
||||
;; In case another window is currently selected
|
||||
(save-window-excursion
|
||||
(or (eq major-mode 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(Info-goto-node (Info-extract-pointer "next"))))
|
||||
|
||||
(defun Info-prev ()
|
||||
|
@ -2220,7 +2220,7 @@ End of submatch 0, 1, and 3 are the same, so you can safely concat."
|
|||
(interactive)
|
||||
;; In case another window is currently selected
|
||||
(save-window-excursion
|
||||
(or (eq major-mode 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))))
|
||||
|
||||
(defun Info-up (&optional same-file)
|
||||
|
@ -2229,7 +2229,7 @@ If SAME-FILE is non-nil, do not move to a different Info file."
|
|||
(interactive)
|
||||
;; In case another window is currently selected
|
||||
(save-window-excursion
|
||||
(or (eq major-mode 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (switch-to-buffer "*info*"))
|
||||
(let ((old-node Info-current-node)
|
||||
(old-file Info-current-file)
|
||||
(node (Info-extract-pointer "up")) p)
|
||||
|
@ -4082,7 +4082,7 @@ If FORK is non-nil, it is passed to `Info-goto-node'."
|
|||
(defun Info-menu-update ()
|
||||
"Update the Info menu for the current node."
|
||||
(condition-case nil
|
||||
(if (or (not (eq major-mode 'Info-mode))
|
||||
(if (or (not (derived-mode-p 'Info-mode))
|
||||
(equal (list Info-current-file Info-current-node)
|
||||
Info-menu-last-node))
|
||||
()
|
||||
|
@ -4285,7 +4285,7 @@ Advanced commands:
|
|||
;; When an Info buffer is killed, make sure the associated tags buffer
|
||||
;; is killed too.
|
||||
(defun Info-kill-buffer ()
|
||||
(and (eq major-mode 'Info-mode)
|
||||
(and (derived-mode-p 'Info-mode)
|
||||
Info-tag-table-buffer
|
||||
(kill-buffer Info-tag-table-buffer)))
|
||||
|
||||
|
@ -4302,10 +4302,11 @@ Advanced commands:
|
|||
(copy-marker (marker-position m)))
|
||||
(make-marker))))))
|
||||
|
||||
(defvar Info-edit-map (let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map text-mode-map)
|
||||
(define-key map "\C-c\C-c" 'Info-cease-edit)
|
||||
map)
|
||||
(define-obsolete-variable-alias 'Info-edit-map 'Info-edit-mode-map "24.1")
|
||||
(defvar Info-edit-mode-map (let ((map (make-sparse-keymap)))
|
||||
(set-keymap-parent map text-mode-map)
|
||||
(define-key map "\C-c\C-c" 'Info-cease-edit)
|
||||
map)
|
||||
"Local keymap used within `e' command of Info.")
|
||||
|
||||
(make-obsolete-variable 'Info-edit-map
|
||||
|
@ -4315,19 +4316,14 @@ Advanced commands:
|
|||
;; Info-edit mode is suitable only for specially formatted data.
|
||||
(put 'Info-edit-mode 'mode-class 'special)
|
||||
|
||||
(defun Info-edit-mode ()
|
||||
(define-derived-mode Info-edit-mode text-mode "Info Edit"
|
||||
"Major mode for editing the contents of an Info node.
|
||||
Like text mode with the addition of `Info-cease-edit'
|
||||
which returns to Info mode for browsing.
|
||||
\\{Info-edit-map}"
|
||||
(use-local-map Info-edit-map)
|
||||
(setq major-mode 'Info-edit-mode)
|
||||
(setq mode-name "Info Edit")
|
||||
(kill-local-variable 'mode-line-buffer-identification)
|
||||
(setq buffer-read-only nil)
|
||||
(force-mode-line-update)
|
||||
(buffer-enable-undo (current-buffer))
|
||||
(run-mode-hooks 'Info-edit-mode-hook))
|
||||
(buffer-enable-undo (current-buffer)))
|
||||
|
||||
(make-obsolete 'Info-edit-mode
|
||||
"editing Info nodes by hand is not recommended." "24.4")
|
||||
|
@ -4352,11 +4348,7 @@ This feature will be removed in future.")
|
|||
(and (buffer-modified-p)
|
||||
(y-or-n-p "Save the file? ")
|
||||
(save-buffer))
|
||||
(use-local-map Info-mode-map)
|
||||
(setq major-mode 'Info-mode)
|
||||
(setq mode-name "Info")
|
||||
(Info-set-mode-line)
|
||||
(setq buffer-read-only t)
|
||||
(Info-mode)
|
||||
(force-mode-line-update)
|
||||
(and (marker-position Info-tag-table-marker)
|
||||
(buffer-modified-p)
|
||||
|
@ -4469,7 +4461,7 @@ COMMAND must be a symbol or string."
|
|||
;; Get Info running, and pop to it in another window.
|
||||
(save-window-excursion
|
||||
(info))
|
||||
(or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
|
||||
(or (derived-mode-p 'Info-mode) (pop-to-buffer "*info*"))
|
||||
;; Bind Info-history to nil, to prevent the last Index node
|
||||
;; visited by Info-find-emacs-command-nodes from being
|
||||
;; pushed onto the history.
|
||||
|
@ -5133,7 +5125,7 @@ INDENT is the current indentation depth."
|
|||
NODESPEC is a string of the form: (file)node."
|
||||
;; Set up a buffer we can use to fake-out Info.
|
||||
(with-current-buffer (get-buffer-create " *info-browse-tmp*")
|
||||
(if (not (equal major-mode 'Info-mode))
|
||||
(if (not (derived-mode-p 'Info-mode))
|
||||
(Info-mode))
|
||||
;; Get the node into this buffer
|
||||
(if (not (string-match "^(\\([^)]+\\))\\([^.]+\\)$" nodespec))
|
||||
|
|
|
@ -95,7 +95,7 @@
|
|||
;;
|
||||
;; (defadvice dired-make-relative (before set-no-error activate)
|
||||
;; "For locate mode and Windows, don't return errors"
|
||||
;; (if (and (eq major-mode 'locate-mode)
|
||||
;; (if (and (derived-mode-p 'locate-mode)
|
||||
;; (memq system-type '(windows-nt ms-dos)))
|
||||
;; (ad-set-arg 2 t)
|
||||
;; ))
|
||||
|
@ -448,7 +448,7 @@ file name or is inside a subdirectory."
|
|||
;; Define a mode for locate
|
||||
;; Default directory is set to "/" so that dired commands, which
|
||||
;; expect to be in a tree, will work properly
|
||||
(defun locate-mode ()
|
||||
(define-derived-mode locate-mode special-mode "Locate"
|
||||
"Major mode for the `*Locate*' buffer made by \\[locate].
|
||||
\\<locate-mode-map>\
|
||||
In that buffer, you can use almost all the usual dired bindings.
|
||||
|
@ -463,39 +463,31 @@ Specific `locate-mode' commands, such as \\[locate-find-directory],
|
|||
do not work in subdirectories.
|
||||
|
||||
\\{locate-mode-map}"
|
||||
;; Not to be called interactively.
|
||||
(kill-all-local-variables)
|
||||
;; Avoid clobbering this variable
|
||||
(make-local-variable 'dired-subdir-alist)
|
||||
(use-local-map locate-mode-map)
|
||||
(setq major-mode 'locate-mode
|
||||
mode-name "Locate"
|
||||
default-directory "/"
|
||||
(setq default-directory "/"
|
||||
buffer-read-only t
|
||||
selective-display t)
|
||||
(dired-alist-add-1 default-directory (point-min-marker))
|
||||
(set (make-local-variable 'dired-directory) "/")
|
||||
(set (make-local-variable 'dired-subdir-switches) locate-ls-subdir-switches)
|
||||
(setq dired-switches-alist nil)
|
||||
(make-local-variable 'directory-listing-before-filename-regexp)
|
||||
;; This should support both Unix and Windoze style names
|
||||
(setq directory-listing-before-filename-regexp
|
||||
(concat "^.\\("
|
||||
(make-string (1- locate-filename-indentation) ?\s)
|
||||
"\\)\\|"
|
||||
(default-value 'directory-listing-before-filename-regexp)))
|
||||
(make-local-variable 'dired-actual-switches)
|
||||
(setq dired-actual-switches "")
|
||||
(make-local-variable 'dired-permission-flags-regexp)
|
||||
(setq dired-permission-flags-regexp
|
||||
(concat "^.\\("
|
||||
(make-string (1- locate-filename-indentation) ?\s)
|
||||
"\\)\\|"
|
||||
(default-value 'dired-permission-flags-regexp)))
|
||||
(make-local-variable 'revert-buffer-function)
|
||||
(setq revert-buffer-function 'locate-update)
|
||||
(set (make-local-variable 'page-delimiter) "\n\n")
|
||||
(run-mode-hooks 'locate-mode-hook))
|
||||
(setq-local directory-listing-before-filename-regexp
|
||||
(concat "^.\\("
|
||||
(make-string (1- locate-filename-indentation) ?\s)
|
||||
"\\)\\|"
|
||||
(default-value
|
||||
'directory-listing-before-filename-regexp)))
|
||||
(setq-local dired-actual-switches "")
|
||||
(setq-local dired-permission-flags-regexp
|
||||
(concat "^.\\("
|
||||
(make-string (1- locate-filename-indentation) ?\s)
|
||||
"\\)\\|"
|
||||
(default-value 'dired-permission-flags-regexp)))
|
||||
|
||||
(setq-local revert-buffer-function #'locate-update)
|
||||
(setq-local page-delimiter "\n\n"))
|
||||
(put 'locate-mode 'derived-mode-parent 'dired-mode)
|
||||
|
||||
(defun locate-do-setup (search-string)
|
||||
|
|
|
@ -344,19 +344,13 @@ nil."
|
|||
(interactive)
|
||||
(kill-buffer mspools-buffer))
|
||||
|
||||
(defun mspools-mode ()
|
||||
(define-derived-mode mspools-mode special-mode "MSpools"
|
||||
"Major mode for output from mspools-show.
|
||||
\\<mspools-mode-map>Move point to one of the items in this buffer, then use
|
||||
\\[mspools-visit-spool] to go to the spool that the current line refers to.
|
||||
\\[revert-buffer] to regenerate the list of spools.
|
||||
\\{mspools-mode-map}"
|
||||
(kill-all-local-variables)
|
||||
(make-local-variable 'revert-buffer-function)
|
||||
(setq revert-buffer-function 'mspools-revert-buffer)
|
||||
(use-local-map mspools-mode-map)
|
||||
(setq major-mode 'mspools-mode)
|
||||
(setq mode-name "MSpools")
|
||||
(run-mode-hooks 'mspools-mode-hook))
|
||||
(setq-local revert-buffer-function 'mspools-revert-buffer))
|
||||
|
||||
(defun mspools-get-spool-files ()
|
||||
"Find the list of spool files and display them in *spools* buffer."
|
||||
|
|
|
@ -4768,7 +4768,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order.
|
|||
|
||||
;;;***
|
||||
|
||||
;;;### (autoloads nil "rmailsum" "rmailsum.el" "a9b3bbd9b82dd566524a1209b5cdb7dd")
|
||||
;;;### (autoloads nil "rmailsum" "rmailsum.el" "9005bd5da3e21d1cc173e86fd9fec3c9")
|
||||
;;; Generated autoloads from rmailsum.el
|
||||
|
||||
(autoload 'rmail-summary "rmailsum" "\
|
||||
|
|
|
@ -408,7 +408,7 @@ If FUNCTION is nil, includes all messages."
|
|||
(unless rmail-buffer
|
||||
(error "No RMAIL buffer found"))
|
||||
(let (mesg was-in-summary sumbuf)
|
||||
(if (eq major-mode 'rmail-summary-mode)
|
||||
(if (derived-mode-p 'rmail-summary-mode)
|
||||
(setq was-in-summary t))
|
||||
(with-current-buffer rmail-buffer
|
||||
(setq rmail-summary-buffer (rmail-new-summary-1 desc redo function args)
|
||||
|
@ -1035,7 +1035,7 @@ Optional prefix ARG means undelete ARG previous messages."
|
|||
;; Rmail Summary mode is suitable only for specially formatted data.
|
||||
(put 'rmail-summary-mode 'mode-class 'special)
|
||||
|
||||
(defun rmail-summary-mode ()
|
||||
(define-derived-mode rmail-summary-mode special-mode "RMAIL Summary"
|
||||
"Rmail Summary Mode is invoked from Rmail Mode by using \\<rmail-mode-map>\\[rmail-summary].
|
||||
As commands are issued in the summary buffer, they are applied to the
|
||||
corresponding mail messages in the rmail buffer.
|
||||
|
@ -1058,10 +1058,6 @@ Commands for sorting the summary:
|
|||
\\[rmail-summary-sort-by-correspondent] Sort by correspondent.
|
||||
\\[rmail-summary-sort-by-lines] Sort by lines.
|
||||
\\[rmail-summary-sort-by-labels] Sort by labels."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'rmail-summary-mode)
|
||||
(setq mode-name "RMAIL Summary")
|
||||
(setq truncate-lines t)
|
||||
(setq buffer-read-only t)
|
||||
(set-syntax-table text-mode-syntax-table)
|
||||
|
@ -1074,8 +1070,7 @@ Commands for sorting the summary:
|
|||
(make-local-variable 'revert-buffer-function)
|
||||
(make-local-variable 'font-lock-defaults)
|
||||
(setq font-lock-defaults '(rmail-summary-font-lock-keywords t))
|
||||
(rmail-summary-enable)
|
||||
(run-mode-hooks 'rmail-summary-mode-hook))
|
||||
(rmail-summary-enable))
|
||||
|
||||
;; Summary features need to be disabled during edit mode.
|
||||
(defun rmail-summary-disable ()
|
||||
|
|
15
lisp/man.el
15
lisp/man.el
|
@ -413,7 +413,7 @@ Otherwise, the value is whatever the function
|
|||
|
||||
(defvar Man-topic-history nil "Topic read history.")
|
||||
|
||||
(defvar man-mode-syntax-table
|
||||
(defvar Man-mode-syntax-table
|
||||
(let ((table (copy-syntax-table (standard-syntax-table))))
|
||||
(modify-syntax-entry ?. "w" table)
|
||||
(modify-syntax-entry ?_ "w" table)
|
||||
|
@ -1350,7 +1350,7 @@ manpage command."
|
|||
|
||||
(put 'Man-mode 'mode-class 'special)
|
||||
|
||||
(defun Man-mode ()
|
||||
(define-derived-mode Man-mode fundamental-mode "Man"
|
||||
"A mode for browsing Un*x manual pages.
|
||||
|
||||
The following man commands are available in the buffer. Try
|
||||
|
@ -1387,11 +1387,7 @@ The following variables may be of some use. Try
|
|||
|
||||
The following key bindings are currently in effect in the buffer:
|
||||
\\{Man-mode-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'Man-mode
|
||||
mode-name "Man"
|
||||
buffer-auto-save-file-name nil
|
||||
(setq buffer-auto-save-file-name nil
|
||||
mode-line-buffer-identification
|
||||
(list (default-value 'mode-line-buffer-identification)
|
||||
" {" 'Man-page-mode-string "}")
|
||||
|
@ -1399,8 +1395,6 @@ The following key bindings are currently in effect in the buffer:
|
|||
buffer-read-only t)
|
||||
(buffer-disable-undo)
|
||||
(auto-fill-mode -1)
|
||||
(use-local-map Man-mode-map)
|
||||
(set-syntax-table man-mode-syntax-table)
|
||||
(setq imenu-generic-expression (list (list nil Man-heading-regexp 0)))
|
||||
(set (make-local-variable 'outline-regexp) Man-heading-regexp)
|
||||
(set (make-local-variable 'outline-level) (lambda () 1))
|
||||
|
@ -1409,8 +1403,7 @@ The following key bindings are currently in effect in the buffer:
|
|||
(Man-build-page-list)
|
||||
(Man-strip-page-headers)
|
||||
(Man-unindent)
|
||||
(Man-goto-page 1 t)
|
||||
(run-mode-hooks 'Man-mode-hook))
|
||||
(Man-goto-page 1 t))
|
||||
|
||||
(defsubst Man-build-section-alist ()
|
||||
"Build the list of manpage sections."
|
||||
|
|
17
lisp/mpc.el
17
lisp/mpc.el
|
@ -491,10 +491,9 @@ to call FUN for any change whatsoever.")
|
|||
(cancel-timer mpc--status-timer)
|
||||
(setq mpc--status-timer nil)))
|
||||
(defun mpc--status-timer-run ()
|
||||
(condition-case err
|
||||
(when (process-get (mpc-proc) 'ready)
|
||||
(with-local-quit (mpc-status-refresh)))
|
||||
(error (message "MPC: %s" err))))
|
||||
(with-demoted-errors "MPC: %s"
|
||||
(when (process-get (mpc-proc) 'ready)
|
||||
(with-local-quit (mpc-status-refresh)))))
|
||||
|
||||
(defvar mpc--status-idle-timer nil)
|
||||
(defun mpc--status-idle-timer-start ()
|
||||
|
@ -520,9 +519,8 @@ to call FUN for any change whatsoever.")
|
|||
(run-with-idle-timer 10 t 'mpc--status-idle-timer-run))))
|
||||
(defun mpc--status-idle-timer-run ()
|
||||
(when (process-get (mpc-proc) 'ready)
|
||||
(condition-case err
|
||||
(with-local-quit (mpc-status-refresh))
|
||||
(error (message "MPC: %s" err))))
|
||||
(with-demoted-errors "MPC: %s"
|
||||
(with-local-quit (mpc-status-refresh))))
|
||||
(mpc--status-timer-start))
|
||||
|
||||
(defun mpc--status-timers-refresh ()
|
||||
|
@ -999,9 +997,8 @@ If PLAYLIST is t or nil or missing, use the main playlist."
|
|||
(`Cover
|
||||
(let* ((dir (file-name-directory (cdr (assq 'file info))))
|
||||
(cover (concat dir "cover.jpg"))
|
||||
(file (condition-case err
|
||||
(mpc-file-local-copy cover)
|
||||
(error (message "MPC: %s" err))))
|
||||
(file (with-demoted-errors "MPC: %s"
|
||||
(mpc-file-local-copy cover)))
|
||||
image)
|
||||
;; (debug)
|
||||
(push `(equal ',dir (file-name-directory (cdr (assq 'file info)))) pred)
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
(define-key map "x" 'kill-this-buffer)
|
||||
map))
|
||||
|
||||
(defun eudc-hotlist-mode ()
|
||||
(define-derived-mode eudc-hotlist-mode fundamental-mode "EUDC-Servers"
|
||||
"Major mode used to edit the hotlist of servers.
|
||||
|
||||
These are the special commands of this mode:
|
||||
|
@ -54,18 +54,12 @@ These are the special commands of this mode:
|
|||
t -- Transpose the server at point and the previous one
|
||||
q -- Commit the changes and quit.
|
||||
x -- Quit without committing the changes."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'eudc-hotlist-mode)
|
||||
(setq mode-name "EUDC-Servers")
|
||||
(use-local-map eudc-hotlist-mode-map)
|
||||
(when (featurep 'xemacs)
|
||||
(setq mode-popup-menu eudc-hotlist-menu)
|
||||
(when (featurep 'menubar)
|
||||
(set-buffer-menubar current-menubar)
|
||||
(add-submenu nil (cons "EUDC-Hotlist" (cdr (cdr eudc-hotlist-menu))))))
|
||||
(setq buffer-read-only t)
|
||||
(run-mode-hooks 'eudc-hotlist-mode-hook))
|
||||
(setq buffer-read-only t))
|
||||
|
||||
;;;###autoload
|
||||
(defun eudc-edit-hotlist ()
|
||||
|
@ -76,10 +70,8 @@ These are the special commands of this mode:
|
|||
(switch-to-buffer (get-buffer-create "*EUDC Servers*"))
|
||||
(setq buffer-read-only nil)
|
||||
(erase-buffer)
|
||||
(mapc (function
|
||||
(lambda (entry)
|
||||
(setq proto-col (max (length (car entry)) proto-col))))
|
||||
eudc-server-hotlist)
|
||||
(dolist (entry eudc-server-hotlist)
|
||||
(setq proto-col (max (length (car entry)) proto-col)))
|
||||
(setq proto-col (+ 3 proto-col))
|
||||
(setq gap (make-string (- proto-col 6) ?\ ))
|
||||
(insert " EUDC Servers\n"
|
||||
|
@ -89,17 +81,16 @@ These are the special commands of this mode:
|
|||
"------" gap "--------\n"
|
||||
"\n")
|
||||
(setq eudc-hotlist-list-beginning (point))
|
||||
(mapc (lambda (entry)
|
||||
(insert (car entry))
|
||||
(indent-to proto-col)
|
||||
(insert (symbol-name (cdr entry)) "\n"))
|
||||
eudc-server-hotlist)
|
||||
(eudc-hotlist-mode)))
|
||||
(dolist (entry eudc-server-hotlist)
|
||||
(insert (car entry))
|
||||
(indent-to proto-col)
|
||||
(insert (symbol-name (cdr entry)) "\n"))
|
||||
(eudc-hotlist-mode)))
|
||||
|
||||
(defun eudc-hotlist-add-server ()
|
||||
"Add a new server to the list after current one."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-hotlist-mode))
|
||||
(if (not (derived-mode-p 'eudc-hotlist-mode))
|
||||
(error "Not in a EUDC hotlist edit buffer"))
|
||||
(let ((server (read-from-minibuffer "Server: "))
|
||||
(protocol (completing-read "Protocol: "
|
||||
|
@ -117,7 +108,7 @@ These are the special commands of this mode:
|
|||
(defun eudc-hotlist-delete-server ()
|
||||
"Delete the server at point from the list."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-hotlist-mode))
|
||||
(if (not (derived-mode-p 'eudc-hotlist-mode))
|
||||
(error "Not in a EUDC hotlist edit buffer"))
|
||||
(let ((buffer-read-only nil))
|
||||
(save-excursion
|
||||
|
@ -130,7 +121,7 @@ These are the special commands of this mode:
|
|||
(defun eudc-hotlist-quit-edit ()
|
||||
"Quit the hotlist editing mode and save changes to the hotlist."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-hotlist-mode))
|
||||
(if (not (derived-mode-p 'eudc-hotlist-mode))
|
||||
(error "Not in a EUDC hotlist edit buffer"))
|
||||
(let (hotlist)
|
||||
(goto-char eudc-hotlist-list-beginning)
|
||||
|
@ -149,7 +140,7 @@ These are the special commands of this mode:
|
|||
(defun eudc-hotlist-select-server ()
|
||||
"Select the server at point as the current server."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-hotlist-mode))
|
||||
(if (not (derived-mode-p 'eudc-hotlist-mode))
|
||||
(error "Not in a EUDC hotlist edit buffer"))
|
||||
(save-excursion
|
||||
(beginning-of-line)
|
||||
|
@ -163,7 +154,7 @@ These are the special commands of this mode:
|
|||
(defun eudc-hotlist-transpose-servers ()
|
||||
"Swap the order of the server with the previous one in the list."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-hotlist-mode))
|
||||
(if (not (derived-mode-p 'eudc-hotlist-mode))
|
||||
(error "Not in a EUDC hotlist edit buffer"))
|
||||
(let ((buffer-read-only nil))
|
||||
(save-excursion
|
||||
|
|
|
@ -652,7 +652,7 @@ Each copy is added a new field containing one of the values of FIELD."
|
|||
result))
|
||||
|
||||
|
||||
(defun eudc-mode ()
|
||||
(define-derived-mode eudc-mode special-mode "EUDC"
|
||||
"Major mode used in buffers displaying the results of directory queries.
|
||||
There is no sense in calling this command from a buffer other than
|
||||
one containing the results of a directory query.
|
||||
|
@ -663,15 +663,9 @@ These are the special commands of EUDC mode:
|
|||
n -- Move to next record.
|
||||
p -- Move to previous record.
|
||||
b -- Insert record at point into the BBDB database."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'eudc-mode)
|
||||
(setq mode-name "EUDC")
|
||||
(use-local-map eudc-mode-map)
|
||||
(if (not (featurep 'xemacs))
|
||||
(easy-menu-define eudc-emacs-menu eudc-mode-map "" (eudc-menu))
|
||||
(setq mode-popup-menu (eudc-menu)))
|
||||
(run-mode-hooks 'eudc-mode-hook))
|
||||
(setq mode-popup-menu (eudc-menu))))
|
||||
|
||||
;;}}}
|
||||
|
||||
|
@ -1084,7 +1078,7 @@ queries the server for the existing fields and displays a corresponding form."
|
|||
(defun eudc-move-to-next-record ()
|
||||
"Move to next record, in a buffer displaying directory query results."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-mode))
|
||||
(if (not (derived-mode-p 'eudc-mode))
|
||||
(error "Not in a EUDC buffer")
|
||||
(let ((pt (next-overlay-change (point))))
|
||||
(if (< pt (point-max))
|
||||
|
@ -1094,7 +1088,7 @@ queries the server for the existing fields and displays a corresponding form."
|
|||
(defun eudc-move-to-previous-record ()
|
||||
"Move to previous record, in a buffer displaying directory query results."
|
||||
(interactive)
|
||||
(if (not (eq major-mode 'eudc-mode))
|
||||
(if (not (derived-mode-p 'eudc-mode))
|
||||
(error "Not in a EUDC buffer")
|
||||
(let ((pt (previous-overlay-change (point))))
|
||||
(if (> pt (point-min))
|
||||
|
@ -1122,7 +1116,7 @@ queries the server for the existing fields and displays a corresponding form."
|
|||
(overlay-get (car (overlays-at (point))) 'eudc-record))
|
||||
:help "Insert record at point into the BBDB database"]
|
||||
["Insert All Records into BBDB" eudc-batch-export-records-to-bbdb
|
||||
(and (eq major-mode 'eudc-mode)
|
||||
(and (derived-mode-p 'eudc-mode)
|
||||
(or (featurep 'bbdb)
|
||||
(prog1 (locate-library "bbdb") (message ""))))
|
||||
:help "Insert all the records returned by a directory query into BBDB"]
|
||||
|
|
|
@ -757,31 +757,24 @@ VALUES may contain values for editable fields from current article."
|
|||
map)
|
||||
"'mairix-searches-mode' keymap.")
|
||||
|
||||
(defvar mairix-searches-mode-font-lock-keywords)
|
||||
(defvar mairix-searches-mode-font-lock-keywords
|
||||
'(("^\\([0-9]+\\)"
|
||||
(1 font-lock-constant-face))
|
||||
("^[0-9 ]+\\(Name:\\) \\(.*\\)"
|
||||
(1 font-lock-keyword-face) (2 font-lock-string-face))
|
||||
("^[ ]+\\(Query:\\) \\(.*\\) , "
|
||||
(1 font-lock-keyword-face) (2 font-lock-string-face))
|
||||
(", \\(Threads:\\) \\(.*\\)"
|
||||
(1 font-lock-keyword-face) (2 font-lock-constant-face))
|
||||
("^\\([A-Z].*\\)$"
|
||||
(1 font-lock-comment-face))
|
||||
("^[ ]+\\(Folder:\\) \\(.*\\)"
|
||||
(1 font-lock-keyword-face) (2 font-lock-string-face))))
|
||||
|
||||
(defun mairix-searches-mode ()
|
||||
(define-derived-mode mairix-searches-mode fundamental-mode "mairix-searches"
|
||||
"Major mode for editing mairix searches."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'mairix-searches-mode)
|
||||
(setq mode-name "mairix-searches")
|
||||
(set-syntax-table text-mode-syntax-table)
|
||||
(use-local-map mairix-searches-mode-map)
|
||||
(make-local-variable 'font-lock-defaults)
|
||||
(setq mairix-searches-mode-font-lock-keywords
|
||||
(list (list "^\\([0-9]+\\)"
|
||||
'(1 font-lock-constant-face))
|
||||
(list "^[0-9 ]+\\(Name:\\) \\(.*\\)"
|
||||
'(1 font-lock-keyword-face) '(2 font-lock-string-face))
|
||||
(list "^[ ]+\\(Query:\\) \\(.*\\) , "
|
||||
'(1 font-lock-keyword-face) '(2 font-lock-string-face))
|
||||
(list ", \\(Threads:\\) \\(.*\\)"
|
||||
'(1 font-lock-keyword-face) '(2 font-lock-constant-face))
|
||||
(list "^\\([A-Z].*\\)$"
|
||||
'(1 font-lock-comment-face))
|
||||
(list "^[ ]+\\(Folder:\\) \\(.*\\)"
|
||||
'(1 font-lock-keyword-face) '(2 font-lock-string-face))))
|
||||
(setq font-lock-defaults '(mairix-searches-mode-font-lock-keywords)))
|
||||
:syntax-table text-mode-syntax-table
|
||||
(setq-local font-lock-defaults '(mairix-searches-mode-font-lock-keywords)))
|
||||
|
||||
(defun mairix-build-search-list ()
|
||||
"Display saved searches in current buffer."
|
||||
|
|
|
@ -1909,13 +1909,9 @@ Return t if groups have changed, nil otherwise."
|
|||
map)
|
||||
"Mode map for newsticker treeview.")
|
||||
|
||||
(defun newsticker-treeview-mode ()
|
||||
(define-derived-mode newsticker-treeview-mode fundamental-mode "Newsticker TV"
|
||||
"Major mode for Newsticker Treeview.
|
||||
\\{newsticker-treeview-mode-map}"
|
||||
(kill-all-local-variables)
|
||||
(use-local-map newsticker-treeview-mode-map)
|
||||
(setq major-mode 'newsticker-treeview-mode)
|
||||
(setq mode-name "Newsticker TV")
|
||||
(if (boundp 'tool-bar-map)
|
||||
(set (make-local-variable 'tool-bar-map)
|
||||
newsticker-treeview-tool-bar-map))
|
||||
|
|
|
@ -429,18 +429,12 @@ current buffer, this default action can be modified via
|
|||
(put 'quickurl-list-mode 'mode-class 'special)
|
||||
|
||||
;;;###autoload
|
||||
(defun quickurl-list-mode ()
|
||||
(define-derived-mode quickurl-list-mode fundamental-mode "quickurl list"
|
||||
"A mode for browsing the quickurl URL list.
|
||||
|
||||
The key bindings for `quickurl-list-mode' are:
|
||||
|
||||
\\{quickurl-list-mode-map}"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(use-local-map quickurl-list-mode-map)
|
||||
(setq major-mode 'quickurl-list-mode
|
||||
mode-name "quickurl list")
|
||||
(run-mode-hooks 'quickurl-list-mode-hook)
|
||||
(setq buffer-read-only t
|
||||
truncate-lines t))
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@
|
|||
(insert-directory . tramp-adb-handle-insert-directory)
|
||||
(insert-file-contents . tramp-handle-insert-file-contents)
|
||||
(load . tramp-handle-load)
|
||||
;; `make-auto-save-file-name' performed by default handler.
|
||||
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
|
||||
(make-directory . tramp-adb-handle-make-directory)
|
||||
(make-directory-internal . ignore)
|
||||
(make-symbolic-link . ignore)
|
||||
|
@ -407,9 +407,9 @@ Convert (\"-al\") to (\"-a\" \"-l\"). Remove arguments like \"--dired\"."
|
|||
(split-string
|
||||
(apply 'concat
|
||||
(mapcar (lambda (s)
|
||||
(replace-regexp-in-string
|
||||
(tramp-compat-replace-regexp-in-string
|
||||
"\\(.\\)" " -\\1"
|
||||
(replace-regexp-in-string "^-" "" s)))
|
||||
(tramp-compat-replace-regexp-in-string "^-" "" s)))
|
||||
;; FIXME: Warning about removed switches (long and non-dash).
|
||||
(delq nil
|
||||
(mapcar
|
||||
|
@ -1153,11 +1153,11 @@ connection if a previous connection has died for some reason."
|
|||
(read (current-buffer))))))
|
||||
(when (and (stringp old-getprop)
|
||||
(not (string-equal old-getprop new-getprop)))
|
||||
(tramp-cleanup vec)
|
||||
(tramp-message
|
||||
vec 3
|
||||
"Connection reset, because remote host changed from `%s' to `%s'"
|
||||
old-getprop new-getprop)
|
||||
(tramp-cleanup-connection vec t)
|
||||
(tramp-adb-maybe-open-connection vec)))
|
||||
|
||||
;; Change user if indicated.
|
||||
|
|
|
@ -289,7 +289,12 @@ KEY identifies the connection, it is either a process or a vector."
|
|||
(when (vectorp key)
|
||||
(dotimes (i (length key))
|
||||
(when (stringp (aref key i))
|
||||
(aset key i (substring-no-properties (aref key i))))))
|
||||
(aset key i
|
||||
(funcall
|
||||
;; `substring-no-properties' does not exist in XEmacs.
|
||||
(if (functionp 'substring-no-properties)
|
||||
'substring-no-properties 'identity)
|
||||
(aref key i))))))
|
||||
(let ((tmp (format
|
||||
"(%s %s)"
|
||||
(if (processp key)
|
||||
|
|
|
@ -55,9 +55,11 @@
|
|||
(buffer-list))))
|
||||
|
||||
;;;###tramp-autoload
|
||||
(defun tramp-cleanup-connection (vec)
|
||||
(defun tramp-cleanup-connection (vec &optional keep-debug keep-password)
|
||||
"Flush all connection related objects.
|
||||
This includes password cache, file cache, connection cache, buffers.
|
||||
This includes password cache, file cache, connection cache,
|
||||
buffers. KEEP-DEBUG non-nil preserves the debug buffer.
|
||||
KEEP-PASSWORD non-nil preserves the password cache.
|
||||
When called interactively, a Tramp connection has to be selected."
|
||||
(interactive
|
||||
;; When interactive, select the Tramp remote identification.
|
||||
|
@ -80,14 +82,15 @@ When called interactively, a Tramp connection has to be selected."
|
|||
"Enter Tramp connection: " connections nil t
|
||||
(try-completion "" connections)))
|
||||
(when (and name (file-remote-p name))
|
||||
(with-parsed-tramp-file-name name nil v))))))
|
||||
(with-parsed-tramp-file-name name nil v))))
|
||||
nil nil))
|
||||
|
||||
(if (not vec)
|
||||
;; Nothing to do.
|
||||
(message "No Tramp connection found.")
|
||||
|
||||
;; Flush password cache.
|
||||
(tramp-clear-passwd vec)
|
||||
(unless keep-password (tramp-clear-passwd vec))
|
||||
|
||||
;; Flush file cache.
|
||||
(tramp-flush-directory-property vec "")
|
||||
|
@ -101,7 +104,8 @@ When called interactively, a Tramp connection has to be selected."
|
|||
;; Remove buffers.
|
||||
(dolist
|
||||
(buf (list (get-buffer (tramp-buffer-name vec))
|
||||
(get-buffer (tramp-debug-buffer-name vec))
|
||||
(unless keep-debug
|
||||
(get-buffer (tramp-debug-buffer-name vec)))
|
||||
(tramp-get-connection-property vec "process-buffer" nil)))
|
||||
(when (bufferp buf) (kill-buffer buf)))))
|
||||
|
||||
|
@ -190,7 +194,9 @@ This includes password cache, file cache, connection cache, buffers."
|
|||
|
||||
'tramp-load-report-modules ; pre-hook
|
||||
'tramp-append-tramp-buffers ; post-hook
|
||||
(propertize "\n" 'display "\
|
||||
(funcall
|
||||
(if (functionp 'propertize) 'propertize 'progn)
|
||||
"\n" 'display "\
|
||||
Enter your bug report in this message, including as much detail
|
||||
as you possibly can about the problem, what you did to cause it
|
||||
and what the local and remote machines are.
|
||||
|
|
|
@ -313,13 +313,21 @@ Not actually used. Use `(format \"%o\" i)' instead?"
|
|||
"Like `copy-file' for Tramp files (compat function)."
|
||||
(cond
|
||||
(preserve-extended-attributes
|
||||
(tramp-compat-funcall
|
||||
'copy-file filename newname ok-if-already-exists keep-date
|
||||
preserve-uid-gid preserve-extended-attributes))
|
||||
(condition-case nil
|
||||
(tramp-compat-funcall
|
||||
'copy-file filename newname ok-if-already-exists keep-date
|
||||
preserve-uid-gid preserve-extended-attributes)
|
||||
(wrong-number-of-arguments
|
||||
(tramp-compat-copy-file
|
||||
filename newname ok-if-already-exists keep-date preserve-uid-gid))))
|
||||
(preserve-uid-gid
|
||||
(tramp-compat-funcall
|
||||
'copy-file filename newname ok-if-already-exists keep-date
|
||||
preserve-uid-gid))
|
||||
(condition-case nil
|
||||
(tramp-compat-funcall
|
||||
'copy-file filename newname ok-if-already-exists keep-date
|
||||
preserve-uid-gid)
|
||||
(wrong-number-of-arguments
|
||||
(tramp-compat-copy-file
|
||||
filename newname ok-if-already-exists keep-date))))
|
||||
(t
|
||||
(copy-file filename newname ok-if-already-exists keep-date))))
|
||||
|
||||
|
@ -518,6 +526,58 @@ EOL-TYPE can be one of `dos', `unix', or `mac'."
|
|||
"`dos', `unix', or `mac'")))))
|
||||
(t (error "Can't change EOL conversion -- is MULE missing?"))))
|
||||
|
||||
;; `replace-regexp-in-string' does not exist in XEmacs.
|
||||
;; Implementation is taken from Emacs 24.
|
||||
(if (fboundp 'replace-regexp-in-string)
|
||||
(defalias 'tramp-compat-replace-regexp-in-string 'replace-regexp-in-string)
|
||||
(defun tramp-compat-replace-regexp-in-string
|
||||
(regexp rep string &optional fixedcase literal subexp start)
|
||||
"Replace all matches for REGEXP with REP in STRING.
|
||||
|
||||
Return a new string containing the replacements.
|
||||
|
||||
Optional arguments FIXEDCASE, LITERAL and SUBEXP are like the
|
||||
arguments with the same names of function `replace-match'. If START
|
||||
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
|
||||
of STRING.
|
||||
|
||||
To replace only the first match (if any), make REGEXP match up to \\'
|
||||
and replace a sub-expression, e.g.
|
||||
(replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1)
|
||||
=> \" bar foo\""
|
||||
|
||||
(let ((l (length string))
|
||||
(start (or start 0))
|
||||
matches str mb me)
|
||||
(save-match-data
|
||||
(while (and (< start l) (string-match regexp string start))
|
||||
(setq mb (match-beginning 0)
|
||||
me (match-end 0))
|
||||
;; If we matched the empty string, make sure we advance by one char
|
||||
(when (= me mb) (setq me (min l (1+ mb))))
|
||||
;; Generate a replacement for the matched substring.
|
||||
;; Operate only on the substring to minimize string consing.
|
||||
;; Set up match data for the substring for replacement;
|
||||
;; presumably this is likely to be faster than munging the
|
||||
;; match data directly in Lisp.
|
||||
(string-match regexp (setq str (substring string mb me)))
|
||||
(setq matches
|
||||
(cons (replace-match (if (stringp rep)
|
||||
rep
|
||||
(funcall rep (match-string 0 str)))
|
||||
fixedcase literal str subexp)
|
||||
(cons (substring string start mb) ; unmatched prefix
|
||||
matches)))
|
||||
(setq start me))
|
||||
;; Reconstruct a string from the pieces.
|
||||
(setq matches (cons (substring string start l) matches)) ; leftover
|
||||
(apply #'concat (nreverse matches))))))
|
||||
|
||||
(add-hook 'tramp-unload-hook
|
||||
(lambda ()
|
||||
(unload-feature 'tramp-compat 'force)))
|
||||
|
|
|
@ -453,7 +453,7 @@ Every entry is a list (NAME ADDRESS).")
|
|||
(insert-directory . tramp-gvfs-handle-insert-directory)
|
||||
(insert-file-contents . tramp-gvfs-handle-insert-file-contents)
|
||||
(load . tramp-handle-load)
|
||||
;; `make-auto-save-file-name' performed by default handler.
|
||||
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
|
||||
(make-directory . tramp-gvfs-handle-make-directory)
|
||||
(make-directory-internal . ignore)
|
||||
(make-symbolic-link . ignore)
|
||||
|
@ -594,15 +594,19 @@ is no information where to trace the message.")
|
|||
(and (tramp-tramp-file-p newname)
|
||||
(not (tramp-gvfs-file-name-p newname))))
|
||||
|
||||
;; We cannot copy directly.
|
||||
;; We cannot call `copy-file' directly. Use
|
||||
;; `tramp-compat-funcall' for backward compatibility (number
|
||||
;; of arguments).
|
||||
(let ((tmpfile (tramp-compat-make-temp-file filename)))
|
||||
(cond
|
||||
(preserve-extended-attributes
|
||||
(copy-file
|
||||
(tramp-compat-funcall
|
||||
'copy-file
|
||||
filename tmpfile t keep-date preserve-uid-gid
|
||||
preserve-extended-attributes))
|
||||
(preserve-uid-gid
|
||||
(copy-file filename tmpfile t keep-date preserve-uid-gid))
|
||||
(tramp-compat-funcall
|
||||
'copy-file filename tmpfile t keep-date preserve-uid-gid))
|
||||
(t
|
||||
(copy-file filename tmpfile t keep-date)))
|
||||
(rename-file tmpfile newname ok-if-already-exists))
|
||||
|
@ -950,7 +954,7 @@ is no information where to trace the message.")
|
|||
(tramp-message proc 6 "%S\n%s" proc string)
|
||||
(setq string (concat rest-string string)
|
||||
;; Attribute change is returned in unused wording.
|
||||
string (replace-regexp-in-string
|
||||
string (tramp-compat-replace-regexp-in-string
|
||||
"ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string))
|
||||
|
||||
(while (string-match
|
||||
|
@ -960,7 +964,7 @@ is no information where to trace the message.")
|
|||
"Event = \\([^[:blank:]]+\\)[\n\r]+")
|
||||
string)
|
||||
(let ((action (intern-soft
|
||||
(replace-regexp-in-string
|
||||
(tramp-compat-replace-regexp-in-string
|
||||
"_" "-" (downcase (match-string 2 string)))))
|
||||
(file (match-string 1 string)))
|
||||
(setq string (replace-match "" nil nil string))
|
||||
|
@ -1158,7 +1162,8 @@ is no information where to trace the message.")
|
|||
(defun tramp-gvfs-file-name (object-path)
|
||||
"Retrieve file name from D-Bus OBJECT-PATH."
|
||||
(dbus-unescape-from-identifier
|
||||
(replace-regexp-in-string "^.*/\\([^/]+\\)$" "\\1" object-path)))
|
||||
(tramp-compat-replace-regexp-in-string
|
||||
"^.*/\\([^/]+\\)$" "\\1" object-path)))
|
||||
|
||||
(defun tramp-bluez-address (device)
|
||||
"Return bluetooth device address from a given bluetooth DEVICE name."
|
||||
|
@ -1709,11 +1714,13 @@ They are retrieved from the hal daemon."
|
|||
(when (with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t
|
||||
:system tramp-hal-service device tramp-hal-interface-device
|
||||
"PropertyExists" "sync.plugin")
|
||||
(pushnew
|
||||
(with-tramp-dbus-call-method tramp-gvfs-dbus-event-vector t
|
||||
:system tramp-hal-service device tramp-hal-interface-device
|
||||
"GetPropertyString" "pda.pocketpc.name")
|
||||
tramp-synce-devices :test #'equal)))
|
||||
(let ((prop
|
||||
(with-tramp-dbus-call-method
|
||||
tramp-gvfs-dbus-event-vector t
|
||||
:system tramp-hal-service device tramp-hal-interface-device
|
||||
"GetPropertyString" "pda.pocketpc.name")))
|
||||
(unless (member prop tramp-synce-devices)
|
||||
(push prop tramp-synce-devices)))))
|
||||
(tramp-message tramp-gvfs-dbus-event-vector 10 "%s" tramp-synce-devices)
|
||||
tramp-synce-devices))
|
||||
|
||||
|
|
|
@ -238,7 +238,7 @@ authentication is requested from proxy server, provide it."
|
|||
tramp-gw-vector 6 "\n%s"
|
||||
(format
|
||||
"%s%s\r\n" command
|
||||
(replace-regexp-in-string ;; no password in trace!
|
||||
(tramp-compat-replace-regexp-in-string ;; no password in trace!
|
||||
"Basic [^\r\n]+" "Basic xxxxx" authentication t)))
|
||||
(with-current-buffer buffer
|
||||
;; Trap errors to be traced in the right trace buffer. Often,
|
||||
|
|
|
@ -850,7 +850,7 @@ of command line.")
|
|||
(insert-file-contents-literally
|
||||
. tramp-sh-handle-insert-file-contents-literally)
|
||||
(load . tramp-handle-load)
|
||||
(make-auto-save-file-name . tramp-sh-handle-make-auto-save-file-name)
|
||||
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
|
||||
(make-directory . tramp-sh-handle-make-directory)
|
||||
(make-symbolic-link . tramp-sh-handle-make-symbolic-link)
|
||||
(process-file . tramp-sh-handle-process-file)
|
||||
|
@ -2978,48 +2978,6 @@ the result will be a local, non-Tramp, filename."
|
|||
(fset 'find-buffer-file-type find-buffer-file-type-function)
|
||||
(fmakunbound 'find-buffer-file-type)))))
|
||||
|
||||
(defun tramp-sh-handle-make-auto-save-file-name ()
|
||||
"Like `make-auto-save-file-name' for Tramp files.
|
||||
Returns a file name in `tramp-auto-save-directory' for autosaving this file."
|
||||
(let ((tramp-auto-save-directory tramp-auto-save-directory)
|
||||
(buffer-file-name
|
||||
(tramp-subst-strs-in-string
|
||||
'(("_" . "|")
|
||||
("/" . "_a")
|
||||
(":" . "_b")
|
||||
("|" . "__")
|
||||
("[" . "_l")
|
||||
("]" . "_r"))
|
||||
(buffer-file-name))))
|
||||
;; File name must be unique. This is ensured with Emacs 22 (see
|
||||
;; UNIQUIFY element of `auto-save-file-name-transforms'); but for
|
||||
;; all other cases we must do it ourselves.
|
||||
(when (boundp 'auto-save-file-name-transforms)
|
||||
(mapc
|
||||
(lambda (x)
|
||||
(when (and (string-match (car x) buffer-file-name)
|
||||
(not (car (cddr x))))
|
||||
(setq tramp-auto-save-directory
|
||||
(or tramp-auto-save-directory
|
||||
(tramp-compat-temporary-file-directory)))))
|
||||
(symbol-value 'auto-save-file-name-transforms)))
|
||||
;; Create directory.
|
||||
(when tramp-auto-save-directory
|
||||
(setq buffer-file-name
|
||||
(expand-file-name buffer-file-name tramp-auto-save-directory))
|
||||
(unless (file-exists-p tramp-auto-save-directory)
|
||||
(make-directory tramp-auto-save-directory t)))
|
||||
;; Run plain `make-auto-save-file-name'. There might be an advice when
|
||||
;; it is not a magic file name operation (since Emacs 22).
|
||||
;; We must deactivate it temporarily.
|
||||
(if (not (ad-is-active 'make-auto-save-file-name))
|
||||
(tramp-run-real-handler 'make-auto-save-file-name nil)
|
||||
;; else
|
||||
(ad-deactivate 'make-auto-save-file-name)
|
||||
(prog1
|
||||
(tramp-run-real-handler 'make-auto-save-file-name nil)
|
||||
(ad-activate 'make-auto-save-file-name)))))
|
||||
|
||||
;; CCC grok LOCKNAME
|
||||
(defun tramp-sh-handle-write-region
|
||||
(start end filename &optional append visit lockname confirm)
|
||||
|
@ -3425,7 +3383,7 @@ Fall back to normal file name handler if no Tramp handler exists."
|
|||
(tramp-message proc 6 "%S\n%s" proc string)
|
||||
(setq string (concat rest-string string)
|
||||
;; Attribute change is returned in unused wording.
|
||||
string (replace-regexp-in-string
|
||||
string (tramp-compat-replace-regexp-in-string
|
||||
"ATTRIB CHANGED" "ATTRIBUTE_CHANGED" string))
|
||||
|
||||
(while (string-match
|
||||
|
@ -3439,7 +3397,7 @@ Fall back to normal file name handler if no Tramp handler exists."
|
|||
(list
|
||||
proc
|
||||
(intern-soft
|
||||
(replace-regexp-in-string
|
||||
(tramp-compat-replace-regexp-in-string
|
||||
"_" "-" (downcase (match-string 4 string))))
|
||||
;; File names are returned as absolute paths. We must
|
||||
;; add the remote prefix.
|
||||
|
@ -3475,7 +3433,8 @@ Fall back to normal file name handler if no Tramp handler exists."
|
|||
proc
|
||||
(mapcar
|
||||
(lambda (x)
|
||||
(intern-soft (replace-regexp-in-string "_" "-" (downcase x))))
|
||||
(intern-soft
|
||||
(tramp-compat-replace-regexp-in-string "_" "-" (downcase x))))
|
||||
(split-string (match-string 1 line) "," 'omit-nulls))
|
||||
(match-string 3 line))))
|
||||
;; Usually, we would add an Emacs event now. Unfortunately,
|
||||
|
@ -3846,11 +3805,12 @@ process to set up. VEC specifies the connection."
|
|||
vec "uname"
|
||||
(tramp-send-command-and-read vec "echo \\\"`uname -sr`\\\""))))
|
||||
(when (and (stringp old-uname) (not (string-equal old-uname new-uname)))
|
||||
(tramp-cleanup vec)
|
||||
(tramp-message
|
||||
vec 3
|
||||
"Connection reset, because remote host changed from `%s' to `%s'"
|
||||
old-uname new-uname)
|
||||
;; We want to keep the password.
|
||||
(tramp-cleanup-connection vec t t)
|
||||
(throw 'uname-changed (tramp-maybe-open-connection vec))))
|
||||
|
||||
;; Check whether the remote host suffers from buggy
|
||||
|
@ -4252,7 +4212,7 @@ Gateway hops are already opened."
|
|||
?h (or (tramp-file-name-host (car target-alist)) ""))))
|
||||
(with-parsed-tramp-file-name proxy l
|
||||
;; Add the hop.
|
||||
(pushnew l target-alist :test #'equal)
|
||||
(push l target-alist)
|
||||
;; Start next search.
|
||||
(setq choices tramp-default-proxies-alist)))))
|
||||
|
||||
|
@ -4270,11 +4230,11 @@ Gateway hops are already opened."
|
|||
vec 'file-error
|
||||
"Connection `%s' is not supported for gateway access." hop))
|
||||
;; Open the gateway connection.
|
||||
(pushnew
|
||||
(push
|
||||
(vector
|
||||
(tramp-file-name-method hop) (tramp-file-name-user hop)
|
||||
(tramp-compat-funcall 'tramp-gw-open-connection vec gw hop) nil nil)
|
||||
target-alist :test #'equal)
|
||||
target-alist)
|
||||
;; For the password prompt, we need the correct values.
|
||||
;; Therefore, we must remember the gateway vector. But we
|
||||
;; cannot do it as connection property, because it shouldn't
|
||||
|
@ -4328,68 +4288,68 @@ Does not do anything if a connection is already open, but re-opens the
|
|||
connection if a previous connection has died for some reason."
|
||||
(tramp-check-proper-host vec)
|
||||
|
||||
(catch 'uname-changed
|
||||
(let ((p (tramp-get-connection-process vec))
|
||||
(process-name (tramp-get-connection-property vec "process-name" nil))
|
||||
(process-environment (copy-sequence process-environment))
|
||||
(pos (with-current-buffer (tramp-get-connection-buffer vec) (point))))
|
||||
(let ((p (tramp-get-connection-process vec))
|
||||
(process-name (tramp-get-connection-property vec "process-name" nil))
|
||||
(process-environment (copy-sequence process-environment))
|
||||
(pos (with-current-buffer (tramp-get-connection-buffer vec) (point))))
|
||||
|
||||
;; If Tramp opens the same connection within a short time frame,
|
||||
;; there is a problem. We shall signal this.
|
||||
(unless (or (and p (processp p) (memq (process-status p) '(run open)))
|
||||
(not (equal (butlast (append vec nil) 2)
|
||||
(car tramp-current-connection)))
|
||||
(> (tramp-time-diff
|
||||
(current-time) (cdr tramp-current-connection))
|
||||
(or tramp-connection-min-time-diff 0)))
|
||||
(throw 'suppress 'suppress))
|
||||
;; If Tramp opens the same connection within a short time frame,
|
||||
;; there is a problem. We shall signal this.
|
||||
(unless (or (and p (processp p) (memq (process-status p) '(run open)))
|
||||
(not (equal (butlast (append vec nil) 2)
|
||||
(car tramp-current-connection)))
|
||||
(> (tramp-time-diff
|
||||
(current-time) (cdr tramp-current-connection))
|
||||
(or tramp-connection-min-time-diff 0)))
|
||||
(throw 'suppress 'suppress))
|
||||
|
||||
;; If too much time has passed since last command was sent, look
|
||||
;; whether process is still alive. If it isn't, kill it. When
|
||||
;; using ssh, it can sometimes happen that the remote end has
|
||||
;; hung up but the local ssh client doesn't recognize this until
|
||||
;; it tries to send some data to the remote end. So that's why
|
||||
;; we try to send a command from time to time, then look again
|
||||
;; whether the process is really alive.
|
||||
(condition-case nil
|
||||
(when (and (> (tramp-time-diff
|
||||
(current-time)
|
||||
(tramp-get-connection-property
|
||||
p "last-cmd-time" '(0 0 0)))
|
||||
60)
|
||||
p (processp p) (memq (process-status p) '(run open)))
|
||||
(tramp-send-command vec "echo are you awake" t t)
|
||||
(unless (and (memq (process-status p) '(run open))
|
||||
(tramp-wait-for-output p 10))
|
||||
;; The error will be caught locally.
|
||||
(tramp-error vec 'file-error "Awake did fail")))
|
||||
(file-error
|
||||
(tramp-cleanup vec)
|
||||
(setq p nil)))
|
||||
;; If too much time has passed since last command was sent, look
|
||||
;; whether process is still alive. If it isn't, kill it. When
|
||||
;; using ssh, it can sometimes happen that the remote end has hung
|
||||
;; up but the local ssh client doesn't recognize this until it
|
||||
;; tries to send some data to the remote end. So that's why we
|
||||
;; try to send a command from time to time, then look again
|
||||
;; whether the process is really alive.
|
||||
(condition-case nil
|
||||
(when (and (> (tramp-time-diff
|
||||
(current-time)
|
||||
(tramp-get-connection-property
|
||||
p "last-cmd-time" '(0 0 0)))
|
||||
60)
|
||||
p (processp p) (memq (process-status p) '(run open)))
|
||||
(tramp-send-command vec "echo are you awake" t t)
|
||||
(unless (and (memq (process-status p) '(run open))
|
||||
(tramp-wait-for-output p 10))
|
||||
;; The error will be caught locally.
|
||||
(tramp-error vec 'file-error "Awake did fail")))
|
||||
(file-error
|
||||
(tramp-cleanup-connection vec t)
|
||||
(setq p nil)))
|
||||
|
||||
;; New connection must be opened.
|
||||
(condition-case err
|
||||
(unless (and p (processp p) (memq (process-status p) '(run open)))
|
||||
;; New connection must be opened.
|
||||
(condition-case err
|
||||
(unless (and p (processp p) (memq (process-status p) '(run open)))
|
||||
|
||||
;; We call `tramp-get-buffer' in order to get a debug
|
||||
;; buffer for messages from the beginning.
|
||||
(tramp-get-buffer vec)
|
||||
;; We call `tramp-get-buffer' in order to get a debug buffer
|
||||
;; for messages from the beginning.
|
||||
(tramp-get-buffer vec)
|
||||
|
||||
;; If `non-essential' is non-nil, don't reopen a new connection.
|
||||
(when (and (boundp 'non-essential) (symbol-value 'non-essential))
|
||||
(throw 'non-essential 'non-essential))
|
||||
;; If `non-essential' is non-nil, don't reopen a new connection.
|
||||
(when (and (boundp 'non-essential) (symbol-value 'non-essential))
|
||||
(throw 'non-essential 'non-essential))
|
||||
|
||||
(with-tramp-progress-reporter
|
||||
vec 3
|
||||
(if (zerop (length (tramp-file-name-user vec)))
|
||||
(format "Opening connection for %s using %s"
|
||||
(tramp-file-name-host vec)
|
||||
(tramp-file-name-method vec))
|
||||
(format "Opening connection for %s@%s using %s"
|
||||
(tramp-file-name-user vec)
|
||||
(with-tramp-progress-reporter
|
||||
vec 3
|
||||
(if (zerop (length (tramp-file-name-user vec)))
|
||||
(format "Opening connection for %s using %s"
|
||||
(tramp-file-name-host vec)
|
||||
(tramp-file-name-method vec)))
|
||||
(tramp-file-name-method vec))
|
||||
(format "Opening connection for %s@%s using %s"
|
||||
(tramp-file-name-user vec)
|
||||
(tramp-file-name-host vec)
|
||||
(tramp-file-name-method vec)))
|
||||
|
||||
(catch 'uname-changed
|
||||
;; Start new process.
|
||||
(when (and p (processp p))
|
||||
(delete-process p))
|
||||
|
@ -4544,13 +4504,13 @@ connection if a previous connection has died for some reason."
|
|||
target-alist (cdr target-alist)))
|
||||
|
||||
;; Make initial shell settings.
|
||||
(tramp-open-connection-setup-interactive-shell p vec))))
|
||||
(tramp-open-connection-setup-interactive-shell p vec)))))
|
||||
|
||||
;; When the user did interrupt, we must cleanup.
|
||||
(quit
|
||||
(tramp-cleanup vec)
|
||||
;; Propagate the quit signal.
|
||||
(signal (car err) (cdr err)))))))
|
||||
;; When the user did interrupt, we must cleanup.
|
||||
(quit
|
||||
(tramp-cleanup-connection vec t)
|
||||
;; Propagate the quit signal.
|
||||
(signal (car err) (cdr err))))))
|
||||
|
||||
(defun tramp-send-command (vec command &optional neveropen nooutput)
|
||||
"Send the COMMAND to connection VEC.
|
||||
|
|
|
@ -229,7 +229,7 @@ See `tramp-actions-before-shell' for more info.")
|
|||
(insert-directory . tramp-smb-handle-insert-directory)
|
||||
(insert-file-contents . tramp-handle-insert-file-contents)
|
||||
(load . tramp-handle-load)
|
||||
;; `make-auto-save-file-name' performed by default handler.
|
||||
(make-auto-save-file-name . tramp-handle-make-auto-save-file-name)
|
||||
(make-directory . tramp-smb-handle-make-directory)
|
||||
(make-directory-internal . tramp-smb-handle-make-directory-internal)
|
||||
(make-symbolic-link . tramp-smb-handle-make-symbolic-link)
|
||||
|
@ -403,7 +403,7 @@ pass to the OPERATION."
|
|||
(port (tramp-file-name-port v))
|
||||
(share (tramp-smb-get-share v))
|
||||
(localname (file-name-as-directory
|
||||
(replace-regexp-in-string
|
||||
(tramp-compat-replace-regexp-in-string
|
||||
"\\\\" "/" (tramp-smb-get-localname v))))
|
||||
(tmpdir (make-temp-name
|
||||
(expand-file-name
|
||||
|
@ -537,7 +537,8 @@ PRESERVE-UID-GID and PRESERVE-EXTENDED-ATTRIBUTES are completely ignored."
|
|||
(unless (tramp-smb-send-command
|
||||
v (format "put \"%s\" \"%s\""
|
||||
filename (tramp-smb-get-localname v)))
|
||||
(tramp-error v 'file-error "Cannot copy `%s'" filename))))))
|
||||
(tramp-error
|
||||
v 'file-error "Cannot copy `%s' to `%s'" filename newname))))))
|
||||
|
||||
;; KEEP-DATE handling.
|
||||
(when keep-date
|
||||
|
@ -1151,7 +1152,8 @@ target of the symlink differ."
|
|||
(tramp-dissect-file-name (if (file-remote-p filename) filename newname))
|
||||
0 (format "Renaming %s to %s" filename newname)
|
||||
|
||||
(if (and (tramp-equal-remote filename newname)
|
||||
(if (and (not (file-exists-p newname))
|
||||
(tramp-equal-remote filename newname)
|
||||
(string-equal
|
||||
(tramp-smb-get-share (tramp-dissect-file-name filename))
|
||||
(tramp-smb-get-share (tramp-dissect-file-name newname))))
|
||||
|
@ -1364,14 +1366,14 @@ Result is a list of (LOCALNAME MODE SIZE MONTH DAY TIME YEAR)."
|
|||
(while (not (eobp))
|
||||
(setq entry (tramp-smb-read-file-entry share))
|
||||
(forward-line)
|
||||
(when entry (pushnew entry res :test #'equal))))
|
||||
(when entry (push entry res))))
|
||||
|
||||
;; Cache share entries.
|
||||
(unless share
|
||||
(tramp-set-connection-property v "share-cache" res)))
|
||||
|
||||
;; Add directory itself.
|
||||
(pushnew '("" "drwxrwxrwx" 0 (0 0)) res :test #'equal)
|
||||
(push '("" "drwxrwxrwx" 0 (0 0)) res)
|
||||
|
||||
;; There's a very strange error (debugged with XEmacs 21.4.14)
|
||||
;; If there's no short delay, it returns nil. No idea about.
|
||||
|
@ -1719,11 +1721,15 @@ If ARGUMENT is non-nil, use it as argument for
|
|||
(error
|
||||
(with-current-buffer (tramp-get-connection-buffer vec)
|
||||
(goto-char (point-min))
|
||||
(if (search-forward-regexp
|
||||
tramp-smb-wrong-passwd-regexp nil t)
|
||||
(if (and (boundp 'auth-sources)
|
||||
(symbol-value 'auth-sources)
|
||||
(search-forward-regexp
|
||||
tramp-smb-wrong-passwd-regexp nil t))
|
||||
;; Disable `auth-source' and `password-cache'.
|
||||
(tramp-message
|
||||
vec 3 "Retry connection with new password")
|
||||
(let (auth-sources)
|
||||
(tramp-cleanup vec)
|
||||
(tramp-cleanup-connection vec t)
|
||||
(tramp-smb-maybe-open-connection vec argument))
|
||||
;; Propagate the error.
|
||||
(signal (car err) (cdr err)))))))))))))
|
||||
|
|
|
@ -1222,10 +1222,11 @@ their replacement."
|
|||
;; This works with the current set of `tramp-obsolete-methods'.
|
||||
;; Must be improved, if their are more sophisticated replacements.
|
||||
(setq result (substring result 0 -1)))
|
||||
;; We must mark, whether a default value has been used.
|
||||
(if (or method (null result))
|
||||
;; We must mark, whether a default value has been used. Not
|
||||
;; applicable for XEmacs.
|
||||
(if (or method (null result) (null (functionp 'propertize)))
|
||||
result
|
||||
(propertize result 'tramp-default t))))
|
||||
(tramp-compat-funcall 'propertize result 'tramp-default t))))
|
||||
|
||||
(defun tramp-find-user (method user host)
|
||||
"Return the right user string to use.
|
||||
|
@ -1243,10 +1244,11 @@ This is USER, if non-nil. Otherwise, do a lookup in
|
|||
(setq choices nil)))
|
||||
luser)
|
||||
tramp-default-user)))
|
||||
;; We must mark, whether a default value has been used.
|
||||
(if (or user (null result))
|
||||
;; We must mark, whether a default value has been used. Not
|
||||
;; applicable for XEmacs.
|
||||
(if (or user (null result) (null (functionp 'propertize)))
|
||||
result
|
||||
(propertize result 'tramp-default t))))
|
||||
(tramp-compat-funcall 'propertize result 'tramp-default t))))
|
||||
|
||||
(defun tramp-find-host (method user host)
|
||||
"Return the right host string to use.
|
||||
|
@ -1641,7 +1643,7 @@ without a visible progress reporter."
|
|||
(declare (indent 3) (debug t))
|
||||
`(progn
|
||||
(tramp-message ,vec ,level "%s..." ,message)
|
||||
(let ((result "failed")
|
||||
(let ((cookie "failed")
|
||||
(tm
|
||||
;; We start a pulsing progress reporter after 3 seconds. Feature
|
||||
;; introduced in Emacs 24.1.
|
||||
|
@ -1656,10 +1658,10 @@ without a visible progress reporter."
|
|||
#'tramp-progress-reporter-update pr)))))))
|
||||
(unwind-protect
|
||||
;; Execute the body.
|
||||
(prog1 (progn ,@body) (setq result "done"))
|
||||
(prog1 (progn ,@body) (setq cookie "done"))
|
||||
;; Stop progress reporter.
|
||||
(if tm (tramp-compat-funcall 'cancel-timer tm))
|
||||
(tramp-message ,vec ,level "%s...%s" ,message result)))))
|
||||
(tramp-message ,vec ,level "%s...%s" ,message cookie)))))
|
||||
|
||||
(tramp-compat-font-lock-add-keywords
|
||||
'emacs-lisp-mode '("\\<with-tramp-progress-reporter\\>"))
|
||||
|
@ -1710,19 +1712,6 @@ letter into the file name. This function removes it."
|
|||
(replace-match "/" nil t name)
|
||||
name)))
|
||||
|
||||
(defun tramp-cleanup (vec)
|
||||
"Cleanup connection VEC, but keep the debug buffer."
|
||||
(with-current-buffer (tramp-get-debug-buffer vec)
|
||||
;; Keep the debug buffer.
|
||||
(rename-buffer
|
||||
(generate-new-buffer-name tramp-temp-buffer-name) 'unique)
|
||||
(tramp-cleanup-connection vec)
|
||||
(if (= (point-min) (point-max))
|
||||
(kill-buffer nil)
|
||||
(rename-buffer (tramp-debug-buffer-name vec) 'unique))
|
||||
;; We call `tramp-get-buffer' in order to keep the debug buffer.
|
||||
(tramp-get-buffer vec)))
|
||||
|
||||
;;; Config Manipulation Functions:
|
||||
|
||||
;;;###tramp-autoload
|
||||
|
@ -2145,7 +2134,7 @@ Falls back to normal file name handler if no Tramp file name handler exists."
|
|||
(tramp-message
|
||||
v 1 "Suppress received in operation %s"
|
||||
(append (list operation) args))
|
||||
(tramp-cleanup v)
|
||||
(tramp-cleanup-connection v t)
|
||||
(tramp-run-real-handler operation args)))
|
||||
(t result)))
|
||||
|
||||
|
@ -3920,6 +3909,48 @@ Return the local name of the temporary file."
|
|||
|
||||
;;; Auto saving to a special directory:
|
||||
|
||||
(defun tramp-handle-make-auto-save-file-name ()
|
||||
"Like `make-auto-save-file-name' for Tramp files.
|
||||
Returns a file name in `tramp-auto-save-directory' for autosaving this file."
|
||||
(let ((tramp-auto-save-directory tramp-auto-save-directory)
|
||||
(buffer-file-name
|
||||
(tramp-subst-strs-in-string
|
||||
'(("_" . "|")
|
||||
("/" . "_a")
|
||||
(":" . "_b")
|
||||
("|" . "__")
|
||||
("[" . "_l")
|
||||
("]" . "_r"))
|
||||
(buffer-file-name))))
|
||||
;; File name must be unique. This is ensured with Emacs 22 (see
|
||||
;; UNIQUIFY element of `auto-save-file-name-transforms'); but for
|
||||
;; all other cases we must do it ourselves.
|
||||
(when (boundp 'auto-save-file-name-transforms)
|
||||
(mapc
|
||||
(lambda (x)
|
||||
(when (and (string-match (car x) buffer-file-name)
|
||||
(not (car (cddr x))))
|
||||
(setq tramp-auto-save-directory
|
||||
(or tramp-auto-save-directory
|
||||
(tramp-compat-temporary-file-directory)))))
|
||||
(symbol-value 'auto-save-file-name-transforms)))
|
||||
;; Create directory.
|
||||
(when tramp-auto-save-directory
|
||||
(setq buffer-file-name
|
||||
(expand-file-name buffer-file-name tramp-auto-save-directory))
|
||||
(unless (file-exists-p tramp-auto-save-directory)
|
||||
(make-directory tramp-auto-save-directory t)))
|
||||
;; Run plain `make-auto-save-file-name'. There might be an advice when
|
||||
;; it is not a magic file name operation (since Emacs 22).
|
||||
;; We must deactivate it temporarily.
|
||||
(if (not (ad-is-active 'make-auto-save-file-name))
|
||||
(tramp-run-real-handler 'make-auto-save-file-name nil)
|
||||
;; else
|
||||
(ad-deactivate 'make-auto-save-file-name)
|
||||
(prog1
|
||||
(tramp-run-real-handler 'make-auto-save-file-name nil)
|
||||
(ad-activate 'make-auto-save-file-name)))))
|
||||
|
||||
(unless (tramp-exists-file-name-handler 'make-auto-save-file-name)
|
||||
(defadvice make-auto-save-file-name
|
||||
(around tramp-advice-make-auto-save-file-name () activate)
|
||||
|
|
|
@ -88,7 +88,7 @@ The Custom feature is intended to make this obsolete."
|
|||
;; Edit Options mode is suitable only for specially formatted data.
|
||||
(put 'Edit-options-mode 'mode-class 'special)
|
||||
|
||||
(defun Edit-options-mode ()
|
||||
(define-derived-mode Edit-options-mode emacs-lisp-mode "Options"
|
||||
"\\<Edit-options-mode-map>\
|
||||
Major mode for editing Emacs user option settings.
|
||||
Special commands are:
|
||||
|
@ -100,17 +100,9 @@ Changed values made by these commands take effect immediately.
|
|||
|
||||
Each variable description is a paragraph.
|
||||
For convenience, the characters \\[backward-paragraph] and \\[forward-paragraph] move back and forward by paragraphs."
|
||||
(kill-all-local-variables)
|
||||
(set-syntax-table emacs-lisp-mode-syntax-table)
|
||||
(use-local-map Edit-options-mode-map)
|
||||
(make-local-variable 'paragraph-separate)
|
||||
(setq paragraph-separate "[^\^@-\^?]")
|
||||
(make-local-variable 'paragraph-start)
|
||||
(setq paragraph-start "\t")
|
||||
(setq truncate-lines t)
|
||||
(setq major-mode 'Edit-options-mode)
|
||||
(setq mode-name "Options")
|
||||
(run-mode-hooks 'Edit-options-mode-hook))
|
||||
(setq-local paragraph-separate "[^\^@-\^?]")
|
||||
(setq-local paragraph-start "\t")
|
||||
(setq-local truncate-lines t))
|
||||
|
||||
(defun Edit-options-set () (interactive)
|
||||
(Edit-options-modify
|
||||
|
|
|
@ -185,19 +185,8 @@ GRID is the grid of positions to click.")
|
|||
|
||||
;; Gameplay functions.
|
||||
|
||||
(put '5x5-mode 'mode-class 'special)
|
||||
|
||||
(defun 5x5-mode ()
|
||||
"A mode for playing `5x5'.
|
||||
|
||||
The key bindings for `5x5-mode' are:
|
||||
|
||||
\\{5x5-mode-map}"
|
||||
(kill-all-local-variables)
|
||||
(use-local-map 5x5-mode-map)
|
||||
(setq major-mode '5x5-mode
|
||||
mode-name "5x5")
|
||||
(run-mode-hooks '5x5-mode-hook)
|
||||
(define-derived-mode 5x5-mode special-mode "5x5"
|
||||
"A mode for playing `5x5'."
|
||||
(setq buffer-read-only t
|
||||
truncate-lines t)
|
||||
(buffer-disable-undo))
|
||||
|
|
|
@ -113,9 +113,8 @@
|
|||
map))
|
||||
|
||||
;; Blackbox mode is suitable only for specially formatted data.
|
||||
(put 'blackbox-mode 'mode-class 'special)
|
||||
|
||||
(defun blackbox-mode ()
|
||||
(define-derived-mode blackbox-mode special-mode "Blackbox"
|
||||
"Major mode for playing blackbox.
|
||||
To learn how to play blackbox, see the documentation for function `blackbox'.
|
||||
|
||||
|
@ -124,13 +123,7 @@ The usual mnemonic keys move the cursor around the box.
|
|||
|
||||
\\[bb-romp] -- send in a ray from point, or toggle a ball at point
|
||||
\\[bb-done] -- end game and get score"
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(use-local-map blackbox-mode-map)
|
||||
(setq truncate-lines t)
|
||||
(setq major-mode 'blackbox-mode)
|
||||
(setq mode-name "Blackbox")
|
||||
(run-mode-hooks 'blackbox-mode-hook))
|
||||
(setq truncate-lines t))
|
||||
|
||||
;;;###autoload
|
||||
(defun blackbox (num)
|
||||
|
|
|
@ -1108,25 +1108,24 @@ Set `bubbles--col-offset' and `bubbles--row-offset'."
|
|||
Use optional parameter POS instead of point if given."
|
||||
(when bubbles--playing
|
||||
(unless pos (setq pos (point)))
|
||||
(condition-case err
|
||||
(let ((char (char-after pos))
|
||||
(inhibit-read-only t)
|
||||
(row (bubbles--row (point)))
|
||||
(col (bubbles--col (point))))
|
||||
(add-text-properties (point-min) (point-max)
|
||||
'(face default active nil))
|
||||
(let ((count 0))
|
||||
(when (and row col (not (eq char (bubbles--empty-char))))
|
||||
(setq count (bubbles--mark-direct-neighbours row col char))
|
||||
(unless (> count 1)
|
||||
(add-text-properties (point-min) (point-max)
|
||||
'(face default active nil))
|
||||
(setq count 0)))
|
||||
(bubbles--update-neighbourhood-score count))
|
||||
(put-text-property (point-min) (point-max) 'pointer 'arrow)
|
||||
(bubbles--update-faces-or-images)
|
||||
(sit-for 0))
|
||||
(error (message "Bubbles: Internal error %s" err)))))
|
||||
(with-demoted-errors "Bubbles: Internal error %s"
|
||||
(let ((char (char-after pos))
|
||||
(inhibit-read-only t)
|
||||
(row (bubbles--row (point)))
|
||||
(col (bubbles--col (point))))
|
||||
(add-text-properties (point-min) (point-max)
|
||||
'(face default active nil))
|
||||
(let ((count 0))
|
||||
(when (and row col (not (eq char (bubbles--empty-char))))
|
||||
(setq count (bubbles--mark-direct-neighbours row col char))
|
||||
(unless (> count 1)
|
||||
(add-text-properties (point-min) (point-max)
|
||||
'(face default active nil))
|
||||
(setq count 0)))
|
||||
(bubbles--update-neighbourhood-score count))
|
||||
(put-text-property (point-min) (point-max) 'pointer 'arrow)
|
||||
(bubbles--update-faces-or-images)
|
||||
(sit-for 0)))))
|
||||
|
||||
(defun bubbles--neighbourhood-available ()
|
||||
"Return t if another valid neighborhood is available."
|
||||
|
|
|
@ -233,10 +233,8 @@
|
|||
(put 'landmark-mode 'intangible 1)
|
||||
;; This one is for when they set view-read-only to t: Landmark cannot
|
||||
;; allow View Mode to be activated in its buffer.
|
||||
(put 'landmark-mode 'mode-class 'special)
|
||||
|
||||
(defun landmark-mode ()
|
||||
"Major mode for playing Landmark against Emacs.
|
||||
(define-derived-mode landmark-mode special-mode "Lm"
|
||||
"Major mode for playing Lm against Emacs.
|
||||
You and Emacs play in turn by marking a free square. You mark it with X
|
||||
and Emacs marks it with O. The winner is the first to get five contiguous
|
||||
marks horizontally, vertically or in diagonal.
|
||||
|
@ -247,16 +245,9 @@ Other useful commands:
|
|||
\\{landmark-mode-map}
|
||||
Entry to this mode calls the value of `landmark-mode-hook' if that value
|
||||
is non-nil. One interesting value is `turn-on-font-lock'."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'landmark-mode
|
||||
mode-name "Landmark")
|
||||
(landmark-display-statistics)
|
||||
(use-local-map landmark-mode-map)
|
||||
(make-local-variable 'font-lock-defaults)
|
||||
(setq font-lock-defaults '(landmark-font-lock-keywords t)
|
||||
buffer-read-only t)
|
||||
(run-mode-hooks 'landmark-mode-hook))
|
||||
(setq-local font-lock-defaults '(landmark-font-lock-keywords t))
|
||||
(setq buffer-read-only t))
|
||||
|
||||
|
||||
;;;_ + THE SCORE TABLE.
|
||||
|
|
|
@ -94,7 +94,9 @@ The value t means never ding, and `error' means only ding on wrong input."
|
|||
map)
|
||||
"Local keymap to use in Mult Puzzle.")
|
||||
|
||||
(defun mpuz-mode ()
|
||||
|
||||
|
||||
(define-derived-mode mpuz-mode fundamental-mode "Mult Puzzle"
|
||||
"Multiplication puzzle mode.
|
||||
|
||||
You have to guess which letters stand for which digits in the
|
||||
|
@ -106,13 +108,7 @@ then the digit. Thus, to guess that A=3, type `A 3'.
|
|||
To leave the game to do other editing work, just switch buffers.
|
||||
Then you may resume the game with M-x mpuz.
|
||||
You may abort a game by typing \\<mpuz-mode-map>\\[mpuz-offer-abort]."
|
||||
(interactive)
|
||||
(kill-all-local-variables)
|
||||
(setq major-mode 'mpuz-mode
|
||||
mode-name "Mult Puzzle"
|
||||
tab-width 30)
|
||||
(use-local-map mpuz-mode-map)
|
||||
(run-mode-hooks 'mpuz-mode-hook))
|
||||
(setq tab-width 30))
|
||||
|
||||
|
||||
;; Some variables for statistics
|
||||
|
|
|
@ -353,21 +353,13 @@ Argument SNAKE-BUFFER is the name of the buffer."
|
|||
|
||||
(put 'snake-mode 'mode-class 'special)
|
||||
|
||||
(defun snake-mode ()
|
||||
"A mode for playing Snake.
|
||||
|
||||
Snake mode keybindings:
|
||||
\\{snake-mode-map}
|
||||
"
|
||||
(kill-all-local-variables)
|
||||
(define-derived-mode snake-mode special-mode "Snake"
|
||||
"A mode for playing Snake."
|
||||
|
||||
(add-hook 'kill-buffer-hook 'gamegrid-kill-timer nil t)
|
||||
|
||||
(use-local-map snake-null-map)
|
||||
|
||||
(setq major-mode 'snake-mode)
|
||||
(setq mode-name "Snake")
|
||||
|
||||
(unless (featurep 'emacs)
|
||||
(setq mode-popup-menu
|
||||
'("Snake Commands"
|
||||
|
@ -382,9 +374,7 @@ Snake mode keybindings:
|
|||
(setq gamegrid-use-glyphs snake-use-glyphs-flag)
|
||||
(setq gamegrid-use-color snake-use-color-flag)
|
||||
|
||||
(gamegrid-init (snake-display-options))
|
||||
|
||||
(run-mode-hooks 'snake-mode-hook))
|
||||
(gamegrid-init (snake-display-options)))
|
||||
|
||||
;;;###autoload
|
||||
(defun snake ()
|
||||
|
|
|
@ -69,10 +69,6 @@
|
|||
"Checking authorization..."
|
||||
"Checking authorization...Approved"))
|
||||
|
||||
;; Note: the implementation that used to take up most of this file has been
|
||||
;; cleaned up, generalized, gratuitously broken by esr, and now resides in
|
||||
;; cookie1.el.
|
||||
|
||||
(provide 'spook)
|
||||
|
||||
;;; spook.el ends here
|
||||
|
|
|
@ -256,10 +256,9 @@ Optional argument MODE means only check for the specified mode (cpu or mem)."
|
|||
(defun profiler-calltree-find (tree entry)
|
||||
"Return a child tree of ENTRY under TREE."
|
||||
(let (result (children (profiler-calltree-children tree)))
|
||||
;; FIXME: Use `assoc'.
|
||||
(while (and children (null result))
|
||||
(let ((child (car children)))
|
||||
(when (equal (profiler-calltree-entry child) entry)
|
||||
(when (function-equal (profiler-calltree-entry child) entry)
|
||||
(setq result child))
|
||||
(setq children (cdr children))))
|
||||
result))
|
||||
|
|
|
@ -1594,10 +1594,6 @@ Key bindings:
|
|||
;;;###autoload (add-to-list 'interpreter-mode-alist '("nawk" . awk-mode))
|
||||
;;;###autoload (add-to-list 'interpreter-mode-alist '("gawk" . awk-mode))
|
||||
|
||||
;;; Autoload directives must be on the top level, so we construct an
|
||||
;;; autoload form instead.
|
||||
;;;###autoload (autoload 'awk-mode "cc-mode" "Major mode for editing AWK code." t)
|
||||
|
||||
(c-define-abbrev-table 'awk-mode-abbrev-table
|
||||
'(("else" "else" c-electric-continued-statement 0)
|
||||
("while" "while" c-electric-continued-statement 0))
|
||||
|
|
|
@ -412,15 +412,15 @@ Affects: `cperl-font-lock', `cperl-electric-lbrace-space',
|
|||
"use cperl-vc-rcs-header or cperl-vc-sccs-header instead."
|
||||
"22.1")
|
||||
|
||||
(defcustom cperl-clobber-mode-lists
|
||||
(not
|
||||
(and
|
||||
(boundp 'interpreter-mode-alist)
|
||||
(assoc "miniperl" interpreter-mode-alist)
|
||||
(assoc "\\.\\([pP][Llm]\\|al\\)$" auto-mode-alist)))
|
||||
"*Whether to install us into `interpreter-' and `extension' mode lists."
|
||||
:type 'boolean
|
||||
:group 'cperl)
|
||||
;; (defcustom cperl-clobber-mode-lists
|
||||
;; (not
|
||||
;; (and
|
||||
;; (boundp 'interpreter-mode-alist)
|
||||
;; (assoc "miniperl" interpreter-mode-alist)
|
||||
;; (assoc "\\.\\([pP][Llm]\\|al\\)$" auto-mode-alist)))
|
||||
;; "*Whether to install us into `interpreter-' and `extension' mode lists."
|
||||
;; :type 'boolean
|
||||
;; :group 'cperl)
|
||||
|
||||
(defcustom cperl-info-on-command-no-prompt nil
|
||||
"*Not-nil (and non-null) means not to prompt on C-h f.
|
||||
|
@ -6535,7 +6535,7 @@ side-effect of memorizing only. Examples in `cperl-style-examples'."
|
|||
(eval '(mode-compile)))) ; Avoid a warning
|
||||
|
||||
(declare-function Info-find-node "info"
|
||||
(filename nodename &optional no-going-back))
|
||||
(filename nodename &optional no-going-back strict-case))
|
||||
|
||||
(defun cperl-info-buffer (type)
|
||||
;; Returns buffer with documentation. Creates if missing.
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue