[Pkg-electronics-commits] [gtkwave] 02/05: Imported Upstream version 3.3.53

أحمد المحمودي (Ahmed El-Mahmoudy) aelmahmoudy at sabily.org
Sat Dec 21 10:17:42 UTC 2013


This is an automated email from the git hooks/post-receive script.

aelmahmoudy-guest pushed a commit to branch master
in repository gtkwave.

commit 8184686b91aa8134467fdaa5af5c16a5721e347c
Author: أحمد المحمودي (Ahmed El-Mahmoudy) <aelmahmoudy at sabily.org>
Date:   Sat Dec 21 10:58:20 2013 +0200

    Imported Upstream version 3.3.53
---
 ANALOG_README.TXT                         |  12 -
 AUTHORS                                   |  22 +-
 ChangeLog                                 |  10 +
 LICENSE.TXT                               |  41 +-
 MIT.TXT                                   |  22 -
 Makefile.am                               |   2 +-
 Makefile.in                               |   2 +-
 SYSTEMVERILOG_README.TXT                  |  18 -
 configure                                 |  23 +-
 configure.ac                              |   3 +-
 contrib/Makefile.am                       |   2 +-
 contrib/Makefile.in                       |   2 +-
 contrib/bundle_for_osx/Info-gtkwave.plist |   8 +-
 contrib/vermin/preproc.c                  |   7 +-
 contrib/wlf2vcd/Makefile                  | 419 +++++++++++++++
 contrib/wlf2vcd/Makefile.am               |   5 +
 contrib/{ => wlf2vcd}/Makefile.in         | 257 ++-------
 contrib/wlf2vcd/wlf2vcd.c                 | 830 ++++++++++++++++++++++++++++++
 doc/gtkwave.odt                           | Bin 1391489 -> 1391885 bytes
 man/rtlbrowse.1                           |   8 +-
 man/vcd2fst.1                             |  14 +-
 src/analyzer.h                            |   3 +-
 src/fsdb_wrapper_api.cc                   |   2 +
 src/fsdb_wrapper_api.h                    |   3 +-
 src/globals.c                             |   2 +-
 src/globals.h                             |   2 +-
 src/helpers/evcd2vcd.c                    |  28 +-
 src/helpers/fst/fstapi.c                  |  30 +-
 src/helpers/fst/fstapi.h                  |   2 +-
 src/helpers/v2l_analyzer_lxt2.h           |   3 +
 src/helpers/v2l_debug.h                   |   7 +-
 src/helpers/v2l_debug_lxt2.h              |   7 +-
 src/helpers/vcd2fst.c                     |  61 ++-
 src/helpers/vcd2lxt2.c                    |   4 +-
 src/helpers/vcd2vzt.c                     |   4 +-
 src/helpers/vzt_write.c                   |   4 +-
 src/main.c                                |  25 +-
 src/menu.c                                |  14 +-
 src/vcd.c                                 |   3 +-
 src/vcd_recoder.c                         |   3 +-
 src/vcd_saver.c                           |   6 +-
 src/version.h                             |   4 +-
 42 files changed, 1536 insertions(+), 388 deletions(-)

diff --git a/ANALOG_README.TXT b/ANALOG_README.TXT
deleted file mode 100644
index c1d4378..0000000
--- a/ANALOG_README.TXT
+++ /dev/null
@@ -1,12 +0,0 @@
-Analog support is new as of 1.3.81 and should be considered experimental.  
-The analog waves are auto-scaling.  Manual scaling will be added in a 
-future release.  If you wish to make an analog wave taller, simply 
-highlight the wave you want to make larger and right click-select Insert
-Analog Height Extension from the popup menu.
-
-Note that currently double floats are not written in a platform
-independent manner with GHW files.  This should not be an issue unless you
-swap across architectures between ghdl and the viewer such as powerpc on
-AIX and x86.
-
--11dec05ajb
diff --git a/AUTHORS b/AUTHORS
index 9cfe0c7..3986058 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,14 +1,14 @@
-GTKWave Wave Viewer is Copyright (C) 1999-2013 Tony Bybell.
-Windows compatibility and PS/MIF routines are Copyright (C) 1999-2013 Udi Finkelstein.
-Context support is Copyright (C) 2007-2013 Kermin Elliott Fleming.
-Trace group support is  Copyright (C) 2009-2013 Donald Baltus.
-GHW and additional GUI support is Copyright (C) 2005-2013 Tristan Gingold.
-Analog support is Copyright (C) 2005-2013 Thomas Sailer.
-External DnD support is Copyright (C) 2008-2013 Concept Engineering GmbH.
-FastLZ is Copyright (C) 2005-2013 Ariya Hidayat.
-PCCTS 1.33MR is Copyright (C) 1989-2013 Terence Parr, Russell Quong, Will Cohen, Hank Dietz, and Thomas Moog.
+GTKWave Wave Viewer is Copyright (C) 1999-2014 Tony Bybell.
+Windows compatibility and PS/MIF routines 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.
+GHW and additional GUI support is Copyright (C) 2005-2014 Tristan Gingold.
+Analog support is Copyright (C) 2005-2014 Thomas Sailer.
+External DnD support is Copyright (C) 2008-2014 Concept Engineering GmbH.
+FastLZ is Copyright (C) 2005-2014 Ariya Hidayat.
+PCCTS 1.33MR is Copyright (C) 1989-2014 Terence Parr, Russell Quong, Will Cohen, Hank Dietz, and Thomas Moog.
 Some public domain clip art by contributors at http://www.sxc.hu/ website.
 Hierarchy marker icons from the Silk icons set by Mark James found at the http://www.famfamfam.com/lab/icons/silk/ website.
 Portions of the TCL implementation, tcl_np.c and tcl_np.h are copyrighted by the Regents of the University of California, Sun Microsystems, Inc., Scriptics Corporation, ActiveState Corporation, and other parties.
-NSAlert is Copyright (C) 2011-2013 Philipp Mayerhofer.
-LZ4 is Copyright (C) 2011-2013 Yann Collet.
+NSAlert is Copyright (C) 2011-2014 Philipp Mayerhofer.
+LZ4 is Copyright (C) 2011-2014 Yann Collet.
diff --git a/ChangeLog b/ChangeLog
index 83f40fe..871c1f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1402,4 +1402,14 @@
 		Fix in FsdbReader interface for version 1.x files.
 		Many warnings fixes found from gcc -Wextra flag.
 		Fixed thread-unsafe static allocations in fstapi.c.
+3.3.53	15dec13	Made LZ4 the default compression routine selected for vcd2fst.
+		Fixes to EVCD parsing in vcd2fst and evcd2vcd.
+		Automatically invoke --optimize if VPD or WLF is detected;
+		invoke on FSDB if FsdbReader is missing.
+		Standardized export feature to write vcd using lower case
+		for non 0/1 values.
+		Added perror() on errno-related exits in vcd loaders.
+		Added experimental wlf2vcd in contrib.  It is not currently 
+		compiled or used.
+		Corrected non-functional typos in documentation.
 
diff --git a/LICENSE.TXT b/LICENSE.TXT
index 03ce659..16c2205 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -1,13 +1,14 @@
 ##########################################################################
 
-GTKWave 3.3.52 Wave Viewer is Copyright (C) 1999-2013 Tony Bybell.  
-Portions of GTKWave are Copyright (C) 1999-2013 Udi Finkelstein. 
-Context support is Copyright (C) 2007-2013 Kermin Elliott Fleming.
-Trace group support is  Copyright (C) 2009-2013 Donald Baltus.
-GHW and additional GUI support is Copyright (C) 2005-2013 Tristan Gingold.
-Analog support is Copyright (C) 2005-2013 Thomas Sailer.
-External DnD support is Copyright (C) 2008-2013 Concept Engineering GmbH.
-FastLZ is Copyright (C) 2005-2013 Ariya Hidayat.
+GTKWave 3.3.53 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.
+GHW and additional GUI support is Copyright (C) 2005-2014 Tristan Gingold.
+Analog support is Copyright (C) 2005-2014 Thomas Sailer.
+External DnD support is Copyright (C) 2008-2014 Concept Engineering GmbH.
+FastLZ is Copyright (C) 2005-2014 Ariya Hidayat.
+LZ4 is Copyright (C) 2011-2014 Yann Collet.
 
 This program is free software; you can redistribute it and/or modify it
 under the terms of the GNU General Public License as published by the Free
@@ -25,7 +26,7 @@ Franklin Street -  Suite 500, Boston, MA 02110-1335, USA.
 
 ##########################################################################
 
-PCCTS 1.33MR is Copyright (C) 1989-2013 Terence Parr, Russell Quong,
+PCCTS 1.33MR is Copyright (C) 1989-2014 Terence Parr, Russell Quong,
 	Will Cohen, Hank Dietz, and Thomas Moog.  It is in the public
 	domain.  Please read contrib/pccts/RIGHTS for more information.
 
@@ -83,3 +84,25 @@ terms specified in this license.
 
 ##########################################################################
 
+The dumpfile processing source code in src/helpers is licensed under the 
+MIT license in order to facilitate greater re-use:
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the "Software"),
+to deal in the Software without restriction, including without limitation 
+the rights to use, copy, modify, merge, publish, distribute, sublicense, 
+and/or sell copies of the Software, and to permit persons to whom the   
+Software is furnished to do so, subject to the following conditions: 
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL   
+THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+DEALINGS IN THE SOFTWARE.
+
+##########################################################################
diff --git a/MIT.TXT b/MIT.TXT
deleted file mode 100644
index 7c05cab..0000000
--- a/MIT.TXT
+++ /dev/null
@@ -1,22 +0,0 @@
-The dumpfile processing sourcecode in src/helpers have been re-licensed 
-under the MIT license in order to facilitate greater re-use:
-
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation 
-the rights to use, copy, modify, merge, publish, distribute, sublicense, 
-and/or sell copies of the Software, and to permit persons to whom the   
-Software is furnished to do so, subject to the following conditions: 
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,  
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL   
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING   
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
-
--08mar02ajb
diff --git a/Makefile.am b/Makefile.am
index 977df58..c568c17 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,5 +2,5 @@
 ##
 
 SUBDIRS=	doc examples man src contrib share
-EXTRA_DIST=	ANALOG_README.TXT ChangeLog COPYING INSTALL LICENSE.TXT MIT.TXT SYSTEMVERILOG_README.TXT README NEWS AUTHORS \
+EXTRA_DIST=	ChangeLog COPYING INSTALL LICENSE.TXT README NEWS AUTHORS \
 	autogen.sh wave_locale.h tcl.m4
diff --git a/Makefile.in b/Makefile.in
index 27afc5e..e8b6825 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -312,7 +312,7 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = doc examples man src contrib share
-EXTRA_DIST = ANALOG_README.TXT ChangeLog COPYING INSTALL LICENSE.TXT MIT.TXT SYSTEMVERILOG_README.TXT README NEWS AUTHORS \
+EXTRA_DIST = ChangeLog COPYING INSTALL LICENSE.TXT README NEWS AUTHORS \
 	autogen.sh wave_locale.h tcl.m4
 
 all: config.h
diff --git a/SYSTEMVERILOG_README.TXT b/SYSTEMVERILOG_README.TXT
deleted file mode 100644
index c563255..0000000
--- a/SYSTEMVERILOG_README.TXT
+++ /dev/null
@@ -1,18 +0,0 @@
-SV adds a number of data types however according to IEEE1800-2005 they can
-be dumped by pretending to be existing VCD datatypes.
-
-SystemVerilog		Verilog		Size
-=============		=======		====
-bit			reg		[total size of packed dimension]
-logic			reg		[total size of packed dimension]
-int			integer		32
-shortint		reg		16
-longint			reg		64
-byte			reg		8
-enum			integer		32
-shortreal		real		--
-
-...noncompliant dumpers may surface in the future; the above is meant to
-be an alias guide for future incompatibility fixes.
-
--07apr07ajb
diff --git a/configure b/configure
index 74ff847..3e9a9fe 100755
--- a/configure
+++ b/configure
@@ -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.52.
+# Generated by GNU Autoconf 2.69 for gtkwave 3.3.53.
 #
 # Report bugs to <bybell at rocketmail.com>.
 #
