]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.3.122.mb1
authorMats Bengtsson <mats.bengtsson@s3.kth.se>
Thu, 11 Jan 2001 00:26:23 +0000 (01:26 +0100)
committerMats Bengtsson <mats.bengtsson@s3.kth.se>
Thu, 11 Jan 2001 00:26:23 +0000 (01:26 +0100)
1.3.122.mb1
===========

* Allow for wildcards in the font style alist to give more robust font
  selection handling. Ignore shape and series for the font families:
  braces, dynamic and music.

---
Generated by (address unknown),
From = lilypond-1.3.122, To = lilypond-1.3.122.mb1

usage

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.3.122.mb1.diff

Patches do not contain automatically generated files
or (urg) empty directories,
i.e., you should rerun autoconf, configure

CHANGES
VERSION
lily/font-interface.cc
lily/include/font-interface.hh
mf/feta-banier.mf
scm/font.scm

diff --git a/CHANGES b/CHANGES
index cae6c3ae8cf0af75694a9195662343b5bfc6b494..155d52cdf72090159e73f76f15c21c9d2bc57a40 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,4 +1,16 @@
-1.3.122.jcn2
+--- ../lilypond-1.3.122/CHANGES        Tue Jan  9 20:00:34 2001
+++ b/CHANGES   Thu Jan 11 01:26:23 2001
+@@ -1,3 +1,10 @@
+1.3.122.mb1
+===========
+
+* Allow for wildcards in the font style alist to give more robust font
+  selection handling. Ignore shape and series for the font families:
+  braces, dynamic and music.
+
+ 1.3.121.hwn1
+ ============
+ 1.3.122.jcn2
 ============
 
 * Doco fixes, included feature document into main documentation.
diff --git a/VERSION b/VERSION
index 293a139c39e1be8e35f43ba4ff1f3939acd49eaa..c91dd2226d66f19e4a9a05b35b3a54716ba54b05 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
 PATCH_LEVEL=122
-MY_PATCH_LEVEL=jcn2
+MY_PATCH_LEVEL=mb1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index d5a15ab2d9a5ed42a908648ab50aa444f8ab6946..51b98eef5c8c93d807e5b449b01b368cc27d28f3 100644 (file)
@@ -99,7 +99,7 @@ so a 14% speedup.
 
 */
 
-static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, pt_sz_sym;
+static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, pt_sz_sym, wild_sym;
 
 
 static void
@@ -111,8 +111,14 @@ init_syms ()
   series_sym = scm_permanent_object (ly_symbol2scm ("font-series"));
   rel_sz_sym = scm_permanent_object (ly_symbol2scm ("font-relative-size"));
   pt_sz_sym = scm_permanent_object (ly_symbol2scm ("font-point-size"));
+  wild_sym = scm_permanent_object (ly_symbol2scm ("*"));
 }
 
+bool
+Font_interface::wild_compare(SCM field_val, SCM val)
+{
+  return (val == SCM_BOOL_F || field_val == wild_sym || field_val == val);
+}
 
 ADD_SCM_INIT_FUNC(Font_interface_syms,init_syms);
 
@@ -163,31 +169,29 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
 
       if (name != SCM_BOOL_F)
        {
-         if (scm_list_ref (qlist, gh_int2scm (4)) != name)
+         if (!wild_compare(scm_list_ref (qlist, gh_int2scm (4)), name))
            continue;
        }
       else
        {
-         if (series != SCM_BOOL_F
-             && scm_list_ref (qlist, gh_int2scm (1)) != series)
+         if (!wild_compare(scm_list_ref (qlist, gh_int2scm (1)), series))
            continue;
-         if (shape != SCM_BOOL_F
-             && scm_list_ref (qlist, gh_int2scm (2)) != shape)
+         if (!wild_compare(scm_list_ref (qlist, gh_int2scm (2)), shape))
            continue;
-         if (family != SCM_BOOL_F
-             && scm_list_ref (qlist, gh_int2scm (3)) != family)
+         if (!wild_compare(scm_list_ref (qlist, gh_int2scm (3)), family))
            continue;
        }
   
       if (point_sz != SCM_BOOL_F)
        {
-         if (scm_list_ref (qlist, gh_int2scm (4)) != name)
+         // This if statement will always be true since name must 
+         // be SCM_BOOL_F here, right?  /MB
+         if (!wild_compare(scm_list_ref (qlist, gh_int2scm (4)), name))
            continue;
        }
       else
        {
-         if (rel_sz != SCM_BOOL_F
-             && gh_car (qlist) != rel_sz)
+         if (!wild_compare(gh_car (qlist), rel_sz))
            continue;
        }
 
