GraphicsMagick: 2 new changesets

GraphicsMagick Commits <[email protected]> Thu, 03 Oct 2024 17:16:39 -0500
Newsgroups gmane.comp.video.graphicsmagick.cvs
Message-ID <mailman.25353.1727993808.8001.graphicsmagick-commit@lists.sourceforge.net>
changeset c4faa9aff3c8 in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=c4faa9aff3c8
summary: TclMagick/generic/TclMagickAppInit.c: Refresh implementation based on latest code from reference tcl/unix/tclAppInit.c.

changeset e29db2dd4a4b in /hg/GraphicsMagick
details: http://hg.GraphicsMagick.org/hg/GraphicsMagick?cmd=changeset;node=e29db2dd4a4b
summary: Hull(): More fixes for regression created by Mercurial changeset 16913:78aa63677935 "Add casts to prevent unnecessary value truncation in WIN64 build" on Saturday, October 21, 2023.

diffstat:

 ChangeLog                              |   10 +
 TclMagick/ChangeLog                    |    5 +
 TclMagick/generic/TclMagickAppInit.c   |  179 +++++++++++++++-----------------
 VisualMagick/installer/inc/version.isx |    4 +-
 magick/gem.c                           |    4 +-
 magick/version.h                       |    4 +-
 www/ChangeLog.html                     |   11 ++
 www/links.html                         |    2 +-
 www/links.rst                          |    2 +-
 9 files changed, 119 insertions(+), 102 deletions(-)

diffs (385 lines):

diff -r 81eb6070fb80 -r e29db2dd4a4b ChangeLog
--- a/ChangeLog	Wed Oct 02 09:07:23 2024 -0500
+++ b/ChangeLog	Thu Oct 03 17:16:00 2024 -0500
@@ -1,3 +1,13 @@
+2024-10-03  Bob Friesenhahn  <[email protected]>
+
+	* magick/gem.c (Hull): More fixes for regression created by
+	Mercurial changeset 16913:78aa63677935 "Add casts to prevent
+	unnecessary value truncation in WIN64 build" on Saturday, October
+	21, 2023.
+
+	* TclMagick/generic/TclMagickAppInit.c: Refresh implementation
+	based on latest code from reference tcl/unix/tclAppInit.c.
+
 2024-10-02  Bob Friesenhahn  <[email protected]>
 
 	* TclMagick/Makefile.am: Eliminate the libttkcommon "shim" library
diff -r 81eb6070fb80 -r e29db2dd4a4b TclMagick/ChangeLog
--- a/TclMagick/ChangeLog	Wed Oct 02 09:07:23 2024 -0500
+++ b/TclMagick/ChangeLog	Thu Oct 03 17:16:00 2024 -0500
@@ -1,3 +1,8 @@
+2024-10-03  Bob Friesenhahn  <[email protected]>
+
+	* generic/TclMagickAppInit.c: Refresh implementation based on
+	latest code from reference tcl/unix/tclAppInit.c.
+
 2024-10-02  Bob Friesenhahn  <[email protected]>
 
 	* Makefile.am: Eliminate the libttkcommon "shim" library which
diff -r 81eb6070fb80 -r e29db2dd4a4b TclMagick/generic/TclMagickAppInit.c
--- a/TclMagick/generic/TclMagickAppInit.c	Wed Oct 02 09:07:23 2024 -0500
+++ b/TclMagick/generic/TclMagickAppInit.c	Thu Oct 03 17:16:00 2024 -0500
@@ -1,40 +1,61 @@
 /*
- * tclAppInit.c --
+ * TclMagickAppInit.c --
  *
  *      Provides a default version of the main program and Tcl_AppInit
- *      procedure for Tcl applications (without Tk).
+ *      procedure for tclsh and other Tcl-based applications (without Tk).
  *
  * Copyright (c) 1993 The Regents of the University of California.
  * Copyright (c) 1994-1997 Sun Microsystems, Inc.
- * Copyright (c) 1998-1999 by Scriptics Corporation.
+ * Copyright (c) 1998-1999 Scriptics Corporation.
  *
- * See the file "license.terms" for information on usage and redistribution
- * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
- *
- * RCS: @(#) $Id$
+ * See the file "license.terms" for information on usage and redistribution of
+ * this file, and for a DISCLAIMER OF ALL WARRANTIES.
  */
 
 #include "tcl.h"
