Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gnuplot for openSUSE:Factory checked 
in at 2023-09-21 22:13:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gnuplot (Old)
 and      /work/SRC/openSUSE:Factory/.gnuplot.new.1770 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gnuplot"

Thu Sep 21 22:13:12 2023 rev:92 rq:1112274 version:5.4.9

Changes:
--------
--- /work/SRC/openSUSE:Factory/gnuplot/gnuplot-doc.changes      2023-05-23 
14:53:18.358043849 +0200
+++ /work/SRC/openSUSE:Factory/.gnuplot.new.1770/gnuplot-doc.changes    
2023-09-21 22:13:25.951926689 +0200
@@ -1,0 +2,19 @@
+Tue Sep 12 10:39:22 UTC 2023 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to gnuplot 5.4.9
+  * NEW   qt:  support building with Qt6
+  * CHANGE check plugin version at time of import                       Bug 
#2629
+  * FIX   prevent segfault if GNUPLOT_DRIVER_DIR is invalid
+  * FIX   (regression) only y autoscale yerrorbars to points in xrange  Bug 
#2631
+  * FIX   possible memory corruption if clipping causes 0-size polygons
+  * FIX   wxt: initialization of key box toggle state
+  * FIX   post: handle pixmaps                                          Bug 
#2644
+
+-------------------------------------------------------------------
+Mon Jun 19 06:55:17 UTC 2023 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to gnuplot 5.4.8
+  * FIX   version reporting in Windows binaries
+          No other changes
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/gnuplot/gnuplot.changes  2023-06-20 
16:40:15.704441896 +0200
+++ /work/SRC/openSUSE:Factory/.gnuplot.new.1770/gnuplot.changes        
2023-09-21 22:13:26.107932351 +0200
@@ -1,0 +2,12 @@
+Tue Sep 12 10:39:22 UTC 2023 - Dr. Werner Fink <wer...@suse.de>
+
+- Update to gnuplot 5.4.9
+  * NEW   qt:  support building with Qt6
+  * CHANGE check plugin version at time of import                       Bug 
#2629
+  * FIX   prevent segfault if GNUPLOT_DRIVER_DIR is invalid
+  * FIX   (regression) only y autoscale yerrorbars to points in xrange  Bug 
#2631
+  * FIX   possible memory corruption if clipping causes 0-size polygons
+  * FIX   wxt: initialization of key box toggle state
+  * FIX   post: handle pixmaps                                          Bug 
#2644
+
+-------------------------------------------------------------------

Old:
----
  gnuplot-5.4.8.tar.gz

New:
----
  gnuplot-5.4.9.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gnuplot.spec ++++++
--- /var/tmp/diff_new_pack.qanI6S/_old  2023-09-21 22:13:29.316048784 +0200
+++ /var/tmp/diff_new_pack.qanI6S/_new  2023-09-21 22:13:29.320048930 +0200
@@ -78,7 +78,7 @@
 BuildRequires:  tex(textgreek.sty)
 %endif
 URL:            https://www.gnuplot.info/
-Version:        5.4.8
+Version:        5.4.9
 Release:        0
 %global         underscore 5_4
 %if "%{flavor}" == ""

++++++ Gnuplot_5_4.pdf ++++++
(binary differes)

++++++ gnuplot-5.4.8.tar.gz -> gnuplot-5.4.9.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/NEWS new/gnuplot-5.4.9/NEWS
--- old/gnuplot-5.4.8/NEWS      2023-06-02 07:08:19.000000000 +0200
+++ new/gnuplot-5.4.9/NEWS      2023-09-04 23:20:21.000000000 +0200
@@ -1,3 +1,13 @@
+Changes in 5.4.9
+================
+* NEW   qt:  support building with Qt6
+* CHANGE check plugin version at time of import                                
Bug #2629
+* FIX   prevent segfault if GNUPLOT_DRIVER_DIR is invalid
+* FIX   (regression) only y autoscale yerrorbars to points in xrange   Bug 
#2631
+* FIX   possible memory corruption if clipping causes 0-size polygons
+* FIX   wxt: initialization of key box toggle state
+* FIX   post: handle pixmaps                                           Bug 
#2644
+
 Changes in 5.4.8
 ================
 * FIX   version reporting in Windows binaries
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/PATCHLEVEL new/gnuplot-5.4.9/PATCHLEVEL
--- old/gnuplot-5.4.8/PATCHLEVEL        2023-06-02 01:12:49.000000000 +0200
+++ new/gnuplot-5.4.9/PATCHLEVEL        2023-09-04 23:20:21.000000000 +0200
@@ -1 +1 @@
-8
+9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/RELEASE_NOTES 
new/gnuplot-5.4.9/RELEASE_NOTES
--- old/gnuplot-5.4.8/RELEASE_NOTES     2023-06-02 01:18:34.000000000 +0200
+++ new/gnuplot-5.4.9/RELEASE_NOTES     2023-09-04 23:20:21.000000000 +0200
@@ -1,14 +1,13 @@
-               Gnuplot Version 5.4.8 Release Notes
+               Gnuplot Version 5.4.9 Release Notes
                ===================================
 
-The 5.4.8 patchlevel release contains various non-critical bug fixes
-to the current stable version 5.4.
-Also the latex terminals have been updated to work with texlive2023.
-
-Note: Version reporting in the Windows binaries for 5.4.7 was incorrect.
-Rather than letting the generic source distribution get out of sync with
-the binaries, the version has been bumped to 5.4.8 in both.
-There are no other changes between patchlevels 7 and 8.
+The 5.4.9 patchlevel release contains various non-critical bug fixes
+to the current stable gnuplot version 5.4.
+It also includes a change to the configuration system to support
+linking against Qt6 (previous releases checked only for Qt5 or Qt4).  
+
+This is probably the final update to version 5.4,
+as a full release of version 6 is expected by the end of this year.
 
 Gnuplot development is tracked in a git repository on SourceForge.
 You can generate a complete history of changes using "git log"
@@ -16,14 +15,24 @@
 
        git clone -b branch-5-4-stable 
git://git.code.sf.net/p/gnuplot/gnuplot-main
 
-Release Notes date:  01-Jun-2023
+Release Notes date:  04-Sep-2023
+
+Changes in 5.4.9
+================
+* NEW   qt:  support building with Qt6
+* CHANGE check plugin version at time of import                                
Bug #2629
+* FIX   prevent segfault if GNUPLOT_DRIVER_DIR is invalid
+* FIX   (regression) only y autoscale yerrorbars to points in xrange   Bug 
#2631
+* FIX   possible memory corruption if clipping causes 0-size polygons
+* FIX   wxt: initialization of key box toggle state
+* FIX   post: handle pixmaps                                           Bug 
#2644
+
 
 Changes in 5.4.8
 ================
 * FIX   version reporting in Windows binaries
         No other changes
 
-
 Changes in 5.4.7
 ================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/configure new/gnuplot-5.4.9/configure
--- old/gnuplot-5.4.8/configure 2023-06-02 05:20:07.000000000 +0200
+++ new/gnuplot-5.4.9/configure 2023-08-26 05:13:06.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for gnuplot 5.4.8.
+# Generated by GNU Autoconf 2.71 for gnuplot 5.4.9.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -608,8 +608,8 @@
 # Identity of this package.
 PACKAGE_NAME='gnuplot'
 PACKAGE_TARNAME='gnuplot'
