From: Mats Bengtsson Date: Thu, 11 Jan 2001 00:26:23 +0000 (+0100) Subject: patch::: 1.3.122.mb1 X-Git-Tag: release/1.3.123~3 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=eac2f47cab56833d1ca26bf6e78f7b661fb48fae;p=lilypond.git patch::: 1.3.122.mb1 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 --- diff --git a/CHANGES b/CHANGES index cae6c3ae8c..155d52cdf7 100644 --- 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 293a139c39..c91dd2226d 100644 --- 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. diff --git a/lily/font-interface.cc b/lily/font-interface.cc index d5a15ab2d9..51b98eef5c 100644 --- a/lily/font-interface.cc +++ b/lily/font-interface.cc @@ -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"); diff --git a/lily/include/font-interface.hh b/lily/include/font-interface.hh index 52189a10f4..e18cc9f3ef 100644 --- a/lily/include/font-interface.hh +++ b/lily/include/font-interface.hh @@ -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)); }; diff --git a/mf/feta-banier.mf b/mf/feta-banier.mf index 8f68b5f5cf..482d993f8f 100644 --- a/mf/feta-banier.mf +++ b/mf/feta-banier.mf @@ -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; diff --git a/scm/font.scm b/scm/font.scm index b77414dc4f..ffa1c28c47 100644 --- a/scm/font.scm +++ b/scm/font.scm @@ -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) ) @@ -101,36 +102,36 @@ ((-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") )) ;; @@ -199,7 +200,7 @@ (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) @@ -212,7 +213,7 @@ . ((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.