]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/lilypond-invoke-editor.scm
Run `make grand-replace'.
[lilypond.git] / scripts / lilypond-invoke-editor.scm
old mode 100755 (executable)
new mode 100644 (file)
index 9fe02c4..7ff2187
@@ -1,11 +1,10 @@
-#!@GUILE@ \
--e main -s
+#!@GUILE@ -s
 !#
 ;;;; lilypond-invoke-editor.scm -- Invoke an editor in file:line:column mode
 ;;;;
 ;;;; source file of the GNU LilyPond music typesetter
 ;;;;
-;;;; (c)  2005 Jan Nieuwenhuizen <janneke@gnu.org>
+;;;; (c) 2005--2008 Jan Nieuwenhuizen <janneke@gnu.org>
 
 ;; gui debug helper
 ;; (define (exit x) (system "sleep 10"))
@@ -13,6 +12,7 @@
 (use-modules
  (ice-9 getopt-long)
  (ice-9 regex)
+ (srfi srfi-1)
  (srfi srfi-13)
  (srfi srfi-14))
 
 
 ;; argv0 relocation -- do in wrapper?
 
-
-(define LILYPONDPREFIX
+(define LILYPOND_DATADIR
   (let* ((prefix
-         (or (getenv "LILYPONDPREFIX")
+         (or (getenv "LILYPOND_DATADIR")
              (dirname  (dirname (car (command-line)))))))
     
 
@@ -43,7 +42,7 @@
     (define-public (_ x) x))
 
 (define (show-version port)
-  (format port "~a (GNU LilyPond) ~a \n" PROGRAM-NAME TOPLEVEL-VERSION))
+  (format port "~a (GNU LilyPond) ~a\n" PROGRAM-NAME TOPLEVEL-VERSION))
 
 (define (show-help port)
   (format port (_ "Usage: lilypond-invoke-editor [textedit://]FILE:LINE:CHAR:COLUMN
@@ -120,9 +119,24 @@ Options:
          (exit 1)))))
 
 (define (run-browser uri)
-
-  ;; TODO: make educated guess which browser to run.
-  (system (format #f "firefox -remote 'OpenURL(~a,new-tab)'" uri)))
+  (system
+   (if (getenv "BROWSER")
+       (format "~a ~a" (getenv "BROWSER") uri)
+       (format #f "firefox -remote 'OpenURL(~a,new-tab)'" uri))))
+
+
+(define (strip-framework-path var)
+  (define pat "lilypond/usr")
+  (if (getenv var)
+      (let*
+         ((val (getenv var))
+          (paths (string-split val #\:))
+          (without (remove (lambda (s) (string-contains s pat))
+                           paths)))
+       
+       (if (not (= (length without)
+                   (length paths)))
+           (setenv var (string-join without ":"))))))
 
 (define (main args)
   (let ((files (parse-options args)))
@@ -137,11 +151,14 @@ Options:
        (begin
          (show-help (current-error-port))
          (exit 2)))
-    (set! %load-path (cons LILYPONDPREFIX %load-path))
+    (set! %load-path (cons LILYPOND_DATADIR %load-path))
+
     (primitive-eval '(use-modules (scm editor)))
 
+    (strip-framework-path "LD_LIBRARY_PATH")
     (let* ((uri (car files)))
       (if (is-textedit-uri? uri)
          (run-editor uri)
          (run-browser uri)))))
 
+(main (command-line))