-
-#define TCL_LOCAL_APPINIT TclMagick_AppInit
+#if TCL_MAJOR_VERSION < 9
+#  if defined(USE_TCL_STUBS)
+#       error "Don't build with USE_TCL_STUBS!"
+#  endif
+#  if TCL_MINOR_VERSION < 7
+#   define Tcl_LibraryInitProc Tcl_PackageInitProc
+#   define Tcl_StaticLibrary Tcl_StaticPackage
+#  endif
+#endif
 
 #ifdef TCL_TEST
-
-#include "tclInt.h"
-
-extern int              Procbodytest_Init _ANSI_ARGS_((Tcl_Interp *interp));
-extern int              Procbodytest_SafeInit _ANSI_ARGS_((Tcl_Interp *interp));
-extern int              TclObjTest_Init _ANSI_ARGS_((Tcl_Interp *interp));
-extern int              Tcltest_Init _ANSI_ARGS_((Tcl_Interp *interp));
-#ifdef TCL_THREADS
-extern int              TclThread_Init _ANSI_ARGS_((Tcl_Interp *interp));
-#endif
-
+extern Tcl_LibraryInitProc Tcltest_Init;
+extern Tcl_LibraryInitProc Tcltest_SafeInit;
 #endif /* TCL_TEST */
 
 #ifdef TCL_XT_TEST
-extern void             XtToolkitInitialize _ANSI_ARGS_((void));
-extern int              Tclxttest_Init _ANSI_ARGS_((Tcl_Interp *interp));
+extern void                XtToolkitInitialize(void);
+extern Tcl_LibraryInitProc Tclxttest_Init;
+#endif /* TCL_XT_TEST */
+
+/*
+ * The following #if block allows you to change the AppInit function by using
+ * a #define of TCL_LOCAL_APPINIT instead of rewriting this entire file. The
+ * #if checks for that #define and uses Tcl_AppInit if it does not exist.
+ */
+
+#ifndef TCL_LOCAL_APPINIT
+#define TCL_LOCAL_APPINIT TclMagick_AppInit
+#endif
+#ifndef MODULE_SCOPE
+#   define MODULE_SCOPE extern
+#endif
+MODULE_SCOPE int TCL_LOCAL_APPINIT(Tcl_Interp *);
+MODULE_SCOPE int main(int, char **);
+
+/*
+ * The following #if block allows you to change how Tcl finds the startup
+ * script, prime the library or encoding paths, fiddle with the argv, etc.,
+ * without needing to rewrite Tcl_Main()
+ */
+
+#ifdef TCL_LOCAL_MAIN_HOOK
+MODULE_SCOPE int TCL_LOCAL_MAIN_HOOK(int *argc, char ***argv);
 #endif
 
 #include "TclMagick.h"
@@ -47,52 +68,32 @@
  *      This is the main program for the application.
  *
  * Results:
- *      None: Tcl_Main never returns here, so this procedure never
- *      returns either.
+ *      None: Tcl_Main never returns here, so this procedure never returns
+ *      either.
  *
  * Side effects:
- *      Whatever the application does.
+ *      Just about anything, since from here we call arbitrary Tcl code.
  *
  *----------------------------------------------------------------------
  */
 
 int
