Hello community,

here is the log from the commit of package gtkwave for openSUSE:Factory checked 
in at 2014-09-03 18:22:27
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gtkwave (Old)
 and      /work/SRC/openSUSE:Factory/.gtkwave.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gtkwave"

Changes:
--------
--- /work/SRC/openSUSE:Factory/gtkwave/gtkwave.changes  2014-07-18 
07:32:12.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.gtkwave.new/gtkwave.changes     2014-09-03 
19:56:54.000000000 +0200
@@ -1,0 +2,8 @@
+Sat Aug 30 07:13:52 UTC 2014 - [email protected]
+
+- Update to version 3.3.62
+  * bugfix release, see included ChangeLog file for details
+- Move documentation and examples to separate packages
+- Delete gtkwave-rpmlintrc
+
+-------------------------------------------------------------------

Old:
----
  gtkwave-3.3.61.tar.gz
  gtkwave-rpmlintrc

New:
----
  gtkwave-3.3.62.tar.gz

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

Other differences:
------------------
++++++ gtkwave.spec ++++++
--- /var/tmp/diff_new_pack.GpLSZW/_old  2014-09-03 19:56:56.000000000 +0200
+++ /var/tmp/diff_new_pack.GpLSZW/_new  2014-09-03 19:56:56.000000000 +0200
@@ -17,14 +17,13 @@
 
 
 Name:           gtkwave
-Version:        3.3.61
+Version:        3.3.62
 Release:        0
 Summary:        Waveform viewer for Ditital Signals
 License:        GPL-2.0+
 Group:          Productivity/Scientific/Electronics
 Url:            http://gtkwave.sourceforge.net/
 Source0:        
http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
-Source1:        gtkwave-rpmlintrc
 BuildRequires:  fdupes
 BuildRequires:  flex
 BuildRequires:  gcc-c++
@@ -36,14 +35,40 @@
 BuildRequires:  update-desktop-files
 BuildRequires:  xz-devel
 BuildRequires:  zlib-devel
-
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+Recommends:     %{name}-doc
 
 %description
 GTKWave is a waveform viewer that can view VCD files produced by most Verilog
 simulation tools, as well as LXT files produced by certain Verilog simulation
 tools.
 
+%package        doc
+Summary:        Documentation for GTKWave
+Group:          Documentation/Other
+Requires:       %{name} = %{version}
+BuildArch:      noarch
+
+%description    doc
+GTKWave is a waveform viewer that can view VCD files produced by most Verilog
+simulation tools, as well as LXT files produced by certain Verilog simulation
+tools.
+
+This package contains documentation for GTKWave
+
+%package        examples
+Summary:        Examples for GTKWave
+Group:          Documentation/Other
+Requires:       %{name} = %{version}
+BuildArch:      noarch
+
+%description    examples
+GTKWave is a waveform viewer that can view VCD files produced by most Verilog
+simulation tools, as well as LXT files produced by certain Verilog simulation
+tools.
+
+This package contains examples for GTKWave
+
 %prep
 %setup -q
 
@@ -54,7 +79,7 @@
 make %{?_smp_mflags}
 
 %install
-%makeinstall
+%make_install
 
 install -D -m 644 share/icons/gnome/16x16/mimetypes/gtkwave.png 