-PACKAGE_VERSION='5.4.8'
-PACKAGE_STRING='gnuplot 5.4.8'
+PACKAGE_VERSION='5.4.9'
+PACKAGE_STRING='gnuplot 5.4.9'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1453,7 +1453,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures gnuplot 5.4.8 to adapt to many kinds of systems.
+\`configure' configures gnuplot 5.4.9 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1524,7 +1524,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gnuplot 5.4.8:";;
+     short | recursive ) echo "Configuration of gnuplot 5.4.9:";;
    esac
   cat <<\_ACEOF
 
@@ -1700,7 +1700,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gnuplot configure 5.4.8
+gnuplot configure 5.4.9
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2331,7 +2331,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gnuplot $as_me 5.4.8, which was
+It was created by gnuplot $as_me 5.4.9, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3838,7 +3838,7 @@
 
 # Define the identity of the package.
  PACKAGE='gnuplot'
- VERSION='5.4.8'
+ VERSION='5.4.9'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -8623,8 +8623,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$LIBCERF_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (libcerf) were not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (libcerf) were not met:
 
 $LIBCERF_PKG_ERRORS
 
@@ -8635,8 +8634,7 @@
 and LIBCERF_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (libcerf) were not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (libcerf) were not met:
 
 $LIBCERF_PKG_ERRORS
 
@@ -12501,8 +12499,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$libgd_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (gdlib) were not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (gdlib) were not met:
 
 $libgd_PKG_ERRORS
 
@@ -12513,8 +12510,7 @@
 and libgd_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (gdlib) were not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (gdlib) were not met:
 
 $libgd_PKG_ERRORS
 
@@ -15393,8 +15389,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$CAIROPANGO_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (cairo >= 0.9.0 pango >= 1.22 pangocairo >= 1.10) were 
not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (cairo >= 0.9.0 pango >= 1.22 pangocairo >= 1.10) were not met:
 
 $CAIROPANGO_PKG_ERRORS
 
@@ -15405,8 +15400,7 @@
 and CAIROPANGO_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (cairo >= 0.9.0 pango >= 1.22 pangocairo >= 1.10) were 
not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (cairo >= 0.9.0 pango >= 
1.22 pangocairo >= 1.10) were not met:
 
 $CAIROPANGO_PKG_ERRORS
 
@@ -16075,8 +16069,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$CAIROPDF_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (       cairo >= 1.2 cairo-pdf >= 1.2 pango >= 1.22 
pangocairo >= 1.10 glib-2.0 >= 2.28) were not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (       cairo >= 1.2 cairo-pdf >= 1.2 pango >= 1.22 pangocairo >= 
1.10 glib-2.0 >= 2.28) were not met:
 
 $CAIROPDF_PKG_ERRORS
 
@@ -16087,8 +16080,7 @@
 and CAIROPDF_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (       cairo >= 1.2 cairo-pdf >= 1.2 pango >= 1.22 
pangocairo >= 1.10 glib-2.0 >= 2.28) were not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (       cairo >= 1.2 
cairo-pdf >= 1.2 pango >= 1.22 pangocairo >= 1.10 glib-2.0 >= 2.28) were not 
met:
 
 $CAIROPDF_PKG_ERRORS
 
@@ -16274,12 +16266,146 @@
       enable_qt_ok=no
   fi
 
-    if test "x${with_qt}" = "xqt5"; then
-    try_qt4=no
-  else
+    if test "x${with_qt}" = "xqt4"; then
     try_qt4=yes
+  else
+    try_qt4=no
   fi
+
   if test "x${with_qt}" != "xqt4"; then
+    pkg_failed="not_tried"
+    if test "x${with_qt}" != "xqt5"; then
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Checking for Qt6 
support libraries" >&5
+printf %s "checking Checking for Qt6 support libraries... " >&6; }
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for QT" >&5
+printf %s "checking for QT... " >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_CFLAGS"; then
+        pkg_cv_QT_CFLAGS="$QT_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport 
Qt6Core5Compat\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt6Core Qt6Gui Qt6Network Qt6Svg 
Qt6PrintSupport Qt6Core5Compat") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_CFLAGS=`$PKG_CONFIG --cflags "Qt6Core Qt6Gui Qt6Network Qt6Svg 
Qt6PrintSupport Qt6Core5Compat" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+       pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+    if test -n "$QT_LIBS"; then
+        pkg_cv_QT_LIBS="$QT_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists 
--print-errors \"Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport 
Qt6Core5Compat\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "Qt6Core Qt6Gui Qt6Network Qt6Svg 
Qt6PrintSupport Qt6Core5Compat") 2>&5
+  ac_status=$?
+  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_QT_LIBS=`$PKG_CONFIG --libs "Qt6Core Qt6Gui Qt6Network Qt6Svg 
Qt6PrintSupport Qt6Core5Compat" 2>/dev/null`
+else
+  pkg_failed=yes
+fi
+    fi
+else
+       pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+               QT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout 
--print-errors "Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport 
Qt6Core5Compat"`
+        else
+               QT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors 
"Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport Qt6Core5Compat"`
+        fi
+       # Put the nasty error message in config.log where it belongs
+       echo "$QT_PKG_ERRORS" >&5
+
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (Qt6Core Qt6Gui Qt6Network Qt6Svg Qt6PrintSupport Qt6Core5Compat) 
were not met:
+
+$QT_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables QT_CFLAGS
+and QT_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+printf "%s\n" "$as_me: WARNING: Package requirements (Qt6Core Qt6Gui 
Qt6Network Qt6Svg Qt6PrintSupport Qt6Core5Compat) were not met:
+
+$QT_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables QT_CFLAGS
+and QT_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+elif test $pkg_failed = untried; then
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
+The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables QT_CFLAGS
+and QT_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>." >&5
+printf "%s\n" "$as_me: WARNING:
+The pkg-config script could not be found or is too old.  Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables QT_CFLAGS
+and QT_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>." >&2;}
+else
+       QT_CFLAGS=$pkg_cv_QT_CFLAGS
+       QT_LIBS=$pkg_cv_QT_LIBS
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+       :
+fi
+    fi
+    if test $pkg_failed = no; then
+      QT6LOC=`$PKG_CONFIG --variable=libexecdir Qt6Core`
+      if test "x${QT6LOC}" != "x"; then
+          UIC=${QT6LOC}/uic
+          MOC=${QT6LOC}/moc
+          RCC=${QT6LOC}/rcc
+      else
+          UIC=uic-qt6
+          MOC=moc-qt6
+          RCC=rcc-qt6
+      fi
+      LRELEASE=lrelease-qt6
+      CXXFLAGS="$CXXFLAGS -fPIC"
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The Qt terminal 
will use Qt6." >&5
+printf "%s\n" "The Qt terminal will use Qt6." >&6; }
+      QTVER="6"
+    else
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Checking for Qt5 
support libraries" >&5
+printf %s "checking Checking for Qt5 support libraries... " >&6; }
 
 pkg_failed=no
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for QT" >&5
@@ -16339,8 +16465,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$QT_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5PrintSupport) were 
not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5PrintSupport) were not met:
 
 $QT_PKG_ERRORS
 
@@ -16351,8 +16476,7 @@
 and QT_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (Qt5Core Qt5Gui Qt5Network Qt5Svg Qt5PrintSupport) were 
not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (Qt5Core Qt5Gui 
Qt5Network Qt5Svg Qt5PrintSupport) were not met:
 
 $QT_PKG_ERRORS
 
@@ -16391,20 +16515,25 @@
 printf "%s\n" "yes" >&6; }
        :
 fi
-    if test $pkg_failed = no; then
-      try_qt4=no
-      QT5LOC=`$PKG_CONFIG --variable=host_bins Qt5Core`
-      if test "x${QT5LOC}" != "x"; then
-        UIC=${QT5LOC}/uic
-        MOC=${QT5LOC}/moc
-        RCC=${QT5LOC}/rcc
-        LRELEASE=${QT5LOC}/lrelease
+      if test $pkg_failed = no; then
+        QT5LOC=`$PKG_CONFIG --variable=host_bins Qt5Core`
+        if test "x${QT5LOC}" != "x"; then
+          UIC=${QT5LOC}/uic
+          MOC=${QT5LOC}/moc
+          RCC=${QT5LOC}/rcc
+          LRELEASE=${QT5LOC}/lrelease
+        fi
+        CXXFLAGS="$CXXFLAGS -fPIC"
+        { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The Qt terminal 
will use Qt5." >&5
+printf "%s\n" "The Qt terminal will use Qt5." >&6; }
+        QTVER="5"
       fi
-      CXXFLAGS="$CXXFLAGS -fPIC"
     fi
   fi
 
-    if test ${try_qt4} != no; then
+    if test ${try_qt4} = yes; then
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking Checking for Qt4 
support" >&5
+printf %s "checking Checking for Qt4 support... " >&6; }
 
 pkg_failed=no
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for QT" >&5
@@ -16464,8 +16593,7 @@
        # Put the nasty error message in config.log where it belongs
        echo "$QT_PKG_ERRORS" >&5
 
-       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING:
-Package requirements (QtCore >= 4.5 QtGui >= 4.5 QtNetwork >= 4.5 QtSvg >= 
4.5) were not met:
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Package 
requirements (QtCore >= 4.5 QtGui >= 4.5 QtNetwork >= 4.5 QtSvg >= 4.5) were 
not met:
 
 $QT_PKG_ERRORS
 
@@ -16476,8 +16604,7 @@
 and QT_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-printf "%s\n" "$as_me: WARNING:
-Package requirements (QtCore >= 4.5 QtGui >= 4.5 QtNetwork >= 4.5 QtSvg >= 
4.5) were not met:
+printf "%s\n" "$as_me: WARNING: Package requirements (QtCore >= 4.5 QtGui >= 
4.5 QtNetwork >= 4.5 QtSvg >= 4.5) were not met:
 
 $QT_PKG_ERRORS
 
@@ -16530,10 +16657,6 @@
 printf "%s\n" "The Qt terminal will use Qt4." >&6; }
       QTVER="4"
     fi
-  else
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: The Qt terminal will 
use Qt5." >&5
-printf "%s\n" "The Qt terminal will use Qt5." >&6; }
-    QTVER="5"
   fi
 fi
 
@@ -17428,7 +17551,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gnuplot $as_me 5.4.8, which was
+This file was extended by gnuplot $as_me 5.4.9, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -17496,7 +17619,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-gnuplot config.status 5.4.8
+gnuplot config.status 5.4.9
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
@@ -18589,9 +18712,13 @@
       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:   Qt terminal: yes 
(qt5)" >&5
 printf "%s\n" "  Qt terminal: yes (qt5)" >&6; }
   fi
+  if test "$QTVER" = 6; then
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:   Qt               
    : yes (qt6)" >&5
+printf "%s\n" "  Qt                   : yes (qt6)" >&6; }
+  fi
 else
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:   Qt terminal: no (use 
--with-qt or --with-qt=qt4 to enable" >&5
-printf "%s\n" "  Qt terminal: no (use --with-qt or --with-qt=qt4 to enable" 
>&6; }
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result:   Qt                   
: no (use --with-qt or --with-qt=qt4 or --with-qt=qt5 to enable" >&5
+printf "%s\n" "  Qt                   : no (use --with-qt or --with-qt=qt4 or 
--with-qt=qt5 to enable" >&6; }
 fi
 
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: " >&5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/configure.ac 
new/gnuplot-5.4.9/configure.ac
--- old/gnuplot-5.4.8/configure.ac      2023-06-02 01:13:08.000000000 +0200
+++ new/gnuplot-5.4.9/configure.ac      2023-09-04 23:20:21.000000000 +0200
@@ -5,7 +5,7 @@
 dnl     and also in PATCHLEVEL and src/version.c
 dnl
 
-AC_INIT(gnuplot, 5.4.8)
+AC_INIT(gnuplot, 5.4.9)
 
 AC_CONFIG_SRCDIR(src/graphics.c)
 AC_PREREQ([2.69])
@@ -990,29 +990,55 @@
       enable_qt_ok=no
   fi
 
-  dnl First check for Qt5
-  if test "x${with_qt}" = "xqt5"; then
-    try_qt4=no
-  else
+  dnl Qt4 only by special request
+  if test "x${with_qt}" = "xqt4"; then
     try_qt4=yes
+  else
+    try_qt4=no
   fi
+
   if test "x${with_qt}" != "xqt4"; then
-    PKG_CHECK_MODULES_NOFAIL(QT, [Qt5Core Qt5Gui Qt5Network Qt5Svg 
Qt5PrintSupport])
+    pkg_failed="not_tried"
+    if test "x${with_qt}" != "xqt5"; then
+      AC_MSG_CHECKING([Checking for Qt6 support libraries])
+      PKG_CHECK_MODULES_NOFAIL(QT, [Qt6Core Qt6Gui Qt6Network Qt6Svg 
Qt6PrintSupport Qt6Core5Compat])
+    fi
     if test $pkg_failed = no; then
-      try_qt4=no
-      QT5LOC=`$PKG_CONFIG --variable=host_bins Qt5Core`
-      if test "x${QT5LOC}" != "x"; then
-        UIC=${QT5LOC}/uic
-        MOC=${QT5LOC}/moc
-        RCC=${QT5LOC}/rcc
-        LRELEASE=${QT5LOC}/lrelease
+      QT6LOC=`$PKG_CONFIG --variable=libexecdir Qt6Core`
+      if test "x${QT6LOC}" != "x"; then
+          UIC=${QT6LOC}/uic
+          MOC=${QT6LOC}/moc
+          RCC=${QT6LOC}/rcc
+      else
+          UIC=uic-qt6
+          MOC=moc-qt6
+          RCC=rcc-qt6
       fi
+      LRELEASE=lrelease-qt6
       CXXFLAGS="$CXXFLAGS -fPIC"
+      AC_MSG_RESULT([The Qt terminal will use Qt6.])
+      QTVER="6"
+    else
+      AC_MSG_CHECKING([Checking for Qt5 support libraries])
+      PKG_CHECK_MODULES_NOFAIL(QT, [Qt5Core Qt5Gui Qt5Network Qt5Svg 
Qt5PrintSupport])
+      if test $pkg_failed = no; then
+        QT5LOC=`$PKG_CONFIG --variable=host_bins Qt5Core`
+        if test "x${QT5LOC}" != "x"; then
+          UIC=${QT5LOC}/uic
+          MOC=${QT5LOC}/moc
+          RCC=${QT5LOC}/rcc
+          LRELEASE=${QT5LOC}/lrelease
+        fi
+        CXXFLAGS="$CXXFLAGS -fPIC"
+        AC_MSG_RESULT([The Qt terminal will use Qt5.])
+        QTVER="5"
+      fi
     fi 
   fi
 
-  dnl No Qt5, check for Qt4.5 or greater
-  if test ${try_qt4} != no; then
+  dnl Explicit request for qt4 
+  if test ${try_qt4} = yes; then
+    AC_MSG_CHECKING([Checking for Qt4 support])
     PKG_CHECK_MODULES_NOFAIL(QT, [QtCore >= 4.5 QtGui >= 4.5 QtNetwork >= 4.5 
QtSvg >= 4.5])
     if test $pkg_failed != no; then
       enable_qt_ok=no
@@ -1026,9 +1052,6 @@
       AC_MSG_RESULT([The Qt terminal will use Qt4.])
       QTVER="4"
     fi
-  else
-    AC_MSG_RESULT([The Qt terminal will use Qt5.])
-    QTVER="5"
   fi
 fi
 
@@ -1283,8 +1306,11 @@
   if test "$QTVER" = 5; then
       AC_MSG_RESULT([  Qt terminal: yes (qt5)])
   fi
+  if test "$QTVER" = 6; then
+      AC_MSG_RESULT([  Qt                   : yes (qt6)])
+  fi
 else
-  AC_MSG_RESULT([  Qt terminal: no (use --with-qt or --with-qt=qt4 to enable])
+  AC_MSG_RESULT([  Qt                   : no (use --with-qt or --with-qt=qt4 
or --with-qt=qt5 to enable])
 fi
 
 AC_MSG_RESULT([])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/demo/plugin/README 
new/gnuplot-5.4.9/demo/plugin/README
--- old/gnuplot-5.4.8/demo/plugin/README        2022-05-26 21:35:50.000000000 
+0200
+++ new/gnuplot-5.4.9/demo/plugin/README        2023-09-04 23:20:02.000000000 
+0200
@@ -19,7 +19,7 @@
 If you are building _only_ this plugin demo, under linux a minimal
 build command is
 
-    gcc -shared -lm -o demo_plugin.so demo_plugin.c
+    gcc -shared -lm -fPIC -o demo_plugin.so demo_plugin.c
 
 Under Windows + mingw it is
 
@@ -28,7 +28,7 @@
 An equivalent build command should work for the uigamma plugin or
 one you have created yourself.
 
-    gcc -shared -lm -o uigamma_plugin.so uigamma_plugin.c
+    gcc -shared -lm -fPIC -o uigamma_plugin.so uigamma_plugin.c
 
 Type "help import" in a gnuplot session for examples of how to
 load a function from a plugin library.  The suggested sequence
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/demo/plugin/gnuplot_plugin.h 
new/gnuplot-5.4.9/demo/plugin/gnuplot_plugin.h
--- old/gnuplot-5.4.8/demo/plugin/gnuplot_plugin.h      2020-10-13 
23:14:48.000000000 +0200
+++ new/gnuplot-5.4.9/demo/plugin/gnuplot_plugin.h      2023-09-04 
23:20:21.000000000 +0200
@@ -1,7 +1,10 @@
 /*
  * DATA_TYPES and struct value must match definitions in
- * #include <gp_types.h>
+ *    #include <gp_types.h>
+ * This version matches gnuplot 5.4
  */
+#define PLUGIN_VERSION 5.4
+
 #include <inttypes.h>          /* C99 type definitions */
 enum DATA_TYPES {
        INTGR=1,
@@ -9,6 +12,7 @@
        STRING,
        DATABLOCK,
        ARRAY,
+       VOXELGRID,
        NOTDEFINED,     /* exists, but value is currently undefined */
        INVALID_VALUE,  /* used only for error return by external functions */
        INVALID_NAME    /* used only to trap errors in linked axis function 
definition */
@@ -46,6 +50,9 @@
 DLLEXPORT void *gnuplot_init(struct value(*)(int, struct value *, void *));
 DLLEXPORT void gnuplot_fini(void *);
 
+/* report gnuplot version number that this plugin was built for */
+DLLEXPORT double gnuplot_version(void) {return PLUGIN_VERSION;}
+
 /* Check that the number of parameters declared in the gnuplot import
  * statement matches the actual number of parameters in the exported
  * function
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/docs/gnuplot.doc 
new/gnuplot-5.4.9/docs/gnuplot.doc
--- old/gnuplot-5.4.8/docs/gnuplot.doc  2023-04-21 05:50:18.000000000 +0200
+++ new/gnuplot-5.4.9/docs/gnuplot.doc  2023-09-04 23:20:22.000000000 +0200
@@ -16284,12 +16284,12 @@
  column values.  Note that matrix rows and columns are indexed starting
  from 0, so the row with index N is the (N+1)th row.
  Syntax:
-       plot 'file' every {<column_incr>}
-                           {:{<row_incr>}
-                             {:{<start_column>}
-                               {:{<start_row>}
-                                 {:{<end_column>}
-                                   {:<end_row>}}}}}
+       plot 'file' matrix every {<column_incr>}
+                                {:{<row_incr>}
+                                  {:{<start_column>}
+                                    {:{<start_row>}
+                                      {:{<end_column>}
+                                        {:<end_row>}}}}}
  Examples:
        plot 'file' matrix every :::N::N   # plot all values in row with index N
        plot 'file' matrix every ::3::7    # plot columns 3 to 7 for all rows
Binary files old/gnuplot-5.4.8/docs/gnuplot.pdf and 
new/gnuplot-5.4.9/docs/gnuplot.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/m4/pkg.m4 new/gnuplot-5.4.9/m4/pkg.m4
--- old/gnuplot-5.4.8/m4/pkg.m4 2017-12-22 18:32:30.000000000 +0100
+++ new/gnuplot-5.4.9/m4/pkg.m4 2023-09-04 23:20:02.000000000 +0200
@@ -200,8 +200,7 @@
        echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
        ifelse([$4], , [AC_MSG_WARN(dnl
-[
-Package requirements ($2) were not met:
+[Package requirements ($2) were not met:
 
 $$1_PKG_ERRORS
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/Makefile.am 
new/gnuplot-5.4.9/src/Makefile.am
--- old/gnuplot-5.4.8/src/Makefile.am   2023-04-21 05:50:18.000000000 +0200
+++ new/gnuplot-5.4.9/src/Makefile.am   2023-09-04 23:20:22.000000000 +0200
@@ -122,7 +122,7 @@
 
 GNUPLOT_QT = `echo gnuplot_qt | sed '$(transform)'`$(EXEEXT)
 
-AM_CPPFLAGS += -DGNUPLOT_QT=\"$(GNUPLOT_QT)\"
+AM_CPPFLAGS += $(QT_CFLAGS) -DGNUPLOT_QT=\"$(GNUPLOT_QT)\"
 
 # Call the moc preprocessor
 qtterminal/moc_%.cpp : qtterminal/%.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/Makefile.in 
new/gnuplot-5.4.9/src/Makefile.in
--- old/gnuplot-5.4.8/src/Makefile.in   2023-06-02 05:20:06.000000000 +0200
+++ new/gnuplot-5.4.9/src/Makefile.in   2023-08-26 05:13:05.000000000 +0200
@@ -97,7 +97,7 @@
 @BUILD_WXWIDGETS_TRUE@am__append_2 = wxterminal/wxt_gui.cpp
 @BUILD_GPCAIRO_TRUE@am__append_3 = wxterminal/gp_cairo.c 
wxterminal/gp_cairo_helpers.c
 @BUILD_BITMAP_TRUE@am__append_4 = bitmap.c
-@BUILD_QT_TRUE@am__append_5 = -DGNUPLOT_QT=\"$(GNUPLOT_QT)\"
+@BUILD_QT_TRUE@am__append_5 = $(QT_CFLAGS) -DGNUPLOT_QT=\"$(GNUPLOT_QT)\"
 @BUILD_QT_TRUE@@HAVE_LRELEASE_TRUE@am__append_6 = 
-DQTGNUPLOT_DATA_DIR=\"$(qtgnuplotdir)\"
 
 # Qt terminal sources
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/datafile.c 
new/gnuplot-5.4.9/src/datafile.c
--- old/gnuplot-5.4.8/src/datafile.c    2023-04-21 05:51:22.000000000 +0200
+++ new/gnuplot-5.4.9/src/datafile.c    2023-09-04 23:20:40.000000000 +0200
@@ -1129,27 +1129,6 @@
     /* Perhaps it should be a parameter to df_readline? */
     df_current_plot = plot;
 
-    /* If either 'set datafile columnhead' or 'set key autotitle columnhead'
-     * is in effect we always treat the * first data row as non-data
-     * (df_readline() will return DF_COLUMN_HEADERS rather than the column 
count).
-     * This is true even if the key is off or the data is read from 'stats'
-     * or from 'fit' rather than plot.
-     */
-    column_for_key_title = NO_COLUMN_HEADER;
-    df_already_got_headers = FALSE;
-    if ((&keyT)->auto_titles == COLUMNHEAD_KEYTITLES)
-       parse_1st_row_as_headers = TRUE;
-    else if (df_columnheaders)
-       parse_1st_row_as_headers = TRUE;
-    else
-       parse_1st_row_as_headers = FALSE;
-    /* Pseudofiles '+' and '++' can never have column headers */
-    if (df_pseudodata > 0)
-       parse_1st_row_as_headers = FALSE;
-    /* Data pulled from an array also cannot have column headers  */
-    if (df_array)
-       parse_1st_row_as_headers = FALSE;
-
     if (!cmd_filename)
        int_error(c_token, "missing filename");
     if (!cmd_filename[0]) {
@@ -1165,9 +1144,27 @@
        df_filename = gp_strdup(cmd_filename);
     }
 
-    /* defer opening until we have parsed the modifiers... */
+    /* If either 'set datafile columnhead' or 'set key autotitle columnhead'
+     * is in effect we always treat the * first data row as non-data
+     * (df_readline() will return DF_COLUMN_HEADERS rather than the column 
count).
+     * This is true even if the key is off or the data is read from 'stats'
+     * or from 'fit' rather than plot.
+     */
+    column_for_key_title = NO_COLUMN_HEADER;
+    df_already_got_headers = FALSE;
+    if ((&keyT)->auto_titles == COLUMNHEAD_KEYTITLES)
+       parse_1st_row_as_headers = TRUE;
+    else if (df_columnheaders)
+       parse_1st_row_as_headers = TRUE;
+    else
+       parse_1st_row_as_headers = FALSE;
+    /* arrays or internally generated data ('+' or '++') never have column 
headers */
+    if (df_array || (df_filename[0] == '+'))
+       parse_1st_row_as_headers = FALSE;
 
-    /* pm 25.11.2001 allow any order of options */
+    /*
+     * Defer opening the input file until we have parsed the modifiers
+     */
     while (!END_OF_COMMAND) {
 
        /* look for binary / matrix */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/external.c 
new/gnuplot-5.4.9/src/external.c
--- old/gnuplot-5.4.8/src/external.c    2020-10-13 23:14:48.000000000 +0200
+++ new/gnuplot-5.4.9/src/external.c    2023-09-04 23:20:22.000000000 +0200
@@ -59,6 +59,7 @@
 ]*/
 
 #include "external.h"
+#include "version.h"
 
 #ifdef HAVE_EXTERNAL_FUNCTIONS
 
@@ -75,6 +76,7 @@
 typedef struct value (*exfn_t)(int, struct value *, void *);
 typedef void * (*infn_t)(exfn_t);
 typedef void   (*fifn_t)(void *);
+typedef double (*vfn_t)(void);
 
 struct exft_entry {
     exfn_t exfn;
@@ -106,13 +108,19 @@
 }
 #endif
 
-
 /*
-  Parse the string argument for a dll filename and function.  Create a
-  one-item action list that calls a plugin function.  Call the _init,
-  if present.  _init may return a pointer to private data that is
-  handed over to the external function for each call.
-*/
+ * 1) Parse the string argument for a dll filename and function.
+ * 2) Create a one-item action list that calls a plugin function.
+ * 3) Check the gnuplot version number reported by the plugin.
+ * 4) Call the _init function if present; this is exported by the
+ *    plugin as gnuplot_init().
+ *    This function may return a pointer to private data that is
+ *    handed over to the external function for each call.
+ * 5) Save the destructor function if present; this is exported by
+ *    the plugin as gnuplot_fini().  This function is called
+ *    if and when the user function name associated with the
+ *    plugin function is reassign to something else.
+ */
 
 struct at_type *
 external_at(const char *func_name)
@@ -123,6 +131,7 @@
     exfn_t exfn;
     infn_t infn;
     fifn_t fifn;
+    vfn_t vfn;
     struct at_type *at = NULL;
 
     if (!isstring(c_token))
@@ -168,6 +177,7 @@
                strcat(nfile, DLL_EXT);
                /* 2nd try:  "file.so" */
                dl = DLL_OPEN(nfile);
+               err = DLL_ERROR(dl);
            }
 #endif
 #ifdef DLL_PATHSEP
@@ -176,11 +186,13 @@
                strcat(nfile, file);
                /* 3rd try:  "./file" */
                dl = DLL_OPEN(nfile);
+               err = DLL_ERROR(dl);
 #ifdef DLL_EXT
                if (!dl && no_ext) {
                    strcat(nfile, DLL_EXT);
                    /* 4th try:  "./file.so" */
                    dl = DLL_OPEN(nfile);
+                   err = DLL_ERROR(dl);
                }
 #endif
            }
@@ -208,6 +220,7 @@
     
     infn = (infn_t)DLL_SYM(dl, "gnuplot_init");
     fifn = (fifn_t)DLL_SYM(dl, "gnuplot_fini");
+    vfn  = (vfn_t)DLL_SYM(dl, "gnuplot_version");
     
     if (!(at = gp_alloc(sizeof(struct at_type), "external_at")))
        goto bailout;
@@ -231,6 +244,15 @@
        at->actions[0].arg.exf_arg->private = 0x0;
     else
        at->actions[0].arg.exf_arg->private = (*infn)(exfn);
+
+    /* Check for version compatibility */
+    if (!vfn)
+       int_warn(NO_CARET, "plugin provides no version information");
+    else {
+       double plugin_version = (*vfn)();
+       if (plugin_version != gnuplot_ver)
+           int_warn(NO_CARET, "plugin built for version %.1f", plugin_version);
+    }
     
   bailout:
     c_token++;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/gadgets.c 
new/gnuplot-5.4.9/src/gadgets.c
--- old/gnuplot-5.4.8/src/gadgets.c     2023-05-17 06:29:21.000000000 +0200
+++ new/gnuplot-5.4.9/src/gadgets.c     2023-09-04 23:20:22.000000000 +0200
@@ -545,16 +545,22 @@
 void
 intersect_polyedge_with_boundary(gpiPoint first, gpiPoint second, gpiPoint 
*intersect, gpiPoint *clip_boundary)
 {
-    /* this routine is called only if one point is outside and the other
-       is inside, which implies that clipping is needed at a horizontal
-       boundary, that second.y is different from first.y and no division
-       by zero occurs. Same for vertical boundary and x coordinates. */
+    /* This routine is called only if one point is outside and the other
+     * is inside, which implies that clipping is needed at a horizontal
+     * boundary, that second.y is different from first.y and no division
+     * by zero occurs. Same for vertical boundary and x coordinates.
+     * Conversion to double is needed to prevent integer overflow.
+     */
+    double dx = (second.x - first.x);
+    double dy = (second.y - first.y);
     if (clip_boundary[0].y == clip_boundary[1].y) { /* horizontal */
        (*intersect).y = clip_boundary[0].y;
-       (*intersect).x = first.x + (clip_boundary[0].y - first.y) * (second.x - 
first.x)/(second.y - first.y);
+       (*intersect).x = first.x
+                       + (double)(clip_boundary[0].y - first.y) * dx/dy;
     } else { /* vertical */
        (*intersect).x = clip_boundary[0].x;
-       (*intersect).y = first.y + (clip_boundary[0].x - first.x) * (second.y - 
first.y)/(second.x - first.x);
+       (*intersect).y = first.y
+                       + (double)(clip_boundary[0].x - first.x) * dy/dx;
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/graphics.c 
new/gnuplot-5.4.9/src/graphics.c
--- old/gnuplot-5.4.8/src/graphics.c    2023-05-17 06:29:21.000000000 +0200
+++ new/gnuplot-5.4.9/src/graphics.c    2023-09-04 23:20:22.000000000 +0200
@@ -5246,6 +5246,8 @@
                            for (k=0; k<N_corners; k++)
                                clipped[k] = corners[k];
                            clip_polygon(clipped, corners, N_corners, 
&N_corners);
+                           if (N_corners <= 0)
+                               continue;
                        }
 
                        if (rectangular_image && term->fillbox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/plot2d.c 
new/gnuplot-5.4.9/src/plot2d.c
--- old/gnuplot-5.4.8/src/plot2d.c      2023-05-03 05:47:06.000000000 +0200
+++ new/gnuplot-5.4.9/src/plot2d.c      2023-09-04 23:20:22.000000000 +0200
@@ -1386,9 +1386,9 @@
     case YERRORLINES:          /* auto-scale ylow yhigh */
        cp->xlow = xlow;        /* really theta if polar; CRD_PTSIZE otherwise 
*/
        cp->xhigh = xhigh;      /* really theta if polar; CRD_PTTYPE otherwise 
*/
-       STORE_AND_UPDATE_RANGE(cp->ylow, ylow, dummy_type, current_plot->y_axis,
+       STORE_AND_UPDATE_RANGE(cp->ylow, ylow, cp->type, current_plot->y_axis,
                                current_plot->noautoscale, cp->ylow = 
-VERYLARGE);
-       STORE_AND_UPDATE_RANGE(cp->yhigh, yhigh, dummy_type, 
current_plot->y_axis,
+       STORE_AND_UPDATE_RANGE(cp->yhigh, yhigh, cp->type, current_plot->y_axis,
                                current_plot->noautoscale, cp->yhigh = 
-VERYLARGE);
        break;
     case BOXES:                        /* auto-scale to xlow xhigh */
@@ -2640,9 +2640,10 @@
                    if (equals(c_token,"fs") || 
almost_equals(c_token,"fill$style")) {
                        if (this_plot->plot_style == SPIDERPLOT)
                            this_plot->fill_properties = 
spiderplot_style.fillstyle;
-                       else
+                       else {
                            this_plot->fill_properties = default_fillstyle;
-                       this_plot->fill_properties.fillpattern = pattern_num;
+                           this_plot->fill_properties.fillpattern = 
pattern_num;
+                       }
                        parse_fillstyle(&this_plot->fill_properties);
                        if (this_plot->plot_style == FILLEDCURVES
                        && this_plot->fill_properties.fillstyle == FS_EMPTY)
@@ -2779,9 +2780,10 @@
                if (!set_fillstyle) {
                    if (this_plot->plot_style == SPIDERPLOT)
                        this_plot->fill_properties = spiderplot_style.fillstyle;
-                   else
+                   else {
                        this_plot->fill_properties = default_fillstyle;
-                   this_plot->fill_properties.fillpattern = pattern_num;
+                       this_plot->fill_properties.fillpattern = pattern_num;
+                   }
                    parse_fillstyle(&this_plot->fill_properties);
                }
                if ((this_plot->fill_properties.fillstyle == FS_PATTERN)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/pm3d.c new/gnuplot-5.4.9/src/pm3d.c
--- old/gnuplot-5.4.8/src/pm3d.c        2023-04-24 05:18:15.000000000 +0200
+++ new/gnuplot-5.4.9/src/pm3d.c        2023-09-04 23:20:22.000000000 +0200
@@ -1617,6 +1617,9 @@
        clip_polygon( ocorners, icorners, nv, &nv );
     }
 
+    if (nv <= 0)
+       return;
+
     if (fillstyle)
        icorners[0].style = fillstyle;
     else if (default_fillstyle.fillstyle == FS_EMPTY)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/qtterminal/QtGnuplotItems.cpp 
new/gnuplot-5.4.9/src/qtterminal/QtGnuplotItems.cpp
--- old/gnuplot-5.4.8/src/qtterminal/QtGnuplotItems.cpp 2022-05-26 
21:35:50.000000000 +0200
+++ new/gnuplot-5.4.9/src/qtterminal/QtGnuplotItems.cpp 2023-09-04 
23:20:03.000000000 +0200
@@ -45,6 +45,10 @@
 
 #include <QtGui>
 
+#if QT_VERSION < QT_VERSION_CHECK(5, 11, 0)
+  #define horizontalAdvance width
+#endif
+
 /////////////////////////////
 // QtGnuplotEnhanced
 
@@ -111,7 +115,7 @@
 qreal QtGnuplotEnhancedFragment::width() const
 {
        QFontMetricsF metrics(m_font);
-       return metrics.width(m_text);
+       return metrics.horizontalAdvance(m_text);
 }
 
 void QtGnuplotEnhancedFragment::paint(QPainter* painter, const 
QStyleOptionGraphicsItem* option, QWidget* widget)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/qtterminal/gnuplot_qt.cpp 
new/gnuplot-5.4.9/src/qtterminal/gnuplot_qt.cpp
--- old/gnuplot-5.4.8/src/qtterminal/gnuplot_qt.cpp     2017-12-22 
18:32:30.000000000 +0100
+++ new/gnuplot-5.4.9/src/qtterminal/gnuplot_qt.cpp     2023-09-04 
23:20:03.000000000 +0200
@@ -88,13 +88,20 @@
 
        // Load translations for the qt library
        QTranslator qtTranslator;
-       qtTranslator.load("qt_" + QLocale::system().name(), 
QLibraryInfo::location(QLibraryInfo::TranslationsPath));
-       application.installTranslator(&qtTranslator);
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+       if (qtTranslator.load("qt_" + QLocale::system().name(),
+               QLibraryInfo::path(QLibraryInfo::TranslationsPath)))
+               application.installTranslator(&qtTranslator);
+#else
+       if (qtTranslator.load("qt_" + QLocale::system().name(),
+               QLibraryInfo::location(QLibraryInfo::TranslationsPath)))
+               application.installTranslator(&qtTranslator);
+#endif
 
        // Load translations for the qt terminal
        QTranslator translator;
-       translator.load("qtgnuplot_" + QLocale::system().name(), 
qt_gnuplot_data_dir);
-       application.installTranslator(&translator);
+       if (translator.load("qtgnuplot_" + QLocale::system().name(), 
qt_gnuplot_data_dir))
+               application.installTranslator(&translator);
 
        // Start
        application.exec();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/qtterminal/qt_conversion.cpp 
new/gnuplot-5.4.9/src/qtterminal/qt_conversion.cpp
--- old/gnuplot-5.4.8/src/qtterminal/qt_conversion.cpp  2017-12-22 
18:32:30.000000000 +0100
+++ new/gnuplot-5.4.9/src/qtterminal/qt_conversion.cpp  2023-09-04 
23:20:03.000000000 +0200
@@ -41,6 +41,15 @@
  * under either the GPL or the gnuplot license.
 ]*/
 
+/*
+ * Qt6 no longer supports other 8-bit encodings natively, relegating the
+ * QTextCodec functions to a compatibility module Core5Compat.
+ * FIXME: roll our own?
+ */
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+    #include <QTextCodec>
+#endif
+
 static QColor qt_colorList[12] =
 {
        Qt::white,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/util.c new/gnuplot-5.4.9/src/util.c
--- old/gnuplot-5.4.8/src/util.c        2023-04-21 05:50:18.000000000 +0200
+++ new/gnuplot-5.4.9/src/util.c        2023-09-04 23:20:22.000000000 +0200
@@ -1050,7 +1050,7 @@
        /* Print problem line from data file to the terminal */
        df_showdata();
 
-    } else {
+    } else if (gp_input_line) {
 
        /* If the current line was built by concatenation of lines inside */
        /* a {bracketed clause}, try to reconstruct the true line number  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/version.c 
new/gnuplot-5.4.9/src/version.c
--- old/gnuplot-5.4.8/src/version.c     2023-06-02 01:14:19.000000000 +0200
+++ new/gnuplot-5.4.9/src/version.c     2023-09-04 23:27:46.000000000 +0200
@@ -35,12 +35,13 @@
 #include "syscfg.h"            /* for FAQ_LOCATION */
 
 
+const double gnuplot_ver = 5.4;
 const char gnuplot_version[] = "5.4";
-const char gnuplot_patchlevel[] = "8";
+const char gnuplot_patchlevel[] = "9";
 #ifdef DEVELOPMENT_VERSION
 #include "timestamp.h"
 #else
-const char gnuplot_date[] = "2023-06-01";
+const char gnuplot_date[] = "2023-09-04";
 #endif
 const char gnuplot_copyright[] = "Copyright (C) 1986-1993, 1998, 2004, 
2007-2023";
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/version.h 
new/gnuplot-5.4.9/src/version.h
--- old/gnuplot-5.4.8/src/version.h     2020-10-13 23:14:48.000000000 +0200
+++ new/gnuplot-5.4.9/src/version.h     2023-09-04 23:20:03.000000000 +0200
@@ -35,6 +35,7 @@
 
 #include "syscfg.h"
 
+extern const double gnuplot_ver;
 extern const char gnuplot_version[];
 extern const char gnuplot_patchlevel[];
 extern const char gnuplot_date[];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/wxterminal/gp_cairo.c 
new/gnuplot-5.4.9/src/wxterminal/gp_cairo.c
--- old/gnuplot-5.4.8/src/wxterminal/gp_cairo.c 2023-04-21 05:50:06.000000000 
+0200
+++ new/gnuplot-5.4.9/src/wxterminal/gp_cairo.c 2023-09-04 23:20:22.000000000 
+0200
@@ -401,6 +401,9 @@
        /* begin by stroking any open path */
        gp_cairo_stroke(plot);
 
+       if (n <= 0)
+               return;
+
        if (plot->polygons_saturate) {
                int i;
                path_item *path;
@@ -464,13 +467,15 @@
        /* if there's only one polygon, draw it directly */
        if (path->previous == NULL) {
                FPRINTF((stderr,"processing one polygon\n"));
-               cairo_move_to(plot->cr, path->corners[0].x, path->corners[0].y);
-               for (i=1;i<path->n;++i)
-                       cairo_line_to(plot->cr, path->corners[i].x, 
path->corners[i].y);
-               cairo_close_path(plot->cr);
-               plot->color = path->color;
-               gp_cairo_fill( plot, path->corners->style & 0xf, 
path->corners->style >> 4 );
-               cairo_fill(plot->cr);
+               if (path->n > 0) {
+                   cairo_move_to(plot->cr, path->corners[0].x, 
path->corners[0].y);
+                   for (i = 1; i < path->n; i++)
+                           cairo_line_to(plot->cr, path->corners[i].x, 
path->corners[i].y);
+                   cairo_close_path(plot->cr);
+                   plot->color = path->color;
+                   gp_cairo_fill( plot, path->corners->style & 0xf, 
path->corners->style >> 4 );
+                   cairo_fill(plot->cr);
+               }
                free(path->corners);
                free(path);
                plot->polygon_path_last = NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/src/wxterminal/wxt_gui.cpp 
new/gnuplot-5.4.9/src/wxterminal/wxt_gui.cpp
--- old/gnuplot-5.4.8/src/wxterminal/wxt_gui.cpp        2023-04-21 
05:50:18.000000000 +0200
+++ new/gnuplot-5.4.9/src/wxterminal/wxt_gui.cpp        2023-09-04 
23:20:22.000000000 +0200
@@ -1564,11 +1564,12 @@
 static void wxt_update_key_box( unsigned int x, unsigned int y )
 {
        if (wxt_max_key_boxes <= wxt_cur_plotno) {
+               int first_new_keybox = wxt_max_key_boxes;
                wxt_max_key_boxes = wxt_cur_plotno + 10;
                wxt_key_boxes = (wxtBoundingBox *)realloc(wxt_key_boxes,
                                wxt_max_key_boxes * sizeof(wxtBoundingBox));
-               wxt_initialize_key_boxes(wxt_cur_plotno);
-               wxt_initialize_hidden(wxt_cur_plotno);
+               wxt_initialize_key_boxes(first_new_keybox);
+               wxt_initialize_hidden(first_new_keybox);
        }
        wxtBoundingBox *bb = &(wxt_key_boxes[wxt_cur_plotno]);
        y = term->ymax - y;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gnuplot-5.4.8/term/post.trm 
new/gnuplot-5.4.9/term/post.trm
--- old/gnuplot-5.4.8/term/post.trm     2023-04-21 05:50:18.000000000 +0200
+++ new/gnuplot-5.4.9/term/post.trm     2023-09-04 23:20:22.000000000 +0200
@@ -3441,7 +3441,7 @@
 {
     gdImagePtr png_img;
     int m, n, pixel;
-    if (color_mode == IC_RGB) {
+    if (color_mode == IC_RGB || color_mode == IC_RGBA) {
        png_img = gdImageCreateTrueColor(M, N);
     } else {
        /* we would need a gray scale image, but libgd does not support
@@ -3453,7 +3453,7 @@
        int_error(NO_CARET, "GNUPLOT (post.trm): failed to create libgd image 
structure");
     }
 
-    if (color_mode == IC_RGB) {
+    if (color_mode == IC_RGB || color_mode == IC_RGBA) {
         rgb_color rgb1;
         rgb255_color rgb255;
        for (n = 0; n < N; n++) {
@@ -3464,6 +3464,9 @@
                rgb255_from_rgb1(rgb1, &rgb255);
                pixel = gdImageColorResolve(png_img, (int)rgb255.r, 
(int)rgb255.g, (int)rgb255.b);
                gdImageSetPixel(png_img, m, n, pixel);
+               if (color_mode == IC_RGBA) {
+                   image++;    /* ignore alpha channel */
+               }
            }
        }
     } else {
@@ -3548,7 +3551,7 @@
     int m, n;
 
 
-    if (color_mode == IC_RGB) {
+    if (color_mode == IC_RGB || color_mode == IC_RGBA) {
        format = CAIRO_FORMAT_RGB24;
     } else {
        format = CAIRO_FORMAT_A8;
@@ -3556,7 +3559,7 @@
     stride = cairo_format_stride_for_width(format, M);
     image255 = (unsigned char *) gp_alloc(N * stride, "Postscript image 
bytes");
 
-    if (color_mode == IC_RGB) {
+    if (color_mode == IC_RGB || color_mode == IC_RGBA) {
        /* Adapted from gp_cairo_helpers.c (use unsigned int to respect 
endianess of the platform). */
        rgb_color rgb1;
         rgb255_color rgb255;
@@ -3569,6 +3572,9 @@
                rgb1.b = *image++;
                rgb255_from_rgb1(rgb1, &rgb255);
                *image255_ptr++ = (0xFF<<24) + (rgb255.r<<16) + (rgb255.g<<8) + 
rgb255.b;
+               if (color_mode == IC_RGBA) {
+                   image++;    /* ignore alpha channel */
+               }
            }
        }
     } else {
@@ -3715,14 +3721,22 @@
     unsigned char tuple5[5];
     int max_encoded_bytes;
     char *encoded_image, *encoded_image_ptr;
+    unsigned ncomponents;
     unsigned long total_bits;
+    int current_channel;
 
 #define ASCII_PER_LINE 78
 
     /* 18.1.2009 RGB images ("plot ... with rgbimage") are drawn always in 
color,
      * i.e. for both "set term post color" and "set term post mono".
      */
-    total_bits = bits_per_component*M*N*((color_mode == IC_RGB /* && 
ps_params->color */) ? 3 : 1);
+    if (color_mode == IC_RGB)
+       ncomponents = 3;
+    else if (color_mode == IC_RGBA)    /* alpha channel will be ignored */
+       ncomponents = 3;
+    else
+       ncomponents = 1;
+    total_bits = bits_per_component * ncomponents * M * N;
 
     /* At the end of each image line, data is aligned to the nearest 8 bits,
      * which means potentially adding 7 bits per line.
@@ -3751,24 +3765,30 @@
     i_line = ASCII_PER_LINE;
     i_element = 0;
     coord_remaining = M*N;
-    if (color_mode == IC_RGB /* && ps_params->color */) {
+    if (color_mode == IC_RGB) {
+       end_of_line *= 3;
+       coord_remaining *= 3;
+    }
+    if (color_mode == IC_RGBA) {
        end_of_line *= 3;
        coord_remaining *= 3;
     }
     bits_remaining = 32;
     bits_start = 0;
     tuple4 = 0;
+    current_channel = 0;
 
     while (coord_remaining) {
-       unsigned short us_tmp;
-       if (0 /* color_mode == IC_RGB && !ps_params->color */) {
-           coordval c_tmp;
-           c_tmp = *coord_ptr++;
-           c_tmp += *coord_ptr++;
-           c_tmp += *coord_ptr++;
-           us_tmp = (unsigned short) (c_tmp*(max_colors-1)/3.0 + 0.5);
-       } else
-           us_tmp = (unsigned short) ((*coord_ptr++) * max_colors);
+       unsigned short us_tmp = (*coord_ptr++) * max_colors;
+
+       /* Ignore alpha channel */
+       if (color_mode == IC_RGBA) {
+           current_channel++;
+           if (current_channel == 4) {
+               current_channel = 0;
+               continue;
+           }
+       }
 
        if (us_tmp > (max_colors-1)) us_tmp = max_colors-1;
 
@@ -3897,15 +3917,18 @@
     fprintf(gppsfile, "%s[ %d 0 0 %d 0 0 ]\n", space, M, N);
     if (ps_params->level1) {
        fprintf(gppsfile, "/imagebuf %d string def\n",
-               (M*N*bits_per_component*((color_mode == IC_RGB /* && 
ps_params->color */) ? 3 : 1) + 7)/8);
+               (M*N*bits_per_component*((color_mode == IC_RGB || color_mode == 
IC_RGBA) ? 3 : 1) + 7)/8);
        fputs("{currentfile imagebuf readhexstring pop}\n", gppsfile);
     } else if (ps_params->level3) {
        fprintf(gppsfile, "  currentfile /ASCII85Decode filter << /Predictor 15 
/BitsPerComponent %d /Colors %d /Columns %d  >> /FlateDecode filter\n",
-               bits_per_component, (color_mode == IC_RGB) ? 3 : 1, M);
+               bits_per_component, (color_mode == IC_RGB || color_mode == 
IC_RGBA) ? 3 : 1, M);
     } else {
        fprintf(gppsfile, "  currentfile /ASCII85Decode filter\n");
     }
-    if (color_mode == IC_RGB /* && ps_params->color */) {
+    if (color_mode == IC_RGB) {
+       fprintf(gppsfile, "%sfalse 3\n"
+                         "%scolorimage\n", space, space);
+    } else if (color_mode == IC_RGBA) {
        fprintf(gppsfile, "%sfalse 3\n"
                          "%scolorimage\n", space, space);
     } else
@@ -3958,14 +3981,10 @@
     /* Color and gray scale images do not need a palette and can use
      * the 5 operand form of the image routine.
      */
-#if 0
-    /* 18.1.2009 It was decided to use the custom palette (i.e. colours) also
-       for the monochrome postscript output.
-    */
-    if ((color_mode == IC_RGB) || (sm_palette.colorMode == 
SMPAL_COLOR_MODE_GRAY) || !ps_params->color)
-#else
-    if ((color_mode == IC_RGB) || (sm_palette.colorMode == 
SMPAL_COLOR_MODE_RGB && !ps_params->color) || (sm_palette.colorMode == 
SMPAL_COLOR_MODE_GRAY))
-#endif
+    if ((color_mode == IC_RGB)
+    ||  (color_mode == IC_RGBA)
+    ||  (sm_palette.colorMode == SMPAL_COLOR_MODE_RGB && !ps_params->color)
+    ||  (sm_palette.colorMode == SMPAL_COLOR_MODE_GRAY))
        five_operand_image = TRUE;
     else
        five_operand_image = FALSE;
@@ -3981,15 +4000,17 @@
        cscale = 1.0;
 
 #ifdef HAVE_DEFLATE_ENCODER
-    if (ps_params->level3)
+    if (ps_params->level3) {
        encoded_image = (void *)PS_encode_png_image(M, N, image, color_mode,
                                            bits_per_component, max_colors, 
cscale,
                                            &num_encoded_bytes);
-    else
+    } else {
 #endif
        encoded_image = PS_encode_image(M, N, image, color_mode,
                                        bits_per_component, max_colors, cscale,
-                                       (ps_params->level1 ? PS_ASCII_HEX : 
PS_ASCII85), &num_encoded_bytes);
+                                       (ps_params->level1 ? PS_ASCII_HEX : 
PS_ASCII85),
+                                       &num_encoded_bytes);
+    }
 
 
     fputs("%%%%BeginImage\n", gppsfile);
@@ -4064,7 +4085,7 @@
        } else if (ps_params->level3) {
            fprintf(gppsfile, "  /DataSource currentfile /ASCII85Decode filter 
");
            fprintf(gppsfile, "<< /Predictor 15 /BitsPerComponent %d /Colors %d 
/Columns %d >> /FlateDecode filter\n",
-                   bits_per_component, (color_mode == IC_RGB) ? 3 : 1, M);
+                   bits_per_component, (color_mode == IC_RGB || color_mode == 
IC_RGBA) ? 3 : 1, M);
        } else {
            fputs("  /DataSource currentfile /ASCII85Decode filter\n", 
gppsfile);
        }

Reply via email to