CVSROOT:        /cvsroot/lilypond
Module name:    lilypond
Branch:         
Changes by:     Jan Nieuwenhuizen <[EMAIL PROTECTED]>   05/05/10 21:58:45

Modified files:
        scm            : lily.scm lily-library.scm framework-gnome.scm 
        lily           : general-scheme.cc 
        .              : ChangeLog 
Added files:
        scripts        : lilypond-invoke-editor.scm 
        scm            : editor.scm 

Log message:
        * scm/editor.scm: New module.
        
        * scm/lily.scm (gui-main): Use it.
        
        * scm/framework-gnome.scm (spawn-editor): Use it.
        
        * scripts/lilypond-invoke-editor.scm: Use it in new script.

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scripts/lilypond-invoke-editor.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/editor.scm?rev=1.1
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily.scm.diff?tr1=1.333&tr2=1.334&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/lily-library.scm.diff?tr1=1.34&tr2=1.35&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/scm/framework-gnome.scm.diff?tr1=1.44&tr2=1.45&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/lily/general-scheme.cc.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/lilypond/lilypond/ChangeLog.diff?tr1=1.3590&tr2=1.3591&r1=text&r2=text

Patches:
Index: lilypond/ChangeLog
diff -u lilypond/ChangeLog:1.3590 lilypond/ChangeLog:1.3591
--- lilypond/ChangeLog:1.3590   Tue May 10 21:16:52 2005
+++ lilypond/ChangeLog  Tue May 10 21:58:45 2005
@@ -1,3 +1,13 @@
+2005-05-10  Jan Nieuwenhuizen  <[EMAIL PROTECTED]>
+
+       * scm/editor.scm: New module.
+
+       * scm/lily.scm (gui-main): Use it.
+
+       * scm/framework-gnome.scm (spawn-editor): Use it.
+
+       * scripts/lilypond-invoke-editor.scm: Use it in new script.
+
 2005-05-10  Han-Wen Nienhuys  <[EMAIL PROTECTED]>
 
        * scm/framework-ps.scm (load-font-via-GS):  new function.
@@ -18,8 +28,6 @@
 
        * scripts/lilypond-pdfpc-helper.py (ly_pc_editor): robustness fixes.
 
-2005-05-10  Jan Nieuwenhuizen  <[EMAIL PROTECTED]>
-
        * scm/backend-library.scm (postscript->pdf): Invoke gs instead of
        going through ps2pdf wrappers.
 
Index: lilypond/lily/general-scheme.cc
diff -u lilypond/lily/general-scheme.cc:1.19 
lilypond/lily/general-scheme.cc:1.20
--- lilypond/lily/general-scheme.cc:1.19        Mon May  9 09:19:52 2005
+++ lilypond/lily/general-scheme.cc     Tue May 10 21:58:45 2005
@@ -277,8 +277,6 @@
   return scm_makfrom0str (prefix_directory.to_str0 ());
 }
 
-
-
 LY_DEFINE (ly_chain_assoc_get, "ly:chain-assoc-get",
           2, 1, 0, (SCM key, SCM achain, SCM dfault),
           "Return value for @var{key} from a list of alists @var{achain}. 
Return @var{dfault} "
@@ -295,3 +293,14 @@
   else
     return dfault == SCM_UNDEFINED ? SCM_BOOL_F : dfault;
 }
+
+LY_DEFINE (ly_port_move, "ly:port-move",
+          2, 0, 0, (SCM fd, SCM port),
+          "Move file descriptor FD to PORT.")
+{
+  SCM_ASSERT_TYPE (scm_port_p (port), port, SCM_ARG1, __FUNCTION__, "port");
+  SCM_ASSERT_TYPE (scm_integer_p (fd), fd, SCM_ARG1, __FUNCTION__, "fd");
+  freopen (ly_scm2newstr (scm_port_filename (port), 0), "a",
+          fdopen (scm_to_int (fd), "a"));
+  return SCM_UNSPECIFIED;
+}
Index: lilypond/scm/framework-gnome.scm
diff -u lilypond/scm/framework-gnome.scm:1.44 
lilypond/scm/framework-gnome.scm:1.45
--- lilypond/scm/framework-gnome.scm:1.44       Tue Apr 12 22:49:25 2005
+++ lilypond/scm/framework-gnome.scm    Tue May 10 21:58:45 2005
@@ -166,12 +166,6 @@
        (add (scrolled go) (canvas go))
        (show (canvas go)))))
 