@@ -580,8 +580,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='gtkwave'
 PACKAGE_TARNAME='gtkwave'
-PACKAGE_VERSION='3.3.52'
-PACKAGE_STRING='gtkwave 3.3.52'
+PACKAGE_VERSION='3.3.53'
+PACKAGE_STRING='gtkwave 3.3.53'
 PACKAGE_BUGREPORT='bybell at rocketmail.com'
 PACKAGE_URL=''
 
@@ -1384,7 +1384,7 @@ if test "$ac_init_help" = "long"; then
   # 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.52 to adapt to many kinds of systems.
+\`configure' configures gtkwave 3.3.53 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1450,7 +1450,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gtkwave 3.3.52:";;
+     short | recursive ) echo "Configuration of gtkwave 3.3.53:";;
    esac
   cat <<\_ACEOF
 
@@ -1596,7 +1596,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gtkwave configure 3.3.52
+gtkwave configure 3.3.53
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2240,7 +2240,7 @@ cat >config.log <<_ACEOF
 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.52, which was
+It was created by gtkwave $as_me 3.3.53, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3107,7 +3107,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gtkwave'
- VERSION='3.3.52'
+ VERSION='3.3.53'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -10313,7 +10313,7 @@ fi
 
 
 
-ac_config_files="$ac_config_files Makefile doc/Makefile contrib/Makefile contrib/pccts/IBM_VISUAL_AGE_PROJECTS/Makefile contrib/pccts/Makefile contrib/pccts/antlr/Makefile contrib/pccts/dlg/Makefile contrib/pccts/h/Makefile contrib/pccts/sorcerer/Makefile contrib/pccts/sorcerer/h/Makefile contrib/pccts/sorcerer/lib/Makefile contrib/pccts/sorcerer/test/Makefile contrib/pccts/sorcerer/test/test7/Makefile contrib/pccts/sorcerer/testcpp/Makefile contrib/pccts/support/DECmms/Makefile contrib/ [...]
+ac_config_files="$ac_config_files Makefile doc/Makefile contrib/Makefile contrib/pccts/IBM_VISUAL_AGE_PROJECTS/Makefile contrib/pccts/Makefile contrib/pccts/antlr/Makefile contrib/pccts/dlg/Makefile contrib/pccts/h/Makefile contrib/pccts/sorcerer/Makefile contrib/pccts/sorcerer/h/Makefile contrib/pccts/sorcerer/lib/Makefile contrib/pccts/sorcerer/test/Makefile contrib/pccts/sorcerer/test/test7/Makefile contrib/pccts/sorcerer/testcpp/Makefile contrib/pccts/support/DECmms/Makefile contrib/ [...]
 
 
 
@@ -10984,7 +10984,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # 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.52, which was
+This file was extended by gtkwave $as_me 3.3.53, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11050,7 +11050,7 @@ _ACEOF
 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.52
+gtkwave config.status 3.3.53
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -11206,6 +11206,7 @@ do
     "contrib/vermin/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/vermin/Makefile" ;;
     "contrib/bundle_for_osx/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/bundle_for_osx/Makefile" ;;
     "contrib/fst_jni/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/fst_jni/Makefile" ;;
+    "contrib/wlf2vcd/Makefile") CONFIG_FILES="$CONFIG_FILES contrib/wlf2vcd/Makefile" ;;
     "examples/Makefile") CONFIG_FILES="$CONFIG_FILES examples/Makefile" ;;
     "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
     "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
diff --git a/configure.ac b/configure.ac
index 4f70ca5..28ad63e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT(gtkwave, 3.3.52, bybell at rocketmail.com)
+AC_INIT(gtkwave, 3.3.53, bybell at rocketmail.com)
 AC_CONFIG_SRCDIR([src/vcd.c])
 AM_INIT_AUTOMAKE
 AC_CONFIG_HEADER([config.h])
@@ -881,6 +881,7 @@ AC_CONFIG_FILES([Makefile
 		contrib/vermin/Makefile
 		contrib/bundle_for_osx/Makefile
 		contrib/fst_jni/Makefile
+		contrib/wlf2vcd/Makefile
 		examples/Makefile
 		man/Makefile
 		src/Makefile
diff --git a/contrib/Makefile.am b/contrib/Makefile.am
index b866732..4874ad1 100644
--- a/contrib/Makefile.am
+++ b/contrib/Makefile.am
@@ -1,4 +1,4 @@
 ## -*- makefile
 ##
 
-SUBDIRS= pccts rtlbrowse vermin bundle_for_osx fst_jni
+SUBDIRS= pccts rtlbrowse vermin bundle_for_osx fst_jni wlf2vcd
diff --git a/contrib/Makefile.in b/contrib/Makefile.in
index 239dde3..c6b8974 100644
--- a/contrib/Makefile.in
+++ b/contrib/Makefile.in
@@ -287,7 +287,7 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = pccts rtlbrowse vermin bundle_for_osx fst_jni
+SUBDIRS = pccts rtlbrowse vermin bundle_for_osx fst_jni wlf2vcd
 all: all-recursive
 
 .SUFFIXES:
diff --git a/contrib/bundle_for_osx/Info-gtkwave.plist b/contrib/bundle_for_osx/Info-gtkwave.plist
index e27bd91..1775c7b 100644
--- a/contrib/bundle_for_osx/Info-gtkwave.plist
+++ b/contrib/bundle_for_osx/Info-gtkwave.plist
@@ -8,7 +8,7 @@
     <key>CFBundleExecutable</key>
     <string>gtkwave</string>
     <key>CFBundleGetInfoString</key>
-    <string>3.3.52, (C) 1999-2013 Tony Bybell http://gtkwave.sourceforge.net</string>
+    <string>3.3.53, (C) 1999-2014 Tony Bybell http://gtkwave.sourceforge.net</string>
     <key>CFBundleIconFile</key>
     <string>gtkwave.icns</string>
     <key>CFBundleIdentifier</key>
@@ -18,13 +18,13 @@
     <key>CFBundlePackageType</key>
     <string>APPL</string>
     <key>CFBundleShortVersionString</key>
-    <string>3.3.52</string>
+    <string>3.3.53</string>
     <key>CFBundleSignature</key>
     <string>????</string>
     <key>CFBundleVersion</key>
-    <string>3.3.52</string>
+    <string>3.3.53</string>
     <key>NSHumanReadableCopyright</key>
-    <string>Copyright 1999 - 2013 Tony Bybell, GNU General Public License.</string>
+    <string>Copyright 1999 - 2014 Tony Bybell, GNU General Public License.</string>
     <key>LSMinimumSystemVersion</key>
     <string>10.6</string>
 
diff --git a/contrib/vermin/preproc.c b/contrib/vermin/preproc.c
index fa252ee..0dd0ed3 100644
--- a/contrib/vermin/preproc.c
+++ b/contrib/vermin/preproc.c
@@ -4,6 +4,7 @@
 #include <string.h>
 #include <dirent.h>
 #include <unistd.h>
+#include <inttypes.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include "vpp_common.h"
@@ -127,9 +128,9 @@ zzrewind=0;
 
 unsigned int atoi_with_underscores(char *s)
 {
-const unsigned long long max32 = 4294967295ULL;
+const uint64_t max32 = 4294967295ULL;
 
-unsigned long long val;
+uint64_t val;
 unsigned int chval;
 
 val = 0ULL;
@@ -139,7 +140,7 @@ while((*s) && (*s!='\''))
                 {
 		chval = ((*s) -'0');
                 val *= 10ULL;
-                val += ((unsigned long long)chval);
+                val += ((uint64_t)chval);
                 if(val>max32)
                         {
                         warn("** Warning: Large constant truncated to MAXINT in file '%s' line %d\n", zzfilename, zzline);
diff --git a/contrib/wlf2vcd/Makefile b/contrib/wlf2vcd/Makefile
new file mode 100644
index 0000000..ab542a0
--- /dev/null
+++ b/contrib/wlf2vcd/Makefile
@@ -0,0 +1,419 @@
+# Makefile.in generated by automake 1.13.1 from Makefile.am.
+# contrib/wlf2vcd/Makefile.  Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+am__make_dryrun = \
+  { \
+    am__dry=no; \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        echo 'am--echo: ; @echo "AM"  OK' | $(MAKE) -f - 2>/dev/null \
+          | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+      *) \
+        for am__flg in $$MAKEFLAGS; do \
+          case $$am__flg in \
+            *=*|--*) ;; \
+            *n*) am__dry=yes; break;; \
+          esac; \
+        done;; \
+    esac; \
+    test $$am__dry = yes; \
+  }
+pkgdatadir = $(datadir)/gtkwave
+pkgincludedir = $(includedir)/gtkwave
+pkglibdir = $(libdir)/gtkwave
+pkglibexecdir = $(libexecdir)/gtkwave
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+subdir = contrib/wlf2vcd
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_$(V))
+am__v_P_ = $(am__v_P_$(AM_DEFAULT_VERBOSITY))
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_$(V))
+am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_$(V))
+am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/missing aclocal-1.13
+AET2_CFLAGS = -DAET2_ALIASDB_IS_PRESENT -DAET2_IS_PRESENT -I/afs/awd/projects/simarama/releases/latest
+AET2_LDADD = /afs/awd/projects/simarama/releases/latest/libaliasdb.so /afs/awd/projects/simarama/releases/latest/libae2rw.so
+ALLOCA = 
+AMTAR = $${TAR-tar}
+AM_DEFAULT_VERBOSITY = 1
+AUTOCONF = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/missing autoconf
+AUTOHEADER = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/missing autoheader
+AUTOMAKE = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/missing automake-1.13
+AWK = gawk
+CC = gcc
+CCDEPMODE = depmode=gcc3
+CFLAGS = -g -O2 -DWAVE_USE_STRUCT_PACKING -DFST_WRITER_PARALLEL
+COCOA_GTK_CFLAGS = 
+COCOA_GTK_LDADD = 
+COCOA_GTK_LDFLAGS = 
+CPP = gcc -E
+CPPFLAGS = -DWAVE_USE_GTK2 
+CXX = g++
+CXXDEPMODE = depmode=gcc3
+CXXFLAGS = -g -O2
+CYGPATH_W = echo
+DEFS = -DHAVE_CONFIG_H
+DEPDIR = .deps
+ECHO_C = 
+ECHO_N = -n
+ECHO_T = 
+EGREP = /bin/grep -E
+EXEEXT = 
+EXTDEBUG = /pub/fsdb/bin/fsdbdebug
+EXTDEBUG2 = /pub/fsdb/bin/fsdb2vcd
+EXTDEBUG3 = /usr/local/bin/vpd2vcd
+EXTDEBUG4 = /usr/local/bin/wlf2vcd
+EXTLOAD_CFLAGS = -DEXTLOAD_PATH=\"/pub/fsdb/bin/fsdbdebug\" -DEXTLOAD_SUFFIX=\"fsdb\" -DEXTCONV_PATH=\"/pub/fsdb/bin/fsdb2vcd\" -DEXT2CONV_PATH=\"/usr/local/bin/vpd2vcd\" -DEXT2LOAD_SUFFIX=\"vpd\" -DEXT3CONV_PATH=\"/usr/local/bin/wlf2vcd\" -DEXT3LOAD_SUFFIX=\"wlf\"
+FASTTREE_CFLAGS = 
+FSDB_CFLAGS = -DFSDB_NSYS_IS_PRESENT -DFSDB_IS_PRESENT -I/pub/FsdbReader
+FSDB_LDADD = /pub/FsdbReader/libnsys.so /pub/FsdbReader/libnffr.so
+GCONF_CFLAGS = -DWAVE_HAVE_GCONF -DORBIT2=1 -pthread -I/usr/include/gconf/2 -I/usr/include/orbit-2.0 -I/usr/include/dbus-1.0 -I/usr/lib/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  
+GCONF_LIBS = -lgconf-2 -lglib-2.0  
+GEDITTEST = /usr/bin/gedit
+GEDIT_CFLAGS = -DGEDIT_PATH=\"/usr/bin/gedit\"
+GPERF = /usr/bin/gperf
+GREP = /bin/grep
+GTK_CFLAGS = -pthread -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12  
+GTK_CONFIG = 
+GTK_LIBS = -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0  
+GTK_MAC_CFLAGS = 
+GTK_MAC_LIBS = 
+GTK_UNIX_PRINT_CFLAGS = -pthread -I/usr/include/gtk-unix-print-2.0 -I/usr/include/gtk-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/lib/gtk-2.0/include -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -DWAVE_GTK_UNIX_PRINT
+GTK_UNIX_PRINT_LIBS = -pthread -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lgdk_pixbuf-2.0 -lpangocairo-1.0 -lcairo -lpango-1.0 -lfreetype -lfontconfig -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lrt -lglib-2.0  
+INLINE_ASM = -DUSE_INLINE_ASM
+INSTALL = /usr/bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+LDFLAGS = 
+LEX = flex
+LEXLIB = -lfl
+LEX_OUTPUT_ROOT = lex.yy
+LIBBZ2_CFLAGS = 
+LIBBZ2_DIR = 
+LIBBZ2_LDADD = -lbz2
+LIBJUDY_CFLAGS = -D_WAVE_HAVE_JUDY
+LIBJUDY_LDADD = -lJudy
+LIBOBJS = 
+LIBS = -lnsl -lpthread -lm -ldl 
+LIBXZ_CFLAGS = -D_WAVE_HAVE_XZ
+LIBXZ_LDADD = -llzma
+LIBZ_CFLAGS = 
+LIBZ_DIR = 
+LIBZ_LDADD = -lz
+LTLIBOBJS = 
+MAINT = #
+MAKEINFO = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/missing makeinfo
+MINGW_LDADD = 
+MKDIR_P = /bin/mkdir -p
+OBJEXT = o
+PACKAGE = gtkwave
+PACKAGE_BUGREPORT = bybell at rocketmail.com
+PACKAGE_NAME = gtkwave
+PACKAGE_STRING = gtkwave 3.3.53
+PACKAGE_TARNAME = gtkwave
+PACKAGE_URL = 
+PACKAGE_VERSION = 3.3.53
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/bin/pkg-config
+POW_LIB = 
+RANLIB = ranlib
+SET_MAKE = 
+SHELL = /bin/sh
+STRIP = 
+STRUCT_PACK = -DWAVE_USE_STRUCT_PACKING
+TCL_DEFADD = -DHAVE_LIBTCL
+TCL_INCLUDE_SPEC = -I/usr/include
+TCL_LDADD = -L/usr/lib -ltcl8.5
+TCL_LIB_SPEC = -L/usr/lib -ltcl8.5
+TCL_MAJOR_VERSION = 8
+TCL_MINOR_VERSION = 5
+TK_INCLUDE_SPEC = -I/usr/include
+TK_LDADD = -L/usr/lib -ltk8.5
+TK_LIB_SPEC = -L/usr/lib -ltk8.5
+UPDATE_DESKTOP_DATABASE = /usr/bin/update-desktop-database
+UPDATE_MIME_DATABASE = /usr/bin/update-mime-database
+VERSION = 3.3.53
+XDGDATADIR = ${datadir}
+abs_builddir = /home/bybell/gtkwave/gtkwave-code/gtkwave3/contrib/wlf2vcd
+abs_srcdir = /home/bybell/gtkwave/gtkwave-code/gtkwave3/contrib/wlf2vcd
+abs_top_builddir = /home/bybell/gtkwave/gtkwave-code/gtkwave3
+abs_top_srcdir = /home/bybell/gtkwave/gtkwave-code/gtkwave3
+ac_ct_CC = gcc
+ac_ct_CXX = g++
+am__include = include
+am__leading_dot = .
+am__quote = 
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build_alias = 
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = ${prefix}
+host_alias = 
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /home/bybell/gtkwave/gtkwave-code/gtkwave3/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+prefix = /usr/local
+program_transform_name = s,x,x,
+psdir = ${docdir}
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias = 
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+EXTRA_DIST = \
+	wlf2vcd.c
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: # $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/wlf2vcd/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign contrib/wlf2vcd/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: # $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): # $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+	ctags-am distclean distclean-generic distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-man install-pdf install-pdf-am \
+	install-ps install-ps-am install-strip installcheck \
+	installcheck-am installdirs maintainer-clean \
+	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
+	pdf-am ps ps-am tags-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/contrib/wlf2vcd/Makefile.am b/contrib/wlf2vcd/Makefile.am
new file mode 100644
index 0000000..c140e9c
--- /dev/null
+++ b/contrib/wlf2vcd/Makefile.am
@@ -0,0 +1,5 @@
+## -*- makefile
+##
+
+EXTRA_DIST= \
+	wlf2vcd.c
diff --git a/contrib/Makefile.in b/contrib/wlf2vcd/Makefile.in
similarity index 58%
copy from contrib/Makefile.in
copy to contrib/wlf2vcd/Makefile.in
index 239dde3..fd3eb0c 100644
--- a/contrib/Makefile.in
+++ b/contrib/wlf2vcd/Makefile.in
@@ -47,7 +47,7 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-subdir = contrib
+subdir = contrib/wlf2vcd
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/configure.ac
@@ -71,73 +71,13 @@ am__v_at_0 = @
 am__v_at_1 = 
 SOURCES =
 DIST_SOURCES =
-RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
-	ctags-recursive dvi-recursive html-recursive info-recursive \
-	install-data-recursive install-dvi-recursive \
-	install-exec-recursive install-html-recursive \
-	install-info-recursive install-pdf-recursive \
-	install-ps-recursive install-recursive installcheck-recursive \
-	installdirs-recursive pdf-recursive ps-recursive \
-	tags-recursive uninstall-recursive
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
-RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
-  distclean-recursive maintainer-clean-recursive
-am__recursive_targets = \
-  $(RECURSIVE_TARGETS) \
-  $(RECURSIVE_CLEAN_TARGETS) \
-  $(am__extra_recursive_targets)
-AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
-	distdir
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
-# Read a list of newline-separated strings from the standard input,
-# and print each of them once, without duplicates.  Input order is
-# *not* preserved.
-am__uniquify_input = $(AWK) '\
-  BEGIN { nonempty = 0; } \
-  { items[$$0] = 1; nonempty = 1; } \
-  END { if (nonempty) { for (i in items) print i; }; } \
-'
-# Make sure the list of sources is unique.  This is necessary because,
-# e.g., the same source file might be shared among _SOURCES variables
-# for different programs/libraries.
-am__define_uniq_tagged_files = \
-  list='$(am__tagged_files)'; \
-  unique=`for i in $$list; do \
-    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
-  done | $(am__uniquify_input)`
-ETAGS = etags
-CTAGS = ctags
-DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-am__relativize = \
-  dir0=`pwd`; \
-  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
-  sed_rest='s,^[^/]*/*,,'; \
-  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
-  sed_butlast='s,/*[^/]*$$,,'; \
-  while test -n "$$dir1"; do \
-    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
-    if test "$$first" != "."; then \
-      if test "$$first" = ".."; then \
-        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
-        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
-      else \
-        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
-        if test "$$first2" = "$$first"; then \
-          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
-        else \
-          dir2="../$$dir2"; \
-        fi; \
-        dir0="$$dir0"/"$$first"; \
-      fi; \
-    fi; \
-    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
-  done; \
-  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AET2_CFLAGS = @AET2_CFLAGS@
 AET2_LDADD = @AET2_LDADD@
@@ -287,8 +227,10 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-SUBDIRS = pccts rtlbrowse vermin bundle_for_osx fst_jni
-all: all-recursive
+EXTRA_DIST = \
+	wlf2vcd.c
+
+all: all-am
 
 .SUFFIXES:
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
@@ -300,9 +242,9 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/Makefile'; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign contrib/wlf2vcd/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign contrib/Makefile
+	  $(AUTOMAKE) --foreign contrib/wlf2vcd/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -321,106 +263,12 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(am__aclocal_m4_deps):
+tags TAGS:
 
-# This directory's subdirectories are mostly independent; you can cd
-# into them and run 'make' without going through this Makefile.
-# To change the values of 'make' variables: instead of editing Makefiles,
-# (1) if the variable is set in 'config.status', edit 'config.status'
-#     (which will cause the Makefiles to be regenerated when you run 'make');
-# (2) otherwise, pass the desired values on the 'make' command line.
-$(am__recursive_targets):
-	@fail= failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
-	dot_seen=no; \
-	target=`echo $@ | sed s/-recursive//`; \
-	case "$@" in \
-	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
-	  *) list='$(SUBDIRS)' ;; \
-	esac; \
-	for subdir in $$list; do \
-	  echo "Making $$target in $$subdir"; \
-	  if test "$$subdir" = "."; then \
-	    dot_seen=yes; \
-	    local_target="$$target-am"; \
-	  else \
-	    local_target="$$target"; \
-	  fi; \
-	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
-	done; \
-	if test "$$dot_seen" = "no"; then \
-	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
-	fi; test -z "$$fail"
-
-ID: $(am__tagged_files)
-	$(am__define_uniq_tagged_files); mkid -fID $$unique
-tags: tags-recursive
-TAGS: tags
-
-tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	set x; \
-	here=`pwd`; \
-	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
-	  include_option=--etags-include; \
-	  empty_fix=.; \
-	else \
-	  include_option=--include; \
-	  empty_fix=; \
-	fi; \
-	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    test ! -f $$subdir/TAGS || \
-	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
-	  fi; \
-	done; \
-	$(am__define_uniq_tagged_files); \
-	shift; \
-	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
-	  test -n "$$unique" || unique=$$empty_fix; \
-	  if test $$# -gt 0; then \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      "$$@" $$unique; \
-	  else \
-	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	      $$unique; \
-	  fi; \
-	fi
-ctags: ctags-recursive
-
-CTAGS: ctags
-ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
-	$(am__define_uniq_tagged_files); \
-	test -z "$(CTAGS_ARGS)$$unique" \
-	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$unique
-
-GTAGS:
-	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && $(am__cd) $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) "$$here"
-cscopelist: cscopelist-recursive
-
-cscopelist-am: $(am__tagged_files)
-	list='$(am__tagged_files)'; \
-	case "$(srcdir)" in \
-	  [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
-	  *) sdir=$(subdir)/$(srcdir) ;; \
-	esac; \
-	for i in $$list; do \
-	  if test -f "$$i"; then \
-	    echo "$(subdir)/$$i"; \
-	  else \
-	    echo "$$sdir/$$i"; \
-	  fi; \
-	done >> $(top_builddir)/cscope.files
+ctags CTAGS:
+
+cscope cscopelist:
 
