X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=inline;f=scripts%2Flilypond-invoke-editor.scm;h=d847be27e9c0475e1063e1755e0b1166b686b930;hb=48bf29cfe7e13b2cb61c51a276305472ec84c08b;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..d847be27e9 --- 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--2007 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))))))) @@ -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))