X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Flilypond-invoke-editor.scm;h=7ff21871fe4ac444e7a07c6f984fca5992344f66;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=9fe02c467f5beef121b207a2607e2ad63d6fbd05;hpb=98917430c66cf99c9ac706003056396b890319ff;p=lilypond.git diff --git a/scripts/lilypond-invoke-editor.scm b/scripts/lilypond-invoke-editor.scm old mode 100755 new mode 100644 index 9fe02c467f..7ff21871fe --- a/scripts/lilypond-invoke-editor.scm +++ b/scripts/lilypond-invoke-editor.scm @@ -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 +;;;; (c) 2005--2008 Jan Nieuwenhuizen ;; 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)) @@ -24,10 +24,9 @@ ;; 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))