branch: externals/gtags-mode
commit 87245a0bb075f37b9e82fd2a5f799e4636392a1e
Author: Aymeric Agon-Rambosson <[email protected]>
Commit: Aymeric Agon-Rambosson <[email protected]>
Correct path to file when definition is found in GTAGSLIBPATH
--path-style=through always prints the path as it is found in the GPATH
file,
which is not necessarily equivalent to "relative from the project root".
See https://lists.gnu.org/archive/html/bug-global/2025-05/msg00000.html and
https://lists.gnu.org/archive/html/bug-global/2025-05/msg00001.html
If you want to always print the path as relative to the root of the
project, it
is better to use --path-style=relative (which can be omitted, being
default) in
conjunction with -C or --directory pointing to the project root.
---
gtags-mode.el | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/gtags-mode.el b/gtags-mode.el
index 0c253f173f..a6b969d9b1 100644
--- a/gtags-mode.el
+++ b/gtags-mode.el
@@ -104,7 +104,7 @@ The address is absolute for remote hosts.")
"Regex to filter the output with `gtags-mode--output-format-options'.")
(defconst gtags-mode--output-format-options
- '("--result=cscope" "--path-style=through" "--color=never")
+ '("--result=cscope" "--path-style=relative" "--color=never")
"Command line options to use with `gtags-mode--output-format-regex'.")
(defsubst gtags-mode--message (level format-string &rest args)
@@ -278,11 +278,11 @@ name, code, file, line."
(funcall creator
(match-string-no-properties 2 line) ;; name
(match-string-no-properties 4 line) ;; code
- (concat root (substring-no-properties
- line (1+ (match-beginning 1))
(match-end 1))) ;; file
+ (concat root (match-string-no-properties 1
line)) ;; file
(string-to-number (match-string-no-properties 3
line))))) ;; line
(apply #'gtags-mode--exec-sync
- (append gtags-mode--output-format-options args `(,symbol))
)))
+ (append '("--directory") `(,(file-local-name root))
+ gtags-mode--output-format-options args
`(,symbol)))))
(error "Calling gtags-mode--filter-find-symbol without GTAGSROOT")
nil))