-main(argc, argv)
-    int argc;                   /* Number of command-line arguments. */
-    char **argv;                /* Values of command-line arguments. */
+main(
+    int argc,                   /* Number of command-line arguments. */
+    char *argv[])               /* Values of command-line arguments. */
 {
-    /*
-     * The following #if block allows you to change the AppInit
-     * function by using a #define of TCL_LOCAL_APPINIT instead
-     * of rewriting this entire file.  The #if checks for that
-     * #define and uses Tcl_AppInit if it doesn't exist.
-     */
-
-#ifndef TCL_LOCAL_APPINIT
-#define TCL_LOCAL_APPINIT Tcl_AppInit
-#endif
-    extern int TCL_LOCAL_APPINIT _ANSI_ARGS_((Tcl_Interp *interp));
-
-    /*
-     * The following #if block allows you to change how Tcl finds the startup
-     * script, prime the library or encoding paths, fiddle with the argv,
-     * etc., without needing to rewrite Tcl_Main()
-     */
-
-#ifdef TCL_LOCAL_MAIN_HOOK
-    extern int TCL_LOCAL_MAIN_HOOK _ANSI_ARGS_((int *argc, char ***argv));
-#endif
-
 #ifdef TCL_XT_TEST
     XtToolkitInitialize();
 #endif
 
 #ifdef TCL_LOCAL_MAIN_HOOK
     TCL_LOCAL_MAIN_HOOK(&argc, &argv);
+#elif (TCL_MAJOR_VERSION > 8 || TCL_MINOR_VERSION > 6) && (!defined(_WIN32) || defined(UNICODE))
+    /* New in Tcl 8.7. This doesn't work on Windows without UNICODE */
+    TclZipfs_AppHook(&argc, &argv);
 #endif
 
     Tcl_Main(argc, argv, TCL_LOCAL_APPINIT);
-
     return 0;                   /* Needed only to prevent compiler warning. */
 }
 
@@ -101,13 +102,13 @@
  *
  * TclMagick_AppInit --
  *
- *      This procedure performs application-specific initialization.
- *      Most applications, especially those that incorporate additional
- *      packages, will have their own version of this procedure.
+ *      This procedure performs application-specific initialization. Most
+ *      applications, especially those that incorporate additional packages,
+ *      will have their own version of this procedure.
  *
  * Results:
- *      Returns a standard Tcl completion code, and leaves an error
- *      message in the interp's result if an error occurs.
+ *      Returns a standard Tcl completion code, and leaves an error message in
+ *      the interp's result if an error occurs.
  *
  * Side effects:
  *      Depends on the startup script.
@@ -116,48 +117,36 @@
  */
 
 int
