fontconfig: Branch 'main' - 3 commits

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed May 7 05:41:58 UTC 2025


 fc-fontations/foundries.rs            |    4 ++--
 fc-fontations/mod.rs                  |   18 +++++++++++++++---
 fc-fontations/pattern_bindings/mod.rs |    6 ++++++
 test/test_fontations_ft_query.py      |    1 +
 4 files changed, 24 insertions(+), 5 deletions(-)

New commits:
commit 2fdcfb46c5cfb3d7e534f73b3b417a68df4560a4
Merge: 86fd90c 91086d5
Author: Akira TAGOH <akira at tagoh.org>
Date:   Wed May 7 05:41:54 2025 +0000

    Merge branch 'version' into 'main'
    
    [Fontations] Add support for "version" pattern element
    
    See merge request fontconfig/fontconfig!395

commit 91086d5b9a1a4a8d77f768b93b2cac8c83749714
Author: Dominik Röttsches <drott at chromium.org>
Date:   Mon May 5 12:23:52 2025 +0300

    [Fontations] Clippy fix for foundries mapping

diff --git a/fc-fontations/foundries.rs b/fc-fontations/foundries.rs
index d416d9f..ad60647 100644
--- a/fc-fontations/foundries.rs
+++ b/fc-fontations/foundries.rs
@@ -63,7 +63,7 @@ pub fn make_foundry(font: &FontRef) -> Option<CString> {
         return CString::new(os2.ach_vend_id().to_be_bytes()).ok();
     }
 
-    return map_foundry_from_name_entry(&mut font.localized_strings(StringId::TRADEMARK)).or_else(
+    map_foundry_from_name_entry(&mut font.localized_strings(StringId::TRADEMARK)).or_else(
         || map_foundry_from_name_entry(&mut font.localized_strings(StringId::MANUFACTURER)),
-    );
+    )
 }
commit d6ec5911c3e6e123238f797848cb58f290e3a266
Author: Dominik Röttsches <drott at chromium.org>
Date:   Fri Apr 25 16:01:41 2025 +0300

    [Fontations] Add support for "version" pattern element
    
    Parse version from head table.

diff --git a/fc-fontations/mod.rs b/fc-fontations/mod.rs
index 272b8d3..26754ff 100644
--- a/fc-fontations/mod.rs
+++ b/fc-fontations/mod.rs
@@ -22,17 +22,17 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
+mod foundries;
 mod names;
 mod pattern_bindings;
-mod foundries;
 
 use foundries::make_foundry;
 use names::add_names;
 
 use fc_fontations_bindgen::{
     fcint::{
-        FC_COLOR_OBJECT, FC_FONTFORMAT_OBJECT, FC_FONT_HAS_HINT_OBJECT, FC_FOUNDRY_OBJECT,
-        FC_OUTLINE_OBJECT, FC_SCALABLE_OBJECT,
+        FC_COLOR_OBJECT, FC_FONTFORMAT_OBJECT, FC_FONTVERSION_OBJECT, FC_FONT_HAS_HINT_OBJECT,
+        FC_FOUNDRY_OBJECT, FC_OUTLINE_OBJECT, FC_SCALABLE_OBJECT,
     },
     FcFontSet, FcFontSetAdd, FcPattern,
 };
@@ -188,6 +188,18 @@ fn build_patterns_for_font(
         foundry_string.into(),
     ));
 
+    let version = font
+        .head()
+        .ok()
+        .map(|head| head.font_revision())
+        .unwrap_or_default()
+        .to_bits();
+
+    pattern.append_element(PatternElement::new(
+        FC_FONTVERSION_OBJECT as i32,
+        version.into(),
+    ));
+
     pattern
         .create_fc_pattern()
         .map(|p| p.into_raw() as *mut FcPattern)
diff --git a/fc-fontations/pattern_bindings/mod.rs b/fc-fontations/pattern_bindings/mod.rs
index 623b8bb..29359e9 100644
--- a/fc-fontations/pattern_bindings/mod.rs
+++ b/fc-fontations/pattern_bindings/mod.rs
@@ -61,6 +61,12 @@ impl From<bool> for PatternValue {
     }
 }
 
+impl From<i32> for PatternValue {
+    fn from(item: i32) -> Self {
+        PatternValue::Integer(item)
+    }
+}
+
 #[derive(Debug)]
 pub struct PatternElement {
     object_id: i32,
diff --git a/test/test_fontations_ft_query.py b/test/test_fontations_ft_query.py
index 706b564..c08b16e 100644
--- a/test/test_fontations_ft_query.py
+++ b/test/test_fontations_ft_query.py
@@ -61,6 +61,7 @@ def test_fontations_freetype_fcquery_equal(font_file):
         "color",
         "fonthashint",
         "foundry",
+        "version",
     ]
     format_string = ":".join(
         "%{" + entity + "}" for entity in supported_format_entitites


More information about the Fontconfig mailing list