%{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gtkwave.png
 install -D -m 644 share/icons/gnome/32x32/mimetypes/gtkwave.png 
%{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gtkwave.png
@@ -65,19 +90,22 @@
 # non OSI compliant files [bnc#783166]
 rm -r %{buildroot}%{_datadir}/%{name}/examples/des*
 
-%fdupes %{buildroot}/%{_datadir}/icons/
+# move documentation
+install -d %{buildroot}%{_docdir}/%{name}/
+mv %{buildroot}%{_datadir}/%{name}/gtkwave.odt %{buildroot}%{_docdir}/%{name}/
+# move examples
+mv %{buildroot}%{_datadir}/%{name}/examples %{buildroot}%{_docdir}/%{name}/
 
-%clean
-rm -rf %{buildroot}
+%fdupes %{buildroot}/%{_datadir}/icons/
 
 %files
 %defattr(-,root,root,-)
 %doc ChangeLog README COPYING LICENSE.TXT
-%{_datadir}/gtkwave/*
+%exclude %{_docdir}/%{name}/gtkwave.odt
+%exclude %{_docdir}/%{name}/examples/
 %{_bindir}/*
 %{_mandir}/man1/*
 %{_mandir}/man5/*
-%dir %{_datadir}/gtkwave
 %{_datadir}/applications/%{name}.desktop
 %dir %{_datadir}/icons/gnome/
 %dir %{_datadir}/icons/gnome/*x*/
@@ -87,4 +115,12 @@
 %{_datadir}/icons/hicolor/*/apps/%{name}.png
 %{_datadir}/mime/packages/x-gtkwave-extension*.xml
 
+%files doc
+%defattr(-,root,root,-)
+%doc %{_docdir}/%{name}/gtkwave.odt
+
+%files examples
+%defattr(-,root,root,-)
+%doc %{_docdir}/%{name}/examples/
+
 %changelog

++++++ gtkwave-3.3.61.tar.gz -> gtkwave-3.3.62.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/ChangeLog new/gtkwave-3.3.62/ChangeLog
--- old/gtkwave-3.3.61/ChangeLog        2014-07-17 23:40:47.000000000 +0200
+++ new/gtkwave-3.3.62/ChangeLog        2014-08-29 20:12:07.000000000 +0200
@@ -1480,3 +1480,7 @@
                Updated LZ4 for version r118.
                Fixed broken VCD/TIM export in Windows (broken by new file
                requester).
+3.3.62 29aug14 Added zoom_full, zoom_size, and move_to_time to the dbus
+               interface (dbus enabled by --with-gconf).
+               Updated LZ4 to version r120 (r121 files are the same).
+               Compiler warnings fixes for gtk+-1.2 (-Wall -Wshadow -Wextra).
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/LICENSE.TXT 
new/gtkwave-3.3.62/LICENSE.TXT
--- old/gtkwave-3.3.61/LICENSE.TXT      2014-06-24 15:17:27.000000000 +0200
+++ new/gtkwave-3.3.62/LICENSE.TXT      2014-07-18 00:57:58.000000000 +0200
@@ -1,6 +1,6 @@
 ##########################################################################
 
-GTKWave 3.3.61 Wave Viewer is Copyright (C) 1999-2014 Tony Bybell.  
+GTKWave 3.3.62 Wave Viewer is Copyright (C) 1999-2014 Tony Bybell.  
 Portions of GTKWave are Copyright (C) 1999-2014 Udi Finkelstein. 
 Context support is Copyright (C) 2007-2014 Kermin Elliott Fleming.
 Trace group support is  Copyright (C) 2009-2014 Donald Baltus.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/configure new/gtkwave-3.3.62/configure
--- old/gtkwave-3.3.61/configure        2014-06-24 21:40:22.000000000 +0200
+++ new/gtkwave-3.3.62/configure        2014-08-11 02:05:26.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for gtkwave 3.3.61.
+# Generated by GNU Autoconf 2.69 for gtkwave 3.3.62.
 #
 # Report bugs to <[email protected]>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='gtkwave'
 PACKAGE_TARNAME='gtkwave'
-PACKAGE_VERSION='3.3.61'
-PACKAGE_STRING='gtkwave 3.3.61'
+PACKAGE_VERSION='3.3.62'
+PACKAGE_STRING='gtkwave 3.3.62'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1383,7 +1383,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 gtkwave 3.3.61 to adapt to many kinds of systems.
+\`configure' configures gtkwave 3.3.62 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1449,7 +1449,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gtkwave 3.3.61:";;
+     short | recursive ) echo "Configuration of gtkwave 3.3.62:";;
    esac
   cat <<\_ACEOF
 
@@ -1595,7 +1595,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gtkwave configure 3.3.61
+gtkwave configure 3.3.62
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2239,7 +2239,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by gtkwave $as_me 3.3.61, which was
+It was created by gtkwave $as_me 3.3.62, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3106,7 +3106,7 @@
 
 # Define the identity of the package.
  PACKAGE='gtkwave'
- VERSION='3.3.61'
+ VERSION='3.3.62'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -10992,7 +10992,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by gtkwave $as_me 3.3.61, which was
+This file was extended by gtkwave $as_me 3.3.62, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11058,7 +11058,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-gtkwave config.status 3.3.61
+gtkwave config.status 3.3.62
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/configure.ac 
new/gtkwave-3.3.62/configure.ac
--- old/gtkwave-3.3.61/configure.ac     2014-06-24 21:40:22.000000000 +0200
+++ new/gtkwave-3.3.62/configure.ac     2014-07-18 00:57:58.000000000 +0200
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT(gtkwave, 3.3.61, [email protected])
+AC_INIT(gtkwave, 3.3.62, [email protected])
 AC_CONFIG_SRCDIR([src/vcd.c])
 AM_INIT_AUTOMAKE
 AC_CONFIG_HEADER([config.h])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/gtkwave-3.3.61/contrib/bundle_for_osx/Info-gtkwave.plist 
new/gtkwave-3.3.62/contrib/bundle_for_osx/Info-gtkwave.plist
--- old/gtkwave-3.3.61/contrib/bundle_for_osx/Info-gtkwave.plist        
2014-03-21 19:23:34.000000000 +0100
+++ new/gtkwave-3.3.62/contrib/bundle_for_osx/Info-gtkwave.plist        
2014-07-18 00:57:58.000000000 +0200
@@ -8,7 +8,7 @@
     <key>CFBundleExecutable</key>
     <string>gtkwave</string>
     <key>CFBundleGetInfoString</key>
-    <string>3.3.59, (C) 1999-2014 Tony Bybell 
http://gtkwave.sourceforge.net</string>
+    <string>3.3.62, (C) 1999-2014 Tony Bybell 
http://gtkwave.sourceforge.net</string>
     <key>CFBundleIconFile</key>
     <string>gtkwave.icns</string>
     <key>CFBundleIdentifier</key>
@@ -18,11 +18,11 @@
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleShortVersionString</key>
-    <string>3.3.59</string>
+    <string>3.3.62</string>
     <key>CFBundleSignature</key>
     <string>????</string>
     <key>CFBundleVersion</key>
-    <string>3.3.59</string>
+    <string>3.3.62</string>
     <key>NSHumanReadableCopyright</key>
     <string>Copyright 1999 - 2014 Tony Bybell, GNU General Public 
License.</string>
     <key>LSMinimumSystemVersion</key>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/contrib/rtlbrowse/logfile.c 
new/gtkwave-3.3.62/contrib/rtlbrowse/logfile.c
--- old/gtkwave-3.3.61/contrib/rtlbrowse/logfile.c      2014-07-14 
15:06:05.000000000 +0200
+++ new/gtkwave-3.3.62/contrib/rtlbrowse/logfile.c      2014-08-11 
02:38:54.000000000 +0200
@@ -83,8 +83,10 @@
 
 static struct text_find_t *text_root = NULL;
 static struct text_find_t *selected_text_via_tab = NULL;
+#if defined(WAVE_USE_GTK2)
 static GtkWidget *matchcase_checkbutton = NULL;
 static gboolean matchcase_active = FALSE;
+#endif
 static char *fontname_logfile = NULL;
 
 /* Add some text to our text widget - this is a callback that is invoked
@@ -821,13 +823,13 @@
 struct logfile_context_t *ctx = (struct logfile_context_t *)data;
 GtkWidget *text = (GtkWidget *)widget;
 gchar *sel = NULL;
-gchar *sel2 = NULL;
-char ch;
 
 #if defined(WAVE_USE_GTK2) && !defined(GTK_ENABLE_BROKEN)
+gchar *sel2 = NULL;
 GtkTextIter start;
 GtkTextIter end;
 int ok = 0;
+char ch;
 
 if((!text)||(!ctx)) return;
 
@@ -1618,6 +1620,7 @@
 }
 
 
+#if defined(WAVE_USE_GTK2)
 static gint destroy_via_closebutton_release(GtkWidget *widget, GdkEventButton 
*event)
 {
 
if((event->x<0)||(event->x>=widget->allocation.width)||(event->y<0)||(event->y>=widget->allocation.height))
@@ -1631,8 +1634,7 @@
 
 return(TRUE);
 }
-
-
+#endif
 
 void bwlogbox(char *title, int width, ds_Tree *t, int display_mode)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/contrib/vermin/shred.c 
new/gtkwave-3.3.62/contrib/vermin/shred.c
--- old/gtkwave-3.3.61/contrib/vermin/shred.c   2014-03-01 23:50:23.000000000 
+0100
+++ new/gtkwave-3.3.62/contrib/vermin/shred.c   2014-08-11 02:38:54.000000000 
+0200
@@ -7,7 +7,7 @@
 #include "symbol.h"
 
 #ifndef DEBUG_SHRED
-void DEBUG(char *dummy, ...) { }
+void DEBUG(char *dummy, ...) { (void)dummy; }
 #endif
 
 void **shred_root=NULL, **shred_pnt=NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/file.c 
new/gtkwave-3.3.62/src/file.c
--- old/gtkwave-3.3.61/src/file.c       2014-07-17 23:40:47.000000000 +0200
+++ new/gtkwave-3.3.62/src/file.c       2014-08-11 02:38:54.000000000 +0200
@@ -300,8 +300,8 @@
 void fileselbox(char *title, char **filesel_path, GtkSignalFunc ok_func, 
GtkSignalFunc notok_func, char *pattn, int is_writemode)
 {
 #ifndef MAC_INTEGRATION
-int can_set_filename = 0;
 #if GTK_CHECK_VERSION(2,4,0)
+int can_set_filename = 0;
 GtkWidget *pFileChoose;
 GtkWidget *pWindowMain;
 GtkFileFilter *filter;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/gconf.c 
new/gtkwave-3.3.62/src/gconf.c
--- old/gtkwave-3.3.61/src/gconf.c      2014-07-17 04:19:01.000000000 +0200
+++ new/gtkwave-3.3.62/src/gconf.c      2014-08-20 00:08:35.000000000 +0200
@@ -114,6 +114,36 @@
 
 
 static void
+zoomfull_callback(GConfClient* gclient,
+                     guint cnxn_id,
+                     GConfEntry *entry,
+                     gpointer user_data)
+{
+(void)gclient;
+(void)cnxn_id;
+(void)user_data;
+
+  if (gconf_entry_get_value (entry) == NULL)
+    {
+      /* value is unset */
+    }
+  else
+    {
+      if (gconf_entry_get_value (entry)->type == GCONF_VALUE_STRING)
+        {
+         if(in_main_iteration()) return;
+         service_zoom_full(NULL, NULL);
+         gconf_entry_set_value(entry, NULL);
+        }
+      else
+        {
+          /* value is of wrong type */
+        }
+    }
+}
+
+
+static void
 writesave_callback(GConfClient* gclient,
                      guint cnxn_id,
                      GConfEntry *entry,
@@ -170,6 +200,84 @@
     }
 }
 
+
+static void
+move_to_time_callback(GConfClient* gclient,
+                     guint cnxn_id,
+                     GConfEntry *entry,
+                     gpointer user_data)
+{
+(void)gclient;
+(void)cnxn_id;
+(void)user_data;
+
+  if (gconf_entry_get_value (entry) == NULL)
+    {
+      /* value is unset */
+    }
+  else
+    {
+      if (gconf_entry_get_value (entry)->type == GCONF_VALUE_STRING)
+        {
+         const char *str = gconf_value_get_string (gconf_entry_get_value 
(entry));
+         if(str && !in_main_iteration())
+               {
+               char *e_copy = GLOBALS->entrybox_text;
+               GLOBALS->entrybox_text=strdup_2(str);
+
+               movetotime_cleanup(NULL, NULL);
+
+               GLOBALS->entrybox_text = e_copy;
+               }
+
+         gconf_entry_set_value(entry, NULL);
+        }
+      else
+        {
+          /* value is of wrong type */
+        }
+    }
+}
+
+
+static void
+zoom_size_callback(GConfClient* gclient,
+                     guint cnxn_id,
+                     GConfEntry *entry,
+                     gpointer user_data)
+{
+(void)gclient;
+(void)cnxn_id;
+(void)user_data;
+
+  if (gconf_entry_get_value (entry) == NULL)
+    {
+      /* value is unset */
+    }
+  else
+    {
+      if (gconf_entry_get_value (entry)->type == GCONF_VALUE_STRING)
+        {
+         const char *str = gconf_value_get_string (gconf_entry_get_value 
(entry));
+         if(str && !in_main_iteration())
+               {
+               char *e_copy = GLOBALS->entrybox_text;
+               GLOBALS->entrybox_text=strdup_2(str);
+
+               zoomsize_cleanup(NULL, NULL);
+
+               GLOBALS->entrybox_text = e_copy;
+               }
+
+         gconf_entry_set_value(entry, NULL);
+        }
+      else
+        {
+          /* value is of wrong type */
+        }
+    }
+}
+
 /************************************************************/
 
 static void remove_client(void)
