From: Dmitry Gutov <dgutov@yandex.ru>
Date: Wed, 26 Jul 2017 16:34:48 +0000 (+0300)
Subject: Fix semantic-symref-parse-tool-output-one-line after 644cdd1aa0
X-Git-Tag: emacs-26.0.90~517^2~102
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=851452f8f754324bba3374c46d2029c3d23a339f;p=emacs.git

Fix semantic-symref-parse-tool-output-one-line after 644cdd1aa0

* lisp/cedet/semantic/symref/grep.el
(semantic-symref-grep--line-re): Delete.
(semantic-symref-parse-tool-output-one-line):
Use regexp and group numbers from (grep-regexp-alist).
---

diff --git a/lisp/cedet/semantic/symref/grep.el b/lisp/cedet/semantic/symref/grep.el
index 42dc40cce04..df71508da7c 100644
--- a/lisp/cedet/semantic/symref/grep.el
+++ b/lisp/cedet/semantic/symref/grep.el
@@ -189,26 +189,25 @@ This shell should support pipe redirect syntax."
     ;; Return the answer
     ans))
 
-(defconst semantic-symref-grep--line-re
-  "^\\(\\(?:[a-zA-Z]:\\)?[^:\n]+\\):\\([0-9]+\\):")
-
 (cl-defmethod semantic-symref-parse-tool-output-one-line ((tool semantic-symref-tool-grep))
   "Parse one line of grep output, and return it as a match list.
 Moves cursor to end of the match."
-  (cond ((eq (oref tool :resulttype) 'file)
-	 ;; Search for files
-	 (when (re-search-forward "^\\([^\n]+\\)$" nil t)
-	   (match-string 1)))
-        ((eq (oref tool :resulttype) 'line-and-text)
-         (when (re-search-forward semantic-symref-grep--line-re nil t)
-           (list (string-to-number (match-string 2))
-                 (match-string 1)
-                 (buffer-substring-no-properties (point) (line-end-position)))))
-	(t
-	 (when (re-search-forward semantic-symref-grep--line-re nil t)
-	   (cons (string-to-number (match-string 2))
-		 (match-string 1))
-	   ))))
+  (pcase-let
+      ((`(,grep-re ,file-group ,line-group . ,_) (car (grep-regexp-alist))))
+    (cond ((eq (oref tool :resulttype) 'file)
+	   ;; Search for files
+	   (when (re-search-forward "^\\([^\n]+\\)$" nil t)
+	     (match-string 1)))
+          ((eq (oref tool :resulttype) 'line-and-text)
+           (when (re-search-forward grep-re nil t)
+             (list (string-to-number (match-string line-group))
+                   (match-string file-group)
+                   (buffer-substring-no-properties (point) (line-end-position)))))
+	  (t
+	   (when (re-search-forward grep-re nil t)
+	     (cons (string-to-number (match-string line-group))
+		   (match-string file-group))
+	     )))))
 
 (provide 'semantic/symref/grep)