branch: externals/gtags-mode
commit 8c6dafd318db33d844f4f806361cac149d8093c0
Author: Jimmy Aguilar Mena <kratsbinov...@gmail.com>
Commit: Jimmy Aguilar Mena <kratsbinov...@gmail.com>

    Enforce file-truename for buffer-file-name.
    
    This fixes the case when using links.
    The value is cached when possible because file-truename is pretty
    expensive when using tramp
---
 gtags-mode.el | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/gtags-mode.el b/gtags-mode.el
index a24ee22bc2..5493a1c821 100644
--- a/gtags-mode.el
+++ b/gtags-mode.el
@@ -251,7 +251,11 @@ Includes the remote prefix concatenation when needed."
     (gtags-mode--set-connection-locals)
     (setq-local gtags-mode--plist
                (or (gtags-mode--get-plist default-directory)
-                   (gtags-mode--create-plist default-directory)))))
+                   (gtags-mode--create-plist default-directory)))
+    (when buffer-file-name
+      (setq-local gtags-mode--plist
+                 (plist-put gtags-mode--plist
+                            :true-file-name (file-truename 
buffer-file-name))))))
 
 (defun gtags-mode--local-plist (&optional dir)
   "Set and return the buffer local value of `gtags-mode--plist'."
@@ -341,10 +345,10 @@ won't have `buffer-file-name' but will just acquire one."
   (when (and buffer-file-name
             (or gtags-mode--plist
                 (gtags-mode--set-local-plist default-directory)))
-    (let* ((default-directory (plist-get gtags-mode--plist :gtagsroot))
-          (filename (file-relative-name buffer-file-name)))
+    (when-let* ((default-directory (plist-get gtags-mode--plist :gtagsroot))
+               (true-file-name (plist-get gtags-mode--plist :true-file-name)))
       (gtags-mode--exec-async
-       'gtags-mode--global "--single-update" filename))))
+       'gtags-mode--global "--single-update" (file-relative-name 
true-file-name)))))
 
 ;; xref integration ==================================================
 (defun gtags-mode--xref-find-symbol (args symbol)

Reply via email to