Subject: [PATCH] speedbar bugfix: only replace '~/' when it appears at the beginning of the path

From: Daniel Lenski <[email-masked]>
Date: Thu, 12 Nov 2020 16:46:09 -0800

This makes Speedbar work correctly with remote directories accessed through TRAMP. This bug has apparently been known for a long time: https://cedet-devel.narkive.com/eIs7LoWB/speedbar-and-tramp#post2

Signed-off-by: Daniel Lenski <[email-masked]>
---
 lisp/speedbar.el | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lisp/speedbar.el b/lisp/speedbar.el
index 991c8a3..3542936 100644
--- a/lisp/speedbar.el
+++ b/lisp/speedbar.el
@@ -1874,7 +1874,7 @@ matches the user directory ~, then it is replaced with a ~.
 INDEX is not used, but is required by the caller."
   (let* ((tilde (expand-file-name "~/"))
 	 (dd (expand-file-name directory))
-	 (junk (string-match (regexp-quote tilde) dd))
+	 (junk (string-match (concat "^" (regexp-quote tilde)) dd))
 	 (displayme (if junk
 			(concat "~/" (substring dd (match-end 0)))
 		      dd))
-- 
2.17.1