@@ -220,6 +328,24 @@
                                  reload_callback,
                                  NULL, /* user data */
                                  NULL, NULL);
+
+       strcpy(ks + len, "/zoom_full");
+       gconf_client_notify_add(client, ks,
+                                 zoomfull_callback,
+                                 NULL, /* user data */
+                                 NULL, NULL);
+
+       strcpy(ks + len, "/move_to_time");
+       gconf_client_notify_add(client, ks,
+                                 move_to_time_callback,
+                                 NULL, /* user data */
+                                 NULL, NULL);
+
+       strcpy(ks + len, "/zoom_size");
+       gconf_client_notify_add(client, ks,
+                                 zoom_size_callback,
+                                 NULL, /* user data */
+                                 NULL, NULL);
        }
 }
 
@@ -322,7 +448,11 @@
 gconftool-2 --type string --set /com.geda.gtkwave/0/writesave +
 
 gconftool-2 --type string --set /com.geda.gtkwave/0/quit 0
-
 gconftool-2 --type string --set /com.geda.gtkwave/0/reload 0
 
+gconftool-2 --type string --set /com.geda.gtkwave/0/zoom_full 0
+gconftool-2 --type string --set /com.geda.gtkwave/0/zoom_size -- -4.6
+gconftool-2 --type string --set /com.geda.gtkwave/0/move_to_time 123ns
+gconftool-2 --type string --set /com.geda.gtkwave/0/move_to_time A
+
 */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/globals.c 
new/gtkwave-3.3.62/src/globals.c
--- old/gtkwave-3.3.61/src/globals.c    2014-06-24 15:17:27.000000000 +0200
+++ new/gtkwave-3.3.62/src/globals.c    2014-08-11 02:38:54.000000000 +0200
@@ -1552,11 +1552,13 @@
  FILE *statefile;
  struct Global *new_globals;
  /* gint tree_frame_x = -1; */ /* scan-build */
+#if WAVE_USE_GTK2
  gint tree_frame_y = -1;
  gdouble tree_vadj_value = 0.0;
  gdouble tree_hadj_value = 0.0;
  gdouble treeview_vadj_value = 0.0;
  gdouble treeview_hadj_value = 0.0;
+#endif
  int fix_from_time = 0, fix_to_time = 0;
  TimeType from_time = LLDescriptor(0), to_time = LLDescriptor(0);
  char timestr[32];
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/helpers/fst/lz4.c 
new/gtkwave-3.3.62/src/helpers/fst/lz4.c
--- old/gtkwave-3.3.61/src/helpers/fst/lz4.c    2014-06-27 19:55:20.000000000 
+0200
+++ new/gtkwave-3.3.62/src/helpers/fst/lz4.c    2014-07-28 20:58:49.000000000 
+0200
@@ -55,6 +55,8 @@
 #else
 #  define LZ4_ARCH64 0
 #endif
+#define LZ4_32BITS (sizeof(void*)==4)
+#define LZ4_64BITS (sizeof(void*)==8)
 
 /*
  * Little Endian or Big Endian ?
@@ -298,7 +300,7 @@
 ****************************/
 #if LZ4_ARCH64
 
-int LZ4_NbCommonBytes (register U64 val)
+static int LZ4_NbCommonBytes (register U64 val)
 {
 # if defined(LZ4_BIG_ENDIAN)
 #   if defined(_MSC_VER) && !defined(LZ4_FORCE_SW_BITCOUNT)
@@ -330,7 +332,7 @@
 
 #else
 
-int LZ4_NbCommonBytes (register U32 val)
+static int LZ4_NbCommonBytes (register U32 val)
 {
 # if defined(LZ4_BIG_ENDIAN)
 #   if defined(_MSC_VER) && !defined(LZ4_FORCE_SW_BITCOUNT)
@@ -365,6 +367,7 @@
 /********************************
    Compression functions
 ********************************/
+int LZ4_versionNumber (void) { return LZ4_VERSION_NUMBER; }
 int LZ4_compressBound(int isize)  { return LZ4_COMPRESSBOUND(isize); }
 
 static int LZ4_hashSequence(U32 sequence, tableType_t tableType)
@@ -417,7 +420,7 @@
         pIn += LZ4_NbCommonBytes(diff);
         return (unsigned)(pIn - pStart);
     }
-    if (sizeof(void*)==8) if ((pIn<(pInLimit-3)) && (A32(pRef) == A32(pIn))) { 
pIn+=4; pRef+=4; }
+    if (LZ4_64BITS) if ((pIn<(pInLimit-3)) && (A32(pRef) == A32(pIn))) { 
pIn+=4; pRef+=4; }
     if ((pIn<(pInLimit-1)) && (A16(pRef) == A16(pIn))) { pIn+=2; pRef+=2; }
     if ((pIn<pInLimit) && (*pRef == *pIn)) pIn++;
 
@@ -499,7 +502,6 @@
                 ip = forwardIp;
                 forwardIp += step;
                 step = searchMatchNb++ >> skipStrength;
-                //if (step>8) step=8;   // required for valid forwardIp ; 
slows down uncompressible data a bit
 
                 if (unlikely(forwardIp > mflimit)) goto _last_literals;
 
@@ -651,7 +653,7 @@
     if (inputSize < (int)LZ4_64KLIMIT)
         result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 0, 
notLimited, byU16, noDict, noDictIssue);
     else
-        result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 0, 
notLimited, (sizeof(void*)==8) ? byU32 : byPtr, noDict, noDictIssue);
+        result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 0, 
notLimited, LZ4_64BITS ? byU32 : byPtr, noDict, noDictIssue);
 
 #if (HEAPMODE)
     FREEMEM(ctx);
@@ -671,7 +673,7 @@
     if (inputSize < (int)LZ4_64KLIMIT)
         result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 
maxOutputSize, limitedOutput, byU16, noDict, noDictIssue);
     else
-        result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 
maxOutputSize, limitedOutput, (sizeof(void*)==8) ? byU32 : byPtr, noDict, 
noDictIssue);
+        result = LZ4_compress_generic((void*)ctx, source, dest, inputSize, 
maxOutputSize, limitedOutput, LZ4_64BITS ? byU32 : byPtr, noDict, noDictIssue);
 
 #if (HEAPMODE)
     FREEMEM(ctx);
@@ -684,29 +686,39 @@
    Experimental : Streaming functions
 *****************************************/
 
-void* LZ4_createStream()
+/*
+ * LZ4_initStream
+ * Use this function once, to init a newly allocated LZ4_stream_t structure
+ * Return : 1 if OK, 0 if error
+ */
+void LZ4_resetStream (LZ4_stream_t* LZ4_stream)
+{
+    MEM_INIT(LZ4_stream, 0, sizeof(LZ4_stream_t));
+}
+
+LZ4_stream_t* LZ4_createStream(void)
 {
-    void* lz4s = ALLOCATOR(4, LZ4_STREAMSIZE_U32);
-    MEM_INIT(lz4s, 0, LZ4_STREAMSIZE);
+    LZ4_stream_t* lz4s = (LZ4_stream_t*)ALLOCATOR(4, LZ4_STREAMSIZE_U32);
+    LZ4_resetStream(lz4s);
     return lz4s;
 }
 
-int LZ4_free (void* LZ4_stream)
+int LZ4_freeStream (LZ4_stream_t* LZ4_stream)
 {
     FREEMEM(LZ4_stream);
     return (0);
 }
 
 
