Hello community,

here is the log from the commit of package wxsvg for openSUSE:Factory checked 
in at 2020-04-22 20:45:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/wxsvg (Old)
 and      /work/SRC/openSUSE:Factory/.wxsvg.new.2738 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "wxsvg"

Wed Apr 22 20:45:09 2020 rev:6 rq:796202 version:1.5.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/wxsvg/wxsvg.changes      2019-09-16 
10:53:21.503149260 +0200
+++ /work/SRC/openSUSE:Factory/.wxsvg.new.2738/wxsvg.changes    2020-04-22 
20:45:40.834533361 +0200
@@ -1,0 +2,19 @@
+Wed Apr 22 06:42:30 UTC 2020 - Luigi Baldoni <aloi...@gmx.com>
+
+- Set correct license
+
+-------------------------------------------------------------------
+Wed Apr  8 08:42:55 UTC 2020 - aloi...@gmx.com
+
+- Update to version 1.5.22
+  * wxSVGImage: fixed loading of video frames
+  * added support of rgba colors
+  version 1.5.21
+  * fixed renedring of symbol elements
+  * fixed handling of spaces in transform attribute
+  * added support of grayscale mask
+  * added initial support of switch element
+
+- Dropped Group tag
+
+-------------------------------------------------------------------

Old:
----
  wxsvg-1.5.20.tar.bz2

New:
----
  wxsvg-1.5.22.tar.bz2

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

Other differences:
------------------
++++++ wxsvg.spec ++++++
--- /var/tmp/diff_new_pack.OMvxMt/_old  2020-04-22 20:45:42.030535701 +0200
+++ /var/tmp/diff_new_pack.OMvxMt/_new  2020-04-22 20:45:42.038535718 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package wxsvg
 #
-# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2020 SUSE LLC
 # Copyright (c) 2012-2019 Mariusz Fik <fi...@opensuse.org>
 # Copyright (c) 2012 Stefan Seyfried <seife+...@b1-systems.com>
 #
@@ -20,12 +20,11 @@
 
 %define sover   3
 Name:           wxsvg
-Version:        1.5.20
+Version:        1.5.22
 Release:        0
 Summary:        Library to create, manipulate and render SVG files
-License:        GPL-2.0-or-later
-Group:          Development/Libraries/C and C++
-URL:            https://wxsvg.sourceforge.net/
+License:        LGPL-2.1+ WITH WxWindows-exception-3.1
+URL:            http://wxsvg.sourceforge.net/
 Source:         
https://prdownloads.sourceforge.net/wxsvg/%{name}-%{version}.tar.bz2
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
@@ -44,14 +43,12 @@
 
 %package -n     lib%{name}%{sover}
 Summary:        Library to create, manipulate and render SVG files
-Group:          System/Libraries
 
 %description -n lib%{name}%{sover}
 Dynamic libraries from %{name}, as required at runtime.
 
 %package -n     lib%{name}-devel
 Summary:        Header files for %{name}
-Group:          Development/Libraries/C and C++
 Requires:       %{name} = %{version}
 Requires:       lib%{name}%{sover} = %{version}
 Requires:       wxWidgets-devel >= 3

++++++ wxsvg-1.5.20.tar.bz2 -> wxsvg-1.5.22.tar.bz2 ++++++
++++ 3116 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/wxsvg-1.5.20/ChangeLog new/wxsvg-1.5.22/ChangeLog
--- old/wxsvg-1.5.20/ChangeLog  2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/ChangeLog  2019-12-27 20:33:24.000000000 +0100
@@ -1,3 +1,17 @@
+Version 1.5.22 <2019-12-27>
+---------------------------
+
+  * wxSVGImage: fixed loading of video frames
+  * added support of rgba colors
+
+Version 1.5.21 <2019-10-05>
+---------------------------
+
+  * fixed renedring of symbol elements
+  * fixed handling of spaces in transform attribute
+  * added support of grayscale mask
+  * added initial support of switch element
+
 Version 1.5.20 <2019-08-02>
 ---------------------------
 
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/wxsvg-1.5.20/compile new/wxsvg-1.5.22/compile
--- old/wxsvg-1.5.20/compile    2019-08-02 23:01:04.000000000 +0200
+++ new/wxsvg-1.5.22/compile    2019-12-27 20:33:29.000000000 +0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-10-14.11; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1999-2014 Free Software Foundation, Inc.
+# Copyright (C) 1999-2018 Free Software Foundation, Inc.
 # Written by Tom Tromey <tro...@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -255,7 +255,8 @@
     echo "compile $scriptversion"
     exit $?
     ;;
-  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe )
+  cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
 esac