-(define x-editor #f)
-(define (get-x-editor)
-  (if (not x-editor)
-      (set! x-editor (getenv "XEDITOR")))
-  x-editor)
-
 (define ifs #f)
 (define (get-ifs)
   (if (not ifs)
@@ -184,19 +178,7 @@
   (let* ((file-name (car location))
         (line (cadr location))
         (column (caddr location))
-        (template (substring (get-x-editor) 0))
-        
-        ;; Adhere to %l %c %f?
-        (command
-         (regexp-substitute/global
-          #f "%l" (regexp-substitute/global
-                   #f "%c"
-                   (regexp-substitute/global
-                    #f "%f" template 'pre file-name 'post)
-                   'pre (number->string column)
-                   'post)
-          'pre (number->string line) 'post)))
-    
+        (command (get-editor-command file line column)))
     (debugf "spawning: ~s\n" command)
     (if (= (primitive-fork) 0)
        (let ((command-list (string-split command #\ )));; (get-ifs))))
Index: lilypond/scm/lily-library.scm
diff -u lilypond/scm/lily-library.scm:1.34 lilypond/scm/lily-library.scm:1.35
--- lilypond/scm/lily-library.scm:1.34  Thu Apr 21 14:28:31 2005
+++ lilypond/scm/lily-library.scm       Tue May 10 21:58:45 2005
@@ -304,7 +304,6 @@
        (cons x  (cons between y))))
   (fold-right conc #f lst))
 
-
 (define-public (string-regexp-substitute a b str)
   (regexp-substitute/global #f a str 'pre b 'post)) 
 
Index: lilypond/scm/lily.scm
diff -u lilypond/scm/lily.scm:1.333 lilypond/scm/lily.scm:1.334
--- lilypond/scm/lily.scm:1.333 Tue May 10 07:22:16 2005
+++ lilypond/scm/lily.scm       Tue May 10 21:58:45 2005
@@ -15,8 +15,8 @@
             (ice-9 safe)
              (ice-9 optargs)
             (oop goops)
-            (srfi srfi-1)  ; lists
-            (srfi srfi-13)) ; strings
+            (srfi srfi-1)  ;; lists
+            (srfi srfi-13)) ;; strings
 
 
 ;; my display
@@ -295,33 +295,17 @@
           protects))
      outfile)))
 
+(define-public (tweak-grob-property grob sym val)
+  (set! (ly:grob-property grob sym) val))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(define (no-files-handler)
-  (ly:usage)
-  (exit 2))
-
 (define-public (lilypond-main files)
   "Entry point for LilyPond."
 
   (if (null? files)
       (no-files-handler))
 
-  (let* ((failed '())
-        (handler (lambda (key failed-file)
-            (set! failed (append (list failed-file) failed)))))
-        ;;(handler (lambda (key . arg) (set! failed (append arg failed)))))
-    (for-each
-     (lambda (f)
-       (catch 'ly-file-failed
-             (lambda () (ly:parse-file f))
-             (lambda (x . args) (handler x f)))
-             ;;(lambda (x) (handler x f)))
-       (if #f
-          (dump-gc-protects)))
-     files)
-    
+  (let ((failed (lilypond-all files)))
     (if (pair? failed)
        (begin
          (ly:error (_ "failed files: ~S") (string-join failed))
@@ -331,5 +315,51 @@
          (ly:message "")
          (exit 0)))))
 
-(define-public (tweak-grob-property grob sym val)
-  (set! (ly:grob-property grob sym) val))
+(define (no-files-handler)
+  (ly:usage)
+  (exit 2))
+
+(define-public (lilypond-all files)
+  (let* ((failed '())
+        (handler (lambda (key failed-file)
+                   (set! failed (append (list failed-file) failed)))))
+    ;;(handler (lambda (key . arg) (set! failed (append arg failed)))))
+    (for-each (lambda (x) (lilypond-file handler x)) files)))
+
+(define (lilypond-file handler file-name)
+  (catch 'ly-file-failed
+        (lambda () (ly:parse-file file-name))
+        (lambda (x . args) (handler x file-name)))
+  ;;(lambda (x) (handler x f)))
+  (if #f
+      (dump-gc-protects)))
+
+(use-modules (scm editor))
+
+(define-public (gui-main files)
+  (if (null? files) (gui-no-files-handler))
+  (let* ((base (basename (car files) ".ly"))
+        (log-name (string-append base ".log"))
+        (log-file (open-file log-name "w")))
+    (display "# -*-compilation-*-" log-file)
+    (newline log-file)
+    (ly:message (_ "Redirecting output to ~a...") log-name)
+    (ly:port-move (fileno (current-error-port)) log-file)
+    (if (null? (lilypond-all files))
+       (exit 0)
+       (begin
+         (system (get-editor-command log-name 0 0))
+         (exit 1)))))
+
+(define (gui-no-files-handler)
+  (let* ((input (string-append
+                (string-regexp-substitute
+                 "share/lilypond/" "share/doc/lilypond-"
+                 (getenv "LILYPONDPREFIX"))
+                "-1/input"))
+        (ly (string-append input "/" "Welcome to LilyPond.ly"))
+        (cmd (get-editor-command ly 0 0)))
+    (system cmd)))
+
+;; FIXME
+;; (define lilypond-main gui-main)


_______________________________________________
Lilypond-cvs mailing list
Lilypond-cvs@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-cvs

Reply via email to