-distclean-tags:
-	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
@@ -452,45 +300,19 @@ distdir: $(DISTFILES)
 	    || exit 1; \
 	  fi; \
 	done
-	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
-	  if test "$$subdir" = .; then :; else \
-	    $(am__make_dryrun) \
-	      || test -d "$(distdir)/$$subdir" \
-	      || $(MKDIR_P) "$(distdir)/$$subdir" \
-	      || exit 1; \
-	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
-	    $(am__relativize); \
-	    new_distdir=$$reldir; \
-	    dir1=$$subdir; dir2="$(top_distdir)"; \
-	    $(am__relativize); \
-	    new_top_distdir=$$reldir; \
-	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
-	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
-	    ($(am__cd) $$subdir && \
-	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$new_top_distdir" \
-	        distdir="$$new_distdir" \
-		am__remove_distdir=: \
-		am__skip_length_check=: \
-		am__skip_mode_fix=: \
-	        distdir) \
-	      || exit 1; \
-	  fi; \
-	done
 check-am: all-am
-check: check-recursive
+check: check-am
 all-am: Makefile
-installdirs: installdirs-recursive
-installdirs-am:
-install: install-recursive
-install-exec: install-exec-recursive
-install-data: install-data-recursive
-uninstall: uninstall-recursive
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
 
 install-am: all-am
 	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 
-installcheck: installcheck-recursive
+installcheck: installcheck-am
 install-strip:
 	if test -z '$(STRIP)'; then \
 	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
@@ -512,85 +334,84 @@ distclean-generic:
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-clean: clean-recursive
+clean: clean-am
 
 clean-am: clean-generic mostlyclean-am
 
-distclean: distclean-recursive
+distclean: distclean-am
 	-rm -f Makefile
-distclean-am: clean-am distclean-generic distclean-tags
+distclean-am: clean-am distclean-generic
 
-dvi: dvi-recursive
+dvi: dvi-am
 
 dvi-am:
 
-html: html-recursive
+html: html-am
 
 html-am:
 
-info: info-recursive
+info: info-am
 
 info-am:
 
 install-data-am:
 
-install-dvi: install-dvi-recursive
+install-dvi: install-dvi-am
 
 install-dvi-am:
 
 install-exec-am:
 
-install-html: install-html-recursive
+install-html: install-html-am
 
 install-html-am:
 
-install-info: install-info-recursive
+install-info: install-info-am
 
 install-info-am:
 
 install-man:
 
-install-pdf: install-pdf-recursive
+install-pdf: install-pdf-am
 
 install-pdf-am:
 
-install-ps: install-ps-recursive
+install-ps: install-ps-am
 
 install-ps-am:
 
 installcheck-am:
 
-maintainer-clean: maintainer-clean-recursive
+maintainer-clean: maintainer-clean-am
 	-rm -f Makefile
 maintainer-clean-am: distclean-am maintainer-clean-generic
 
-mostlyclean: mostlyclean-recursive
+mostlyclean: mostlyclean-am
 
 mostlyclean-am: mostlyclean-generic
 
-pdf: pdf-recursive
+pdf: pdf-am
 
 pdf-am:
 
-ps: ps-recursive
+ps: ps-am
 
 ps-am:
 
 uninstall-am:
 
-.MAKE: $(am__recursive_targets) install-am install-strip
+.MAKE: install-am install-strip
 
-.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \
-	check-am clean clean-generic cscopelist-am ctags ctags-am \
-	distclean distclean-generic distclean-tags distdir dvi dvi-am \
-	html html-am info info-am install install-am install-data \
+.PHONY: all all-am check check-am clean clean-generic cscopelist-am \
+	ctags-am distclean distclean-generic distdir dvi dvi-am html \
+	html-am info info-am install install-am install-data \
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-html install-html-am install-info \
 	install-info-am install-man install-pdf install-pdf-am \
 	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
+	installcheck-am installdirs maintainer-clean \
 	maintainer-clean-generic mostlyclean mostlyclean-generic pdf \
-	pdf-am ps ps-am tags tags-am uninstall uninstall-am
+	pdf-am ps ps-am tags-am uninstall uninstall-am
 
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/contrib/wlf2vcd/wlf2vcd.c b/contrib/wlf2vcd/wlf2vcd.c
new file mode 100644
index 0000000..968c887
--- /dev/null
+++ b/contrib/wlf2vcd/wlf2vcd.c
@@ -0,0 +1,830 @@
+/*
+ to compile: 
+ gcc -O2 -o wlf2vcd wlf2vcd.c -L ./lib -I ./include/ ./lib/libwlf.a ./lib/libtcl8.5.a -lm -lsqlite3 -lz ./lib/libucdb.a
+
+ Much faster version of wlf2vcd as compared to one bundled with Questa, etc.
+ Requires libs and headers from ModelSim.  Some libwlf.a versions don't need libucdb.a.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <inttypes.h>
+#include <time.h>
+#include "wlf_api.h"
+
+/* skips using wlfValueToString() and determines string directly from value representation */
+#define BYPASS_USING_VALUE_TO_STRING
+
+/* definition of WlfVreg from wlf_api.h */
+#define WLF2VCD_MVL4		"01zx"
+
+typedef struct WlfGlobalContext 
+{
+WlfPackId pack;
+WlfTime64 old_time;
+char *prev_hier;
+int prev_hier_len;
+unsigned int vcdid_added;
+
+unsigned int num_scopes;
+unsigned int num_symbols;
+unsigned int max_bits;
+unsigned int num_aliases;
+
+unsigned char *value_string;
+int *archive_number;
+WlfSymbolId *archive_sym;
+} WlfGlobalContext;
+
+WlfGlobalContext wgc;
+
+static void AddSymbolToCB(
+        WlfSymbolId sym,
+        unsigned int vcdid,
+        unsigned int num_bits,
+        unsigned int is_real,
+        unsigned int is_vbit,
+        unsigned int is_vreg
+        );
+
+/* structure to hold callback data */
+typedef struct cbData 
+{
+#ifdef BYPASS_USING_VALUE_TO_STRING
+void *pv;
+#endif
+WlfValueId val;
+unsigned int vcdid;
+unsigned int num_bits;
+unsigned is_real : 1;
+unsigned is_vbit : 1;
+unsigned is_vreg : 1;
+} cbData;
+
+
+char *genVcdID(char *buf, unsigned int value)
+{
+char *pnt = buf;
+unsigned int vmod;
+
+/* zero is illegal for a value...it is assumed they start at one */
+for(;;)
+        {
+        if((vmod = (value % 94)))
+                {
+                *(pnt++) = (char)(vmod + 32);
+                }
+                else
+                {
+                *(pnt++) = '~'; value -= 94;
+                }
+        value = value / 94;
+        if(!value) { break; }
+        }
+
+*pnt = 0;
+return(buf);
+}
+
+      
+/****************************************************************************** 
+//  errorExit 
+//  Prints error message to stderr and exits. 
+******************************************************************************/  
+static void errorExit(char *funcName)  
+{  
+int errorNum = wlfErrorNum();  
+fprintf(stderr, "Error: %s - %d - %s\n", funcName, wlfErrorNum(), wlfErrorMsg());  
+exit(errorNum);  
+}  
+      
+      
+/****************************************************************************** 
+//  countSubElements 
+//  Recursively enumerates the context tree information
+******************************************************************************/  
+static void countSubElements(WlfSymbolId top)
+{  
+WlfIterId iter;  
+WlfSymbolId sym;  
+int cnt;  
+
+/* create an iterator to retrieve children of top */  
+iter = wlfSymChildren64(top, wlfSelAll);  
+if(iter == NULL) return;  
+      
+/* iterate through the children */  
+while ((sym = wlfIterate(iter)) != NULL) 
+	{  
+     	cnt = wlfSymPropInt(sym, WLF_PROP_SUBELEMENT_COUNT);  
+    	WlfSymbolSel64 typ = wlfSymPropSymbolSel64(sym, WLF_PROP_SYMBOL_TYPE);
+
+	if(typ & (wlfSelVhdlScopes | wlfSelVlogScopes))
+		{
+		wgc.num_scopes++;
+		}
+		else
+            	{  
+		WlfTypeId wid = wlfSymPropTypeId(sym, WLF_PROP_TYPE_ID);
+		WlfDataType vtyp = wlfTypePropDataType(wid, WLF_TYPE_TYPE);
+
+		if(vtyp != wlfTypeArray) /* still possibly have to recurse */
+			{
+			int rgh = wlfTypePropInt(wid, WLF_TYPE_ARRAY_RIGHT);
+			int lft = wlfTypePropInt(wid, WLF_TYPE_ARRAY_LEFT);
+			int len = wlfTypePropInt(wid, WLF_TYPE_ARRAY_LENGTH);
+
+			wgc.num_symbols++;
+			if(len > wgc.max_bits) wgc.max_bits = len;
+			}
+    		} 
+      
+	/* recurse through the children, but block out bitblasted children */
+	if(cnt<=0)
+		{
+            	countSubElements(sym);  
+		}
+        }  
+
+wlfIteratorDestroy(iter);  
+}  
+
+
+/****************************************************************************** 
+//  printSubElements 
+//  Recursively prints the context tree information starting at the top and 
+//  adds elements to the symbol callback iterator. 
+******************************************************************************/  
+static void printSubElements(WlfSymbolId top)
+{  
+WlfIterId iter;  
+WlfSymbolId sym;  
+int cnt;  
+char *name;  
+char vcdid_str[10];      
+
+/* create an iterator to retrieve children of top */  
+iter = wlfSymChildren64(top, wlfSelAll);  
+if(iter == NULL) return;  
+      
+/* iterate through the children */  
+while ((sym = wlfIterate(iter)) != NULL) 
+	{  
+//	printf("\n");
+//	char *lib = wlfSymPropString(sym, WLF_PROP_LIBRARY_NAME);
+//	printf("lib: '%s'\n", lib);
+//	char *sor= wlfSymPropString(sym, WLF_PROP_SOURCE_NAME);
+//	printf("sor: '%s'\n", sor);
+//	char *pri = wlfSymPropString(sym, WLF_PROP_PRIMARY_NAME);	// component type
+//	printf("pri: '%s'\n", pri);
+//	char *sec = wlfSymPropString(sym, WLF_PROP_SECONDARY_NAME);	// secondary component type?  (VHDL?)
+//	printf("sec: '%s'\n", sec);
+//	char *exp= wlfSymPropString(sym, WLF_PROP_EXPRESSION);
+//	printf("exp: '%s'\n", exp);
+//	int ssor = wlfSymPropInt(sym, WLF_PROP_SYMBOL_SOURCE);
+//	printf("sym source: '%d'\n", ssor);
+//	char *apath = wlfSymPropString(sym, WLF_PROP_SYMBOL_ABSOLUTE_PATH);
+//	printf("abs path: '%s'\n", apath);
+//	char *dname = wlfSymPropString(sym, WLF_PROP_SYMBOL_DATASET_NAME);
+//	printf("dataset name: '%s'\n", dname);
+//	char *pat = wlfSymPropString(sym, WLF_PROP_SYMBOL_PATH);
+//	printf("path: '%s'\n", pat);
+      
+     	cnt = wlfSymPropInt(sym, WLF_PROP_SUBELEMENT_COUNT);  
+    	WlfSymbolSel64 typ = wlfSymPropSymbolSel64(sym, WLF_PROP_SYMBOL_TYPE);
+
+	int this_arch;
+	int arch = this_arch = wlfSymPropInt(sym, WLF_PROP_ARCHIVE_NUMBER);
+	int alias_ok = 0;
+	if(arch < 0)
+		{
+		if(cnt > 0)
+			{
+			WlfIterId iter2 = wlfSymChildren64(sym, wlfSelAll);
+			if(iter2)
+				{
+				WlfSymbolId sym2 = wlfIterate(iter2);
+				if(sym2)
+					{
+					arch = wlfSymPropInt(sym2, WLF_PROP_ARCHIVE_NUMBER);
+					/* NOTE: alias comparisons should really look across ALL bits, not just the first */
+					}
+				wlfIteratorDestroy(iter2);
+				}
+			}
+		}
+
+	if(arch >= 0)
+		{
+		WlfSymbolId archive_sym = wgc.archive_sym[arch];
+		if(archive_sym)
+			{
+			int archive_arch = wlfSymPropInt(archive_sym, WLF_PROP_ARCHIVE_NUMBER);
+			if((this_arch >= 0) && (archive_arch >= 0))
+				{
+				alias_ok = (this_arch == archive_arch);
+				}
+			else
+				{
+				WlfIterId this_iter = wlfSymChildren64(sym, wlfSelAll);
+				WlfIterId archive_iter = wlfSymChildren64(archive_sym, wlfSelAll);
+				WlfSymbolId this_child;
+				WlfSymbolId archive_child;
+	
+				alias_ok = 1;
+				for(;;)
+					{
+					this_child = wlfIterate(this_iter);
+					archive_child = wlfIterate(archive_iter);
+	
+					if(this_child && archive_child)
+						{
+						int this_child_arch    = wlfSymPropInt(this_child, WLF_PROP_ARCHIVE_NUMBER);
+						int archive_child_arch = wlfSymPropInt(archive_child, WLF_PROP_ARCHIVE_NUMBER);
+						if(this_child_arch != archive_child_arch)
+							{
+							alias_ok = 0;
+							break;
+							}
+						}
+					else
+					if(!this_child && !archive_child)
+						{
+						break;
+						}
+					else
+						{
+						alias_ok = 0;
+						break;
+						}
+					}
+	
+				wlfIteratorDestroy(archive_iter);
+				wlfIteratorDestroy(this_iter);
+				}
+			}
+		}
+
+	unsigned int is_real = 0;
+	unsigned int is_vbit = 0;
+	unsigned int num_bits = 0;
+	unsigned int is_vreg = 0;
+	char *vartype = NULL;
+	char *scopetype = "module";
+
+	switch(typ)
+		{
+		/* wlfSelVhdlScopes */
+		case wlfSelArchitecture:	scopetype = "architecture"; break;
+		case wlfSelBlock:		scopetype = "block"; break;
+		case wlfSelGenerate:		scopetype = "generate"; break;
+		case wlfSelPackage:		scopetype = "package"; break;
+		case wlfSelSubprogram:		scopetype = "subprogram"; break;
+		case wlfSelForeign:		scopetype = "foreign"; break;
+
+		/* wlfSelVlogScopes */
+		case wlfSelModule:		scopetype = "module"; break;
+		case wlfSelTask:		scopetype = "task"; break;
+		/* case wlfSelBlock: (same as VHDL's) */
+		case wlfSelFunction:		scopetype = "function"; break;
+		case wlfSelStatement:		scopetype = "statement"; break;
+		case wlfSelSVCovergroup:	scopetype = "covergroup"; break;
+		case wlfSelSVCoverpoint:	scopetype = "coverpoint"; break;
+		case wlfSelSVCross:		scopetype = "cross"; break;
+		case wlfSelSVClass:		scopetype = "class"; break;
+		case wlfSelSVParamClass:	scopetype = "paramclass"; break;
+		case wlfSelSVInterface:		scopetype = "interface"; break;
+		case wlfSelVlPackage:		scopetype = "package"; break;
+		case wlfSelVlGenerateBlock:	scopetype = "generate"; break;
+		case wlfSelAssertionScope:	scopetype = "assertionscope"; break;
+		case wlfSelClockingBlock:	scopetype = "clockingblock"; break;
+		case wlfSelVlTypedef:		scopetype = "typedef"; break;
+
+		/* wlfSelVlogVars */
+		case wlfSelParameter:	vartype = "parameter"; is_vbit = 1; break;
+		case wlfSelReg:		vartype = "reg"; is_vreg = 1; break;
+		case wlfSelInteger:	vartype = "integer"; is_vbit = 1; break;
+		case wlfSelTime:	vartype = "time"; is_vbit = 1; break;
+		case wlfSelReal:	vartype = "real"; is_real = 1; break;
+
+		case wlfSelSpecparam:
+		case wlfSelMemory:	break;
+		case wlfSelNamedEvent:	vartype = "event"; break;
+
+		/* wlfSelHdlSignals */
+		case wlfSelSignal:
+					break;
+
+		case wlfSelNet:		vartype = "wire"; break;
+
+		/* wlfSelHdlVars */
+		case wlfSelVariable:
+		case wlfSelConstant:
+		case wlfSelGeneric:
+		case wlfSelAlias:
+
+		default:		break;
+		}
+
+	WlfModeSel ptyp = wlfSymPropModeSel(sym, WLF_PROP_PORT_TYPE);
+
+       	name = wlfSymPropString(sym, WLF_PROP_SYMBOL_PATH);  
+	while(wgc.prev_hier_len && strncmp(name, wgc.prev_hier, wgc.prev_hier_len))
+		{
+		wgc.prev_hier[wgc.prev_hier_len - 1] = 0;
+		char *pmod = strrchr(wgc.prev_hier, '/');
+		*(pmod + 1) = 0;
+		wgc.prev_hier_len = pmod - wgc.prev_hier + 1;
+		
+		printf("$upscope $end\n");
+		}
+
+	if(typ & (wlfSelVhdlScopes | wlfSelVlogScopes))
+		{
+		char *ls = strrchr(name, '/');
+		char *sname = ls ? (ls+1) : name;
+		printf("$scope %s %s $end\n", scopetype, sname);
+
+		if(wgc.prev_hier)
+			{
+			free(wgc.prev_hier);
+			}
+
+		int hlen = strlen(name);
+		wgc.prev_hier = malloc(hlen + 1 + 1);
+		memcpy(wgc.prev_hier, name, hlen);
+		wgc.prev_hier[hlen] = '/';
+		wgc.prev_hier[(wgc.prev_hier_len = hlen + 1)] = 0;
+		}
+		else
+            	{  
+		WlfTypeId wid = wlfSymPropTypeId(sym, WLF_PROP_TYPE_ID);
+		WlfDataType vtyp = wlfTypePropDataType(wid, WLF_TYPE_TYPE);
+
+		if(vtyp != wlfTypeArray) /* still possibly have to recurse, depends on value of cnt below */
+			{
+			int rgh = wlfTypePropInt(wid, WLF_TYPE_ARRAY_RIGHT);
+			int lft = wlfTypePropInt(wid, WLF_TYPE_ARRAY_LEFT);
+			int len = wlfTypePropInt(wid, WLF_TYPE_ARRAY_LENGTH);
+
+			if((is_real) || (vtyp == wlfTypeReal) || (vtyp == wlfTypeVlogReal))
+				{
+				is_real = 1;
+				len = lft = rgh = 0;
+				vartype = "real";
+				if(64 > wgc.max_bits) wgc.max_bits = 64;
+				}
+
+	            	name = wlfSymPropString(sym, WLF_PROP_SYMBOL_PATH);  
+
+			/* add the symbol to the callback iterator if not an alias */  
+			unsigned int vcdid = 0;
+
+			if((arch >= 0) && (alias_ok))
+				{
+				vcdid = wgc.archive_number[arch];
+				}
+
+			if(!vcdid)
+				{
+		            	AddSymbolToCB(sym, ++wgc.vcdid_added, num_bits = len, is_real, is_vbit, is_vreg);  
+				vcdid = wgc.vcdid_added;
+				if(arch >= 0)
+					{
+					wgc.archive_number[arch] = vcdid;
+					wgc.archive_sym[arch] = sym;
+					}
+				}
+				else
+				{
+				if(arch >= 0)
+					{
+					wgc.archive_number[arch] = vcdid;
+					wgc.archive_sym[arch] = sym;
+					}
+
+				wgc.num_aliases++;
+				}
+
+			if((lft != rgh) && (!is_vbit) && (!is_real))
+				{
+				printf("$var %s %d %s %s [%d:%d] $end\n", vartype, len, genVcdID(vcdid_str, vcdid), strrchr(name, '/')+1, lft, rgh);
+				}
+				else
+				{
+				if(cnt && (!is_vbit) && (!is_real))
+					{
+					printf("$var %s %d %s %s [%d] $end\n", vartype, len, genVcdID(vcdid_str, vcdid), strrchr(name, '/')+1, lft);
+					}
+					else
+					{
+					printf("$var %s %d %s %s $end\n", vartype, len, genVcdID(vcdid_str, vcdid), strrchr(name, '/')+1);
+					}
+				}
+			}
+    		} 
+      
+        /* recurse through the children, but block out bitblasted children */  
+	if(cnt<=0)
+		{
+            	printSubElements(sym);  
+		}
+        }  
+
+/* status = */ wlfIteratorDestroy(iter);  
+}  
+      
+      
+/****************************************************************************** 
+//  timeCb 
+//  This function is called by the WLF reader when time advances. 
+//  Unused in the program.
+******************************************************************************/  
+static WlfCallbackResponse timeCb(   
+	void *cbData,   
+        WlfTime64 oldTime,   
+        int oldDelta)  
+{  
+return(WLF_CONTINUE_SCAN);  
+}  
+
+      
+/****************************************************************************** 
+//  sigCb 
+//  This function prints the time, the name of the signal, and its value. 
+//  This function is called by the WLF reader as events occur on  
+//  registered signals.  This function was registered with each signal  
+//  in AddSymbolToCB().
+******************************************************************************/  
+#ifdef BYPASS_USING_VALUE_TO_STRING
+
+/* faster version not using wlfValueToString() */
+
+static WlfCallbackResponse sigCb(   
+        void *data,   
+        WlfCallbackReason reason)  
+{  
+WlfValueId v = ((cbData*) data)->val;  
+WlfTime64 time;  
+int i;
+char vbuf[16];
+      
+if(reason == WLF_ENDLOG)  
+	{
+	wlfValueDestroy(v);
+	free(data); /* no longer need cbData struct as we're iterating through the end log */
+      	return(WLF_CONTINUE_SCAN);  
+	}      
+
+wlfPackTime(wgc.pack, &time);  
+
+if(time != wgc.old_time)
+	{
+	printf("#"LLDSTR"\n", time);
+	wgc.old_time = time;
+	}
+
+if(!((cbData*) data)->is_real)
+	{
+	unsigned int nbits = ((cbData*) data)->num_bits;
+	unsigned char *pv = ((cbData*) data)->pv;
+	char *value = wgc.value_string;
+
+	if(((cbData*) data)->is_vbit)
+		{
+		WlfVbit *ip = (WlfVbit *)pv;
+		int bitrvs = (nbits - 1);
+		for(i=0;i<nbits;i++)
+			{
+			int word_l = (i / ((sizeof((WlfVbit){0}).val) * 8));
+			int bit = i & (((sizeof((WlfVbit){0}).val) * 8) - 1);
+			int vl = (ip[word_l].val >> bit) & 1;	// 01 plane
+			
+			value[bitrvs--] = '0' | vl;
+			}
+		value[i] = 0;
+		}
+	else if(((cbData*) data)->is_vreg)
+		{
+		WlfVreg *ip = (WlfVreg *)pv;
+		int bitrvs = (nbits - 1);
+		for(i=0;i<nbits;i++)
+			{
+			int word_l = (i / ((sizeof((WlfVreg){0}).val) * 8));
+			int bit = i & (((sizeof((WlfVreg){0}).val) * 8) - 1);
+			int vl = (ip[word_l].val >> bit) & 1;	// 01 plane
+			int vh = (ip[word_l].unk >> bit) & 1;	// zx plane
+			
+			value[bitrvs--] = WLF2VCD_MVL4[(vh << 1) | vl];
+			}
+		value[i] = 0;
+		}
+	else
+		{
+		if(pv)
+			{
+			for(i=0;i<nbits;i++)
+				{
+				value[i] = WLF2VCD_MVL4[pv[i] & 3]; // strength info is in top-order bits
+				}
+			value[i] = 0;
+			}
+			else
+			{
+			value[0] = '1';
+			value[1] = 0;
+			}
+		}
+
+	if(nbits == 1)
+		{
+		putc(value[0], stdout);
+		puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+		}
+		else
+		{
+		putc('b', stdout);
+		fputs(value, stdout);
+		putc(' ', stdout);
+		puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+		}
+	}
+	else
+	{
+	double *d = ((cbData*) data)->pv;
+	double dv;
+
+	if(d)
+		{
+		dv = *d;
+		}
+		else
+		{
+		dv = 0.0;	/* probably should be NaN */
+		}
+
+	putc('r', stdout);
+	fprintf(stdout, "%lg", dv);
+	putc(' ', stdout);
+	puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+	}
+
+return(WLF_CONTINUE_SCAN);  
+}  
+
+#else
+
+/* slower version using wlfValueToString() */
+
+static WlfCallbackResponse sigCb(   
+        void *data,   
+        WlfCallbackReason reason)  
+{  
+WlfValueId v = ((cbData*) data)->val;  
+WlfTime64 time;  
+char *value;  
+char vbuf[16];
+      
+if(reason == WLF_ENDLOG)  
+	{
+	free(data); /* no longer need cbData struct as we're iterating through the end log */
+      	return(WLF_CONTINUE_SCAN);  
+	}      
+
+wlfPackTime(wgc.pack, &time);  
+
+if(time != wgc.old_time)
+	{
+	printf("#"LLDSTR"\n", time);
+	wgc.old_time = time;
+	}
+          
+if(!((cbData*) data)->is_real)
+	{
+	if((value=wlfValueToString(v, WLF_RADIX_BINARY, 0))==NULL)   // wgc.max_bits instead of 0 to specify explicitly
+		{
+		/* for events */
+		value = "1";
+		}
+
+	if(((cbData*) data)->num_bits == 1)
+		{
+		putc(tolower(value[0]), stdout);
+		puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+		}
+		else
+		{
+		putc('b', stdout);
+		fputs(value, stdout);
+		putc(' ', stdout);
+		puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+		}
+	}
+	else
+	{
+	if((value=wlfValueToString(v, WLF_RADIX_SYMBOLIC, 0))==NULL)  
+		{
+		value = "0";
+		}
+
+	putc('r', stdout);
+	fputs(value, stdout);
+	putc(' ', stdout);
+	puts(genVcdID(vbuf, ((cbData*) data)->vcdid));
+	}
+
+return(WLF_CONTINUE_SCAN);  
+}  
+
+#endif
+
+
+/****************************************************************************** 
+//  AddSymbolToCB 
+//  Adds a symbol to the callback iterator
+******************************************************************************/  
+static void AddSymbolToCB(   
+        WlfSymbolId sym,   
+	unsigned int vcdid,
+	unsigned int num_bits,
+	unsigned int is_real,
+	unsigned int is_vbit,
+	unsigned int is_vreg
+        )  
+{  
+int status;  
+cbData *pdata;  
+      
+if(wlfSymIsSymbolSelect64(sym, wlfSelAllSignals)) 
+	{  
+        WlfValueId val = wlfValueCreate(sym);  
+        pdata = (cbData *) malloc(sizeof(cbData));  
+        pdata->val = val;  
+#ifdef BYPASS_USING_VALUE_TO_STRING
+        pdata->pv = wlfValueGetValue(val);
+#endif
+	pdata->vcdid = vcdid;
+	pdata->num_bits = num_bits;
+	pdata->is_real = is_real;
+	pdata->is_vbit = is_vbit;
+	pdata->is_vreg = is_vreg;
+        status = wlfAddSignalEventCB(wgc.pack, sym, val, WLF_REQUEST_POSTPONED, sigCb, pdata);  
+        if(status != WLF_OK)
+		{  
+                errorExit("AddSymbolToCB");  
+		}
+        }  
+}  
+      
+      
+/****************************************************************************** 
+//  main 
+******************************************************************************/  
+int main(int argc, char **argv)  
+{  
+int status;  
+int resolution;  
+WlfFileId  wlfFile;  
+WlfSymbolId top;  
+WlfValueId val = NULL;  
+WlfFileInfo  fileInfo;  
+      
+wgc.old_time = -1ULL;
+wgc.prev_hier = NULL;
+wgc.prev_hier_len = 0;
+wgc.vcdid_added = 0;
+
+if(argc < 2) 
+	{  
+        fprintf(stderr,"Usage: %s <WLF-file>\n", argv[0]);  
+        exit(1);  
+        }  
+      
+/* Initialize the WLF api */  
+status = wlfInit();  
+if(status != WLF_OK)  
+	{
+        errorExit("wlfInit");  
+	}
+      
+/* Open the WLF File */  
+wlfFile = wlfFileOpen(argv[1], "vsim_wlf");  
+if(wlfFile == NULL)
+	{  
+        errorExit("wlfFileOpen");  
+	}
+      
+/* Check the API version */  
+status = wlfFileInfo(wlfFile, &fileInfo);  
+if(status != WLF_OK)  
+	{
+        errorExit("wlfFileInfo");  
+	}
+fprintf(stderr, "max archive num: %d\n", fileInfo.signalCount);
+wgc.archive_number = calloc(fileInfo.signalCount + 1, sizeof(int));
+wgc.archive_sym = calloc(fileInfo.signalCount + 1, sizeof(WlfSymbolId));
+        
+time_t walltime = fileInfo.creationTime;
+printf("$date\n\t%s\n$end\n", asctime(localtime(&walltime)));
+printf("$version\n\t%s\n$end\n", fileInfo.productName);
+
+/* Get the simulator resolution */  
+status = wlfFileResolution(wlfFile, &resolution);  
+if(status != WLF_OK)
+	{  
+        errorExit("wlfFileResolution");  
+	}
+      
+/* Retrieve and print out the top level context for this wlf file */  
+top = wlfFileGetTopContext(wlfFile);  
+if(top == NULL)
+	{  
+        errorExit("wlfFileGetTopContext");  
+	}
+      
+char *tscale = NULL;
+switch(resolution)
+	{
+	case WLF_TIME_RES_1FS:	tscale = "1fs"; break;
+	case WLF_TIME_RES_10FS:	tscale = "10fs"; break;
+	case WLF_TIME_RES_100FS:tscale = "100fs"; break;
+	case WLF_TIME_RES_1PS:	tscale = "1ps"; break;
+	case WLF_TIME_RES_10PS:	tscale = "10ps"; break;
+	case WLF_TIME_RES_100PS:tscale = "100ps"; break;
+	case WLF_TIME_RES_1NS:	tscale = "1ns"; break;
+	case WLF_TIME_RES_10NS:	tscale = "10ns"; break;
+	case WLF_TIME_RES_100NS:tscale = "100ns"; break;
+	case WLF_TIME_RES_1US:	tscale = "1us"; break;
+	case WLF_TIME_RES_10US:	tscale = "10us"; break;
+	case WLF_TIME_RES_100US:tscale = "100us"; break;
+	case WLF_TIME_RES_1MS:	tscale = "1ms"; break;
+	case WLF_TIME_RES_10MS:	tscale = "10ms"; break;
+	case WLF_TIME_RES_100MS:tscale = "100ms"; break;
+	case WLF_TIME_RES_1SEC:	tscale = "1s"; break;
+	case WLF_TIME_RES_10SEC:tscale = "10s"; break;
+	case WLF_TIME_RES_100SEC:tscale ="100s"; break;
+	default: tscale = "1ns"; break;
+	}
+printf("$timescale\n\t%s\n$end\n", tscale);
+       
+/* Create a callback context  */  
+wgc.pack = wlfPackCreate();  
+if(wgc.pack == NULL)  
+	{
+	errorExit("wlfPackCreate");  
+	}
+          
+/* gather symbol information */  
+countSubElements(top);  
+
+/* print out symbol information */  
+printSubElements(top);  
+fprintf(stderr, "num_scopes: %d\n", wgc.num_scopes);
+fprintf(stderr, "num_symbols: %d\n", wgc.num_symbols);
+fprintf(stderr, "max_bits: %d\n", wgc.max_bits);
+wgc.value_string = malloc(wgc.max_bits+1);
+fprintf(stderr, "num_signals %d\n", wgc.num_symbols - wgc.num_aliases);
+fprintf(stderr, "num_aliases %d\n", wgc.num_aliases);
+
+while(wgc.prev_hier_len && strncmp("/", wgc.prev_hier, wgc.prev_hier_len))
+	{ 
+        wgc.prev_hier[wgc.prev_hier_len - 1] = 0;
+        char *pmod = strrchr(wgc.prev_hier, '/');
+        *(pmod + 1) = 0;
+        wgc.prev_hier_len = pmod - wgc.prev_hier + 1;
+ 
+        printf("$upscope $end\n");
+        }
+
+printf("$enddefinitions $end\n");
+printf("$dumpvars\n");
+
+free(wgc.archive_sym); wgc.archive_sym = NULL;
+free(wgc.archive_number); wgc.archive_number = NULL;
+      
+/* Scan the data starting at time 0 through the end of file */  
+status = wlfReadDataOverRange(wgc.pack, fileInfo.startTime, fileInfo.startDelta, fileInfo.lastTime, fileInfo.lastDelta, NULL, NULL, NULL);  
+if(status != WLF_OK)  
+	{
+        errorExit("wlfReadDataOverRange");  
+	}
+      
+/* free resources */
+wlfPackDestroy(wgc.pack);
+free(wgc.value_string); wgc.value_string = NULL;
+
+/* close the file and release resources */  
+status  = wlfFileClose(wlfFile);  
+if(status != WLF_OK)  
+	{
+        errorExit("wlfFileClose");  
+	}
+      
+status = wlfCleanup();  
+if(status != WLF_OK)  
+	{
+        errorExit("wlfCleanup");  
+	}
+
+return(status);  
+}  
diff --git a/doc/gtkwave.odt b/doc/gtkwave.odt
index 99b7ae8..8ff6317 100644
Binary files a/doc/gtkwave.odt and b/doc/gtkwave.odt differ
diff --git a/man/rtlbrowse.1 b/man/rtlbrowse.1
index fe50562..5ccdc52 100644
--- a/man/rtlbrowse.1
+++ b/man/rtlbrowse.1
@@ -1,15 +1,15 @@
 .TH "RTLBROWSE" "1" "3.3.28" "Anthony Bybell" "File Viewing"
 .SH "NAME"
 .LP 
-rtlbrowse \- Allows hierarchical browsing of Verilog HDL sourcecode and library design files.  
+rtlbrowse \- Allows hierarchical browsing of Verilog HDL source code and library design files.  
 .SH "SYNTAX"
 .LP 
 rtlbrowse <\fIstemsfilename\fP>
 .SH "DESCRIPTION"
 .LP 
-Allows hierarchical browsing of Verilog HDL sourcecode and library design files.  Navigation through the hierarchy
+Allows hierarchical browsing of Verilog HDL source code and library design files.  Navigation through the hierarchy
 may be done by clicking open areas of the tree widget and clicking on the individual levels of hierarchy.  Inside the
-sourcecode, selecting the module instantiation name by double clicking or selecting part of the name through drag-clicking
+source code, selecting the module instantiation name by double clicking or selecting part of the name through drag-clicking
 will descend deeper into the RTL hierarchy.
 Note that it performs optional source code annotation
 when called as a helper application by  \fIgtkwave\fP(1) and when the primary marker is set.  Source code annotation is not 
@@ -21,7 +21,7 @@ To run this program the standard way type:
 .TP 
 rtlbrowse stemsfile
 The RTL is then brought up in a GTK tree viewer.  Stems must have been previously generated with \fIvermin\fP(1) or some other tool capable of generating compatible stemsfiles.
-Note that \fIgtkwave\fP(1) will bring up this program as a client application for sourcecode annotation.  It does that
+Note that \fIgtkwave\fP(1) will bring up this program as a client application for source code annotation.  It does that
 by bringing up the viewer with the shared memory ID of a segment of memory in the viewer rather than using a stems filename.
 .SH "AUTHORS"
 .LP 
diff --git a/man/vcd2fst.1 b/man/vcd2fst.1
index b58a5f5..0c4684a 100644
--- a/man/vcd2fst.1
+++ b/man/vcd2fst.1
@@ -1,4 +1,4 @@
-.TH "VCD2FST" "1" "3.3.52" "Anthony Bybell" "Filetype Conversion"
+.TH "VCD2FST" "1" "3.3.53" "Anthony Bybell" "Filetype Conversion"
 .SH "NAME"
 .LP 
 vcd2fst \- Converts VCD files to FST files
@@ -12,16 +12,20 @@ Converts VCD files to FST files.
 .LP 
 .TP 
 \fB\-v,\-\-vcdname\fR <\fIfilename\fP>
-Specify VCD input filename.
+Specify VCD/FSDB/VPD/WLF input filename.  Processing of filetypes other than
+VCD requires that the appropriate 2vcd converter was found during ./configure.
 .TP 
 \fB\-f,\-\-fstname\fR <\fIfilename\fP>
 Specify FST output filename.
 .TP 
+\fB\-4,\-\-fourpack\fR
+Indicates that LZ4 should be used for value change data (default).
+.TP 
 \fB\-F,\-\-fastpack\fR
-Indicates that fastlz should be used instead of gzip for block data.
+Indicates that fastlz should be used instead of LZ4 for value change data.
 .TP 
-\fB\-4,\-\-fourpack\fR
-Indicates that LZ4 should be used instead of gzip/fastlz for block data and hierarchy data.
+\fB\-4,\-\-zlibpack\fR
+Indicates that zlib should be used instead of LZ4 for value change data.
 .TP 
 \fB\-c,\-\-compress\fR
 Indicates that the entire file should be run through gzip on close.  This
diff --git a/src/analyzer.h b/src/analyzer.h
index 3bd400c..eb06210 100644
--- a/src/analyzer.h
+++ b/src/analyzer.h
@@ -1,5 +1,5 @@
 /* 
- * Copyright (c) Tony Bybell 1999-2013.
+ * Copyright (c) Tony Bybell 1999-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -73,6 +73,7 @@ enum AnalyzerBits  { AN_0, AN_X, AN_Z, AN_1, AN_H, AN_U, AN_W, AN_L, AN_DASH, AN
 #define AN_USTR_INV "1XZ0LUWH-???????"
 
 /* for writing out 4 state formats (read GHW, write LXT) */
+#define AN_STR4ST   "0xz11xz0xxxxxxxx"
 #define AN_USTR4ST  "0XZ11XZ0XXXXXXXX"
 
 /* for hex/oct conversion in baseconvert.c */
diff --git a/src/fsdb_wrapper_api.cc b/src/fsdb_wrapper_api.cc
index 68625ec..8964cab 100644
--- a/src/fsdb_wrapper_api.cc
+++ b/src/fsdb_wrapper_api.cc
@@ -19,7 +19,9 @@
 #include "ffrAPI.h"
 #include <stdio.h>
 #include <stdlib.h>
+#ifdef HAVE_INTTYPES_H
 #include <inttypes.h>
+#endif
 
 #ifndef FALSE
 #define FALSE   0
diff --git a/src/fsdb_wrapper_api.h b/src/fsdb_wrapper_api.h
index 641034e..5e2b915 100644
--- a/src/fsdb_wrapper_api.h
+++ b/src/fsdb_wrapper_api.h
@@ -22,8 +22,9 @@ extern "C" {
 #include <stdlib.h>
 #include <string.h>
 #include <ctype.h>
+#ifdef HAVE_INTTYPES_H
 #include <inttypes.h>
-
+#endif
 
 struct fsdbReaderGetStatistics_t
 {
diff --git a/src/globals.c b/src/globals.c
index a68079b..6745194 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Kermin Elliott Fleming 2007-2012.
+ * Copyright (c) Kermin Elliott Fleming 2007-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
diff --git a/src/globals.h b/src/globals.h
index 6e19a36..045ba89 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Kermin Elliott Fleming 2007-2011.
+ * Copyright (c) Kermin Elliott Fleming 2007-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
diff --git a/src/helpers/evcd2vcd.c b/src/helpers/evcd2vcd.c
index 5a2180a..22dbb5c 100644
--- a/src/helpers/evcd2vcd.c
+++ b/src/helpers/evcd2vcd.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Tony Bybell.
+ * Copyright (c) 2009-2014 Tony Bybell.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -195,7 +195,29 @@ while(!feof(f))
 			}
 
 		st = strtok(NULL, " \t");
-		len = atoi(st);
+                if(*st == '[') /* VCS extension */
+			{
+                        int p_hi = atoi(st+1);
+                        int p_lo = p_hi;
+                        char *p_colon = strchr(st+1, ':');
+                        if(p_colon)
+				{
+                                p_lo = atoi(p_colon+1);
+                                }
+
+                        if(p_hi > p_lo)
+				{
+                                len = p_hi - p_lo + 1;
+                                }
+                                else
+                                {
+                                len = p_lo - p_hi + 1;
+                                }
+			}
+			else
+			{
+			len = atoi(st);
+			}
 
 		st = strtok(NULL, " \t"); /* vcdid */
 		hash = vcdid_hash(st);
@@ -313,7 +335,7 @@ while(!feof(f))
 
 			for(;;)
 				{
-				if((*src == '\n') || (*src == '\r')) break;
+				if(!*src) break;
 				if(isspace((int)(unsigned char)*src))
 					{
 					if(pchar != ' ') { *(pnt++) = pchar = ' '; }
diff --git a/src/helpers/fst/fstapi.c b/src/helpers/fst/fstapi.c
index d25dc81..b69fa38 100644
--- a/src/helpers/fst/fstapi.c
+++ b/src/helpers/fst/fstapi.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2013 Tony Bybell.
+ * Copyright (c) 2009-2014 Tony Bybell.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -343,10 +343,10 @@ uint32_t nxt;
 
 while((nxt = v>>7))
         {
-        *(spnt++) = (v&0x7f) | 0x80;
+        *(spnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(spnt++) = (v&0x7f);
+*(spnt++) = (unsigned char)v;
 
 do      {
         *(--pnt) = *(--spnt);
@@ -362,10 +362,10 @@ uint64_t nxt;
 
 while((nxt = v>>7))
         {
-        *(pnt++) = (v&0x7f) | 0x80;
+        *(pnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(pnt++) = (v&0x7f);
+*(pnt++) = (unsigned char)v;
 
 return(pnt);
 }
@@ -493,10 +493,10 @@ int len;
 
 while((nxt = v>>7))
         {
-        *(pnt++) = (v&0x7f) | 0x80;
+        *(pnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(pnt++) = (v&0x7f);
+*(pnt++) = (unsigned char)v;
 
 len = pnt-buf;
 fstFwrite(buf, len, 1, handle);
@@ -640,10 +640,10 @@ pnt += 4;
 
 while((nxt = v>>7))
         {
-        *(pnt++) = (v&0x7f) | 0x80;
+        *(pnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(pnt++) = (v&0x7f);
+*(pnt++) = (unsigned char)v;
 memcpy(pnt, dbuf, siz);
 
 len = pnt-buf + siz;
@@ -667,18 +667,18 @@ pnt += 4;
 
 while((nxt = v>>7))
         {
-        *(pnt++) = (v&0x7f) | 0x80;
+        *(pnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(pnt++) = (v&0x7f);
+*(pnt++) = (unsigned char)v;
 
 v = siz;
 while((nxt = v>>7))
         {
-        *(pnt++) = (v&0x7f) | 0x80;
+        *(pnt++) = ((unsigned char)v) | 0x80;
         v = nxt;
         }
-*(pnt++) = (v&0x7f);
+*(pnt++) = (unsigned char)v;
 
 memcpy(pnt, dbuf, siz);
 
@@ -3615,9 +3615,9 @@ if(fv)
 	
         switch(xc->timescale)
                 {
-                case  2:        time_scale = 100;               time_dimension[0] = ' '; break;
+                case  2:        time_scale = 100;               time_dimension[0] = 0;   break;
                 case  1:        time_scale = 10;
-                case  0:                                        time_dimension[0] = ' '; break;
+                case  0:                                        time_dimension[0] = 0;   break;
 
                 case -1:        time_scale = 100;               time_dimension[0] = 'm'; break;
                 case -2:        time_scale = 10;
diff --git a/src/helpers/fst/fstapi.h b/src/helpers/fst/fstapi.h
index 032fa8e..7e07034 100644
--- a/src/helpers/fst/fstapi.h
+++ b/src/helpers/fst/fstapi.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2013 Tony Bybell.
+ * Copyright (c) 2009-2014 Tony Bybell.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
diff --git a/src/helpers/v2l_analyzer_lxt2.h b/src/helpers/v2l_analyzer_lxt2.h
index e89bb7c..9d52113 100644
--- a/src/helpers/v2l_analyzer_lxt2.h
+++ b/src/helpers/v2l_analyzer_lxt2.h
@@ -31,6 +31,9 @@
 #include <errno.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
 
 #ifndef _AIX
 #if HAVE_GETOPT_H
diff --git a/src/helpers/v2l_debug.h b/src/helpers/v2l_debug.h
index 30b1911..f028c83 100644
--- a/src/helpers/v2l_debug.h
+++ b/src/helpers/v2l_debug.h
@@ -25,6 +25,9 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
 
 struct memchunk
 {
@@ -40,8 +43,8 @@ size_t size;
  * types...
  */
 #define G_HAVE_GINT64
-#define gint64 long long
-#define guint64 unsigned long long
+#define gint64 int64_t
+#define guint64 uint64_t
 
 #ifdef G_HAVE_GINT64
 typedef gint64          TimeType; 
diff --git a/src/helpers/v2l_debug_lxt2.h b/src/helpers/v2l_debug_lxt2.h
index e2041d4..aff0525 100644
--- a/src/helpers/v2l_debug_lxt2.h
+++ b/src/helpers/v2l_debug_lxt2.h
@@ -25,6 +25,9 @@
 
 #include <stdlib.h>
 #include <stdio.h>
+#ifdef HAVE_INTTYPES_H
+#include <inttypes.h>
+#endif
 #include <wavealloca.h>
 
 struct memchunk
@@ -41,8 +44,8 @@ size_t size;
  * types...
  */
 #define G_HAVE_GINT64
-#define gint64 long long
-#define guint64 unsigned long long
+#define gint64 int64_t
+#define guint64 uint64_t
 
 #ifdef G_HAVE_GINT64
 typedef gint64          TimeType; 
diff --git a/src/helpers/vcd2fst.c b/src/helpers/vcd2fst.c
index a3b148c..5a511ab 100644
--- a/src/helpers/vcd2fst.c
+++ b/src/helpers/vcd2fst.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009-2013 Tony Bybell.
+ * Copyright (c) 2009-2014 Tony Bybell.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -418,7 +418,7 @@ for(i=0;i<len;i++)
 return(val);
 }  
 
-int pack_type = FST_WR_PT_ZLIB;  /* set to fstWriterPackType */
+int pack_type = FST_WR_PT_LZ4;  /* set to fstWriterPackType */
 int repack_all = 0; /* 0 is normal, 1 does the repack (via fstapi) at end */
 int parallel_mode = 0; /* 0 is is single threaded, 1 is multi-threaded */
 
@@ -501,7 +501,7 @@ if(!strcmp("-", vname))
 
 if(!f)
 	{
-	printf("could not open '%s', exiting.\n", vname);
+	printf("Could not open '%s', exiting.\n", vname);
 	free(bin_fixbuff); bin_fixbuff = NULL;
 	exit(255);
 	}
@@ -510,7 +510,7 @@ ctx = fstWriterCreate(fstname, 1);
 
 if(!ctx)
 	{
-	printf("could not open '%s', exiting.\n", fstname);
+	printf("Could not open '%s', exiting.\n", fstname);
 	free(bin_fixbuff); bin_fixbuff = NULL;
 	exit(255);
 	}
@@ -727,7 +727,29 @@ while(!feof(f))
 		len = atoi(st);
 		switch(vartype)
 			{
-			case FST_VT_VCD_PORT: len = (len * 3) + 2; break;
+			case FST_VT_VCD_PORT: 
+				if(*st == '[') /* VCS extension, so reparse */
+					{
+					int p_hi = atoi(st+1);
+					int p_lo = p_hi;
+					char *p_colon = strchr(st+1, ':');
+					if(p_colon)
+						{
+						p_lo = atoi(p_colon+1);
+						}
+
+					if(p_hi > p_lo)
+						{
+						len = p_hi - p_lo + 1;
+						}
+						else
+						{
+						len = p_lo - p_hi + 1;
+						}
+					}
+
+				len = (len * 3) + 2; 
+				break;
 			case FST_VT_GEN_STRING: len = 0; break;
 			case FST_VT_VCD_EVENT: len = (len != 0) ? len : 1;  break;
 			default: 
@@ -1386,7 +1408,7 @@ for(;;) /* was while(!feof(f)) */
 
 			for(;;)
 				{
-				if((*src == '\n') || (*src == '\r')) break;
+				if(!*src) break;
 				if(isspace((int)(unsigned char)*src))
 					{
 					if(pchar != ' ') { *(pnt++) = pchar = ' '; }
@@ -1404,7 +1426,8 @@ for(;;) /* was while(!feof(f)) */
 			sp = strchr(sp+1, ' ');
 			if(!sp) break;
 			*sp = 0;
-			hash = vcdid_hash(sp+1, nl - (sp+1));
+
+			hash = vcdid_hash(sp+1, strlen(sp+1)); /* nl is no longer good here */
 			if(!hash_kill)
 				{
 				fstWriterEmitValueChange(ctx, hash, bin_fixbuff);
@@ -1581,9 +1604,10 @@ printf(
 "  -v, --vcdname=FILE         specify VCD input filename\n"
 #endif
 "  -f, --fstname=FILE         specify FST output filename\n"
+"  -4, --fourpack             use lz4 algorithm for speed (default)\n"
 "  -F, --fastpack             use fastlz algorithm for speed\n"
-"  -4, --fourpack             use lz4 algorithm for speed\n"
-"  -c, --compress             compress entire file on close\n"
+"  -Z, --zlibpack             use zlib algorithm for size\n"
+"  -c, --compress             zlib compress entire file on close\n"
 "  -p, --parallel             enable parallel mode\n"
 "  -h, --help                 display this help then exit\n\n"
 
@@ -1603,9 +1627,10 @@ printf(
 "  -v FILE                    specify VCD input filename\n"
 #endif
 "  -f FILE                    specify FST output filename\n"
+"  -4                         use lz4 algorithm for speed (default)\n"
 "  -F                         use fastlz algorithm for speed\n"
-"  -4                         use lz4 algorithm for speed\n"
-"  -c                         compress entire file on close\n"
+"  -Z                         use zlib algorithm for size\n"
+"  -c                         zlib compress entire file on close\n"
 "  -p                         enable parallel mode\n"
 "  -h                         display this help then exit\n\n"
 
@@ -1645,15 +1670,16 @@ while (1)
 		{"fstname", 1, 0, 'f'},
 		{"fastpack", 0, 0, 'F'},
 		{"fourpack", 0, 0, '4'},
+		{"zlibpack", 0, 0, 'Z'},
 		{"compress", 0, 0, 'c'},
 		{"parallel", 0, 0, 'p'},
                 {"help", 0, 0, 'h'},
                 {0, 0, 0, 0}  
                 };
                 
-        c = getopt_long (argc, argv, "v:f:F4cph", long_options, &option_index);
+        c = getopt_long (argc, argv, "v:f:ZF4cph", long_options, &option_index);
 #else
-        c = getopt      (argc, argv, "v:f:F4cph");
+        c = getopt      (argc, argv, "v:f:ZF4cph");
 #endif
                         
         if (c == -1) break;     /* no more args */
@@ -1672,11 +1698,12 @@ while (1)
                         strcpy(lxname, optarg);
 			break;
 
+		case 'Z':
+			pack_type = FST_WR_PT_ZLIB;
+			break;
+
 		case 'F':
-			if(pack_type == FST_WR_PT_ZLIB)
-				{
-				pack_type = FST_WR_PT_FASTLZ;
-				}
+			pack_type = FST_WR_PT_FASTLZ;
 			break;
 
 		case '4':
diff --git a/src/helpers/vcd2lxt2.c b/src/helpers/vcd2lxt2.c
index a080c5f..56afe6f 100644
--- a/src/helpers/vcd2lxt2.c
+++ b/src/helpers/vcd2lxt2.c
@@ -47,7 +47,7 @@ int numfacs=0;
 int deadcnt=0;
 
 int opt_depth = 4;
-unsigned long long opt_break_size = 0;
+uint64_t opt_break_size = 0;
 int opt_partial_mode = -1;
 int opt_checkpoint_disable = 0;
 int opt_maxgranule = 8;
@@ -1959,7 +1959,7 @@ while (1)
 			break;
 
 		case 'b':
-			sscanf(optarg, "%llu", &opt_break_size);
+			sscanf(optarg, "%"SCNu64, &opt_break_size);
 			errno = 0;
 			break;
 
diff --git a/src/helpers/vcd2vzt.c b/src/helpers/vcd2vzt.c
index 975bea6..776f2ad 100644
--- a/src/helpers/vcd2vzt.c
+++ b/src/helpers/vcd2vzt.c
@@ -49,7 +49,7 @@ int deadcnt=0;
 int ziptype=0;
 
 int opt_depth = 4;
-unsigned long long opt_break_size = 0;
+uint64_t opt_break_size = 0;
 int opt_maxgranule = 8;
 int opt_twostate = 0;
 int opt_rle = 0;
@@ -1963,7 +1963,7 @@ while (1)
 			break;
 
 		case 'b':
-			sscanf(optarg, "%llu", &opt_break_size);
+			sscanf(optarg, "%"SCNu64, &opt_break_size);
 			errno = 0;
 			break;
 
diff --git a/src/helpers/vzt_write.c b/src/helpers/vzt_write.c
index 9600449..d69b841 100644
--- a/src/helpers/vzt_write.c
+++ b/src/helpers/vzt_write.c
@@ -547,10 +547,10 @@ nmemb=gzwrite_buffered(lt);
 return(nmemb);
 }
 
-static int vzt_wr_emit_uv64z(struct vzt_wr_trace *lt, unsigned long long v)
+static int vzt_wr_emit_uv64z(struct vzt_wr_trace *lt, vztint64_t v)
 {
 int nmemb;
-unsigned long long nxt;
+vztint64_t nxt;
 unsigned int oldpnt = lt->gzbufpnt;
 
 while((nxt = v>>7))
diff --git a/src/main.c b/src/main.c
index 6fd5559..41152af 100644
--- a/src/main.c
+++ b/src/main.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Tony Bybell 1999-2013.
+ * Copyright (c) Tony Bybell 1999-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -84,7 +84,6 @@
 
 char *gtkwave_argv0_cached = NULL;
 
-
 static void switch_page(GtkNotebook     *notebook,
 			GtkNotebookPage *page,
 			guint            page_num,
@@ -1146,6 +1145,28 @@ if(is_wish && is_vcd)
 	exit(255);
 	}
 
+
+#if defined(EXTLOAD_SUFFIX) && defined(EXTCONV_PATH)
+#if !defined(FSDB_IS_PRESENT) || !defined(FSDB_NSYS_IS_PRESENT)
+if(GLOBALS->loaded_file_name && suffix_check(GLOBALS->loaded_file_name, "."EXTLOAD_SUFFIX))
+	{
+	opt_vcd = 1;
+	}
+#endif
+#endif
+#if defined(EXT2LOAD_SUFFIX) && defined(EXT2CONV_PATH)
+if(GLOBALS->loaded_file_name && suffix_check(GLOBALS->loaded_file_name, "."EXT2LOAD_SUFFIX))
+	{
+	opt_vcd = 1;
+	}
+#endif
+#if defined(EXT3LOAD_SUFFIX) && defined(EXT3CONV_PATH)
+if(GLOBALS->loaded_file_name && suffix_check(GLOBALS->loaded_file_name, "."EXT3LOAD_SUFFIX))
+	{
+	opt_vcd = 1;
+	}
+#endif
+
 /* attempt to load a dump+save file if only a savefile is specified at the command line */
 if((GLOBALS->loaded_file_name) && (!wname) &&
 	(suffix_check(GLOBALS->loaded_file_name, ".gtkw") || suffix_check(GLOBALS->loaded_file_name, ".sav")))
diff --git a/src/menu.c b/src/menu.c
index 0ec3e44..4ca1931 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1196,7 +1196,7 @@ if(GLOBALS->helpbox_is_active)
 		" ``Hierarchy Search'' widgets are added alphanumerically: first hierarchy names as a group followed by signal names as a group."
 		" This is the default and is recommended.  When disabled, hierarchy names and signal names are interleaved together in"
 		" strict alphanumerical ordering."
-		" Note that due to the caching mechanism in ``Tree Search'', dynamically changing this flag when the widget is active "
+		" Note that due to the caching mechanism in ``Tree Search'', dynamically changing this flag when the widget is active"
 		" may not produce immediately obvious results.  Closing the widget then opening it up again will ensure that it follows the"
 		" behavior of this flag."
         );
@@ -2522,7 +2522,7 @@ menu_expand(gpointer null_data, guint callback_action, GtkWidget *widget)
 		" be placed in the cut buffer."
 		" It will function seemingly randomly"
 		" when used upon real valued single-bit traces."
-		" When used upon multi-bit vectors that contain "
+		" When used upon multi-bit vectors that contain"
 		" real valued traces, those traces will expand to their normal \"correct\" values,"
 		" not individual bits."
 		);
@@ -3600,7 +3600,7 @@ if(GLOBALS->helpbox_is_active)
 		" After selecting the options you want,"
 		" a file requester will ask for the name of the"
 		" output file to generate"
-		" that reflects the current main window display's contents. "
+		" that reflects the current main window display's contents."
 	);
 	return;
 	}
@@ -4232,7 +4232,7 @@ if(GLOBALS->helpbox_is_active)
         help_text(
                 " brings up a text requester that will ask for a"
                 " regular expression that may contain text with POSIX regular expressions."
-                " All traces meeting this criteria will be"
+                " All traces meeting this criterion / these criteria will be"
                 " unhighlighted if they are currently highlighted."
         );
         return;
@@ -4256,7 +4256,7 @@ if(GLOBALS->helpbox_is_active)
         help_text(
                 " brings up a text requester that will ask for a"
                 " regular expression that may contain text with POSIX regular expressions."
-		" All traces meeting this criteria will be"
+		" All traces meeting this criterion / these criteria will be"
 		" highlighted."
         );
         return;
@@ -4491,7 +4491,7 @@ if(GLOBALS->helpbox_is_active)
 	help_text_bold("\n\nRead Verilog Stemsfile");
 	help_text(
 		" will open a file requester that will ask for the name"
-		" of a Verilog stemsfile.  This will then launch an RTL browser and allow sourcecode annotation based on"
+		" of a Verilog stemsfile.  This will then launch an RTL browser and allow source code annotation based on"
 		" the primary marker position."
 		" Stems files are generated by Vermin.  Please see its manpage"
 		" for syntax and more information on stems file generation."
@@ -6472,7 +6472,7 @@ if(GLOBALS->helpbox_is_active)
                 " S = Analog Step\n"
                 " I = Analog Interpolated\n"
                 " R = Real\n"
-		" r = Real To Bits\n"
+		" r = Real to Bits\n"
                 " 0 = Range Fill with 0s\n"
                 " 1 = Range Fill with 1s\n"
 		" G = Binary to Gray\n"
diff --git a/src/vcd.c b/src/vcd.c
index 361d8d3..5d860ba 100644
--- a/src/vcd.c
+++ b/src/vcd.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (c) Tony Bybell 1999-2012.
+ * Copyright (c) Tony Bybell 1999-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -2629,6 +2629,7 @@ if(!GLOBALS->vcd_handle_vcd_c_1)
 	{
 	fprintf(stderr, "Error opening %s .vcd file '%s'.\n",
 		GLOBALS->vcd_is_compressed_vcd_c_1?"compressed":"", fname);
+	perror("Why");
 	vcd_exit(255);
 	}
 
diff --git a/src/vcd_recoder.c b/src/vcd_recoder.c
index 65fe030..ae08fa3 100644
--- a/src/vcd_recoder.c
+++ b/src/vcd_recoder.c
@@ -1,5 +1,5 @@
 /* 
- * Copyright (c) Tony Bybell 1999-2012.
+ * Copyright (c) Tony Bybell 1999-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -2823,6 +2823,7 @@ if(!GLOBALS->vcd_handle_vcd_recoder_c_2)
 	{
 	fprintf(stderr, "Error opening %s .vcd file '%s'.\n",
 		GLOBALS->vcd_is_compressed_vcd_recoder_c_2?"compressed":"", fname);
+	perror("Why");
 	vcd_exit(255);
 	}
 
diff --git a/src/vcd_saver.c b/src/vcd_saver.c
index e056fa0..22590e3 100644
--- a/src/vcd_saver.c
+++ b/src/vcd_saver.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Tony Bybell 2005-2011.
+ * Copyright (c) Tony Bybell 2005-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -49,7 +49,7 @@ if(!strict)
 	{
 	if(ch < AN_COUNT)
 		{
-		return(AN_USTR[ch]);
+		return(AN_STR[ch]);
 		}
 		else
 		{
@@ -60,7 +60,7 @@ else
 	{
 	if(ch < AN_COUNT)
 		{
-		return(AN_USTR4ST[ch]);
+		return(AN_STR4ST[ch]);
 		}
 		else
 		{
diff --git a/src/version.h b/src/version.h
index 9d69487..d487402 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,5 +1,5 @@
 /* 
- * Copyright (c) Tony Bybell 2010-2013.
+ * Copyright (c) Tony Bybell 2010-2014.
  *
  * This program is free software; you can redistribute it and/or
  * modify it under the terms of the GNU General Public License
@@ -10,6 +10,6 @@
 #ifndef WAVE_VERSION_H
 #define WAVE_VERSION_H
 
-#define WAVE_VERSION_INFO "GTKWave Analyzer v" PACKAGE_VERSION " (w)1999-2013 BSI"
+#define WAVE_VERSION_INFO "GTKWave Analyzer v" PACKAGE_VERSION " (w)1999-2014 BSI"
 
 #endif

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-electronics/gtkwave.git



More information about the Pkg-electronics-commits mailing list