[Pkg-electronics-commits] [gtkwave] 01/05: Imported Upstream version 3.3.79

Dr. Tobias Quathamer toddy at debian.org
Tue Jan 10 10:36:50 UTC 2017


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

toddy pushed a commit to branch master
in repository gtkwave.

commit 2b26ad75bd368df96c344ad0093c1b40ece4804e
Author: Dr. Tobias Quathamer <toddy at debian.org>
Date:   Tue Jan 10 11:24:28 2017 +0100

    Imported Upstream version 3.3.79
---
 ChangeLog                                 |   6 ++++
 LICENSE.TXT                               |  20 ++++++------
 configure                                 |  20 ++++++------
 configure.ac                              |   2 +-
 contrib/bundle_for_osx/Info-gtkwave.plist |   8 ++---
 contrib/pccts/antlr/bits.c                |   7 +++-
 doc/gtkwave.odt                           | Bin 1453969 -> 1454021 bytes
 examples/gtkwaverc                        |   6 ++++
 man/gtkwaverc.5                           |   9 ++++++
 man/twinwave.1                            |   4 +--
 src/baseconvert.c                         |   4 ++-
 src/color.c                               |   2 ++
 src/color.h                               |   2 ++
 src/globals.c                             |  13 ++++++--
 src/globals.h                             |   3 ++
 src/main.c                                |   9 ++++++
 src/menu.c                                |  52 ++++++++++++++++++++++++++++++
 src/menu.h                                |   4 ++-
 src/print.c                               |  12 ++++++-
 src/rc.c                                  |  14 ++++++++
 src/rc.h                                  |   3 ++
 src/strace.c                              |   4 +--
 src/vcd_recoder.c                         |  22 ++++++-------
 src/version.h                             |   4 +--
 src/wavewindow.c                          |  23 +++++++++++++
 25 files changed, 204 insertions(+), 49 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 726b616..0a371a2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1585,3 +1585,9 @@
 		Added HUWL-? value types to signal_change_list() to keep GHW
 		files from crashing Tcl scripts.
 3.3.78	26oct16	Fixed crash when using multiple pattern searches.
+3.3.79	31dec16	Disable accelerator keys in twinwave single window mode to
+		avoid focus conflicts.
+		Fixes for -fstrict-aliasing and other recent warnings.
+		Added fill_waveform rc variable and corresponding menu option
+		(/View/Show Filled High Values) to allow filling in the lower
+		portion of high values for increased visibility.
diff --git a/LICENSE.TXT b/LICENSE.TXT
index a054cbb..ba74530 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -1,14 +1,14 @@
 ##########################################################################
 
-GTKWave 3.3.78 Wave Viewer is Copyright (C) 1999-2016 Tony Bybell.  
-Portions of GTKWave are Copyright (C) 1999-2016 Udi Finkelstein. 
-Context support is Copyright (C) 2007-2016 Kermin Elliott Fleming.
-Trace group support is  Copyright (C) 2009-2016 Donald Baltus.
-GHW and additional GUI support is Copyright (C) 2005-2016 Tristan Gingold.
-Analog support is Copyright (C) 2005-2016 Thomas Sailer.
-External DnD support is Copyright (C) 2008-2016 Concept Engineering GmbH.
-FastLZ is Copyright (C) 2005-2016 Ariya Hidayat.
-LZ4 is Copyright (C) 2011-2016 Yann Collet.
+GTKWave 3.3.79 Wave Viewer is Copyright (C) 1999-2017 Tony Bybell.  
+Portions of GTKWave are Copyright (C) 1999-2017 Udi Finkelstein. 
+Context support is Copyright (C) 2007-2017 Kermin Elliott Fleming.
+Trace group support is  Copyright (C) 2009-2017 Donald Baltus.
+GHW and additional GUI support is Copyright (C) 2005-2017 Tristan Gingold.
+Analog support is Copyright (C) 2005-2017 Thomas Sailer.
+External DnD support is Copyright (C) 2008-2017 Concept Engineering GmbH.
+FastLZ is Copyright (C) 2005-2017 Ariya Hidayat.
+LZ4 is Copyright (C) 2011-2017 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
@@ -26,7 +26,7 @@ Franklin Street -  Suite 500, Boston, MA 02110-1335, USA.
 
 ##########################################################################
 
-PCCTS 1.33MR is Copyright (C) 1989-2016 Terence Parr, Russell Quong,
+PCCTS 1.33MR is Copyright (C) 1989-2017 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.
 
diff --git a/configure b/configure
index 96eccde..37ceabe 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.78.
+# Generated by GNU Autoconf 2.69 for gtkwave 3.3.79.
 #
 # 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.78'
-PACKAGE_STRING='gtkwave 3.3.78'
+PACKAGE_VERSION='3.3.79'
+PACKAGE_STRING='gtkwave 3.3.79'
 PACKAGE_BUGREPORT='bybell at rocketmail.com'
 PACKAGE_URL=''
 