-TclMagick_AppInit(interp)
-    Tcl_Interp *interp;         /* Interpreter for application. */
+TclMagick_AppInit(
+    Tcl_Interp *interp)         /* Interpreter for application. */
 {
     if (Tcl_Init(interp) == TCL_ERROR) {
         return TCL_ERROR;
     }
 
+#ifdef TCL_XT_TEST
+    if (Tclxttest_Init(interp) == TCL_ERROR) {
+        return TCL_ERROR;
+    }
+#endif
+
 #ifdef TCL_TEST
-#ifdef TCL_XT_TEST
-     if (Tclxttest_Init(interp) == TCL_ERROR) {
-         return TCL_ERROR;
-     }
-#endif
     if (Tcltest_Init(interp) == TCL_ERROR) {
         return TCL_ERROR;
     }
-    Tcl_StaticPackage(interp, "Tcltest", Tcltest_Init,
-            (Tcl_PackageInitProc *) NULL);
-    if (TclObjTest_Init(interp) == TCL_ERROR) {
-        return TCL_ERROR;
-    }
-#ifdef TCL_THREADS
-    if (TclThread_Init(interp) == TCL_ERROR) {
-        return TCL_ERROR;
-    }
-#endif
-    if (Procbodytest_Init(interp) == TCL_ERROR) {
-        return TCL_ERROR;
-    }
-    Tcl_StaticPackage(interp, "procbodytest", Procbodytest_Init,
-            Procbodytest_SafeInit);
+    Tcl_StaticLibrary(interp, "Tcltest", Tcltest_Init, Tcltest_SafeInit);
 #endif /* TCL_TEST */
 
     /*
-     * Call the init procedures for included packages.  Each call should
-     * look like this:
+     * Call the init procedures for included packages. Each call should look
+     * like this:
      *
      * if (Mod_Init(interp) == TCL_ERROR) {
      *     return TCL_ERROR;
      * }
      *
-     * where "Mod" is the name of the module.
+     * where "Mod" is the name of the module. (Dynamically-loadable packages
+     * should have the same entry-point name.)
      */
 
     if (Tclmagick_Init(interp) == TCL_ERROR) {
@@ -165,26 +154,28 @@
     }
 
     /*
-     * Call Tcl_CreateCommand for application-specific commands, if
-     * they weren't already created by the init procedures called above.
+     * Call Tcl_CreateObjCommand for application-specific commands, if they
+     * weren't already created by the init procedures called above.
      */
 
     /*
-     * Specify a user-specific startup file to invoke if the application
-     * is run interactively.  Typically the startup file is "~/.apprc"
-     * where "app" is the name of the application.  If this line is deleted
-     * then no user-specific startup file will be run under any conditions.
+     * Specify a user-specific startup file to invoke if the application is
+     * run interactively. Typically the startup file is "~/.apprc" where "app"
+     * is the name of the application. If this line is deleted then no
+     * user-specific startup file will be run under any conditions.
      */
+#ifdef DJGPP
+#define INITFILENAME "tclshrc.tcl"
+#else
+#define INITFILENAME ".tclshrc"
+#endif
 
-#ifdef DJGPP
-    Tcl_SetVar(interp, "tcl_rcFileName", "~/tclsh.rc", TCL_GLOBAL_ONLY);
-#else
-    Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclshrc", TCL_GLOBAL_ONLY);
-#endif
+    (void) Tcl_EvalEx(interp,
+            "set tcl_rcFileName [file tildeexpand ~/" INITFILENAME "]",
+            -1, TCL_EVAL_GLOBAL);
     return TCL_OK;
 }