-int LZ4_loadDict (void* LZ4_dict, const char* dictionary, int dictSize)
+int LZ4_loadDict (LZ4_stream_t* LZ4_dict, const char* dictionary, int dictSize)
 {
     LZ4_stream_t_internal* dict = (LZ4_stream_t_internal*) LZ4_dict;
     const BYTE* p = (const BYTE*)dictionary;
     const BYTE* const dictEnd = p + dictSize;
     const BYTE* base;
 
-    LZ4_STATIC_ASSERT(LZ4_STREAMSIZE >= sizeof(LZ4_stream_t_internal));      
/* A compilation error here means LZ4_STREAMSIZE is not large enough */
-    if (dict->initCheck) MEM_INIT(dict, 0, sizeof(LZ4_stream_t_internal));   
/* Uninitialized structure detected */
+    LZ4_STATIC_ASSERT(LZ4_STREAMSIZE >= sizeof(LZ4_stream_t_internal));    /* 
A compilation error here means LZ4_STREAMSIZE is not large enough */
+    if (dict->initCheck) LZ4_resetStream(LZ4_dict);                         /* 
Uninitialized structure detected */
 
     if (dictSize < MINMATCH)
     {
@@ -731,7 +743,7 @@
 }
 
 
-void LZ4_renormDictT(LZ4_stream_t_internal* LZ4_dict, const BYTE* src)
+static void LZ4_renormDictT(LZ4_stream_t_internal* LZ4_dict, const BYTE* src)
 {
     if ((LZ4_dict->currentOffset > 0x80000000) ||
         ((size_t)LZ4_dict->currentOffset > (size_t)src))   /* address space 
overflow */
@@ -802,19 +814,18 @@
     }
 }
 
-
-int LZ4_compress_continue (void* LZ4_stream, const char* source, char* dest, 
int inputSize)
+int LZ4_compress_continue (LZ4_stream_t* LZ4_stream, const char* source, char* 
dest, int inputSize)
 {
     return LZ4_compress_continue_generic(LZ4_stream, source, dest, inputSize, 
0, notLimited);
 }
 
-int LZ4_compress_limitedOutput_continue (void* LZ4_stream, const char* source, 
char* dest, int inputSize, int maxOutputSize)
+int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_stream, const char* 
source, char* dest, int inputSize, int maxOutputSize)
 {
     return LZ4_compress_continue_generic(LZ4_stream, source, dest, inputSize, 
maxOutputSize, limitedOutput);
 }
 
 
-// Hidden debug function, to force separate dictionary mode
+/* Hidden debug function, to force separate dictionary mode */
 int LZ4_compress_forceExtDict (LZ4_stream_t* LZ4_dict, const char* source, 
char* dest, int inputSize)
 {
     LZ4_stream_t_internal* streamPtr = (LZ4_stream_t_internal*)LZ4_dict;
@@ -835,7 +846,7 @@
 }
 
 
-int LZ4_saveDict (void* LZ4_dict, char* safeBuffer, int dictSize)
+int LZ4_saveDict (LZ4_stream_t* LZ4_dict, char* safeBuffer, int dictSize)
 {
     LZ4_stream_t_internal* dict = (LZ4_stream_t_internal*) LZ4_dict;
     const BYTE* previousDictEnd = dict->dictionary + dict->dictSize;
@@ -888,20 +899,16 @@
     const BYTE* const lowLimit = (const BYTE*)dest - dictSize;
 
     const BYTE* const dictEnd = (const BYTE*)dictStart + dictSize;
-//#define OLD
-#ifdef OLD
-    const size_t dec32table[] = {0, 3, 2, 3, 0, 0, 0, 0};   /* static reduces 
speed for LZ4_decompress_safe() on GCC64 */
-#else
-    const size_t dec32table[] = {4-0, 4-3, 4-2, 4-3, 4-0, 4-0, 4-0, 4-0};   /* 
static reduces speed for LZ4_decompress_safe() on GCC64 */
-#endif
+    const size_t dec32table[] = {4-0, 4-3, 4-2, 4-3, 4-0, 4-0, 4-0, 4-0};   /* 
note : static reduces speed for LZ4_decompress_safe() on GCC64 */
     static const size_t dec64table[] = {0, 0, 0, (size_t)-1, 0, 1, 2, 3};
 
-    const int checkOffset = (endOnInput) && (dictSize < (int)(64 KB));
+    const int safeDecode = (endOnInput==endOnInputSize);
+    const int checkOffset = ((safeDecode) && (dictSize < (int)(64 KB)));
 
 
     /* Special cases */
-    if ((partialDecoding) && (oexit> oend-MFLIMIT)) oexit = oend-MFLIMIT;      
                  /* targetOutputSize too high => decode everything */
-    if ((endOnInput) && (unlikely(outputSize==0))) return ((inputSize==1) && 
(*ip==0)) ? 0 : -1;   /* Empty output buffer */
+    if ((partialDecoding) && (oexit> oend-MFLIMIT)) oexit = oend-MFLIMIT;      
                   /* targetOutputSize too high => decode everything */
+    if ((endOnInput) && (unlikely(outputSize==0))) return ((inputSize==1) && 
(*ip==0)) ? 0 : -1;  /* Empty output buffer */
     if ((!endOnInput) && (unlikely(outputSize==0))) return (*ip==0?1:-1);
 
 
@@ -922,7 +929,8 @@
                 length += s;
             }
             while (likely((endOnInput)?ip<iend-RUN_MASK:1) && (s==255));
-            if ((sizeof(void*)==4) && unlikely(length>LZ4_MAX_INPUT_SIZE)) 
goto _output_error;   /* overflow detection */
+            if ((safeDecode) && LZ4_32BITS && 
unlikely((size_t)(op+length)<(size_t)(op))) goto _output_error;   /* overflow 
detection */
+            if ((safeDecode) && LZ4_32BITS && 
unlikely((size_t)(ip+length)<(size_t)(ip))) goto _output_error;   /* overflow 
detection */
         }
 
         /* copy literals */
@@ -943,7 +951,7 @@
             memcpy(op, ip, length);
             ip += length;
             op += length;
-            break;                                       /* Necessarily EOF, 
due to parsing restrictions */
+            break;     /* Necessarily EOF, due to parsing restrictions */
         }
         LZ4_WILDCOPY(op, ip, cpy); ip -= (op-cpy); op = cpy;
 
@@ -957,11 +965,11 @@
             unsigned s;
             do
             {
-                if (endOnInput && (ip > iend-LASTLITERALS)) goto _output_error;
+                if ((endOnInput) && (ip > iend-LASTLITERALS)) goto 
_output_error;
                 s = *ip++;
                 length += s;
             } while (s==255);
-            if ((sizeof(void*)==4) && unlikely(length>LZ4_MAX_INPUT_SIZE)) 
goto _output_error;   /* overflow detection */
+            if ((safeDecode) && LZ4_32BITS && 
unlikely((size_t)(op+length)<(size_t)op)) goto _output_error;   /* overflow 
detection */
         }
 
         /* check external dictionary */
@@ -983,9 +991,9 @@
                 copySize = length+MINMATCH - copySize;
                 if (copySize > (size_t)((char*)op-dest))   /* overlap */
                 {
-                    BYTE* const cpy = op + copySize;
-                    const BYTE* ref = (BYTE*)dest;
-                    while (op < cpy) *op++ = *ref++;
+                    BYTE* const endOfMatch = op + copySize;
+                    const BYTE* copyFrom = (BYTE*)dest;
+                    while (op < endOfMatch) *op++ = *copyFrom++;
                 }
                 else
                 {
@@ -999,20 +1007,14 @@
         /* copy repeated sequence */
         if (unlikely((op-ref)<(int)STEPSIZE))
         {
-            const size_t dec64 = dec64table[(sizeof(void*)==4) ? 0 : op-ref];
+            const size_t dec64 = dec64table[LZ4_32BITS ? 0 : op-ref];
             op[0] = ref[0];
             op[1] = ref[1];
             op[2] = ref[2];
             op[3] = ref[3];
-#ifdef OLD
-            op += 4, ref += 4; ref -= dec32table[op-ref];
-            A32(op) = A32(ref);
-            op += STEPSIZE-4; ref -= dec64;
-#else
             ref += dec32table[op-ref];
             A32(op+4) = A32(ref);
             op += STEPSIZE; ref -= dec64;
-#endif
         } else { LZ4_COPYSTEP(op,ref); }
         cpy = op + length - (STEPSIZE-4);
 
@@ -1040,26 +1042,23 @@
 }
 
 
