From: Po Lu Date: Mon, 2 May 2022 08:46:04 +0000 (+0000) Subject: Fix handling of some weights in the Haiku font driver X-Git-Tag: emacs-29.0.90~1931^2~137 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f70dfb74ccab4adaf98f6436444b94162104076f;p=emacs.git Fix handling of some weights in the Haiku font driver * src/haiku_font_support.cc (font_style_to_flags): * src/haiku_support.h (enum haiku_font_weight): * src/haikufont.c (haikufont_weight_to_lisp) (haikufont_lisp_to_weight): Make `ultralight' and `extralight' mean the same thing. --- diff --git a/src/haiku_font_support.cc b/src/haiku_font_support.cc index de55ad2001a..1156f0bced2 100644 --- a/src/haiku_font_support.cc +++ b/src/haiku_font_support.cc @@ -305,9 +305,8 @@ font_style_to_flags (char *st, struct haiku_font_pattern *pattern) { if (token && !strcmp (token, "Thin")) pattern->weight = HAIKU_THIN; - else if (token && !strcmp (token, "UltraLight")) - pattern->weight = HAIKU_ULTRALIGHT; - else if (token && !strcmp (token, "ExtraLight")) + else if (token && (!strcmp (token, "UltraLight") + || !strcmp (token, "ExtraLight"))) pattern->weight = HAIKU_EXTRALIGHT; else if (token && !strcmp (token, "Light")) pattern->weight = HAIKU_LIGHT; @@ -330,12 +329,11 @@ font_style_to_flags (char *st, struct haiku_font_pattern *pattern) pattern->weight = HAIKU_SEMI_BOLD; else if (token && !strcmp (token, "Bold")) pattern->weight = HAIKU_BOLD; - else if (token && (!strcmp (token, "ExtraBold") || + else if (token && (!strcmp (token, "ExtraBold") /* This has actually been seen in the wild. */ - !strcmp (token, "Extrabold"))) + || !strcmp (token, "Extrabold") + || !strcmp (token, "UltraBold"))) pattern->weight = HAIKU_EXTRA_BOLD; - else if (token && !strcmp (token, "UltraBold")) - pattern->weight = HAIKU_ULTRA_BOLD; else if (token && !strcmp (token, "Book")) pattern->weight = HAIKU_BOOK; else if (token && !strcmp (token, "Heavy")) diff --git a/src/haiku_support.h b/src/haiku_support.h index efce63b4780..056063864e1 100644 --- a/src/haiku_support.h +++ b/src/haiku_support.h @@ -290,7 +290,6 @@ enum haiku_font_weight { NO_WEIGHT = -1, HAIKU_THIN = 0, - HAIKU_ULTRALIGHT = 20, HAIKU_EXTRALIGHT = 40, HAIKU_LIGHT = 50, HAIKU_SEMI_LIGHT = 75, @@ -298,7 +297,6 @@ enum haiku_font_weight HAIKU_SEMI_BOLD = 180, HAIKU_BOLD = 200, HAIKU_EXTRA_BOLD = 205, - HAIKU_ULTRA_BOLD = 210, HAIKU_BOOK = 400, HAIKU_HEAVY = 800, HAIKU_ULTRA_HEAVY = 900, diff --git a/src/haikufont.c b/src/haikufont.c index 3607012f6c4..db2ba326e04 100644 --- a/src/haikufont.c +++ b/src/haikufont.c @@ -208,8 +208,6 @@ haikufont_weight_to_lisp (int weight) { case HAIKU_THIN: return Qthin; - case HAIKU_ULTRALIGHT: - return Qultra_light; case HAIKU_EXTRALIGHT: return Qextra_light; case HAIKU_LIGHT: @@ -224,8 +222,6 @@ haikufont_weight_to_lisp (int weight) return Qbold; case HAIKU_EXTRA_BOLD: return Qextra_bold; - case HAIKU_ULTRA_BOLD: - return Qultra_bold; case HAIKU_BOOK: return Qbook; case HAIKU_HEAVY: @@ -246,7 +242,7 @@ haikufont_lisp_to_weight (Lisp_Object weight) if (EQ (weight, Qthin)) return HAIKU_THIN; if (EQ (weight, Qultra_light)) - return HAIKU_ULTRALIGHT; + return HAIKU_EXTRALIGHT; if (EQ (weight, Qextra_light)) return HAIKU_EXTRALIGHT; if (EQ (weight, Qlight)) @@ -262,7 +258,7 @@ haikufont_lisp_to_weight (Lisp_Object weight) if (EQ (weight, Qextra_bold)) return HAIKU_EXTRA_BOLD; if (EQ (weight, Qultra_bold)) - return HAIKU_ULTRA_BOLD; + return HAIKU_EXTRA_BOLD; if (EQ (weight, Qbook)) return HAIKU_BOOK; if (EQ (weight, Qheavy))