-
-/* vim: set ts=8 sts=8 sw=8 noet: */
+
 /*
  * Local Variables:
  * mode: c
diff -r 81eb6070fb80 -r e29db2dd4a4b VisualMagick/installer/inc/version.isx
--- a/VisualMagick/installer/inc/version.isx	Wed Oct 02 09:07:23 2024 -0500
+++ b/VisualMagick/installer/inc/version.isx	Thu Oct 03 17:16:00 2024 -0500
@@ -10,5 +10,5 @@
 
 #define public MagickPackageName "GraphicsMagick"
 #define public MagickPackageVersion "1.4"
-#define public MagickPackageVersionAddendum ".020241002"
-#define public MagickPackageReleaseDate "snapshot-20241002"
+#define public MagickPackageVersionAddendum ".020241003"
+#define public MagickPackageReleaseDate "snapshot-20241003"
diff -r 81eb6070fb80 -r e29db2dd4a4b magick/gem.c
--- a/magick/gem.c	Wed Oct 02 09:07:23 2024 -0500
+++ b/magick/gem.c	Thu Oct 03 17:16:00 2024 -0500
@@ -727,8 +727,8 @@
     }
   p=f+((size_t) columns+2);
   q=g+((size_t) columns+2);
-  r=q+(y_offset*((size_t) columns+2)+x_offset);
-  s=q-(y_offset*((size_t) columns+2)+x_offset);
+  r=q+(y_offset*((ptrdiff_t) columns+2)+x_offset);
+  s=q-(y_offset*((ptrdiff_t) columns+2)+x_offset);
 #if defined(HAVE_OPENMP)
 #  if defined(TUNE_OPENMP)
 #    pragma omp parallel for schedule(runtime)
diff -r 81eb6070fb80 -r e29db2dd4a4b magick/version.h
--- a/magick/version.h	Wed Oct 02 09:07:23 2024 -0500
+++ b/magick/version.h	Thu Oct 03 17:16:00 2024 -0500
@@ -38,8 +38,8 @@
 #define MagickLibVersion  0x282502
 #define MagickLibVersionText  "1.4"
 #define MagickLibVersionNumber 28,25,2
-#define MagickChangeDate   "20241002"
-#define MagickReleaseDate  "snapshot-20241002"
+#define MagickChangeDate   "20241003"
+#define MagickReleaseDate  "snapshot-20241003"
 
 /*
   The MagickLibInterfaceNewest and MagickLibInterfaceOldest defines
diff -r 81eb6070fb80 -r e29db2dd4a4b www/ChangeLog.html
--- a/www/ChangeLog.html	Wed Oct 02 09:07:23 2024 -0500
+++ b/www/ChangeLog.html	Thu Oct 03 17:16:00 2024 -0500
@@ -38,6 +38,17 @@
 
 <main id="graphicsmagick-changelog">
 <h1 class="title">GraphicsMagick ChangeLog</h1>
+<p>2024-10-03  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
+<blockquote>
+<ul class="simple">
+<li><p>magick/gem.c (Hull): More fixes for regression created by
+Mercurial changeset 16913:78aa63677935 &quot;Add casts to prevent
+unnecessary value truncation in WIN64 build&quot; on Saturday, October
+21, 2023.</p></li>
+<li><p>TclMagick/generic/TclMagickAppInit.c: Refresh implementation
+based on latest code from reference tcl/unix/tclAppInit.c.</p></li>
+</ul>
+</blockquote>
 <p>2024-10-02  Bob Friesenhahn  &lt;<a class="reference external" href="mailto:bfriesen&#37;&#52;&#48;simple&#46;dallas&#46;tx&#46;us">bfriesen<span>&#64;</span>simple<span>&#46;</span>dallas<span>&#46;</span>tx<span>&#46;</span>us</a>&gt;</p>
 <blockquote>
 <ul class="simple">
diff -r 81eb6070fb80 -r e29db2dd4a4b www/links.html
--- a/www/links.html	Wed Oct 02 09:07:23 2024 -0500
+++ b/www/links.html	Thu Oct 03 17:16:00 2024 -0500
@@ -79,7 +79,7 @@
 <h1><a class="toc-backref" href="#id8">GraphicsMagick Vulnerabilities</a></h1>
 <p>Search for <a class="reference external" href="https://www.cvedetails.com/vulnerability-list/vendor_id-2802/Graphicsmagick.html">GraphicsMagick</a> CVEs.</p>
 <p>Debian vulnerabilities in <a class="reference external" href="https://security-tracker.debian.org/tracker/source-package/graphicsmagick">GraphicsMagick</a>.</p>
-<p>Oss-fuzz issues pertaining to <a class="reference external" href="https://issues.oss-fuzz.com/savedsearches/6886197">GraphicsMagick</a>.</p>
+<p>Oss-fuzz issues pertaining to <a class="reference external" href="https://issues.oss-fuzz.com/savedsearches/6886196">GraphicsMagick</a>.</p>
 <p>Oss-fuzz build status for <a class="reference external" href="https://oss-fuzz-build-logs.storage.googleapis.com/index.html#graphicsmagick">GraphicsMagick</a>.</p>
 </section>
 <section id="image-processing-topics">
diff -r 81eb6070fb80 -r e29db2dd4a4b www/links.rst
--- a/www/links.rst	Wed Oct 02 09:07:23 2024 -0500
+++ b/www/links.rst	Thu Oct 03 17:16:00 2024 -0500
@@ -54,7 +54,7 @@
 
 Oss-fuzz issues pertaining to `GraphicsMagick`__.
 
-.. _oss_fuzz_reports : https://issues.oss-fuzz.com/savedsearches/6886197
+.. _oss_fuzz_reports : https://issues.oss-fuzz.com/savedsearches/6886196
 
 __ oss_fuzz_reports_