@@ -339,9 +340,9 @@
 # Local Variables:
 # mode: shell-script
 # sh-indentation: 2
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# 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/wxsvg-1.5.20/configure.ac new/wxsvg-1.5.22/configure.ac
--- old/wxsvg-1.5.20/configure.ac       2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/configure.ac       2019-12-27 20:33:24.000000000 +0100
@@ -2,7 +2,7 @@
 
 # initialization
 AC_PREREQ(2.59)
-AC_INIT([wxsvg], [1.5.20], [http://wxsvg.sourceforge.net/])
+AC_INIT([wxsvg], [1.5.22], [http://wxsvg.sourceforge.net/])
 AC_CONFIG_MACRO_DIR([m4])
 AM_INIT_AUTOMAKE(foreign)
 AM_MAINTAINER_MODE
@@ -15,22 +15,22 @@
 # 4. If any interfaces have been added since the last public release, then 
increment age.
 # 5. If any interfaces have been removed since the last public release then 
set age to 0.
 
-LIBRARY_VERSION=15:4:12 # current:revision:age -> libwxsvg.so.(C-A).(A).(R)
+LIBRARY_VERSION=15:6:12 # current:revision:age -> libwxsvg.so.(C-A).(A).(R)
 AC_SUBST(LIBRARY_VERSION)
 
 # options
 AM_OPTIONS_WXCONFIG
 AC_ARG_ENABLE(debug,
- [  --enable-debug          Enable debugging information],
+ [  --enable-debug            Enable debugging information],
  USE_DEBUG="$enableval", USE_DEBUG="no")
 AC_ARG_ENABLE(libav,
- [  --enable-libav         Enable libav decoder support (default: enabled)],
+ [  --enable-libav            Enable libav decoder support (default: enabled)],
  [enable_libav=$enableval],[enable_libav=yes])
 AC_ARG_ENABLE(render,
- [  --enable-render[=render]          Specify the render: cairo (default) or 
skia],
+ [  --enable-render[=render]  Specify the render: cairo (default) or skia],
  [USE_RENDER=$enableval], [USE_RENDER=cairo])
 AC_ARG_WITH(datarootdir,
- [  --with-datarootdir=DIR  Use DIR as the data root [[PREFIX/share]]],
+ [  --with-datarootdir=DIR    Use DIR as the data root [[PREFIX/share]]],
  [datarootdir="\${prefix}/$with_datarootdir"], [datarootdir='$(prefix)/share'])
 AC_SUBST(datarootdir)
 
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/wxsvg-1.5.20/include/wxSVG/SVGStringList.h 
new/wxsvg-1.5.22/include/wxSVG/SVGStringList.h
--- old/wxsvg-1.5.20/include/wxSVG/SVGStringList.h      2019-08-02 
23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/include/wxSVG/SVGStringList.h      2019-12-27 
20:33:24.000000000 +0100
@@ -14,12 +14,13 @@
 #include <wx/dynarray.h>
 WX_DECLARE_OBJARRAY(wxString, wxSVGStringListBase);
 
-class wxSVGStringList: public wxSVGStringListBase {
-public:
-       wxSVGStringList() {}
-
-       wxString GetValueAsString(wxChar delimiter = wxT(',')) const;
-       void SetValueAsString(const wxString& value, wxChar delimiter = 
wxT(','));
+class wxSVGStringList: public wxSVGStringListBase
+{
+  public:
+    wxSVGStringList() {}
+    
+    wxString GetValueAsString(wxChar delimiter = wxT(',')) const;
+    void SetValueAsString(const wxString& value, wxChar delimiter = wxT(','));
 };
 
 #endif // WX_SVG_STRING_LIST_H
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/wxsvg-1.5.20/m4/libtool.m4 new/wxsvg-1.5.22/m4/libtool.m4
--- old/wxsvg-1.5.20/m4/libtool.m4      2019-08-02 23:01:02.000000000 +0200
+++ new/wxsvg-1.5.22/m4/libtool.m4      2019-12-27 20:33:25.000000000 +0100
@@ -4063,7 +4063,8 @@
   if AC_TRY_EVAL(ac_compile); then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" 
\> $nlist) && test -s "$nlist"; then
+    $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | 
$lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+    if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> 
$nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
        mv -f "$nlist"T "$nlist"
@@ -4703,6 +4704,12 @@
        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
        _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
         ;;
+      # flang / f18. f95 an alias for gfortran or flang on Debian
+      flang* | f18* | f95*)
+       _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+       _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+       _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+        ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
       icc* | ifort*)
@@ -6438,7 +6445,7 @@
       # Commands to make compiler produce verbose output that lists
       # what "hidden" libraries, object files and flags are used when
       # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | 
$GREP -v "^Configured with:" | $GREP "\-L"'
+      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | 
$GREP -v "^Configured with:" | $GREP " \-L"'
 
     else
       GXX=no
@@ -6813,7 +6820,7 @@
             # explicitly linking system object files so we need to strip them
             # from the output so that they don't get included in the library
             # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $EGREP "\-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
+            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
             ;;
           *)
             if test yes = "$GXX"; then
@@ -6878,7 +6885,7 @@
            # explicitly linking system object files so we need to strip them
            # from the output so that they don't get included in the library
            # dependencies.
-           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $GREP "\-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
+           output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v 
conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z 
in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; 
done; func_echo_all "$list"'
            ;;
           *)
            if test yes = "$GXX"; then
