From db80981d9ad525847d520271be0760b099912ce5 Mon Sep 17 00:00:00 2001
From: Han-Wen Nienhuys <hanwen@xs4all.nl>
Date: Wed, 21 Feb 2007 14:59:41 +0100
Subject: [PATCH] Fix #306.

Inspect 'point-and-click in output-scm; don't redefine mark_URI.
---
 scm/framework-ps.scm |  3 --
 scm/output-ps.scm    | 65 ++++++++++++++++++++++----------------------
 2 files changed, 33 insertions(+), 35 deletions(-)

diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm
index f2eb8fa113..a5fd02fb1c 100644
--- a/scm/framework-ps.scm
+++ b/scm/framework-ps.scm
@@ -433,9 +433,6 @@
   (display (procset "music-drawing-routines.ps") port)
   (display (procset "lilyponddefs.ps") port)
 
-  (if (not (ly:get-option 'point-and-click))
-      (display "/mark_URI { pop pop pop pop pop } bind def\n" port)) 
-
   (display "%%EndProlog\n" port)
   
   (display "%%BeginSetup\ninit-lilypond-parameters\n%%EndSetup\n\n" port))
diff --git a/scm/output-ps.scm b/scm/output-ps.scm
index 46eb2ed892..11e2190286 100644
--- a/scm/output-ps.scm
+++ b/scm/output-ps.scm
@@ -147,38 +147,39 @@
 
 
 (define (grob-cause offset grob)
-  (let* ((cause (ly:grob-property grob 'cause))
-	 (music-origin (if (ly:stream-event? cause)
-			   (ly:event-property cause 'origin))))
-    (if (not (ly:input-location? music-origin))
-	""
-	(let* ((location (ly:input-file-line-char-column music-origin))
-	       (raw-file (car location))
-	       (file (if (is-absolute? raw-file)
-			 raw-file
-			 (string-append (ly-getcwd) "/" raw-file)))
-	       (x-ext (ly:grob-extent grob grob X))
-	       (y-ext (ly:grob-extent grob grob Y)))
-
-	  (if (and (< 0 (interval-length x-ext))
-		   (< 0 (interval-length y-ext)))
-	      (ly:format "~4f ~4f ~4f ~4f (textedit://~a:~a:~a:~a) mark_URI\n"
-			 (+ (car offset) (car x-ext))
-			 (+ (cdr offset) (car y-ext))
-			 (+ (car offset) (cdr x-ext))
-			 (+ (cdr offset) (cdr y-ext))
-
-			 ;; TODO
-			 ;;full escaping.
-
-			 ;; backslash is interpreted by GS.
-			 (ly:string-substitute "\\" "/" 
-					       (ly:string-substitute " " "%20" file))
-			 (cadr location)
-			 (caddr location)
-			 (cadddr location))
-	      "")))))
-
+  (if (ly:get-option 'point-and-click)
+      (let* ((cause (ly:grob-property grob 'cause))
+	     (music-origin (if (ly:stream-event? cause)
+			       (ly:event-property cause 'origin))))
+	(if (ly:input-location? music-origin)
+	    (let* ((location (ly:input-file-line-char-column music-origin))
+		   (raw-file (car location))
+		   (file (if (is-absolute? raw-file)
+			     raw-file
+			     (string-append (ly-getcwd) "/" raw-file)))
+		   (x-ext (ly:grob-extent grob grob X))
+		   (y-ext (ly:grob-extent grob grob Y)))
+
+	      (if (and (< 0 (interval-length x-ext))
+		       (< 0 (interval-length y-ext)))
+		  (ly:format "~4f ~4f ~4f ~4f (textedit://~a:~a:~a:~a) mark_URI\n"
+			     (+ (car offset) (car x-ext))
+			     (+ (cdr offset) (car y-ext))
+			     (+ (car offset) (cdr x-ext))
+			     (+ (cdr offset) (cdr y-ext))
+
+			     ;; TODO
+			     ;;full escaping.
+
+			     ;; backslash is interpreted by GS.
+			     (ly:string-substitute "\\" "/" 
+						   (ly:string-substitute " " "%20" file))
+			     (cadr location)
+			     (caddr location)
+			     (cadddr location))
+		  ""))
+	    ""))
+      ""))
 
 (define (named-glyph font glyph)
   (ly:format "~a /~a glyphshow " ;;Why is there a space at the end?
-- 
2.39.5