]> git.eshelyaron.com Git - emacs.git/commitdiff
Display glyphs whose first contours commence at origin
authorPo Lu <luangruo@yahoo.com>
Fri, 8 Dec 2023 02:55:02 +0000 (10:55 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 8 Dec 2023 02:55:02 +0000 (10:55 +0800)
* src/sfnt.c (sfnt_build_append): Don't disregard redundant
motion if outline is empty.  Problem encountered in the "M"
glyph within Source Code Pro VF Italic.

src/sfnt.c

index 8ec19290859efa220d4c14453709fb8190951b06..3423997379747ec96c5f642c5a78e7d8962d1947 100644 (file)
@@ -3487,12 +3487,18 @@ sfnt_build_append (int flags, sfnt_fixed x, sfnt_fixed y)
 {
   struct sfnt_glyph_outline *outline;
 
+  outline = build_outline_context.outline;
+
   if (x == build_outline_context.x
-      && y == build_outline_context.y)
+      && y == build_outline_context.y
+      /* If the outline is presently empty, the first move_to must be
+        recorded even if its X and Y are set to origin.  Without this
+        initial vertex, edges will be generated from the next vertex
+        onward, and thus be misaligned.  */
+      && outline->outline_used)
     /* Ignore redundant motion.  */
     return build_outline_context.outline;
 
-  outline = build_outline_context.outline;
   outline->outline_used++;
 
   /* See if the outline has to be extended.  Checking for overflow