diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el index 5f9a3fa352..9f0ac38ec7 100644 --- a/lisp/cedet/semantic/symref/grep.el +++ b/lisp/cedet/semantic/symref/grep.el @@ -168,7 +168,8 @@ semantic-symref-perform-search (erase-buffer) (setq default-directory rootdir) (let ((cmd (semantic-symref-grep-use-template - (file-local-name rootdir) filepattern grepflags greppat))) + (file-name-as-directory (file-local-name rootdir)) + filepattern grepflags greppat))) (process-file semantic-symref-grep-shell nil b nil shell-command-switch cmd))) (setq ans (semantic-symref-parse-tool-output tool b)) diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el index d417382c0d..f91246a885 100644 --- a/lisp/progmodes/project.el +++ b/lisp/progmodes/project.el @@ -291,7 +291,7 @@ project--files-in-directory (localdir (file-local-name (expand-file-name dir))) (command (format "%s %s %s -type f %s -print0" find-program - localdir + (file-name-as-directory localdir) (xref--find-ignores-arguments ignores localdir) (if files (concat (shell-quote-argument "(") diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el index d2b5acd555..bacc5e6f1c 100644 --- a/lisp/progmodes/xref.el +++ b/lisp/progmodes/xref.el @@ -161,11 +161,13 @@ xref--project-root-memo "Cons mapping `default-directory' value to the search root.") (cl-defmethod xref-location-group ((l xref-file-location)) + (let ((file (oref l file))) + (unless (eq xref-file-name-display 'abs) + (setq file (replace-regexp-in-string "//" "/" file t t))) (cl-ecase xref-file-name-display - (abs - (oref l file)) + (abs file) (nondirectory - (file-name-nondirectory (oref l file))) + (file-name-nondirectory file)) (project-relative (unless (and xref--project-root-memo (equal (car xref--project-root-memo) @@ -176,12 +178,12 @@ xref-location-group (let ((pr (project-current))) (and pr (xref--project-root pr))))) (and root (expand-file-name root)))))) - (let ((file (oref l file)) + (let ((file file) (search-root (cdr xref--project-root-memo))) (if (and search-root (string-prefix-p search-root file)) (substring file (length search-root)) - file))))) + file)))))) (defclass xref-buffer-location (xref-location) ((buffer :type buffer :initarg :buffer) @@ -1374,7 +1376,8 @@ xref-matches-in-directory ;; do that reliably enough, without creating false negatives? (command (xref--rgrep-command (xref--regexp-to-extended regexp) files - (file-local-name (expand-file-name dir)) + (file-name-as-directory + (file-local-name (expand-file-name dir))) ignores)) (def default-directory) (buf (get-buffer-create " *xref-grep*"))