@@ -1383,7 +1383,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.78 to adapt to many kinds of systems.
+\`configure' configures gtkwave 3.3.79 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1449,7 +1449,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of gtkwave 3.3.78:";;
+     short | recursive ) echo "Configuration of gtkwave 3.3.79:";;
    esac
   cat <<\_ACEOF
 
@@ -1595,7 +1595,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-gtkwave configure 3.3.78
+gtkwave configure 3.3.79
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2239,7 +2239,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.78, which was
+It was created by gtkwave $as_me 3.3.79, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3106,7 +3106,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gtkwave'
- VERSION='3.3.78'
+ VERSION='3.3.79'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -10997,7 +10997,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.78, which was
+This file was extended by gtkwave $as_me 3.3.79, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11063,7 +11063,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.78
+gtkwave config.status 3.3.79
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 466c95b..2f34d50 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.78, bybell at rocketmail.com)
+AC_INIT(gtkwave, 3.3.79, bybell at rocketmail.com)
 AC_CONFIG_SRCDIR([src/vcd.c])
 AM_INIT_AUTOMAKE
 AC_CONFIG_HEADER([config.h])
diff --git a/contrib/bundle_for_osx/Info-gtkwave.plist b/contrib/bundle_for_osx/Info-gtkwave.plist
index 03b9756..be5196e 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.78, (C) 1999-2016 Tony Bybell http://gtkwave.sourceforge.net</string>
+    <string>3.3.79, (C) 1999-2017 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.78</string>
+    <string>3.3.79</string>
     <key>CFBundleSignature</key>
     <string>????</string>
     <key>CFBundleVersion</key>
-    <string>3.3.78</string>
+    <string>3.3.79</string>
     <key>NSHumanReadableCopyright</key>
-    <string>Copyright 1999 - 2016 Tony Bybell, GNU General Public License.</string>
+    <string>Copyright 1999 - 2017 Tony Bybell, GNU General Public License.</string>
     <key>LSMinimumSystemVersion</key>
     <string>10.6</string>
 
diff --git a/contrib/pccts/antlr/bits.c b/contrib/pccts/antlr/bits.c
index 880c665..8221a00 100644
--- a/contrib/pccts/antlr/bits.c
+++ b/contrib/pccts/antlr/bits.c
@@ -275,7 +275,12 @@ char *eclass;
 			if ( q == NULL )
 			{
 				/* if quoted and not an expr look for eclass name */
-				q = (TermEntry *) hash_get(Tname, *((char **)&(e->elem))=StripQuotes((char *)e->elem));
+                                              /* fix to the following to avoid -fstrict-aliasing problems in compiler: */
+					      char *e_ch = StripQuotes((char *)e->elem);
+                                	      e->elem = e_ch;
+					      q = (TermEntry *) hash_get(Tname, *((char **)&(e_ch)) );
+				/* above was: q = (TermEntry *) hash_get(Tname, *((char **)&(e->elem))=StripQuotes((char *)e->elem)); */
+
 				if ( q != NULL ) t = q->token;
 			}
 			else t = q->token;
diff --git a/doc/gtkwave.odt b/doc/gtkwave.odt
index c2425ed..e459fed 100644
Binary files a/doc/gtkwave.odt and b/doc/gtkwave.odt differ
diff --git a/examples/gtkwaverc b/examples/gtkwaverc
index 8846af3..2dfeb72 100644
--- a/examples/gtkwaverc
+++ b/examples/gtkwaverc
@@ -19,6 +19,7 @@ dragzoom_threshold 0
 
 use_standard_trace_select no
 highlight_wavewindow no
+fill_waveform no
 alt_wheel_mode yes
 vcd_preserve_glitches no
 vcd_preserve_glitches_real no
@@ -86,8 +87,10 @@ color_baseline ffffff
 color_grid   202070
 color_grid2  6a5acd
 color_high   79f6f2
+color_highfill 4ca09d
 color_low    5dbebb
 color_1      00ff00
+color_1fill  004d00
 color_0      008000
 color_trans  00c000
 color_mid    c0c000
@@ -280,6 +283,9 @@ accel "/Markers/Locking/Lock to Greater Named Marker" W
 accel "/Markers/Locking/Unlock from Named Marker" O
 accel "/View/Show Grid" <Alt>G
 accel "/View/<separator>" (null)
+accel "/View/Show Wave Highlight" (null)
+accel "/View/Show Filled High Values" (null)
+accel "/View/<separator>" (null)
 accel "/View/Show Mouseover" (null)
 accel "/View/<separator>" (null)
 accel "/View/Show Base Symbols" <Alt>F1
diff --git a/man/gtkwaverc.5 b/man/gtkwaverc.5
index 6c15ffa..1297d11 100644
--- a/man/gtkwaverc.5
+++ b/man/gtkwaverc.5
@@ -51,6 +51,9 @@ trace color when 0.
 \fBcolor_1\fR <\fIvalue\fP>
 trace color when 1.
 .TP 
+\fBcolor_1fill\fR <\fIvalue\fP>
+trace color (inside of box) when 1.
+.TP 
 \fBcolor_back\fR <\fIvalue\fP>
 background color.
 .TP 
@@ -86,6 +89,9 @@ grid color for secondary pattern search.
 .TP 
 \fBcolor_high\fR <\fIvalue\fP>
 trace color when high ("H").
+.TP 
+\fBcolor_highfill\fR <\fIvalue\fP>
+trace color (inside of box) when high ("H").
 .TP
 \fBcolor_low\fR <\fIvalue\fP>
 trace color when low ("L").
@@ -204,6 +210,9 @@ causes the vcd loader to automatically generate a .sav file (vcd_autosave.sav )
 \fBenable_vert_grid\fR <\fIvalue\fP>
 A nonzero value indicates that when grid drawing is enabled, vertical lines are to be drawn. This is the default. Note that all possible combinations of enable_horiz_grid and enable_vert_grid values are acceptable.
 .TP 
+\fBfill_waveform\fR <\fIvalue\fP>
+A zero value indicates that the waveform should not be filled for 1/H values. This is the default.
+.TP 
 \fBfontname_logfile\fR <\fIvalue\fP>
 When followed by an argument, this indicates the name of the X11 font that you wish to use for the logfile browser. You may generate appropriate fontnames using the xfontsel program.
 .TP 
diff --git a/man/twinwave.1 b/man/twinwave.1
index dd68780..c6e6f6d 100644
--- a/man/twinwave.1
+++ b/man/twinwave.1
@@ -1,4 +1,4 @@
-.TH "TWINWAVE" "1" "3.3.39" "Anthony Bybell" "Simulation Wave Viewer Multiplexer"
+.TH "TWINWAVE" "1" "3.3.79" "Anthony Bybell" "Simulation Wave Viewer Multiplexer"
 .SH "NAME"
 .LP 
 twinwave \- Wraps multiple GTKWave sessions in one window or two synchronized windows
@@ -13,7 +13,7 @@ Wraps multiple GTKWave sessions with synchronized markers, horizontal scrolling,
 To run this program the standard way type:
 .TP 
 twinwave filename1.vcd filename1.sav + filename2.vcd filename2.sav
-Two synchronized viewers are then opened in one window.
+Two synchronized viewers are then opened in one window.  Note that accelerator keys for menus will be disabled as some window managers have focus issues and route keystrokes to the wrong part of the window.
 .TP 
 twinwave filename1.vcd filename1.sav ++ filename2.vcd filename2.sav
 Two synchronized viewers are then opened in two windows.
diff --git a/src/baseconvert.c b/src/baseconvert.c
index 1aebbe1..43989e1 100644
--- a/src/baseconvert.c
+++ b/src/baseconvert.c
@@ -170,6 +170,8 @@ for(i=nbits-1;i>=0;i--) /* always requires less number of bits */
 
 static void cvt_fpsdec(Trptr t, TimeType val, char *os, int len, int nbits)
 {
+(void)nbits; /* number of bits shouldn't be relevant here as we're going through a fraction */
+
 int shamt = t->t_fpdecshift;
 TimeType lpart = val >> shamt;
 TimeType rmsk = (1 << shamt);
@@ -1781,7 +1783,7 @@ if(flags&TR_REAL)
 			}
 		if(!fail)
 			{
-			retval = *(double *)&val;
+			memcpy(&retval, &val, sizeof(double)); /* otherwise strict-aliasing rules problem if retval = *(double *)&val; */
 			}
 		}
 	}
diff --git a/src/color.c b/src/color.c
index eb43b23..e072060 100644
--- a/src/color.c
+++ b/src/color.c
@@ -80,6 +80,8 @@ GLOBALS->gc.gc_vtrans_wavewindow_c_1 = ctx;
 if(!GLOBALS->keep_xz_colors)
 	{
 	GLOBALS->gc.gc_mid_wavewindow_c_1 = ctx;
+	GLOBALS->gc.gc_highfill_wavewindow_c_1 = ctx_fill;
+	GLOBALS->gc.gc_1fill_wavewindow_c_1 = ctx_fill;
 	GLOBALS->gc.gc_xfill_wavewindow_c_1 = ctx_fill;
 	GLOBALS->gc.gc_x_wavewindow_c_1 = ctx;
 	GLOBALS->gc.gc_ufill_wavewindow_c_1 = ctx_fill;
diff --git a/src/color.h b/src/color.h
index 10fc613..e873fa7 100644
--- a/src/color.h
+++ b/src/color.h
@@ -48,6 +48,7 @@ GdkGC *gc_time_wavewindow_c_1;
 GdkGC *gc_timeb_wavewindow_c_1;
 GdkGC *gc_value_wavewindow_c_1;
 GdkGC *gc_low_wavewindow_c_1;
+GdkGC *gc_highfill_wavewindow_c_1;
 GdkGC *gc_high_wavewindow_c_1;
 GdkGC *gc_trans_wavewindow_c_1;
 GdkGC *gc_mid_wavewindow_c_1;
@@ -58,6 +59,7 @@ GdkGC *gc_vtrans_wavewindow_c_1;
 GdkGC *gc_mark_wavewindow_c_1;
 GdkGC *gc_umark_wavewindow_c_1;
 GdkGC *gc_0_wavewindow_c_1;
+GdkGC *gc_1fill_wavewindow_c_1;
 GdkGC *gc_1_wavewindow_c_1;
 GdkGC *gc_ufill_wavewindow_c_1;
 GdkGC *gc_u_wavewindow_c_1;
diff --git a/src/globals.c b/src/globals.c
index 5a05862..1a28546 100644
--- a/src/globals.c
+++ b/src/globals.c
@@ -105,7 +105,7 @@ NULL, /* ae2_time_xlate */
  */
 TR_RJUSTIFY, /* default_flags 5 */
 0, /* default_fpshift */
-{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0}, /* tims 6 */
+{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.0, 0.0}, /* tims 6 */
 {0, 0, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0}, /* traces 9 */
 0, /* hier_max_level 8 */
 0, /* hier_max_level_shadow */
@@ -185,6 +185,8 @@ NULL, /* wave_gcchain */
 -1, /* color_brkred */
 -1, /* color_ltblue */
 -1, /* color_gmstrd */
+-1, /* color_highfill */
+-1, /* color_1fill */
 
 
 /*
@@ -1342,12 +1344,12 @@ NULL, /* wave_hslider */
 0, /* which_t_color */
 NULL, /* gc_white 650 */
 NULL, /* gc_black 651 */
-{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, /* gc */
+{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, /* gc */
 WAVE_RAINBOW_INITIALIZER, /* gc_rainbow */
 0, /* made_sgc_contexts_wavewindow_c_1 649 */
 0, /* fill_in_smaller_rgb_areas_wavewindow_c_1 659 */
 -1, /* prev_markertime */
-{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, /* gccache */
+{NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}, /* gccache */
 20, /* analog_redraw_skip_count */
 0, /* str_wid_x */
 0, /* str_wid_width */
@@ -1357,6 +1359,7 @@ WAVE_RAINBOW_INITIALIZER, /* gc_rainbow */
 0, /* str_wid_height */
 0, /* ruler_origin */
 0, /* ruler_step */
+0, /* fill_waveform */
 
 
 /*
@@ -1807,8 +1810,10 @@ void reload_into_new_context_2(void)
  new_globals->color_grid = GLOBALS->color_grid;
  new_globals->color_grid2 = GLOBALS->color_grid2;
  new_globals->color_high = GLOBALS->color_high;
+ new_globals->color_highfill = GLOBALS->color_highfill;
  new_globals->color_low = GLOBALS->color_low;
  new_globals->color_1 = GLOBALS->color_1;
+ new_globals->color_1fill = GLOBALS->color_1fill;
  new_globals->color_0 = GLOBALS->color_0;
  new_globals->color_mark = GLOBALS->color_mark;
  new_globals->color_mid = GLOBALS->color_mid;
@@ -1871,6 +1876,7 @@ void reload_into_new_context_2(void)
  new_globals->show_base = GLOBALS->show_base;
  new_globals->display_grid = GLOBALS->display_grid;
  new_globals->highlight_wavewindow = GLOBALS->highlight_wavewindow;
+ new_globals->fill_waveform = GLOBALS->fill_waveform;
  new_globals->use_standard_trace_select = GLOBALS->use_standard_trace_select;
  new_globals->use_big_fonts = GLOBALS->use_big_fonts;
  new_globals->use_full_precision = GLOBALS->use_full_precision;
@@ -2780,6 +2786,7 @@ switch(type)
 							GLOBALS->show_base = g_old->show_base;
 							GLOBALS->display_grid = g_old->display_grid;
 							GLOBALS->highlight_wavewindow = g_old->highlight_wavewindow;
+							GLOBALS->fill_waveform = g_old->fill_waveform;
 							GLOBALS->use_standard_trace_select = g_old->use_standard_trace_select;
 							GLOBALS->disable_mouseover = g_old->disable_mouseover;
 							GLOBALS->keep_xz_colors = g_old->keep_xz_colors;
diff --git a/src/globals.h b/src/globals.h
index b6d936e..a68a84f 100644
--- a/src/globals.h
+++ b/src/globals.h
@@ -187,6 +187,8 @@ int color_dkblue; /* from color.c 55 */
 int color_brkred;
 int color_ltblue;
 int color_gmstrd;
+int color_highfill;
+int color_1fill;
 
 
 /*
@@ -1342,6 +1344,7 @@ int str_wid_slider;
 int str_wid_height;
 TimeType ruler_origin;
 TimeType ruler_step;
+char fill_waveform;
 
 
 /*
diff --git a/src/main.c b/src/main.c
index 9182449..b8aa1ec 100644
--- a/src/main.c
+++ b/src/main.c
@@ -116,6 +116,7 @@ GLOBALS->use_full_precision = g_old->use_full_precision;
 GLOBALS->show_base = g_old->show_base;
 GLOBALS->display_grid = g_old->display_grid;
 GLOBALS->highlight_wavewindow = g_old->highlight_wavewindow;
+GLOBALS->fill_waveform = g_old->fill_waveform;
 GLOBALS->use_standard_trace_select = g_old->use_standard_trace_select;
 GLOBALS->disable_mouseover = g_old->disable_mouseover;
 GLOBALS->keep_xz_colors = g_old->keep_xz_colors;
@@ -569,8 +570,10 @@ if(!GLOBALS)
 	GLOBALS->color_grid = old_g->color_grid;
 	GLOBALS->color_grid2 = old_g->color_grid2;
 	GLOBALS->color_high = old_g->color_high;
+	GLOBALS->color_highfill = old_g->color_highfill;
 	GLOBALS->color_low = old_g->color_low;
 	GLOBALS->color_1 = old_g->color_1;
+	GLOBALS->color_1fill = old_g->color_1fill;
 	GLOBALS->color_0 = old_g->color_0;
 	GLOBALS->color_mark = old_g->color_mark;
 	GLOBALS->color_mid = old_g->color_mid;
@@ -617,6 +620,7 @@ if(!GLOBALS)
 	GLOBALS->enable_fast_exit = old_g->enable_fast_exit;
 	GLOBALS->enable_ghost_marker = old_g->enable_ghost_marker;
 	GLOBALS->enable_horiz_grid = old_g->enable_horiz_grid;
+	GLOBALS->fill_waveform = old_g->fill_waveform;
 	GLOBALS->make_vcd_save_file = old_g->make_vcd_save_file;
 	GLOBALS->enable_vert_grid = old_g->enable_vert_grid;
 	GLOBALS->force_toolbars = old_g->force_toolbars;
@@ -632,6 +636,7 @@ if(!GLOBALS)
 	GLOBALS->show_base = old_g->show_base;
 	GLOBALS->display_grid = old_g->display_grid;
 	GLOBALS->highlight_wavewindow = old_g->highlight_wavewindow;
+	GLOBALS->fill_waveform = old_g->fill_waveform;
 	GLOBALS->use_standard_trace_select = old_g->use_standard_trace_select;
 	GLOBALS->use_big_fonts = old_g->use_big_fonts;
 	GLOBALS->use_full_precision = old_g->use_full_precision;
@@ -1842,6 +1847,10 @@ if(GLOBALS->use_toolbutton_interface)
 
 		if(!GLOBALS->disable_menus)
 			{
+#ifdef WAVE_USE_XID
+			if(GLOBALS->socket_xid) kill_main_menu_accelerators();
+#endif
+
 #ifdef WAVE_USE_MLIST_T
 			menubar = alt_menu_top(GLOBALS->mainwindow);
 #else
diff --git a/src/menu.c b/src/menu.c
index 3061c33..127738f 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -7515,6 +7515,40 @@ GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1,
 }
 
 /**/
+void menu_show_filled_high_values(gpointer null_data, guint callback_action, GtkWidget *widget)
+{
+(void)null_data;
+(void)callback_action;
+(void)widget;
+
+if(GLOBALS->helpbox_is_active)
+        {
+        help_text_bold("\n\nShow Filled High Values");
+        help_text(
+		" toggles the drawing of filled in 1/H values in the waveform display."
+        );
+        }
+	else
+	{
+#ifndef WAVE_USE_MLIST_T
+	GLOBALS->fill_waveform=(GLOBALS->fill_waveform)?0:~0;
+#else
+	GLOBALS->fill_waveform = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_FILL1]));
+#endif
+	if(GLOBALS->wave_hslider)
+		{
+		gtk_signal_emit_by_name (GTK_OBJECT (GTK_ADJUSTMENT(GLOBALS->wave_hslider)),"changed");
+		gtk_signal_emit_by_name (GTK_OBJECT (GTK_ADJUSTMENT(GLOBALS->wave_hslider)),"value_changed");
+		}
+	DEBUG(printf("Show Filled High Values\n"));
+	}
+
+#ifndef WAVE_USE_MLIST_T
+GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1, menu_items[WV_MENU_FILL1].path))->active=(GLOBALS->fill_waveform)?TRUE:FALSE;
+#endif
+}
+
+/**/
 void menu_show_mouseover(gpointer null_data, guint callback_action, GtkWidget *widget)
 {
 (void)null_data;
@@ -7804,6 +7838,7 @@ static gtkwave_mlist_t menu_items[] =
     WAVE_GTKIFE("/View/Show Grid", "<Alt>G", menu_show_grid, WV_MENU_VSG, "<ToggleItem>"),
     WAVE_GTKIFE("/View/<separator>", NULL, NULL, WV_MENU_SEP9, "<Separator>"),
     WAVE_GTKIFE("/View/Show Wave Highlight", NULL, menu_show_wave_highlight, WV_MENU_SHW, "<ToggleItem>"),
+    WAVE_GTKIFE("/View/Show Filled High Values", NULL, menu_show_filled_high_values, WV_MENU_FILL1, "<ToggleItem>"),
     WAVE_GTKIFE("/View/<separator>", NULL, NULL, WV_MENU_SEP9B, "<Separator>"),
     WAVE_GTKIFE("/View/Show Mouseover", NULL, menu_show_mouseover, WV_MENU_VSMO, "<ToggleItem>"),
     WAVE_GTKIFE("/View/<separator>", NULL, NULL, WV_MENU_SEP9A, "<Separator>"),
@@ -7930,6 +7965,8 @@ GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1,
 
 GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1, menu_items[WV_MENU_SHW].path))->active=(GLOBALS->highlight_wavewindow)?TRUE:FALSE;
 
+GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1, menu_items[WV_MENU_FILL1].path))->active=(GLOBALS->fill_waveform)?TRUE:FALSE;
+
 GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1, menu_items[WV_MENU_HSWM].path))->active=(GLOBALS->alt_wheel_mode)?TRUE:FALSE;
 
 GTK_CHECK_MENU_ITEM(gtk_item_factory_get_widget(GLOBALS->item_factory_menu_c_1,menu_items[WV_MENU_VSMO].path))->active=(GLOBALS->disable_mouseover)?FALSE:TRUE;
@@ -7981,6 +8018,7 @@ GLOBALS->quiet_checkmenu = 1;
 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_VZPS]), GLOBALS->zoom_pow10_snap);
 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_VSG]), GLOBALS->display_grid);
 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_SHW]), GLOBALS->highlight_wavewindow);
+gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_FILL1]), GLOBALS->fill_waveform);
 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_HSWM]), GLOBALS->alt_wheel_mode);
 
 gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu_wlist[WV_MENU_VSMO]), !GLOBALS->disable_mouseover);
@@ -8017,6 +8055,20 @@ GLOBALS->quiet_checkmenu = 0;
 
 
 /*
+ * kill accelerator keys (e.g., if using twinwave as focus is sometimes wrong from parent window)
+ */
+void kill_main_menu_accelerators(void)
+{
+int i;
+
+for(i=0;i<WV_MENU_NUMITEMS;i++)
+	{
+	menu_items[i].accelerator = NULL;
+	}
+}
+
+
+/*
  * create the menu through an itemfactory instance
  */
 #ifndef WAVE_USE_MLIST_T
diff --git a/src/menu.h b/src/menu.h
index e7eeeb1..f1998ad 100644
--- a/src/menu.h
+++ b/src/menu.h
@@ -37,6 +37,8 @@ int file_quit_cmd_callback (GtkWidget *widget, gpointer data);
 int set_wave_menu_accelerator(char *str);
 int execute_script(char *name, int dealloc_name);
 
+void kill_main_menu_accelerators(void); /* for conflicts with twinwave */
+
 struct stringchain_t
 {
 struct stringchain_t *next;
@@ -259,6 +261,7 @@ WV_MENU_MLKOFF,
 WV_MENU_VSG,
 WV_MENU_SEP9,
 WV_MENU_SHW,
+WV_MENU_FILL1,
 WV_MENU_SEP9B,
 WV_MENU_VSMO,
 WV_MENU_SEP9A,
@@ -428,4 +431,3 @@ void osx_menu_sensitivity(gboolean tr);
 #endif
 
 #endif
-
diff --git a/src/print.c b/src/print.c
index 90f031b..158c6ee 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1300,7 +1300,7 @@ pr_draw_hptr_trace (pr_context * prc, Trptr t, hptr h, int which, int dodraw,
   int _y0, _y1, yu, liney, ytext, ysiz;
   TimeType tim, h2tim;
   hptr h2, h3;
-  char hval, h2val;
+  char hval, h2val, invert;
   char identifier_str[2];
   int is_event = t && t->n.nd && (t->n.nd->vartype == ND_VCD_EVENT);
 
@@ -1312,11 +1312,13 @@ pr_draw_hptr_trace (pr_context * prc, Trptr t, hptr h, int which, int dodraw,
     {
       _y0 = ((which + 1) * GLOBALS->fontheight) + 2;
       _y1 = liney - 2;
+      invert = 1;
     }
   else
     {
       _y1 = ((which + 1) * GLOBALS->fontheight) + 2;
       _y0 = liney - 2;
+      invert = 0;
     }
 
   yu = (_y0 + _y1) / 2;
@@ -1397,6 +1399,10 @@ pr_draw_hptr_trace (pr_context * prc, Trptr t, hptr h, int which, int dodraw,
 	      {
 	      case AN_0:	/* 0 */
 	      case AN_L:	/* 0 */
+                if(GLOBALS->fill_waveform && invert)
+                {
+		pr_draw_box (prc, _x0, _y0, _x1, _y1);
+                }
 		pr_draw_line (prc, _x0, _y0, _x1, _y0);
 
 		if (h2tim <= GLOBALS->tims.end)
@@ -1491,6 +1497,10 @@ pr_draw_hptr_trace (pr_context * prc, Trptr t, hptr h, int which, int dodraw,
 
 	      case AN_1:	/* 1 */
 	      case AN_H:	/* 1 */
+ 		if(GLOBALS->fill_waveform && !invert)
+  		{
+ 			pr_draw_box (prc, _x0, _y1, _x1, _y0);
+  		}
 		pr_draw_line (prc, _x0, _y1, _x1, _y1);
 		if (h2tim <= GLOBALS->tims.end)
 		  switch (h2val)
diff --git a/src/rc.c b/src/rc.c
index 26d06ff..51dc1c4 100644
--- a/src/rc.c
+++ b/src/rc.c
@@ -259,6 +259,13 @@ GLOBALS->enable_vert_grid=atoi_64(str)?1:0;
 return(0);
 }
 
+int f_fill_waveform(char *str)
+{
+DEBUG(printf("f_fill_waveform(\"%s\")\n",str));
+GLOBALS->fill_waveform=atoi_64(str)?1:0;
+return(0);
+}
+
 int f_fontname_logfile(char *str)
 {
 DEBUG(printf("f_fontname_logfile(\"%s\")\n",str));
@@ -767,8 +774,10 @@ color_make(baseline)
 color_make(grid)
 color_make(grid2)
 color_make(high)
+color_make(highfill)
 color_make(low)
 color_make(1)
+color_make(1fill)
 color_make(0)
 color_make(mark)
 color_make(mid)
@@ -815,6 +824,7 @@ static struct rc_entry rcitems[]=
 { "autoname_bundles", f_autoname_bundles },
 { "color_0", f_color_0 },
 { "color_1", f_color_1 },
+{ "color_1fill", f_color_1fill },
 { "color_back", f_color_back },
 { "color_baseline", f_color_baseline },
 { "color_black", f_color_black },
@@ -827,6 +837,7 @@ static struct rc_entry rcitems[]=
 { "color_grid", f_color_grid },
 { "color_grid2", f_color_grid2 },
 { "color_high", f_color_high },
+{ "color_highfill", f_color_highfill },
 { "color_low", f_color_low },
 { "color_ltblue", f_color_ltblue },
 { "color_ltgray", f_color_ltgray },
@@ -865,6 +876,7 @@ static struct rc_entry rcitems[]=
 { "enable_horiz_grid", f_enable_horiz_grid },
 { "enable_vcd_autosave", f_enable_vcd_autosave },
 { "enable_vert_grid", f_enable_vert_grid },
+{ "fill_waveform", f_fill_waveform },
 { "fontname_logfile", f_fontname_logfile },
 { "fontname_signals", f_fontname_signals },
 { "fontname_waves", f_fontname_waves },
@@ -947,8 +959,10 @@ f_color_baseline 	("ffffff"); /* white */
 f_color_grid		("202070"); /* dark dark blue */
 f_color_grid2		("6a5acd"); /* slate blue */
 f_color_high		("79f6f2"); /* light light blue */
+f_color_highfill	("4ca09d"); /* dark dark blue */
 f_color_low		("5dbebb"); /* light blue */
 f_color_1		("00ff00"); /* green */
+f_color_1fill		("004d00"); /* dark dark green */
 f_color_0		("008000"); /* dark green */
 f_color_trans		("00c000"); /* medium green */
 f_color_mid		("c0c000"); /* mustard */
diff --git a/src/rc.h b/src/rc.h
index af65095..a4f52c6 100644
--- a/src/rc.h
+++ b/src/rc.h
@@ -38,6 +38,7 @@ int  f_autocoalesce_reversal (char *str);
 int  f_autoname_bundles (char *str);
 int  f_color_0 (char *str);
 int  f_color_1 (char *str);
+int  f_color_1fill (char *str);
 int  f_color_back (char *str);
 int  f_color_baseline (char *str);
 int  f_color_black (char *str);
@@ -51,6 +52,7 @@ int  f_color_dkgray (char *str);
 int  f_color_grid (char *str);
 int  f_color_grid2 (char *str);
 int  f_color_high (char *str);
+int  f_color_highfill (char *str);
 int  f_color_low (char *str);
 int  f_color_ltgray (char *str);
 int  f_color_mark (char *str);
@@ -83,6 +85,7 @@ int  f_enable_ghost_marker (char *str);
 int  f_enable_horiz_grid (char *str);
 int  f_enable_vcd_autosave (char *str);
 int  f_enable_vert_grid (char *str);
+int  f_fill_waveform (char *str);
 int  f_fontname_logfile (char *str);
 int  f_fontname_signals (char *str);
 int  f_fontname_waves (char *str);
diff --git a/src/strace.c b/src/strace.c
index 4d8289b..4acfe19 100644
--- a/src/strace.c
+++ b/src/strace.c
@@ -197,9 +197,9 @@ if(count_active_straces() <= 1) /* only free up traces if there is only one patt
 		free_2(sd);
 		sd = sd2;
 		}
-	}
 
-GLOBALS->strace_ctx->strace_defer_free_head = NULL;
+	GLOBALS->strace_ctx->strace_defer_free_head = NULL; /* moved inside if() so it frees eventually and doesn't stay around until context cleanup */
+	}
 }
 
 /*
diff --git a/src/vcd_recoder.c b/src/vcd_recoder.c
index 148baa1..69373ea 100644
--- a/src/vcd_recoder.c
+++ b/src/vcd_recoder.c
@@ -302,8 +302,9 @@ GLOBALS->time_vlist_vcd_recoder_write value
 deltas from GLOBALS->time_vlist_vcd_recoder_write and on though stepping through list generated by vlist_emit_finalize()
 */
 
-struct vlist_packer_t *vlist_p;
-struct vlist_t * vlist_summary_index = ((struct vlist_t *)vlist_packer_create());
+struct vlist_packer_t *vlist_p = vlist_packer_create();
+struct vlist_t *vlist_summary_index;
+
 struct vcdsymbol *v = GLOBALS->vcdsymroot_vcd_recoder_c_3;
 guint64 val = (guint64)(unsigned long)GLOBALS->time_vlist_vcd_recoder_write;
 guint64 nval;
@@ -313,30 +314,29 @@ char *pnt;
 memset(buf, 0, sizeof(buf)); /* scan-build */
 
 #ifdef HAVE_SYS_STAT_H
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, (guint64)mystat->st_size);
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, (guint64)mystat->st_mtime);
+vlist_packer_emit_uv64(&vlist_p, (guint64)mystat->st_size);
+vlist_packer_emit_uv64(&vlist_p, (guint64)mystat->st_mtime);
 #else
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, (guint64)0);
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, (guint64)0);
+vlist_packer_emit_uv64(&vlist_p, (guint64)0);
+vlist_packer_emit_uv64(&vlist_p, (guint64)0);
 #endif
 
-vlist_packer_emit_uv32((struct vlist_packer_t **)(void *)&vlist_summary_index, finalize_cnt);
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, GLOBALS->time_vlist_count_vcd_recoder_c_1);
+vlist_packer_emit_uv32(&vlist_p, finalize_cnt);
+vlist_packer_emit_uv64(&vlist_p, GLOBALS->time_vlist_count_vcd_recoder_c_1);
 
-vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, val);
+vlist_packer_emit_uv64(&vlist_p, val);
 val = 0;
 while(v)
 	{
 	nptr n = v->narray[0];
 	nval = (guint64)(unsigned long)n->mv.mvlfac_vlist;
 
-	vlist_packer_emit_uv64((struct vlist_packer_t **)(void *)&vlist_summary_index, nval - val);
+	vlist_packer_emit_uv64(&vlist_p, nval - val);
 	val = nval;
 
 	v = v->next;
 	}
 
-vlist_p = (struct vlist_packer_t *)vlist_summary_index;
 vlist_packer_finalize(vlist_p);
 vlist_summary_index = vlist_p->v;
 free_2(vlist_p);
diff --git a/src/version.h b/src/version.h
index 672def7..02ab671 100644
--- a/src/version.h
+++ b/src/version.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) Tony Bybell 2010-2016.
+ * Copyright (c) Tony Bybell 2010-2017.
  *
  * 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-2016 BSI"
+#define WAVE_VERSION_INFO "GTKWave Analyzer v" PACKAGE_VERSION " (w)1999-2017 BSI"
 
 #endif
diff --git a/src/wavewindow.c b/src/wavewindow.c
index 8ef48c8..532dc64 100644
--- a/src/wavewindow.c
+++ b/src/wavewindow.c
@@ -1682,6 +1682,7 @@ if(!GLOBALS->made_gc_contexts_wavewindow_c_1)
 	GLOBALS->gc.gc_timeb_wavewindow_c_1  = alloc_color(GLOBALS->wavearea, GLOBALS->color_timeb, GLOBALS->wavearea->style->bg_gc[GTK_STATE_ACTIVE]);
 	GLOBALS->gc.gc_value_wavewindow_c_1  = alloc_color(GLOBALS->wavearea, GLOBALS->color_value, GLOBALS->wavearea->style->black_gc);
 	GLOBALS->gc.gc_low_wavewindow_c_1    = alloc_color(GLOBALS->wavearea, GLOBALS->color_low, GLOBALS->wavearea->style->black_gc);
+	GLOBALS->gc.gc_highfill_wavewindow_c_1=alloc_color(GLOBALS->wavearea, GLOBALS->color_highfill, GLOBALS->wavearea->style->bg_gc[GTK_STATE_PRELIGHT]);
 	GLOBALS->gc.gc_high_wavewindow_c_1   = alloc_color(GLOBALS->wavearea, GLOBALS->color_high, GLOBALS->wavearea->style->black_gc);
 	GLOBALS->gc.gc_trans_wavewindow_c_1  = alloc_color(GLOBALS->wavearea, GLOBALS->color_trans, GLOBALS->wavearea->style->black_gc);
 	GLOBALS->gc.gc_mid_wavewindow_c_1    = alloc_color(GLOBALS->wavearea, GLOBALS->color_mid, GLOBALS->wavearea->style->black_gc);
@@ -1707,6 +1708,7 @@ if(!GLOBALS->made_gc_contexts_wavewindow_c_1)
 #endif
 
         GLOBALS->gc.gc_0_wavewindow_c_1      = alloc_color(GLOBALS->wavearea, GLOBALS->color_0, GLOBALS->wavearea->style->black_gc);
+        GLOBALS->gc.gc_1fill_wavewindow_c_1  = alloc_color(GLOBALS->wavearea, GLOBALS->color_1fill, GLOBALS->wavearea->style->bg_gc[GTK_STATE_PRELIGHT]);
         GLOBALS->gc.gc_1_wavewindow_c_1      = alloc_color(GLOBALS->wavearea, GLOBALS->color_1, GLOBALS->wavearea->style->black_gc);
         GLOBALS->gc.gc_ufill_wavewindow_c_1  = alloc_color(GLOBALS->wavearea, GLOBALS->color_ufill, GLOBALS->wavearea->style->bg_gc[GTK_STATE_PRELIGHT]);
         GLOBALS->gc.gc_u_wavewindow_c_1      = alloc_color(GLOBALS->wavearea, GLOBALS->color_u, GLOBALS->wavearea->style->black_gc);
@@ -1717,6 +1719,7 @@ if(!GLOBALS->made_gc_contexts_wavewindow_c_1)
 
 #ifdef WAVE_DOUBLE_LINE_WIDTH_MODE
 	gdk_gc_set_line_attributes(GLOBALS->gc.gc_0_wavewindow_c_1, 2, GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_ROUND);
+	gdk_gc_set_line_attributes(GLOBALS->gc.gc_1fill_wavewindow_c_1, 2, GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_ROUND);
 	gdk_gc_set_line_attributes(GLOBALS->gc.gc_1_wavewindow_c_1, 2, GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_ROUND);
 	gdk_gc_set_line_attributes(GLOBALS->gc.gc_ufill_wavewindow_c_1, 2, GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_ROUND);
 	gdk_gc_set_line_attributes(GLOBALS->gc.gc_u_wavewindow_c_1, 2, GDK_LINE_SOLID, GDK_CAP_ROUND, GDK_JOIN_ROUND);
@@ -1805,6 +1808,7 @@ GLOBALS->gc.gc_time_wavewindow_c_1   = GLOBALS->gc_black;
 GLOBALS->gc.gc_timeb_wavewindow_c_1  = GLOBALS->gc_white;
 GLOBALS->gc.gc_value_wavewindow_c_1  = GLOBALS->gc_black;
 GLOBALS->gc.gc_low_wavewindow_c_1    = GLOBALS->gc_black;
+GLOBALS->gc.gc_highfill_wavewindow_c_1= GLOBALS->gc_black;
 GLOBALS->gc.gc_high_wavewindow_c_1   = GLOBALS->gc_black;
 GLOBALS->gc.gc_trans_wavewindow_c_1  = GLOBALS->gc_black;
 GLOBALS->gc.gc_mid_wavewindow_c_1    = GLOBALS->gc_black;
@@ -1815,6 +1819,7 @@ GLOBALS->gc.gc_vtrans_wavewindow_c_1 = GLOBALS->gc_black;
 GLOBALS->gc.gc_mark_wavewindow_c_1   = GLOBALS->gc_black;
 GLOBALS->gc.gc_umark_wavewindow_c_1  = GLOBALS->gc_black;
 GLOBALS->gc.gc_0_wavewindow_c_1      = GLOBALS->gc_black;
+GLOBALS->gc.gc_1fill_wavewindow_c_1  = GLOBALS->gc_black;
 GLOBALS->gc.gc_1_wavewindow_c_1      = GLOBALS->gc_black;
 GLOBALS->gc.gc_ufill_wavewindow_c_1  = GLOBALS->gc_black;
 GLOBALS->gc.gc_u_wavewindow_c_1      = GLOBALS->gc_black;
@@ -3326,6 +3331,15 @@ if(_x0!=_x1)
 		{
 		case AN_0:	/* 0 */
 		case AN_L:	/* L */
+		if(GLOBALS->fill_waveform && invert)
+		{
+			switch(hval)
+				{
+				case AN_0: gcxf = GLOBALS->gc.gc_1fill_wavewindow_c_1; break;
+				case AN_L: gcxf = GLOBALS->gc.gc_highfill_wavewindow_c_1; break;
+				}
+			gdk_draw_rectangle(GLOBALS->wavepixmap_wavewindow_c_1, gcxf, TRUE,_x0+1, _y0, _x1-_x0, _y1-_y0+1);
+		}
 		wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, (hval==AN_0) ? GLOBALS->gc.gc_0_wavewindow_c_1 : GLOBALS->gc.gc_low_wavewindow_c_1,_x0, _y0,_x1, _y0);
 
 		if(h2tim<=GLOBALS->tims.end)
@@ -3398,6 +3412,15 @@ if(_x0!=_x1)
 
 		case AN_1: /* 1 */
 		case AN_H: /* 1 */
+		if(GLOBALS->fill_waveform && !invert)
+		{
+			switch(hval)
+				{
+				case AN_1: gcxf = GLOBALS->gc.gc_1fill_wavewindow_c_1; break;
+				case AN_H: gcxf = GLOBALS->gc.gc_highfill_wavewindow_c_1; break;
+				}
+			gdk_draw_rectangle(GLOBALS->wavepixmap_wavewindow_c_1, gcxf, TRUE,_x0+1, _y1, _x1-_x0, _y0-_y1+1);
+		}
 		wave_gdk_draw_line(GLOBALS->wavepixmap_wavewindow_c_1, (hval==AN_1) ? GLOBALS->gc.gc_1_wavewindow_c_1 : GLOBALS->gc.gc_high_wavewindow_c_1,_x0, _y1,_x1, _y1);
 		if(h2tim<=GLOBALS->tims.end)
 		switch(h2val)

-- 
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