public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/xfig] epel10.2: Update to 3.2.9a + latest git changes to fix build with -std=c11
@ 2026-05-30 14:28 Hans de Goede
  0 siblings, 0 replies; only message in thread
From: Hans de Goede @ 2026-05-30 14:28 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/xfig
            Branch : epel10.2
            Commit : 0b394da35bfb4ba5cb4240454973fbd4377b4d97
            Author : Hans de Goede <hansg@kernel.org>
            Date   : 2025-08-06T22:00:49+02:00
            Stats  : +25/-845 in 10 file(s)
            URL    : https://src.fedoraproject.org/rpms/xfig/c/0b394da35bfb4ba5cb4240454973fbd4377b4d97?branch=epel10.2

            Log:
            Update to 3.2.9a + latest git changes to fix build with -std=c11

Switch to upstream appdata/metainfo and desktop file
Drop all patches (all upstreamed)
Resolves: rhbz#2341567
Resolves: rhbz#2385740

---
diff --git a/.gitignore b/.gitignore
index c4eacca..26e4cf7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,3 +10,4 @@ xfig.3.2.5b.full.tar.gz
 /xfig-3.2.8a.tar.xz
 /xfig-3.2.8b.tar.xz
 /xfig-3.2.9.tar.xz
+/mcj-xfig-ce9782a404b6a527393839369aac13dcfb66ff16.zip

