Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package fonttosfnt for openSUSE:Factory checked in at 2026-01-06 17:46:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/fonttosfnt (Old) and /work/SRC/openSUSE:Factory/.fonttosfnt.new.1928 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "fonttosfnt" Tue Jan 6 17:46:25 2026 rev:15 rq:1325612 version:1.2.5 Changes: -------- --- /work/SRC/openSUSE:Factory/fonttosfnt/fonttosfnt.changes 2024-10-13 17:33:15.981219491 +0200 +++ /work/SRC/openSUSE:Factory/.fonttosfnt.new.1928/fonttosfnt.changes 2026-01-06 17:47:38.825186353 +0100 @@ -1,0 +2,12 @@ +Sat Jan 3 11:51:05 UTC 2026 - Stefan Dirsch <[email protected]> + +- update to 1.2.5 + * Report argument that caused error before printing usage message + * Add --help and --version options + * Strip trailing whitespace from source files + * writePCLT: Quiet 2 -Wunterminated-string-initialization warnings + * write.c: Handle two -Wsuggest-attribute=pure instances + * fonttosfnt.1: Some editorial changes for this man page [Debian + bug #1099774] + +------------------------------------------------------------------- Old: ---- fonttosfnt-1.2.4.tar.xz New: ---- fonttosfnt-1.2.5.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ fonttosfnt.spec ++++++ --- /var/tmp/diff_new_pack.Gnt92h/_old 2026-01-06 17:47:39.265204454 +0100 +++ /var/tmp/diff_new_pack.Gnt92h/_new 2026-01-06 17:47:39.269204619 +0100 @@ -1,7 +1,7 @@ # # spec file for package fonttosfnt # -# Copyright (c) 2024 SUSE LLC +# Copyright (c) 2026 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: fonttosfnt -Version: 1.2.4 +Version: 1.2.5 Release: 0 Summary: Utility to wrap a bitmap font in a sfnt (TrueType) wrapper License: MIT ++++++ fonttosfnt-1.2.4.tar.xz -> fonttosfnt-1.2.5.tar.xz ++++++ ++++ 2686 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/ChangeLog new/fonttosfnt-1.2.5/ChangeLog --- old/fonttosfnt-1.2.4/ChangeLog 2024-10-12 19:34:11.000000000 +0200 +++ new/fonttosfnt-1.2.5/ChangeLog 2025-12-31 19:22:11.000000000 +0100 @@ -1,3 +1,98 @@ +commit cd011dd4eb0c7cb1f030281bac207447e75cb056 +Author: Alan Coopersmith <[email protected]> +Date: Wed Dec 31 10:08:42 2025 -0800 + + fonttosfnt 1.2.5 + + Signed-off-by: Alan Coopersmith <[email protected]> + +commit f7dfd14a4c6621d3d7f692a26df82b08336d50cd +Author: Alan Coopersmith <[email protected]> +Date: Sun Aug 3 13:52:27 2025 -0700 + + write.c: Handle two -Wsuggest-attribute=pure instances + + Reported by gcc 15.1: + + write.c: In function ‘log2_floor’: + write.c:71:1: warning: function might be candidate for attribute ‘pure’ + if it is known to return normally [-Wsuggest-attribute=pure] + 71 | log2_floor(int x) + | ^~~~~~~~~~ + write.c: In function ‘two_log2_floor’: + write.c:89:1: warning: function might be candidate for attribute ‘pure’ + if it is known to return normally [-Wsuggest-attribute=pure] + 89 | two_log2_floor(int x) + | ^~~~~~~~~~~~~~ + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/26> + +commit 5f139fae67d7b18b9fcf565769a831cdf2bcfaf9 +Author: Alan Coopersmith <[email protected]> +Date: Sun Aug 3 13:43:10 2025 -0700 + + writePCLT: Quiet 2 -Wunterminated-string-initialization warnings + + Reported by gcc 15.1: + + write.c: In function ‘writePCLT’: + write.c:1144:21: warning: initializer-string for array of ‘char’ + truncates NUL terminator but destination lacks ‘nonstring’ attribute + (17 chars into 16 available) [-Wunterminated-string-initialization] + 1144 | char name[16] = "X11 font "; + | ^~~~~~~~~~~~~~~~~~ + write.c:1145:24: warning: initializer-string for array of ‘char’ + truncates NUL terminator but destination lacks ‘nonstring’ attribute + (7 chars into 6 available) [-Wunterminated-string-initialization] + 1145 | char filename[6] = "X11R00"; + | ^~~~~~~~ + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/26> + +commit f2700cb8e72e8bdf13559fdad8c4e92bfa13af26 +Author: Alan Coopersmith <[email protected]> +Date: Sun Aug 3 13:28:57 2025 -0700 + + Strip trailing whitespace from source files + + Performed with: `git ls-files | xargs perl -i -p -e 's{[ \t]+$}{}'` + + `git diff -w` & `git diff -b` show no diffs from this change + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/26> + +commit aee8ee02b19d99489ff28e95c4fac2e069e16e37 +Author: Bjarni Ingi Gislason <[email protected]> +Date: Fri Mar 7 20:48:44 2025 +0000 + + fonttosfnt.1: Some editorial changes for this man page [Debian bug #1099774] + + Originally from https://bugs.debian.org/1099774 + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/25> + +commit 70808d3bc33e589f93df1238fd3c00c3e75a7d80 +Author: Alan Coopersmith <[email protected]> +Date: Sat Mar 22 13:31:59 2025 -0700 + + Add --help and --version options + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/24> + +commit a99bd1d07ef344291c7097a37e7e64b6a92ec35e +Author: Alan Coopersmith <[email protected]> +Date: Sat Mar 22 13:13:57 2025 -0700 + + Report argument that caused error before printing usage message + + Signed-off-by: Alan Coopersmith <[email protected]> + Part-of: <https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/merge_requests/24> + commit 6b29ee45a794e459d53643ee72a82442cd30d4e8 Author: Alan Coopersmith <[email protected]> Date: Sat Oct 12 10:28:05 2024 -0700 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/Makefile.am new/fonttosfnt-1.2.5/Makefile.am --- old/fonttosfnt-1.2.4/Makefile.am 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/Makefile.am 2025-12-31 19:22:00.000000000 +0100 @@ -1,6 +1,6 @@ -# +# # Copyright 2005 Red Hat, Inc. -# +# # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that # the above copyright notice appear in all copies and that both that @@ -10,7 +10,7 @@ # specific, written prior permission. Red Hat makes no # representations about the suitability of this software for any purpose. It # is provided "as is" without express or implied warranty. -# +# # RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/compile new/fonttosfnt-1.2.5/compile --- old/fonttosfnt-1.2.4/compile 2024-10-12 19:34:06.000000000 +0200 +++ new/fonttosfnt-1.2.5/compile 2025-12-31 19:22:05.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2024-06-19.01; # UTC +scriptversion=2025-06-18.21; # UTC -# Copyright (C) 1999-2024 Free Software Foundation, Inc. +# Copyright (C) 1999-2025 Free Software Foundation, Inc. # Written by Tom Tromey <[email protected]>. # # This program is free software; you can redistribute it and/or modify @@ -37,11 +37,11 @@ file_conv= -# func_file_conv build_file lazy +# func_file_conv build_file unneeded_conversions # Convert a $build file to $host form and store it in $file # Currently only supports Windows hosts. If the determined conversion -# type is listed in (the comma separated) LAZY, no conversion will -# take place. +# type is listed in (the comma separated) UNNEEDED_CONVERSIONS, no +# conversion will take place. func_file_conv () { file=$1 @@ -51,9 +51,20 @@ # lazily determine how to convert abs files case `uname -s` in MINGW*) - file_conv=mingw + if test -n "$MSYSTEM" && (cygpath --version) >/dev/null 2>&1; then + # MSYS2 environment. + file_conv=cygwin + else + # Original MinGW environment. + file_conv=mingw + fi ;; - CYGWIN* | MSYS*) + MSYS*) + # Old MSYS environment, or MSYS2 with 32-bit MSYS2 shell. + file_conv=cygwin + ;; + CYGWIN*) + # Cygwin environment. file_conv=cygwin ;; *) @@ -63,12 +74,14 @@ fi case $file_conv/,$2, in *,$file_conv,*) + # This is the optimization mentioned above: + # If UNNEEDED_CONVERSIONS contains $file_conv, don't convert. ;; mingw/*) file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` ;; - cygwin/* | msys/*) - file=`cygpath -m "$file" || echo "$file"` + cygwin/*) + file=`cygpath -w "$file" || echo "$file"` ;; wine/*) file=`winepath -w "$file" || echo "$file"` @@ -343,9 +356,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/configure.ac new/fonttosfnt-1.2.5/configure.ac --- old/fonttosfnt-1.2.4/configure.ac 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/configure.ac 2025-12-31 19:22:00.000000000 +0100 @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT(fonttosfnt, [1.2.4], +AC_INIT(fonttosfnt, [1.2.5], [https://gitlab.freedesktop.org/xorg/app/fonttosfnt/-/issues], [fonttosfnt]) AC_CONFIG_SRCDIR([Makefile.am]) @@ -48,7 +48,7 @@ AM_CONDITIONAL(NEED_SETENV, [test x$have_setenv = xno]) # Checks for pkg-config packages -PKG_CHECK_MODULES(FONTTOSFNT, xproto freetype2 fontenc) +PKG_CHECK_MODULES(FONTTOSFNT, [xproto >= 7.0.33 freetype2 fontenc]) AC_CONFIG_FILES([ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/fonttosfnt.c new/fonttosfnt-1.2.5/fonttosfnt.c --- old/fonttosfnt-1.2.4/fonttosfnt.c 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/fonttosfnt.c 2025-12-31 19:22:00.000000000 +0100 @@ -35,12 +35,15 @@ int bit_aligned_flag = 1; static void -usage(void) +usage(FILE *out) { - fprintf(stderr, "Usage:\n"); - fprintf(stderr, - "fonttosfnt [ -v ] [ -c ] [ -b ] [ -r ] [ -g n ] [ -m n ] -o font.otb " - "[ -- ] [ font ] ...\n"); + static const char *usage = + "Usage:\n" + " fonttosfnt [ -v ] [ -c ] [ -b ] [ -r ] [ -g n ] [ -m n ] -o font.otb \n" + " [ -- ] [ font ] ...\n" + " fonttosfnt --help|--version\n"; + + fputs(usage, out); } int @@ -77,29 +80,39 @@ i++; } else if(strcmp(argv[i], "-g") == 0) { if(argc <= i + 1) { - usage(); + fprintf(stderr, "Missing argument to %s\n", argv[i]); + usage(stderr); exit(1); } glyph_flag = atoi(argv[i + 1]); i += 2; } else if(strcmp(argv[i], "-m") == 0) { if(argc <= i + 1) { - usage(); + fprintf(stderr, "Missing argument to %s\n", argv[i]); + usage(stderr); exit(1); } metrics_flag = atoi(argv[i + 1]); i += 2; + } else if(strcmp(argv[i], "--help") == 0) { + usage(stdout); + exit(0); + } else if(strcmp(argv[i], "--version") == 0) { + puts(PACKAGE_STRING); + exit(0); } else if(strcmp(argv[i], "--") == 0) { i++; break; } else { - usage(); + fprintf(stderr, "Unknown argument: %s\n", argv[i]); + usage(stderr); exit(1); } } if(output == NULL) { - usage(); + fputs("Missing required -o option\n", stderr); + usage(stderr); exit(1); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/man/fonttosfnt.man new/fonttosfnt-1.2.5/man/fonttosfnt.man --- old/fonttosfnt-1.2.4/man/fonttosfnt.man 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/man/fonttosfnt.man 2025-12-31 19:22:00.000000000 +0100 @@ -12,66 +12,103 @@ [ .B \-\- ] [ -.IR font +.I font ] ... +.PP +.B fonttosfnt +.BR --help | --version .SH DESCRIPTION -Wrap a bitmap font or a set of bitmap fonts in a sfnt (TrueType or -OpenType) wrapper. -If no font is specified, a BDF font is read from standard input (stdin). +Wrap a bitmap font +or a set of bitmap fonts in a sfnt +(TrueType or OpenType) +wrapper. +If no font is specified, +a BDF font is read from standard input (stdin). .SH OPTIONS .TP .B \-v Be verbose. .TP .B \-c -Do not crop glyphs. This usually increases file size, but may -sometimes yield a modest decrease in file size for small character -cell fonts (terminal fonts). +Do not crop glyphs. +This usually increases file size, +but may sometimes yield a modest decrease in file size for small +character cell fonts +(terminal fonts). .TP .B \-b -Write byte-aligned glyph data. By default, unaligned data is written, +Write byte-aligned glyph data. +By default, +unaligned data is written, which yields a smaller file size. .TP .B \-r -Do not reencode fonts. By default, fonts are reencoded to Unicode -whenever possible. +Do not reencode fonts. +By default, +fonts are reencoded to Unicode whenever possible. .TP .BI \-g " n" -Set the type of scalable glyphs that we write. If +Set the type of scalable glyphs that we write. +If .I n -is 0, no scalable glyphs are written; this is legal but confuses -most current software. If +is 0, +no scalable glyphs are written; +this is valid but confuses most current software. +If .I n -is 1, a single scalable glyph (the undefined glyph) is written; this -is recommended, but triggers a bug in current versions of +is 1, +a single scalable glyph +(the undefined glyph) +is written; +this is recommended, +but triggers a bug in current versions of .BR FreeType . If .I n -is 2 (the default), a sufficiently high number of blank glyphs are -written, which works with +is 2 +(the default), +a sufficiently high number of blank glyphs are written, +which works with .B FreeType but increases file size. .TP .BI \-m " n" -Set the type of scalable metrics that we write. If +Set the type of scalable metrics that we write. +If .I n -is 0, no scalable metrics are written, which may or may not be legal. +is 0, +no scalable metrics are written, +which may or may not be valid. If .I n -is 1, full metrics for a single glyph are written, and only left -sidebearing values are written for the other glyphs. If +is 1, +full metrics for a single glyph are written, +and only left sidebearing values are written for the other glyphs. +If .I n -is 2, scalable metrics for all glyphs are written, which increases -file size and is not recommended. The default is 1. +is 2, +scalable metrics for all glyphs are written, +which increases file size +and is not recommended. +The default is 1. .TP .B \-\- End of options. +.TP +.B \-\-help +Prints a usage message and exits. +.TP +.B \-\-version +Prints version info and exits. .SH BUGS -Some of the font-level values, notably sub- and superscript positions, +Some of the font-level values, +notably sub- and superscript positions, are dummy values. .SH SEE ALSO -X(__miscmansuffix__), Xserver(__appmansuffix__), Xft(__libmansuffix__). -.I Fonts in X11. +.BR X (__miscmansuffix__), +.BR Xserver (__appmansuffix__), +.BR Xft (__libmansuffix__). +.IR "Fonts in X11" . .SH AUTHOR The version of .B Fonttosfnt diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/missing new/fonttosfnt-1.2.5/missing --- old/fonttosfnt-1.2.4/missing 2024-10-12 19:34:06.000000000 +0200 +++ new/fonttosfnt-1.2.5/missing 2025-12-31 19:22:05.000000000 +0100 @@ -1,11 +1,11 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU and other programs. -scriptversion=2024-06-07.14; # UTC +scriptversion=2025-06-18.21; # UTC # shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells -# Copyright (C) 1996-2024 Free Software Foundation, Inc. +# Copyright (C) 1996-2025 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <[email protected]>, 1996. # This program is free software; you can redistribute it and/or modify @@ -228,9 +228,9 @@ exit $st # Local variables: -# eval: (add-hook 'before-save-hook 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp nil t) # time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-format: "%Y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/read.c new/fonttosfnt-1.2.5/read.c --- old/fonttosfnt-1.2.4/read.c 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/read.c 2025-12-31 19:22:00.000000000 +0100 @@ -106,7 +106,7 @@ const char *family_name, *encoding_name, *file_format; FontMapPtr mapping = NULL; FontMapReversePtr reverse = NULL; - + rc = FT_Ensure_Inited(); if(rc != 0) @@ -189,7 +189,7 @@ if(strcmp(face->style_name, "Regular") == 0) full_name = sprintf_alloc("%s", family_name); else - full_name = sprintf_alloc("%s %s", + full_name = sprintf_alloc("%s %s", family_name, face->style_name); /* The unique name doesn't actually need to be globally @@ -198,16 +198,16 @@ if(face->num_fixed_sizes <= 0) unique_name = sprintf_alloc("%s "XVENDORNAMESHORT" bitmap", full_name); - else if(face->available_sizes[0].width == + else if(face->available_sizes[0].width == face->available_sizes[0].height) unique_name = sprintf_alloc("%s "XVENDORNAMESHORT " bitmap size %d", - full_name, + full_name, face->available_sizes[0].height); else unique_name = sprintf_alloc("%s "XVENDORNAMESHORT " bitmap size %dx%d", - full_name, + full_name, face->available_sizes[0].width, face->available_sizes[0].height); @@ -313,7 +313,7 @@ for(int i = 0; i < face->num_fixed_sizes; i++) { if(verbose_flag) fprintf(stderr, "size %d: %dx%d\n", - i, + i, (int)((face->available_sizes[i].x_ppem + 32) >> 6), (int)((face->available_sizes[i].y_ppem + 32) >> 6)); @@ -325,7 +325,7 @@ return -1; } - strike = makeStrike(font, + strike = makeStrike(font, (face->available_sizes[i].x_ppem + 32) >> 6, (face->available_sizes[i].y_ppem + 32) >> 6); if(strike == NULL) { @@ -356,7 +356,7 @@ FT_Pos_DOWN(face->glyph->metrics.horiBearingY), face->glyph->bitmap.width, face->glyph->bitmap.rows, - face->glyph->bitmap.pitch, + face->glyph->bitmap.pitch, face->glyph->bitmap.buffer, crop_flag); @@ -381,7 +381,7 @@ found = 1; } else { if(i == 0) { - fprintf(stderr, + fprintf(stderr, "Warning: no bitmap for the undefined glyph.\n"); found = 1; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/struct.c new/fonttosfnt-1.2.5/struct.c --- old/fonttosfnt-1.2.4/struct.c 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/struct.c 2025-12-31 19:22:00.000000000 +0100 @@ -127,7 +127,7 @@ int dx, dy, new_width, new_height; bitmap = malloc(sizeof(BitmapRec)); - if(bitmap == NULL) + if(bitmap == NULL) return NULL; *bitmap = (BitmapRec) { @@ -260,7 +260,7 @@ last = NULL; /* Assuming that we're writing bit-aligned data, small metrics - and short offsets, a constant metrics segment saves 5 bytes + and short offsets, a constant metrics segment saves 5 bytes per glyph in the EBDT table, and 2 bytes per glyph in the EBLC table. On the other hand, the overhead for a supplementary type 2 indexSubTable is 8 bytes for the indexSubTableArray @@ -295,9 +295,9 @@ BitmapPtr b3 = strikeBitmapIndex(strike, cmap, index + n + 3); BitmapPtr b4 = strikeBitmapIndex(strike, cmap, index + n + 4); if(b1 && b2 && b3 && b4 && - SAME_METRICS(bitmap, b1) && - SAME_METRICS(bitmap, b2) && - SAME_METRICS(bitmap, b3) && + SAME_METRICS(bitmap, b1) && + SAME_METRICS(bitmap, b2) && + SAME_METRICS(bitmap, b3) && SAME_METRICS(bitmap, b4)) { break; } @@ -363,7 +363,7 @@ continue; } i = 1; - while(code + i < FONT_CODES && + while(code + i < FONT_CODES && fontIndex(font, code + i) == index + i) { i++; } @@ -456,16 +456,16 @@ BitmapPtr bitmap = STRIKE_BITMAP(strike, code); if(bitmap) { if(width_return) - *width_return = + *width_return = (((float)bitmap->advanceWidth) / strike->sizeX) * TWO_SIXTEENTH; if(x_min_return) *x_min_return = - ((float)bitmap->horiBearingX / strike->sizeX) * + ((float)bitmap->horiBearingX / strike->sizeX) * TWO_SIXTEENTH; if(y_min_return) *y_min_return = - (((float)bitmap->horiBearingY - bitmap->height) + (((float)bitmap->horiBearingY - bitmap->height) / strike->sizeY) * TWO_SIXTEENTH; if(x_max_return) *x_max_return = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/fonttosfnt-1.2.4/write.c new/fonttosfnt-1.2.5/write.c --- old/fonttosfnt-1.2.4/write.c 2024-10-12 19:34:01.000000000 +0200 +++ new/fonttosfnt-1.2.5/write.c 2025-12-31 19:22:00.000000000 +0100 @@ -30,7 +30,8 @@ #include <stdlib.h> #include <sys/types.h> #include <netinet/in.h> -#include "X11/Xos.h" +#include <X11/Xfuncproto.h> +#include <X11/Xos.h> #include "fonttosfnt.h" @@ -65,9 +66,20 @@ static int numglyphs, nummetrics; static int write_error_occurred, read_error_occurred; +#ifndef __has_attribute +# define __has_attribute(x) 0 /* Compatibility with older compilers. */ +#endif + +#if __has_attribute(const) +# define CONST_FUNC __attribute__((__const__)) +#else +# define CONST_FUNC +#endif + + /* floor(log2(x)) */ -static int -log2_floor(int x) +static int CONST_FUNC +log2_floor(int x) { int i, j; @@ -84,11 +96,11 @@ } /* 2 ** floor(log2(x)) */ -static int +static int CONST_FUNC two_log2_floor(int x) { int j; - + if(x <= 0) abort(); @@ -312,7 +324,7 @@ * font->metrics.size / font->pxMetrics.size; } -int +int writeFile(char *filename, FontPtr font) { int rc; @@ -380,11 +392,11 @@ tables[i] = makeName("head"); table_writers[i] = writehead; i++; tables[i] = makeName("hhea"); table_writers[i] = writehhea; i++; if(nummetrics >= 1) { - tables[i] = makeName("hmtx"); + tables[i] = makeName("hmtx"); table_writers[i] = writehmtx; i++; } if(numglyphs >= 1) { - tables[i] = makeName("loca"); + tables[i] = makeName("loca"); table_writers[i] = writeloca; i++; } tables[i] = makeName("maxp"); table_writers[i] = writemaxp; i++; @@ -533,8 +545,8 @@ return 0; } - -static int + +static int writehead(FILE* out, FontPtr font) { int time_hi = 0; @@ -603,7 +615,7 @@ return len; } -static int +static int writeEBDT(FILE* out, FontPtr font) { StrikePtr strike; @@ -634,8 +646,8 @@ writeBYTE(out, bitmap->advanceWidth); offset += 5; } - offset += outputRaster(out, - bitmap->raster, + offset += outputRaster(out, + bitmap->raster, bitmap->width, bitmap->height, bitmap->stride, bit_aligned_flag); @@ -650,7 +662,7 @@ return 0; } -static int +static int writeEBLC(FILE* out, FontPtr font) { int numstrikes, eblc_start, num, den; @@ -666,7 +678,7 @@ } eblc_start = ftell(out); - + writeULONG(out, 0x00020000); /* version */ writeULONG(out, numstrikes); /* numSizes */ @@ -724,7 +736,7 @@ perror("Couldn't seek"); return -1; } - writeULONG(out, strike->indexSubTableLocation - eblc_start); + writeULONG(out, strike->indexSubTableLocation - eblc_start); /* indexSubTableArrayOffset */ writeULONG(out, endoffset - strike->indexSubTableLocation); /* indexTablesSize */ @@ -793,12 +805,12 @@ writeULONG(out, data_location); if(table->constantMetrics) { int size; - BitmapPtr bitmap = - strikeBitmapIndex(strike, current_cmap, + BitmapPtr bitmap = + strikeBitmapIndex(strike, current_cmap, table->firstGlyphIndex); - size = - strikeBitmapIndex(strike, current_cmap, + size = + strikeBitmapIndex(strike, current_cmap, table->firstGlyphIndex + 1)->location - bitmap->location; writeULONG(out, size); /* imageSize */ @@ -814,7 +826,7 @@ } else { for(int i = table->firstGlyphIndex; i <= table->lastGlyphIndex; i++) { - int offset = + int offset = strikeBitmapIndex(strike, current_cmap, i)->location - data_location; if(short_offsets) @@ -843,7 +855,7 @@ return 0; } -static int +static int writecmap(FILE* out, FontPtr font) { int rc, cmap_start, cmap_end; @@ -876,7 +888,7 @@ writeUSHORT(out, segcount * 2); /* segCountX2 */ writeUSHORT(out, 2 * two_log2_floor(segcount)); /* searchRange */ writeUSHORT(out, log2_floor(segcount)); /* entrySelector */ - writeUSHORT(out, 2 * (segcount - two_log2_floor(segcount))); + writeUSHORT(out, 2 * (segcount - two_log2_floor(segcount))); /* rangeShift */ cmap = current_cmap; @@ -928,7 +940,7 @@ return 0; } -static int +static int writeglyf(FILE* out, FontPtr font) { return 0; @@ -962,7 +974,7 @@ return 0; } -static int +static int writehmtx(FILE* out, FontPtr font) { for(int i = 0; i <= numglyphs; i++) { @@ -986,7 +998,7 @@ return 0; } -static int +static int writeloca(FILE* out, FontPtr font) { /* All glyphs undefined -- loca table is empty, so offset 0 */ @@ -997,7 +1009,7 @@ return 0; } -static int +static int writemaxp(FILE* out, FontPtr font) { writeLONG(out, 0x00010000); /* version */ @@ -1018,7 +1030,7 @@ return 0; } -static int +static int writename(FILE* out, FontPtr font) { int offset; @@ -1041,7 +1053,7 @@ return 0; } -static int +static int writepost(FILE* out, FontPtr font) { int previous_width, fixed_pitch; @@ -1061,7 +1073,7 @@ } previous_width = width; } - + writeULONG(out, 0x00030000); /* FormatType */ writeULONG(out, font->italicAngle); /* italicAngle */ writeSHORT(out, FONT_UNITS(font->metrics.underlinePosition)); @@ -1074,7 +1086,7 @@ return 0; } -static int +static int writeOS2(FILE* out, FontPtr font) { int i; @@ -1138,12 +1150,12 @@ return 0; } -static int +static int writePCLT(FILE* out, FontPtr font) { - char name[16] = "X11 font "; - char filename[6] = "X11R00"; - unsigned char charComplement[8] = + _X_NONSTRING char name[16] = "X11 font "; + _X_NONSTRING char filename[6] = "X11R00"; + unsigned char charComplement[8] = {0xFF, 0xFF, 0xFF, 0xFF, 0x0B, 0xFF, 0xFF, 0xFE}; int style, w, strokeWeight, widthType;