@@ -7217,7 +7224,7 @@
              # Commands to make compiler produce verbose output that lists
              # what "hidden" libraries, object files and flags are used when
              # linking a shared library.
-             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+             output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
 
            else
              # FIXME: insert proper C++ library support
@@ -7301,7 +7308,7 @@
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -shared $CFLAGS -v 
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -shared $CFLAGS -v 
conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
              else
                # g++ 2.7 appears to require '-G' NOT '-shared' on this
                # platform.
@@ -7312,7 +7319,7 @@
                # Commands to make compiler produce verbose output that lists
                # what "hidden" libraries, object files and flags are used when
                # linking a shared library.
-               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
+               output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 
2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
              fi
 
              _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
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/wxsvg-1.5.20/missing new/wxsvg-1.5.22/missing
--- old/wxsvg-1.5.20/missing    2019-08-02 23:01:04.000000000 +0200
+++ new/wxsvg-1.5.22/missing    2019-12-27 20:33:29.000000000 +0100
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2013-10-28.13; # UTC
+scriptversion=2018-03-07.03; # UTC
 
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
+# Copyright (C) 1996-2018 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pin...@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -17,7 +17,7 @@
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -101,9 +101,9 @@
   exit $st
 fi
 
-perl_URL=http://www.perl.org/
-flex_URL=http://flex.sourceforge.net/
-gnu_software_URL=http://www.gnu.org/software
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
 
 program_details ()
 {
@@ -207,9 +207,9 @@
 exit $st
 
 # Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
+# eval: (add-hook 'before-save-hook 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
+# 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/wxsvg-1.5.20/scripts/conf.py new/wxsvg-1.5.22/scripts/conf.py
--- old/wxsvg-1.5.20/scripts/conf.py    1970-01-01 01:00:00.000000000 +0100
+++ new/wxsvg-1.5.22/scripts/conf.py    2019-12-27 20:33:24.000000000 +0100
@@ -0,0 +1,5 @@
+svg_home_dir = ".."
+include_dir = svg_home_dir + "/include/wxSVG"
+src_dir = svg_home_dir + "/src"
+share_dir = svg_home_dir + "/share"
+
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/wxsvg-1.5.20/scripts/genAnimated.py new/wxsvg-1.5.22/scripts/genAnimated.py
--- old/wxsvg-1.5.20/scripts/genAnimated.py     2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/genAnimated.py     2019-12-27 20:33:24.000000000 
+0100
@@ -8,7 +8,7 @@
 ## Notes:       some modules adapted from svgl project
 ##############################################################################
 
-import config
+import conf
 import cpp
 import cppHeader
 
@@ -115,5 +115,5 @@
     
     header = cppHeader.Header("SVGAnimated%s"%name, "genAnimated.py")
     header.add_content(output)
-    header.dump(path=config.include_dir)
+    header.dump(path=conf.include_dir)
 
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/wxsvg-1.5.20/scripts/genCSS.py new/wxsvg-1.5.22/scripts/genCSS.py
--- old/wxsvg-1.5.20/scripts/genCSS.py  2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/scripts/genCSS.py  2019-12-27 20:33:24.000000000 +0100
@@ -7,7 +7,7 @@
 ## Copyright:   (c) 2005 Alex Thuering
 ##############################################################################
 
-import config
+import conf
 import string
 import cpp
 import cppHeader
@@ -37,7 +37,7 @@
 
 # loads SVG11CSSpropidx.xhtml and fills cssProperties list
 def parseCSSProps():
-    doc = xml.dom.minidom.parse(config.share_dir + "/SVG11CSSpropidx.xhtml")
+    doc = xml.dom.minidom.parse(conf.share_dir + "/SVG11CSSpropidx.xhtml")
     tbody = 
doc.getElementsByTagName('html')[0].getElementsByTagName('body')[0].getElementsByTagName('table')[0].getElementsByTagName('tbody')[0]
     for tr in tbody.childNodes:
         if tr.nodeName == "tr":
@@ -312,7 +312,7 @@
     
     header = cppHeader.Header("CSSStyleDeclaration", "genCSS.py")
     header.add_content(output)
-    header.dump(path=config.include_dir)
+    header.dump(path=conf.include_dir)
 
 def getFunctionName(valueType):
     if valueType == 'wxCSS_VALUE':
@@ -357,7 +357,7 @@
     
     impl = cppImpl.Impl("css_properties", "genCSS.py")
     impl.add_content(output)
-    impl.dump(path=config.src_dir)
+    impl.dump(path=conf.src_dir)
 
 ############################### CSSValues.h ##################################
 def genValues():
@@ -383,7 +383,7 @@
     
     header = cppHeader.Header("CSSValues", "genCSS.py")
     header.add_content(output)
-    header.dump(path=config.include_dir)
+    header.dump(path=conf.include_dir)
     
     values = ''
     for value in cssValues:
@@ -398,5 +398,5 @@
 };'''%values
     impl = cppImpl.Impl("css_values", "genCSS.py")
     impl.add_content(output)
-    impl.dump(path=config.src_dir)
+    impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genGetAttribute.py 
new/wxsvg-1.5.22/scripts/genGetAttribute.py
--- old/wxsvg-1.5.20/scripts/genGetAttribute.py 2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/genGetAttribute.py 2019-12-27 20:33:24.000000000 
+0100
@@ -12,7 +12,7 @@
 import parse_idl
 import mapDtdIdl
 import string
-import config
+import conf
 import genFile
 import cpp
 import cppImpl
@@ -163,5 +163,5 @@
 
 impl = cppImpl.Impl("Elements_GetAttribute", "genGetAttribute.py")
 impl.add_content(includestr + output_cpp)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genGetAttributes.py 
new/wxsvg-1.5.22/scripts/genGetAttributes.py
--- old/wxsvg-1.5.20/scripts/genGetAttributes.py        2019-08-02 
23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/scripts/genGetAttributes.py        2019-12-27 
20:33:24.000000000 +0100
@@ -12,7 +12,7 @@
 import parse_idl
 import mapDtdIdl
 import string
-import config
+import conf
 import genFile
 import cpp
 import cppImpl
@@ -160,5 +160,5 @@
 
 impl = cppImpl.Impl("Elements_GetAttributes", "genGetAttributes.py")
 impl.add_content(includestr + output_cpp)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genHasAttribute.py 
new/wxsvg-1.5.22/scripts/genHasAttribute.py
--- old/wxsvg-1.5.20/scripts/genHasAttribute.py 2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/genHasAttribute.py 2019-12-27 20:33:24.000000000 
+0100
@@ -12,7 +12,7 @@
 import parse_idl
 import mapDtdIdl
 import string
-import config
+import conf
 import genFile
 import cpp
 import cppImpl
@@ -99,5 +99,5 @@
 
 impl = cppImpl.Impl("Elements_HasAttribute", "genHasAttribute.py")
 impl.add_content(includestr + output_cpp)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genList.py new/wxsvg-1.5.22/scripts/genList.py
--- old/wxsvg-1.5.20/scripts/genList.py 2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/scripts/genList.py 2019-12-27 20:33:24.000000000 +0100
@@ -8,7 +8,7 @@
 ## Notes:       some modules adapted from svgl project
 ##############################################################################
 
-import config
+import conf
 import genAnimated
 import cpp
 import cppHeader
@@ -24,9 +24,11 @@
     elif typename not in cpp.builtin_types:
         include = '#include "SVG%s.h"\n'%name
     
-    addParam = ""
+    addGetParam = ""
+    addSetParam = ""
     if name == "String":
-        addParam = ", wxChar delimiter = wxT(',')"
+        addGetParam = "wxChar delimiter = wxT(',')"
+        addSetParam = ", wxChar delimiter = wxT(',')"
     
     output = '''%s#include "String_wxsvg.h"
 #include <wx/dynarray.h>