-int LZ4_decompress_safe(const char* source, char* dest, int compressedSize, 
int maxOutputSize)
+int LZ4_decompress_safe(const char* source, char* dest, int compressedSize, 
int maxDecompressedSize)
 {
-    return LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, 
endOnInputSize, full, 0, noDict, NULL, 0);
+    return LZ4_decompress_generic(source, dest, compressedSize, 
maxDecompressedSize, endOnInputSize, full, 0, noDict, NULL, 0);
 }
 
-int LZ4_decompress_safe_partial(const char* source, char* dest, int 
compressedSize, int targetOutputSize, int maxOutputSize)
+int LZ4_decompress_safe_partial(const char* source, char* dest, int 
compressedSize, int targetOutputSize, int maxDecompressedSize)
 {
-    return LZ4_decompress_generic(source, dest, compressedSize, maxOutputSize, 
endOnInputSize, partial, targetOutputSize, noDict, NULL, 0);
+    return LZ4_decompress_generic(source, dest, compressedSize, 
maxDecompressedSize, endOnInputSize, partial, targetOutputSize, noDict, NULL, 
0);
 }
 
 int LZ4_decompress_fast(const char* source, char* dest, int originalSize)
 {
-    return LZ4_decompress_generic(source, dest, 0, originalSize, 
endOnOutputSize, full, 0, withPrefix64k, NULL, 0);
+    return LZ4_decompress_generic(source, dest, 0, originalSize, 
endOnOutputSize, full, 0, withPrefix64k, NULL, 64 KB);
 }
 
 /* streaming decompression functions */
 
