aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog17
-rw-r--r--autogen/config.in14
-rwxr-xr-xautogen/configure49
-rw-r--r--configure.ac30
-rw-r--r--etc/NEWS11
-rw-r--r--lib/intprops.h2
-rw-r--r--lisp/ChangeLog204
-rw-r--r--lisp/Makefile.in2
-rw-r--r--lisp/calc/calc.el2
-rw-r--r--lisp/cedet/ChangeLog8
-rw-r--r--lisp/cedet/semantic/complete.el7
-rw-r--r--lisp/comint.el10
-rw-r--r--lisp/desktop.el69
-rw-r--r--lisp/emacs-lisp/package.el6
-rw-r--r--lisp/emacs-lisp/shadow.el128
-rw-r--r--lisp/emacs-lisp/syntax.el2
-rw-r--r--lisp/emacs-lisp/tabulated-list.el11
-rw-r--r--lisp/faces.el57
-rw-r--r--lisp/files.el3
-rw-r--r--lisp/gnus/ChangeLog29
-rw-r--r--lisp/gnus/gnus-msg.el4
-rw-r--r--lisp/gnus/gnus-util.el9
-rw-r--r--lisp/gnus/gnus.el7
-rw-r--r--lisp/gnus/mail-source.el12
-rw-r--r--lisp/gnus/message.el8
-rw-r--r--lisp/gnus/sieve-manage.el5
-rw-r--r--lisp/isearch.el28
-rw-r--r--lisp/ldefs-boot.el361
-rw-r--r--lisp/ls-lisp.el7
-rw-r--r--lisp/progmodes/cc-engine.el78
-rw-r--r--lisp/progmodes/octave.el611
-rw-r--r--lisp/subr.el6
-rw-r--r--lisp/textmodes/reftex-vars.el1
-rw-r--r--lisp/textmodes/remember.el9
-rw-r--r--lisp/vc/log-view.el4
-rw-r--r--m4/extern-inline.m414
-rw-r--r--src/ChangeLog41
-rw-r--r--src/callint.c26
-rw-r--r--src/coding.c2
-rw-r--r--src/dispextern.h6
-rw-r--r--src/font.c21
-rw-r--r--src/lisp.h6
-rw-r--r--src/nsfns.m90
-rw-r--r--src/systime.h2
44 files changed, 1273 insertions, 746 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f74726a743..29433c8f132 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
12013-04-29 Paul Eggert <eggert@cs.ucla.edu>
2
3 Merge from gnulib, incorporating:
4 2013-04-28 extern-inline: work around bug in Sun c99
5
62013-04-27 Paul Eggert <eggert@cs.ucla.edu>
7
8 Merge from gnulib, incorporating:
9 2013-04-27 alignof, intprops, malloca: port better to IBM's C compiler
10
112013-04-26 Paul Eggert <eggert@cs.ucla.edu>
12
13 Port better to AIX (Bug#14258).
14 * configure.ac (CFLAGS): Append -O if the user did not specify CFLAGS,
15 we did not already infer an optimization option, and -O works.
16 AIX xlc needs -O, otherwise garbage collection doesn't work.
17
12013-04-22 Paul Eggert <eggert@cs.ucla.edu> 182013-04-22 Paul Eggert <eggert@cs.ucla.edu>
2 19
3 * make-dist: Do not distribute admin/unidata/Makefile. 20 * make-dist: Do not distribute admin/unidata/Makefile.
diff --git a/autogen/config.in b/autogen/config.in
index 25f060b9bb9..f1b3abd94dd 100644
--- a/autogen/config.in
+++ b/autogen/config.in
@@ -1579,13 +1579,21 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
1579 Suppress extern inline with HP-UX cc, as it appears to be broken; see 1579 Suppress extern inline with HP-UX cc, as it appears to be broken; see
1580 <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>. 1580 <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
1581 1581
1582 Suppress the use of extern inline on Apple's platforms, 1582 Suppress extern inline with Sun C in standards-conformance mode, as it
1583 as Libc-825.25 (2012-09-19) is incompatible with it; see 1583 mishandles inline functions that call each other. E.g., for 'inline void f
1584 (void) { } inline void g (void) { f (); }', c99 incorrectly complains
1585 'reference to static identifier "f" in extern inline function'.
1586 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
1587
1588 Suppress the use of extern inline on Apple's platforms, as Libc at least
1589 through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
1584 <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. 1590 <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
1585 Perhaps Apple will fix this some day. */ 1591 Perhaps Apple will fix this some day. */
1586#if ((__GNUC__ \ 1592#if ((__GNUC__ \
1587 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ 1593 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
1588 : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ 1594 : (199901L <= __STDC_VERSION__ \
1595 && !defined __HP_cc \
1596 && !(defined __SUNPRO_C && __STDC__))) \
1589 && !defined __APPLE__) 1597 && !defined __APPLE__)
1590# define _GL_INLINE inline 1598# define _GL_INLINE inline
1591# define _GL_EXTERN_INLINE extern inline 1599# define _GL_EXTERN_INLINE extern inline
diff --git a/autogen/configure b/autogen/configure
index 7ddac01fb10..bd900b5afef 100755
--- a/autogen/configure
+++ b/autogen/configure
@@ -7271,10 +7271,10 @@ esac
7271 # Code from module xalloc-oversized: 7271 # Code from module xalloc-oversized:
7272 7272
7273 7273
7274# It's helpful to have C macros available to GDB, so prefer -g3 to -g
7275# if -g3 works and the user does not specify CFLAGS.
7276# This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
7277if test "$ac_test_CFLAGS" != set; then 7274if test "$ac_test_CFLAGS" != set; then
7275 # It's helpful to have C macros available to GDB, so prefer -g3 to -g
7276 # if -g3 works and the user does not specify CFLAGS.
7277 # This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
7278 case $CFLAGS in 7278 case $CFLAGS in
7279 '-g') 7279 '-g')
7280 emacs_g3_CFLAGS='-g3';; 7280 emacs_g3_CFLAGS='-g3';;
@@ -7312,12 +7312,49 @@ rm -f core conftest.err conftest.$ac_objext \
7312fi 7312fi
7313{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_prog_cc_g3" >&5 7313{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_prog_cc_g3" >&5
7314$as_echo "$emacs_cv_prog_cc_g3" >&6; } 7314$as_echo "$emacs_cv_prog_cc_g3" >&6; }
7315 if test $emacs_cv_prog_cc_g3 = yes; then 7315 if test $emacs_cv_prog_cc_g3 != yes; then
7316 CFLAGS=$emacs_g3_CFLAGS
7317 else
7318 CFLAGS=$emacs_save_CFLAGS 7316 CFLAGS=$emacs_save_CFLAGS
7319 fi 7317 fi
7320 fi 7318 fi
7319
7320 case $CFLAGS in
7321 *-O*) ;;
7322 *)
7323 # No optimization flag was inferred for this non-GCC compiler.
7324 # Try -O. This is needed for xlc on AIX; see Bug#14258.
7325 emacs_save_CFLAGS=$CFLAGS
7326 test -z "$CFLAGS" || CFLAGS="$CFLAGS "
7327 CFLAGS=${CFLAGS}-O
7328 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -O" >&5
7329$as_echo_n "checking whether $CC accepts -O... " >&6; }
7330if test "${emacs_cv_prog_cc_o+set}" = set; then :
7331 $as_echo_n "(cached) " >&6
7332else
7333 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
7334/* end confdefs.h. */
7335
7336int
7337main ()
7338{
7339
7340 ;
7341 return 0;
7342}
7343_ACEOF
7344if ac_fn_c_try_link "$LINENO"; then :
7345 emacs_cv_prog_cc_o=yes
7346else
7347 emacs_cv_prog_cc_o=no
7348fi
7349rm -f core conftest.err conftest.$ac_objext \
7350 conftest$ac_exeext conftest.$ac_ext
7351fi
7352{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $emacs_cv_prog_cc_o" >&5
7353$as_echo "$emacs_cv_prog_cc_o" >&6; }
7354 if test $emacs_cv_prog_cc_o != yes; then
7355 CFLAGS=$emacs_save_CFLAGS
7356 fi ;;
7357 esac
7321fi 7358fi
7322 7359
7323# Check whether --enable-gcc-warnings was given. 7360# Check whether --enable-gcc-warnings was given.
diff --git a/configure.ac b/configure.ac
index 4130662e8e7..ce99f086a42 100644
--- a/configure.ac
+++ b/configure.ac
@@ -623,10 +623,10 @@ AC_DEFUN([gl_THREADLIB])
623dnl Amongst other things, this sets AR and ARFLAGS. 623dnl Amongst other things, this sets AR and ARFLAGS.
624gl_EARLY 624gl_EARLY
625 625
626# It's helpful to have C macros available to GDB, so prefer -g3 to -g
627# if -g3 works and the user does not specify CFLAGS.
628# This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
629if test "$ac_test_CFLAGS" != set; then 626if test "$ac_test_CFLAGS" != set; then
627 # It's helpful to have C macros available to GDB, so prefer -g3 to -g
628 # if -g3 works and the user does not specify CFLAGS.
629 # This test must follow gl_EARLY; otherwise AC_LINK_IFELSE complains.
630 case $CFLAGS in 630 case $CFLAGS in
631 '-g') 631 '-g')
632 emacs_g3_CFLAGS='-g3';; 632 emacs_g3_CFLAGS='-g3';;
@@ -642,16 +642,32 @@ if test "$ac_test_CFLAGS" != set; then
642 [emacs_cv_prog_cc_g3], 642 [emacs_cv_prog_cc_g3],
643 [AC_LINK_IFELSE([AC_LANG_PROGRAM()], 643 [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
644 [emacs_cv_prog_cc_g3=yes], 644 [emacs_cv_prog_cc_g3=yes],
645 [emacs_cv_prog_cc_g3=no])]) 645 [emacs_cv_prog_cc_g3=no])])
646 if test $emacs_cv_prog_cc_g3 = yes; then 646 if test $emacs_cv_prog_cc_g3 != yes; then
647 CFLAGS=$emacs_g3_CFLAGS
648 else
649 CFLAGS=$emacs_save_CFLAGS 647 CFLAGS=$emacs_save_CFLAGS
650 fi 648 fi
651 if test $opsys = mingw32; then 649 if test $opsys = mingw32; then
652 CFLAGS="$CFLAGS -gdwarf-2" 650 CFLAGS="$CFLAGS -gdwarf-2"
653 fi 651 fi
654 fi 652 fi
653
654 case $CFLAGS in
655 *-O*) ;;
656 *)
657 # No optimization flag was inferred for this non-GCC compiler.
658 # Try -O. This is needed for xlc on AIX; see Bug#14258.
659 emacs_save_CFLAGS=$CFLAGS
660 test -z "$CFLAGS" || CFLAGS="$CFLAGS "
661 CFLAGS=${CFLAGS}-O
662 AC_CACHE_CHECK([whether $CC accepts -O],
663 [emacs_cv_prog_cc_o],
664 [AC_LINK_IFELSE([AC_LANG_PROGRAM()],
665 [emacs_cv_prog_cc_o=yes],
666 [emacs_cv_prog_cc_o=no])])
667 if test $emacs_cv_prog_cc_o != yes; then
668 CFLAGS=$emacs_save_CFLAGS
669 fi ;;
670 esac
655fi 671fi
656 672
657AC_ARG_ENABLE([gcc-warnings], 673AC_ARG_ENABLE([gcc-warnings],
diff --git a/etc/NEWS b/etc/NEWS
index d8f5f68ff99..0a8cf2c0325 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -101,6 +101,12 @@ You can pick the name of the function and the variables with `C-x 4 a'.
101 101
102* Changes in Specialized Modes and Packages in Emacs 24.4 102* Changes in Specialized Modes and Packages in Emacs 24.4
103 103
104** `remember' can now store notes in separates files
105You can use the new function `remember-store-in-files' within the
106`remember-handler-functions' option.
107
108See `remember-data-directory' and `remember-directory-file-name-format'
109for new options related to this function.
104** `ido-decorations' has been slightly extended to give a bit more control. 110** `ido-decorations' has been slightly extended to give a bit more control.
105 111
106** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>. 112** More packages look for ~/.emacs.d/<foo> additionally to ~/.<foo>.
@@ -163,6 +169,11 @@ on the given date.
163 169
164*** Support for ISO 8601 dates. 170*** Support for ISO 8601 dates.
165 171
172** Desktop
173
174*** `desktop-auto-save-timeout' defines the number of seconds between
175auto-saves of the desktop.
176
166** Dired 177** Dired
167 178
168*** New minor mode `dired-hide-details-mode' hides details. 179*** New minor mode `dired-hide-details-mode' hides details.
diff --git a/lib/intprops.h b/lib/intprops.h
index b473052d114..f57f9b4ddab 100644
--- a/lib/intprops.h
+++ b/lib/intprops.h
@@ -89,7 +89,7 @@
89 89
90/* Return 1 if the __typeof__ keyword works. This could be done by 90/* Return 1 if the __typeof__ keyword works. This could be done by
91 'configure', but for now it's easier to do it by hand. */ 91 'configure', but for now it's easier to do it by hand. */
92#if 2 <= __GNUC__ || 0x5110 <= __SUNPRO_C 92#if 2 <= __GNUC__ || defined __IBM__TYPEOF__ || 0x5110 <= __SUNPRO_C
93# define _GL_HAVE___TYPEOF__ 1 93# define _GL_HAVE___TYPEOF__ 1
94#else 94#else
95# define _GL_HAVE___TYPEOF__ 0 95# define _GL_HAVE___TYPEOF__ 0
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 62424265d96..be8329a856c 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,7 +1,205 @@
12013-05-01 Leo Liu <sdl.web@gmail.com>
2
3 * progmodes/octave.el: Compatible with older emacs-24 releases.
4 (inferior-octave-has-built-in-variables): Remove. Buil-in
5 variables were removed from Octave in 2007.
6 (inferior-octave-startup): Fix uses.
7 (comint-line-beginning-position): Remove compatibility code for
8 emacs 21.
9
102013-05-01 Juri Linkov <juri@jurta.org>
11
12 * isearch.el (isearch-forward, isearch-mode): Doc fix. (Bug#13923)
13
142013-05-01 Juri Linkov <juri@jurta.org>
15
16 * comint.el (comint-previous-matching-input): Don't print message
17 "History item: %d" when `isearch-mode' is active.
18 (comint-history-isearch-message): Print message "History item: %d"
19 when `comint-input-ring-index' is not empty and this function is
20 called from `isearch-update' with a nil `ellipsis'. (Bug#13223)
21
222013-05-01 Leo Liu <sdl.web@gmail.com>
23
24 * progmodes/octave.el (octave-abbrev-table): Remove abbrev
25 definitions. Use completion-at-point to insert keywords.
26 (octave-abbrev-start): Remove.
27 (inferior-octave-mode, octave-mode): Use :abbrev-table instead.
28
292013-04-30 Leo Liu <sdl.web@gmail.com>
30
31 * progmodes/octave.el (inferior-octave-prompt-read-only): Fix last
32 change.
33
342013-04-30 Alan Mackenzie <acm@muc.de>
35
36 Handle arbitrarily long C++ member initialisation lists.
37 * progmodes/cc-engine.el (c-back-over-member-initializers): new
38 function.
39 (c-guess-basic-syntax): New CASE 5R (extracted from 5B) to handle
40 (most) member init lists.
41
422013-04-30 Rüdiger Sonderfeld <ruediger@c-plusplus.de>
43
44 * progmodes/octave.el (inferior-octave-prompt-read-only): New user
45 variable.
46
472013-04-30 Leo Liu <sdl.web@gmail.com>
48
49 * progmodes/octave.el (octave-variables): Remove. No builtin
50 variables any more. All converted to functions.
51 (octave-font-lock-keywords, octave-completion-at-point-function):
52 Fix uses.
53 (octave-font-lock-texinfo-comment): New user variable.
54 (octave-texinfo-font-lock-keywords): New variable for texinfo
55 comment block.
56 (octave-function-comment-block): New face.
57 (octave-font-lock-texinfo-comment): New function.
58 (octave-mode): Font lock texinfo comment block.
59
602013-04-29 Leo Liu <sdl.web@gmail.com>
61
62 * progmodes/octave.el (octave-font-lock-keywords): Handle 'end' in
63 indexing expression.
64 (octave-continuation-string): Do not use \.
65 (inferior-octave-complete-impossible): Remove.
66 (inferior-octave-completion-table)
67 (inferior-octave-completion-at-point): Remove its uses.
68 (inferior-octave-startup): completion_matches was introduced to
69 Octave in 1996 so safe to assume it.
70 (octave-function-file-comment): Improve to follow how Octave does it.
71 (octave-update-function-file-comment): Tweak.
72
732013-04-29 Leo Liu <sdl.web@gmail.com>
74
75 * progmodes/octave.el (inferior-octave-startup-hook): Obsolete.
76 (inferior-octave-startup): Remove inferior-octave-startup-hook.
77 (octave-function-file-comment): Fix typo.
78 (octave-sync-function-file-names): Use read-char-choice.
79
802013-04-28 Jay Belanger <jay.p.belanger@gmail.com>
81
82 * calc/calc.el (math-normalize): Don't set `math-normalize-error'
83 to t for the less important warnings.
84
852013-04-27 Darren Hoo <darren.hoo@gmail.com> (tiny change)
86
87 * isearch.el (isearch-fail-pos): Check for empty `cmds'. (Bug#14268)
88
892013-04-27 Glenn Morris <rgm@gnu.org>
90
91 * vc/log-view.el (log-view-current-entry):
92 Treat "---" separator lines as part of the following rev. (Bug#14169)
93
942013-04-27 Juri Linkov <juri@jurta.org>
95
96 * subr.el (read-number): Doc fix about using it by interactive
97 code letter `n'. (Bug#14254)
98
992013-04-27 Juri Linkov <juri@jurta.org>
100
101 * desktop.el (desktop-auto-save-timeout): New option.
102 (desktop-file-checksum): New variable.
103 (desktop-save): Add optional arg `auto-save' and don't auto-save
104 if nothing changed.
105 (desktop-auto-save-timer): New variable.
106 (desktop-auto-save, desktop-auto-save-set-timer): New functions.
107 (after-init-hook): Call `desktop-auto-save-set-timer'.
108 Suggested by Reuben Thomas <rrt@sc3d.org> in
109 <http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00327.html>.
110
1112013-04-27 Leo Liu <sdl.web@gmail.com>
112
113 * progmodes/octave.el (octave-function-file-p)
114 (octave-skip-comment-forward, octave-function-file-comment)
115 (octave-update-function-file-comment): New functions.
116 (octave-mode-map): Bind C-c ; to
117 octave-update-function-file-comment.
118 (octave-mode-menu): Add octave-update-function-file-comment.
119 (octave-mode, inferior-octave-mode): Fix doc-string.
120 (octave-insert-defun): Conform to Octave's coding convention.
121 (Bug#14285)
122
123 * files.el (basic-save-buffer): Don't let errors in
124 before-save-hook prevent saving buffer.
125
1262013-04-20 Roland Winkler <winkler@gnu.org>
127
128 * faces.el (read-face-name): Use completing-read if arg multiple
129 is nil.
130
1312013-04-27 Ingo Lohmar <i.lohmar@gmail.com> (tiny change)
132
133 * ls-lisp.el (ls-lisp-insert-directory): If no files are
134 displayed, move point to after the totals line. See
135 http://lists.gnu.org/archive/html/emacs-devel/2013-04/msg00677.html
136 for the details.
137
1382013-04-27 Stefan Monnier <monnier@iro.umontreal.ca>
139
140 * emacs-lisp/package.el (package-autoload-ensure-default-file):
141 Add current dir to the load-path.
142 (package-generate-autoloads): Don't rely on
143 autoload-ensure-default-file.
144
1452013-04-26 Reuben Thomas <rrt@sc3d.org>
146
147 * textmodes/remember.el (remember-store-in-files): Document that
148 the file name format is passed to `format-time-string'.
149
1502013-04-26 Leo Liu <sdl.web@gmail.com>
151
152 * progmodes/octave.el (octave-sync-function-file-names): New function.
153 (octave-mode): Use it in before-save-hook.
154
1552013-04-26 Stefan Monnier <monnier@iro.umontreal.ca>
156
157 * emacs-lisp/tabulated-list.el (tabulated-list-mode): Disable undo
158 (bug#14274).
159
160 * progmodes/octave.el (octave-smie-forward-token): Properly skip
161 \n and comment, even if it's not an implicit ; (bug#14218).
162
1632013-04-26 Glenn Morris <rgm@gnu.org>
164
165 * subr.el (read-number): Once more use `read' rather than
166 `string-to-number', to trap non-numeric input. (Bug#14254)
167
1682013-04-26 Erik Charlebois <erikcharlebois@gmail.com>
169
170 * emacs-lisp/syntax.el (syntax-propertize-multiline):
171 Use `syntax-multiline' text property consistently instead of
172 `font-lock-multiline'. (bug#14237).
173
1742013-04-26 Glenn Morris <rgm@gnu.org>
175
176 * emacs-lisp/shadow.el (list-load-path-shadows):
177 No longer necessary to check for duplicate simple.el, since
178 2012-07-07 change to init_lread to not include installation lisp
179 directories in load-path when running uninstalled. (Bug#14270)
180
1812013-04-26 Leo Liu <sdl.web@gmail.com>
182
183 * progmodes/octave.el (octave-submit-bug-report): Obsolete.
184 (octave-mode, inferior-octave-mode): Use setq-local.
185 (octave-not-in-string-or-comment-p): Rename to
186 octave-in-string-or-comment-p.
187 (octave-in-comment-p, octave-in-string-p)
188 (octave-in-string-or-comment-p): Replace defsubst with defun.
189
1902013-04-25 Paul Eggert <eggert@cs.ucla.edu>
191
192 * Makefile.in (distclean): Remove $(lisp)/loaddefs.el~.
193
1942013-04-25 Bastien Guerry <bzg@gnu.org>
195
196 * textmodes/remember.el (remember-data-directory)
197 (remember-directory-file-name-format): Fix custom types.
198
12013-04-25 Leo Liu <sdl.web@gmail.com> 1992013-04-25 Leo Liu <sdl.web@gmail.com>
2 200
3 * progmodes/octave.el (octave-completion-at-point-function): Make 201 * progmodes/octave.el (octave-completion-at-point-function):
4 use of inferior octave process. 202 Make use of inferior octave process.
5 (octave-initialize-completions): Remove. 203 (octave-initialize-completions): Remove.
6 (inferior-octave-completion-table): New function. 204 (inferior-octave-completion-table): New function.
7 (inferior-octave-completion-at-point): Use it. 205 (inferior-octave-completion-at-point): Use it.
@@ -72,7 +270,7 @@
72 (opascal-parse-next-literal, opascal-debug-unparse-buffer): 270 (opascal-parse-next-literal, opascal-debug-unparse-buffer):
73 Adjust callers. 271 Adjust callers.
74 272
752013-04-24 Reuben Thomas <rrt@sc3d.org> 2732013-04-24 Reuben Thomas <rrt@sc3d.org>
76 274
77 * textmodes/remember.el (remember-handler-functions): Add an 275 * textmodes/remember.el (remember-handler-functions): Add an
78 option for a new handler `remember-store-in-files'. 276 option for a new handler `remember-store-in-files'.
diff --git a/lisp/Makefile.in b/lisp/Makefile.in
index 9e56d835b6d..138ad5abfa6 100644
--- a/lisp/Makefile.in
+++ b/lisp/Makefile.in
@@ -437,7 +437,7 @@ bootstrap-clean:
437 cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc $(AUTOGENEL) 437 cd $(lisp); rm -f *.elc */*.elc */*/*.elc */*/*/*.elc $(AUTOGENEL)
438 438
439distclean: 439distclean:
440 -rm -f ./Makefile 440 -rm -f ./Makefile $(lisp)/loaddefs.el~
441 441
442maintainer-clean: distclean bootstrap-clean 442maintainer-clean: distclean bootstrap-clean
443 443
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index c35e7650254..bd5c9089bcc 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -2701,7 +2701,6 @@ largest Emacs integer.")
2701 (cons (car math-normalize-a) args)) 2701 (cons (car math-normalize-a) args))
2702 nil) 2702 nil)
2703 (wrong-type-argument 2703 (wrong-type-argument
2704 (setq math-normalize-error t)
2705 (or calc-next-why 2704 (or calc-next-why
2706 (calc-record-why "Wrong type of argument" 2705 (calc-record-why "Wrong type of argument"
2707 (cons (car math-normalize-a) args))) 2706 (cons (car math-normalize-a) args)))
@@ -2712,7 +2711,6 @@ largest Emacs integer.")
2712 (cons (car math-normalize-a) args)) 2711 (cons (car math-normalize-a) args))
2713 nil) 2712 nil)
2714 (inexact-result 2713 (inexact-result
2715 (setq math-normalize-error t)
2716 (calc-record-why "No exact representation for result" 2714 (calc-record-why "No exact representation for result"
2717 (cons (car math-normalize-a) args)) 2715 (cons (car math-normalize-a) args))
2718 nil) 2716 nil)
diff --git a/lisp/cedet/ChangeLog b/lisp/cedet/ChangeLog
index 8b914e8843e..944a9e1a02a 100644
--- a/lisp/cedet/ChangeLog
+++ b/lisp/cedet/ChangeLog
@@ -1,3 +1,11 @@
12013-04-27 David Engster <deng@randomsample.de>
2
3 * semantic/complete.el
4 (semantic-collector-calculate-completions-raw): If
5 `completionslist' is not set, refresh the cache if necessary and
6 use it for completions. This fixes the
7 `semantic-collector-buffer-deep' collector (bug#14265).
8
12013-03-26 Leo Liu <sdl.web@gmail.com> 92013-03-26 Leo Liu <sdl.web@gmail.com>
2 10
3 * semantic/senator.el (senator-copy-tag-to-register): Move 11 * semantic/senator.el (senator-copy-tag-to-register): Move
diff --git a/lisp/cedet/semantic/complete.el b/lisp/cedet/semantic/complete.el
index 1c2ddf45c9d..6c2b97a677a 100644
--- a/lisp/cedet/semantic/complete.el
+++ b/lisp/cedet/semantic/complete.el
@@ -988,14 +988,17 @@ Calculate the cache if there isn't one."
988 "Calculate the completions for prefix from completionlist. 988 "Calculate the completions for prefix from completionlist.
989Output must be in semanticdb Find result format." 989Output must be in semanticdb Find result format."
990 ;; Must output in semanticdb format 990 ;; Must output in semanticdb format
991 (unless completionlist
992 (setq completionlist
993 (or (oref obj cache)
994 (semantic-collector-calculate-cache obj))))
991 (let ((table (with-current-buffer (oref obj buffer) 995 (let ((table (with-current-buffer (oref obj buffer)
992 semanticdb-current-table)) 996 semanticdb-current-table))
993 (result (semantic-find-tags-for-completion 997 (result (semantic-find-tags-for-completion
994 prefix 998 prefix
995 ;; To do this kind of search with a pre-built completion 999 ;; To do this kind of search with a pre-built completion
996 ;; list, we need to strip it first. 1000 ;; list, we need to strip it first.
997 (semanticdb-strip-find-results completionlist))) 1001 (semanticdb-strip-find-results completionlist))))
998 )
999 (if result 1002 (if result
1000 (list (cons table result))))) 1003 (list (cons table result)))))
1001 1004
diff --git a/lisp/comint.el b/lisp/comint.el
index d5d95f8cbc0..d0c2e477d5a 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -1191,7 +1191,8 @@ If N is negative, find the next or Nth next match."
1191 (setq comint-stored-incomplete-input 1191 (setq comint-stored-incomplete-input
1192 (funcall comint-get-old-input))) 1192 (funcall comint-get-old-input)))
1193 (setq comint-input-ring-index pos) 1193 (setq comint-input-ring-index pos)
1194 (message "History item: %d" (1+ pos)) 1194 (unless isearch-mode
1195 (message "History item: %d" (1+ pos)))
1195 (comint-delete-input) 1196 (comint-delete-input)
1196 (insert (ring-ref comint-input-ring pos))))) 1197 (insert (ring-ref comint-input-ring pos)))))
1197 1198
@@ -1540,8 +1541,11 @@ the function `isearch-message'."
1540 (overlay-put comint-history-isearch-message-overlay 'evaporate t)) 1541 (overlay-put comint-history-isearch-message-overlay 'evaporate t))
1541 (overlay-put comint-history-isearch-message-overlay 1542 (overlay-put comint-history-isearch-message-overlay
1542 'display (isearch-message-prefix c-q-hack ellipsis)) 1543 'display (isearch-message-prefix c-q-hack ellipsis))
1543 ;; And clear any previous isearch message. 1544 (if (and comint-input-ring-index (not ellipsis))
1544 (message ""))) 1545 ;; Display the current history index.
1546 (message "History item: %d" (1+ comint-input-ring-index))
1547 ;; Or clear a previous isearch message.
1548 (message ""))))
1545 1549
1546(defun comint-history-isearch-wrap () 1550(defun comint-history-isearch-wrap ()
1547 "Wrap the input history search when search fails. 1551 "Wrap the input history search when search fails.
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 9c95f597fff..e9a839c4cf7 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -189,6 +189,19 @@ determine where the desktop is saved."
189 :group 'desktop 189 :group 'desktop
190 :version "22.1") 190 :version "22.1")
191 191
192(defcustom desktop-auto-save-timeout nil
193 "Number of seconds between auto-saves of the desktop.
194Zero or nil means disable timer-based auto-saving."
195 :type '(choice (const :tag "Off" nil)
196 (integer :tag "Seconds"))
197 :set (lambda (symbol value)
198 (set-default symbol value)
199 (condition-case nil
200 (desktop-auto-save-set-timer)
201 (error nil)))
202 :group 'desktop
203 :version "24.4")
204
192(defcustom desktop-load-locked-desktop 'ask 205(defcustom desktop-load-locked-desktop 'ask
193 "Specifies whether the desktop should be loaded if locked. 206 "Specifies whether the desktop should be loaded if locked.
194Possible values are: 207Possible values are:
@@ -539,6 +552,10 @@ DIRNAME omitted or nil means use `desktop-dirname'."
539(defvar desktop-delay-hook nil 552(defvar desktop-delay-hook nil
540 "Hooks run after all buffers are loaded; intended for internal use.") 553 "Hooks run after all buffers are loaded; intended for internal use.")
541 554
555(defvar desktop-file-checksum nil
556 "Checksum of the last auto-saved contents of the desktop file.
557Used to avoid writing contents unchanged between auto-saves.")
558
542;; ---------------------------------------------------------------------------- 559;; ----------------------------------------------------------------------------
543;; Desktop file conflict detection 560;; Desktop file conflict detection
544(defvar desktop-file-modtime nil 561(defvar desktop-file-modtime nil
@@ -842,11 +859,12 @@ DIRNAME must be the directory in which the desktop file will be saved."
842 859
843;; ---------------------------------------------------------------------------- 860;; ----------------------------------------------------------------------------
844;;;###autoload 861;;;###autoload
845(defun desktop-save (dirname &optional release) 862(defun desktop-save (dirname &optional release auto-save)
846 "Save the desktop in a desktop file. 863 "Save the desktop in a desktop file.
847Parameter DIRNAME specifies where to save the desktop file. 864Parameter DIRNAME specifies where to save the desktop file.
848Optional parameter RELEASE says whether we're done with this desktop. 865Optional parameter RELEASE says whether we're done with this desktop.
849See also `desktop-base-file-name'." 866If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
867and don't save the buffer if they are the same."
850 (interactive "DDirectory to save desktop file in: ") 868 (interactive "DDirectory to save desktop file in: ")
851 (setq desktop-dirname (file-name-as-directory (expand-file-name dirname))) 869 (setq desktop-dirname (file-name-as-directory (expand-file-name dirname)))
852 (save-excursion 870 (save-excursion
@@ -906,10 +924,17 @@ See also `desktop-base-file-name'."
906 (insert ")\n\n")))) 924 (insert ")\n\n"))))
907 925
908 (setq default-directory desktop-dirname) 926 (setq default-directory desktop-dirname)
909 (let ((coding-system-for-write 'emacs-mule)) 927 ;; If auto-saving, avoid writing if nothing has changed since the last write.
910 (write-region (point-min) (point-max) (desktop-full-file-name) nil 'nomessage)) 928 ;; Don't check 300 characters of the header that contains the timestamp.
911 ;; We remember when it was modified (which is presumably just now). 929 (let ((checksum (and auto-save (md5 (current-buffer)
912 (setq desktop-file-modtime (nth 5 (file-attributes (desktop-full-file-name))))))))) 930 (+ (point-min) 300) (point-max)
931 'emacs-mule))))
932 (unless (and auto-save (equal checksum desktop-file-checksum))
933 (let ((coding-system-for-write 'emacs-mule))
934 (write-region (point-min) (point-max) (desktop-full-file-name) nil 'nomessage))
935 (setq desktop-file-checksum checksum)
936 ;; We remember when it was modified (which is presumably just now).
937 (setq desktop-file-modtime (nth 5 (file-attributes (desktop-full-file-name)))))))))))
913 938
914;; ---------------------------------------------------------------------------- 939;; ----------------------------------------------------------------------------
915;;;###autoload 940;;;###autoload
@@ -1063,6 +1088,37 @@ directory DIRNAME."
1063 (message "Desktop saved in %s" (abbreviate-file-name desktop-dirname))) 1088 (message "Desktop saved in %s" (abbreviate-file-name desktop-dirname)))
1064 1089
1065;; ---------------------------------------------------------------------------- 1090;; ----------------------------------------------------------------------------
1091;; Auto-Saving.
1092(defvar desktop-auto-save-timer nil)
1093
1094(defun desktop-auto-save ()
1095 "Save the desktop periodically.
1096Called by the timer created in `desktop-auto-save-set-timer'."
1097 (when (and desktop-save-mode
1098 (integerp desktop-auto-save-timeout)
1099 (> desktop-auto-save-timeout 0)
1100 ;; Avoid desktop saving during lazy loading.
1101 (not desktop-lazy-timer)
1102 ;; Save only to own desktop file.
1103 (eq (emacs-pid) (desktop-owner))
1104 desktop-dirname)
1105 (desktop-save desktop-dirname nil t))
1106 (desktop-auto-save-set-timer))
1107
1108(defun desktop-auto-save-set-timer ()
1109 "Reset the auto-save timer.
1110Cancel any previous timer. When `desktop-auto-save-timeout' is a positive
1111integer, start a new timer to call `desktop-auto-save' in that many seconds."
1112 (when desktop-auto-save-timer
1113 (cancel-timer desktop-auto-save-timer)
1114 (setq desktop-auto-save-timer nil))
1115 (when (and (integerp desktop-auto-save-timeout)
1116 (> desktop-auto-save-timeout 0))
1117 (setq desktop-auto-save-timer
1118 (run-with-timer desktop-auto-save-timeout nil
1119 'desktop-auto-save))))
1120
1121;; ----------------------------------------------------------------------------
1066;;;###autoload 1122;;;###autoload
1067(defun desktop-revert () 1123(defun desktop-revert ()
1068 "Revert to the last loaded desktop." 1124 "Revert to the last loaded desktop."
@@ -1315,6 +1371,7 @@ If there are no buffers left to create, kill the timer."
1315 (setq desktop-save-mode nil))) 1371 (setq desktop-save-mode nil)))
1316 (when desktop-save-mode 1372 (when desktop-save-mode
1317 (desktop-read) 1373 (desktop-read)
1374 (desktop-auto-save-set-timer)
1318 (setq inhibit-startup-screen t)))) 1375 (setq inhibit-startup-screen t))))
1319 1376
1320(provide 'desktop) 1377(provide 'desktop)
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 605d1cf375c..c80b8d970dc 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -588,7 +588,8 @@ EXTRA-PROPERTIES is currently unused."
588 (concat ";;; " (file-name-nondirectory file) 588 (concat ";;; " (file-name-nondirectory file)
589 " --- automatically extracted autoloads\n" 589 " --- automatically extracted autoloads\n"
590 ";;\n" 590 ";;\n"
591 ";;; Code:\n\n" 591 ";;; Code:\n"
592 "(add-to-list 'load-path (or (file-name-directory #$) (car load-path)))\n"
592 " \n;; Local Variables:\n" 593 " \n;; Local Variables:\n"
593 ";; version-control: never\n" 594 ";; version-control: never\n"
594 ";; no-byte-compile: t\n" 595 ";; no-byte-compile: t\n"
@@ -605,8 +606,7 @@ EXTRA-PROPERTIES is currently unused."
605 ;;(ignore-name (concat name "-pkg.el")) 606 ;;(ignore-name (concat name "-pkg.el"))
606 (generated-autoload-file (expand-file-name auto-name pkg-dir)) 607 (generated-autoload-file (expand-file-name auto-name pkg-dir))
607 (version-control 'never)) 608 (version-control 'never))
608 (unless (fboundp 'autoload-ensure-default-file) 609 (package-autoload-ensure-default-file generated-autoload-file)
609 (package-autoload-ensure-default-file generated-autoload-file))
610 (update-directory-autoloads pkg-dir) 610 (update-directory-autoloads pkg-dir)
611 (let ((buf (find-buffer-visiting generated-autoload-file))) 611 (let ((buf (find-buffer-visiting generated-autoload-file)))
612 (when buf (kill-buffer buf))))) 612 (when buf (kill-buffer buf)))))
diff --git a/lisp/emacs-lisp/shadow.el b/lisp/emacs-lisp/shadow.el
index b12fba17027..d0e3c5763b5 100644
--- a/lisp/emacs-lisp/shadow.el
+++ b/lisp/emacs-lisp/shadow.el
@@ -207,101 +207,79 @@ the earlier.
207 207
208For example, suppose `load-path' is set to 208For example, suppose `load-path' is set to
209 209
210\(\"/usr/gnu/emacs/site-lisp\" \"/usr/gnu/emacs/share/emacs/19.30/lisp\"\) 210\(\"/usr/share/emacs/site-lisp\" \"/usr/share/emacs/24.3/lisp\")
211 211
212and that each of these directories contains a file called XXX.el. Then 212and that each of these directories contains a file called XXX.el. Then
213XXX.el in the site-lisp directory is referred to by all of: 213XXX.el in the site-lisp directory is referred to by all of:
214\(require 'XXX\), \(autoload .... \"XXX\"\), \(load-library \"XXX\"\) etc. 214\(require 'XXX), (autoload .... \"XXX\"), (load-library \"XXX\") etc.
215 215
216The first XXX.el file prevents Emacs from seeing the second \(unless 216The first XXX.el file prevents Emacs from seeing the second (unless
217the second is loaded explicitly via `load-file'\). 217the second is loaded explicitly via `load-file').
218 218
219When not intended, such shadowings can be the source of subtle 219When not intended, such shadowings can be the source of subtle
220problems. For example, the above situation may have arisen because the 220problems. For example, the above situation may have arisen because the
221XXX package was not distributed with versions of Emacs prior to 221XXX package was not distributed with versions of Emacs prior to
22219.30. An Emacs maintainer downloaded XXX from elsewhere and installed 22224.3. A system administrator downloaded XXX from elsewhere and installed
223it. Later, XXX was updated and included in the Emacs distribution. 223it. Later, XXX was updated and included in the Emacs distribution.
224Unless the Emacs maintainer checks for this, the new version of XXX 224Unless the system administrator checks for this, the new version of XXX
225will be hidden behind the old \(which may no longer work with the new 225will be hidden behind the old (which may no longer work with the new
226Emacs version\). 226Emacs version).
227 227
228This function performs these checks and flags all possible 228This function performs these checks and flags all possible
229shadowings. Because a .el file may exist without a corresponding .elc 229shadowings. Because a .el file may exist without a corresponding .elc
230\(or vice-versa\), these suffixes are essentially ignored. A file 230\(or vice-versa), these suffixes are essentially ignored. A file
231XXX.elc in an early directory \(that does not contain XXX.el\) is 231XXX.elc in an early directory (that does not contain XXX.el) is
232considered to shadow a later file XXX.el, and vice-versa. 232considered to shadow a later file XXX.el, and vice-versa.
233 233
234Shadowings are located by calling the (non-interactive) companion 234Shadowings are located by calling the (non-interactive) companion
235function, `load-path-shadows-find'." 235function, `load-path-shadows-find'."
236 (interactive) 236 (interactive)
237 (let* ((path (copy-sequence load-path)) 237 (let* ((shadows (load-path-shadows-find load-path))
238 (tem path) 238 (n (/ (length shadows) 2))
239 toplevs) 239 (msg (format "%s Emacs Lisp load-path shadowing%s found"
240 ;; If we can find simple.el in two places, 240 (if (zerop n) "No" (concat "\n" (number-to-string n)))
241 (dolist (tt tem) 241 (if (= n 1) " was" "s were"))))
242 (if (or (file-exists-p (expand-file-name "simple.el" tt)) 242 (with-temp-buffer
243 (file-exists-p (expand-file-name "simple.el.gz" tt))) 243 (while shadows
244 (setq toplevs (cons tt toplevs)))) 244 (insert (format "%s hides %s\n" (car shadows)
245 (if (> (length toplevs) 1) 245 (car (cdr shadows))))
246 ;; Cut off our copy of load-path right before 246 (setq shadows (cdr (cdr shadows))))
247 ;; the last directory which has simple.el in it. 247 (if stringp
248 ;; This avoids loads of duplications between the source dir 248 (buffer-string)
249 ;; and the dir where these files were copied by installation. 249 (if (called-interactively-p 'interactive)
250 (let ((break (car toplevs))) 250 ;; We are interactive.
251 (setq tem path) 251 ;; Create the *Shadows* buffer and display shadowings there.
252 (while tem 252 (let ((string (buffer-string)))
253 (if (eq (nth 1 tem) break) 253 (with-current-buffer (get-buffer-create "*Shadows*")
254 (progn 254 (display-buffer (current-buffer))
255 (setcdr tem nil) 255 (load-path-shadows-mode) ; run after-change-major-mode-hook
256 (setq tem nil))) 256 (let ((inhibit-read-only t))
257 (setq tem (cdr tem))))) 257 (erase-buffer)
258 258 (insert string)
259 (let* ((shadows (load-path-shadows-find path)) 259 (insert msg "\n")
260 (n (/ (length shadows) 2)) 260 (while (re-search-backward "\\(^.*\\) hides \\(.*$\\)"
261 (msg (format "%s Emacs Lisp load-path shadowing%s found" 261 nil t)
262 (if (zerop n) "No" (concat "\n" (number-to-string n))) 262 (dotimes (i 2)
263 (if (= n 1) " was" "s were")))) 263 (make-button (match-beginning (1+ i))
264 (with-temp-buffer 264 (match-end (1+ i))
265 (while shadows 265 'type 'load-path-shadows-find-file
266 (insert (format "%s hides %s\n" (car shadows) 266 'shadow-file
267 (car (cdr shadows)))) 267 (match-string (1+ i)))))
268 (setq shadows (cdr (cdr shadows)))) 268 (goto-char (point-max)))))
269 (if stringp 269 ;; We are non-interactive, print shadows via message.
270 (buffer-string) 270 (unless (zerop n)
271 (if (called-interactively-p 'interactive) 271 (message "This site has duplicate Lisp libraries with the same name.
272 ;; We are interactive.
273 ;; Create the *Shadows* buffer and display shadowings there.
274 (let ((string (buffer-string)))
275 (with-current-buffer (get-buffer-create "*Shadows*")
276 (display-buffer (current-buffer))
277 (load-path-shadows-mode) ; run after-change-major-mode-hook
278 (let ((inhibit-read-only t))
279 (erase-buffer)
280 (insert string)
281 (insert msg "\n")
282 (while (re-search-backward "\\(^.*\\) hides \\(.*$\\)"
283 nil t)
284 (dotimes (i 2)
285 (make-button (match-beginning (1+ i))
286 (match-end (1+ i))
287 'type 'load-path-shadows-find-file
288 'shadow-file
289 (match-string (1+ i)))))
290 (goto-char (point-max)))))
291 ;; We are non-interactive, print shadows via message.
292 (unless (zerop n)
293 (message "This site has duplicate Lisp libraries with the same name.
294If a locally-installed Lisp library overrides a library in the Emacs release, 272If a locally-installed Lisp library overrides a library in the Emacs release,
295that can cause trouble, and you should probably remove the locally-installed 273that can cause trouble, and you should probably remove the locally-installed
296version unless you know what you are doing.\n") 274version unless you know what you are doing.\n")
297 (goto-char (point-min)) 275 (goto-char (point-min))
298 ;; Mimic the previous behavior of using lots of messages. 276 ;; Mimic the previous behavior of using lots of messages.
299 ;; I think one single message would look better... 277 ;; I think one single message would look better...
300 (while (not (eobp)) 278 (while (not (eobp))
301 (message "%s" (buffer-substring (line-beginning-position) 279 (message "%s" (buffer-substring (line-beginning-position)
302 (line-end-position))) 280 (line-end-position)))
303 (forward-line 1)) 281 (forward-line 1))
304 (message "%s" msg)))))))) 282 (message "%s" msg)))))))
305 283
306(provide 'shadow) 284(provide 'shadow)
307 285
diff --git a/lisp/emacs-lisp/syntax.el b/lisp/emacs-lisp/syntax.el
index bf2c8308bb5..0a4758a9ccd 100644
--- a/lisp/emacs-lisp/syntax.el
+++ b/lisp/emacs-lisp/syntax.el
@@ -99,7 +99,7 @@ Put first the functions more likely to cause a change and cheaper to compute.")
99 (setq beg (or (previous-single-property-change beg 'syntax-multiline) 99 (setq beg (or (previous-single-property-change beg 'syntax-multiline)
100 (point-min)))) 100 (point-min))))
101 ;; 101 ;;
102 (when (get-text-property end 'font-lock-multiline) 102 (when (get-text-property end 'syntax-multiline)
103 (setq end (or (text-property-any end (point-max) 103 (setq end (or (text-property-any end (point-max)
104 'syntax-multiline nil) 104 'syntax-multiline nil)
105 (point-max)))) 105 (point-max))))
diff --git a/lisp/emacs-lisp/tabulated-list.el b/lisp/emacs-lisp/tabulated-list.el
index da487e463e2..6dba423010f 100644
--- a/lisp/emacs-lisp/tabulated-list.el
+++ b/lisp/emacs-lisp/tabulated-list.el
@@ -519,12 +519,11 @@ printer is `tabulated-list-print-entry', but a mode that keeps
519data in an ewoc may instead specify a printer function (e.g., one 519data in an ewoc may instead specify a printer function (e.g., one
520that calls `ewoc-enter-last'), with `tabulated-list-print-entry' 520that calls `ewoc-enter-last'), with `tabulated-list-print-entry'
521as the ewoc pretty-printer." 521as the ewoc pretty-printer."
522 (setq truncate-lines t) 522 (setq-local truncate-lines t)
523 (setq buffer-read-only t) 523 (setq-local buffer-read-only t)
524 (set (make-local-variable 'revert-buffer-function) 524 (setq-local buffer-undo-list t)
525 'tabulated-list-revert) 525 (setq-local revert-buffer-function #'tabulated-list-revert)
526 (set (make-local-variable 'glyphless-char-display) 526 (setq-local glyphless-char-display tabulated-list-glyphless-char-display))
527 tabulated-list-glyphless-char-display))
528 527
529(put 'tabulated-list-mode 'mode-class 'special) 528(put 'tabulated-list-mode 'mode-class 'special)
530 529
diff --git a/lisp/faces.el b/lisp/faces.el
index 6179ed7dfa7..80f34d4569a 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -938,19 +938,14 @@ of the default face. Value is FACE."
938PROMPT should not end in a space or a colon. 938PROMPT should not end in a space or a colon.
939 939
940Return DEFAULT if the user enters the empty string. 940Return DEFAULT if the user enters the empty string.
941If DEFAULT is non-nil, it should be a list of face names (symbols or strings). 941If DEFAULT is non-nil, it should be a single face or a list of face names
942In that case, return the `car' of DEFAULT (if MULTIPLE is non-nil), 942\(symbols or strings). In the latter case, return the `car' of DEFAULT
943or DEFAULT (if MULTIPLE is nil). See below for the meaning of MULTIPLE. 943\(if MULTIPLE is nil, see below), or DEFAULT (if MULTIPLE is non-nil).
944DEFAULT can also be a single face. 944
945 945If MULTIPLE is non-nil, this function uses `completing-read-multiple'
946This function uses `completing-read-multiple' with \"[ \\t]*,[ \\t]*\" 946to read multiple faces with \"[ \\t]*,[ \\t]*\" as the separator regexp
947as the separator regexp. Thus, the user may enter multiple face names, 947and it returns a list of face names. Otherwise, it reads and returns
948separated by commas. 948a single face name."
949
950MULTIPLE specifies the form of the return value. If MULTIPLE is non-nil,
951return a list of face names; if the user entered just one face name,
952return a list of one face name. Otherwise, return a single face name;
953if the user entered more than one face name, return only the first one."
954 (if (and default (not (stringp default))) 949 (if (and default (not (stringp default)))
955 (setq default 950 (setq default
956 (cond ((symbolp default) 951 (cond ((symbolp default)
@@ -961,26 +956,36 @@ if the user entered more than one face name, return only the first one."
961 ;; If we only want one, and the default is more than one, 956 ;; If we only want one, and the default is more than one,
962 ;; discard the unwanted ones. 957 ;; discard the unwanted ones.
963 (t (symbol-name (car default)))))) 958 (t (symbol-name (car default))))))
964 959 (if (and default (not multiple))
965 (let (aliasfaces nonaliasfaces faces) 960 ;; For compatibility with `completing-read-multiple' use `crm-separator'
961 ;; to define DEFAULT if MULTIPLE is nil.
962 (setq default (car (split-string default crm-separator t))))
963
964 (let ((prompt (if default
965 (format "%s (default `%s'): " prompt default)
966 (format "%s: " prompt)))
967 aliasfaces nonaliasfaces faces)
966 ;; Build up the completion tables. 968 ;; Build up the completion tables.
967 (mapatoms (lambda (s) 969 (mapatoms (lambda (s)
968 (if (facep s) 970 (if (facep s)
969 (if (get s 'face-alias) 971 (if (get s 'face-alias)
970 (push (symbol-name s) aliasfaces) 972 (push (symbol-name s) aliasfaces)
971 (push (symbol-name s) nonaliasfaces))))) 973 (push (symbol-name s) nonaliasfaces)))))
972 (dolist (face (completing-read-multiple 974 (if multiple
973 (if default 975 (progn
974 (format "%s (default `%s'): " prompt default) 976 (dolist (face (completing-read-multiple
975 (format "%s: " prompt)) 977 prompt
978 (completion-table-in-turn nonaliasfaces aliasfaces)
979 nil t nil 'face-name-history default))
980 ;; Ignore elements that are not faces
981 ;; (for example, because DEFAULT was "all faces")
982 (if (facep face) (push (intern face) faces)))
983 (nreverse faces))
984 (let ((face (completing-read
985 prompt
976 (completion-table-in-turn nonaliasfaces aliasfaces) 986 (completion-table-in-turn nonaliasfaces aliasfaces)
977 nil t nil 'face-name-history default)) 987 nil t nil 'face-name-history default)))
978 ;; Ignore elements that are not faces 988 (if (facep face) (intern face))))))
979 ;; (for example, because DEFAULT was "all faces")
980 (if (facep face) (push (intern face) faces)))
981 ;; Return either a list of faces or just one face.
982 (setq faces (nreverse faces))
983 (if multiple faces (car faces))))
984 989
985;; Not defined without X, but behind window-system test. 990;; Not defined without X, but behind window-system test.
986(defvar x-bitmap-file-path) 991(defvar x-bitmap-file-path)
diff --git a/lisp/files.el b/lisp/files.el
index ae5e5a23161..eebbf15e02e 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4617,7 +4617,8 @@ Before and after saving the buffer, this function runs
4617 (insert ?\n)))) 4617 (insert ?\n))))
4618 ;; Support VC version backups. 4618 ;; Support VC version backups.
4619 (vc-before-save) 4619 (vc-before-save)
4620 (run-hooks 'before-save-hook) 4620 ;; Don't let errors prevent saving the buffer.
4621 (with-demoted-errors (run-hooks 'before-save-hook))
4621 (or (run-hook-with-args-until-success 'write-contents-functions) 4622 (or (run-hook-with-args-until-success 'write-contents-functions)
4622 (run-hook-with-args-until-success 'local-write-file-hooks) 4623 (run-hook-with-args-until-success 'local-write-file-hooks)
4623 (run-hook-with-args-until-success 'write-file-functions) 4624 (run-hook-with-args-until-success 'write-file-functions)
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog
index 4cdc8a103bd..1221f163cba 100644
--- a/lisp/gnus/ChangeLog
+++ b/lisp/gnus/ChangeLog
@@ -1,3 +1,32 @@
12013-05-01 Katsumi Yamaoka <yamaoka@jpl.org>
2
3 * gnus-util.el (gnus-emacs-completing-read): Fix a filter for XEmacs.
4 (Bug#14304)
5
62013-04-27 Glenn Morris <rgm@gnu.org>
7
8 * gnus.el (gnus-list-debbugs):
9 Use require rather than autoload. (Bug#14262)
10
112013-04-27 Julien Danjou <julien@danjou.info>
12
13 * sieve-manage.el (sieve-manage-authenticator-alist): Update the sieve
14 port to "sieve" now that it has an official IANA port assigned.
15
162013-04-26 Katsumi Yamaoka <yamaoka@jpl.org>
17
18 * mail-source.el (mail-source-fetch-pop, mail-source-check-pop):
19 Don't set the MAILHOST environment variable permanently (Bug#14271).
20
212013-04-26 Glenn Morris <rgm@gnu.org>
22
23 * message.el (message-bury): Revert 2013-03-18 change. (Bug#14117)
24
252013-04-25 Andrew Cohen <cohen@bu.edu>
26
27 * gnus-msg.el (gnus-inews-insert-gcc): Re-order conditional to work for
28 string values of 'gcc-self. Thanks to Saroj Thirumalai.
29
12013-04-24 Andrew Cohen <cohen@bu.edu> 302013-04-24 Andrew Cohen <cohen@bu.edu>
2 31
3 * nnir.el (nnir-close-group): Make sure we are in the right group. 32 * nnir.el (nnir-close-group): Make sure we are in the right group.
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el
index 362dd3ea7f0..fce9a3633c2 100644
--- a/lisp/gnus/gnus-msg.el
+++ b/lisp/gnus/gnus-msg.el
@@ -1719,8 +1719,8 @@ this is a reply."
1719 (group (when group (gnus-group-decoded-name group))) 1719 (group (when group (gnus-group-decoded-name group)))
1720 (var (or gnus-outgoing-message-group gnus-message-archive-group)) 1720 (var (or gnus-outgoing-message-group gnus-message-archive-group))
1721 (gcc-self-val 1721 (gcc-self-val
1722 (and group (gnus-group-find-parameter group 'gcc-self) 1722 (and group (not (gnus-virtual-group-p group))
1723 (not (gnus-virtual-group-p group)))) 1723 (gnus-group-find-parameter group 'gcc-self)))
1724 result 1724 result
1725 (groups 1725 (groups
1726 (cond 1726 (cond
diff --git a/lisp/gnus/gnus-util.el b/lisp/gnus/gnus-util.el
index 331f9556710..a121c27b547 100644
--- a/lisp/gnus/gnus-util.el
+++ b/lisp/gnus/gnus-util.el
@@ -1549,9 +1549,12 @@ SPEC is a predicate specifier that contains stuff like `or', `and',
1549 "Call standard `completing-read-function'." 1549 "Call standard `completing-read-function'."
1550 (let ((completion-styles gnus-completion-styles)) 1550 (let ((completion-styles gnus-completion-styles))
1551 (completing-read prompt 1551 (completing-read prompt
1552 ;; Old XEmacs (at least 21.4) expect an alist for 1552 ;; Old XEmacs (at least 21.4) expect an alist,
1553 ;; collection. 1553 ;; in which the car of each element is a string,
1554 (mapcar 'list collection) 1554 ;; for collection.
1555 (mapcar (lambda (elem)
1556 (list (format "%s" (or (car-safe elem) elem))))
1557 collection)
1555 nil require-match initial-input history def))) 1558 nil require-match initial-input history def)))
1556 1559
1557(autoload 'ido-completing-read "ido") 1560(autoload 'ido-completing-read "ido")
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index ffb4694f4a8..f6c1327c78c 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -4433,12 +4433,13 @@ prompt the user for the name of an NNTP server to use."
4433 (gnus-1 arg dont-connect slave) 4433 (gnus-1 arg dont-connect slave)
4434 (gnus-final-warning))) 4434 (gnus-final-warning)))
4435 4435
4436(eval-and-compile 4436(declare-function debbugs-gnu "ext:debbugs-gnu"
4437 (unless (fboundp 'debbugs-gnu) 4437 (severities &optional packages archivedp suppress tags))
4438 (autoload 'debbugs-gnu "debbugs-gnu" "List all outstanding Emacs bugs." t))) 4438
4439(defun gnus-list-debbugs () 4439(defun gnus-list-debbugs ()
4440 "List all open Gnus bug reports." 4440 "List all open Gnus bug reports."
4441 (interactive) 4441 (interactive)
4442 (require 'debbugs-gnu)
4442 (debbugs-gnu nil "gnus")) 4443 (debbugs-gnu nil "gnus"))
4443 4444
4444;; Allow redefinition of Gnus functions. 4445;; Allow redefinition of Gnus functions.
diff --git a/lisp/gnus/mail-source.el b/lisp/gnus/mail-source.el
index 9cc2e6ac09c..7da2a0a441d 100644
--- a/lisp/gnus/mail-source.el
+++ b/lisp/gnus/mail-source.el
@@ -809,6 +809,10 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
809 prescript-delay) 809 prescript-delay)
810 (let ((from (format "%s:%s:%s" server user port)) 810 (let ((from (format "%s:%s:%s" server user port))
811 (mail-source-string (format "pop:%s@%s" user server)) 811 (mail-source-string (format "pop:%s@%s" user server))
812 (process-environment (if server
813 (cons (concat "MAILHOST=" server)
814 process-environment)
815 process-environment))
812 result) 816 result)
813 (when (eq authentication 'password) 817 (when (eq authentication 'password)
814 (setq password 818 (setq password
@@ -816,8 +820,6 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
816 (cdr (assoc from mail-source-password-cache)) 820 (cdr (assoc from mail-source-password-cache))
817 (read-passwd 821 (read-passwd
818 (format "Password for %s at %s: " user server))))) 822 (format "Password for %s at %s: " user server)))))
819 (when server
820 (setenv "MAILHOST" server))
821 (setq result 823 (setq result
822 (cond 824 (cond
823 (program 825 (program
@@ -877,6 +879,10 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
877 (mail-source-bind (pop source) 879 (mail-source-bind (pop source)
878 (let ((from (format "%s:%s:%s" server user port)) 880 (let ((from (format "%s:%s:%s" server user port))
879 (mail-source-string (format "pop:%s@%s" user server)) 881 (mail-source-string (format "pop:%s@%s" user server))
882 (process-environment (if server
883 (cons (concat "MAILHOST=" server)
884 process-environment)
885 process-environment))
880 result) 886 result)
881 (when (eq authentication 'password) 887 (when (eq authentication 'password)
882 (setq password 888 (setq password
@@ -886,8 +892,6 @@ Deleting old (> %s day(s)) incoming mail file `%s'." diff bfile)
886 (format "Password for %s at %s: " user server)))) 892 (format "Password for %s at %s: " user server))))
887 (unless (assoc from mail-source-password-cache) 893 (unless (assoc from mail-source-password-cache)
888 (push (cons from password) mail-source-password-cache))) 894 (push (cons from password) mail-source-password-cache)))
889 (when server
890 (setenv "MAILHOST" server))
891 (setq result 895 (setq result
892 (cond 896 (cond
893 ;; No easy way to check whether mail is waiting for these. 897 ;; No easy way to check whether mail is waiting for these.
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 2b2a0a94413..a6638097b47 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -4097,9 +4097,11 @@ Instead, just auto-save the buffer and then bury it."
4097 4097
4098(defun message-bury (buffer) 4098(defun message-bury (buffer)
4099 "Bury this mail BUFFER." 4099 "Bury this mail BUFFER."
4100 (bury-buffer buffer) 4100 (if message-return-action
4101 (when message-return-action 4101 (progn
4102 (apply (car message-return-action) (cdr message-return-action)))) 4102 (bury-buffer buffer)
4103 (apply (car message-return-action) (cdr message-return-action)))
4104 (with-current-buffer buffer (bury-buffer))))
4103 4105
4104(defun message-send (&optional arg) 4106(defun message-send (&optional arg)
4105 "Send the message in the current buffer. 4107 "Send the message in the current buffer.
diff --git a/lisp/gnus/sieve-manage.el b/lisp/gnus/sieve-manage.el
index 22c1f7036bf..b96261764e5 100644
--- a/lisp/gnus/sieve-manage.el
+++ b/lisp/gnus/sieve-manage.el
@@ -149,9 +149,10 @@ the server support the authenticator and AUTHENTICATE is a function
149for doing the actual authentication." 149for doing the actual authentication."
150 :group 'sieve-manage) 150 :group 'sieve-manage)
151 151
152(defcustom sieve-manage-default-port 2000 152(defcustom sieve-manage-default-port "sieve"
153 "Default port number or service name for managesieve protocol." 153 "Default port number or service name for managesieve protocol."
154 :type 'integer 154 :type '(choice integer string)
155 :version "24.4"
155 :group 'sieve-manage) 156 :group 'sieve-manage)
156 157
157(defcustom sieve-manage-default-stream 'network 158(defcustom sieve-manage-default-stream 'network
diff --git a/lisp/isearch.el b/lisp/isearch.el
index b36b250738a..72a125fcecb 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -735,8 +735,9 @@ Other control and meta characters terminate the search
735 and are then executed normally (depending on `search-exit-option'). 735 and are then executed normally (depending on `search-exit-option').
736Likewise for function keys and mouse button events. 736Likewise for function keys and mouse button events.
737 737
738If this function is called non-interactively, it does not return to 738If this function is called non-interactively with a nil NO-RECURSIVE-EDIT,
739the calling function until the search is done." 739it does not return to the calling function until the search is done.
740See the function `isearch-mode' for more information."
740 741
741 (interactive "P\np") 742 (interactive "P\np")
742 (isearch-mode t (not (null regexp-p)) nil (not no-recursive-edit))) 743 (isearch-mode t (not (null regexp-p)) nil (not no-recursive-edit)))
@@ -799,7 +800,23 @@ as a regexp. See the command `isearch-forward' for more information."
799 800
800(defun isearch-mode (forward &optional regexp op-fun recursive-edit word) 801(defun isearch-mode (forward &optional regexp op-fun recursive-edit word)
801 "Start Isearch minor mode. 802 "Start Isearch minor mode.
802It is called by the function `isearch-forward' and other related functions." 803It is called by the function `isearch-forward' and other related functions.
804
805The non-nil arg FORWARD means searching in the forward direction.
806
807The non-nil arg REGEXP does an incremental regular expression search.
808
809The arg OP-FUN is a function to be called after each input character
810is processed. (It is not called after characters that exit the search.)
811
812When the arg RECURSIVE-EDIT is non-nil, this function behaves modally and
813does not return to the calling function until the search is completed.
814To behave this way it enters a recursive-edit and exits it when done
815isearching.
816
817The arg WORD, if t, does incremental search for a sequence of words,
818ignoring punctuation. If the value is a function, it is called to
819convert the search string to a regexp used by regexp search functions."
803 820
804 ;; Initialize global vars. 821 ;; Initialize global vars.
805 (setq isearch-forward forward 822 (setq isearch-forward forward
@@ -1106,8 +1123,9 @@ If MSG is non-nil, use variable `isearch-message', otherwise `isearch-string'."
1106 (curr-msg (if msg isearch-message isearch-string)) 1123 (curr-msg (if msg isearch-message isearch-string))
1107 succ-msg) 1124 succ-msg)
1108 (when (or (not isearch-success) isearch-error) 1125 (when (or (not isearch-success) isearch-error)
1109 (while (or (not (isearch--state-success (car cmds))) 1126 (while (and cmds
1110 (isearch--state-error (car cmds))) 1127 (or (not (isearch--state-success (car cmds)))
1128 (isearch--state-error (car cmds))))
1111 (pop cmds)) 1129 (pop cmds))
1112 (setq succ-msg (and cmds (if msg (isearch--state-message (car cmds)) 1130 (setq succ-msg (and cmds (if msg (isearch--state-message (car cmds))
1113 (isearch--state-string (car cmds))))) 1131 (isearch--state-string (car cmds)))))
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index 2e05d6b02fb..d2b97986581 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -895,7 +895,7 @@ outline hot-spot navigation (see `allout-mode').
895;;;*** 895;;;***
896 896
897;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp" 897;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
898;;;;;; "net/ange-ftp.el" (20763 30266 231060 0)) 898;;;;;; "net/ange-ftp.el" (20843 54187 671468 0))
899;;; Generated autoloads from net/ange-ftp.el 899;;; Generated autoloads from net/ange-ftp.el
900 900
901(defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir) 901(defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
@@ -1656,7 +1656,7 @@ should be non-nil).
1656 1656
1657;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode 1657;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
1658;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode) 1658;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
1659;;;;;; "autorevert" "autorevert.el" (20767 27320 533690 0)) 1659;;;;;; "autorevert" "autorevert.el" (20831 63016 738579 0))
1660;;; Generated autoloads from autorevert.el 1660;;; Generated autoloads from autorevert.el
1661 1661
1662(autoload 'auto-revert-mode "autorevert" "\ 1662(autoload 'auto-revert-mode "autorevert" "\
@@ -1860,7 +1860,7 @@ For non-interactive use see also `benchmark-run' and
1860;;;*** 1860;;;***
1861 1861
1862;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize) 1862;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize)
1863;;;;;; "bibtex" "textmodes/bibtex.el" (20709 26818 907104 0)) 1863;;;;;; "bibtex" "textmodes/bibtex.el" (20842 33318 816618 0))
1864;;; Generated autoloads from textmodes/bibtex.el 1864;;; Generated autoloads from textmodes/bibtex.el
1865 1865
1866(autoload 'bibtex-initialize "bibtex" "\ 1866(autoload 'bibtex-initialize "bibtex" "\
@@ -1868,11 +1868,14 @@ For non-interactive use see also `benchmark-run' and
1868Visit the BibTeX files defined by `bibtex-files' and return a list 1868Visit the BibTeX files defined by `bibtex-files' and return a list
1869of corresponding buffers. 1869of corresponding buffers.
1870Initialize in these buffers `bibtex-reference-keys' if not yet set. 1870Initialize in these buffers `bibtex-reference-keys' if not yet set.
1871List of BibTeX buffers includes current buffer if CURRENT is non-nil. 1871List of BibTeX buffers includes current buffer if CURRENT is non-nil
1872and the current buffer visits a file using `bibtex-mode'.
1872If FORCE is non-nil, (re)initialize `bibtex-reference-keys' even if 1873If FORCE is non-nil, (re)initialize `bibtex-reference-keys' even if
1873already set. If SELECT is non-nil interactively select a BibTeX buffer. 1874already set. If SELECT is non-nil interactively select a BibTeX buffer.
1874When called interactively, FORCE is t, CURRENT is t if current buffer uses 1875
1875`bibtex-mode', and SELECT is t if current buffer does not use `bibtex-mode', 1876When called interactively, FORCE is t, CURRENT is t if current buffer
1877visits a file using `bibtex-mode', and SELECT is t if current buffer
1878does not use `bibtex-mode',
1876 1879
1877\(fn &optional CURRENT FORCE SELECT)" t nil) 1880\(fn &optional CURRENT FORCE SELECT)" t nil)
1878 1881
@@ -2109,7 +2112,7 @@ a reflection.
2109;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert 2112;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert
2110;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate 2113;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate
2111;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark" 2114;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark"
2112;;;;;; "bookmark.el" (20793 51383 764318 0)) 2115;;;;;; "bookmark.el" (20849 6570 598687 0))
2113;;; Generated autoloads from bookmark.el 2116;;; Generated autoloads from bookmark.el
2114 (define-key ctl-x-r-map "b" 'bookmark-jump) 2117 (define-key ctl-x-r-map "b" 'bookmark-jump)
2115 (define-key ctl-x-r-map "m" 'bookmark-set) 2118 (define-key ctl-x-r-map "m" 'bookmark-set)
@@ -2713,7 +2716,7 @@ Like `bug-reference-mode', but only buttonize in comments and strings.
2713;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile 2716;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile
2714;;;;;; compile-defun byte-compile-file byte-recompile-directory 2717;;;;;; compile-defun byte-compile-file byte-recompile-directory
2715;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) 2718;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning)
2716;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20780 39352 990623 0)) 2719;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20851 48294 960738 0))
2717;;; Generated autoloads from emacs-lisp/bytecomp.el 2720;;; Generated autoloads from emacs-lisp/bytecomp.el
2718(put 'byte-compile-dynamic 'safe-local-variable 'booleanp) 2721(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
2719(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) 2722(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
@@ -2872,8 +2875,8 @@ from the cursor position.
2872 2875
2873;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle 2876;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
2874;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc 2877;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
2875;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20759 2878;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20863
2876;;;;;; 33211 414988 0)) 2879;;;;;; 39461 835648 0))
2877;;; Generated autoloads from calc/calc.el 2880;;; Generated autoloads from calc/calc.el
2878 (define-key ctl-x-map "*" 'calc-dispatch) 2881 (define-key ctl-x-map "*" 'calc-dispatch)
2879 2882
@@ -3090,7 +3093,7 @@ Obsoletes `c-forward-into-nomenclature'.
3090;;;*** 3093;;;***
3091 3094
3092;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el" 3095;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
3093;;;;;; (20791 9657 561026 0)) 3096;;;;;; (20864 28934 62335 0))
3094;;; Generated autoloads from progmodes/cc-engine.el 3097;;; Generated autoloads from progmodes/cc-engine.el
3095 3098
3096(autoload 'c-guess-basic-syntax "cc-engine" "\ 3099(autoload 'c-guess-basic-syntax "cc-engine" "\
@@ -3203,7 +3206,7 @@ the absolute file name of the file if STYLE-NAME is nil.
3203 3206
3204;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode 3207;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode
3205;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el" 3208;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
3206;;;;;; (20709 26818 907104 0)) 3209;;;;;; (20845 9511 656701 0))
3207;;; Generated autoloads from progmodes/cc-mode.el 3210;;; Generated autoloads from progmodes/cc-mode.el
3208 3211
3209(autoload 'c-initialize-cc-mode "cc-mode" "\ 3212(autoload 'c-initialize-cc-mode "cc-mode" "\
@@ -4218,7 +4221,7 @@ If FRAME cannot display COLOR, return nil.
4218;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list 4221;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
4219;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command 4222;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command
4220;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el" 4223;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
4221;;;;;; (20797 44848 327754 0)) 4224;;;;;; (20864 60326 774861 0))
4222;;; Generated autoloads from comint.el 4225;;; Generated autoloads from comint.el
4223 4226
4224(defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\ 4227(defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
@@ -4355,8 +4358,8 @@ on third call it again advances points to the next difference and so on.
4355;;;;;; compilation-shell-minor-mode compilation-mode compilation-start 4358;;;;;; compilation-shell-minor-mode compilation-mode compilation-start
4356;;;;;; compile compilation-disable-input compile-command compilation-search-path 4359;;;;;; compile compilation-disable-input compile-command compilation-search-path
4357;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook 4360;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook
4358;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20808 4361;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20856
4359;;;;;; 15152 87827 0)) 4362;;;;;; 32301 830403 0))
4360;;; Generated autoloads from progmodes/compile.el 4363;;; Generated autoloads from progmodes/compile.el
4361 4364
4362(defvar compilation-mode-hook nil "\ 4365(defvar compilation-mode-hook nil "\
@@ -5142,7 +5145,7 @@ Enable CUA selection mode without the C-z/C-x/C-c/C-v bindings.
5142;;;;;; customize-mode customize customize-push-and-save customize-save-variable 5145;;;;;; customize-mode customize customize-push-and-save customize-save-variable
5143;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically 5146;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically
5144;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically) 5147;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically)
5145;;;;;; "cus-edit" "cus-edit.el" (20762 9398 526093 0)) 5148;;;;;; "cus-edit" "cus-edit.el" (20841 12463 538770 0))
5146;;; Generated autoloads from cus-edit.el 5149;;; Generated autoloads from cus-edit.el
5147 5150
5148(defvar custom-browse-sort-alphabetically nil "\ 5151(defvar custom-browse-sort-alphabetically nil "\
@@ -5454,8 +5457,8 @@ The format is suitable for use with `easy-menu-define'.
5454;;;*** 5457;;;***
5455 5458
5456;;;### (autoloads (customize-themes describe-theme custom-theme-visit-theme 5459;;;### (autoloads (customize-themes describe-theme custom-theme-visit-theme
5457;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20709 5460;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20841
5458;;;;;; 26818 907104 0)) 5461;;;;;; 12463 538770 0))
5459;;; Generated autoloads from cus-theme.el 5462;;; Generated autoloads from cus-theme.el
5460 5463
5461(autoload 'customize-create-theme "cus-theme" "\ 5464(autoload 'customize-create-theme "cus-theme" "\
@@ -5545,7 +5548,7 @@ See `cwarn-mode' for more information on Cwarn mode.
5545 5548
5546;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char 5549;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
5547;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el" 5550;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
5548;;;;;; (20709 26818 907104 0)) 5551;;;;;; (20826 45095 436233 0))
5549;;; Generated autoloads from language/cyril-util.el 5552;;; Generated autoloads from language/cyril-util.el
5550 5553
5551(autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\ 5554(autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\
@@ -6006,7 +6009,7 @@ relevant to POS.
6006;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir 6009;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
6007;;;;;; desktop-load-default desktop-read desktop-remove desktop-save 6010;;;;;; desktop-load-default desktop-read desktop-remove desktop-save
6008;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop" 6011;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
6009;;;;;; "desktop.el" (20817 30120 173418 0)) 6012;;;;;; "desktop.el" (20860 63270 684173 0))
6010;;; Generated autoloads from desktop.el 6013;;; Generated autoloads from desktop.el
6011 6014
6012(defvar desktop-save-mode nil "\ 6015(defvar desktop-save-mode nil "\
@@ -6144,9 +6147,10 @@ Furthermore, it clears the variables listed in `desktop-globals-to-clear'.
6144Save the desktop in a desktop file. 6147Save the desktop in a desktop file.
6145Parameter DIRNAME specifies where to save the desktop file. 6148Parameter DIRNAME specifies where to save the desktop file.
6146Optional parameter RELEASE says whether we're done with this desktop. 6149Optional parameter RELEASE says whether we're done with this desktop.
6147See also `desktop-base-file-name'. 6150If AUTO-SAVE is non-nil, compare the saved contents to the one last saved,
6151and don't save the buffer if they are the same.
6148 6152
6149\(fn DIRNAME &optional RELEASE)" t nil) 6153\(fn DIRNAME &optional RELEASE AUTO-SAVE)" t nil)
6150 6154
6151(autoload 'desktop-remove "desktop" "\ 6155(autoload 'desktop-remove "desktop" "\
6152Delete desktop file in `desktop-dirname'. 6156Delete desktop file in `desktop-dirname'.
@@ -6726,8 +6730,8 @@ Locate SOA record and increment the serial field.
6726;;;*** 6730;;;***
6727 6731
6728;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe 6732;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe
6729;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20806 6733;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20845
6730;;;;;; 59818 347907 0)) 6734;;;;;; 9511 656701 0))
6731;;; Generated autoloads from doc-view.el 6735;;; Generated autoloads from doc-view.el
6732 6736
6733(autoload 'doc-view-mode-p "doc-view" "\ 6737(autoload 'doc-view-mode-p "doc-view" "\
@@ -7607,7 +7611,7 @@ an EDE controlled project.
7607 7611
7608;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form 7612;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
7609;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug" 7613;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
7610;;;;;; "emacs-lisp/edebug.el" (20825 24233 991089 0)) 7614;;;;;; "emacs-lisp/edebug.el" (20834 39208 838628 0))
7611;;; Generated autoloads from emacs-lisp/edebug.el 7615;;; Generated autoloads from emacs-lisp/edebug.el
7612 7616
7613(defvar edebug-all-defs nil "\ 7617(defvar edebug-all-defs nil "\
@@ -8166,7 +8170,7 @@ Emacs Lisp mode) that support ElDoc.")
8166;;;*** 8170;;;***
8167 8171
8168;;;### (autoloads (electric-layout-mode electric-pair-mode electric-indent-mode) 8172;;;### (autoloads (electric-layout-mode electric-pair-mode electric-indent-mode)
8169;;;;;; "electric" "electric.el" (20709 26818 907104 0)) 8173;;;;;; "electric" "electric.el" (20829 21286 719109 0))
8170;;; Generated autoloads from electric.el 8174;;; Generated autoloads from electric.el
8171 8175
8172(defvar electric-indent-chars '(10) "\ 8176(defvar electric-indent-chars '(10) "\
@@ -8768,7 +8772,7 @@ if ARG is omitted or nil.
8768 8772
8769;;;*** 8773;;;***
8770 8774
8771;;;### (autoloads (epg-make-context) "epg" "epg.el" (20712 3008 596088 8775;;;### (autoloads (epg-make-context) "epg" "epg.el" (20853 3623 384273
8772;;;;;; 0)) 8776;;;;;; 0))
8773;;; Generated autoloads from epg.el 8777;;; Generated autoloads from epg.el
8774 8778
@@ -9316,7 +9320,7 @@ Add a file to `erc-xdcc-files'.
9316 9320
9317;;;### (autoloads (ert-describe-test ert-run-tests-interactively 9321;;;### (autoloads (ert-describe-test ert-run-tests-interactively
9318;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch ert-deftest) 9322;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch ert-deftest)
9319;;;;;; "ert" "emacs-lisp/ert.el" (20751 39094 700824 0)) 9323;;;;;; "ert" "emacs-lisp/ert.el" (20834 39208 838628 0))
9320;;; Generated autoloads from emacs-lisp/ert.el 9324;;; Generated autoloads from emacs-lisp/ert.el
9321 9325
9322(autoload 'ert-deftest "ert" "\ 9326(autoload 'ert-deftest "ert" "\
@@ -10246,8 +10250,8 @@ with no args, if that value is non-nil.
10246;;;### (autoloads (variable-pitch-mode buffer-face-toggle buffer-face-set 10250;;;### (autoloads (variable-pitch-mode buffer-face-toggle buffer-face-set
10247;;;;;; buffer-face-mode text-scale-adjust text-scale-decrease text-scale-increase 10251;;;;;; buffer-face-mode text-scale-adjust text-scale-decrease text-scale-increase
10248;;;;;; text-scale-set face-remap-set-base face-remap-reset-base 10252;;;;;; text-scale-set face-remap-set-base face-remap-reset-base
10249;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20709 10253;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20841
10250;;;;;; 26818 907104 0)) 10254;;;;;; 12463 538770 0))
10251;;; Generated autoloads from face-remap.el 10255;;; Generated autoloads from face-remap.el
10252 10256
10253(autoload 'face-remap-add-relative "face-remap" "\ 10257(autoload 'face-remap-add-relative "face-remap" "\
@@ -11100,7 +11104,7 @@ Turn flymake mode off.
11100 11104
11101;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off 11105;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
11102;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode) 11106;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
11103;;;;;; "flyspell" "textmodes/flyspell.el" (20721 17977 14204 0)) 11107;;;;;; "flyspell" "textmodes/flyspell.el" (20847 51240 240216 0))
11104;;; Generated autoloads from textmodes/flyspell.el 11108;;; Generated autoloads from textmodes/flyspell.el
11105 11109
11106(autoload 'flyspell-prog-mode "flyspell" "\ 11110(autoload 'flyspell-prog-mode "flyspell" "\
@@ -11425,7 +11429,7 @@ and choose the directory as the fortune-file.
11425;;;*** 11429;;;***
11426 11430
11427;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el" 11431;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el"
11428;;;;;; (20799 169 640767 0)) 11432;;;;;; (20851 48294 960738 0))
11429;;; Generated autoloads from progmodes/gdb-mi.el 11433;;; Generated autoloads from progmodes/gdb-mi.el
11430 11434
11431(defvar gdb-enable-debug nil "\ 11435(defvar gdb-enable-debug nil "\
@@ -11654,8 +11658,8 @@ DEFAULT-MAP specifies the default key map for ICON-LIST.
11654;;;*** 11658;;;***
11655 11659
11656;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server 11660;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
11657;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20709 26818 11661;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20860 63270
11658;;;;;; 907104 0)) 11662;;;;;; 684173 0))
11659;;; Generated autoloads from gnus/gnus.el 11663;;; Generated autoloads from gnus/gnus.el
11660(when (fboundp 'custom-autoload) 11664(when (fboundp 'custom-autoload)
11661 (custom-autoload 'gnus-select-method "gnus")) 11665 (custom-autoload 'gnus-select-method "gnus"))
@@ -12195,7 +12199,7 @@ Calling (gnus-group-split-fancy nil nil \"mail.others\") returns:
12195;;;*** 12199;;;***
12196 12200
12197;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail) 12201;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
12198;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20820 6311 856169 0)) 12202;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20858 21542 723007 0))
12199;;; Generated autoloads from gnus/gnus-msg.el 12203;;; Generated autoloads from gnus/gnus-msg.el
12200 12204
12201(autoload 'gnus-msg-mail "gnus-msg" "\ 12205(autoload 'gnus-msg-mail "gnus-msg" "\
@@ -12403,7 +12407,7 @@ Declare back end NAME with ABILITIES as a Gnus back end.
12403;;;*** 12407;;;***
12404 12408
12405;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el" 12409;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el"
12406;;;;;; (20791 9657 561026 0)) 12410;;;;;; (20856 32301 830403 0))
12407;;; Generated autoloads from gnus/gnus-sum.el 12411;;; Generated autoloads from gnus/gnus-sum.el
12408 12412
12409(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\ 12413(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
@@ -12726,8 +12730,8 @@ the form \"WINDOW-ID PIXMAP-ID\". Value is non-nil if successful.
12726;;;*** 12730;;;***
12727 12731
12728;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb 12732;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb
12729;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20709 26818 12733;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20851 48294
12730;;;;;; 907104 0)) 12734;;;;;; 960738 0))
12731;;; Generated autoloads from progmodes/gud.el 12735;;; Generated autoloads from progmodes/gud.el
12732 12736
12733(autoload 'gud-gdb "gud" "\ 12737(autoload 'gud-gdb "gud" "\
@@ -14532,8 +14536,8 @@ The main features of this mode are
14532;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file 14536;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file
14533;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer 14537;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
14534;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window 14538;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
14535;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20809 14539;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20831
14536;;;;;; 36008 682209 0)) 14540;;;;;; 63016 738579 0))
14537;;; Generated autoloads from ido.el 14541;;; Generated autoloads from ido.el
14538 14542
14539(defvar ido-mode nil "\ 14543(defvar ido-mode nil "\
@@ -15413,7 +15417,7 @@ for more information.
15413 15417
15414;;;### (autoloads (indian-2-column-to-ucs-region in-is13194-pre-write-conversion 15418;;;### (autoloads (indian-2-column-to-ucs-region in-is13194-pre-write-conversion
15415;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region) 15419;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region)
15416;;;;;; "ind-util" "language/ind-util.el" (20709 26818 907104 0)) 15420;;;;;; "ind-util" "language/ind-util.el" (20826 45095 436233 0))
15417;;; Generated autoloads from language/ind-util.el 15421;;; Generated autoloads from language/ind-util.el
15418 15422
15419(autoload 'indian-compose-region "ind-util" "\ 15423(autoload 'indian-compose-region "ind-util" "\
@@ -15466,7 +15470,7 @@ of `inferior-lisp-program'). Runs the hooks from
15466;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node 15470;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node
15467;;;;;; Info-mode info-finder info-apropos Info-index Info-directory 15471;;;;;; Info-mode info-finder info-apropos Info-index Info-directory
15468;;;;;; Info-on-current-buffer info-standalone info-emacs-bug info-emacs-manual 15472;;;;;; Info-on-current-buffer info-standalone info-emacs-bug info-emacs-manual
15469;;;;;; info info-other-window) "info" "info.el" (20813 33065 721081 15473;;;;;; info info-other-window) "info" "info.el" (20841 12463 538770
15470;;;;;; 0)) 15474;;;;;; 0))
15471;;; Generated autoloads from info.el 15475;;; Generated autoloads from info.el
15472 15476
@@ -15680,7 +15684,7 @@ Otherwise, visit the manual in a new Info buffer.
15680 15684
15681;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file 15685;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
15682;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el" 15686;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
15683;;;;;; (20771 24374 643644 0)) 15687;;;;;; (20854 24486 190633 0))
15684;;; Generated autoloads from info-look.el 15688;;; Generated autoloads from info-look.el
15685 15689
15686(autoload 'info-lookup-reset "info-look" "\ 15690(autoload 'info-lookup-reset "info-look" "\
@@ -16011,7 +16015,7 @@ Add submenus to the File menu, to convert to and from various formats.
16011;;;;;; ispell-buffer ispell-comments-and-strings ispell-region ispell-change-dictionary 16015;;;;;; ispell-buffer ispell-comments-and-strings ispell-region ispell-change-dictionary
16012;;;;;; ispell-kill-ispell ispell-help ispell-pdict-save ispell-word 16016;;;;;; ispell-kill-ispell ispell-help ispell-pdict-save ispell-word
16013;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el" 16017;;;;;; ispell-personal-dictionary) "ispell" "textmodes/ispell.el"
16014;;;;;; (20787 12616 976036 0)) 16018;;;;;; (20847 51240 240216 0))
16015;;; Generated autoloads from textmodes/ispell.el 16019;;; Generated autoloads from textmodes/ispell.el
16016 16020
16017(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive)))) 16021(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
@@ -16492,7 +16496,7 @@ and the return value is the length of the conversion.
16492;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro 16496;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
16493;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter 16497;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
16494;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro kmacro-exec-ring-item) 16498;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro kmacro-exec-ring-item)
16495;;;;;; "kmacro" "kmacro.el" (20824 3367 300658 0)) 16499;;;;;; "kmacro" "kmacro.el" (20830 42150 757296 0))
16496;;; Generated autoloads from kmacro.el 16500;;; Generated autoloads from kmacro.el
16497 (global-set-key "\C-x(" 'kmacro-start-macro) 16501 (global-set-key "\C-x(" 'kmacro-start-macro)
16498 (global-set-key "\C-x)" 'kmacro-end-macro) 16502 (global-set-key "\C-x)" 'kmacro-end-macro)
@@ -16651,7 +16655,7 @@ Use \\[describe-mode] for more info.
16651 16655
16652;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string 16656;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string
16653;;;;;; lao-transcribe-single-roman-syllable-to-lao lao-compose-string) 16657;;;;;; lao-transcribe-single-roman-syllable-to-lao lao-compose-string)
16654;;;;;; "lao-util" "language/lao-util.el" (20709 26818 907104 0)) 16658;;;;;; "lao-util" "language/lao-util.el" (20826 45095 436233 0))
16655;;; Generated autoloads from language/lao-util.el 16659;;; Generated autoloads from language/lao-util.el
16656 16660
16657(autoload 'lao-compose-string "lao-util" "\ 16661(autoload 'lao-compose-string "lao-util" "\
@@ -16723,8 +16727,8 @@ coding system names is determined from `latex-inputenc-coding-alist'.
16723;;;*** 16727;;;***
16724 16728
16725;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display) 16729;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
16726;;;;;; "latin1-disp" "international/latin1-disp.el" (20709 26818 16730;;;;;; "latin1-disp" "international/latin1-disp.el" (20826 45095
16727;;;;;; 907104 0)) 16731;;;;;; 436233 0))
16728;;; Generated autoloads from international/latin1-disp.el 16732;;; Generated autoloads from international/latin1-disp.el
16729 16733
16730(defvar latin1-display nil "\ 16734(defvar latin1-display nil "\
@@ -16944,8 +16948,8 @@ done. Otherwise, it uses the current buffer.
16944 16948
16945;;;*** 16949;;;***
16946 16950
16947;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20709 16951;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20860
16948;;;;;; 26818 907104 0)) 16952;;;;;; 63270 684173 0))
16949;;; Generated autoloads from vc/log-view.el 16953;;; Generated autoloads from vc/log-view.el
16950 16954
16951(autoload 'log-view-mode "log-view" "\ 16955(autoload 'log-view-mode "log-view" "\
@@ -17053,7 +17057,7 @@ for further customization of the printer command.
17053;;;*** 17057;;;***
17054 17058
17055;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el" 17059;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
17056;;;;;; (20709 26818 907104 0)) 17060;;;;;; (20860 63270 684173 0))
17057;;; Generated autoloads from ls-lisp.el 17061;;; Generated autoloads from ls-lisp.el
17058 17062
17059(defvar ls-lisp-support-shell-wildcards t "\ 17063(defvar ls-lisp-support-shell-wildcards t "\
@@ -17320,8 +17324,8 @@ matches may be returned from the message body.
17320;;;*** 17324;;;***
17321 17325
17322;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup 17326;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup
17323;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20709 17327;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20847
17324;;;;;; 26818 907104 0)) 17328;;;;;; 51240 240216 0))
17325;;; Generated autoloads from mail/mailabbrev.el 17329;;; Generated autoloads from mail/mailabbrev.el
17326 17330
17327(defvar mail-abbrevs-mode nil "\ 17331(defvar mail-abbrevs-mode nil "\
@@ -17682,7 +17686,7 @@ recursion depth in the minibuffer prompt. This is only useful if
17682;;;;;; message-forward-make-body message-forward message-recover 17686;;;;;; message-forward-make-body message-forward message-recover
17683;;;;;; message-supersede message-cancel-news message-followup message-wide-reply 17687;;;;;; message-supersede message-cancel-news message-followup message-wide-reply
17684;;;;;; message-reply message-news message-mail message-mode) "message" 17688;;;;;; message-reply message-news message-mail message-mode) "message"
17685;;;;;; "gnus/message.el" (20808 15152 87827 0)) 17689;;;;;; "gnus/message.el" (20858 21542 723007 0))
17686;;; Generated autoloads from gnus/message.el 17690;;; Generated autoloads from gnus/message.el
17687 17691
17688(define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook) 17692(define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook)
@@ -18361,7 +18365,7 @@ Assume text has been decoded if DECODED is non-nil.
18361;;;*** 18365;;;***
18362 18366
18363;;;### (autoloads (mml-attach-file mml-to-mime) "mml" "gnus/mml.el" 18367;;;### (autoloads (mml-attach-file mml-to-mime) "mml" "gnus/mml.el"
18364;;;;;; (20745 310 425822 0)) 18368;;;;;; (20829 21286 719109 0))
18365;;; Generated autoloads from gnus/mml.el 18369;;; Generated autoloads from gnus/mml.el
18366 18370
18367(autoload 'mml-to-mime "mml" "\ 18371(autoload 'mml-to-mime "mml" "\
@@ -18560,7 +18564,7 @@ To test this function, evaluate:
18560 18564
18561;;;*** 18565;;;***
18562 18566
18563;;;### (autoloads (mpc) "mpc" "mpc.el" (20822 48073 524485 0)) 18567;;;### (autoloads (mpc) "mpc" "mpc.el" (20838 36262 626321 0))
18564;;; Generated autoloads from mpc.el 18568;;; Generated autoloads from mpc.el
18565 18569
18566(autoload 'mpc "mpc" "\ 18570(autoload 'mpc "mpc" "\
@@ -18748,7 +18752,7 @@ The default is 20. If LIMIT is negative, do not limit the listing.
18748;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion 18752;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion
18749;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist 18753;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist
18750;;;;;; truncate-string-to-width store-substring) "mule-util" "international/mule-util.el" 18754;;;;;; truncate-string-to-width store-substring) "mule-util" "international/mule-util.el"
18751;;;;;; (20709 26818 907104 0)) 18755;;;;;; (20826 45095 436233 0))
18752;;; Generated autoloads from international/mule-util.el 18756;;; Generated autoloads from international/mule-util.el
18753 18757
18754(defsubst string-to-list (string) "\ 18758(defsubst string-to-list (string) "\
@@ -18879,9 +18883,9 @@ per-character basis, this may not be accurate.
18879 18883
18880;;;*** 18884;;;***
18881 18885
18882;;;### (autoloads (advice-member-p advice-remove advice-add advice--add-function 18886;;;### (autoloads (advice-member-p advice-remove advice-add remove-function
18883;;;;;; add-function advice--buffer-local advice--remove-function) 18887;;;;;; advice--add-function add-function advice--buffer-local advice--remove-function)
18884;;;;;; "nadvice" "emacs-lisp/nadvice.el" (20785 57270 519804 0)) 18888;;;;;; "nadvice" "emacs-lisp/nadvice.el" (20851 48294 960738 0))
18885;;; Generated autoloads from emacs-lisp/nadvice.el 18889;;; Generated autoloads from emacs-lisp/nadvice.el
18886 18890
18887(autoload 'advice--remove-function "nadvice" "\ 18891(autoload 'advice--remove-function "nadvice" "\
@@ -18903,18 +18907,20 @@ call OLDFUN here:
18903`:before' (lambda (&rest r) (apply FUNCTION r) (apply OLDFUN r)) 18907`:before' (lambda (&rest r) (apply FUNCTION r) (apply OLDFUN r))
18904`:after' (lambda (&rest r) (prog1 (apply OLDFUN r) (apply FUNCTION r))) 18908`:after' (lambda (&rest r) (prog1 (apply OLDFUN r) (apply FUNCTION r)))
18905`:around' (lambda (&rest r) (apply FUNCTION OLDFUN r)) 18909`:around' (lambda (&rest r) (apply FUNCTION OLDFUN r))
18910`:override' (lambda (&rest r) (apply FUNCTION r))
18906`:before-while' (lambda (&rest r) (and (apply FUNCTION r) (apply OLDFUN r))) 18911`:before-while' (lambda (&rest r) (and (apply FUNCTION r) (apply OLDFUN r)))
18907`:before-until' (lambda (&rest r) (or (apply FUNCTION r) (apply OLDFUN r))) 18912`:before-until' (lambda (&rest r) (or (apply FUNCTION r) (apply OLDFUN r)))
18908`:after-while' (lambda (&rest r) (and (apply OLDFUN r) (apply FUNCTION r))) 18913`:after-while' (lambda (&rest r) (and (apply OLDFUN r) (apply FUNCTION r)))
18909`:after-until' (lambda (&rest r) (or (apply OLDFUN r) (apply FUNCTION r))) 18914`:after-until' (lambda (&rest r) (or (apply OLDFUN r) (apply FUNCTION r)))
18915`:filter-args' (lambda (&rest r) (apply OLDFUN (funcall FUNCTION r)))
18916`:filter-return'(lambda (&rest r) (funcall FUNCTION (apply OLDFUN r)))
18910If FUNCTION was already added, do nothing. 18917If FUNCTION was already added, do nothing.
18911PROPS is an alist of additional properties, among which the following have 18918PROPS is an alist of additional properties, among which the following have
18912a special meaning: 18919a special meaning:
18913- `name': a string or symbol. It can be used to refer to this piece of advice. 18920- `name': a string or symbol. It can be used to refer to this piece of advice.
18914 18921
18915PLACE cannot be a simple variable. Instead it should either be 18922If PLACE is a simple variable, only its global value will be affected.
18916\(default-value 'VAR) or (local 'VAR) depending on whether FUNCTION 18923Use (local 'VAR) if you want to apply FUNCTION to VAR buffer-locally.
18917should be applied to VAR buffer-locally or globally.
18918 18924
18919If one of FUNCTION or OLDFUN is interactive, then the resulting function 18925If one of FUNCTION or OLDFUN is interactive, then the resulting function
18920is also interactive. There are 3 cases: 18926is also interactive. There are 3 cases:
@@ -18931,6 +18937,14 @@ is also interactive. There are 3 cases:
18931 18937
18932\(fn WHERE REF FUNCTION PROPS)" nil nil) 18938\(fn WHERE REF FUNCTION PROPS)" nil nil)
18933 18939
18940(autoload 'remove-function "nadvice" "\
18941Remove the FUNCTION piece of advice from PLACE.
18942If FUNCTION was not added to PLACE, do nothing.
18943Instead of FUNCTION being the actual function, it can also be the `name'
18944of the piece of advice.
18945
18946\(fn PLACE FUNCTION)" nil t)
18947
18934(autoload 'advice-add "nadvice" "\ 18948(autoload 'advice-add "nadvice" "\
18935Like `add-function' but for the function named SYMBOL. 18949Like `add-function' but for the function named SYMBOL.
18936Contrary to `add-function', this will properly handle the cases where SYMBOL 18950Contrary to `add-function', this will properly handle the cases where SYMBOL
@@ -19420,11 +19434,21 @@ the variable `nxml-enabled-unicode-blocks'.
19420 19434
19421;;;*** 19435;;;***
19422 19436
19423;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el" 19437;;;### (autoloads (inferior-octave octave-mode) "octave" "progmodes/octave.el"
19424;;;;;; (20709 26818 907104 0)) 19438;;;;;; (20864 60326 774861 0))
19425;;; Generated autoloads from progmodes/octave-inf.el 19439;;; Generated autoloads from progmodes/octave.el
19440
19441(autoload 'octave-mode "octave" "\
19442Major mode for editing Octave code.
19426 19443
19427(autoload 'inferior-octave "octave-inf" "\ 19444Octave is a high-level language, primarily intended for numerical
19445computations. It provides a convenient command line interface
19446for solving linear and nonlinear problems numerically. Function
19447definitions can also be stored in files and used in batch mode.
19448
19449\(fn)" t nil)
19450
19451(autoload 'inferior-octave "octave" "\
19428Run an inferior Octave process, I/O via `inferior-octave-buffer'. 19452Run an inferior Octave process, I/O via `inferior-octave-buffer'.
19429This buffer is put in Inferior Octave mode. See `inferior-octave-mode'. 19453This buffer is put in Inferior Octave mode. See `inferior-octave-mode'.
19430 19454
@@ -19443,91 +19467,8 @@ startup file, `~/.emacs-octave'.
19443 19467
19444;;;*** 19468;;;***
19445 19469
19446;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
19447;;;;;; (20709 26818 907104 0))
19448;;; Generated autoloads from progmodes/octave-mod.el
19449
19450(autoload 'octave-mode "octave-mod" "\
19451Major mode for editing Octave code.
19452
19453This mode makes it easier to write Octave code by helping with
19454indentation, doing some of the typing for you (with Abbrev mode) and by
19455showing keywords, comments, strings, etc. in different faces (with
19456Font Lock mode on terminals that support it).
19457
19458Octave itself is a high-level language, primarily intended for numerical
19459computations. It provides a convenient command line interface for
19460solving linear and nonlinear problems numerically. Function definitions
19461can also be stored in files, and it can be used in a batch mode (which
19462is why you need this mode!).
19463
19464The latest released version of Octave is always available via anonymous
19465ftp from ftp.octave.org in the directory `/pub/octave'. Complete
19466source and binaries for several popular systems are available.
19467
19468Type \\[list-abbrevs] to display the built-in abbrevs for Octave keywords.
19469
19470Keybindings
19471===========
19472
19473\\{octave-mode-map}
19474
19475Variables you can use to customize Octave mode
19476==============================================
19477
19478`octave-blink-matching-block'
19479 Non-nil means show matching begin of block when inserting a space,
19480 newline or semicolon after an else or end keyword. Default is t.
19481
19482`octave-block-offset'
19483 Extra indentation applied to statements in block structures.
19484 Default is 2.
19485
19486`octave-continuation-offset'
19487 Extra indentation applied to Octave continuation lines.
19488 Default is 4.
19489
19490`octave-continuation-string'
19491 String used for Octave continuation lines.
19492 Default is a backslash.
19493
19494`octave-send-echo-input'
19495 Non-nil means always display `inferior-octave-buffer' after sending a
19496 command to the inferior Octave process.
19497
19498`octave-send-line-auto-forward'
19499 Non-nil means always go to the next unsent line of Octave code after
19500 sending a line to the inferior Octave process.
19501
19502`octave-send-echo-input'
19503 Non-nil means echo input sent to the inferior Octave process.
19504
19505Turning on Octave mode runs the hook `octave-mode-hook'.
19506
19507To begin using this mode for all `.m' files that you edit, add the
19508following lines to your init file:
19509
19510 (add-to-list 'auto-mode-alist '(\"\\\\.m\\\\'\" . octave-mode))
19511
19512To automatically turn on the abbrev and auto-fill features,
19513add the following lines to your init file as well:
19514
19515 (add-hook 'octave-mode-hook
19516 (lambda ()
19517 (abbrev-mode 1)
19518 (auto-fill-mode 1)))
19519
19520To submit a problem report, enter \\[octave-submit-bug-report] from an Octave mode buffer.
19521This automatically sets up a mail buffer with version information
19522already added. You just need to add a description of the problem,
19523including a reproducible test case and send the message.
19524
19525\(fn)" t nil)
19526
19527;;;***
19528
19529;;;### (autoloads (opascal-mode) "opascal" "progmodes/opascal.el" 19470;;;### (autoloads (opascal-mode) "opascal" "progmodes/opascal.el"
19530;;;;;; (20746 21181 635406 0)) 19471;;;;;; (20858 21542 723007 0))
19531;;; Generated autoloads from progmodes/opascal.el 19472;;; Generated autoloads from progmodes/opascal.el
19532 19473
19533(define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4") 19474(define-obsolete-function-alias 'delphi-mode 'opascal-mode "24.4")
@@ -19558,14 +19499,8 @@ Customization:
19558 19499
19559Coloring: 19500Coloring:
19560 19501
19561 `opascal-comment-face' (default font-lock-comment-face)
19562 Face used to color OPascal comments.
19563 `opascal-string-face' (default font-lock-string-face)
19564 Face used to color OPascal strings.
19565 `opascal-keyword-face' (default font-lock-keyword-face) 19502 `opascal-keyword-face' (default font-lock-keyword-face)
19566 Face used to color OPascal keywords. 19503 Face used to color OPascal keywords.
19567 `opascal-other-face' (default nil)
19568 Face used to color everything else.
19569 19504
19570Turning on OPascal mode calls the value of the variable `opascal-mode-hook' 19505Turning on OPascal mode calls the value of the variable `opascal-mode-hook'
19571with no args, if that value is non-nil. 19506with no args, if that value is non-nil.
@@ -19806,7 +19741,7 @@ Call the customize function with org as argument.
19806;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views 19741;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views
19807;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda 19742;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda
19808;;;;;; org-agenda org-toggle-sticky-agenda) "org-agenda" "org/org-agenda.el" 19743;;;;;; org-agenda org-toggle-sticky-agenda) "org-agenda" "org/org-agenda.el"
19809;;;;;; (20783 15545 430927 0)) 19744;;;;;; (20847 51240 240216 0))
19810;;; Generated autoloads from org/org-agenda.el 19745;;; Generated autoloads from org/org-agenda.el
19811 19746
19812(autoload 'org-toggle-sticky-agenda "org-agenda" "\ 19747(autoload 'org-toggle-sticky-agenda "org-agenda" "\
@@ -20268,7 +20203,7 @@ See the command `outline-mode' for more information on this mode.
20268;;;### (autoloads (list-packages describe-package package-initialize 20203;;;### (autoloads (list-packages describe-package package-initialize
20269;;;;;; package-refresh-contents package-install-file package-install-from-buffer 20204;;;;;; package-refresh-contents package-install-file package-install-from-buffer
20270;;;;;; package-install package-enable-at-startup) "package" "emacs-lisp/package.el" 20205;;;;;; package-install package-enable-at-startup) "package" "emacs-lisp/package.el"
20271;;;;;; (20764 51137 83502 0)) 20206;;;;;; (20860 63270 684173 0))
20272;;; Generated autoloads from emacs-lisp/package.el 20207;;; Generated autoloads from emacs-lisp/package.el
20273 20208
20274(defvar package-enable-at-startup t "\ 20209(defvar package-enable-at-startup t "\
@@ -20646,6 +20581,26 @@ Includes files as well as host names followed by a colon.
20646 20581
20647;;;*** 20582;;;***
20648 20583
20584;;;### (autoloads (pcomplete/ack pcomplete/tlmgr) "pcmpl-x" "pcmpl-x.el"
20585;;;;;; (20837 15398 184639 0))
20586;;; Generated autoloads from pcmpl-x.el
20587
20588(autoload 'pcomplete/tlmgr "pcmpl-x" "\
20589Completion for the `tlmgr' command.
20590
20591\(fn)" nil nil)
20592
20593(autoload 'pcomplete/ack "pcmpl-x" "\
20594Completion for the `ack' command.
20595Start an argument with '-' to complete short options and '--' for
20596long options.
20597
20598\(fn)" nil nil)
20599
20600(defalias 'pcomplete/ack-grep 'pcomplete/ack)
20601
20602;;;***
20603
20649;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list 20604;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
20650;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete 20605;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
20651;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20709 20606;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20709
@@ -21699,7 +21654,7 @@ Open profile FILENAME.
21699;;;*** 21654;;;***
21700 21655
21701;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog" 21656;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog"
21702;;;;;; "progmodes/prolog.el" (20791 9657 561026 0)) 21657;;;;;; "progmodes/prolog.el" (20851 48294 960738 0))
21703;;; Generated autoloads from progmodes/prolog.el 21658;;; Generated autoloads from progmodes/prolog.el
21704 21659
21705(autoload 'prolog-mode "prolog" "\ 21660(autoload 'prolog-mode "prolog" "\
@@ -21996,7 +21951,7 @@ If EXTENSION is any other symbol, it is ignored.
21996;;;*** 21951;;;***
21997 21952
21998;;;### (autoloads (python-mode run-python) "python" "progmodes/python.el" 21953;;;### (autoloads (python-mode run-python) "python" "progmodes/python.el"
21999;;;;;; (20824 3367 300658 0)) 21954;;;;;; (20850 27430 515630 0))
22000;;; Generated autoloads from progmodes/python.el 21955;;; Generated autoloads from progmodes/python.el
22001 21956
22002(add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode)) 21957(add-to-list 'auto-mode-alist (cons (purecopy "\\.py\\'") 'python-mode))
@@ -22615,8 +22570,8 @@ For true \"word wrap\" behavior, use `visual-line-mode' instead.
22615;;;*** 22570;;;***
22616 22571
22617;;;### (autoloads (reftex-reset-scanning-information reftex-mode 22572;;;### (autoloads (reftex-reset-scanning-information reftex-mode
22618;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20777 63161 22573;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20843 54187
22619;;;;;; 848428 0)) 22574;;;;;; 671468 0))
22620;;; Generated autoloads from textmodes/reftex.el 22575;;; Generated autoloads from textmodes/reftex.el
22621 22576
22622(autoload 'turn-on-reftex "reftex" "\ 22577(autoload 'turn-on-reftex "reftex" "\
@@ -22666,7 +22621,7 @@ This enforces rescanning the buffer on next use.
22666;;;*** 22621;;;***
22667 22622
22668;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el" 22623;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
22669;;;;;; (20734 30007 218637 0)) 22624;;;;;; (20838 36262 626321 0))
22670;;; Generated autoloads from textmodes/reftex-cite.el 22625;;; Generated autoloads from textmodes/reftex-cite.el
22671 22626
22672(autoload 'reftex-citation "reftex-cite" "\ 22627(autoload 'reftex-citation "reftex-cite" "\
@@ -22746,7 +22701,7 @@ Here are all local bindings.
22746;;;*** 22701;;;***
22747 22702
22748;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el" 22703;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
22749;;;;;; (20709 26818 907104 0)) 22704;;;;;; (20858 21542 723007 0))
22750;;; Generated autoloads from textmodes/reftex-parse.el 22705;;; Generated autoloads from textmodes/reftex-parse.el
22751 22706
22752(autoload 'reftex-all-document-files "reftex-parse" "\ 22707(autoload 'reftex-all-document-files "reftex-parse" "\
@@ -22758,8 +22713,8 @@ of master file.
22758 22713
22759;;;*** 22714;;;***
22760 22715
22761;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20734 22716;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20858
22762;;;;;; 30007 218637 0)) 22717;;;;;; 21542 723007 0))
22763;;; Generated autoloads from textmodes/reftex-vars.el 22718;;; Generated autoloads from textmodes/reftex-vars.el
22764(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) 22719(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
22765(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x)))) 22720(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
@@ -22800,7 +22755,7 @@ This means the number of non-shy regexp grouping constructs
22800 22755
22801;;;### (autoloads (remember-diary-extract-entries remember-clipboard 22756;;;### (autoloads (remember-diary-extract-entries remember-clipboard
22802;;;;;; remember-other-frame remember) "remember" "textmodes/remember.el" 22757;;;;;; remember-other-frame remember) "remember" "textmodes/remember.el"
22803;;;;;; (20799 169 640767 0)) 22758;;;;;; (20859 42406 744769 0))
22804;;; Generated autoloads from textmodes/remember.el 22759;;; Generated autoloads from textmodes/remember.el
22805 22760
22806(autoload 'remember "remember" "\ 22761(autoload 'remember "remember" "\
@@ -23466,7 +23421,7 @@ for modes derived from Text mode, like Mail mode.
23466;;;*** 23421;;;***
23467 23422
23468;;;### (autoloads (ruby-mode) "ruby-mode" "progmodes/ruby-mode.el" 23423;;;### (autoloads (ruby-mode) "ruby-mode" "progmodes/ruby-mode.el"
23469;;;;;; (20792 30519 8548 0)) 23424;;;;;; (20845 9511 656701 0))
23470;;; Generated autoloads from progmodes/ruby-mode.el 23425;;; Generated autoloads from progmodes/ruby-mode.el
23471 23426
23472(autoload 'ruby-mode "ruby-mode" "\ 23427(autoload 'ruby-mode "ruby-mode" "\
@@ -24482,7 +24437,7 @@ To work around that, do:
24482;;;*** 24437;;;***
24483 24438
24484;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el" 24439;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
24485;;;;;; (20791 9657 561026 0)) 24440;;;;;; (20850 27430 515630 0))
24486;;; Generated autoloads from progmodes/sh-script.el 24441;;; Generated autoloads from progmodes/sh-script.el
24487(put 'sh-shell 'safe-local-variable 'symbolp) 24442(put 'sh-shell 'safe-local-variable 'symbolp)
24488 24443
@@ -24546,7 +24501,7 @@ with your script for an edit-interpret-debug cycle.
24546;;;*** 24501;;;***
24547 24502
24548;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el" 24503;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
24549;;;;;; (20709 26818 907104 0)) 24504;;;;;; (20858 21542 723007 0))
24550;;; Generated autoloads from emacs-lisp/shadow.el 24505;;; Generated autoloads from emacs-lisp/shadow.el
24551 24506
24552(autoload 'list-load-path-shadows "shadow" "\ 24507(autoload 'list-load-path-shadows "shadow" "\
@@ -24564,7 +24519,7 @@ the earlier.
24564 24519
24565For example, suppose `load-path' is set to 24520For example, suppose `load-path' is set to
24566 24521
24567\(\"/usr/gnu/emacs/site-lisp\" \"/usr/gnu/emacs/share/emacs/19.30/lisp\") 24522\(\"/usr/share/emacs/site-lisp\" \"/usr/share/emacs/24.3/lisp\")
24568 24523
24569and that each of these directories contains a file called XXX.el. Then 24524and that each of these directories contains a file called XXX.el. Then
24570XXX.el in the site-lisp directory is referred to by all of: 24525XXX.el in the site-lisp directory is referred to by all of:
@@ -24576,9 +24531,9 @@ the second is loaded explicitly via `load-file').
24576When not intended, such shadowings can be the source of subtle 24531When not intended, such shadowings can be the source of subtle
24577problems. For example, the above situation may have arisen because the 24532problems. For example, the above situation may have arisen because the
24578XXX package was not distributed with versions of Emacs prior to 24533XXX package was not distributed with versions of Emacs prior to
2457919.30. An Emacs maintainer downloaded XXX from elsewhere and installed 2453424.3. A system administrator downloaded XXX from elsewhere and installed
24580it. Later, XXX was updated and included in the Emacs distribution. 24535it. Later, XXX was updated and included in the Emacs distribution.
24581Unless the Emacs maintainer checks for this, the new version of XXX 24536Unless the system administrator checks for this, the new version of XXX
24582will be hidden behind the old (which may no longer work with the new 24537will be hidden behind the old (which may no longer work with the new
24583Emacs version). 24538Emacs version).
24584 24539
@@ -24684,8 +24639,8 @@ Otherwise, one argument `-i' is passed to the shell.
24684 24639
24685;;;*** 24640;;;***
24686 24641
24687;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20791 24642;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20845
24688;;;;;; 9657 561026 0)) 24643;;;;;; 9511 656701 0))
24689;;; Generated autoloads from gnus/shr.el 24644;;; Generated autoloads from gnus/shr.el
24690 24645
24691(autoload 'shr-insert-document "shr" "\ 24646(autoload 'shr-insert-document "shr" "\
@@ -27574,8 +27529,8 @@ In dired, call the setroot program on the image at point.
27574;;;;;; tibetan-post-read-conversion tibetan-compose-buffer tibetan-decompose-buffer 27529;;;;;; tibetan-post-read-conversion tibetan-compose-buffer tibetan-decompose-buffer
27575;;;;;; tibetan-decompose-string tibetan-decompose-region tibetan-compose-region 27530;;;;;; tibetan-decompose-string tibetan-decompose-region tibetan-compose-region
27576;;;;;; tibetan-compose-string tibetan-transcription-to-tibetan tibetan-tibetan-to-transcription 27531;;;;;; tibetan-compose-string tibetan-transcription-to-tibetan tibetan-tibetan-to-transcription
27577;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20709 27532;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20826
27578;;;;;; 26818 907104 0)) 27533;;;;;; 45095 436233 0))
27579;;; Generated autoloads from language/tibet-util.el 27534;;; Generated autoloads from language/tibet-util.el
27580 27535
27581(autoload 'tibetan-char-p "tibet-util" "\ 27536(autoload 'tibetan-char-p "tibet-util" "\
@@ -28269,8 +28224,8 @@ to a tcp server on another machine.
28269;;;*** 28224;;;***
28270 28225
28271;;;### (autoloads (trace-function-background trace-function-foreground 28226;;;### (autoloads (trace-function-background trace-function-foreground
28272;;;;;; trace-buffer) "trace" "emacs-lisp/trace.el" (20727 56759 28227;;;;;; trace-values trace-buffer) "trace" "emacs-lisp/trace.el"
28273;;;;;; 628211 0)) 28228;;;;;; (20842 33318 816618 0))
28274;;; Generated autoloads from emacs-lisp/trace.el 28229;;; Generated autoloads from emacs-lisp/trace.el
28275 28230
28276(defvar trace-buffer "*trace-output*" "\ 28231(defvar trace-buffer "*trace-output*" "\
@@ -28278,6 +28233,12 @@ Trace output will by default go to that buffer.")
28278 28233
28279(custom-autoload 'trace-buffer "trace" t) 28234(custom-autoload 'trace-buffer "trace" t)
28280 28235
28236(autoload 'trace-values "trace" "\
28237Helper function to get internal values.
28238You can call this function to add internal values in the trace buffer.
28239
28240\(fn &rest VALUES)" nil nil)
28241
28281(autoload 'trace-function-foreground "trace" "\ 28242(autoload 'trace-function-foreground "trace" "\
28282Traces FUNCTION with trace output going to BUFFER. 28243Traces FUNCTION with trace output going to BUFFER.
28283For every call of FUNCTION Lisp-style trace messages that display argument 28244For every call of FUNCTION Lisp-style trace messages that display argument
@@ -28305,7 +28266,7 @@ changing the window configuration.
28305;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion 28266;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
28306;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers 28267;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
28307;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp" 28268;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp"
28308;;;;;; "net/tramp.el" (20824 3367 300658 0)) 28269;;;;;; "net/tramp.el" (20854 24486 190633 0))
28309;;; Generated autoloads from net/tramp.el 28270;;; Generated autoloads from net/tramp.el
28310 28271
28311(defvar tramp-mode t "\ 28272(defvar tramp-mode t "\
@@ -29551,8 +29512,8 @@ If FILE-NAME is non-nil, save the result to FILE-NAME.
29551;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers 29512;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers
29552;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff 29513;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff
29553;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook 29514;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook
29554;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20752 29515;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20855
29555;;;;;; 26669 524456 0)) 29516;;;;;; 45357 683214 0))
29556;;; Generated autoloads from vc/vc.el 29517;;; Generated autoloads from vc/vc.el
29557 29518
29558(defvar vc-checkout-hook nil "\ 29519(defvar vc-checkout-hook nil "\
@@ -29882,8 +29843,8 @@ mode-specific menu. `vc-annotate-color-map' and
29882 29843
29883;;;*** 29844;;;***
29884 29845
29885;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20820 6311 856169 29846;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20856 32310 242920
29886;;;;;; 0)) 29847;;;;;; 705000))
29887;;; Generated autoloads from vc/vc-bzr.el 29848;;; Generated autoloads from vc/vc-bzr.el
29888 29849
29889(defconst vc-bzr-admin-dirname ".bzr" "\ 29850(defconst vc-bzr-admin-dirname ".bzr" "\
@@ -29899,7 +29860,7 @@ Name of the format file in a .bzr directory.")
29899 29860
29900;;;*** 29861;;;***
29901 29862
29902;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20748 62911 684442 29863;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20855 45357 683214
29903;;;;;; 0)) 29864;;;;;; 0))
29904;;; Generated autoloads from vc/vc-cvs.el 29865;;; Generated autoloads from vc/vc-cvs.el
29905(defun vc-cvs-registered (f) 29866(defun vc-cvs-registered (f)
@@ -29976,7 +29937,7 @@ These are the commands available for use in the file status buffer:
29976;;;*** 29937;;;***
29977 29938
29978;;;### (autoloads (vc-do-command) "vc-dispatcher" "vc/vc-dispatcher.el" 29939;;;### (autoloads (vc-do-command) "vc-dispatcher" "vc/vc-dispatcher.el"
29979;;;;;; (20709 26818 907104 0)) 29940;;;;;; (20851 48294 960738 0))
29980;;; Generated autoloads from vc/vc-dispatcher.el 29941;;; Generated autoloads from vc/vc-dispatcher.el
29981 29942
29982(autoload 'vc-do-command "vc-dispatcher" "\ 29943(autoload 'vc-do-command "vc-dispatcher" "\
@@ -29999,7 +29960,7 @@ case, and the process object in the asynchronous case.
29999 29960
30000;;;*** 29961;;;***
30001 29962
30002;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20748 62911 684442 29963;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20855 45357 683214
30003;;;;;; 0)) 29964;;;;;; 0))
30004;;; Generated autoloads from vc/vc-git.el 29965;;; Generated autoloads from vc/vc-git.el
30005 (defun vc-git-registered (file) 29966 (defun vc-git-registered (file)
@@ -30011,7 +29972,7 @@ case, and the process object in the asynchronous case.
30011 29972
30012;;;*** 29973;;;***
30013 29974
30014;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20748 62911 684442 0)) 29975;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20855 45357 683214 0))
30015;;; Generated autoloads from vc/vc-hg.el 29976;;; Generated autoloads from vc/vc-hg.el
30016 (defun vc-hg-registered (file) 29977 (defun vc-hg-registered (file)
30017 "Return non-nil if FILE is registered with hg." 29978 "Return non-nil if FILE is registered with hg."
@@ -30022,7 +29983,7 @@ case, and the process object in the asynchronous case.
30022 29983
30023;;;*** 29984;;;***
30024 29985
30025;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20748 62911 684442 29986;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20855 45357 683214
30026;;;;;; 0)) 29987;;;;;; 0))
30027;;; Generated autoloads from vc/vc-mtn.el 29988;;; Generated autoloads from vc/vc-mtn.el
30028 29989
@@ -30040,7 +30001,7 @@ Name of the monotone directory's format file.")
30040;;;*** 30001;;;***
30041 30002
30042;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc/vc-rcs.el" 30003;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc/vc-rcs.el"
30043;;;;;; (20709 26818 907104 0)) 30004;;;;;; (20855 45357 683214 0))
30044;;; Generated autoloads from vc/vc-rcs.el 30005;;; Generated autoloads from vc/vc-rcs.el
30045 30006
30046(defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\ 30007(defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
@@ -30054,7 +30015,7 @@ For a description of possible values, see `vc-check-master-templates'.")
30054;;;*** 30015;;;***
30055 30016
30056;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc/vc-sccs.el" 30017;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc/vc-sccs.el"
30057;;;;;; (20709 26818 907104 0)) 30018;;;;;; (20855 45357 683214 0))
30058;;; Generated autoloads from vc/vc-sccs.el 30019;;; Generated autoloads from vc/vc-sccs.el
30059 30020
30060(defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\ 30021(defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
@@ -30072,7 +30033,7 @@ find any project directory." (let ((project-dir (getenv "PROJECTDIR")) dirs dir)
30072 30033
30073;;;*** 30034;;;***
30074 30035
30075;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20760 54070 584283 30036;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20855 45357 683214
30076;;;;;; 0)) 30037;;;;;; 0))
30077;;; Generated autoloads from vc/vc-svn.el 30038;;; Generated autoloads from vc/vc-svn.el
30078 (defun vc-svn-registered (f) 30039 (defun vc-svn-registered (f)
@@ -30894,7 +30855,7 @@ Syntax table and abbrevs while in vi mode remain as they were in Emacs.
30894;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion 30855;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
30895;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer 30856;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
30896;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util" 30857;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
30897;;;;;; "language/viet-util.el" (20709 26818 907104 0)) 30858;;;;;; "language/viet-util.el" (20826 45095 436233 0))
30898;;; Generated autoloads from language/viet-util.el 30859;;; Generated autoloads from language/viet-util.el
30899 30860
30900(autoload 'viet-encode-viscii-char "viet-util" "\ 30861(autoload 'viet-encode-viscii-char "viet-util" "\
@@ -31390,8 +31351,8 @@ in certain major modes.
31390;;;### (autoloads (whitespace-report-region whitespace-report whitespace-cleanup-region 31351;;;### (autoloads (whitespace-report-region whitespace-report whitespace-cleanup-region
31391;;;;;; whitespace-cleanup global-whitespace-toggle-options whitespace-toggle-options 31352;;;;;; whitespace-cleanup global-whitespace-toggle-options whitespace-toggle-options
31392;;;;;; global-whitespace-newline-mode global-whitespace-mode whitespace-newline-mode 31353;;;;;; global-whitespace-newline-mode global-whitespace-mode whitespace-newline-mode
31393;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20809 36008 31354;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20831 63016
31394;;;;;; 682209 0)) 31355;;;;;; 738579 0))
31395;;; Generated autoloads from whitespace.el 31356;;; Generated autoloads from whitespace.el
31396 31357
31397(autoload 'whitespace-mode "whitespace" "\ 31358(autoload 'whitespace-mode "whitespace" "\
@@ -31917,8 +31878,8 @@ Default MODIFIER is 'shift.
31917 31878
31918;;;*** 31879;;;***
31919 31880
31920;;;### (autoloads (winner-mode) "winner" "winner.el" (20709 26818 31881;;;### (autoloads (winner-mode) "winner" "winner.el" (20849 6570
31921;;;;;; 907104 0)) 31882;;;;;; 598687 0))
31922;;; Generated autoloads from winner.el 31883;;; Generated autoloads from winner.el
31923 31884
31924(defvar winner-mode nil "\ 31885(defvar winner-mode nil "\
@@ -32466,8 +32427,8 @@ Zone out, completely.
32466;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" 32427;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el"
32467;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" 32428;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el"
32468;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el" 32429;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-common-fns.el"
32469;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (20825 24458 310780 32430;;;;;; "w32-fns.el" "w32-vars.el" "x-dnd.el") (20864 60345 274595
32470;;;;;; 797000)) 32431;;;;;; 113000))
32471 32432
32472;;;*** 32433;;;***
32473 32434
diff --git a/lisp/ls-lisp.el b/lisp/ls-lisp.el
index 70ee4394b88..60d6b7b7ba5 100644
--- a/lisp/ls-lisp.el
+++ b/lisp/ls-lisp.el
@@ -404,6 +404,13 @@ not contain `d', so that a full listing is expected."
404 ;; the wildcard; let's say something similar. 404 ;; the wildcard; let's say something similar.
405 (insert "(No match)\n")) 405 (insert "(No match)\n"))
406 (insert (format "total %.0f\n" (fceiling (/ sum 1024.0)))))) 406 (insert (format "total %.0f\n" (fceiling (/ sum 1024.0))))))
407 ;; dired-insert-directory exprects to find point after the
408 ;; text. But if the listinmg is empty, as e.g. in empty
409 ;; directories with -a removed from switches, point will be
410 ;; before the inserted text, and dired-insert-directory will
411 ;; not indent the listing correctly. Going to the end of the
412 ;; buffer fixes that.
413 (unless files (goto-char (point-max)))
407 (if (memq ?R switches) 414 (if (memq ?R switches)
408 ;; List the contents of all directories recursively. 415 ;; List the contents of all directories recursively.
409 ;; cadr of each element of `file-alist' is t for 416 ;; cadr of each element of `file-alist' is t for
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 4fc270792fc..6a23da1f2cd 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -6475,6 +6475,52 @@ comment at the start of cc-engine.el for more info."
6475 (c-go-list-forward) 6475 (c-go-list-forward)
6476 t))) 6476 t)))
6477 6477
6478(defun c-back-over-member-initializers ()
6479 ;; Test whether we are in a C++ member initializer list, and if so, go back
6480 ;; to the introducing ":", returning the position of the opening paren of
6481 ;; the function's arglist. Otherwise return nil, leaving point unchanged.
6482 (let ((here (point))
6483 (paren-state (c-parse-state))
6484 res)
6485
6486 (setq res
6487 (catch 'done
6488 (if (not (c-at-toplevel-p))
6489 (progn
6490 (while (not (c-at-toplevel-p))
6491 (goto-char (c-pull-open-brace paren-state)))
6492 (c-backward-syntactic-ws)
6493 (when (not (c-simple-skip-symbol-backward))
6494 (throw 'done nil))
6495 (c-backward-syntactic-ws))
6496 (c-backward-syntactic-ws)
6497 (when (memq (char-before) '(?\) ?}))
6498 (when (not (c-go-list-backward))
6499 (throw 'done nil))
6500 (c-backward-syntactic-ws))
6501 (when (c-simple-skip-symbol-backward)
6502 (c-backward-syntactic-ws)))
6503
6504 (while (eq (char-before) ?,)
6505 (backward-char)
6506 (c-backward-syntactic-ws)
6507
6508 (when (not (memq (char-before) '(?\) ?})))
6509 (throw 'done nil))
6510 (when (not (c-go-list-backward))
6511 (throw 'done nil))
6512 (c-backward-syntactic-ws)
6513 (when (not (c-simple-skip-symbol-backward))
6514 (throw 'done nil))
6515 (c-backward-syntactic-ws))
6516
6517 (and
6518 (eq (char-before) ?:)
6519 (c-just-after-func-arglist-p))))
6520
6521 (or res (goto-char here))
6522 res))
6523
6478 6524
6479;; Handling of large scale constructs like statements and declarations. 6525;; Handling of large scale constructs like statements and declarations.
6480 6526
@@ -9677,18 +9723,13 @@ comment at the start of cc-engine.el for more info."
9677 ;; 2007-11-09) 9723 ;; 2007-11-09)
9678 )))) 9724 ))))
9679 9725
9680 ;; CASE 5B: After a function header but before the body (or 9726 ;; CASE 5R: Member init list. (Used to be part of CASE 5B.1)
9681 ;; the ending semicolon if there's no body). 9727 ;; Note there is no limit on the backward search here, since member
9728 ;; init lists can, in practice, be very large.
9682 ((save-excursion 9729 ((save-excursion
9683 (when (setq placeholder (c-just-after-func-arglist-p 9730 (when (setq placeholder (c-back-over-member-initializers))
9684 (max lim (c-determine-limit 500))))
9685 (setq tmp-pos (point)))) 9731 (setq tmp-pos (point))))
9686 (cond 9732 (if (= (c-point 'bosws) (1+ tmp-pos))
9687
9688 ;; CASE 5B.1: Member init list.
9689 ((eq (char-after tmp-pos) ?:)
9690 (if (or (>= tmp-pos indent-point)
9691 (= (c-point 'bosws) (1+ tmp-pos)))
9692 (progn 9733 (progn
9693 ;; There is no preceding member init clause. 9734 ;; There is no preceding member init clause.
9694 ;; Indent relative to the beginning of indentation 9735 ;; Indent relative to the beginning of indentation
@@ -9701,6 +9742,23 @@ comment at the start of cc-engine.el for more info."
9701 (c-forward-syntactic-ws) 9742 (c-forward-syntactic-ws)
9702 (c-add-syntax 'member-init-cont (point)))) 9743 (c-add-syntax 'member-init-cont (point))))
9703 9744
9745 ;; CASE 5B: After a function header but before the body (or
9746 ;; the ending semicolon if there's no body).
9747 ((save-excursion
9748 (when (setq placeholder (c-just-after-func-arglist-p
9749 (max lim (c-determine-limit 500))))
9750 (setq tmp-pos (point))))
9751 (cond
9752
9753 ;; CASE 5B.1: Member init list.
9754 ((eq (char-after tmp-pos) ?:)
9755 ;; There is no preceding member init clause.
9756 ;; Indent relative to the beginning of indentation
9757 ;; for the topmost-intro line that contains the
9758 ;; prototype's open paren.
9759 (goto-char placeholder)
9760 (c-add-syntax 'member-init-intro (c-point 'boi)))
9761
9704 ;; CASE 5B.2: K&R arg decl intro 9762 ;; CASE 5B.2: K&R arg decl intro
9705 ((and c-recognize-knr-p 9763 ((and c-recognize-knr-p
9706 (c-in-knr-argdecl lim)) 9764 (c-in-knr-argdecl lim))
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 0e540ea348a..4b02645e463 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -1,4 +1,4 @@
1;;; octave.el --- editing octave source files under emacs 1;;; octave.el --- editing octave source files under emacs -*- lexical-binding: t; -*-
2 2
3;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1997, 2001-2013 Free Software Foundation, Inc.
4 4
@@ -34,63 +34,42 @@
34;;; Code: 34;;; Code:
35(require 'comint) 35(require 'comint)
36 36
37;;; For emacs < 24.3.
38(require 'newcomment)
39(eval-when-compile
40 (unless (fboundp 'setq-local)
41 (defmacro setq-local (var val)
42 "Set variable VAR to value VAL in current buffer."
43 (list 'set (list 'make-local-variable (list 'quote var)) val))))
44
37(defgroup octave nil 45(defgroup octave nil
38 "Editing Octave code." 46 "Editing Octave code."
39 :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces) 47 :link '(custom-group-link :tag "Font Lock Faces group" font-lock-faces)
40 :group 'languages) 48 :group 'languages)
41 49
42(defconst octave-maintainer-address 50(define-obsolete-function-alias 'octave-submit-bug-report
43 "Kurt Hornik <Kurt.Hornik@wu-wien.ac.at>, bug-gnu-emacs@gnu.org" 51 'report-emacs-bug "24.4")
44 "Current maintainer of the Emacs Octave package.") 52
45 53(define-abbrev-table 'octave-abbrev-table nil
46(define-abbrev-table 'octave-abbrev-table
47 (mapcar (lambda (e) (append e '(nil 0 t)))
48 '(("`a" "all_va_args")
49 ("`b" "break")
50 ("`cs" "case")
51 ("`ca" "catch")
52 ("`c" "continue")
53 ("`el" "else")
54 ("`eli" "elseif")
55 ("`et" "end_try_catch")
56 ("`eu" "end_unwind_protect")
57 ("`ef" "endfor")
58 ("`efu" "endfunction")
59 ("`ei" "endif")
60 ("`es" "endswitch")
61 ("`ew" "endwhile")
62 ("`f" "for")
63 ("`fu" "function")
64 ("`gl" "global")
65 ("`gp" "gplot")
66 ("`gs" "gsplot")
67 ("`if" "if ()")
68 ("`o" "otherwise")
69 ("`rp" "replot")
70 ("`r" "return")
71 ("`s" "switch")
72 ("`t" "try")
73 ("`u" "until ()")
74 ("`up" "unwind_protect")
75 ("`upc" "unwind_protect_cleanup")
76 ("`w" "while ()")))
77 "Abbrev table for Octave's reserved words. 54 "Abbrev table for Octave's reserved words.
78Used in `octave-mode' and `inferior-octave-mode' buffers. 55Used in `octave-mode' and `inferior-octave-mode' buffers.")
79All Octave abbrevs start with a grave accent (`)."
80 :regexp "\\(?:[^`]\\|^\\)\\(\\(?:\\<\\|`\\)\\w+\\)\\W*")
81 56
82(defvar octave-comment-char ?# 57(defvar octave-comment-char ?#
83 "Character to start an Octave comment.") 58 "Character to start an Octave comment.")
59
84(defvar octave-comment-start 60(defvar octave-comment-start
85 (string octave-comment-char ?\s) 61 (string octave-comment-char ?\s)
86 "String to insert to start a new Octave in-line comment.") 62 "String to insert to start a new Octave in-line comment.")
63
87(defvar octave-comment-start-skip "\\s<+\\s-*" 64(defvar octave-comment-start-skip "\\s<+\\s-*"
88 "Regexp to match the start of an Octave comment up to its body.") 65 "Regexp to match the start of an Octave comment up to its body.")
89 66
90(defvar octave-begin-keywords 67(defvar octave-begin-keywords
91 '("do" "for" "function" "if" "switch" "try" "unwind_protect" "while")) 68 '("do" "for" "function" "if" "switch" "try" "unwind_protect" "while"))
69
92(defvar octave-else-keywords 70(defvar octave-else-keywords
93 '("case" "catch" "else" "elseif" "otherwise" "unwind_protect_cleanup")) 71 '("case" "catch" "else" "elseif" "otherwise" "unwind_protect_cleanup"))
72
94(defvar octave-end-keywords 73(defvar octave-end-keywords
95 '("endfor" "endfunction" "endif" "endswitch" "end_try_catch" 74 '("endfor" "endfunction" "endif" "endswitch" "end_try_catch"
96 "end_unwind_protect" "endwhile" "until" "end")) 75 "end_unwind_protect" "endwhile" "until" "end"))
@@ -109,37 +88,6 @@ All Octave abbrevs start with a grave accent (`)."
109 "which" "who" "whos") 88 "which" "who" "whos")
110 "Text functions in Octave.") 89 "Text functions in Octave.")
111 90
112(defvar octave-variables
113 '("DEFAULT_EXEC_PATH" "DEFAULT_LOADPATH"
114 "EDITOR" "EXEC_PATH" "F_DUPFD" "F_GETFD" "F_GETFL" "F_SETFD"
115 "F_SETFL" "I" "IMAGE_PATH" "Inf" "J"
116 "NaN" "OCTAVE_VERSION" "O_APPEND" "O_CREAT" "O_EXCL"
117 "O_NONBLOCK" "O_RDONLY" "O_RDWR" "O_TRUNC" "O_WRONLY" "PAGER" "PS1"
118 "PS2" "PS4" "PWD" "SEEK_CUR" "SEEK_END" "SEEK_SET" "__F_DUPFD__"
119 "__F_GETFD__" "__F_GETFL__" "__F_SETFD__" "__F_SETFL__" "__I__"
120 "__Inf__" "__J__" "__NaN__" "__OCTAVE_VERSION__" "__O_APPEND__"
121 "__O_CREAT__" "__O_EXCL__" "__O_NONBLOCK__" "__O_RDONLY__"
122 "__O_RDWR__" "__O_TRUNC__" "__O_WRONLY__" "__PWD__" "__SEEK_CUR__"
123 "__SEEK_END__" "__SEEK_SET__" "__argv__" "__e__" "__eps__"
124 "__i__" "__inf__" "__j__" "__nan__" "__pi__"
125 "__program_invocation_name__" "__program_name__" "__realmax__"
126 "__realmin__" "__stderr__" "__stdin__" "__stdout__" "ans" "argv"
127 "beep_on_error" "completion_append_char"
128 "crash_dumps_octave_core" "default_save_format"
129 "e" "echo_executing_commands" "eps"
130 "error_text" "gnuplot_binary" "history_file"
131 "history_size" "ignore_function_time_stamp"
132 "inf" "nan" "nargin" "output_max_field_width" "output_precision"
133 "page_output_immediately" "page_screen_output" "pi"
134 "print_answer_id_name" "print_empty_dimensions"
135 "program_invocation_name" "program_name"
136 "realmax" "realmin" "return_last_computed_value" "save_precision"
137 "saving_history" "sighup_dumps_octave_core" "sigterm_dumps_octave_core"
138 "silent_functions" "split_long_rows" "stderr" "stdin" "stdout"
139 "string_fill_char" "struct_levels_to_print"
140 "suppress_verbose_help_message")
141 "Builtin variables in Octave.")
142
143(defvar octave-function-header-regexp 91(defvar octave-function-header-regexp
144 (concat "^\\s-*\\_<\\(function\\)\\_>" 92 (concat "^\\s-*\\_<\\(function\\)\\_>"
145 "\\([^=;\n]*=[ \t]*\\|[ \t]*\\)\\(\\(?:\\w\\|\\s_\\)+\\)\\_>") 93 "\\([^=;\n]*=[ \t]*\\|[ \t]*\\)\\(\\(?:\\w\\|\\s_\\)+\\)\\_>")
@@ -156,14 +104,22 @@ parenthetical grouping.")
156 octave-text-functions)) 104 octave-text-functions))
157 "\\)\\_>") 105 "\\)\\_>")
158 'font-lock-keyword-face) 106 'font-lock-keyword-face)
107 ;; Note: 'end' also serves as the last index in an indexing expression.
108 ;; Ref: http://www.mathworks.com/help/matlab/ref/end.html
109 '("\\_<end\\_>" (0 (save-excursion
110 (condition-case nil
111 (progn
112 (goto-char (match-beginning 0))
113 (backward-up-list)
114 (unless (eq (char-after) ?\()
115 font-lock-keyword-face))
116 (error font-lock-keyword-face)))
117 t))
159 ;; Fontify all builtin operators. 118 ;; Fontify all builtin operators.
160 (cons "\\(&\\||\\|<=\\|>=\\|==\\|<\\|>\\|!=\\|!\\)" 119 (cons "\\(&\\||\\|<=\\|>=\\|==\\|<\\|>\\|!=\\|!\\)"
161 (if (boundp 'font-lock-builtin-face) 120 (if (boundp 'font-lock-builtin-face)
162 'font-lock-builtin-face 121 'font-lock-builtin-face
163 'font-lock-preprocessor-face)) 122 'font-lock-preprocessor-face))
164 ;; Fontify all builtin variables.
165 (cons (concat "\\_<" (regexp-opt octave-variables) "\\_>")
166 'font-lock-variable-name-face)
167 ;; Fontify all function declarations. 123 ;; Fontify all function declarations.
168 (list octave-function-header-regexp 124 (list octave-function-header-regexp
169 '(1 font-lock-keyword-face) 125 '(1 font-lock-keyword-face)
@@ -196,10 +152,8 @@ parenthetical grouping.")
196 152
197(defvar octave-mode-map 153(defvar octave-mode-map
198 (let ((map (make-sparse-keymap))) 154 (let ((map (make-sparse-keymap)))
199 (define-key map "`" 'octave-abbrev-start)
200 (define-key map "\e\n" 'octave-indent-new-comment-line) 155 (define-key map "\e\n" 'octave-indent-new-comment-line)
201 (define-key map "\M-\C-q" 'octave-indent-defun) 156 (define-key map "\M-\C-q" 'octave-indent-defun)
202 (define-key map "\C-c\C-b" 'octave-submit-bug-report)
203 (define-key map "\C-c\C-p" 'octave-previous-code-line) 157 (define-key map "\C-c\C-p" 'octave-previous-code-line)
204 (define-key map "\C-c\C-n" 'octave-next-code-line) 158 (define-key map "\C-c\C-n" 'octave-next-code-line)
205 (define-key map "\C-c\C-a" 'octave-beginning-of-line) 159 (define-key map "\C-c\C-a" 'octave-beginning-of-line)
@@ -208,6 +162,7 @@ parenthetical grouping.")
208 (define-key map "\C-c\M-\C-h" 'octave-mark-block) 162 (define-key map "\C-c\M-\C-h" 'octave-mark-block)
209 (define-key map "\C-c]" 'smie-close-block) 163 (define-key map "\C-c]" 'smie-close-block)
210 (define-key map "\C-c/" 'smie-close-block) 164 (define-key map "\C-c/" 'smie-close-block)
165 (define-key map "\C-c;" 'octave-update-function-file-comment)
211 (define-key map "\C-c\C-f" 'octave-insert-defun) 166 (define-key map "\C-c\C-f" 'octave-insert-defun)
212 (define-key map "\C-c\C-il" 'octave-send-line) 167 (define-key map "\C-c\C-il" 'octave-send-line)
213 (define-key map "\C-c\C-ib" 'octave-send-block) 168 (define-key map "\C-c\C-ib" 'octave-send-block)
@@ -242,7 +197,8 @@ parenthetical grouping.")
242 ["Close Block" smie-close-block t]) 197 ["Close Block" smie-close-block t])
243 ("Functions" 198 ("Functions"
244 ["Indent Function" octave-indent-defun t] 199 ["Indent Function" octave-indent-defun t]
245 ["Insert Function" octave-insert-defun t]) 200 ["Insert Function" octave-insert-defun t]
201 ["Update function file comment" octave-update-function-file-comment t])
246 "-" 202 "-"
247 ("Debug" 203 ("Debug"
248 ["Send Current Line" octave-send-line t] 204 ["Send Current Line" octave-send-line t]
@@ -255,16 +211,14 @@ parenthetical grouping.")
255 "-" 211 "-"
256 ["Indent Line" indent-according-to-mode t] 212 ["Indent Line" indent-according-to-mode t]
257 ["Complete Symbol" completion-at-point t] 213 ["Complete Symbol" completion-at-point t]
258 "-"
259 ["Toggle Abbrev Mode" abbrev-mode
260 :style toggle :selected abbrev-mode]
261 ["Toggle Auto-Fill Mode" auto-fill-mode 214 ["Toggle Auto-Fill Mode" auto-fill-mode
262 :style toggle :selected auto-fill-function] 215 :style toggle :selected auto-fill-function]
263 "-" 216 "-"
264 ["Submit Bug Report" octave-submit-bug-report t]
265 "-"
266 ["Describe Octave Mode" describe-mode t] 217 ["Describe Octave Mode" describe-mode t]
267 ["Lookup Octave Index" info-lookup-symbol t])) 218 ["Lookup Octave Index" info-lookup-symbol t]
219 ["Customize Octave" (customize-group 'octave) t]
220 "-"
221 ["Submit Bug Report" report-emacs-bug t]))
268 222
269(defvar octave-mode-syntax-table 223(defvar octave-mode-syntax-table
270 (let ((table (make-syntax-table))) 224 (let ((table (make-syntax-table)))
@@ -300,6 +254,12 @@ parenthetical grouping.")
300 table) 254 table)
301 "Syntax table in use in `octave-mode' buffers.") 255 "Syntax table in use in `octave-mode' buffers.")
302 256
257(defcustom octave-font-lock-texinfo-comment t
258 "Control whether to highlight the texinfo comment block."
259 :type 'boolean
260 :group 'octave
261 :version "24.4")
262
303(defcustom octave-blink-matching-block t 263(defcustom octave-blink-matching-block t
304 "Control the blinking of matching Octave block keywords. 264 "Control the blinking of matching Octave block keywords.
305Non-nil means show matching begin of block when inserting a space, 265Non-nil means show matching begin of block when inserting a space,
@@ -320,15 +280,17 @@ newline or semicolon after an else or end keyword."
320 "Extra indentation applied to Octave continuation lines." 280 "Extra indentation applied to Octave continuation lines."
321 :type 'integer 281 :type 'integer
322 :group 'octave) 282 :group 'octave)
283
323(eval-and-compile 284(eval-and-compile
324 (defconst octave-continuation-marker-regexp "\\\\\\|\\.\\.\\.")) 285 (defconst octave-continuation-marker-regexp "\\\\\\|\\.\\.\\."))
286
325(defvar octave-continuation-regexp 287(defvar octave-continuation-regexp
326 (concat "[^#%\n]*\\(" octave-continuation-marker-regexp 288 (concat "[^#%\n]*\\(" octave-continuation-marker-regexp
327 "\\)\\s-*\\(\\s<.*\\)?$")) 289 "\\)\\s-*\\(\\s<.*\\)?$"))
328(defcustom octave-continuation-string "\\" 290
329 "Character string used for Octave continuation lines. Normally \\." 291;; Char \ is considered a bad decision for continuing a line.
330 :type 'string 292(defconst octave-continuation-string "..."
331 :group 'octave) 293 "Character string used for Octave continuation lines.")
332 294
333(defvar octave-mode-imenu-generic-expression 295(defvar octave-mode-imenu-generic-expression
334 (list 296 (list
@@ -345,11 +307,13 @@ newline or semicolon after an else or end keyword."
345 "Non-nil means display `inferior-octave-buffer' after sending to it." 307 "Non-nil means display `inferior-octave-buffer' after sending to it."
346 :type 'boolean 308 :type 'boolean
347 :group 'octave) 309 :group 'octave)
310
348(defcustom octave-send-line-auto-forward t 311(defcustom octave-send-line-auto-forward t
349 "Control auto-forward after sending to the inferior Octave process. 312 "Control auto-forward after sending to the inferior Octave process.
350Non-nil means always go to the next Octave code line after sending." 313Non-nil means always go to the next Octave code line after sending."
351 :type 'boolean 314 :type 'boolean
352 :group 'octave) 315 :group 'octave)
316
353(defcustom octave-send-echo-input t 317(defcustom octave-send-echo-input t
354 "Non-nil means echo input sent to the inferior Octave process." 318 "Non-nil means echo input sent to the inferior Octave process."
355 :type 'boolean 319 :type 'boolean
@@ -462,11 +426,12 @@ Non-nil means always go to the next Octave code line after sending."
462 (forward-comment 1)) 426 (forward-comment 1))
463 (cond 427 (cond
464 ((and (looking-at "$\\|[%#]") 428 ((and (looking-at "$\\|[%#]")
465 (not (smie-rule-bolp)) 429 ;; Ignore it if it's within parentheses or if the newline does not end
466 ;; Ignore it if it's within parentheses. 430 ;; some preceding text.
467 (prog1 (let ((ppss (syntax-ppss))) 431 (prog1 (and (not (smie-rule-bolp))
468 (not (and (nth 1 ppss) 432 (let ((ppss (syntax-ppss)))
469 (eq ?\( (char-after (nth 1 ppss)))))) 433 (not (and (nth 1 ppss)
434 (eq ?\( (char-after (nth 1 ppss)))))))
470 (forward-comment (point-max)))) 435 (forward-comment (point-max))))
471 ;; Why bother distinguishing \n and ;? 436 ;; Why bother distinguishing \n and ;?
472 ";") ;;"\n" 437 ";") ;;"\n"
@@ -508,130 +473,59 @@ Non-nil means always go to the next Octave code line after sending."
508(define-derived-mode octave-mode prog-mode "Octave" 473(define-derived-mode octave-mode prog-mode "Octave"
509 "Major mode for editing Octave code. 474 "Major mode for editing Octave code.
510 475
511This mode makes it easier to write Octave code by helping with 476Octave is a high-level language, primarily intended for numerical
512indentation, doing some of the typing for you (with Abbrev mode) and by 477computations. It provides a convenient command line interface
513showing keywords, comments, strings, etc. in different faces (with 478for solving linear and nonlinear problems numerically. Function
514Font Lock mode on terminals that support it). 479definitions can also be stored in files and used in batch mode."
515 480 :abbrev-table octave-abbrev-table
516Octave itself is a high-level language, primarily intended for numerical
517computations. It provides a convenient command line interface for
518solving linear and nonlinear problems numerically. Function definitions
519can also be stored in files, and it can be used in a batch mode (which
520is why you need this mode!).
521
522The latest released version of Octave is always available via anonymous
523ftp from ftp.octave.org in the directory `/pub/octave'. Complete
524source and binaries for several popular systems are available.
525
526Type \\[list-abbrevs] to display the built-in abbrevs for Octave keywords.
527
528Keybindings
529===========
530
531\\{octave-mode-map}
532
533Variables you can use to customize Octave mode
534==============================================
535
536`octave-blink-matching-block'
537 Non-nil means show matching begin of block when inserting a space,
538 newline or semicolon after an else or end keyword. Default is t.
539
540`octave-block-offset'
541 Extra indentation applied to statements in block structures.
542 Default is 2.
543
544`octave-continuation-offset'
545 Extra indentation applied to Octave continuation lines.
546 Default is 4.
547
548`octave-continuation-string'
549 String used for Octave continuation lines.
550 Default is a backslash.
551
552`octave-send-echo-input'
553 Non-nil means always display `inferior-octave-buffer' after sending a
554 command to the inferior Octave process.
555
556`octave-send-line-auto-forward'
557 Non-nil means always go to the next unsent line of Octave code after
558 sending a line to the inferior Octave process.
559
560`octave-send-echo-input'
561 Non-nil means echo input sent to the inferior Octave process.
562
563Turning on Octave mode runs the hook `octave-mode-hook'.
564
565To begin using this mode for all `.m' files that you edit, add the
566following lines to your init file:
567
568 (add-to-list 'auto-mode-alist '(\"\\\\.m\\\\'\" . octave-mode))
569
570To automatically turn on the abbrev and auto-fill features,
571add the following lines to your init file as well:
572
573 (add-hook 'octave-mode-hook
574 (lambda ()
575 (abbrev-mode 1)
576 (auto-fill-mode 1)))
577
578To submit a problem report, enter \\[octave-submit-bug-report] from \
579an Octave mode buffer.
580This automatically sets up a mail buffer with version information
581already added. You just need to add a description of the problem,
582including a reproducible test case and send the message."
583 (setq local-abbrev-table octave-abbrev-table)
584 481
585 (smie-setup octave-smie-grammar #'octave-smie-rules 482 (smie-setup octave-smie-grammar #'octave-smie-rules
586 :forward-token #'octave-smie-forward-token 483 :forward-token #'octave-smie-forward-token
587 :backward-token #'octave-smie-backward-token) 484 :backward-token #'octave-smie-backward-token)
588 (set (make-local-variable 'smie-indent-basic) 'octave-block-offset) 485 (setq-local smie-indent-basic 'octave-block-offset)
589 486
590 (set (make-local-variable 'smie-blink-matching-triggers) 487 (setq-local smie-blink-matching-triggers
591 (cons ?\; smie-blink-matching-triggers)) 488 (cons ?\; smie-blink-matching-triggers))
592 (unless octave-blink-matching-block 489 (unless octave-blink-matching-block
593 (remove-hook 'post-self-insert-hook #'smie-blink-matching-open 'local)) 490 (remove-hook 'post-self-insert-hook #'smie-blink-matching-open 'local))
594 491
595 (set (make-local-variable 'electric-indent-chars) 492 (setq-local electric-indent-chars
596 (cons ?\; electric-indent-chars)) 493 (cons ?\; electric-indent-chars))
597 ;; IIUC matlab-mode takes the opposite approach: it makes RET insert 494 ;; IIUC matlab-mode takes the opposite approach: it makes RET insert
598 ;; a ";" at those places where it's correct (i.e. outside of parens). 495 ;; a ";" at those places where it's correct (i.e. outside of parens).
599 (set (make-local-variable 'electric-layout-rules) '((?\; . after))) 496 (setq-local electric-layout-rules '((?\; . after)))
600 497
601 (set (make-local-variable 'comment-start) octave-comment-start) 498 (setq-local comment-start octave-comment-start)
602 (set (make-local-variable 'comment-end) "") 499 (setq-local comment-end "")
603 ;; Don't set it here: it's not really a property of the language, 500 ;; Don't set it here: it's not really a property of the language,
604 ;; just a personal preference of the author. 501 ;; just a personal preference of the author.
605 ;; (set (make-local-variable 'comment-column) 32) 502 ;; (setq-local comment-column 32)
606 (set (make-local-variable 'comment-start-skip) "\\s<+\\s-*") 503 (setq-local comment-start-skip "\\s<+\\s-*")
607 (set (make-local-variable 'comment-add) 1) 504 (setq-local comment-add 1)
608 505
609 (set (make-local-variable 'parse-sexp-ignore-comments) t) 506 (setq-local parse-sexp-ignore-comments t)
610 (set (make-local-variable 'paragraph-start) 507 (setq-local paragraph-start (concat "\\s-*$\\|" page-delimiter))
611 (concat "\\s-*$\\|" page-delimiter)) 508 (setq-local paragraph-separate paragraph-start)
612 (set (make-local-variable 'paragraph-separate) paragraph-start) 509 (setq-local paragraph-ignore-fill-prefix t)
613 (set (make-local-variable 'paragraph-ignore-fill-prefix) t) 510 (setq-local fill-paragraph-function 'octave-fill-paragraph)
614 (set (make-local-variable 'fill-paragraph-function) 'octave-fill-paragraph)
615 ;; FIXME: Why disable it? 511 ;; FIXME: Why disable it?
616 ;; (set (make-local-variable 'adaptive-fill-regexp) nil) 512 ;; (setq-local adaptive-fill-regexp nil)
617 ;; Again, this is not a property of the language, don't set it here. 513 ;; Again, this is not a property of the language, don't set it here.
618 ;; (set (make-local-variable 'fill-column) 72) 514 ;; (setq fill-column 72)
619 (set (make-local-variable 'normal-auto-fill-function) 'octave-auto-fill) 515 (setq-local normal-auto-fill-function 'octave-auto-fill)
620 516
621 (set (make-local-variable 'font-lock-defaults) 517 (setq font-lock-defaults '(octave-font-lock-keywords))
622 '(octave-font-lock-keywords))
623 518
624 (set (make-local-variable 'syntax-propertize-function) 519 (setq-local syntax-propertize-function #'octave-syntax-propertize-function)
625 #'octave-syntax-propertize-function)
626 520
627 (set (make-local-variable 'imenu-generic-expression) 521 (setq imenu-generic-expression octave-mode-imenu-generic-expression)
628 octave-mode-imenu-generic-expression) 522 (setq imenu-case-fold-search nil)
629 (set (make-local-variable 'imenu-case-fold-search) nil)
630 523
631 (add-hook 'completion-at-point-functions 524 (add-hook 'completion-at-point-functions
632 'octave-completion-at-point-function nil t) 525 'octave-completion-at-point-function nil t)
633 (set (make-local-variable 'beginning-of-defun-function) 526 (add-hook 'before-save-hook 'octave-sync-function-file-names nil t)
634 'octave-beginning-of-defun) 527 (setq-local beginning-of-defun-function 'octave-beginning-of-defun)
528 (and octave-font-lock-texinfo-comment (octave-font-lock-texinfo-comment))
635 529
636 (easy-menu-add octave-mode-menu)) 530 (easy-menu-add octave-mode-menu))
637 531
@@ -652,6 +546,13 @@ including a reproducible test case and send the message."
652 :type 'regexp 546 :type 'regexp
653 :group 'octave) 547 :group 'octave)
654 548
549(defcustom inferior-octave-prompt-read-only comint-prompt-read-only
550 "If non-nil, the Octave prompt is read only.
551See `comint-prompt-read-only' for details."
552 :type 'boolean
553 :group 'octave
554 :version "24.4")
555
655(defcustom inferior-octave-startup-file nil 556(defcustom inferior-octave-startup-file nil
656 "Name of the inferior Octave startup file. 557 "Name of the inferior Octave startup file.
657The contents of this file are sent to the inferior Octave process on 558The contents of this file are sent to the inferior Octave process on
@@ -696,28 +597,12 @@ mode, set this to (\"-q\" \"--traditional\")."
696 ;; Could certainly do more font locking in inferior Octave ... 597 ;; Could certainly do more font locking in inferior Octave ...
697 "Additional expressions to highlight in Inferior Octave mode.") 598 "Additional expressions to highlight in Inferior Octave mode.")
698 599
699
700;;; Compatibility functions
701(if (not (fboundp 'comint-line-beginning-position))
702 ;; comint-line-beginning-position is defined in Emacs 21
703 (defun comint-line-beginning-position ()
704 "Returns the buffer position of the beginning of the line, after any prompt.
705The prompt is assumed to be any text at the beginning of the line matching
706the regular expression `comint-prompt-regexp', a buffer local variable."
707 (save-excursion (comint-bol nil) (point))))
708
709
710(defvar inferior-octave-output-list nil) 600(defvar inferior-octave-output-list nil)
711(defvar inferior-octave-output-string nil) 601(defvar inferior-octave-output-string nil)
712(defvar inferior-octave-receive-in-progress nil) 602(defvar inferior-octave-receive-in-progress nil)
713 603
714(defvar inferior-octave-startup-hook nil) 604(define-obsolete-variable-alias 'inferior-octave-startup-hook
715 605 'inferior-octave-mode-hook "24.4")
716(defvar inferior-octave-complete-impossible nil
717 "Non-nil means that `inferior-octave-complete' is impossible.")
718
719(defvar inferior-octave-has-built-in-variables nil
720 "Non-nil means that Octave has built-in variables.")
721 606
722(defvar inferior-octave-dynamic-complete-functions 607(defvar inferior-octave-dynamic-complete-functions
723 '(inferior-octave-completion-at-point comint-filename-completion) 608 '(inferior-octave-completion-at-point comint-filename-completion)
@@ -728,31 +613,25 @@ in the Inferior Octave buffer.")
728(defvar info-lookup-mode) 613(defvar info-lookup-mode)
729 614
730(define-derived-mode inferior-octave-mode comint-mode "Inferior Octave" 615(define-derived-mode inferior-octave-mode comint-mode "Inferior Octave"
731 "Major mode for interacting with an inferior Octave process. 616 "Major mode for interacting with an inferior Octave process."
732Runs Octave as a subprocess of Emacs, with Octave I/O through an Emacs 617 :abbrev-table octave-abbrev-table
733buffer. 618 (setq comint-prompt-regexp inferior-octave-prompt)
734 619
735Entry to this mode successively runs the hooks `comint-mode-hook' and 620 (setq-local comment-start octave-comment-start)
736`inferior-octave-mode-hook'." 621 (setq-local comment-end "")
737 (setq comint-prompt-regexp inferior-octave-prompt 622 (setq comment-column 32)
738 mode-line-process '(":%s") 623 (setq-local comment-start-skip octave-comment-start-skip)
739 local-abbrev-table octave-abbrev-table)
740 624
741 (set (make-local-variable 'comment-start) octave-comment-start) 625 (setq font-lock-defaults '(inferior-octave-font-lock-keywords nil nil))
742 (set (make-local-variable 'comment-end) "")
743 (set (make-local-variable 'comment-column) 32)
744 (set (make-local-variable 'comment-start-skip) octave-comment-start-skip)
745 626
746 (set (make-local-variable 'font-lock-defaults) 627 (setq info-lookup-mode 'octave-mode)
747 '(inferior-octave-font-lock-keywords nil nil))
748
749 (set (make-local-variable 'info-lookup-mode) 'octave-mode)
750 628
751 (setq comint-input-ring-file-name 629 (setq comint-input-ring-file-name
752 (or (getenv "OCTAVE_HISTFILE") "~/.octave_hist") 630 (or (getenv "OCTAVE_HISTFILE") "~/.octave_hist")
753 comint-input-ring-size (or (getenv "OCTAVE_HISTSIZE") 1024)) 631 comint-input-ring-size (or (getenv "OCTAVE_HISTSIZE") 1024))
754 (set (make-local-variable 'comint-dynamic-complete-functions) 632 (setq-local comint-dynamic-complete-functions
755 inferior-octave-dynamic-complete-functions) 633 inferior-octave-dynamic-complete-functions)
634 (setq-local comint-prompt-read-only inferior-octave-prompt-read-only)
756 (add-hook 'comint-input-filter-functions 635 (add-hook 'comint-input-filter-functions
757 'inferior-octave-directory-tracker nil t) 636 'inferior-octave-directory-tracker nil t)
758 (comint-read-input-ring t)) 637 (comint-read-input-ring t))
@@ -816,20 +695,11 @@ startup file, `~/.emacs-octave'."
816 'identity inferior-octave-output-list "\n") 695 'identity inferior-octave-output-list "\n")
817 "\n")))) 696 "\n"))))
818 697
819 ;; Find out whether Octave has built-in variables.
820 (inferior-octave-send-list-and-digest
821 (list "exist \"LOADPATH\"\n"))
822 (setq inferior-octave-has-built-in-variables
823 (string-match "101$" (car inferior-octave-output-list)))
824
825 ;; An empty secondary prompt, as e.g. obtained by '--braindead', 698 ;; An empty secondary prompt, as e.g. obtained by '--braindead',
826 ;; means trouble. 699 ;; means trouble.
827 (inferior-octave-send-list-and-digest (list "PS2\n")) 700 (inferior-octave-send-list-and-digest (list "PS2\n"))
828 (if (string-match "\\(PS2\\|ans\\) = *$" (car inferior-octave-output-list)) 701 (if (string-match "\\(PS2\\|ans\\) = *$" (car inferior-octave-output-list))
829 (inferior-octave-send-list-and-digest 702 (inferior-octave-send-list-and-digest (list "PS2 (\"> \");\n")))
830 (list (if inferior-octave-has-built-in-variables
831 "PS2 = \"> \"\n"
832 "PS2 (\"> \");\n"))))
833 703
834 ;; O.k., now we are ready for the Inferior Octave startup commands. 704 ;; O.k., now we are ready for the Inferior Octave startup commands.
835 (let* (commands 705 (let* (commands
@@ -840,9 +710,7 @@ startup file, `~/.emacs-octave'."
840 (list "more off;\n" 710 (list "more off;\n"
841 (if (not (string-equal 711 (if (not (string-equal
842 inferior-octave-output-string ">> ")) 712 inferior-octave-output-string ">> "))
843 (if inferior-octave-has-built-in-variables 713 "PS1 (\"\\\\s> \");\n")
844 "PS1=\"\\\\s> \";\n"
845 "PS1 (\"\\\\s> \");\n"))
846 (if (file-exists-p file) 714 (if (file-exists-p file)
847 (format "source (\"%s\");\n" file)))) 715 (format "source (\"%s\");\n" file))))
848 (inferior-octave-send-list-and-digest commands)) 716 (inferior-octave-send-list-and-digest commands))
@@ -853,28 +721,20 @@ startup file, `~/.emacs-octave'."
853 'identity inferior-octave-output-list "\n") 721 'identity inferior-octave-output-list "\n")
854 "\n")) 722 "\n"))
855 inferior-octave-output-string)) 723 inferior-octave-output-string))
856 ;; Next, we check whether Octave supports `completion_matches' ...
857 (inferior-octave-send-list-and-digest
858 (list "exist \"completion_matches\"\n"))
859 (setq inferior-octave-complete-impossible
860 (not (string-match "5$" (car inferior-octave-output-list))))
861 724
862 ;; And finally, everything is back to normal. 725 ;; And finally, everything is back to normal.
863 (set-process-filter proc 'inferior-octave-output-filter) 726 (set-process-filter proc 'inferior-octave-output-filter)
864 (run-hooks 'inferior-octave-startup-hook)
865 (run-hooks 'inferior-octave-startup-hook)
866 ;; Just in case, to be sure a cd in the startup file 727 ;; Just in case, to be sure a cd in the startup file
867 ;; won't have detrimental effects. 728 ;; won't have detrimental effects.
868 (inferior-octave-resync-dirs))) 729 (inferior-octave-resync-dirs)))
869 730
870(defun inferior-octave-completion-table () 731(defun inferior-octave-completion-table ()
871 (unless inferior-octave-complete-impossible 732 (completion-table-dynamic
872 (completion-table-dynamic 733 (lambda (command)
873 (lambda (command) 734 (inferior-octave-send-list-and-digest
874 (inferior-octave-send-list-and-digest 735 (list (concat "completion_matches (\"" command "\");\n")))
875 (list (concat "completion_matches (\"" command "\");\n"))) 736 (sort (delete-dups inferior-octave-output-list)
876 (sort (delete-dups inferior-octave-output-list) 737 'string-lessp))))
877 'string-lessp)))))
878 738
879(defun inferior-octave-completion-at-point () 739(defun inferior-octave-completion-at-point ()
880 "Return the data to complete the Octave symbol at point." 740 "Return the data to complete the Octave symbol at point."
@@ -883,13 +743,8 @@ startup file, `~/.emacs-octave'."
883 (save-excursion 743 (save-excursion
884 (skip-syntax-backward "w_" (comint-line-beginning-position)) 744 (skip-syntax-backward "w_" (comint-line-beginning-position))
885 (point)))) 745 (point))))
886 (cond ((eq start end) nil) 746 (when (> end start)
887 (inferior-octave-complete-impossible 747 (list start end (inferior-octave-completion-table)))))
888 (message (concat
889 "Your Octave does not have `completion_matches'. "
890 "Please upgrade to version 2.X."))
891 nil)
892 (t (list start end (inferior-octave-completion-table))))))
893 748
894(define-obsolete-function-alias 'inferior-octave-complete 749(define-obsolete-function-alias 'inferior-octave-complete
895 'completion-at-point "24.1") 750 'completion-at-point "24.1")
@@ -989,19 +844,17 @@ directory and makes this the current buffer's default directory."
989 844
990;;; Miscellaneous useful functions 845;;; Miscellaneous useful functions
991 846
992(defsubst octave-in-comment-p () 847(defun octave-in-comment-p ()
993 "Return t if point is inside an Octave comment." 848 "Return non-nil if point is inside an Octave comment."
994 (nth 4 (syntax-ppss))) 849 (nth 4 (syntax-ppss)))
995 850
996(defsubst octave-in-string-p () 851(defun octave-in-string-p ()
997 "Return t if point is inside an Octave string." 852 "Return non-nil if point is inside an Octave string."
998 (nth 3 (syntax-ppss))) 853 (nth 3 (syntax-ppss)))
999 854
1000(defsubst octave-not-in-string-or-comment-p () 855(defun octave-in-string-or-comment-p ()
1001 "Return t if point is not inside an Octave string or comment." 856 "Return non-nil if point is inside an Octave string or comment."
1002 (let ((pps (syntax-ppss))) 857 (nth 8 (syntax-ppss)))
1003 (not (or (nth 3 pps) (nth 4 pps)))))
1004
1005 858
1006(defun octave-looking-at-kw (regexp) 859(defun octave-looking-at-kw (regexp)
1007 "Like `looking-at', but sets `case-fold-search' nil." 860 "Like `looking-at', but sets `case-fold-search' nil."
@@ -1016,6 +869,163 @@ directory and makes this the current buffer's default directory."
1016 nil 869 nil
1017 (delete-horizontal-space) 870 (delete-horizontal-space)
1018 (insert (concat " " octave-continuation-string)))) 871 (insert (concat " " octave-continuation-string))))
872
873(defun octave-function-file-p ()
874 "Return non-nil if the first token is \"function\".
875The value is (START END NAME-START NAME-END) of the function."
876 (save-excursion
877 (goto-char (point-min))
878 (when (equal (funcall smie-forward-token-function) "function")
879 (forward-word -1)
880 (let* ((start (point))
881 (end (progn (forward-sexp 1) (point)))
882 (name (when (progn
883 (goto-char start)
884 (re-search-forward octave-function-header-regexp
885 end t))
886 (list (match-beginning 3) (match-end 3)))))
887 (cons start (cons end name))))))
888
889;; Like forward-comment but stop at non-comment blank
890(defun octave-skip-comment-forward (limit)
891 (let ((ppss (syntax-ppss)))
892 (if (nth 4 ppss)
893 (goto-char (nth 8 ppss))
894 (goto-char (or (comment-search-forward limit t) (point)))))
895 (while (and (< (point) limit) (looking-at-p "\\s<"))
896 (forward-comment 1)))
897
898;;; First non-copyright comment block
899(defun octave-function-file-comment ()
900 "Beginning and end positions of the function file comment."
901 (save-excursion
902 (goto-char (point-min))
903 ;; Copyright block: octave/libinterp/parse-tree/lex.ll around line 1634
904 (while (save-excursion
905 (when (comment-search-forward (point-max) t)
906 (when (eq (char-after) ?\{) ; case of block comment
907 (forward-char 1))
908 (skip-syntax-forward "-")
909 (let ((case-fold-search t))
910 (looking-at-p "\\(?:copyright\\|author\\)\\_>"))))
911 (octave-skip-comment-forward (point-max)))
912 (let ((beg (comment-search-forward (point-max) t)))
913 (when beg
914 (goto-char beg)
915 (octave-skip-comment-forward (point-max))
916 (list beg (point))))))
917
918(defun octave-sync-function-file-names ()
919 "Ensure function name agree with function file name.
920See Info node `(octave)Function Files'."
921 (interactive)
922 (when buffer-file-name
923 (pcase-let ((`(,start ,_end ,name-start ,name-end)
924 (octave-function-file-p)))
925 (when (and start name-start)
926 (let* ((func (buffer-substring name-start name-end))
927 (file (file-name-sans-extension
928 (file-name-nondirectory buffer-file-name)))
929 (help-form (format "\
930a: Use function name `%s'
931b: Use file name `%s'
932q: Don't fix\n" func file))
933 (c (unless (equal file func)
934 (save-window-excursion
935 (help-form-show)
936 (read-char-choice
937 "Which name to use? (a/b/q) " '(?a ?b ?q))))))
938 (pcase c
939 (`?a (let ((newname (expand-file-name
940 (concat func (file-name-extension
941 buffer-file-name t)))))
942 (when (or (not (file-exists-p newname))
943 (yes-or-no-p
944 (format "Target file %s exists; proceed? " newname)))
945 (when (file-exists-p buffer-file-name)
946 (rename-file buffer-file-name newname t))
947 (set-visited-file-name newname))))
948 (`?b (save-excursion
949 (goto-char name-start)
950 (delete-region name-start name-end)
951 (insert file)))))))))
952
953(defun octave-update-function-file-comment (beg end)
954 "Query replace function names in function file comment."
955 (interactive
956 (progn
957 (barf-if-buffer-read-only)
958 (if (use-region-p)
959 (list (region-beginning) (region-end))
960 (or (octave-function-file-comment)
961 (error "No function file comment found")))))
962 (save-excursion
963 (let* ((bounds (or (octave-function-file-p)
964 (error "Not in a function file buffer")))
965 (func (if (cddr bounds)
966 (apply #'buffer-substring (cddr bounds))
967 (error "Function name not found")))
968 (old-func (progn
969 (goto-char beg)
970 (when (re-search-forward
971 "[=}]\\s-*\\(\\(?:\\sw\\|\\s_\\)+\\)\\_>"
972 (min (line-end-position 4) end)
973 t)
974 (match-string 1))))
975 (old-func (read-string (format (if old-func
976 "Name to replace (default %s): "
977 "Name to replace: ")
978 old-func)
979 nil nil old-func)))
980 (if (and func old-func (not (equal func old-func)))
981 (perform-replace old-func func 'query
982 nil 'delimited nil nil beg end)
983 (message "Function names match")))))
984
985;; Adapted from texinfo-font-lock-keywords
986(defvar octave-texinfo-font-lock-keywords
987 `(("@\\([a-zA-Z]+\\|[^ \t\n]\\)" 1 font-lock-keyword-face prepend) ;commands
988 ("^\\*\\([^\n:]*\\)" 1 font-lock-function-name-face prepend) ;menu items
989 ("@\\(emph\\|i\\|sc\\){\\([^}]+\\)" 2 'italic prepend)
990 ("@\\(strong\\|b\\){\\([^}]+\\)" 2 'bold prepend)
991 ("@\\(kbd\\|key\\|url\\|uref\\){\\([^}]+\\)"
992 2 font-lock-string-face prepend)
993 ("@\\(file\\|email\\){\\([^}]+\\)" 2 font-lock-string-face prepend)
994 ("@\\(samp\\|code\\|var\\|math\\|env\\|command\\|option\\){\\([^}]+\\)"
995 2 font-lock-variable-name-face prepend)
996 ("@\\(cite\\|x?ref\\|pxref\\|dfn\\|inforef\\){\\([^}]+\\)"
997 2 font-lock-constant-face prepend)
998 ("@\\(anchor\\){\\([^}]+\\)" 2 font-lock-type-face prepend)
999 ("@\\(dmn\\|acronym\\|value\\){\\([^}]+\\)"
1000 2 font-lock-builtin-face prepend)
1001 ("@\\(end\\|itemx?\\) +\\(.+\\)" 2 font-lock-keyword-face prepend))
1002 "Additional keywords to highlight in texinfo comment block.")
1003
1004(defface octave-function-comment-block
1005 '((t (:inherit font-lock-doc-face)))
1006 "Face used to highlight function comment block."
1007 :group 'octave)
1008
1009(defun octave-font-lock-texinfo-comment ()
1010 (font-lock-add-keywords
1011 nil
1012 '(((lambda (limit)
1013 (while (and (search-forward "-*- texinfo -*-" limit t)
1014 (octave-in-comment-p))
1015 (let ((beg (nth 8 (syntax-ppss)))
1016 (end (progn
1017 (octave-skip-comment-forward (point-max))
1018 (point))))
1019 (put-text-property beg end 'font-lock-multiline t)
1020 (font-lock-prepend-text-property
1021 beg end 'face 'octave-function-comment-block)
1022 (dolist (kw octave-texinfo-font-lock-keywords)
1023 (goto-char beg)
1024 (while (re-search-forward (car kw) end 'move)
1025 (font-lock-apply-highlight (cdr kw))))))
1026 nil)))
1027 'append))
1028
1019 1029
1020;;; Indentation 1030;;; Indentation
1021 1031
@@ -1149,8 +1159,8 @@ Returns t unless search stops at the beginning or end of the buffer."
1149 (while (and (/= arg 0) 1159 (while (and (/= arg 0)
1150 (setq found 1160 (setq found
1151 (re-search-backward "\\_<function\\_>" inc))) 1161 (re-search-backward "\\_<function\\_>" inc)))
1152 (if (octave-not-in-string-or-comment-p) 1162 (unless (octave-in-string-or-comment-p)
1153 (setq arg (- arg inc)))) 1163 (setq arg (- arg inc))))
1154 (if found 1164 (if found
1155 (progn 1165 (progn
1156 (and (< inc 0) (goto-char (match-beginning 0))) 1166 (and (< inc 0) (goto-char (match-beginning 0)))
@@ -1303,34 +1313,17 @@ otherwise."
1303 (process-live-p inferior-octave-process) 1313 (process-live-p inferior-octave-process)
1304 (inferior-octave-completion-table)) 1314 (inferior-octave-completion-table))
1305 (append octave-reserved-words 1315 (append octave-reserved-words
1306 octave-text-functions 1316 octave-text-functions)))))
1307 octave-variables)))))
1308 1317
1309(define-obsolete-function-alias 'octave-complete-symbol 1318(define-obsolete-function-alias 'octave-complete-symbol
1310 'completion-at-point "24.1") 1319 'completion-at-point "24.1")
1311 1320
1312;;; Electric characters && friends 1321;;; Electric characters && friends
1313
1314(defun octave-abbrev-start ()
1315 "Start entering an Octave abbreviation.
1316If Abbrev mode is turned on, typing ` (grave accent) followed by ? or
1317\\[help-command] lists all Octave abbrevs. Any other key combination is
1318executed normally.
1319Note that all Octave mode abbrevs start with a grave accent."
1320 (interactive)
1321 (self-insert-command 1)
1322 (when abbrev-mode
1323 (set-temporary-overlay-map
1324 (let ((map (make-sparse-keymap)))
1325 (define-key map [??] 'list-abbrevs)
1326 (define-key map (vector help-char) 'list-abbrevs)
1327 map))))
1328
1329(define-skeleton octave-insert-defun 1322(define-skeleton octave-insert-defun
1330 "Insert an Octave function skeleton. 1323 "Insert an Octave function skeleton.
1331Prompt for the function's name, arguments and return values (to be 1324Prompt for the function's name, arguments and return values (to be
1332entered without parens)." 1325entered without parens)."
1333 (let* ((defname (substring (buffer-name) 0 -2)) 1326 (let* ((defname (file-name-sans-extension (buffer-name)))
1334 (name (read-string (format "Function name (default %s): " defname) 1327 (name (read-string (format "Function name (default %s): " defname)
1335 nil nil defname)) 1328 nil nil defname))
1336 (args (read-string "Arguments: ")) 1329 (args (read-string "Arguments: "))
@@ -1342,10 +1335,11 @@ entered without parens)."
1342 (t (concat vals " = "))) 1335 (t (concat vals " = ")))
1343 name 1336 name
1344 args)) 1337 args))
1345 \n "function " > str \n \n 1338 \n octave-block-comment-start "usage: " str \n
1346 octave-block-comment-start "usage: " str \n 1339 octave-block-comment-start '(delete-horizontal-space) \n
1347 octave-block-comment-start \n octave-block-comment-start 1340 octave-block-comment-start '(delete-horizontal-space) \n
1348 \n _ \n 1341 "function " > str \n
1342 _ \n
1349 "endfunction" > \n) 1343 "endfunction" > \n)
1350 1344
1351;;; Communication with the inferior Octave process 1345;;; Communication with the inferior Octave process
@@ -1450,26 +1444,7 @@ code line."
1450 "\n"))) 1444 "\n")))
1451 (mapconcat 'identity inferior-octave-output-list "\n"))) 1445 (mapconcat 'identity inferior-octave-output-list "\n")))
1452 (terpri))) 1446 (terpri)))
1453 1447
1454;;; Bug reporting
1455(defun octave-submit-bug-report ()
1456 "Submit a bug report on the Emacs Octave package via mail."
1457 (interactive)
1458 (require 'reporter)
1459 (and
1460 (y-or-n-p "Do you want to submit a bug report? ")
1461 (reporter-submit-bug-report
1462 octave-maintainer-address
1463 (concat "Emacs version " emacs-version)
1464 (list
1465 'octave-blink-matching-block
1466 'octave-block-offset
1467 'octave-comment-char
1468 'octave-continuation-offset
1469 'octave-continuation-string
1470 'octave-send-echo-input
1471 'octave-send-line-auto-forward
1472 'octave-send-show-buffer))))
1473 1448
1474(provide 'octave) 1449(provide 'octave)
1475;;; octave.el ends here 1450;;; octave.el ends here
diff --git a/lisp/subr.el b/lisp/subr.el
index dc968542cd0..802fee4ee65 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -2200,11 +2200,11 @@ by doing (clear-string STRING)."
2200 ;; And of course, don't keep the sensitive data around. 2200 ;; And of course, don't keep the sensitive data around.
2201 (erase-buffer)))))))) 2201 (erase-buffer))))))))
2202 2202
2203;; This should be used by `call-interactively' for `n' specs.
2204(defun read-number (prompt &optional default) 2203(defun read-number (prompt &optional default)
2205 "Read a numeric value in the minibuffer, prompting with PROMPT. 2204 "Read a numeric value in the minibuffer, prompting with PROMPT.
2206DEFAULT specifies a default value to return if the user just types RET. 2205DEFAULT specifies a default value to return if the user just types RET.
2207The value of DEFAULT is inserted into PROMPT." 2206The value of DEFAULT is inserted into PROMPT.
2207This function is used by the `interactive' code letter `n'."
2208 (let ((n nil) 2208 (let ((n nil)
2209 (default1 (if (consp default) (car default) default))) 2209 (default1 (if (consp default) (car default) default)))
2210 (when default1 2210 (when default1
@@ -2225,7 +2225,7 @@ The value of DEFAULT is inserted into PROMPT."
2225 (condition-case nil 2225 (condition-case nil
2226 (setq n (cond 2226 (setq n (cond
2227 ((zerop (length str)) default1) 2227 ((zerop (length str)) default1)
2228 ((stringp str) (string-to-number str)))) 2228 ((stringp str) (read str))))
2229 (error nil))) 2229 (error nil)))
2230 (unless (numberp n) 2230 (unless (numberp n)
2231 (message "Please enter a number.") 2231 (message "Please enter a number.")
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index ab085a3085a..a68a27bb07e 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -901,6 +901,7 @@ and the functions `TeX-current-macro' and
901`LaTeX-current-environment' are bound. Also note that this 901`LaTeX-current-environment' are bound. Also note that this
902feature might slow down the reftex parsing process for large TeX 902feature might slow down the reftex parsing process for large TeX
903files." 903files."
904 :version "24.4"
904 :group 'reftex-defining-label-environments 905 :group 'reftex-defining-label-environments
905 :type '(repeat string)) 906 :type '(repeat string))
906 907
diff --git a/lisp/textmodes/remember.el b/lisp/textmodes/remember.el
index 1286e5d803e..c8bafd8176a 100644
--- a/lisp/textmodes/remember.el
+++ b/lisp/textmodes/remember.el
@@ -432,17 +432,20 @@ If you want to remember a region, supply a universal prefix to
432 432
433(defcustom remember-data-directory "~/remember" 433(defcustom remember-data-directory "~/remember"
434 "The directory in which to store remember data as files." 434 "The directory in which to store remember data as files."
435 :type 'file 435 :type 'directory
436 :version "24.4"
436 :group 'remember) 437 :group 'remember)
437 438
438(defcustom remember-directory-file-name-format "%Y-%m-%d_%T-%z" 439(defcustom remember-directory-file-name-format "%Y-%m-%d_%T-%z"
439 "Format string for the file name in which to store unprocessed data." 440 "Format string for the file name in which to store unprocessed data."
440 :type 'file 441 :type 'string
442 :version "24.4"
441 :group 'remember) 443 :group 'remember)
442 444
443(defun remember-store-in-files () 445(defun remember-store-in-files ()
444 "Store remember data in a file in `remember-data-directory'. 446 "Store remember data in a file in `remember-data-directory'.
445The file is named after `remember-directory-file-name-format'." 447The file is named after `remember-directory-file-name-format' fed through
448`format-time-string'."
446 (let ((name (format-time-string 449 (let ((name (format-time-string
447 remember-directory-file-name-format (current-time))) 450 remember-directory-file-name-format (current-time)))
448 (text (buffer-string))) 451 (text (buffer-string)))
diff --git a/lisp/vc/log-view.el b/lisp/vc/log-view.el
index b74ff77bc41..b633b7be403 100644
--- a/lisp/vc/log-view.el
+++ b/lisp/vc/log-view.el
@@ -317,7 +317,9 @@ Otherwise, don't move point."
317 result) 317 result)
318 (save-excursion 318 (save-excursion
319 (when pos (goto-char pos)) 319 (when pos (goto-char pos))
320 (forward-line 1) 320 (forward-line 0)
321 ;; Treat "---" separator lines as part of the following revision.
322 (forward-line (if (looking-at "-\\{20,\\}$") 2 1))
321 (while looping 323 (while looping
322 (setq pos (re-search-backward log-view-message-re nil 'move) 324 (setq pos (re-search-backward log-view-message-re nil 'move)
323 looping (and pos (log-view-inside-comment-p (point))))) 325 looping (and pos (log-view-inside-comment-p (point)))))
diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4
index 0152f29326b..94b46dde07d 100644
--- a/m4/extern-inline.m4
+++ b/m4/extern-inline.m4
@@ -21,13 +21,21 @@ AC_DEFUN([gl_EXTERN_INLINE],
21 Suppress extern inline with HP-UX cc, as it appears to be broken; see 21 Suppress extern inline with HP-UX cc, as it appears to be broken; see
22 <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>. 22 <http://lists.gnu.org/archive/html/bug-texinfo/2013-02/msg00030.html>.
23 23
24 Suppress the use of extern inline on Apple's platforms, 24 Suppress extern inline with Sun C in standards-conformance mode, as it
25 as Libc-825.25 (2012-09-19) is incompatible with it; see 25 mishandles inline functions that call each other. E.g., for 'inline void f
26 (void) { } inline void g (void) { f (); }', c99 incorrectly complains
27 'reference to static identifier "f" in extern inline function'.
28 This bug was observed with Sun C 5.12 SunOS_i386 2011/11/16.
29
30 Suppress the use of extern inline on Apple's platforms, as Libc at least
31 through Libc-825.26 (2013-04-09) is incompatible with it; see, e.g.,
26 <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>. 32 <http://lists.gnu.org/archive/html/bug-gnulib/2012-12/msg00023.html>.
27 Perhaps Apple will fix this some day. */ 33 Perhaps Apple will fix this some day. */
28#if ((__GNUC__ \ 34#if ((__GNUC__ \
29 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \ 35 ? defined __GNUC_STDC_INLINE__ && __GNUC_STDC_INLINE__ \
30 : 199901L <= __STDC_VERSION__ && !defined __HP_cc) \ 36 : (199901L <= __STDC_VERSION__ \
37 && !defined __HP_cc \
38 && !(defined __SUNPRO_C && __STDC__))) \
31 && !defined __APPLE__) 39 && !defined __APPLE__)
32# define _GL_INLINE inline 40# define _GL_INLINE inline
33# define _GL_EXTERN_INLINE extern inline 41# define _GL_EXTERN_INLINE extern inline
diff --git a/src/ChangeLog b/src/ChangeLog
index 99e2c3d9a84..4245a1f0256 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,44 @@
12013-05-01 David Reitter <david.reitter@gmail.com>
2
3 * nsfns.m (ns_tooltip): Initialize.
4
52013-04-28 Eli Zaretskii <eliz@gnu.org>
6
7 * coding.c (decode_coding_gap): Don't remove the character before
8 a newline unless it's a CR character. (Bug#14287)
9
102013-04-28 Dan Nicolaescu <dann@gnu.org>
11
12 * dispextern.h (struct face): Move enum face_underline_type
13 earlier so that bitfields can be in the same word.
14
152013-04-28 Jan Djärv <jan.h.d@swipnet.se>
16
17 * nsfns.m (handlePanelKeys): New function.
18 (EmacsOpenPanel:performKeyEquivalent:)
19 (EmacsSavePanel:performKeyEquivalent:): Call handlePanelKeys to handle
20 arrows/function/control and copy/paste keys (Bug#14296).
21
222013-04-27 Juri Linkov <juri@jurta.org>
23
24 * callint.c (Fcall_interactively): Call `Qread_number' for
25 interactive code letter `n' instead of using duplicate code.
26 (Bug#14254)
27
282013-04-27 Paul Eggert <eggert@cs.ucla.edu>
29
30 * systime.h (make_timeval): Declare as 'const'.
31
322013-04-27 Kenichi Handa <handa@gnu.org>
33
34 * font.c (font_open_entity): Always open a font of manageable
35 size.
36
372013-04-26 Paul Eggert <eggert@cs.ucla.edu>
38 Port better to AIX (Bug#14258).
39 * lisp.h (ENUM_BF) [__IBMC__]: Make it 'unsigned int' here, too,
40 to pacify AIX xlc.
41
12013-04-24 Kenichi Handa <handa@gnu.org> 422013-04-24 Kenichi Handa <handa@gnu.org>
2 43
3 * coding.c (decode_coding_iso_2022): When an invalid escape 44 * coding.c (decode_coding_iso_2022): When an invalid escape
diff --git a/src/callint.c b/src/callint.c
index 212dd2e3d62..940ff3ed249 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -34,6 +34,7 @@ static Lisp_Object Qcommand_debug_status;
34static Lisp_Object Qenable_recursive_minibuffers; 34static Lisp_Object Qenable_recursive_minibuffers;
35 35
36static Lisp_Object Qhandle_shift_selection; 36static Lisp_Object Qhandle_shift_selection;
37static Lisp_Object Qread_number;
37 38
38Lisp_Object Qmouse_leave_buffer_hook; 39Lisp_Object Qmouse_leave_buffer_hook;
39 40
@@ -683,29 +684,7 @@ invoke it. If KEYS is omitted or nil, the return value of
683 if (!NILP (prefix_arg)) 684 if (!NILP (prefix_arg))
684 goto have_prefix_arg; 685 goto have_prefix_arg;
685 case 'n': /* Read number from minibuffer. */ 686 case 'n': /* Read number from minibuffer. */
686 { 687 args[i] = call1 (Qread_number, callint_message);
687 bool first = 1;
688 do
689 {
690 Lisp_Object str;
691 if (! first)
692 {
693 message1 ("Please enter a number.");
694 sit_for (make_number (1), 0, 0);
695 }
696 first = 0;
697
698 str = Fread_from_minibuffer (callint_message,
699 Qnil, Qnil, Qnil, Qnil, Qnil,
700 Qnil);
701 if (! STRINGP (str) || SCHARS (str) == 0)
702 args[i] = Qnil;
703 else
704 args[i] = Fread (str);
705 }
706 while (! NUMBERP (args[i]));
707 }
708 visargs[i] = args[i];
709 break; 688 break;
710 689
711 case 'P': /* Prefix arg in raw form. Does no I/O. */ 690 case 'P': /* Prefix arg in raw form. Does no I/O. */
@@ -903,6 +882,7 @@ syms_of_callint (void)
903 DEFSYM (Qminus, "-"); 882 DEFSYM (Qminus, "-");
904 DEFSYM (Qplus, "+"); 883 DEFSYM (Qplus, "+");
905 DEFSYM (Qhandle_shift_selection, "handle-shift-selection"); 884 DEFSYM (Qhandle_shift_selection, "handle-shift-selection");
885 DEFSYM (Qread_number, "read-number");
906 DEFSYM (Qcall_interactively, "call-interactively"); 886 DEFSYM (Qcall_interactively, "call-interactively");
907 DEFSYM (Qcommand_debug_status, "command-debug-status"); 887 DEFSYM (Qcommand_debug_status, "command-debug-status");
908 DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers"); 888 DEFSYM (Qenable_recursive_minibuffers, "enable-recursive-minibuffers");
diff --git a/src/coding.c b/src/coding.c
index b9fb92c481b..f6664e179b7 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -7774,7 +7774,7 @@ decode_coding_gap (struct coding_system *coding,
7774 while (src_beg < src) 7774 while (src_beg < src)
7775 { 7775 {
7776 *--dst = *--src; 7776 *--dst = *--src;
7777 if (*src == '\n') 7777 if (*src == '\n' && src > src_beg && src[-1] == '\r')
7778 src--; 7778 src--;
7779 } 7779 }
7780 diff = dst - src; 7780 diff = dst - src;
diff --git a/src/dispextern.h b/src/dispextern.h
index 9dc3a57c284..5ce7b19f173 100644
--- a/src/dispextern.h
+++ b/src/dispextern.h
@@ -1591,13 +1591,13 @@ struct face
1591 shadow colors derived from the background color of the face. */ 1591 shadow colors derived from the background color of the face. */
1592 enum face_box_type box; 1592 enum face_box_type box;
1593 1593
1594 /* Style of underlining. */
1595 enum face_underline_type underline_type;
1596
1594 /* If `box' above specifies a 3D type, 1 means use box_color for 1597 /* If `box' above specifies a 3D type, 1 means use box_color for
1595 drawing shadows. */ 1598 drawing shadows. */
1596 unsigned use_box_color_for_shadows_p : 1; 1599 unsigned use_box_color_for_shadows_p : 1;
1597 1600
1598 /* Style of underlining. */
1599 enum face_underline_type underline_type;
1600
1601 /* Non-zero if text in this face should be underlined, overlined, 1601 /* Non-zero if text in this face should be underlined, overlined,
1602 strike-through or have a box drawn around it. */ 1602 strike-through or have a box drawn around it. */
1603 unsigned underline_p : 1; 1603 unsigned underline_p : 1;
diff --git a/src/font.c b/src/font.c
index 6247eeca948..ad601177b50 100644
--- a/src/font.c
+++ b/src/font.c
@@ -2819,7 +2819,7 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size)
2819 struct font_driver_list *driver_list; 2819 struct font_driver_list *driver_list;
2820 Lisp_Object objlist, size, val, font_object; 2820 Lisp_Object objlist, size, val, font_object;
2821 struct font *font; 2821 struct font *font;
2822 int min_width, height; 2822 int min_width, height, psize;
2823 2823
2824 eassert (FONT_ENTITY_P (entity)); 2824 eassert (FONT_ENTITY_P (entity));
2825 size = AREF (entity, FONT_SIZE_INDEX); 2825 size = AREF (entity, FONT_SIZE_INDEX);
@@ -2846,12 +2846,19 @@ font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size)
2846 } 2846 }
2847 } 2847 }
2848 2848
2849 font_object = driver_list->driver->open (f, entity, pixel_size); 2849 /* We always open a font of manageable size; i.e non-zero average
2850 if (!NILP (font_object)) 2850 width and height. */
2851 ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size)); 2851 for (psize = pixel_size; ; psize++)
2852 {
2853 font_object = driver_list->driver->open (f, entity, psize);
2854 if (NILP (font_object))
2855 return Qnil;
2856 font = XFONT_OBJECT (font_object);
2857 if (font->average_width > 0 && font->height > 0)
2858 break;
2859 }
2860 ASET (font_object, FONT_SIZE_INDEX, make_number (pixel_size));
2852 FONT_ADD_LOG ("open", entity, font_object); 2861 FONT_ADD_LOG ("open", entity, font_object);
2853 if (NILP (font_object))
2854 return Qnil;
2855 ASET (entity, FONT_OBJLIST_INDEX, 2862 ASET (entity, FONT_OBJLIST_INDEX,
2856 Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX))); 2863 Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX)));
2857 2864
@@ -3118,6 +3125,8 @@ font_find_for_lface (FRAME_PTR f, Lisp_Object *attrs, Lisp_Object spec, int c)
3118 double pt = XINT (attrs[LFACE_HEIGHT_INDEX]); 3125 double pt = XINT (attrs[LFACE_HEIGHT_INDEX]);
3119 3126
3120 pixel_size = POINT_TO_PIXEL (pt / 10, FRAME_RES_Y (f)); 3127 pixel_size = POINT_TO_PIXEL (pt / 10, FRAME_RES_Y (f));
3128 if (pixel_size < 1)
3129 pixel_size = 1;
3121 } 3130 }
3122 ASET (work, FONT_SIZE_INDEX, Qnil); 3131 ASET (work, FONT_SIZE_INDEX, Qnil);
3123 foundry[0] = AREF (work, FONT_FOUNDRY_INDEX); 3132 foundry[0] = AREF (work, FONT_FOUNDRY_INDEX);
diff --git a/src/lisp.h b/src/lisp.h
index bcb866b4cc4..e2c24eed352 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -231,9 +231,9 @@ enum enum_USE_LSB_TAG { USE_LSB_TAG = 0 };
231#define case_Lisp_Int case Lisp_Int0: case Lisp_Int1 231#define case_Lisp_Int case Lisp_Int0: case Lisp_Int1
232#define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0) 232#define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0)
233 233
234/* Stolen from GDB. The only known compiler that doesn't support 234/* Idea stolen from GDB. MSVC doesn't support enums in bitfields,
235 enums in bitfields is MSVC. */ 235 and xlc complains vociferously about them. */
236#ifdef _MSC_VER 236#if defined _MSC_VER || defined __IBMC__
237#define ENUM_BF(TYPE) unsigned int 237#define ENUM_BF(TYPE) unsigned int
238#else 238#else
239#define ENUM_BF(TYPE) enum TYPE 239#define ENUM_BF(TYPE) enum TYPE
diff --git a/src/nsfns.m b/src/nsfns.m
index a483f847dec..0d9ebe0ef50 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -88,7 +88,7 @@ Lisp_Object Qfontsize;
88/* hack for OS X file panels */ 88/* hack for OS X file panels */
89char panelOK = 0; 89char panelOK = 0;
90 90
91EmacsTooltip *ns_tooltip; 91EmacsTooltip *ns_tooltip = nil;
92 92
93/* Need forward declaration here to preserve organizational integrity of file */ 93/* Need forward declaration here to preserve organizational integrity of file */
94Lisp_Object Fx_open_connection (Lisp_Object, Lisp_Object, Lisp_Object); 94Lisp_Object Fx_open_connection (Lisp_Object, Lisp_Object, Lisp_Object);
@@ -1477,7 +1477,7 @@ Optional arg DIR_ONLY_P, if non-nil, means choose only directories. */)
1477 [panel setCanChooseFiles: YES]; 1477 [panel setCanChooseFiles: YES];
1478 } 1478 }
1479 1479
1480 block_input (); 1480 block_input ();
1481#if defined (NS_IMPL_COCOA) && \ 1481#if defined (NS_IMPL_COCOA) && \
1482 MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6 1482 MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
1483 if (! NILP (mustmatch) || ! NILP (dir_only_p)) 1483 if (! NILP (mustmatch) || ! NILP (dir_only_p))
@@ -2544,6 +2544,75 @@ Value is t if tooltip was open, nil otherwise. */)
2544 2544
2545 ========================================================================== */ 2545 ========================================================================== */
2546 2546
2547/*
2548 Handle arrow/function/control keys and copy/paste/cut in file dialogs.
2549 Return YES if handeled, NO if not.
2550 */
2551static BOOL
2552handlePanelKeys (NSSavePanel *panel, NSEvent *theEvent)
2553{
2554 NSString *s;
2555 int i;
2556 BOOL ret = NO;
2557
2558 if ([theEvent type] != NSKeyDown) return NO;
2559 s = [theEvent characters];
2560
2561 for (i = 0; i < [s length]; ++i)
2562 {
2563 int ch = (int) [s characterAtIndex: i];
2564 switch (ch)
2565 {
2566 case NSHomeFunctionKey:
2567 case NSDownArrowFunctionKey:
2568 case NSUpArrowFunctionKey:
2569 case NSLeftArrowFunctionKey:
2570 case NSRightArrowFunctionKey:
2571 case NSPageUpFunctionKey:
2572 case NSPageDownFunctionKey:
2573 case NSEndFunctionKey:
2574 [panel sendEvent: theEvent];
2575 ret = YES;
2576 break;
2577 /* As we don't have the standard key commands for
2578 copy/paste/cut/select-all in our edit menu, we must handle
2579 them here. TODO: handle Emacs key bindings for copy/cut/select-all
2580 here, paste works, because we have that in our Edit menu.
2581 I.e. refactor out code in nsterm.m, keyDown: to figure out the
2582 correct modifier.
2583 */
2584 case 'x': // Cut
2585 case 'c': // Copy
2586 case 'v': // Paste
2587 case 'a': // Select all
2588 if ([theEvent modifierFlags] & NSCommandKeyMask)
2589 {
2590 [NSApp sendAction:
2591 (ch == 'x'
2592 ? @selector(cut:)
2593 : (ch == 'c'
2594 ? @selector(copy:)
2595 : (ch == 'v'
2596 ? @selector(paste:)
2597 : @selector(selectAll:))))
2598 to:nil from:panel];
2599 ret = YES;
2600 }
2601 default:
2602 // Send all control keys, as the text field supports C-a, C-f, C-e
2603 // C-b and more.
2604 if ([theEvent modifierFlags] & NSControlKeyMask)
2605 {
2606 [panel sendEvent: theEvent];
2607 ret = YES;
2608 }
2609 break;
2610 }
2611 }
2612
2613
2614 return ret;
2615}
2547 2616
2548@implementation EmacsSavePanel 2617@implementation EmacsSavePanel
2549#ifdef NS_IMPL_COCOA 2618#ifdef NS_IMPL_COCOA
@@ -2572,6 +2641,14 @@ Value is t if tooltip was open, nil otherwise. */)
2572{ 2641{
2573 return ns_directory_from_panel (self); 2642 return ns_directory_from_panel (self);
2574} 2643}
2644
2645- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
2646{
2647 BOOL ret = handlePanelKeys (self, theEvent);
2648 if (! ret)
2649 ret = [super performKeyEquivalent:theEvent];
2650 return ret;
2651}
2575@end 2652@end
2576 2653
2577 2654
@@ -2609,7 +2686,14 @@ Value is t if tooltip was open, nil otherwise. */)
2609{ 2686{
2610 return ns_directory_from_panel (self); 2687 return ns_directory_from_panel (self);
2611} 2688}
2612 2689- (BOOL)performKeyEquivalent:(NSEvent *)theEvent
2690{
2691 // NSOpenPanel inherits NSSavePanel, so passing self is OK.
2692 BOOL ret = handlePanelKeys (self, theEvent);
2693 if (! ret)
2694 ret = [super performKeyEquivalent:theEvent];
2695 return ret;
2696}
2613@end 2697@end
2614 2698
2615 2699
diff --git a/src/systime.h b/src/systime.h
index da495b9064b..c3bc00c1479 100644
--- a/src/systime.h
+++ b/src/systime.h
@@ -143,7 +143,7 @@ EMACS_TIME_TO_DOUBLE (EMACS_TIME t)
143 143
144/* defined in sysdep.c */ 144/* defined in sysdep.c */
145extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME); 145extern int set_file_times (int, const char *, EMACS_TIME, EMACS_TIME);
146extern struct timeval make_timeval (EMACS_TIME); 146extern struct timeval make_timeval (EMACS_TIME) ATTRIBUTE_CONST;
147 147
148/* defined in keyboard.c */ 148/* defined in keyboard.c */
149extern void set_waiting_for_input (EMACS_TIME *); 149extern void set_waiting_for_input (EMACS_TIME *);