Subject: [bug#61756] [PATCH 5/8] gnu: Add emacs-xcscope.

From: Rostislav Svoboda <[email-masked]>
Date: Sat, 11 Mar 2023 14:08:45 +0100

Hello,

 I'm resending the patch yet again. See below. I missed that
'(revision "0")' and didn't run `guix lint`. (Sorry, I'm learning)

> You also need to add `cscope' as an input, and patch "xscope.el" so
> `cscope-program' point to the proper binary, using
> `emacs-substitute-variables'. See, e.g., emacs-plz package for an
> example.

`guix style` makes this line too long. I guess I can ignore that, right?

Regards
Bost

>From 57e30de01ab56f5917580e43f69ce558187432fb Mon Sep 17 00:00:00 2001
From: Rostislav Svoboda <[email-masked]>
Date: Sat, 11 Mar 2023 12:50:08 +0100
Subject: [PATCH 1/3] gnu: Add emacs-xcscope.

* gnu/packages/emacs-xyz.scm (emacs-xcscope): New variable.
---
 gnu/packages/emacs-xyz.scm | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 13caf6e882..509c640b78 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -4176,6 +4176,39 @@ (define-public emacs-form-feed
 into mode hooks and is intended to be used that way.")
     (license license:gpl3+)))

+(define-public emacs-xcscope
+  (let ((commit "d228d7593d762e457340f678d14b663ef66d7cee")
+        (revision "0"))
+    (package
+      (name "emacs-xcscope")
+      (version (git-version "1.5" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/dkogan/xcscope.el")
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "0pr85ywp585imjzswm04647nb4iqqvg8jgmbcs5210qmr9kh0z8d"))))
+      (build-system emacs-build-system)
+      (inputs (list cscope))
+      (arguments
+       (list
+        #:phases
+        #~(modify-phases %standard-phases
+            (add-after 'unpack 'substitute-cscope-path
+              (lambda* (#:key inputs #:allow-other-keys)
+                (emacs-substitute-variables "xcscope.el"
+                  ("cscope-program" (search-input-file
+                                     inputs "/bin/cscope"))))))))
+      (home-page "https://github.com/dkogan/xcscope.el")
+      (synopsis "Interface to the source cross-referencing tool Cscope")
+      (description
+       "Xcscope is an Emacs interface to Cscope, the source cross-referencing
+tool.  See https://cscope.sf.net")
+      (license license:gpl2+))))
+
 (define-public emacs-ggtags
   (package
     (name "emacs-ggtags")
-- 
2.39.2