-//#define LZ4_STREAMDECODESIZE_U32 4
-//#define LZ4_STREAMDECODESIZE     (LZ4_STREAMDECODESIZE_U32 * sizeof(unsigned 
int))
-//typedef struct { unsigned int table[LZ4_STREAMDECODESIZE_U32]; } 
LZ4_streamDecode_t;
 typedef struct
 {
     const char* dictionary;
@@ -1071,21 +1070,27 @@
  * LZ4_createStreamDecode()
  * provides a pointer (void*) towards an initialized LZ4_streamDecode_t 
structure.
  */
-void* LZ4_createStreamDecode()
+LZ4_streamDecode_t* LZ4_createStreamDecode(void)
 {
-    void* lz4s = ALLOCATOR(sizeof(U32), LZ4_STREAMDECODESIZE_U32);
+    LZ4_streamDecode_t* lz4s = (LZ4_streamDecode_t*) ALLOCATOR(sizeof(U32), 
LZ4_STREAMDECODESIZE_U32);
     MEM_INIT(lz4s, 0, LZ4_STREAMDECODESIZE);
     return lz4s;
 }
 
+int LZ4_freeStreamDecode (LZ4_streamDecode_t* LZ4_stream)
+{
+    FREEMEM(LZ4_stream);
+    return 0;
+}
+
 /*
- * LZ4_setDictDecode
+ * LZ4_setStreamDecode
  * Use this function to instruct where to find the dictionary
  * This function is not necessary if previous data is still available where it 
was decoded.
  * Loading a size of 0 is allowed (same effect as no dictionary).
  * Return : 1 if OK, 0 if error
  */
-int LZ4_setDictDecode (void* LZ4_streamDecode, const char* dictionary, int 
dictSize)
+int LZ4_setStreamDecode (LZ4_streamDecode_t* LZ4_streamDecode, const char* 
dictionary, int dictSize)
 {
     LZ4_streamDecode_t_internal* lz4sd = (LZ4_streamDecode_t_internal*) 
LZ4_streamDecode;
     lz4sd->dictionary = dictionary;
@@ -1100,7 +1105,7 @@
     If it's not possible, save the relevant part of decoded data into a safe 
buffer,
     and indicate where it stands using LZ4_setDictDecode()
 */
-int LZ4_decompress_safe_continue (void* LZ4_streamDecode, const char* source, 
char* dest, int compressedSize, int maxOutputSize)
+int LZ4_decompress_safe_continue (LZ4_streamDecode_t* LZ4_streamDecode, const 
char* source, char* dest, int compressedSize, int maxOutputSize)
 {
     LZ4_streamDecode_t_internal* lz4sd = (LZ4_streamDecode_t_internal*) 
LZ4_streamDecode;
     int result;
@@ -1120,7 +1125,7 @@
     return result;
 }
 
-int LZ4_decompress_fast_continue (void* LZ4_streamDecode, const char* source, 
char* dest, int originalSize)
+int LZ4_decompress_fast_continue (LZ4_streamDecode_t* LZ4_streamDecode, const 
char* source, char* dest, int originalSize)
 {
     LZ4_streamDecode_t_internal* lz4sd = (LZ4_streamDecode_t_internal*) 
LZ4_streamDecode;
     int result;
@@ -1176,7 +1181,7 @@
 
 int LZ4_sizeofStreamState() { return LZ4_STREAMSIZE; }
 
-void LZ4_init(LZ4_stream_t_internal* lz4ds, const BYTE* base)
+static void LZ4_init(LZ4_stream_t_internal* lz4ds, const BYTE* base)
 {
     MEM_INIT(lz4ds, 0, LZ4_STREAMSIZE);
     lz4ds->bufferStart = base;
@@ -1217,7 +1222,7 @@
     if (inputSize < (int)LZ4_64KLIMIT)
         return LZ4_compress_generic(state, source, dest, inputSize, 0, 
notLimited, byU16, noDict, noDictIssue);
     else
-        return LZ4_compress_generic(state, source, dest, inputSize, 0, 
notLimited, (sizeof(void*)==8) ? byU32 : byPtr, noDict, noDictIssue);
+        return LZ4_compress_generic(state, source, dest, inputSize, 0, 
notLimited, LZ4_64BITS ? byU32 : byPtr, noDict, noDictIssue);
 }
 
 int LZ4_compress_limitedOutput_withState (void* state, const char* source, 
char* dest, int inputSize, int maxOutputSize)
@@ -1228,7 +1233,7 @@
     if (inputSize < (int)LZ4_64KLIMIT)
         return LZ4_compress_generic(state, source, dest, inputSize, 
maxOutputSize, limitedOutput, byU16, noDict, noDictIssue);
     else
-        return LZ4_compress_generic(state, source, dest, inputSize, 
maxOutputSize, limitedOutput, (sizeof(void*)==8) ? byU32 : byPtr, noDict, 
noDictIssue);
+        return LZ4_compress_generic(state, source, dest, inputSize, 
maxOutputSize, limitedOutput, LZ4_64BITS ? byU32 : byPtr, noDict, noDictIssue);
 }
 
 /* Obsolete streaming decompression functions */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/helpers/fst/lz4.h 
new/gtkwave-3.3.62/src/helpers/fst/lz4.h
--- old/gtkwave-3.3.61/src/helpers/fst/lz4.h    2014-06-27 19:55:20.000000000 
+0200
+++ new/gtkwave-3.3.62/src/helpers/fst/lz4.h    2014-07-28 20:58:49.000000000 
+0200
@@ -42,9 +42,10 @@
    Version
 **************************************/
 #define LZ4_VERSION_MAJOR    1    /* for major interface/format changes  */
-#define LZ4_VERSION_MINOR    2    /* for minor interface/format changes  */
+#define LZ4_VERSION_MINOR    3    /* for minor interface/format changes  */
 #define LZ4_VERSION_RELEASE  0    /* for tweaks, bug-fixes, or development */
-
+#define LZ4_VERSION_NUMBER (LZ4_VERSION_MAJOR *100*100 + LZ4_VERSION_MINOR 
*100 + LZ4_VERSION_RELEASE)
+int LZ4_versionNumber (void);
 
 /**************************************
    Tuning parameter
@@ -64,7 +65,7 @@
 **************************************/
 
 int LZ4_compress        (const char* source, char* dest, int inputSize);
-int LZ4_decompress_safe (const char* source, char* dest, int compressedSize, 
int maxOutputSize);
+int LZ4_decompress_safe (const char* source, char* dest, int compressedSize, 
int maxDecompressedSize);
 
 /*
 LZ4_compress() :
@@ -72,14 +73,14 @@
     Destination buffer must be already allocated,
     and must be sized to handle worst cases situations (input data not 
compressible)
     Worst case size evaluation is provided by function LZ4_compressBound()
-    inputSize : Max supported value is LZ4_MAX_INPUT_VALUE
+    inputSize : Max supported value is LZ4_MAX_INPUT_SIZE
     return : the number of bytes written in buffer dest
              or 0 if the compression fails
 
 LZ4_decompress_safe() :
     compressedSize : is obviously the source size
-    maxOutputSize : is the size of the destination buffer, which must be 
already allocated.
-    return : the number of bytes decoded in the destination buffer 
(necessarily <= maxOutputSize)
+    maxDecompressedSize : is the size of the destination buffer, which must be 
already allocated.
+    return : the number of bytes decompressed into the destination buffer 
(necessarily <= maxDecompressedSize)
              If the destination buffer is not large enough, decoding will stop 
and output an error code (<0).
              If the source stream is detected malformed, the function will 
stop decoding and return a negative result.
              This function is protected against buffer overflow exploits :
@@ -129,15 +130,26 @@
 
 
 /*
+LZ4_compress_withState() :
+    Same compression functions, but using an externally allocated memory space 
to store compression state.
+    Use LZ4_sizeofState() to know how much memory must be allocated,
+    and then, provide it as 'void* state' to compression functions.
+*/
+int LZ4_sizeofState(void);
+int LZ4_compress_withState               (void* state, const char* source, 
char* dest, int inputSize);
+int LZ4_compress_limitedOutput_withState (void* state, const char* source, 
char* dest, int inputSize, int maxOutputSize);
+
+
+/*
 LZ4_decompress_fast() :
     originalSize : is the original and therefore uncompressed size
     return : the number of bytes read from the source buffer (in other words, 
the compressed size)
-             If the source stream is malformed, the function will stop 
decoding and return a negative result.
+             If the source stream is detected malformed, the function will 
stop decoding and return a negative result.
              Destination buffer must be already allocated. Its size must be a 
minimum of 'originalSize' bytes.
-    note : This function is a bit faster than LZ4_decompress_safe()
-           It provides fast decompression and fully respect memory boundaries 
for properly formed compressed data.
-           It does not provide full protection against intentionnally modified 
data stream.
-           Use this function in a trusted environment (data to decode comes 
from a trusted source).
+    note : This function fully respect memory boundaries for properly formed 
compressed data.
+           It is a bit faster than LZ4_decompress_safe().
+           However, it does not provide any protection against intentionnally 
modified data stream (malicious input).
+           Use this function in trusted environment only (data to decode comes 
from a trusted source).
 */
 int LZ4_decompress_fast (const char* source, char* dest, int originalSize);
 
@@ -145,16 +157,16 @@
 /*
 LZ4_decompress_safe_partial() :
     This function decompress a compressed block of size 'compressedSize' at 
position 'source'
-    into output buffer 'dest' of size 'maxOutputSize'.
+    into destination buffer 'dest' of size 'maxDecompressedSize'.
     The function tries to stop decompressing operation as soon as 
'targetOutputSize' has been reached,
     reducing decompression time.
-    return : the number of bytes decoded in the destination buffer 
(necessarily <= maxOutputSize)
+    return : the number of bytes decoded in the destination buffer 
(necessarily <= maxDecompressedSize)
        Note : this number can be < 'targetOutputSize' should the compressed 
block to decode be smaller.
              Always control how many bytes were decoded.
              If the source stream is detected malformed, the function will 
stop decoding and return a negative result.
              This function never writes outside of output buffer, and never 
reads outside of input buffer. It is therefore protected against malicious data 
packets
 */
-int LZ4_decompress_safe_partial (const char* source, char* dest, int 
compressedSize, int targetOutputSize, int maxOutputSize);
+int LZ4_decompress_safe_partial (const char* source, char* dest, int 
compressedSize, int targetOutputSize, int maxDecompressedSize);
 
 
 /***********************************************
@@ -166,53 +178,58 @@
 /*
  * LZ4_stream_t
  * information structure to track an LZ4 stream.
- * important : set this structure content to zero before first use !
+ * important : init this structure content before first use !
  */
 typedef struct { unsigned int table[LZ4_STREAMSIZE_U32]; } LZ4_stream_t;
 
 /*
- * If you prefer dynamic allocation methods,
- * LZ4_createStream
- * provides a pointer (void*) towards an initialized LZ4_stream_t structure.
- * LZ4_free just frees it.
+ * LZ4_resetStream
+ * Use this function to init a newly allocated LZ4_stream_t structure
+ * You can also reset an existing LZ4_stream_t structure
  */
-void* LZ4_createStream();
-int   LZ4_free (void* LZ4_stream);
+void LZ4_resetStream (LZ4_stream_t* LZ4_stream);
 
+/*
+ * If you prefer dynamic allocation methods,
+ * LZ4_createStream will allocate and initialize an LZ4_stream_t structure
+ * LZ4_freeStream releases its memory.
+ */
+LZ4_stream_t* LZ4_createStream(void);
+int           LZ4_freeStream (LZ4_stream_t* LZ4_stream);
 
 /*
  * LZ4_loadDict
  * Use this function to load a static dictionary into LZ4_stream.
  * Any previous data will be forgotten, only 'dictionary' will remain in 
memory.
- * Loading a size of 0 is allowed (same effect as init).
+ * Loading a size of 0 is allowed.
  * Return : 1 if OK, 0 if error
  */
-int LZ4_loadDict (void* LZ4_stream, const char* dictionary, int dictSize);
+int LZ4_loadDict (LZ4_stream_t* LZ4_stream, const char* dictionary, int 
dictSize);
 
 /*
  * LZ4_compress_continue
  * Compress data block 'source', using blocks compressed before as dictionary 
to improve compression ratio
  * Previous data blocks are assumed to still be present at their previous 
location.
  */
-int LZ4_compress_continue (void* LZ4_stream, const char* source, char* dest, 
int inputSize);
+int LZ4_compress_continue (LZ4_stream_t* LZ4_stream, const char* source, char* 
dest, int inputSize);
 
 /*
  * LZ4_compress_limitedOutput_continue
  * Same as before, but also specify a maximum target compressed size 
(maxOutputSize)
  * If objective cannot be met, compression exits, and returns a zero.
  */
-int LZ4_compress_limitedOutput_continue (void* LZ4_stream, const char* source, 
char* dest, int inputSize, int maxOutputSize);
+int LZ4_compress_limitedOutput_continue (LZ4_stream_t* LZ4_stream, const char* 
source, char* dest, int inputSize, int maxOutputSize);
 
 /*
  * LZ4_saveDict
- * If previously compressed data block is not guaranteed to remain at its 
previous memory location
+ * If previously compressed data block is not guaranteed to remain available 
at its memory location
  * save it into a safe place (char* safeBuffer)
  * Note : you don't need to call LZ4_loadDict() afterwards,
  *        dictionary is immediately usable, you can therefore call again 
LZ4_compress_continue()
  * Return : 1 if OK, 0 if error
  * Note : any dictSize > 64 KB will be interpreted as 64KB.
  */
-int LZ4_saveDict (void* LZ4_stream, char* safeBuffer, int dictSize);
+int LZ4_saveDict (LZ4_stream_t* LZ4_stream, char* safeBuffer, int dictSize);
 
 
 /************************************************
@@ -224,38 +241,37 @@
 /*
  * LZ4_streamDecode_t
  * information structure to track an LZ4 stream.
- * important : set this structure content to zero before first use !
+ * important : init this structure content using LZ4_setStreamDecode or 
memset() before first use !
  */
 typedef struct { unsigned int table[LZ4_STREAMDECODESIZE_U32]; } 
LZ4_streamDecode_t;
 
 /*
+ * LZ4_setStreamDecode
+ * Use this function to instruct where to find the dictionary.
+ * This function can be used to specify a static dictionary,
+ * or to instruct where to find some previously decoded data saved into a 
different memory space.
+ * Setting a size of 0 is allowed (same effect as no dictionary).
+ * Return : 1 if OK, 0 if error
+ */
+int LZ4_setStreamDecode (LZ4_streamDecode_t* LZ4_streamDecode, const char* 
dictionary, int dictSize);
+
+/*
  * If you prefer dynamic allocation methods,
- * LZ4_createStreamDecode()
- * provides a pointer (void*) towards an initialized LZ4_streamDecode_t 
structure.
- * LZ4_free just frees it.
+ * LZ4_createStreamDecode will allocate and initialize an LZ4_streamDecode_t 
structure
+ * LZ4_freeStreamDecode releases its memory.
  */
-void* LZ4_createStreamDecode();
-int   LZ4_free (void* LZ4_stream);   /* yes, it's the same one as for 
compression */
+LZ4_streamDecode_t* LZ4_createStreamDecode(void);
+int                 LZ4_freeStreamDecode (LZ4_streamDecode_t* LZ4_stream);
 
 /*
 *_continue() :
     These decoding functions allow decompression of multiple blocks in 
"streaming" mode.
     Previously decoded blocks must still be available at the memory position 
where they were decoded.
     If it's not possible, save the relevant part of decoded data into a safe 
buffer,
-    and indicate where it stands using LZ4_setDictDecode()
+    and indicate where its new address using LZ4_setDictDecode()
 */
-int LZ4_decompress_safe_continue (void* LZ4_streamDecode, const char* source, 
char* dest, int compressedSize, int maxOutputSize);
-int LZ4_decompress_fast_continue (void* LZ4_streamDecode, const char* source, 
char* dest, int originalSize);
-
-/*
- * LZ4_setDictDecode
- * Use this function to instruct where to find the dictionary.
- * This function can be used to specify a static dictionary,
- * or to instruct where to find some previously decoded data saved into a 
different memory space.
- * Setting a size of 0 is allowed (same effect as no dictionary).
- * Return : 1 if OK, 0 if error
- */
-int LZ4_setDictDecode (void* LZ4_streamDecode, const char* dictionary, int 
dictSize);
+int LZ4_decompress_safe_continue (LZ4_streamDecode_t* LZ4_streamDecode, const 
char* source, char* dest, int compressedSize, int maxOutputSize);
+int LZ4_decompress_fast_continue (LZ4_streamDecode_t* LZ4_streamDecode, const 
char* source, char* dest, int originalSize);
 
 
 /*
@@ -271,7 +287,6 @@
 
 
 
-
 /**************************************
    Obsolete Functions
 **************************************/
@@ -281,14 +296,19 @@
 They are only provided here for compatibility with older user programs.
 - LZ4_uncompress is the same as LZ4_decompress_fast
 - LZ4_uncompress_unknownOutputSize is the same as LZ4_decompress_safe
-*/
-int LZ4_uncompress (const char* source, char* dest, int outputSize);
-int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int 
isize, int maxOutputSize);
+These function prototypes are now disabled; uncomment them if you really need 
them.
+It is highly recommended to stop using these functions and migrated to newer 
ones */
+/* int LZ4_uncompress (const char* source, char* dest, int outputSize); */
+/* int LZ4_uncompress_unknownOutputSize (const char* source, char* dest, int 
isize, int maxOutputSize); */
 
