@@ -931,24 +931,19 @@ def rename(self, family_name="", style_name="", style_flags=True):
931931 wws_family_name = family_name
932932 wws_subfamily_name = style_name
933933
934- # family name, subfamily name and full name
935- family_name_parts = [family_name ]
936- style_name_parts = style_name .split ()
937- subfamily_name_parts = style_name .lower ().split ()
934+ # family name, subfamily name and full name - fix legacy name records 1 and 2
938935 subfamily_names = ["regular" , "italic" , "bold" , "bold italic" ]
939- subfamily_name_default = subfamily_names [0 ]
940- for name_part in style_name_parts :
941- if name_part .lower () not in subfamily_names :
942- family_name_parts .append (name_part )
943- subfamily_name_parts .remove (name_part .lower ())
944- if subfamily_name_default in subfamily_name_parts :
945- if len (subfamily_name_parts ) > 1 :
946- subfamily_name_parts .remove (subfamily_name_default )
947- subfamily_name_parts = subfamily_name_parts or [subfamily_name_default ]
948- family_name = " " .join (family_name_parts )
949- subfamily_name = " " .join (subfamily_name_parts ).lower ()
950- if subfamily_name not in subfamily_names :
951- subfamily_name = subfamily_name_default
936+ subfamily_name = style_name
937+ style_name_lower = style_name .lower ()
938+ if style_name_lower not in subfamily_names :
939+ subfamily_name = (
940+ "Italic" if style_name_lower .endswith (" italic" ) else "Regular"
941+ )
942+ family_name_suffix = re .sub (
943+ r"\ italic$" , "" , subfamily_name , flags = re .IGNORECASE
944+ )
945+ assert family_name_suffix
946+ family_name = f"{ typographic_family_name } { family_name_suffix } "
952947
953948 subfamily_name = subfamily_name .title ()
954949
0 commit comments