]> git.donarmstrong.com Git - lilypond.git/commitdiff
(save-tweaks): use new key mechanism for
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 14 Nov 2004 16:06:31 +0000 (16:06 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 14 Nov 2004 16:06:31 +0000 (16:06 +0000)
saving tweaks.

lily/grob.cc
lily/lily-parser.cc
lily/lilypond-key.cc
lily/object-key-dumper.cc
scm/framework-gnome.scm

index 66a0caf8cd70ece636b0dafbfc1dd54a45a2f646..fe43a6218c368618ca06d1f812f7bbad146580d9 100644 (file)
@@ -602,7 +602,7 @@ Grob::mark_smob (SCM ses)
 {
   Grob *s = (Grob*) SCM_CELL_WORD_1 (ses);
   scm_gc_mark (s->immutable_property_alist_);
-
+  scm_gc_mark (s->key_->self_scm ());
   for (int a = 0 ; a < 2; a++)
     {
       scm_gc_mark (s->dim_cache_[a].offset_callbacks_);
index d83528ccc59e863c27cb138c97c3c1f3c9784e3d..566d789e07512db265616c8c64f895c2cb71a70e 100644 (file)
@@ -104,10 +104,11 @@ Lily_parser::parse_file (String init, String name, String out_name)
   set_yydebug (0);
 
   lexer_->new_input (init, sources_);
+
 #ifdef TWEAK
   File_name f (name);
   String s = global_path.find (f.base_ + ".twy");
-  if (s == "")
+  if (1 || s == "")
     Grob_selector::set_tweaks (SCM_EOL);
   else
     {
index 21d3f6ed61984b1ff255255d3dd1e906578031dd..08b12298dc6cf6e28daa2700ceea0acf7616ae7e 100644 (file)
@@ -212,7 +212,6 @@ Lilypond_general_key::do_compare (Object_key const* key)const
   if (c)
     return c;
 
-v  
   c = sign (disambiguation_count_ - other->disambiguation_count_);
   if (c)
     return c;
index 6fc4c782611804bdb04d5d44614f5e88fd10240d..7fcbfcdc90d109fc6556dbb0f0d1ee227666e142 100644 (file)
@@ -108,7 +108,7 @@ Object_key_dumper::get_file_contents () const
 }
 
 LY_DEFINE(ly_make_dumper, "ly:make-dumper",
-         1,0,0,
+         0,0,0,
          (),
          "Create a key dumper. "
          )
index 3c2636e62dbf352151f602b285f12cf7ffe61c05..21650136529ff400bad39830913b2df4ea4b9fa6 100644 (file)
         (origin (if (null? extra-offset) '(0 . 0)
                     (cons (car extra-offset)
                           (- 0 (cdr extra-offset))))))
-    (if grob (hashq-set! (grob-tweaks go) grob
-                        (cons
-                         'extra-offset
-                         (list
-                          (cons (+ (car origin) (car offset))
-                                (- 0 (+ (cdr origin) (cdr offset))))))))))
+    
+    (if grob
+       (hashq-set! (grob-tweaks go) grob
+                   (cons
+                    'extra-offset
+                    (list
+                     (cons (+ (car origin) (car offset))
+                           (- 0 (+ (cdr origin) (cdr offset))))))))))
 
 ;; FIXME: this only saves new tweaks, old tweaks are lost.
 (define-method (save-tweaks (go <gnome-outputter>))
-  (let ((tweaks (hash-fold
-                (lambda (key value seed)
-                  (cons (cons (ly:grob-id key) value) seed))
-                '() (grob-tweaks go))))
+  (let*
+      ((dumper (ly:make-dumper))
+       (tweaks (hash-fold
+               (lambda (grob value seed)
+                 (cons
+                  (list 'set-property
+                        (list
+                         'key
+                         (ly:dumper-key-serial dumper (ly:grob-key grob)))
+                        value)
+                  seed))
+               '() (grob-tweaks go))))
+    
     (if (not (null? tweaks))
        (let ((file (open-file (string-append (name go) ".twy") "w")))
-         (format file ";;; TWEAKS \n'~S\n" tweaks)))))
+         (format file ";;; KEYS\n`~S\n;;; TWEAKS \n`~S\n"
+                 (ly:dumper-definitions dumper)
+                 tweaks)))))
 
 ;;;(define (item-event go grob item event)
 (define (item-event go item event)