aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/progmodes
diff options
context:
space:
mode:
authorK. Handa2015-09-01 20:46:15 +0900
committerK. Handa2015-09-01 20:46:15 +0900
commit3e0e2339cd379eeba8d9bc758f2e8e574144e252 (patch)
tree9d119efed6e52e5c24dbd84836148157271799a8 /lisp/progmodes
parent524eeb2e5e158d98ea52fe5ebe4768c4433ba8b2 (diff)
parentff0a92f6461941902eb9e974bdd2ff9adacb7bc4 (diff)
downloademacs-3e0e2339cd379eeba8d9bc758f2e8e574144e252.tar.gz
emacs-3e0e2339cd379eeba8d9bc758f2e8e574144e252.zip
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Diffstat (limited to 'lisp/progmodes')
-rw-r--r--lisp/progmodes/cc-engine.el11
-rw-r--r--lisp/progmodes/cc-langs.el2
-rw-r--r--lisp/progmodes/cmacexp.el5
-rw-r--r--lisp/progmodes/cpp.el5
-rw-r--r--lisp/progmodes/ebrowse.el2
-rw-r--r--lisp/progmodes/elisp-mode.el3
-rw-r--r--lisp/progmodes/etags.el19
-rw-r--r--lisp/progmodes/executable.el5
-rw-r--r--lisp/progmodes/hideif.el2
-rw-r--r--lisp/progmodes/idlwave.el6
-rw-r--r--lisp/progmodes/octave.el12
-rw-r--r--lisp/progmodes/verilog-mode.el2
-rw-r--r--lisp/progmodes/vhdl-mode.el16
-rw-r--r--lisp/progmodes/which-func.el8
14 files changed, 52 insertions, 46 deletions
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index 1223db3b33e..f26b8ec6dd1 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -618,11 +618,12 @@ comment at the start of cc-engine.el for more info."
618(defmacro c-bos-report-error () 618(defmacro c-bos-report-error ()
619 '(unless noerror 619 '(unless noerror
620 (setq c-parsing-error 620 (setq c-parsing-error
621 (format "No matching `%s' found for `%s' on line %d" 621 (format-message
622 (elt saved-pos 1) 622 "No matching `%s' found for `%s' on line %d"
623 (elt saved-pos 2) 623 (elt saved-pos 1)
624 (1+ (count-lines (point-min) 624 (elt saved-pos 2)
625 (c-point 'bol (elt saved-pos 0)))))))) 625 (1+ (count-lines (point-min)
626 (c-point 'bol (elt saved-pos 0))))))))
626 627
627(defun c-beginning-of-statement-1 (&optional lim ignore-labels 628(defun c-beginning-of-statement-1 (&optional lim ignore-labels
628 noerror comma-delim) 629 noerror comma-delim)
diff --git a/lisp/progmodes/cc-langs.el b/lisp/progmodes/cc-langs.el
index 235ef21d066..0e904d23c5b 100644
--- a/lisp/progmodes/cc-langs.el
+++ b/lisp/progmodes/cc-langs.el
@@ -327,7 +327,7 @@ the evaluated constant value at compile time."
327 327
328(defun c-populate-syntax-table (table) 328(defun c-populate-syntax-table (table)
329 "Populate the given syntax table as necessary for a C-like language. 329 "Populate the given syntax table as necessary for a C-like language.
330This includes setting ' and \" as string delimiters, and setting up 330This includes setting \\=' and \" as string delimiters, and setting up
331the comment syntax to handle both line style \"//\" and block style 331the comment syntax to handle both line style \"//\" and block style
332\"/*\" \"*/\" comments." 332\"/*\" \"*/\" comments."
333 333
diff --git a/lisp/progmodes/cmacexp.el b/lisp/progmodes/cmacexp.el
index 19d0473c42d..005e71a825e 100644
--- a/lisp/progmodes/cmacexp.el
+++ b/lisp/progmodes/cmacexp.el
@@ -389,8 +389,9 @@ Optional arg DISPLAY non-nil means show messages in the echo area."
389 ;; Put the messages inside a comment, so they won't get in 389 ;; Put the messages inside a comment, so they won't get in
390 ;; the way of font-lock, highlighting etc. 390 ;; the way of font-lock, highlighting etc.
391 (insert 391 (insert
392 (format "/* Preprocessor terminated with status %s\n\n Messages from `%s\':\n\n" 392 (format
393 exit-status cppcommand)) 393 "/* Preprocessor terminated with status %s\n\n Messages from '%s\':\n\n"
394 exit-status cppcommand))
394 (goto-char (+ (point) 395 (goto-char (+ (point)
395 (nth 1 (insert-file-contents tempname)))) 396 (nth 1 (insert-file-contents tempname))))
396 (insert "\n\n*/\n"))) 397 (insert "\n\n*/\n")))
diff --git a/lisp/progmodes/cpp.el b/lisp/progmodes/cpp.el
index 685bb21b430..3cf17f48b5f 100644
--- a/lisp/progmodes/cpp.el
+++ b/lisp/progmodes/cpp.el
@@ -494,9 +494,10 @@ You can also use the keyboard accelerators indicated like this: [K]ey."
494 (set-buffer buffer) 494 (set-buffer buffer)
495 (setq cpp-edit-symbols symbols) 495 (setq cpp-edit-symbols symbols)
496 (erase-buffer) 496 (erase-buffer)
497 (insert "CPP Display Information for `") 497 (insert (substitute-command-keys "CPP Display Information for `"))
498 (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home) 498 (cpp-make-button (buffer-name cpp-edit-buffer) 'cpp-edit-home)
499 (insert "'\n\nClick mouse-2 on item you want to change or use\n" 499 (insert (substitute-command-keys
500 "'\n\nClick mouse-2 on item you want to change or use\n")
500 "or switch to this buffer and type the keyboard equivalents.\n" 501 "or switch to this buffer and type the keyboard equivalents.\n"
501 "Keyboard equivalents are indicated with brackets like [T]his.\n\n") 502 "Keyboard equivalents are indicated with brackets like [T]his.\n\n")
502 (cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home) 503 (cpp-make-button "[H]ome (display the C file)" 'cpp-edit-home)
diff --git a/lisp/progmodes/ebrowse.el b/lisp/progmodes/ebrowse.el
index 7c785d4ac20..2443d6f8ca9 100644
--- a/lisp/progmodes/ebrowse.el
+++ b/lisp/progmodes/ebrowse.el
@@ -3471,7 +3471,7 @@ are not performed."
3471 (with-output-to-temp-buffer (concat "*Apropos Members*") 3471 (with-output-to-temp-buffer (concat "*Apropos Members*")
3472 (set-buffer standard-output) 3472 (set-buffer standard-output)
3473 (erase-buffer) 3473 (erase-buffer)
3474 (insert "Members matching `" regexp "'\n\n") 3474 (insert (format-message "Members matching ‘%s’\n\n" regexp))
3475 (cl-loop for s in (ebrowse-list-of-matching-members members regexp) do 3475 (cl-loop for s in (ebrowse-list-of-matching-members members regexp) do
3476 (cl-loop for info in (gethash s members) do 3476 (cl-loop for info in (gethash s members) do
3477 (ebrowse-draw-file-member-info info)))))) 3477 (ebrowse-draw-file-member-info info))))))
diff --git a/lisp/progmodes/elisp-mode.el b/lisp/progmodes/elisp-mode.el
index e76728d0461..bcabf3cdf59 100644
--- a/lisp/progmodes/elisp-mode.el
+++ b/lisp/progmodes/elisp-mode.el
@@ -653,7 +653,8 @@ non-nil result supercedes the xrefs produced by
653 653
654 ;; FIXME: advised function; list of advice functions 654 ;; FIXME: advised function; list of advice functions
655 655
656 ;; FIXME: aliased variable 656 ;; Coding system symbols do not appear in ‘load-history’,
657 ;; so we can’t get a location for them.
657 658
658 (when (and (symbolp symbol) 659 (when (and (symbolp symbol)
659 (symbol-function symbol) 660 (symbol-function symbol)
diff --git a/lisp/progmodes/etags.el b/lisp/progmodes/etags.el
index 23f93707679..611ba84e25b 100644
--- a/lisp/progmodes/etags.el
+++ b/lisp/progmodes/etags.el
@@ -1459,7 +1459,7 @@ hits the start of file."
1459 (when (symbolp symbs) 1459 (when (symbolp symbs)
1460 (if (boundp symbs) 1460 (if (boundp symbs)
1461 (setq symbs (symbol-value symbs)) 1461 (setq symbs (symbol-value symbs))
1462 (insert "symbol `" (symbol-name symbs) "' has no value\n") 1462 (insert (format-message "symbol ‘%s’ has no value\n" symbs))
1463 (setq symbs nil))) 1463 (setq symbs nil)))
1464 (if (vectorp symbs) 1464 (if (vectorp symbs)
1465 (mapatoms ins-symb symbs) 1465 (mapatoms ins-symb symbs)
@@ -1469,13 +1469,13 @@ hits the start of file."
1469 1469
1470(defun etags-tags-apropos (string) ; Doc string? 1470(defun etags-tags-apropos (string) ; Doc string?
1471 (when tags-apropos-verbose 1471 (when tags-apropos-verbose
1472 (princ "Tags in file `") 1472 (princ (substitute-command-keys "Tags in file `"))
1473 (tags-with-face 'highlight (princ buffer-file-name)) 1473 (tags-with-face 'highlight (princ buffer-file-name))
1474 (princ "':\n\n")) 1474 (princ (substitute-command-keys "':\n\n")))
1475 (goto-char (point-min)) 1475 (goto-char (point-min))
1476 (let ((progress-reporter (make-progress-reporter 1476 (let ((progress-reporter (make-progress-reporter
1477 (format "Making tags apropos buffer for `%s'..." 1477 (format-message
1478 string) 1478 "Making tags apropos buffer for `%s'..." string)
1479 (point-min) (point-max)))) 1479 (point-min) (point-max))))
1480 (while (re-search-forward string nil t) 1480 (while (re-search-forward string nil t)
1481 (progress-reporter-update progress-reporter (point)) 1481 (progress-reporter-update progress-reporter (point))
@@ -1920,9 +1920,9 @@ directory specification."
1920 'tags-complete-tags-table-file 1920 'tags-complete-tags-table-file
1921 nil t nil))) 1921 nil t nil)))
1922 (with-output-to-temp-buffer "*Tags List*" 1922 (with-output-to-temp-buffer "*Tags List*"
1923 (princ "Tags in file `") 1923 (princ (substitute-command-keys "Tags in file `"))
1924 (tags-with-face 'highlight (princ file)) 1924 (tags-with-face 'highlight (princ file))
1925 (princ "':\n\n") 1925 (princ (substitute-command-keys "':\n\n"))
1926 (save-excursion 1926 (save-excursion
1927 (let ((first-time t) 1927 (let ((first-time t)
1928 (gotany nil)) 1928 (gotany nil))
@@ -1944,9 +1944,10 @@ directory specification."
1944 (declare (obsolete xref-find-apropos "25.1")) 1944 (declare (obsolete xref-find-apropos "25.1"))
1945 (interactive "sTags apropos (regexp): ") 1945 (interactive "sTags apropos (regexp): ")
1946 (with-output-to-temp-buffer "*Tags List*" 1946 (with-output-to-temp-buffer "*Tags List*"
1947 (princ "Click mouse-2 to follow tags.\n\nTags matching regexp `") 1947 (princ (substitute-command-keys
1948 "Click mouse-2 to follow tags.\n\nTags matching regexp `"))
1948 (tags-with-face 'highlight (princ regexp)) 1949 (tags-with-face 'highlight (princ regexp))
1949 (princ "':\n\n") 1950 (princ (substitute-command-keys "':\n\n"))
1950 (save-excursion 1951 (save-excursion
1951 (let ((first-time t)) 1952 (let ((first-time t))
1952 (while (visit-tags-table-buffer (not first-time)) 1953 (while (visit-tags-table-buffer (not first-time))
diff --git a/lisp/progmodes/executable.el b/lisp/progmodes/executable.el
index 50e4da93c73..b057fa68471 100644
--- a/lisp/progmodes/executable.el
+++ b/lisp/progmodes/executable.el
@@ -240,8 +240,9 @@ executable."
240 (save-window-excursion 240 (save-window-excursion
241 ;; Make buffer visible before question. 241 ;; Make buffer visible before question.
242 (switch-to-buffer (current-buffer)) 242 (switch-to-buffer (current-buffer))
243 (y-or-n-p (concat "Replace magic number by `" 243 (y-or-n-p (format-message
244 executable-prefix argument "'? ")))) 244 "Replace magic number by `%s%s'? "
245 executable-prefix argument))))
245 (progn 246 (progn
246 (replace-match argument t t nil 1) 247 (replace-match argument t t nil 1)
247 (message "Magic number changed to `%s'" 248 (message "Magic number changed to `%s'"
diff --git a/lisp/progmodes/hideif.el b/lisp/progmodes/hideif.el
index a9376ff6101..e0d25c4439d 100644
--- a/lisp/progmodes/hideif.el
+++ b/lisp/progmodes/hideif.el
@@ -164,7 +164,7 @@ This behavior is generally undesirable. If this option is non-nil, the outermos
164 :version "25.1") 164 :version "25.1")
165 165
166(defcustom hide-ifdef-header-regexp 166(defcustom hide-ifdef-header-regexp
167 "\\.h\\(h\\|xx\\|pp\\)?\\'" 167 "\\.h\\(h\\|xx\\|pp\\|\\+\\+\\)?\\'"
168 "C/C++ header file name patterns to determine if current buffer is a header. 168 "C/C++ header file name patterns to determine if current buffer is a header.
169Effective only if `hide-ifdef-expand-reinclusion-protection' is t." 169Effective only if `hide-ifdef-expand-reinclusion-protection' is t."
170 :type 'string 170 :type 'string
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el
index d7594428e8d..18299c7f116 100644
--- a/lisp/progmodes/idlwave.el
+++ b/lisp/progmodes/idlwave.el
@@ -293,7 +293,7 @@ extends to the end of the match for the regular expression."
293(defcustom idlwave-auto-fill-split-string t 293(defcustom idlwave-auto-fill-split-string t
294 "If non-nil then auto fill will split strings with the IDL `+' operator. 294 "If non-nil then auto fill will split strings with the IDL `+' operator.
295When the line end falls within a string, string concatenation with the 295When the line end falls within a string, string concatenation with the
296'+' operator will be used to distribute a long string over lines. 296`+' operator will be used to distribute a long string over lines.
297If nil and a string is split then a terminal beep and warning are issued. 297If nil and a string is split then a terminal beep and warning are issued.
298 298
299This variable is ignored when `idlwave-fill-comment-line-only' is 299This variable is ignored when `idlwave-fill-comment-line-only' is
@@ -768,8 +768,8 @@ Also see help for `idlwave-surround'."
768 :type 'boolean) 768 :type 'boolean)
769 769
770(defcustom idlwave-pad-keyword t 770(defcustom idlwave-pad-keyword t
771 "Non-nil means pad '=' in keywords (routine calls or defs) like assignment. 771 "Non-nil means pad `=' in keywords (routine calls or defs) like assignment.
772Whenever `idlwave-surround' is non-nil then this affects how '=' is 772Whenever `idlwave-surround' is non-nil then this affects how `=' is
773padded for keywords and for variables. If t, pad the same as for 773padded for keywords and for variables. If t, pad the same as for
774assignments. If nil then spaces are removed. With any other value, 774assignments. If nil then spaces are removed. With any other value,
775spaces are left unchanged." 775spaces are left unchanged."
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index 89e0b105223..70a2b1ab5ad 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -1122,7 +1122,7 @@ See Info node `(octave)Function Files'."
1122 (let* ((func (buffer-substring name-start name-end)) 1122 (let* ((func (buffer-substring name-start name-end))
1123 (file (file-name-sans-extension 1123 (file (file-name-sans-extension
1124 (file-name-nondirectory buffer-file-name))) 1124 (file-name-nondirectory buffer-file-name)))
1125 (help-form (format "\ 1125 (help-form (format-message "\
1126a: Use function name `%s' 1126a: Use function name `%s'
1127b: Use file name `%s' 1127b: Use file name `%s'
1128q: Don't fix\n" func file)) 1128q: Don't fix\n" func file))
@@ -1728,12 +1728,12 @@ code line."
1728 (dir (file-name-directory 1728 (dir (file-name-directory
1729 (directory-file-name (file-name-directory file))))) 1729 (directory-file-name (file-name-directory file)))))
1730 (replace-match "" nil nil nil 1) 1730 (replace-match "" nil nil nil 1)
1731 (insert "`") 1731 (insert (substitute-command-keys "`"))
1732 ;; Include the parent directory which may be regarded as 1732 ;; Include the parent directory which may be regarded as
1733 ;; the category for the FN. 1733 ;; the category for the FN.
1734 (help-insert-xref-button (file-relative-name file dir) 1734 (help-insert-xref-button (file-relative-name file dir)
1735 'octave-help-file fn) 1735 'octave-help-file fn)
1736 (insert "'"))) 1736 (insert (substitute-command-keys "'"))))
1737 ;; Make 'See also' clickable. 1737 ;; Make 'See also' clickable.
1738 (with-syntax-table octave-mode-syntax-table 1738 (with-syntax-table octave-mode-syntax-table
1739 (when (re-search-forward "^\\s-*See also:" nil t) 1739 (when (re-search-forward "^\\s-*See also:" nil t)
@@ -1816,8 +1816,8 @@ If the environment variable OCTAVE_SRCDIR is set, it is searched first."
1816 (error "File `%s' not found" name)) 1816 (error "File `%s' not found" name))
1817 file)) 1817 file))
1818 (`"mex" 1818 (`"mex"
1819 (if (yes-or-no-p (format "File `%s' may be binary; open? " 1819 (if (yes-or-no-p (format-message "File `%s' may be binary; open? "
1820 (file-name-nondirectory name))) 1820 (file-name-nondirectory name)))
1821 name 1821 name
1822 (user-error "Aborted"))) 1822 (user-error "Aborted")))
1823 (_ name))) 1823 (_ name)))
@@ -1847,7 +1847,7 @@ if iskeyword('%s') disp('`%s'' is a keyword') else which('%s') endif\n"
1847 (when (string-match "from the file \\(.*\\)$" line) 1847 (when (string-match "from the file \\(.*\\)$" line)
1848 (setq file (match-string 1 line)))) 1848 (setq file (match-string 1 line))))
1849 (if (not file) 1849 (if (not file)
1850 (user-error "%s" (or line (format "`%s' not found" fn))) 1850 (user-error "%s" (or line (format-message "`%s' not found" fn)))
1851 (ring-insert find-tag-marker-ring (point-marker)) 1851 (ring-insert find-tag-marker-ring (point-marker))
1852 (setq file (funcall octave-find-definition-filename-function file)) 1852 (setq file (funcall octave-find-definition-filename-function file))
1853 (when file 1853 (when file
diff --git a/lisp/progmodes/verilog-mode.el b/lisp/progmodes/verilog-mode.el
index 107dee5803d..76d85c68c99 100644
--- a/lisp/progmodes/verilog-mode.el
+++ b/lisp/progmodes/verilog-mode.el
@@ -1054,7 +1054,7 @@ the MSB or LSB of a signal inside an AUTORESET.
1054 1054
1055If nil, AUTORESET uses \"0\" as the constant. 1055If nil, AUTORESET uses \"0\" as the constant.
1056 1056
1057If `unbased', AUTORESET used the unbased unsized literal \"'0\" 1057If `unbased', AUTORESET used the unbased unsized literal \"\\='0\"
1058as the constant. This setting is strongly recommended for 1058as the constant. This setting is strongly recommended for
1059SystemVerilog designs." 1059SystemVerilog designs."
1060 :type 'boolean 1060 :type 'boolean
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index 1b270e66dda..47b15d886bc 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -164,7 +164,7 @@
164'/' or is empty)." 164'/' or is empty)."
165 (let ((val (widget-value widget))) 165 (let ((val (widget-value widget)))
166 (unless (string-match "^\\(\\|.*/\\)$" val) 166 (unless (string-match "^\\(\\|.*/\\)$" val)
167 (widget-put widget :error "Invalid directory entry: must end with '/'") 167 (widget-put widget :error "Invalid directory entry: must end with /")
168 widget))) 168 widget)))
169 169
170;; help string for user options 170;; help string for user options
@@ -8743,7 +8743,7 @@ is omitted or nil."
8743 (vhdl-comment-insert))))) 8743 (vhdl-comment-insert)))))
8744 (self-insert-command count))) 8744 (self-insert-command count)))
8745 8745
8746(defun vhdl-electric-open-bracket (count) "'[' --> '(', '([' --> '['" 8746(defun vhdl-electric-open-bracket (count) "[ --> (, ([ --> ["
8747 (interactive "p") 8747 (interactive "p")
8748 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8748 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8749 (if (= (preceding-char) ?\() 8749 (if (= (preceding-char) ?\()
@@ -8751,7 +8751,7 @@ is omitted or nil."
8751 (insert-char ?\( 1)) 8751 (insert-char ?\( 1))
8752 (self-insert-command count))) 8752 (self-insert-command count)))
8753 8753
8754(defun vhdl-electric-close-bracket (count) "']' --> ')', ')]' --> ']'" 8754(defun vhdl-electric-close-bracket (count) "] --> ), )] --> ]"
8755 (interactive "p") 8755 (interactive "p")
8756 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8756 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8757 (progn 8757 (progn
@@ -8761,7 +8761,7 @@ is omitted or nil."
8761 (blink-matching-open)) 8761 (blink-matching-open))
8762 (self-insert-command count))) 8762 (self-insert-command count)))
8763 8763
8764(defun vhdl-electric-quote (count) "'' --> \"" 8764(defun vhdl-electric-quote (count) "\\='\\=' --> \""
8765 (interactive "p") 8765 (interactive "p")
8766 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8766 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8767 (if (= (preceding-char) vhdl-last-input-event) 8767 (if (= (preceding-char) vhdl-last-input-event)
@@ -8769,7 +8769,7 @@ is omitted or nil."
8769 (insert-char ?\' 1)) 8769 (insert-char ?\' 1))
8770 (self-insert-command count))) 8770 (self-insert-command count)))
8771 8771
8772(defun vhdl-electric-semicolon (count) "';;' --> ' : ', ': ;' --> ' := '" 8772(defun vhdl-electric-semicolon (count) ";; --> : , : ; --> := "
8773 (interactive "p") 8773 (interactive "p")
8774 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8774 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8775 (cond ((= (preceding-char) vhdl-last-input-event) 8775 (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8783,7 +8783,7 @@ is omitted or nil."
8783 (t (insert-char ?\; 1))) 8783 (t (insert-char ?\; 1)))
8784 (self-insert-command count))) 8784 (self-insert-command count)))
8785 8785
8786(defun vhdl-electric-comma (count) "',,' --> ' <= '" 8786(defun vhdl-electric-comma (count) ",, --> <= "
8787 (interactive "p") 8787 (interactive "p")
8788 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8788 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8789 (cond ((= (preceding-char) vhdl-last-input-event) 8789 (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8793,7 +8793,7 @@ is omitted or nil."
8793 (t (insert-char ?\, 1))) 8793 (t (insert-char ?\, 1)))
8794 (self-insert-command count))) 8794 (self-insert-command count)))
8795 8795
8796(defun vhdl-electric-period (count) "'..' --> ' => '" 8796(defun vhdl-electric-period (count) ".. --> => "
8797 (interactive "p") 8797 (interactive "p")
8798 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8798 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8799 (cond ((= (preceding-char) vhdl-last-input-event) 8799 (cond ((= (preceding-char) vhdl-last-input-event)
@@ -8803,7 +8803,7 @@ is omitted or nil."
8803 (t (insert-char ?\. 1))) 8803 (t (insert-char ?\. 1)))
8804 (self-insert-command count))) 8804 (self-insert-command count)))
8805 8805
8806(defun vhdl-electric-equal (count) "'==' --> ' == '" 8806(defun vhdl-electric-equal (count) "== --> == "
8807 (interactive "p") 8807 (interactive "p")
8808 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal))) 8808 (if (and vhdl-stutter-mode (= count 1) (not (vhdl-in-literal)))
8809 (cond ((= (preceding-char) vhdl-last-input-event) 8809 (cond ((= (preceding-char) vhdl-last-input-event)
diff --git a/lisp/progmodes/which-func.el b/lisp/progmodes/which-func.el
index 81f3b8ff9b2..a8c28130660 100644
--- a/lisp/progmodes/which-func.el
+++ b/lisp/progmodes/which-func.el
@@ -209,11 +209,11 @@ It creates the Imenu index for the buffer, if necessary."
209 (< buffer-saved-size which-func-maxout) 209 (< buffer-saved-size which-func-maxout)
210 (= which-func-maxout 0))) 210 (= which-func-maxout 0)))
211 (setq imenu--index-alist 211 (setq imenu--index-alist
212 (save-excursion (funcall imenu-create-index-function)))) 212 (save-excursion (funcall imenu-create-index-function))))
213 (imenu-unavailable
214 (setq which-func-mode nil))
213 (error 215 (error
214 (unless (equal err 216 (message "which-func-ff-hook error: %S" err)
215 '(user-error "This buffer cannot use `imenu-default-create-index-function'"))
216 (message "which-func-ff-hook error: %S" err))
217 (setq which-func-mode nil)))) 217 (setq which-func-mode nil))))
218 218
219(defun which-func-update () 219(defun which-func-update ()