@@ -37,13 +39,13 @@
   public:
     wxSVG%sList() {}
     
-    wxString GetValueAsString() const;
+    wxString GetValueAsString(%s) const;
     void SetValueAsString(const wxString& value%s);
-};'''%(include, typename, name, name, name, name, addParam)
+};'''%(include, typename, name, name, name, name, addGetParam, addSetParam)
 
     header = cppHeader.Header("SVG%sList"%name, "genList.py")
     header.add_content(output)
-    header.dump(path=config.include_dir)
+    header.dump(path=conf.include_dir)
     
     output = '''#include "SVG%sList.h"
 #include <wx/arrimpl.cpp>
@@ -61,5 +63,5 @@
 }'''%(name,name,name,name)
 #    impl = cppImpl.Impl("SVG%sList"%name, "genList.py")
 #    impl.add_content(output)
-#    impl.dump(path=config.src_dir)
+#    impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genSetAttribute.py 
new/wxsvg-1.5.22/scripts/genSetAttribute.py
--- old/wxsvg-1.5.20/scripts/genSetAttribute.py 2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/genSetAttribute.py 2019-12-27 20:33:24.000000000 
+0100
@@ -12,7 +12,7 @@
 import parse_idl
 import mapDtdIdl
 import string
-import config
+import conf
 import genFile
 import cpp
 import cppImpl
