-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.
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.
*/
-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
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);
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;
}
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");
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));
};
% 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;
(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)))
(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.