@@ -198,6 +202,7 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
 
   warning (_("couldn't find any font satisfying ") );
   scm_write (gh_list (name, point_sz, shape, series , family, rel_sz, SCM_UNDEFINED), scm_current_error_port ());
+  scm_flush(scm_current_error_port ());
 
   return ly_str02scm ("cmr10");
   
index 52189a10f40e4a7b22f4bd411158306c6abeea27..e18cc9f3ef33bf41027fd23755907890f7801a46 100644 (file)
@@ -19,6 +19,7 @@ struct Font_interface
   static Font_metric * get_font (Grob*, SCM alist_chain);
   static Font_metric * get_default_font (Grob*);
   static SCM add_style (Grob*, SCM style, SCM alist_chain);
+  static bool wild_compare(SCM field_val, SCM val);
   DECLARE_SCHEME_CALLBACK(properties_to_font_name, (SCM,SCM));
 };
 
index 8f68b5f5cfc999f9766f2544f36a38c15e47509f..482d993f8ffd3072a9d5183d47924a1534768434 100644 (file)
@@ -434,16 +434,16 @@ fet_endchar;
 
 % ustem?
 fet_beginchar("stem (up)", "stem", "stem")
-       set_char_box(stemthickness#/2, 0, 3.5staff_space#, stemthickness#/2);
+       set_char_box(stemthickness#/2, stemthickness#/2, 0, 3.5staff_space#);
        pickup pencircle scaled stemthickness;
        draw (0, 0.2staff_space) .. (0, 3.5staff_space);
 fet_endchar;
 
 % do we want this?
 fet_beginchar("stem (down)", "dstem", "dstem")
-       set_char_box(stemthickness#/2, -3.5staff_space#, 0, stemthickness#/2);
+       set_char_box(stemthickness#/2, stemthickness#/2, 3.5staff_space#, 0);
        pickup pencircle scaled stemthickness;
-       draw (0, -0.2staff_space) .. (-3.5staff_space, 0);
+       draw (0, -0.2staff_space) .. (0, -3.5staff_space);
 fet_endchar;
 
 
index b77414dc4f82af21c4430f285a2c1729d336974b..ffa1c28c476eec80037ce81c59e5cafc27d79dfe 100644 (file)
@@ -45,7 +45,8 @@
 (define (filter-field field-name value font-descr-alist)
   "return those descriptions from FONT-DESCR-LIST whose FIELD-NAME matches VALUE"
       (filter-list
-       (lambda (x) (eq? value (font-field field-name (car x))))
+       (lambda (x) (let* (field-value (font-field field-name (car x))) 
+                    (or (eq? field-value '*) (eq? value field-value))))
        font-descr-alist)
       )
 
     ((-5 medium upright typewriter cmtt 4) . "cmtt4" )
 
     ;; should use the same brace font every where and fix C++ code.
-    ((2 medium upright braces feta-braces 26) . "feta-braces26")
-    ((1 medium upright braces feta-braces 23) . "feta-braces23")
-    ((0 medium upright braces feta-braces 20) . "feta-braces20")
-    ((-1 medium upright braces feta-braces 16) . "feta-braces16")
-    ((-2 medium upright braces feta-braces 13) . "feta-braces13")
-    ((-3 medium upright braces feta-braces 11) . "feta-braces11")
-
-    ((3 bold italic dynamic feta-din 19) . "feta-din19")
-    ((2 bold italic dynamic feta-din 19) . "feta-din19")
-    ((1 bold italic dynamic feta-din 17) . "feta-din17")
-    ((0 bold italic dynamic feta-din 14) . "feta-din14")
-    ((-1 bold italic dynamic feta-din 12) . "feta-din12")
-    ((-2 bold italic dynamic feta-din 9) . "feta-din9")
-    ((-3 bold italic dynamic feta-din 8) . "feta-din8")
-    ((-4 bold italic dynamic feta-din 7) . "feta-din7")
-    ((-5 bold italic dynamic feta-din 6) . "feta-din6")
-
-    ((2 medium upright music feta 26) . "feta26")
-    ((1 medium upright music feta 23) . "feta23")
-    ((0 medium upright music feta 20) . "feta20")
-    ((-0.5 medium upright music feta 20) . "feta19")    
-    ((-1 medium upright music feta 16) . "feta16")
-    ((-2 medium upright music feta 13) . "feta13")
-    ((-3 medium upright music feta 11) . "feta11")
-    ((-4 medium upright music feta 11) . "feta11")
-
-    ((0 medium upright math msam 10) . "msam10")
-    ((-1 medium upright math msam 10) . "msam10")
-    ((-2 medium upright math msam 10) . "msam10")
-    ((-3 medium upright math msam 10) . "msam10")
+    ((2 * * braces feta-braces 26) . "feta-braces26")
+    ((1 * * braces feta-braces 23) . "feta-braces23")
+    ((0 * * braces feta-braces 20) . "feta-braces20")
+    ((-1 * * braces feta-braces 16) . "feta-braces16")
+    ((-2 * * braces feta-braces 13) . "feta-braces13")
+    ((-3 * * braces feta-braces 11) . "feta-braces11")
+
+    ((3 * * dynamic feta-din 19) . "feta-din19")
+    ((2 * * dynamic feta-din 19) . "feta-din19")
+    ((1 * * dynamic feta-din 17) . "feta-din17")
+    ((0 * * dynamic feta-din 14) . "feta-din14")
+    ((-1 * * dynamic feta-din 12) . "feta-din12")
+    ((-2 * * dynamic feta-din 9) . "feta-din9")
+    ((-3 * * dynamic feta-din 8) . "feta-din8")
+    ((-4 * * dynamic feta-din 7) . "feta-din7")
+    ((-5 * * dynamic feta-din 6) . "feta-din6")
+
+    ((2 * * music feta 26) . "feta26")
+    ((1 * * music feta 23) . "feta23")
+    ((0 * * music feta 20) . "feta20")
+    ((-0.5 * * music feta 20) . "feta19")    
+    ((-1 * * music feta 16) . "feta16")
+    ((-2 * * music feta 13) . "feta13")
+    ((-3 * * music feta 11) . "feta11")
+    ((-4 * * music feta 11) . "feta11")
+
+    ((0 * * math msam 10) . "msam10")
+    ((-1 * * math msam 10) . "msam10")
+    ((-2 * * math msam 10) . "msam10")
+    ((-3 * * math msam 10) . "msam10")
    ))
 
 ;; 
        (script . ((font-family . roman) (font-relative-size . -1)))
        (large . ((font-family . roman) (font-relative-size . 1)))
        (Large . ((font-series . bold) (font-family . roman) (font-relative-size . 2)))
-       (dynamic . ((font-series . bold) (font-family . dynamic) (font-relative-size . 0)))
+       (dynamic . ((font-family . dynamic) (font-relative-size . 0)))
        ))
     (properties-to-font .
                        ,Font_interface::properties_to_font_name)
      . ((rows . ((align . 0)))
        (lines . ((align . 1)))
        (roman . ((font-family . roman)))
-       (music . ((font-family . music) (font-shape . upright) (lookup . name)))
+       (music . ((font-family . music) (lookup . name)))
        (finger . ((font-style . finger)))
        (bold . ((font-series . bold)))
        (italic . ((font-shape . italic)))
@@ -271,11 +272,11 @@ and warn if the selected font is not unique.
        (display "\ncouldn't find unique font satisfying " err)
        (write qualifiers err)
        (display " found " err)
-         (if (null? fonts)
-             (display "none" err)
-             (write (map cdr  fonts) err))
-         ))
-
+       (if (null? fonts)
+           (display "none" err)
+           (write (map cdr  fonts) err))
+       ))
+  
   (if (null? fonts)
       "cmr10"
       (cdar fonts))    ; return the topmost.