@@ -245,5 +245,5 @@
 
 impl = cppImpl.Impl("Elements_SetAttribute", "genSetAttribute.py")
 impl.add_content(includestr + output_cpp)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
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/wxsvg-1.5.20/scripts/genSvgElement.py 
new/wxsvg-1.5.22/scripts/genSvgElement.py
--- old/wxsvg-1.5.20/scripts/genSvgElement.py   2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/genSvgElement.py   2019-12-27 20:33:24.000000000 
+0100
@@ -14,7 +14,7 @@
 import cpp
 import cppHeader
 import cppImpl
-import config
+import conf
 
 translate_to_classname = {
   "Tbreak": "TBreak",
@@ -83,14 +83,14 @@
 
 impl = cppImpl.Impl("SVGDocument_CreateElement", "genSvgElement.py")
 impl.add_content(create)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
 includes = includes + '#include "SVGDocument.h"\n'
 header = cppHeader.Header("svg", "genSvgElement.py")
 header.add_content(includes)
-header.dump(path=config.include_dir)
+header.dump(path=conf.include_dir)
 
 header = cppHeader.Header("SVGDTD", "genSvgElement.py")
 header.add_content(dtdenum)
-header.dump(path=config.include_dir)
+header.dump(path=conf.include_dir)
 
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/wxsvg-1.5.20/scripts/generate.py new/wxsvg-1.5.22/scripts/generate.py
--- old/wxsvg-1.5.20/scripts/generate.py        2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/generate.py        2019-12-27 20:33:24.000000000 
+0100
@@ -29,7 +29,7 @@
 import string
 import mapDtdIdl
 import interfaces
-import config
+import conf
 import genAnimated
 import genList
 import genCSS
@@ -592,7 +592,7 @@
             output = output + '  protected:\n' + protected + '\n'
         output = output + '  public:\n' + public
         header.add_content(fwd_decl_str + includestr + output)
-        header.dump(path=config.include_dir)
+        header.dump(path=conf.include_dir)
         
         
         ############## write cpp files (disabled) ############################
@@ -610,7 +610,7 @@
 
 #include "%s.h"\n
 '''%(classname,classname) + cpp_output
-            #f = genFile.gfopen(os.path.join(config.src_dir, 
"%s.cpp"%classname),'w')
+            #f = genFile.gfopen(os.path.join(conf.src_dir, 
"%s.cpp"%classname),'w')
             #f.write(cpp_output)
 
 ###################### Generate copy constructor  ############################
@@ -619,7 +619,7 @@
     includes = includes + '#include "%s.h"\n'%include  
 impl = cppImpl.Impl("Elements_CopyConstructors", "generate.py")
 impl.add_content(includes + copy_constructor_impl)
-impl.dump(path=config.src_dir)
+impl.dump(path=conf.src_dir)
 
 ###################### Generate animated, lists, setattribute, ... ##########
 for i in used_animated:
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/wxsvg-1.5.20/scripts/interfaces.py new/wxsvg-1.5.22/scripts/interfaces.py
--- old/wxsvg-1.5.20/scripts/interfaces.py      2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/interfaces.py      2019-12-27 20:33:24.000000000 
+0100
@@ -358,6 +358,7 @@
 inter.include_methods.append('    int GetDefaultWidth(wxProgressDialog* 
progressDlg = NULL);\n')
 inter.include_methods.append('    int GetDefaultHeight(wxProgressDialog* 
progressDlg = NULL);\n')
 inter.include_methods.append('    void SetDefaultSize(wxProgressDialog* 
progressDlg = NULL);\n')
+#inter.custom_parser=1
 
 # SVGVideElement
 inter = interfaces["SVGVideoElement"]
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/wxsvg-1.5.20/scripts/parse_dtd.py new/wxsvg-1.5.22/scripts/parse_dtd.py
--- old/wxsvg-1.5.20/scripts/parse_dtd.py       2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/parse_dtd.py       2019-12-27 20:33:24.000000000 
+0100
@@ -14,9 +14,9 @@
 import re, string
 import parse_attr
 import os.path
-import config
+import conf
 
-pathtosvg=os.path.expanduser(config.share_dir + "/svg.dtd")
+pathtosvg=os.path.expanduser(conf.share_dir + "/svg.dtd")
 
 f=open(pathtosvg,'r')
 content=f.read()
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/wxsvg-1.5.20/scripts/parse_idl.py new/wxsvg-1.5.22/scripts/parse_idl.py
--- old/wxsvg-1.5.20/scripts/parse_idl.py       2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/scripts/parse_idl.py       2019-12-27 20:33:24.000000000 
+0100
@@ -12,7 +12,7 @@
 import string
 import os.path
 import idl
-import config
+import conf
 import collections
 
 try:
@@ -39,7 +39,7 @@
                        depth=depth-1
        return m.end()
 
-pathtoidl= config.share_dir+"/svg.idl"
+pathtoidl= conf.share_dir+"/svg.idl"
 
 f=open(pathtoidl, 'r')
 content = f.read()
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/wxsvg-1.5.20/src/CSSStyleDeclaration.cpp 
new/wxsvg-1.5.22/src/CSSStyleDeclaration.cpp
--- old/wxsvg-1.5.20/src/CSSStyleDeclaration.cpp        2019-08-02 
23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/src/CSSStyleDeclaration.cpp        2019-12-27 
20:33:24.000000000 +0100
@@ -340,27 +340,47 @@
        if (!value.length() || value == wxT("none"))
                return wxRGBColor();
        else if (value.GetChar(0) == wxT('#')) {
-               long r = 0, g = 0, b = 0, test;
-               if (!value.Mid(4, 1).ToLong(&test, 16)) {
+               long r = 0, g = 0, b = 0, a = 0, test;
+               if (value.length() < 5 || !value.Mid(4, 1).ToLong(&test, 16)) {
                        value.Mid(1, 1).ToLong(&r, 16);
                        value.Mid(2, 1).ToLong(&g, 16);
                        value.Mid(3, 1).ToLong(&b, 16);
                        return wxRGBColor((r << 4) | r, (g << 4) | g, (b << 4) 
| b);
-               } else {
+               } else if (value.length() < 8 || !value.Mid(7, 2).ToLong(&test, 
16)) {
                        value.Mid(1, 2).ToLong(&r, 16);
                        value.Mid(3, 2).ToLong(&g, 16);
                        value.Mid(5, 2).ToLong(&b, 16);
                        return wxRGBColor(r, g, b);
+               } else {
+                       value.Mid(1, 2).ToLong(&r, 16);
+                       value.Mid(3, 2).ToLong(&g, 16);
+                       value.Mid(5, 2).ToLong(&b, 16);
+                       value.Mid(7, 2).ToLong(&a, 16);
+                       return wxRGBColor(r, g, b, a);
                }
-       } else if (value.Left(3) == wxT("rgb")) {
-               wxStringTokenizer tkz(value.Mid(3), wxT(",()"));
+       } else if (value.Left(4) == wxT("rgba")) {
+               wxStringTokenizer tkz(value.Mid(4), wxT(",()"));
                long rgb[3] = { 0, 0, 0 };
-               for (int i = 0; tkz.HasMoreTokens() && i < 3;) {
+               double a;
+               for (int i = 0; tkz.HasMoreTokens() && i < 4;) {
                        wxString token = 
tkz.GetNextToken().Strip(wxString::both);
-                       if (token.length())
-                               token.ToLong(&rgb[i++]);
+                       if (token.length()) {
+                               if (i < 3)
+                                       token.ToLong(&rgb[i++]);
+                               else
+                                       token.ToDouble(&a);
+                       }
                }
-               return wxRGBColor(rgb[0], rgb[1], rgb[2]);
+               return wxRGBColor(rgb[0], rgb[1], rgb[2], a*255);
+       } else if (value.Left(3) == wxT("rgb")) {
+                       wxStringTokenizer tkz(value.Mid(3), wxT(",()"));
+                       long rgb[3] = { 0, 0, 0 };
+                       for (int i = 0; tkz.HasMoreTokens() && i < 3;) {
+                               wxString token = 
tkz.GetNextToken().Strip(wxString::both);
+                               if (token.length())
+                                       token.ToLong(&rgb[i++]);
+                       }
+                       return wxRGBColor(rgb[0], rgb[1], rgb[2]);
        } else {
                FillCSSColors();
                int num = s_cssColors->Index(value);
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/wxsvg-1.5.20/src/SVGCanvas.cpp new/wxsvg-1.5.22/src/SVGCanvas.cpp
--- old/wxsvg-1.5.20/src/SVGCanvas.cpp  2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/src/SVGCanvas.cpp  2019-12-27 20:33:24.000000000 +0100
@@ -348,6 +348,16 @@
                RenderChilds(elem, rect, &matrix, &style, ownerSVGElement, 
viewportElement, progressDlg);
                break;
        }
+       case wxSVG_SWITCH_ELEMENT: {
+               wxSVGGElement* element = (wxSVGGElement*) elem;
+               if (element->GetVisibility() == wxCSS_VALUE_HIDDEN)
+                       break;
+               element->UpdateMatrix(matrix);
+               style.Add(element->GetStyle());
+               style.Add(element->GetAnimStyle());
+               RenderChilds(elem, rect, &matrix, &style, ownerSVGElement, 
viewportElement, progressDlg);
+               break;
+       }
        case wxSVG_LINE_ELEMENT: {
                wxSVGLineElement* element = (wxSVGLineElement*) elem;
                if (element->GetVisibility() == wxCSS_VALUE_HIDDEN)
@@ -514,17 +524,19 @@
                        gElem->Translate(element->GetX().GetAnimVal(), 
element->GetY().GetAnimVal());
                if (refElem->GetDtd() == wxSVG_SYMBOL_ELEMENT || 
refElem->GetDtd() == wxSVG_SVG_ELEMENT) {
                        wxSVGSVGElement* svgElem;
-                       if (refElem->GetDtd() == wxSVG_SVG_ELEMENT)
+                       if (refElem->GetDtd() == wxSVG_SVG_ELEMENT) {
                                svgElem = (wxSVGSVGElement*) 
refElem->CloneNode();
-                       else {
+                       } else {
+                               wxSVGSymbolElement* symElem = 
(wxSVGSymbolElement*) refElem;
                                svgElem = new wxSVGSVGElement();
-                               wxSvgXmlElement* child = refElem->GetChildren();
+                               wxSvgXmlElement* child = symElem->GetChildren();
                                while (child) {
                                        svgElem->AddChild(child->CloneNode());
                                        child = child->GetNext();
                                }
-                               svgElem->SetViewBox(((wxSVGSymbolElement*) 
refElem)->GetViewBox());
-                               
svgElem->SetPreserveAspectRatio(((wxSVGSymbolElement*) 
refElem)->GetPreserveAspectRatio());
+                               svgElem->SetViewBox(symElem->GetViewBox());
+                               
svgElem->SetPreserveAspectRatio(symElem->GetPreserveAspectRatio());
+                               svgElem->SetStyle(element->GetStyle());
                        }
                        if (element->GetWidth().GetAnimVal().GetUnitType() != 
wxSVG_LENGTHTYPE_UNKNOWN)
                                
svgElem->SetWidth(element->GetWidth().GetAnimVal());
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/wxsvg-1.5.20/src/SVGCanvasItem.cpp new/wxsvg-1.5.22/src/SVGCanvasItem.cpp
--- old/wxsvg-1.5.20/src/SVGCanvasItem.cpp      2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/src/SVGCanvasItem.cpp      2019-12-27 20:33:24.000000000 
+0100
@@ -1430,11 +1430,13 @@
                        }
                }
 #ifdef USE_LIBAV
-               bool log = wxLog::EnableLogging(false);
-               m_image.LoadFile(filename);
-               ExifHandler::rotateImage(filename, m_image);
-               wxLog::EnableLogging(log);
-               if (!m_image.Ok()) {
+               wxString videoExt = 
".asf;.avi;.avs;.dv;.flv;.m2p;.m2ts;.mkv;.mov;.mp4;.mpeg;.mpg;.mts;.ogg;.ogm;.vob;.vro;.webm;.wmv;.m1v;.m2v;.mpv;.m4v;";
+               if (videoExt.Find("." + filename.AfterLast('.').Lower() + ";") 
== wxNOT_FOUND) {
+                       // Image file
+                       m_image.LoadFile(filename);
+                       ExifHandler::rotateImage(filename, m_image);
+               } else {
+                       // Video file
                        wxFfmpegMediaDecoder decoder;
                        if (decoder.Load(filename)) {
                                if (progressDlg) {
@@ -1471,8 +1473,8 @@
                        }
                }
 #else
-               ExifHandler::rotateImage(filename, m_image);
                m_image.LoadFile(filename);
+               ExifHandler::rotateImage(filename, m_image);
 #endif
        }
 }
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/wxsvg-1.5.20/src/SVGColor.cpp new/wxsvg-1.5.22/src/SVGColor.cpp
--- old/wxsvg-1.5.20/src/SVGColor.cpp   2019-08-02 23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/src/SVGColor.cpp   2019-12-27 20:33:24.000000000 +0100
@@ -14,8 +14,9 @@
 {
   if (m_colorType == wxSVG_COLORTYPE_UNKNOWN)
        return wxT("");
-  return wxString::Format(_T("#%02x%02x%02x"),
-       m_rgbColor.Red(), m_rgbColor.Green(), m_rgbColor.Blue());
+  return m_rgbColor.Alpha() == 255 ? wxString::Format(_T("#%02x%02x%02x"),
+       m_rgbColor.Red(), m_rgbColor.Green(), m_rgbColor.Blue())
+  : wxString::Format(_T("#%02x%02x%02x%02x"), m_rgbColor.Red(), 
m_rgbColor.Green(), m_rgbColor.Blue(), m_rgbColor.Alpha());
 }
        
 void wxSVGColor::SetRGBColor(const wxRGBColor& rgbColor)
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/wxsvg-1.5.20/src/SVGTransform.cpp new/wxsvg-1.5.22/src/SVGTransform.cpp
--- old/wxsvg-1.5.20/src/SVGTransform.cpp       2019-08-02 23:01:01.000000000 
+0200
+++ new/wxsvg-1.5.22/src/SVGTransform.cpp       2019-12-27 20:33:24.000000000 
+0100
@@ -98,11 +98,14 @@
                return;
        double params[6] = { 0, 0, 0, 0, 0, 0 };
        wxStringTokenizer tkz(value.AfterFirst(wxT('(')).BeforeLast(wxT(')')),
-                       wxT(","));
+                       wxT(", "));
        int pi = 0;
        while (tkz.HasMoreTokens() && pi < 6) {
-               tkz.GetNextToken().ToDouble(&params[pi]);
-               pi++;
+               wxString tk = tkz.GetNextToken();
+               if (tk.length()) {
+                       tk.ToDouble(&params[pi]);
+                       pi++;
+               }
        }
        if (pi == 0)
                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/wxsvg-1.5.20/src/cairo/SVGCanvasCairo.cpp 
new/wxsvg-1.5.22/src/cairo/SVGCanvasCairo.cpp
--- old/wxsvg-1.5.20/src/cairo/SVGCanvasCairo.cpp       2019-08-02 
23:01:01.000000000 +0200
+++ new/wxsvg-1.5.22/src/cairo/SVGCanvasCairo.cpp       2019-12-27 
20:33:24.000000000 +0100
@@ -245,6 +245,8 @@
                }
        } else {
                wxRGBColor color = paint.GetRGBColor();
+               if (color.Alpha() != 255)
+                       opacity = opacity * color.Alpha() / 255.0;
                cairo_set_source_rgba(cr, color.Red() / 255.0, color.Green() / 
255.0, color.Blue() / 255.0, opacity);
        }
 }
@@ -444,6 +446,27 @@
        }
 }
 
+void convertMaskRGB2Alpha(cairo_surface_t *img) {
+    cairo_surface_flush(img);
+    unsigned char *current_row = cairo_image_surface_get_data(img);
+    int stride = cairo_image_surface_get_stride(img);
+    for (int y = 0; y < cairo_image_surface_get_height(img); y++) {
+        uint32_t *row = (uint32_t*) current_row;
+        for (int x = 0; x < cairo_image_surface_get_width(img); x++) {
+               double a = (double) (row[x] >> 24) / 255;
+               double r = (double) (row[x] >> 16 & 0xFF) / 255;
+               double g = (double) (row[x] >> 8 & 0xFF) / 255;
+               double b = (double) (row[x] & 0xFF) / 255;
+               double a1 = 0.299*r + 0.587*g + 0.114*b;
+               a = a < a1 ? a : a1;
+            uint32_t a2 = a * 255;
+            row[x] = (a2 << 24) + 0xffffff;
+        }
+        current_row += stride;
+    }
+    cairo_surface_mark_dirty(img);
+}
+
 void wxSVGCanvasCairo::DrawCanvasPath(wxSVGCanvasPathCairo& canvasPath, 
wxSVGMatrix& matrix,
                const wxCSSStyleDeclaration& style, wxSVGSVGElement& svgElem) {
        // clipPath
@@ -512,6 +535,9 @@
                        RenderChilds(maskElem, NULL, &maskMatrix, &maskStyle, 
&svgElem, &svgElem, NULL);
                        m_cr = tmp;
                        
+                       // black is transparent
+                       convertMaskRGB2Alpha(maskSurface);
+                       
                        // draw surface
                        cairo_surface_t* surface = 
cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
                        cairo_t* cr = cairo_create(surface);


Reply via email to