diff --git a/0001-Map-symbol-and-dingbat-glyphs-to-their-unicode-locat.patch b/0001-Map-symbol-and-dingbat-glyphs-to-their-unicode-locat.patch
deleted file mode 100644
index cc47580..0000000
--- a/0001-Map-symbol-and-dingbat-glyphs-to-their-unicode-locat.patch
+++ /dev/null
@@ -1,644 +0,0 @@
-From 1e2d842875502b4ce0e74ec779454304c71efe54 Mon Sep 17 00:00:00 2001
-From: "Dr. Werner Fink" <https://build.opensuse.org/users/WernerFink>
-Date: Sat, 30 Sep 2023 23:10:46 +0200
-Subject: [PATCH] Map symbol and dingbat glyphs to their unicode locations
-
-Under suse, symbol and dingbat glyphs are not displayed without
-remapping to their correct unicode code points. Based on the
-mappings defined in
-usr/share/fonts/encodings/adobe-dingbats.enc.gz and
-/usr/share/fonts/encodings/adobe-symbol.enc.gz.
-Also include some aliases for these two fonts.
-Under archlinux and debian, these mappings were not necessary, but
-do not seem to do any harm.
----
- src/u_fonts.c    | 500 ++++++++++++++++++++++++++++++++++++++++++++++-
- src/u_fonts.h    |  11 ++
- src/w_drawprim.c |  17 +-
- 3 files changed, 516 insertions(+), 12 deletions(-)
-
-diff --git a/src/u_fonts.c b/src/u_fonts.c
-index b29d0ea..5e454eb 100644
---- a/src/u_fonts.c
-+++ b/src/u_fonts.c
-@@ -124,9 +124,9 @@ const char *const xft_name[NUM_FONTS] = {
- 	"palatino:italic",			/* Palatino-Italic */
- 	"palatino:bold",			/* Palatino-Bold */
- 	"palatino:bold:italic",			/* Palatino-BoldItalic */
--	"symbol",				/* Symbol */
-+	"symbol,StandardSymbolsPS,StandardSymbolsL",		/* Symbol */
- 	"zapfchancery:medium:italic",		/* ZapfChancery-MediumItalic */
--	"zapfdingbats"				/* ZapfDingbats */
-+	"zapfdingbats,ITCZapfDingbats,Dingbats,D050000L"	/* ZapfDingbats */
- };
- 
- 
-@@ -307,6 +307,7 @@ textextents(F_text *t)
- {
- 	XGlyphInfo	extents;
- 	XftFont		*rotfont;
-+	map_f		map = NULL;
- 	int		len = (int)strlen(t->cstring);
- 
- 	/* shortcut, nothing to do for an empty string */
-@@ -325,8 +326,20 @@ textextents(F_text *t)
- 	/* Get the font at native Fig resolution (often, 1200 ppi) */
- 	rotfont = getfont(psfont_text(t), t->font, t->size * ZOOM_FACTOR,
- 			(double)t->angle);
--	XftTextExtentsUtf8(tool_d, rotfont, (XftChar8 *)t->cstring, len,
--			&extents);
-+	if ((map = adobe_charset(rotfont))) {
-+		XftChar32 glyphs[len], *glyph;
-+		XftChar8 *s = (XftChar8 *)t->cstring;
-+		int glen = 0;
-+
-+		for (XftChar8 *chr = s; chr < s+len; chr++) {
-+			XftChar32 glyph = XftCharIndex(tool_d, rotfont, map(*chr));
-+			if (glyph)
-+				glyphs[glen++] = glyph;
-+		}
-+		XftGlyphExtents(tool_d, rotfont, glyphs, glen, &extents);
-+	} else
-+		XftTextExtentsUtf8(tool_d, rotfont, (XftChar8 *)t->cstring, len,
-+				&extents);
- 	/* libxft keeps the last 16, closed fonts in cache.
- 	   Hence, no need to keep rotfont open, in our own cache. */
- 	closefont(rotfont);
-@@ -409,13 +422,27 @@ textextents(F_text *t)
- 	} else {
- 		/* a font at an angle */
- 		XftFont		*horfont;
-+		map_f		map = NULL;
- 		double		cosa, sina;
- 		struct f_pos	tl, bl, tr, br;
- 
- 		horfont = getfont(psfont_text(t), t->font,
- 					t->size * ZOOM_FACTOR, 0.0);
--		XftTextExtentsUtf8(tool_d, horfont, (XftChar8 *)t->cstring, len,
--				&extents);
-+		if ((map = adobe_charset(horfont))) {
-+			XftChar32 glyphs[len], *glyph;
-+			XftChar8 *s = (XftChar8 *)t->cstring;
-+			int glen = 0;
-+
-+			for (XftChar8 *chr = s; chr < s+len; chr++) {
-+				XftChar32 glyph = XftCharIndex(tool_d, horfont, map(*chr));
-+				if (glyph)
-+					glyphs[glen++] = glyph;
-+			}
-+			XftGlyphExtents(tool_d, horfont, glyphs, glen, &extents);
-+		} else {
-+			XftTextExtentsUtf8(tool_d, horfont, (XftChar8 *)t->cstring,
-+				len, &extents);
-+		}
- 		/* See above, libxft keeps a cache of 16 closed fonts. */
- 		closefont(horfont);
- 
-@@ -453,11 +480,25 @@ int
- textlength(XftFont *horfont, XftChar8 *string, int len)
- {
- 	XGlyphInfo	extents;
-+	map_f		map = NULL;
- 
- 	if (len == 0)
- 		return 0;
- 
--	XftTextExtentsUtf8(tool_d, horfont, string, len, &extents);
-+	if ((map = adobe_charset(horfont))) {
-+		XftChar32 glyphs[len], *glyph;
-+		XftChar8 *chr, *s = string;
-+		int glen = 0;
-+
-+		for (XftChar8 *chr = s; chr < s+len; chr++) {
-+			XftChar32 glyph = XftCharIndex(tool_d, horfont, map(*chr));
-+			if (glyph)
-+				glyphs[glen++] = glyph;
-+		}
-+		XftGlyphExtents(tool_d, horfont, glyphs, glen, &extents);
-+	} else {
-+		XftTextExtentsUtf8(tool_d, horfont, string, len, &extents);
-+	}
- 	return (int)extents.xOff;
- }
- 
-@@ -473,16 +514,30 @@ textmaxheight(int psflag, int font, int size, int *ascent, int *descent)
- 	XGlyphInfo	extents;
- 	XftFont		*horfont;
- 	XftChar8	max_height_str[] = "{|(fgjOÜ";
-+	map_f		map = NULL;
-+	size_t		len = sizeof(max_height_str);
- 
- 	horfont = getfont(psflag, font, size * ZOOM_FACTOR, 0.0);
--	XftTextExtentsUtf8(tool_d, horfont, max_height_str,
--			(int)sizeof(max_height_str), &extents);
-+	if ((map = adobe_charset(horfont))) {
-+		XftChar32 glyphs[len], *glyph;
-+		XftChar8 *s = max_height_str;
-+		int glen = 0;
-+
-+		for (XftChar8 *chr = s; chr < s+len; chr++) {
-+			XftChar32 glyph = XftCharIndex(tool_d, horfont, map(*chr));
-+			if (glyph)
-+				glyphs[glen++] = glyph;
-+		}
-+		XftGlyphExtents(tool_d, horfont, glyphs, glen, &extents);
-+	} else {
-+		XftTextExtentsUtf8(tool_d, horfont, max_height_str,
-+			(int)len, &extents);
-+	}
- 	closefont(horfont);
- 	*ascent = extents.y;
- 	*descent = extents.height - extents.y;
- }
- 
--
- /*
-  * Return the drawing origin, given the marker position (base_x, base_y)
-  * and the alignment.
-@@ -510,3 +565,428 @@ text_origin(int *draw_x, int *draw_y, int base_x, int base_y, int align,
- 		break;
- 	}
- }
-+/*
-+ * Unicode mapping found in
-+ * /usr/share/fonts/encodings/adobe-dingbats.enc.gz
-+ */
-+XftChar32 map_dingbats(XftChar8 in)
-+{
-+	switch (in) {
-+	case 0x20: return 0x0020;    /* SPACE */
-+	case 0x21: return 0x2701;    /* UPPER BLADE SCISSORS */
-+	case 0x22: return 0x2702;    /* BLACK SCISSORS */
-+	case 0x23: return 0x2703;    /* LOWER BLADE SCISSORS */
-+	case 0x24: return 0x2704;    /* WHITE SCISSORS */
-+	case 0x25: return 0x260E;    /* BLACK TELEPHONE */
-+	case 0x26: return 0x2706;    /* TELEPHONE LOCATION SIGN */
-+	case 0x27: return 0x2707;    /* TAPE DRIVE */
-+	case 0x28: return 0x2708;    /* AIRPLANE */
-+	case 0x29: return 0x2709;    /* ENVELOPE */
-+	case 0x2A: return 0x261B;    /* BLACK RIGHT POINTING INDEX */
-+	case 0x2B: return 0x261E;    /* WHITE RIGHT POINTING INDEX */
-+	case 0x2C: return 0x270C;    /* VICTORY HAND */
-+	case 0x2D: return 0x270D;    /* WRITING HAND */
-+	case 0x2E: return 0x270E;    /* LOWER RIGHT PENCIL */
-+	case 0x2F: return 0x270F;    /* PENCIL */
-+	case 0x30: return 0x2710;    /* UPPER RIGHT PENCIL */
-+	case 0x31: return 0x2711;    /* WHITE NIB */
-+	case 0x32: return 0x2712;    /* BLACK NIB */
-+	case 0x33: return 0x2713;    /* CHECK MARK */
-+	case 0x34: return 0x2714;    /* HEAVY CHECK MARK */
-+	case 0x35: return 0x2715;    /* MULTIPLICATION X */
-+	case 0x36: return 0x2716;    /* HEAVY MULTIPLICATION X */
-+	case 0x37: return 0x2717;    /* BALLOT X */
-+	case 0x38: return 0x2718;    /* HEAVY BALLOT X */
-+	case 0x39: return 0x2719;    /* OUTLINED GREEK CROSS */
-+	case 0x3A: return 0x271A;    /* HEAVY GREEK CROSS */
-+	case 0x3B: return 0x271B;    /* OPEN CENTRE CROSS */
-+	case 0x3C: return 0x271C;    /* HEAVY OPEN CENTRE CROSS */
-+	case 0x3D: return 0x271D;    /* LATIN CROSS */
-+	case 0x3E: return 0x271E;    /* SHADOWED WHITE LATIN CROSS */
-+	case 0x3F: return 0x271F;    /* OUTLINED LATIN CROSS */
-+	case 0x40: return 0x2720;    /* MALTESE CROSS */
-+	case 0x41: return 0x2721;    /* STAR OF DAVID */
-+	case 0x42: return 0x2722;    /* FOUR TEARDROP-SPOKED ASTERISK */
-+	case 0x43: return 0x2723;    /* FOUR BALLOON-SPOKED ASTERISK */
-+	case 0x44: return 0x2724;    /* HEAVY FOUR BALLOON-SPOKED ASTERISK */
-+	case 0x45: return 0x2725;    /* FOUR CLUB-SPOKED ASTERISK */
-+	case 0x46: return 0x2726;    /* BLACK FOUR POINTED STAR */
-+	case 0x47: return 0x2727;    /* WHITE FOUR POINTED STAR */
-+	case 0x48: return 0x2605;    /* BLACK STAR */
-+	case 0x49: return 0x2729;    /* STRESS OUTLINED WHITE STAR */
-+	case 0x4A: return 0x272A;    /* CIRCLED WHITE STAR */
-+	case 0x4B: return 0x272B;    /* OPEN CENTRE BLACK STAR */
-+	case 0x4C: return 0x272C;    /* BLACK CENTRE WHITE STAR */
-+	case 0x4D: return 0x272D;    /* OUTLINED BLACK STAR */
-+	case 0x4E: return 0x272E;    /* HEAVY OUTLINED BLACK STAR */
-+	case 0x4F: return 0x272F;    /* PINWHEEL STAR */
-+	case 0x50: return 0x2730;    /* SHADOWED WHITE STAR */
-+	case 0x51: return 0x2731;    /* HEAVY ASTERISK */
-+	case 0x52: return 0x2732;    /* OPEN CENTRE ASTERISK */
-+	case 0x53: return 0x2733;    /* EIGHT SPOKED ASTERISK */
-+	case 0x54: return 0x2734;    /* EIGHT POINTED BLACK STAR */
-+	case 0x55: return 0x2735;    /* EIGHT POINTED PINWHEEL STAR */
-+	case 0x56: return 0x2736;    /* SIX POINTED BLACK STAR */
-+	case 0x57: return 0x2737;    /* EIGHT POINTED RECTILINEAR BLACK STAR */
-+	case 0x58: return 0x2738;    /* HEAVY EIGHT POINTED RECTILINEAR BLACK STAR */
-+	case 0x59: return 0x2739;    /* TWELVE POINTED BLACK STAR */
-+	case 0x5A: return 0x273A;    /* SIXTEEN POINTED ASTERISK */
-+	case 0x5B: return 0x273B;    /* TEARDROP-SPOKED ASTERISK */
-+	case 0x5C: return 0x273C;    /* OPEN CENTRE TEARDROP-SPOKED ASTERISK */
-+	case 0x5D: return 0x273D;    /* HEAVY TEARDROP-SPOKED ASTERISK */
-+	case 0x5E: return 0x273E;    /* SIX PETALLED BLACK AND WHITE FLORETTE */
-+	case 0x5F: return 0x273F;    /* BLACK FLORETTE */
-+	case 0x60: return 0x2740;    /* WHITE FLORETTE */
-+	case 0x61: return 0x2741;    /* EIGHT PETALLED OUTLINED BLACK FLORETTE */
-+	case 0x62: return 0x2742;    /* CIRCLED OPEN CENTRE EIGHT POINTED STAR */
-+	case 0x63: return 0x2743;    /* HEAVY TEARDROP-SPOKED PINWHEEL ASTERISK */
-+	case 0x64: return 0x2744;    /* SNOWFLAKE */
-+	case 0x65: return 0x2745;    /* TIGHT TRIFOLIATE SNOWFLAKE */
-+	case 0x66: return 0x2746;    /* HEAVY CHEVRON SNOWFLAKE */
-+	case 0x67: return 0x2747;    /* SPARKLE */
-+	case 0x68: return 0x2748;    /* HEAVY SPARKLE */
-+	case 0x69: return 0x2749;    /* BALLOON-SPOKED ASTERISK */
-+	case 0x6A: return 0x274A;    /* EIGHT TEARDROP-SPOKED PROPELLER ASTERISK */
-+	case 0x6B: return 0x274B;    /* HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK */
-+	case 0x6C: return 0x25CF;    /* BLACK CIRCLE */
-+	case 0x6D: return 0x274D;    /* SHADOWED WHITE CIRCLE */
-+	case 0x6E: return 0x25A0;    /* BLACK SQUARE */
-+	case 0x6F: return 0x274F;    /* LOWER RIGHT DROP-SHADOWED WHITE SQUARE */
-+	case 0x70: return 0x2750;    /* UPPER RIGHT DROP-SHADOWED WHITE SQUARE */
-+	case 0x71: return 0x2751;    /* LOWER RIGHT SHADOWED WHITE SQUARE */
-+	case 0x72: return 0x2752;    /* UPPER RIGHT SHADOWED WHITE SQUARE */
-+	case 0x73: return 0x25B2;    /* BLACK UP-POINTING TRIANGLE */
-+	case 0x74: return 0x25BC;    /* BLACK DOWN-POINTING TRIANGLE */
-+	case 0x75: return 0x25C6;    /* BLACK DIAMOND */
-+	case 0x76: return 0x2756;    /* BLACK DIAMOND MINUS WHITE X */
-+	case 0x77: return 0x25D7;    /* RIGHT HALF BLACK CIRCLE */
-+	case 0x78: return 0x2758;    /* LIGHT VERTICAL BAR */
-+	case 0x79: return 0x2759;    /* MEDIUM VERTICAL BAR */
-+	case 0x7A: return 0x275A;    /* HEAVY VERTICAL BAR */
-+	case 0x7B: return 0x275B;    /* HEAVY SINGLE TURNED COMMA QUOTATION MARK ORNAMENT */
-+	case 0x7C: return 0x275C;    /* HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT */
-+	case 0x7D: return 0x275D;    /* HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT */
-+	case 0x7E: return 0x275E;    /* HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT */
-+	case 0x80: return 0xF8D7;    /* MEDIUM LEFT PARENTHESIS ORNAMENT */
-+	case 0x81: return 0xF8D8;    /* MEDIUM RIGHT PARENTHESIS ORNAMENT */
-+	case 0x82: return 0xF8D9;    /* MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT */
-+	case 0x83: return 0xF8DA;    /* MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT */
-+	case 0x84: return 0xF8DB;    /* MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT */
-+	case 0x85: return 0xF8DC;    /* MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT */
-+	case 0x86: return 0xF8DD;    /* HEAVY LEFT-POINTING ANGLE QUOTATION MARK ORNAMENT */
-+	case 0x87: return 0xF8DE;    /* HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT */
-+	case 0x88: return 0xF8DF;    /* HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT */
-+	case 0x89: return 0xF8E0;    /* HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT */
-+	case 0x8A: return 0xF8E1;    /* LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT */
-+	case 0x8B: return 0xF8E2;    /* LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT */
-+	case 0x8C: return 0xF8E3;    /* MEDIUM LEFT CURLY BRACKET ORNAMENT */
-+	case 0x8D: return 0xF8E4;    /* MEDIUM RIGHT CURLY BRACKET ORNAMENT */
-+	case 0xA1: return 0x2761;    /* CURVED STEM PARAGRAPH SIGN ORNAMENT */
-+	case 0xA2: return 0x2762;    /* HEAVY EXCLAMATION MARK ORNAMENT */
-+	case 0xA3: return 0x2763;    /* HEAVY HEART EXCLAMATION MARK ORNAMENT */
-+	case 0xA4: return 0x2764;    /* HEAVY BLACK HEART */
-+	case 0xA5: return 0x2765;    /* ROTATED HEAVY BLACK HEART BULLET */
-+	case 0xA6: return 0x2766;    /* FLORAL HEART */
-+	case 0xA7: return 0x2767;    /* ROTATED FLORAL HEART BULLET */
-+	case 0xA8: return 0x2663;    /* BLACK CLUB SUIT */
-+	case 0xA9: return 0x2666;    /* BLACK DIAMOND SUIT */
-+	case 0xAA: return 0x2665;    /* BLACK HEART SUIT */
-+	case 0xAB: return 0x2660;    /* BLACK SPADE SUIT */
-+	case 0xAC: return 0x2460;    /* CIRCLED DIGIT ONE */
-+	case 0xAD: return 0x2461;    /* CIRCLED DIGIT TWO */
-+	case 0xAE: return 0x2462;    /* CIRCLED DIGIT THREE */
-+	case 0xAF: return 0x2463;    /* CIRCLED DIGIT FOUR */
-+	case 0xB0: return 0x2464;    /* CIRCLED DIGIT FIVE */
-+	case 0xB1: return 0x2465;    /* CIRCLED DIGIT SIX */
-+	case 0xB2: return 0x2466;    /* CIRCLED DIGIT SEVEN */
-+	case 0xB3: return 0x2467;    /* CIRCLED DIGIT EIGHT */
-+	case 0xB4: return 0x2468;    /* CIRCLED DIGIT NINE */
-+	case 0xB5: return 0x2469;    /* CIRCLED NUMBER TEN */
-+	case 0xB6: return 0x2776;    /* DINGBAT NEGATIVE CIRCLED DIGIT ONE */
-+	case 0xB7: return 0x2777;    /* DINGBAT NEGATIVE CIRCLED DIGIT TWO */
-+	case 0xB8: return 0x2778;    /* DINGBAT NEGATIVE CIRCLED DIGIT THREE */
-+	case 0xB9: return 0x2779;    /* DINGBAT NEGATIVE CIRCLED DIGIT FOUR */
-+	case 0xBA: return 0x277A;    /* DINGBAT NEGATIVE CIRCLED DIGIT FIVE */
-+	case 0xBB: return 0x277B;    /* DINGBAT NEGATIVE CIRCLED DIGIT SIX */
-+	case 0xBC: return 0x277C;    /* DINGBAT NEGATIVE CIRCLED DIGIT SEVEN */
-+	case 0xBD: return 0x277D;    /* DINGBAT NEGATIVE CIRCLED DIGIT EIGHT */
-+	case 0xBE: return 0x277E;    /* DINGBAT NEGATIVE CIRCLED DIGIT NINE */
-+	case 0xBF: return 0x277F;    /* DINGBAT NEGATIVE CIRCLED NUMBER TEN */
-+	case 0xC0: return 0x2780;    /* DINGBAT CIRCLED SANS-SERIF DIGIT ONE */
-+	case 0xC1: return 0x2781;    /* DINGBAT CIRCLED SANS-SERIF DIGIT TWO */
-+	case 0xC2: return 0x2782;    /* DINGBAT CIRCLED SANS-SERIF DIGIT THREE */
-+	case 0xC3: return 0x2783;    /* DINGBAT CIRCLED SANS-SERIF DIGIT FOUR */
-+	case 0xC4: return 0x2784;    /* DINGBAT CIRCLED SANS-SERIF DIGIT FIVE */
-+	case 0xC5: return 0x2785;    /* DINGBAT CIRCLED SANS-SERIF DIGIT SIX */
-+	case 0xC6: return 0x2786;    /* DINGBAT CIRCLED SANS-SERIF DIGIT SEVEN */
-+	case 0xC7: return 0x2787;    /* DINGBAT CIRCLED SANS-SERIF DIGIT EIGHT */
-+	case 0xC8: return 0x2788;    /* DINGBAT CIRCLED SANS-SERIF DIGIT NINE */
-+	case 0xC9: return 0x2789;    /* DINGBAT CIRCLED SANS-SERIF NUMBER TEN */
-+	case 0xCA: return 0x278A;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT ONE */
-+	case 0xCB: return 0x278B;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT TWO */
-+	case 0xCC: return 0x278C;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT THREE */
-+	case 0xCD: return 0x278D;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FOUR */
-+	case 0xCE: return 0x278E;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT FIVE */
-+	case 0xCF: return 0x278F;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SIX */
-+	case 0xD0: return 0x2790;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT SEVEN */
-+	case 0xD1: return 0x2791;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT EIGHT */
-+	case 0xD2: return 0x2792;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE */
-+	case 0xD3: return 0x2793;    /* DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN */
-+	case 0xD4: return 0x2794;    /* HEAVY WIDE-HEADED RIGHTWARDS ARROW */
-+	case 0xD5: return 0x2192;    /* RIGHTWARDS ARROW */
-+	case 0xD6: return 0x2194;    /* LEFT RIGHT ARROW */
-+	case 0xD7: return 0x2195;    /* UP DOWN ARROW */
-+	case 0xD8: return 0x2798;    /* HEAVY SOUTH EAST ARROW */
-+	case 0xD9: return 0x2799;    /* HEAVY RIGHTWARDS ARROW */
-+	case 0xDA: return 0x279A;    /* HEAVY NORTH EAST ARROW */
-+	case 0xDB: return 0x279B;    /* DRAFTING POINT RIGHTWARDS ARROW */
-+	case 0xDC: return 0x279C;    /* HEAVY ROUND-TIPPED RIGHTWARDS ARROW */
-+	case 0xDD: return 0x279D;    /* TRIANGLE-HEADED RIGHTWARDS ARROW */
-+	case 0xDE: return 0x279E;    /* HEAVY TRIANGLE-HEADED RIGHTWARDS ARROW */
-+	case 0xDF: return 0x279F;    /* DASHED TRIANGLE-HEADED RIGHTWARDS ARROW */
-+	case 0xE0: return 0x27A0;    /* HEAVY DASHED TRIANGLE-HEADED RIGHTWARDS ARROW */
-+	case 0xE1: return 0x27A1;    /* BLACK RIGHTWARDS ARROW */
-+	case 0xE2: return 0x27A2;    /* THREE-D TOP-LIGHTED RIGHTWARDS ARROWHEAD */
-+	case 0xE3: return 0x27A3;    /* THREE-D BOTTOM-LIGHTED RIGHTWARDS ARROWHEAD */
-+	case 0xE4: return 0x27A4;    /* BLACK RIGHTWARDS ARROWHEAD */
-+	case 0xE5: return 0x27A5;    /* HEAVY BLACK CURVED DOWNWARDS AND RIGHTWARDS ARROW */
-+	case 0xE6: return 0x27A6;    /* HEAVY BLACK CURVED UPWARDS AND RIGHTWARDS ARROW */
-+	case 0xE7: return 0x27A7;    /* SQUAT BLACK RIGHTWARDS ARROW */
-+	case 0xE8: return 0x27A8;    /* HEAVY CONCAVE-POINTED BLACK RIGHTWARDS ARROW */
-+	case 0xE9: return 0x27A9;    /* RIGHT-SHADED WHITE RIGHTWARDS ARROW */
-+	case 0xEA: return 0x27AA;    /* LEFT-SHADED WHITE RIGHTWARDS ARROW */
-+	case 0xEB: return 0x27AB;    /* BACK-TILTED SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xEC: return 0x27AC;    /* FRONT-TILTED SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xED: return 0x27AD;    /* HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xEE: return 0x27AE;    /* HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xEF: return 0x27AF;    /* NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xF1: return 0x27B1;    /* NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW */
-+	case 0xF2: return 0x27B2;    /* CIRCLED HEAVY WHITE RIGHTWARDS ARROW */
-+	case 0xF3: return 0x27B3;    /* WHITE-FEATHERED RIGHTWARDS ARROW */
-+	case 0xF4: return 0x27B4;    /* BLACK-FEATHERED SOUTH EAST ARROW */
-+	case 0xF5: return 0x27B5;    /* BLACK-FEATHERED RIGHTWARDS ARROW */
-+	case 0xF6: return 0x27B6;    /* BLACK-FEATHERED NORTH EAST ARROW */
-+	case 0xF7: return 0x27B7;    /* HEAVY BLACK-FEATHERED SOUTH EAST ARROW */
-+	case 0xF8: return 0x27B8;    /* HEAVY BLACK-FEATHERED RIGHTWARDS ARROW */
-+	case 0xF9: return 0x27B9;    /* HEAVY BLACK-FEATHERED NORTH EAST ARROW */
-+	case 0xFA: return 0x27BA;    /* TEARDROP-BARBED RIGHTWARDS ARROW */
-+	case 0xFB: return 0x27BB;    /* HEAVY TEARDROP-SHANKED RIGHTWARDS ARROW */
-+	case 0xFC: return 0x27BC;    /* WEDGE-TAILED RIGHTWARDS ARROW */
-+	case 0xFD: return 0x27BD;    /* HEAVY WEDGE-TAILED RIGHTWARDS ARROW */
-+	case 0xFE: return 0x27BE;    /* OPEN-OUTLINED RIGHTWARDS ARROW */
-+	default:   return 0x0000;
-+	}
-+};
-+
-+/*
-+ * Unicode mapping found in
-+ * /usr/share/fonts/encodings/adobe-symbol.enc.gz
-+ * Duplicates are disabled
-+ */
-+XftChar32 map_symbols(XftChar8 in)
-+{
-+	switch(in) {
-+	case 0x20: return 0x0020;    /* SPACE */
-+	case 0x21: return 0x0021;    /* EXCLAMATION MARK */
-+	case 0x23: return 0x0023;    /* NUMBER SIGN */
-+	case 0x25: return 0x0025;    /* PERCENT SIGN */
-+	case 0x26: return 0x0026;    /* AMPERSAND */
-+	case 0x28: return 0x0028;    /* OPENING PARENTHESIS */
-+	case 0x29: return 0x0029;    /* CLOSING PARENTHESIS */
-+	case 0x2B: return 0x002B;    /* PLUS SIGN */
-+	case 0x2C: return 0x002C;    /* COMMA */
-+	case 0x2E: return 0x002E;    /* PERIOD */
-+	case 0x2F: return 0x002F;    /* SLASH */
-+	case 0x30: return 0x0030;    /* DIGIT ZERO */
-+	case 0x31: return 0x0031;    /* DIGIT ONE */
-+	case 0x32: return 0x0032;    /* DIGIT TWO */
-+	case 0x33: return 0x0033;    /* DIGIT THREE */
-+	case 0x34: return 0x0034;    /* DIGIT FOUR */
-+	case 0x35: return 0x0035;    /* DIGIT FIVE */
-+	case 0x36: return 0x0036;    /* DIGIT SIX */
-+	case 0x37: return 0x0037;    /* DIGIT SEVEN */
-+	case 0x38: return 0x0038;    /* DIGIT EIGHT */
-+	case 0x39: return 0x0039;    /* DIGIT NINE */
-+	case 0x3A: return 0x003A;    /* COLON */
-+	case 0x3B: return 0x003B;    /* SEMICOLON */
-+	case 0x3C: return 0x003C;    /* LESS-THAN SIGN */
-+	case 0x3D: return 0x003D;    /* EQUALS SIGN */
-+	case 0x3E: return 0x003E;    /* GREATER-THAN SIGN */
-+	case 0x3F: return 0x003F;    /* QUESTION MARK */
-+	case 0x5B: return 0x005B;    /* OPENING SQUARE BRACKET */
-+	case 0x5D: return 0x005D;    /* CLOSING SQUARE BRACKET */
-+	case 0x5F: return 0x005F;    /* SPACING UNDERSCORE */
-+	case 0x7B: return 0x007B;    /* OPENING CURLY BRACKET */
-+	case 0x7C: return 0x007C;    /* VERTICAL BAR */
-+	case 0x7D: return 0x007D;    /* CLOSING CURLY BRACKET */
-+	case 0xD3: return 0x00A9;    /* COPYRIGHT SIGN */
-+	case 0xE3: return 0x00A9;    /* COPYRIGHT SIGN */
-+	case 0xD8: return 0x00AC;    /* NOT SIGN */
-+	case 0xD2: return 0x00AE;    /* REGISTERED TRADE MARK SIGN */
-+	case 0xE2: return 0x00AE;    /* REGISTERED TRADE MARK SIGN */
-+	case 0xB0: return 0x00B0;    /* DEGREE SIGN */
-+	case 0xB1: return 0x00B1;    /* PLUS-OR-MINUS SIGN */
-+	case 0xB4: return 0x00D7;    /* MULTIPLICATION SIGN */
-+	case 0xB8: return 0x00F7;    /* DIVISION SIGN */
-+	case 0xA6: return 0x0192;    /* LATIN SMALL LETTER SCRIPT F */
-+	case 0x41: return 0x0391;    /* GREEK CAPITAL LETTER ALPHA */
-+	case 0x42: return 0x0392;    /* GREEK CAPITAL LETTER BETA */
-+	case 0x47: return 0x0393;    /* GREEK CAPITAL LETTER GAMMA */
-+	case 0x44: return 0x0394;    /* GREEK CAPITAL LETTER DELTA */
-+	case 0x45: return 0x0395;    /* GREEK CAPITAL LETTER EPSILON */
-+	case 0x5A: return 0x0396;    /* GREEK CAPITAL LETTER ZETA */
-+	case 0x48: return 0x0397;    /* GREEK CAPITAL LETTER ETA */
-+	case 0x51: return 0x0398;    /* GREEK CAPITAL LETTER THETA */
-+	case 0x49: return 0x0399;    /* GREEK CAPITAL LETTER IOTA */
-+	case 0x4B: return 0x039A;    /* GREEK CAPITAL LETTER KAPPA */
-+	case 0x4C: return 0x039B;    /* GREEK CAPITAL LETTER LAMBDA */
-+	case 0x4D: return 0x039C;    /* GREEK CAPITAL LETTER MU */
-+	case 0x4E: return 0x039D;    /* GREEK CAPITAL LETTER NU */
-+	case 0x58: return 0x039E;    /* GREEK CAPITAL LETTER XI */
-+	case 0x4F: return 0x039F;    /* GREEK CAPITAL LETTER OMICRON */
-+	case 0x50: return 0x03A0;    /* GREEK CAPITAL LETTER PI */
-+	case 0x52: return 0x03A1;    /* GREEK CAPITAL LETTER RHO */
-+	case 0x53: return 0x03A3;    /* GREEK CAPITAL LETTER SIGMA */
-+	case 0x54: return 0x03A4;    /* GREEK CAPITAL LETTER TAU */
-+	case 0x55: return 0x03A5;    /* GREEK CAPITAL LETTER UPSILON */
-+	case 0x46: return 0x03A6;    /* GREEK CAPITAL LETTER PHI */
-+	case 0x43: return 0x03A7;    /* GREEK CAPITAL LETTER CHI */
-+	case 0x59: return 0x03A8;    /* GREEK CAPITAL LETTER PSI */
-+	case 0x57: return 0x03A9;    /* GREEK CAPITAL LETTER OMEGA */
-+	case 0x61: return 0x03B1;    /* GREEK SMALL LETTER ALPHA */
-+	case 0x62: return 0x03B2;    /* GREEK SMALL LETTER BETA */
-+	case 0x67: return 0x03B3;    /* GREEK SMALL LETTER GAMMA */
-+	case 0x64: return 0x03B4;    /* GREEK SMALL LETTER DELTA */
-+	case 0x65: return 0x03B5;    /* GREEK SMALL LETTER EPSILON */
-+	case 0x7A: return 0x03B6;    /* GREEK SMALL LETTER ZETA */
-+	case 0x68: return 0x03B7;    /* GREEK SMALL LETTER ETA */
-+	case 0x71: return 0x03B8;    /* GREEK SMALL LETTER THETA */
-+	case 0x69: return 0x03B9;    /* GREEK SMALL LETTER IOTA */
-+	case 0x6B: return 0x03BA;    /* GREEK SMALL LETTER KAPPA */
-+	case 0x6C: return 0x03BB;    /* GREEK SMALL LETTER LAMBDA */
-+	case 0x6D: return 0x03BC;    /* GREEK SMALL LETTER MU */
-+	case 0x6E: return 0x03BD;    /* GREEK SMALL LETTER NU */
-+	case 0x78: return 0x03BE;    /* GREEK SMALL LETTER XI */
-+	case 0x6F: return 0x03BF;    /* GREEK SMALL LETTER OMICRON */
-+	case 0x70: return 0x03C0;    /* GREEK SMALL LETTER PI */
-+	case 0x72: return 0x03C1;    /* GREEK SMALL LETTER RHO */
-+	case 0x56: return 0x03C2;    /* GREEK SMALL LETTER FINAL SIGMA */
-+	case 0x73: return 0x03C3;    /* GREEK SMALL LETTER SIGMA */
-+	case 0x74: return 0x03C4;    /* GREEK SMALL LETTER TAU */
-+	case 0x75: return 0x03C5;    /* GREEK SMALL LETTER UPSILON */
-+	case 0x66: return 0x03C6;    /* GREEK SMALL LETTER PHI */
-+	case 0x63: return 0x03C7;    /* GREEK SMALL LETTER CHI */
-+	case 0x79: return 0x03C8;    /* GREEK SMALL LETTER PSI */
-+	case 0x77: return 0x03C9;    /* GREEK SMALL LETTER OMEGA */
-+	case 0x4A: return 0x03D1;    /* GREEK SMALL LETTER SCRIPT THETA */
-+	case 0xA1: return 0x03D2;    /* GREEK CAPITAL LETTER UPSILON HOOK */
-+	case 0x6A: return 0x03D5;    /* GREEK SMALL LETTER SCRIPT PHI */
-+	case 0x76: return 0x03D6;    /* GREEK SMALL LETTER OMEGA PI */
-+	case 0xB7: return 0x2022;    /* BULLET */
-+	case 0xBC: return 0x2026;    /* HORIZONTAL ELLIPSIS */
-+	case 0xA2: return 0x2032;    /* PRIME */
-+	case 0xB2: return 0x2033;    /* DOUBLE PRIME */
-+	case 0x60: return 0x203E;    /* SPACING OVERSCORE */
-+	case 0xA4: return 0x2044;    /* FRACTION SLASH */
-+	case 0xC1: return 0x2111;    /* BLACK-LETTER I */
-+	case 0xC3: return 0x2118;    /* SCRIPT P */
-+	case 0xC2: return 0x211C;    /* BLACK-LETTER R */
-+	case 0xD4: return 0x2122;    /* TRADEMARK */
-+	case 0xE4: return 0x2122;    /* TRADEMARK */
-+/*	case 0x57: return 0x2126;    /* OHM */
-+	case 0xC0: return 0x2135;    /* FIRST TRANSFINITE CARDINAL */
-+	case 0xAC: return 0x2190;    /* LEFT ARROW */
-+	case 0xAD: return 0x2191;    /* UP ARROW */
-+	case 0xAE: return 0x2192;    /* RIGHT ARROW */
-+	case 0xAF: return 0x2193;    /* DOWN ARROW */
-+	case 0xAB: return 0x2194;    /* LEFT RIGHT ARROW */
-+	case 0xBF: return 0x21B5;    /* DOWN ARROW WITH CORNER LEFT */
-+	case 0xDC: return 0x21D0;    /* LEFT DOUBLE ARROW */
-+	case 0xDD: return 0x21D1;    /* UP DOUBLE ARROW */
-+	case 0xDE: return 0x21D2;    /* RIGHT DOUBLE ARROW */
-+	case 0xDF: return 0x21D3;    /* DOWN DOUBLE ARROW */
-+	case 0xDB: return 0x21D4;    /* LEFT RIGHT DOUBLE ARROW */
-+	case 0x22: return 0x2200;    /* FOR ALL */
-+	case 0xB6: return 0x2202;    /* PARTIAL DIFFERENTIAL */
-+	case 0x24: return 0x2203;    /* THERE EXISTS */
-+	case 0xC6: return 0x2205;    /* EMPTY SET */
-+/*	case 0x44: return 0x2206;    /* INCREMENT */
-+	case 0xD1: return 0x2207;    /* NABLA */
-+	case 0xCE: return 0x2208;    /* ELEMENT OF */
-+	case 0xCF: return 0x2209;    /* NOT AN ELEMENT OF */
-+	case 0x27: return 0x220B;    /* CONTAINS AS MEMBER */
-+	case 0xD5: return 0x220F;    /* N-ARY PRODUCT */
-+	case 0xE5: return 0x2211;    /* N-ARY SUMMATION */
-+	case 0x2D: return 0x2212;    /* MINUS SIGN */
-+/*	case 0xA4: return 0x2215;    /* DIVISION SLASH */
-+	case 0x2A: return 0x2217;    /* ASTERISK OPERATOR */
-+	case 0xD6: return 0x221A;    /* SQUARE ROOT */
-+	case 0xB5: return 0x221D;    /* PROPORTIONAL TO */
-+	case 0xA5: return 0x221E;    /* INFINITY */
-+	case 0xD0: return 0x2220;    /* ANGLE */
-+	case 0xD9: return 0x2227;    /* LOGICAL AND */
-+	case 0xDA: return 0x2228;    /* LOGICAL OR */
-+	case 0xC7: return 0x2229;    /* INTERSECTION */
-+	case 0xC8: return 0x222A;    /* UNION */
-+	case 0xF2: return 0x222B;    /* INTEGRAL */
-+	case 0x5C: return 0x2234;    /* THEREFORE */
-+	case 0x7E: return 0x223C;    /* TILDE OPERATOR */
-+	case 0x40: return 0x2245;    /* APPROXIMATELY EQUAL TO */
-+	case 0xBB: return 0x2248;    /* ALMOST EQUAL TO */
-+	case 0xB9: return 0x2260;    /* NOT EQUAL TO */
-+	case 0xBA: return 0x2261;    /* IDENTICAL TO */
-+	case 0xA3: return 0x2264;    /* LESS THAN OR EQUAL TO */
-+	case 0xB3: return 0x2265;    /* GREATER THAN OR EQUAL TO */
-+	case 0xCC: return 0x2282;    /* SUBSET OF */
-+	case 0xC9: return 0x2283;    /* SUPERSET OF */
-+	case 0xCB: return 0x2284;    /* NOT A SUBSET OF */
-+	case 0xCD: return 0x2286;    /* SUBSET OF OR EQUAL TO */
-+	case 0xCA: return 0x2287;    /* SUPERSET OF OR EQUAL TO */
-+	case 0xC5: return 0x2295;    /* CIRCLED PLUS */
-+	case 0xC4: return 0x2297;    /* CIRCLED TIMES */
-+	case 0x5E: return 0x22A5;    /* UP TACK */
-+	case 0xD7: return 0x22C5;    /* DOT OPERATOR */
-+	case 0xF3: return 0x2320;    /* TOP HALF INTEGRAL */
-+	case 0xF5: return 0x2321;    /* BOTTOM HALF INTEGRAL */
-+	case 0xE1: return 0x2329;    /* BRA */
-+	case 0xF1: return 0x232A;    /* KET */
-+	case 0xE0: return 0x25CA;    /* LOZENGE */
-+	case 0xAA: return 0x2660;    /* BLACK SPADE SUIT */
-+	case 0xA7: return 0x2663;    /* BLACK CLUB SUIT */
-+	case 0xA9: return 0x2665;    /* BLACK HEART SUIT */
-+	case 0xA8: return 0x2666;    /* BLACK DIAMOND SUIT */
-+	default:   return 0x0000;
-+	}
-+};
-+
-+map_f adobe_charset(XftFont *font)
-+{
-+	map_f map = NULL;
-+
-+	/*
-+	 * Hack: does this font has small a in its charset?
-+	 * If not it is likly a Symbol or a Dingbats derivate.
-+	 */
-+	if (XftCharExists(tool_d, font, 0x61))
-+		return NULL;
-+	else {
-+		XftChar8 *pattern = FcNameUnparse(font->pattern);
-+		char *fullname;
-+
-+		if ((fullname = strcasestr((char*)pattern, "fullname="))) {
-+		        char *colon;
-+
-+		        fullname += 9;
-+		        if (colon = strchr(fullname, ':'))
-+		                *colon = '\0';
-+		        if (strcasestr(fullname, "symbol"))
-+		                map = map_symbols;
-+		        else if (strcasestr(fullname, "dingbats"))
-+		                map = map_dingbats;
-+		        else if (strcasestr(fullname, "d050000l"))
-+		                map = map_dingbats;
-+		        free(pattern);
-+		}
-+	}
-+	return map;
-+}
-diff --git a/src/u_fonts.h b/src/u_fonts.h
-index 10b5f7c..725161a 100644
---- a/src/u_fonts.h
-+++ b/src/u_fonts.h
-@@ -71,4 +71,15 @@ extern void	text_origin(int *draw_x, int *draw_y, int base_x, int base_y,
- extern struct _fstruct	ps_fontinfo[];
- extern struct _fstruct	latex_fontinfo[];
- 
-+/*
-+ * For (ITC) Zapf Dingbats, URW Dingbats, or URW D050000L as well
-+ * as Symbol, Standard Symbols PS, or URW Standard Symbols L we
-+ * need to map the byte characters into UTF-8 multi byte characters.
-+ * This to make XftTextExtentsUtf8() and XftDrawStringUtf8() working.
-+ */
-+typedef XftChar8 (*map_f)(XftChar8);
-+extern XftChar32 map_dingbats(XftChar8);
-+extern XftChar32 map_symbols(XftChar8);
-+extern map_f adobe_charset(XftFont *font);
-+
- #endif /* U_FONTS_H */
-diff --git a/src/w_drawprim.c b/src/w_drawprim.c
-index 959e3a6..7487833 100644
---- a/src/w_drawprim.c
-+++ b/src/w_drawprim.c
-@@ -162,6 +162,8 @@ pw_xfttext(XftDraw *xftdraw, int x, int y, int depth, XftFont *font,
- {
- 	int	zy = ZOOMY(y);
- 	int	zx = ZOOMX(x);
-+	size_t	len = strlen(s);
-+	map_f	map = NULL;
- 	/* XGlyphInfo	extents; */
- 
- 	if (*s == '\0')
-@@ -181,8 +183,19 @@ pw_xfttext(XftDraw *xftdraw, int x, int y, int depth, XftFont *font,
- 	if (check_cancel())
- 		return;
- 
--	XftDrawStringUtf8(xftdraw, &xftcolor[c], font, zx, zy, (XftChar8 *)s,
--			(int)strlen(s));
-+	if ((map = adobe_charset(font))) {
-+		XftChar32 glyphs[len];
-+		int glen = 0;
-+
-+		for (XftChar8 *chr = (XftChar8 *)s; chr < s+len; chr++) {
-+			XftChar32 glyph = XftCharIndex(tool_d, font, map(*chr));
-+			if (glyph)
-+				glyphs[glen++] = glyph;
-+		}
-+		XftDrawGlyphs(xftdraw, &xftcolor[c], font, zx, zy, glyphs, glen);
-+	} else
-+		XftDrawStringUtf8(xftdraw, &xftcolor[c], font, zx, zy,
-+				  (XftChar8*)s, (int)len);
- }
- 
- /* print "string" in window "w" using font specified in fstruct
--- 
-2.43.0
-

diff --git a/Fix-exporting-only-active-layers-ticket-163.patch b/Fix-exporting-only-active-layers-ticket-163.patch
deleted file mode 100644
index dabc1c1..0000000
--- a/Fix-exporting-only-active-layers-ticket-163.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From a4a2f3f3aa29ec7fc84f9d782306b37bbe75025c Mon Sep 17 00:00:00 2001
-From: Thomas Loimer <thomas.loimer@tuwien.ac.at>
-Date: Sun, 31 Dec 2023 22:51:29 +0100
-Subject: [PATCH] Fix exporting only active layers, ticket #163
-
----
- src/u_print.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/u_print.c b/src/u_print.c
-index c24c096..57921b3 100644
---- a/src/u_print.c
-+++ b/src/u_print.c
-@@ -861,10 +861,10 @@ build_layer_list(char *layers)
- 	}
- 	if (len < notlen && firstyes != -1) {
- 		/* use list of layers TO print */
--		sprintf(layers," -D +%s ",list);
-+		sprintf(layers, "+%s", list);
- 	} else if (firstno != -1){
- 		/* use list of layers to NOT print */
--		sprintf(layers," -D -%s ",notlist);
-+		sprintf(layers, "-%s", notlist);
- 	}
- }
- 
--- 
-2.39.2
-

diff --git a/Sanitize-a-call-to-realloc-ticket-165.patch b/Sanitize-a-call-to-realloc-ticket-165.patch
deleted file mode 100644
index 94b8246..0000000
--- a/Sanitize-a-call-to-realloc-ticket-165.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 68403622a6f6c7d74f73e38989cfc0ed86fb83fc Mon Sep 17 00:00:00 2001
-From: Thomas Loimer <thomas.loimer@tuwien.ac.at>
-Date: Sun, 31 Dec 2023 15:18:45 +0100
-Subject: [PATCH] Sanitize a call to realloc(), ticket #165
-
----
- src/u_print.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/u_print.c b/src/u_print.c
-index 2ed385f..c24c096 100644
---- a/src/u_print.c
-+++ b/src/u_print.c
-@@ -130,7 +130,7 @@ start_argumentlist(char *arg[restrict], char argbuf[restrict][ARGBUF_SIZE],
- 	arg[0] = fig2dev_cmd;
- 	arg[1] = "-L";
- 	*a = 2;	/* arg[2] will be the output language */
--	if (appres.magnification < 99.99 | appres.magnification > 100.01) {
-+	if (appres.magnification < 99.99 || appres.magnification > 100.01) {
- 		int	n;
- 		arg[++*a] = "-m";
- 		n = snprintf(argbuf[++*b], ARGBUF_SIZE,
-@@ -531,6 +531,7 @@ print_export(char *file, int xoff, int yoff, char *backgrnd, char *transparent,
- 		} else if (cur_exp_lang == LANG_PSTEX ||
- 				cur_exp_lang == LANG_PDFTEX) {
- 			size_t	len = strlen(outfile);
-+			char	*s;
- 
- 			/* Options were already set above
- 			    - output the first file */
-@@ -544,8 +545,9 @@ print_export(char *file, int xoff, int yoff, char *backgrnd, char *transparent,
- 				goto free_outfile;
- 			}
- 			memcpy(tmp_name, outfile, len + 1);
--			if (!realloc(outfile, len + 3)) {
-+			if (!(outfile = realloc(s = outfile, len + 3))) {
- 				ret = 1;
-+				outfile = s;	/* for free(outfile) below */
- 				goto free_tmp_name;
- 			}
- 			strcpy(outfile + len, "_t");
--- 
-2.39.2
-

diff --git a/sources b/sources
index 17e233c..221c443 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (xfig-3.2.9.tar.xz) = ec33476ca4349cdc106ac2308c61f6ecd014bb7331a4fc3616c9f94b93bdc391ce9affe87139c70da88549449b45309d6d9ec78a1e8477450bda4bc370cbbc9a
+SHA512 (mcj-xfig-ce9782a404b6a527393839369aac13dcfb66ff16.zip) = a0d483d77edb16d869596a53f89783efd232832b4447089227f34ff552836209f595e5cc9f179242386e85f6f8378607433913720aab29b9d69a2a4007404b47
 SHA512 (xfig-icons.tar.gz) = f7d9b314d57994d479712740dcac4a2c924ddacea028db1c6cdeef36fb7d846885c45d21499f7453c750c265eeb5877e4b032454911ce91667ccc550cb2112e5

diff --git a/xfig-3.2.9-compile-fix.patch b/xfig-3.2.9-compile-fix.patch
deleted file mode 100644
index 6ca38bc..0000000
--- a/xfig-3.2.9-compile-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -up xfig-3.2.9/configure~ xfig-3.2.9/configure
-diff -up xfig-3.2.9/src/u_fonts.h~ xfig-3.2.9/src/u_fonts.h
---- xfig-3.2.9/src/u_fonts.h~	2024-02-26 13:37:49.000000000 +0100
-+++ xfig-3.2.9/src/u_fonts.h	2024-02-26 14:05:16.718889666 +0100
-@@ -77,7 +77,7 @@ extern struct _fstruct	latex_fontinfo[];
-  * need to map the byte characters into UTF-8 multi byte characters.
-  * This to make XftTextExtentsUtf8() and XftDrawStringUtf8() working.
-  */
--typedef XftChar8 (*map_f)(XftChar8);
-+typedef XftChar32 (*map_f)(XftChar8);
- extern XftChar32 map_dingbats(XftChar8);
- extern XftChar32 map_symbols(XftChar8);
- extern map_f adobe_charset(XftFont *font);

diff --git a/xfig.appdata.xml b/xfig.appdata.xml
deleted file mode 100644
index 52787f6..0000000
--- a/xfig.appdata.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<component type="desktop">
-  <id>xfig.desktop</id>
-  <metadata_license>CC0-1.0</metadata_license>
-  <project_license>MIT</project_license>
-  <name>Xfig</name>
-  <summary>Xfig drawing application</summary>
-  <description>
-    <p>
-      Xfig is an X Window System tool for creating basic vector graphics,
-      including bezier curves, lines, rulers and more.  The resulting
-      graphics can be saved, printed on PostScript printers or converted to
-      a variety of other formats (e.g., X11 bitmaps, Encapsulated
-      PostScript, LaTeX).
-    </p>
-    <p>
-      You should install xfig if you need a simple program to create vector
-      graphics.
-    </p>
-  </description>
-  <url type="homepage">https://en.wikipedia.org/wiki/Xfig</url>
-  <url type="help">http://epb.lbl.gov/xfig/</url>
-  <screenshots>
-    <screenshot type="default">http://mcj.sourceforge.net/images/screen-image.png</screenshot>
-    <screenshot>http://mcj.sourceforge.net/images/library-icon-view.png</screenshot>
-    <screenshot>http://mcj.sourceforge.net/images/file-panel.png</screenshot>
-    <screenshot>http://mcj.sourceforge.net/images/color-panel.png</screenshot>
-    <screenshot>http://mcj.sourceforge.net/images/dimline-panel.png</screenshot>
-  </screenshots>
-  <updatecontact>jwrdegoede_at_fedoraproject.org</updatecontact>
-</component>

diff --git a/xfig.desktop b/xfig.desktop
deleted file mode 100644
index 0ad8a60..0000000
--- a/xfig.desktop
+++ /dev/null
@@ -1,49 +0,0 @@
-[Desktop Entry]
-Categories=Graphics;
-MimeType=image/fig;image/x-xfig;
-Exec=/usr/bin/xfig %f
-Icon=xfig
-Type=Application
-Name=Xfig
-Name[eo]=XDesegno
-Name[et]=Ffig
-Name[ja]=xfig
-Name[no]=X-figur
-Comment=Xfig drawing application
-Comment[bg]=Xfig ïðîãðàìà çà ðèñóâàíå
-Comment[ca]=Aplicació de dibuix Xfig
-Comment[cs]=Aplikace pro kreslení vektorových obrázků
-Comment[da]=Xfig tegneprogram
-Comment[de]=Xfig-Zeichenprogramm
-Comment[el]=Xfig
-Comment[eo]=Desegnilo "Xfig"
-Comment[es]=Aplicación de diseño vectorial (objetos)
-Comment[et]=XFig joonistusprogramm
-Comment[fi]=Xfig vektoripiirto-ohjelma
-Comment[fr]=Programme de dessin objet Xfig
-Comment[gl]=Aplicación de debuxo (obxectos)
-Comment[he]=Xfig רויצה םושיי
-Comment[hr]=Program za crtanje
-Comment[hu]=Rajzolóprogram
-Comment[is]=Hlutbundið teikniforrit
-Comment[it]=Applicazione di disegno Xfig
-Comment[lt]=Xfig braižymo programa
-Comment[mk]=Едноставна апликација за векторско цртање
-Comment[nl]=Xfig-tekenprogramma
-Comment[no]=Xfig-tegneprogram
-Comment[no_NY]=Teikneprogrammet Xfig
-Comment[pl]=Aplikacja do kreślenia
-Comment[pt]=Aplicação de desenho
-Comment[ro]=Program de desenare vectorială
-Comment[ru]=Приложения для рисования векторной графики
-Comment[sk]=Xfig aplikácia pre kreslenie vektorových obrázkov
-Comment[sl]=Program za risanje Xfig
-Comment[sr]=Xfig prgram za vektorsko crtanje
-Comment[sv]=Xfig ritprogram
-Comment[ta]=Xfig Ũþø ÀÂýÀ¡Î
-Comment[tr]=Xfig çizim uygulaması
-Comment[uk]=Xfig
-Comment[zh_CN.GB2312]=Xfig 绘图应用程序
-Terminal=false
-StartupNotify=false
-Keywords=vector;graphics;figure;drawing;

diff --git a/xfig.rpmlintrc b/xfig.rpmlintrc
index d4619a7..e87b437 100644
--- a/xfig.rpmlintrc
+++ b/xfig.rpmlintrc
@@ -1,2 +1,5 @@
-addFilter("W: spelling-error.*")
 addFilter("W: invalid-url Source1")
+addFilter("W: no-%check-section")
+addFilter("W: files-duplicate /usr/share/")
+addFilter("E: non-executable-script /usr/share/xfig/Libraries/Maps/")
+addFilter("E: spelling-error")

diff --git a/xfig.spec b/xfig.spec
index d535632..75c7451 100644
--- a/xfig.spec
+++ b/xfig.spec
@@ -1,36 +1,23 @@
-%global app_defaults_dir %{_datadir}/X11/app-defaults
+%global commit ce9782a404b6a527393839369aac13dcfb66ff16
+%global commitdate 20250317
+%global shortcommit %(c=%{commit}; echo ${c:0:7})
 
 Summary: An X Window System tool for drawing basic vector graphics
 Name: xfig
-Version: 3.2.9
-Release: 7%{?dist}
+Version: 3.2.9a
+Release: 1.%{commitdate}git%{shortcommit}%{?dist}
 License: MIT
 URL:     https://en.wikipedia.org/wiki/Xfig
-Source0: http://downloads.sourceforge.net/mcj/xfig-%{version}.tar.xz
+#Source0: http://downloads.sourceforge.net/mcj/xfig-%%{version}.tar.xz
+Source0: https://sourceforge.net/code-snapshots/git/m/mc/mcj/xfig.git/mcj-xfig-%{commit}.zip
 Source1: xfig-icons.tar.gz
-Source2: xfig.desktop
-Source3: xfig.appdata.xml
-# https://sourceforge.net/p/mcj/tickets/165/
-# https://bugzilla.redhat.com/show_bug.cgi?id=2252679
-# https://sourceforge.net/p/mcj/xfig/ci/68403622a6f6c7d74f73e38989cfc0ed86fb83fc/
-Patch0:  Sanitize-a-call-to-realloc-ticket-165.patch
-# https://sourceforge.net/p/mcj/tickets/163/
-# https://sourceforge.net/p/mcj/xfig/ci/a4a2f3f3aa29ec7fc84f9d782306b37bbe75025c/
-Patch1:  Fix-exporting-only-active-layers-ticket-163.patch
-# https://sourceforge.net/p/mcj/tickets/159/
-# https://bugzilla.redhat.com/show_bug.cgi?id=2260359
-# https://sourceforge.net/p/mcj/xfig/ci/1e2d842875502b4ce0e74ec779454304c71efe54/
-Patch2: 0001-Map-symbol-and-dingbat-glyphs-to-their-unicode-locat.patch
-# compile fix for above patch
-Patch3: xfig-3.2.9-compile-fix.patch
-#Patch0: xfig-3.2.5a-default-apps.patch
-#Patch1: xfig-3.2.5-urwfonts.patch
 
 BuildRequires: make
 BuildRequires: gcc libtool
 BuildRequires: transfig
 BuildRequires: libjpeg-devel
 BuildRequires: libpng-devel
+BuildRequires: libtiff-devel
 BuildRequires: libICE-devel
 BuildRequires: libSM-devel
 BuildRequires: libX11-devel
@@ -43,7 +30,6 @@ BuildRequires: libXpm-devel
 BuildRequires: libXt-devel
 BuildRequires: Xaw3d-devel
 BuildRequires: man2html-core ImageMagick
-BuildRequires: desktop-file-utils libappstream-glib
 # For eps preview generation
 Requires: ghostscript
 Requires: transfig
@@ -72,7 +58,7 @@ graphics.
 
 
 %prep
-%autosetup -p1 -a 1
+%autosetup -p1 -a 1 -n mcj-xfig-%{commit}
 for i in doc/html/japanese/button_frame.fig doc/html/japanese/japanese.ps \
          doc/html/animate.js; do
   sed -i.orig 's/\r//' $i; touch -r $i.orig $i; rm $i.orig
@@ -100,26 +86,26 @@ convert %{name}32x32.xpm \
 convert %{name}64x64.xpm \
   $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/64x64/apps/%{name}.png
 
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/applications
-desktop-file-install --dir $RPM_BUILD_ROOT%{_datadir}/applications %{SOURCE2}
-mkdir -p $RPM_BUILD_ROOT%{_datadir}/appdata
-install -p -m 644 %{SOURCE3} $RPM_BUILD_ROOT%{_datadir}/appdata
-appstream-util validate-relax --nonet \
-  $RPM_BUILD_ROOT%{_datadir}/appdata/%{name}.appdata.xml
-
 
 %files
 %doc %{_docdir}/%{name}
 %{_bindir}/%{name}
 %{_datadir}/%{name}
 %{_mandir}/man1/%{name}.1*
-%{app_defaults_dir}/Fig
-%{_datadir}/appdata/%{name}.appdata.xml
-%{_datadir}/applications/%{name}.desktop
+%{_datadir}/X11/app-defaults/Fig
+%{_datadir}/metainfo/org.xfig.xfig.metainfo.xml
+%{_datadir}/applications/org.xfig.xfig.desktop
 %{_datadir}/icons/hicolor/??x??/apps/%{name}.png
 
 
 %changelog
+* Wed Aug 6 2025 Hans de Goede <hans@hansg.org> - 3.2.9a-1.20250317gitce9782a
+- Update to 3.2.9a + latest git changes to fix build with -std=c11
+- Switch to upstream appdata/metainfo and desktop file
+- Drop all patches (all upstreamed)
+- Resolves: rhbz#2341567
+- Resolves: rhbz#2385740
+
 * Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 3.2.9-7
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
 

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-05-30 14:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-05-30 14:28 [rpms/xfig] epel10.2: Update to 3.2.9a + latest git changes to fix build with -std=c11 Hans de Goede

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox