@@ -7839,35 +7839,37 @@ directory first, then in subdirectories if
78397839`markdown-wiki-link-search-subdirectories' is non-nil, and then
78407840in parent directories if
78417841`markdown-wiki-link-search-parent-directories' is non-nil."
7842- (let* ((basename (replace-regexp-in-string
7843- "[[:space:]\n]" markdown-link-space-sub-char name))
7844- (basename (if (derived-mode-p 'gfm-mode)
7845- (concat (upcase (substring basename 0 1))
7846- (downcase (substring basename 1 nil)))
7847- basename))
7848- directory extension default candidates dir)
7849- (when buffer-file-name
7850- (setq directory (file-name-directory buffer-file-name)
7851- extension (file-name-extension buffer-file-name)))
7852- (setq default (concat basename
7853- (when extension (concat "." extension))))
7854- (cond
7855- ;; Look in current directory first.
7856- ((or (null buffer-file-name)
7857- (file-exists-p default))
7858- default)
7859- ;; Possibly search in subdirectories, next.
7860- ((and markdown-wiki-link-search-subdirectories
7861- (setq candidates
7862- (directory-files-recursively
7863- directory (concat "^" default "$"))))
7864- (car candidates))
7865- ;; Possibly search in parent directories as a last resort.
7866- ((and markdown-wiki-link-search-parent-directories
7867- (setq dir (locate-dominating-file directory default)))
7868- (concat dir default))
7869- ;; If nothing is found, return default in current directory.
7870- (t default))))
7842+ (save-match-data
7843+ ;; This function must not overwrite match data(PR #590)
7844+ (let* ((basename (replace-regexp-in-string
7845+ "[[:space:]\n]" markdown-link-space-sub-char name))
7846+ (basename (if (derived-mode-p 'gfm-mode)
7847+ (concat (upcase (substring basename 0 1))
7848+ (downcase (substring basename 1 nil)))
7849+ basename))
7850+ directory extension default candidates dir)
7851+ (when buffer-file-name
7852+ (setq directory (file-name-directory buffer-file-name)
7853+ extension (file-name-extension buffer-file-name)))
7854+ (setq default (concat basename
7855+ (when extension (concat "." extension))))
7856+ (cond
7857+ ;; Look in current directory first.
7858+ ((or (null buffer-file-name)
7859+ (file-exists-p default))
7860+ default)
7861+ ;; Possibly search in subdirectories, next.
7862+ ((and markdown-wiki-link-search-subdirectories
7863+ (setq candidates
7864+ (directory-files-recursively
7865+ directory (concat "^" default "$"))))
7866+ (car candidates))
7867+ ;; Possibly search in parent directories as a last resort.
7868+ ((and markdown-wiki-link-search-parent-directories
7869+ (setq dir (locate-dominating-file directory default)))
7870+ (concat dir default))
7871+ ;; If nothing is found, return default in current directory.
7872+ (t default)))))
78717873
78727874(defun markdown-follow-wiki-link (name &optional other)
78737875 "Follow the wiki link NAME.
0 commit comments