summaryrefslogtreecommitdiff
path: root/lisp/info.el
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2018-04-17 23:14:55 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2018-04-17 23:14:55 +0200
commite3b0dd6bf118c60ba41a09e3ffdce056b2e7c494 (patch)
treef0f8c6101513fa2175d0e898dc946800fb6d0d28 /lisp/info.el
parentf10fa789ca8f0feff0e85df3624270604ed54dd6 (diff)
downloademacs-e3b0dd6bf118c60ba41a09e3ffdce056b2e7c494.tar.gz
Fix problem in `g' in Info with strings like "(foo)"
* lisp/info.el (Info-find-file): Add a new parameter to avoid jumping to the directory if the user looks for a filename on the form "(foo)" that doesn't exist. (Info-read-node-name-1): Use it to allow completing over strings like "(foo)" without losing focus (bug#30091).
Diffstat (limited to 'lisp/info.el')
-rw-r--r--lisp/info.el12
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/info.el b/lisp/info.el
index 8743b449976..0db84fb3dab 100644
--- a/lisp/info.el
+++ b/lisp/info.el
@@ -868,10 +868,13 @@ In standalone mode, \\<Info-mode-map>\\[Info-exit] exits Emacs itself."
(forward-line 1) ; does the line after delimiter match REGEXP?
(re-search-backward regexp beg t))))
-(defun Info-find-file (filename &optional noerror)
+(defun Info-find-file (filename &optional noerror no-pop-to-dir)
"Return expanded FILENAME, or t if FILENAME is \"dir\".
Optional second argument NOERROR, if t, means if file is not found
-just return nil (no error)."
+just return nil (no error).
+
+If NO-POP-TO-DIR, don't try to pop to the info buffer if we can't
+find a node."
;; Convert filename to lower case if not found as specified.
;; Expand it.
(cond
@@ -930,7 +933,8 @@ just return nil (no error)."
(if noerror
(setq filename nil)
;; If there is no previous Info file, go to the directory.
- (unless Info-current-file
+ (when (and (not no-pop-to-dir)
+ (not Info-current-file))
(Info-directory))
(user-error "Info file %s does not exist" filename)))
filename))))
@@ -1868,7 +1872,7 @@ See `completing-read' for a description of arguments and usage."
(lambda (string pred action)
(complete-with-action
action
- (Info-build-node-completions (Info-find-file file1))
+ (Info-build-node-completions (Info-find-file file1 nil t))
string pred))
nodename predicate code))))
;; Otherwise use Info-read-node-completion-table.