-/* Obsolete functions for externally allocated state; use streaming interface 
instead */
-int LZ4_sizeofState(void);
-int LZ4_compress_withState               (void* state, const char* source, 
char* dest, int inputSize);
-int LZ4_compress_limitedOutput_withState (void* state, const char* source, 
char* dest, int inputSize, int maxOutputSize);
+/*
+ * If you prefer dynamic allocation methods,
+ * LZ4_createStreamDecode()
+ * provides a pointer (void*) towards an initialized LZ4_streamDecode_t 
structure.
+ * LZ4_free just frees it.
+ */
+/* void* LZ4_createStreamDecode(void); */
+/*int   LZ4_free (void* LZ4_stream);    yes, it's the same one as for 
compression */
 
 /* Obsolete streaming functions; use new streaming interface whenever possible 
*/
 void* LZ4_create (const char* inputBuffer);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/main.c 
new/gtkwave-3.3.62/src/main.c
--- old/gtkwave-3.3.61/src/main.c       2014-07-17 22:27:04.000000000 +0200
+++ new/gtkwave-3.3.62/src/main.c       2014-08-11 02:38:54.000000000 +0200
@@ -187,6 +187,7 @@
 #endif
 
 
+#ifdef WAVE_USE_XID
 static int plug_destroy (GtkWidget *widget, gpointer data)
 {
 (void)widget;
@@ -196,7 +197,7 @@
 
 return(FALSE);
 }
-
+#endif
 
 #if defined __MINGW32__
 static void close_all_fst_files(void) /* so mingw does delete of reader 
tempfiles */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/menu.c 
new/gtkwave-3.3.62/src/menu.c
--- old/gtkwave-3.3.61/src/menu.c       2014-07-17 22:27:04.000000000 +0200
+++ new/gtkwave-3.3.62/src/menu.c       2014-08-20 00:08:35.000000000 +0200
@@ -5238,7 +5238,7 @@
 entrybox("Repeat Count",300,gt,NULL,20,GTK_SIGNAL_FUNC(strace_repcnt_cleanup));
 }
 /**/
-static void movetotime_cleanup(GtkWidget *widget, gpointer data)
+void movetotime_cleanup(GtkWidget *widget, gpointer data)
 {
 (void)widget;
 (void)data;
@@ -5373,7 +5373,7 @@
 entrybox("New Fetch Size",200,fw,NULL,20,GTK_SIGNAL_FUNC(fetchsize_cleanup));
 }
 /**/
-static void zoomsize_cleanup(GtkWidget *widget, gpointer data)
+void zoomsize_cleanup(GtkWidget *widget, gpointer data)
 {
 (void)widget;
 (void)data;
@@ -5728,6 +5728,7 @@
 }
 
 
+#if WAVE_USE_GTK2
 static void open_index_in_forked_editor(uint32_t idx, int typ)
 {
 if(idx)
@@ -5888,6 +5889,7 @@
        simplereqbox("Open Source", 400, "Source stem not present!", "OK", 
NULL, NULL, 1);
        }
 }
+#endif
 
 
 static void
@@ -5897,9 +5899,11 @@
 (void)callback_action;
 (void)widget;
 
+#if WAVE_USE_GTK2
 Trptr t;
 int fix=0;
 struct tree *t_forced = NULL;
+#endif
 
 if(GLOBALS->helpbox_is_active)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/menu.h 
new/gtkwave-3.3.62/src/menu.h
--- old/gtkwave-3.3.61/src/menu.h       2014-05-28 06:59:41.000000000 +0200
+++ new/gtkwave-3.3.62/src/menu.h       2014-08-20 00:08:35.000000000 +0200
@@ -405,6 +405,9 @@
 void menu_new_viewer_tab_cleanup(GtkWidget *widget, gpointer data);
 int menu_new_viewer_tab_cleanup_2(char *fname, int optimize_vcd);
 
+void movetotime_cleanup(GtkWidget *widget, gpointer data);
+void zoomsize_cleanup(GtkWidget *widget, gpointer data);
+
 
 void set_scale_to_time_dimension_toggles(void);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/rc.c new/gtkwave-3.3.62/src/rc.c
--- old/gtkwave-3.3.61/src/rc.c 2014-05-28 06:59:41.000000000 +0200
+++ new/gtkwave-3.3.62/src/rc.c 2014-08-11 02:38:54.000000000 +0200
@@ -605,6 +605,10 @@
 
 int f_use_toolbutton_interface(char *str)
 {
+#ifndef WAVE_USE_GTK2
+(void)str;
+#endif
+
 DEBUG(printf("f_use_toolbutton_interface(\"%s\")\n",str));
 #ifdef WAVE_USE_GTK2
 GLOBALS->use_toolbutton_interface=atoi_64(str)?1:0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/signalwindow.c 
new/gtkwave-3.3.62/src/signalwindow.c
--- old/gtkwave-3.3.61/src/signalwindow.c       2014-07-14 02:42:28.000000000 
+0200
+++ new/gtkwave-3.3.62/src/signalwindow.c       2014-08-11 02:38:54.000000000 
+0200
@@ -229,9 +229,13 @@
 (void)xx;
 (void)yy;
 (void)data;
-
+#ifndef WAVE_USE_GTK2
+(void)tt;
+#endif
        gboolean same_widget;
+#ifdef WAVE_USE_GTK2
        GdkDragAction suggested_action;
+#endif
        GtkWidget *src_widget, *tar_widget;
 
         if((widget == NULL) || (dc == NULL))
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/splash.c 
new/gtkwave-3.3.62/src/splash.c
--- old/gtkwave-3.3.61/src/splash.c     2014-07-14 02:42:28.000000000 +0200
+++ new/gtkwave-3.3.62/src/splash.c     2014-08-11 02:38:54.000000000 +0200
@@ -875,6 +875,9 @@
 
 gint splash_button_press_event(GtkWidget *widget, GdkEventExpose *event)
 {
+(void)widget;
+(void)event;
+
 /* do nothing */
 return(FALSE);
 }
@@ -886,6 +889,9 @@
 
 void splash_sync(off_t current, off_t total)
 {
+(void)current;
+(void)total;
+
 /* do nothing */
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/strace.c 
new/gtkwave-3.3.62/src/strace.c
--- old/gtkwave-3.3.61/src/strace.c     2014-07-14 02:42:28.000000000 +0200
+++ new/gtkwave-3.3.62/src/strace.c     2014-08-11 02:38:54.000000000 +0200
@@ -20,14 +20,14 @@
 #ifdef WAVE_USE_GTK2
 #define WV_STRACE_CURWIN(x) g_object_set_data(G_OBJECT(x), WV_STRACE_CTX, 
(gpointer)GLOBALS->strace_ctx)
 #else
-#define WV_STRACE_CURWIN
+#define WV_STRACE_CURWIN(x) do { } while(0 && (x))
 #endif
 
 /* need to do this at top of every entry point function where a signal is 
connected */
 #ifdef WAVE_USE_GTK2
 #define GET_WV_STRACE_CURWIN(x) 
GLOBALS->strace_ctx=g_object_get_data(G_OBJECT(x), WV_STRACE_CTX)
 #else
-#define GET_WV_STRACE_CURWIN
+#define GET_WV_STRACE_CURWIN(x) do { } while(0 && (x))
 #endif
 
 static char *logical[]=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/tcl_helper.c 
new/gtkwave-3.3.62/src/tcl_helper.c
--- old/gtkwave-3.3.61/src/tcl_helper.c 2014-07-17 22:27:04.000000000 +0200
+++ new/gtkwave-3.3.62/src/tcl_helper.c 2014-08-11 02:38:54.000000000 +0200
@@ -2415,6 +2415,7 @@
  *      GtkwaveFtype
  * ----------------------------------------------------------------------------
  */
+#ifdef WAVE_USE_GTK2
 static int uri_cmp(const void *v1, const void *v2)
 {
 char *s1 = *(char **)v1;
@@ -2441,6 +2442,7 @@
 
 return(rc);
 }
+#endif
 
 /* ----------------------------------------------------------------------------
  * process_url_list - examines list of URLs and processes if valid files
@@ -2531,6 +2533,8 @@
        g_free(url_list);
        }
 
+#else
+(void)s;
 #endif
 return(is_url);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/tcl_support_commands.c 
new/gtkwave-3.3.62/src/tcl_support_commands.c
--- old/gtkwave-3.3.61/src/tcl_support_commands.c       2014-07-12 
22:08:15.000000000 +0200
+++ new/gtkwave-3.3.62/src/tcl_support_commands.c       2014-08-11 
02:38:54.000000000 +0200
@@ -136,6 +136,7 @@
      rv = SST_TREE_NOT_EXIST ;
    }
 #else
+(void)name;
   rv = SST_TREE_NOT_EXIST ;
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/treesearch_gtk1.c 
new/gtkwave-3.3.62/src/treesearch_gtk1.c
--- old/gtkwave-3.3.61/src/treesearch_gtk1.c    2014-05-28 06:59:41.000000000 
+0200
+++ new/gtkwave-3.3.62/src/treesearch_gtk1.c    2014-08-11 02:38:54.000000000 
+0200
@@ -19,7 +19,8 @@
 
 void dnd_setup(GtkWidget *src, GtkWidget *w, int enable_receive)
 {
-       GtkWidget *win = w;
+(void)enable_receive;
+
        GtkTargetEntry target_entry[3];
 
        /* Realize the clist widget and make sure it has a window,
@@ -90,6 +91,11 @@
 static void select_row_callback(GtkWidget *widget, gint row, gint column,
         GdkEventButton *event, gpointer data)
 {
+(void)widget;
+(void)column;
+(void)event;
+(void)data;
+
 struct tree *t;
 
 t=(struct tree *)gtk_clist_get_row_data(GTK_CLIST(GLOBALS->ctree_main), row);
@@ -100,6 +106,11 @@
 static void unselect_row_callback(GtkWidget *widget, gint row, gint column,
         GdkEventButton *event, gpointer data)
 {
+(void)widget;
+(void)column;
+(void)event;
+(void)data;
+
 struct tree *t;
 
 t=(struct tree *)gtk_clist_get_row_data(GTK_CLIST(GLOBALS->ctree_main), row);
@@ -115,6 +126,9 @@
 
 static void enter_callback_e(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)widget;
+(void)nothing;
+
   G_CONST_RETURN gchar *entry_text;
   int len;
   entry_text = 
gtk_entry_get_text(GTK_ENTRY(GLOBALS->entry_a_treesearch_gtk1_c));
@@ -132,6 +146,9 @@
 
 static void destroy_callback_e(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)widget;
+(void)nothing;
+
   DEBUG(printf("Entry Cancel\n"));
   GLOBALS->entrybox_text_local_treesearch_gtk1_c=NULL;
   wave_gtk_grab_remove(GLOBALS->window1_treesearch_gtk1_c);
@@ -257,6 +274,9 @@
 static void
 bundle_cleanup(GtkWidget *widget, gpointer data)
 {
+(void)widget;
+(void)data;
+
 if(GLOBALS->entrybox_text_local_treesearch_gtk1_c)
         {
         char *efix;
@@ -317,6 +337,9 @@
 static void
 bundle_callback_up(GtkWidget *widget, gpointer data)
 {
+(void)widget;
+(void)data;
+
 GLOBALS->bundle_direction_treesearch_gtk1_c=0;
 bundle_callback_generic();
 }
@@ -324,12 +347,17 @@
 static void
 bundle_callback_down(GtkWidget *widget, gpointer data)
 {
+(void)widget;
+(void)data;
+
 GLOBALS->bundle_direction_treesearch_gtk1_c=1;
 bundle_callback_generic();
 }
 
 static void insert_callback(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)nothing;
+
 Traces tcache;
 int i;
 
@@ -441,6 +469,8 @@
 
 static void replace_callback(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)nothing;
+
 Traces tcache;
 int i;
 Trptr tfirst=NULL, tlast=NULL;
@@ -598,6 +628,7 @@
 
 static void ok_callback(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)nothing;
 int i;
 
 if(!GLOBALS->selectedtree_treesearch_gtk1_c) return;
@@ -693,6 +724,9 @@
 
 static void destroy_callback(GtkWidget *widget, GtkWidget *nothing)
 {
+(void)widget;
+(void)nothing;
+
   GLOBALS->is_active_treesearch_gtk1_c=0;
   gtk_widget_destroy(GLOBALS->window_treesearch_gtk1_c);
   GLOBALS->window_treesearch_gtk1_c = NULL;
@@ -705,6 +739,8 @@
  */
 void treebox(char *title, GtkSignalFunc func, GtkWidget *old_window)
 {
+(void)old_window;
+
     GtkWidget *scrolled_win;
     GtkWidget *hbox;
     GtkWidget *button1, *button2, *button3, *button3a, *button4, *button5;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/gtkwave-3.3.61/src/twinwave.c 
new/gtkwave-3.3.62/src/twinwave.c
--- old/gtkwave-3.3.61/src/twinwave.c   2014-07-14 02:42:28.000000000 +0200
+++ new/gtkwave-3.3.62/src/twinwave.c   2014-08-11 02:38:54.000000000 +0200
@@ -23,7 +23,9 @@
 
 #include "debug.h"
 
+#ifdef WAVE_USE_GTK2
 static int use_embedded = 1;
+#endif
 
 #if !defined _MSC_VER && defined WAVE_USE_GTK2
 
@@ -464,6 +466,9 @@
 
 int main(int argc, char **argv)
 {
+(void)argc;
+(void)argv;
+
 #ifndef WAVE_USE_GTK2
 fprintf(stderr, "Sorry, this requires GTK+-2.0 or greater to run!\n");
 #endif

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to