Hello community, here is the log from the commit of package gtkwave for openSUSE:Factory checked in at 2015-11-26 17:01:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gtkwave (Old) and /work/SRC/openSUSE:Factory/.gtkwave.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gtkwave" Changes: -------- --- /work/SRC/openSUSE:Factory/gtkwave/gtkwave.changes 2015-10-01 09:29:43.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.gtkwave.new/gtkwave.changes 2015-11-26 17:02:03.000000000 +0100 @@ -1,0 +2,6 @@ +Fri Nov 20 13:17:04 UTC 2015 - dmitr...@opensuse.org + +- Update to version 3.3.68 + * bugfix release, see included ChangeLog file for details + +------------------------------------------------------------------- Old: ---- gtkwave-3.3.67.tar.gz New: ---- gtkwave-3.3.68.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gtkwave.spec ++++++ --- /var/tmp/diff_new_pack.GvJckf/_old 2015-11-26 17:02:04.000000000 +0100 +++ /var/tmp/diff_new_pack.GvJckf/_new 2015-11-26 17:02:04.000000000 +0100 @@ -17,7 +17,7 @@ Name: gtkwave -Version: 3.3.67 +Version: 3.3.68 Release: 0 Summary: Waveform viewer for Ditital Signals License: GPL-2.0+ ++++++ gtkwave-3.3.67.tar.gz -> gtkwave-3.3.68.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/AUTHORS new/gtkwave-3.3.68/AUTHORS --- old/gtkwave-3.3.67/AUTHORS 2014-12-29 21:10:07.000000000 +0100 +++ new/gtkwave-3.3.68/AUTHORS 2015-11-05 04:49:42.000000000 +0100 @@ -1,14 +1,14 @@ -GTKWave Wave Viewer is Copyright (C) 1999-2015 Tony Bybell. -Windows compatibility and PS/MIF routines are Copyright (C) 1999-2015 Udi Finkelstein. -Context support is Copyright (C) 2007-2015 Kermin Elliott Fleming. -Trace group support is Copyright (C) 2009-2015 Donald Baltus. -GHW and additional GUI support is Copyright (C) 2005-2015 Tristan Gingold. -Analog support is Copyright (C) 2005-2015 Thomas Sailer. -External DnD support is Copyright (C) 2008-2015 Concept Engineering GmbH. -FastLZ is Copyright (C) 2005-2015 Ariya Hidayat. -PCCTS 1.33MR is Copyright (C) 1989-2015 Terence Parr, Russell Quong, Will Cohen, Hank Dietz, and Thomas Moog. +GTKWave Wave Viewer is Copyright (C) 1999-2016 Tony Bybell. +Windows compatibility and PS/MIF routines 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. +PCCTS 1.33MR is Copyright (C) 1989-2016 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-2015 Philipp Mayerhofer. -LZ4 is Copyright (C) 2011-2015 Yann Collet. +NSAlert is Copyright (C) 2011-2016 Philipp Mayerhofer. +LZ4 is Copyright (C) 2011-2016 Yann Collet. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/ChangeLog new/gtkwave-3.3.68/ChangeLog --- old/gtkwave-3.3.67/ChangeLog 2015-09-25 02:06:03.000000000 +0200 +++ new/gtkwave-3.3.68/ChangeLog 2015-11-19 02:42:19.000000000 +0100 @@ -1516,3 +1516,8 @@ Compile fixes for renamed functions and defines in gtk osx. 3.3.67 24sep15 Updated LZ4 for version r131. Fixed right justify ascii datatype display. +3.3.68 18nov15 Update copyright date. + Added named markers capability to From: and To: time value + input boxes. + Added support for fixed point binary numbers for both signed + and unsigned decimal display types. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/LICENSE.TXT new/gtkwave-3.3.68/LICENSE.TXT --- old/gtkwave-3.3.67/LICENSE.TXT 2015-07-05 21:35:36.000000000 +0200 +++ new/gtkwave-3.3.68/LICENSE.TXT 2015-11-05 01:53:59.000000000 +0100 @@ -1,14 +1,14 @@ ########################################################################## -GTKWave 3.3.66 Wave Viewer is Copyright (C) 1999-2015 Tony Bybell. -Portions of GTKWave are Copyright (C) 1999-2015 Udi Finkelstein. -Context support is Copyright (C) 2007-2015 Kermin Elliott Fleming. -Trace group support is Copyright (C) 2009-2015 Donald Baltus. -GHW and additional GUI support is Copyright (C) 2005-2015 Tristan Gingold. -Analog support is Copyright (C) 2005-2015 Thomas Sailer. -External DnD support is Copyright (C) 2008-2015 Concept Engineering GmbH. -FastLZ is Copyright (C) 2005-2015 Ariya Hidayat. -LZ4 is Copyright (C) 2011-2015 Yann Collet. +GTKWave 3.3.68 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. 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 @@ ########################################################################## -PCCTS 1.33MR is Copyright (C) 1989-2015 Terence Parr, Russell Quong, +PCCTS 1.33MR is Copyright (C) 1989-2016 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/configure new/gtkwave-3.3.68/configure --- old/gtkwave-3.3.67/configure 2015-09-10 23:38:24.000000000 +0200 +++ new/gtkwave-3.3.68/configure 2015-11-05 01:54:35.000000000 +0100 @@ -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.67. +# Generated by GNU Autoconf 2.69 for gtkwave 3.3.68. # # Report bugs to <byb...@rocketmail.com>. # @@ -580,8 +580,8 @@ # Identity of this package. PACKAGE_NAME='gtkwave' PACKAGE_TARNAME='gtkwave' -PACKAGE_VERSION='3.3.67' -PACKAGE_STRING='gtkwave 3.3.67' +PACKAGE_VERSION='3.3.68' +PACKAGE_STRING='gtkwave 3.3.68' PACKAGE_BUGREPORT='byb...@rocketmail.com' PACKAGE_URL='' @@ -1383,7 +1383,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gtkwave 3.3.67 to adapt to many kinds of systems. +\`configure' configures gtkwave 3.3.68 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1449,7 +1449,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gtkwave 3.3.67:";; + short | recursive ) echo "Configuration of gtkwave 3.3.68:";; esac cat <<\_ACEOF @@ -1595,7 +1595,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gtkwave configure 3.3.67 +gtkwave configure 3.3.68 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2239,7 +2239,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gtkwave $as_me 3.3.67, which was +It was created by gtkwave $as_me 3.3.68, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3106,7 +3106,7 @@ # Define the identity of the package. PACKAGE='gtkwave' - VERSION='3.3.67' + VERSION='3.3.68' cat >>confdefs.h <<_ACEOF @@ -10992,7 +10992,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gtkwave $as_me 3.3.67, which was +This file was extended by gtkwave $as_me 3.3.68, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11058,7 +11058,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gtkwave config.status 3.3.67 +gtkwave config.status 3.3.68 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/configure.ac new/gtkwave-3.3.68/configure.ac --- old/gtkwave-3.3.67/configure.ac 2015-09-10 23:38:24.000000000 +0200 +++ new/gtkwave-3.3.68/configure.ac 2015-11-05 01:53:59.000000000 +0100 @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ(2.59) -AC_INIT(gtkwave, 3.3.67, byb...@rocketmail.com) +AC_INIT(gtkwave, 3.3.68, byb...@rocketmail.com) AC_CONFIG_SRCDIR([src/vcd.c]) AM_INIT_AUTOMAKE AC_CONFIG_HEADER([config.h]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/contrib/bundle_for_osx/Info-gtkwave.plist new/gtkwave-3.3.68/contrib/bundle_for_osx/Info-gtkwave.plist --- old/gtkwave-3.3.67/contrib/bundle_for_osx/Info-gtkwave.plist 2015-07-05 21:34:33.000000000 +0200 +++ new/gtkwave-3.3.68/contrib/bundle_for_osx/Info-gtkwave.plist 2015-11-05 01:53:59.000000000 +0100 @@ -8,7 +8,7 @@ <key>CFBundleExecutable</key> <string>gtkwave</string> <key>CFBundleGetInfoString</key> - <string>3.3.66, (C) 1999-2015 Tony Bybell http://gtkwave.sourceforge.net</string> + <string>3.3.68, (C) 1999-2016 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.66</string> + <string>3.3.68</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleVersion</key> - <string>3.3.66</string> + <string>3.3.68</string> <key>NSHumanReadableCopyright</key> - <string>Copyright 1999 - 2015 Tony Bybell, GNU General Public License.</string> + <string>Copyright 1999 - 2016 Tony Bybell, GNU General Public License.</string> <key>LSMinimumSystemVersion</key> <string>10.6</string> Files old/gtkwave-3.3.67/doc/gtkwave.odt and new/gtkwave-3.3.68/doc/gtkwave.odt differ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/analyzer.c new/gtkwave-3.3.68/src/analyzer.c --- old/gtkwave-3.3.67/src/analyzer.c 2014-07-12 22:08:15.000000000 +0200 +++ new/gtkwave-3.3.68/src/analyzer.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2014. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -230,6 +230,8 @@ { GLOBALS->traces.dirty = 1; +t->t_fpdecshift = GLOBALS->default_fpshift; + if((GLOBALS->which_t_color > 0) && (GLOBALS->which_t_color <= WAVE_NUM_RAINBOW)) { t->t_color = GLOBALS->which_t_color; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/analyzer.h new/gtkwave-3.3.68/src/analyzer.h --- old/gtkwave-3.3.67/src/analyzer.h 2014-07-12 22:08:15.000000000 +0200 +++ new/gtkwave-3.3.68/src/analyzer.h 2015-11-19 02:42:19.000000000 +0100 @@ -500,6 +500,7 @@ int t_filter; /* transaction process filter */ unsigned int t_color; /* trace color index */ + unsigned char t_fpdecshift; /* for fixed point decimal */ unsigned is_alias : 1; /* set when it's an alias (safe to free t->name then) */ unsigned is_depacked : 1; /* set when it's been depacked from a compressed entry (safe to free t->name then) */ @@ -522,7 +523,8 @@ TR_GRP_END_B, TR_BINGRAY_B, TR_GRAYBIN_B, TR_REAL2BITS_B, TR_TTRANSLATED_B, - TR_POPCNT_B + TR_POPCNT_B, + TR_FPDECSHIFT_B }; #define TR_HIGHLIGHT (1<<TR_HIGHLIGHT_B) @@ -566,6 +568,7 @@ #define TR_TTRANSLATED (1<<TR_TTRANSLATED_B) #define TR_POPCNT (1<<TR_POPCNT_B) +#define TR_FPDECSHIFT (1<<TR_FPDECSHIFT_B) #define TR_ANALOGMASK (TR_ANALOG_STEP|TR_ANALOG_INTERPOLATED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/baseconvert.c new/gtkwave-3.3.68/src/baseconvert.c --- old/gtkwave-3.3.67/src/baseconvert.c 2015-09-25 02:06:03.000000000 +0200 +++ new/gtkwave-3.3.68/src/baseconvert.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2014. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -168,6 +168,73 @@ } +static void cvt_fpsdec(Trptr t, TimeType val, char *os, int len) +{ +int shamt = t->t_fpdecshift; +TimeType lpart = val >> shamt; +TimeType rmsk = (1 << shamt); +TimeType rbit = (val >= 0) ? (val & (rmsk-1)) : ((-val) & (rmsk-1)); +double rfrac; +char dbuf[32]; +char bigbuf[64]; + +if(rmsk) + { + rfrac = (double)rbit / (double)rmsk; + } + else + { + rfrac = 0.0; + } + +sprintf(dbuf, "%.16g", rfrac); +char *dot = strchr(dbuf, '.'); +if(dot && (dbuf[0] == '0')) + { + sprintf(bigbuf, TTFormat".%s", lpart, dot+1); + strncpy(os, bigbuf, len); + os[len-1] = 0; + } + else + { + sprintf(os, TTFormat, lpart); + } +} + +static void cvt_fpsudec(Trptr t, TimeType val, char *os, int len) +{ +int shamt = t->t_fpdecshift; +UTimeType lpart = ((UTimeType)val) >> shamt; +TimeType rmsk = (1 << shamt); +TimeType rbit = (val & (rmsk-1)); +double rfrac; +char dbuf[32]; +char bigbuf[64]; + +if(rmsk) + { + rfrac = (double)rbit / (double)rmsk; + } + else + { + rfrac = 0.0; + } + +sprintf(dbuf, "%.16g", rfrac); +char *dot = strchr(dbuf, '.'); +if(dot && (dbuf[0] == '0')) + { + sprintf(bigbuf, UTTFormat".%s", lpart, dot+1); + strncpy(os, bigbuf, len); + os[len-1] = 0; + } + else + { + sprintf(os, UTTFormat, lpart); + } +} + + /* * convert trptr+vptr into an ascii string */ @@ -605,7 +672,14 @@ if(!fail) { - sprintf(os, TTFormat, val); + if((flags&TR_FPDECSHIFT)&&(t->t_fpdecshift)) + { + cvt_fpsdec(t, val, os, len); + } + else + { + sprintf(os, TTFormat, val); + } } else { @@ -684,7 +758,14 @@ if(!fail) { - sprintf(os, UTTFormat, val); + if((flags&TR_FPDECSHIFT)&&(t->t_fpdecshift)) + { + cvt_fpsudec(t, val, os, len); + } + else + { + sprintf(os, UTTFormat, val); + } } else { @@ -1293,7 +1374,14 @@ if(!fail) { - sprintf(os, TTFormat, val); + if((flags&TR_FPDECSHIFT)&&(t->t_fpdecshift)) + { + cvt_fpsdec(t, val, os, len); + } + else + { + sprintf(os, TTFormat, val); + } } else { @@ -1372,7 +1460,14 @@ if(!fail) { - sprintf(os, UTTFormat, val); + if((flags&TR_FPDECSHIFT)&&(t->t_fpdecshift)) + { + cvt_fpsudec(t, val, os, len); + } + else + { + sprintf(os, UTTFormat, val); + } } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/currenttime.c new/gtkwave-3.3.68/src/currenttime.c --- old/gtkwave-3.3.67/src/currenttime.c 2014-05-28 06:59:41.000000000 +0200 +++ new/gtkwave-3.3.68/src/currenttime.c 2015-11-19 02:42:19.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2008. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -196,6 +196,22 @@ int i; char *pnt; +if((*s == 'M')||(*s == 'm')) + { + if(bijective_marker_id_string_len(s+1)) + { + unsigned int mkv = bijective_marker_id_string_hash(s+1); + if(mkv < WAVE_NUM_NAMED_MARKERS) + { + TimeType mkvt = GLOBALS->named_markers[mkv]; + if(mkvt != -1) + { + return(mkvt); + } + } + } + } + for(i=0;i<compar_len;i++) { if((pnt = strchr(s, (int)compar[i]))) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/currenttime.h new/gtkwave-3.3.68/src/currenttime.h --- old/gtkwave-3.3.67/src/currenttime.h 2014-05-28 06:59:41.000000000 +0200 +++ new/gtkwave-3.3.68/src/currenttime.h 2015-11-19 02:42:19.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2010 + * Copyright (c) Tony Bybell 1999-2016 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/globals.c new/gtkwave-3.3.68/src/globals.c --- old/gtkwave-3.3.67/src/globals.c 2015-05-08 05:06:51.000000000 +0200 +++ new/gtkwave-3.3.68/src/globals.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Kermin Elliott Fleming 2007-2014. + * Copyright (c) Kermin Elliott Fleming 2007-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -104,6 +104,7 @@ * analyzer.c */ 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, NULL, NULL, NULL, NULL, 0, NULL, NULL, 0}, /* traces 9 */ 0, /* hier_max_level 8 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/globals.h new/gtkwave-3.3.68/src/globals.h --- old/gtkwave-3.3.67/src/globals.h 2015-05-08 05:06:51.000000000 +0200 +++ new/gtkwave-3.3.68/src/globals.h 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Kermin Elliott Fleming 2007-2014. + * Copyright (c) Kermin Elliott Fleming 2007-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -105,6 +105,7 @@ * analyzer.c */ unsigned int default_flags; /* from analyzer.c 5 */ +unsigned int default_fpshift; Times tims; /* from analyzer.c 6 */ Traces traces; /* from analyzer.c 7 */ int hier_max_level; /* from analyzer.c 8 */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/main.c new/gtkwave-3.3.68/src/main.c --- old/gtkwave-3.3.67/src/main.c 2015-06-23 01:32:37.000000000 +0200 +++ new/gtkwave-3.3.68/src/main.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2014. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -1664,6 +1664,7 @@ read_save_helper_relative_init(wname); GLOBALS->default_flags=TR_RJUSTIFY; + GLOBALS->default_fpshift = 0; GLOBALS->shift_timebase_default_for_add=LLDescriptor(0); GLOBALS->strace_current_window = 0; /* in case there are shadow traces */ GLOBALS->which_t_color = 0; @@ -1675,6 +1676,7 @@ } GLOBALS->which_t_color = 0; GLOBALS->default_flags=TR_RJUSTIFY; + GLOBALS->default_fpshift = 0; GLOBALS->shift_timebase_default_for_add=LLDescriptor(0); if(wave_is_compressed) pclose(wave); else fclose(wave); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/markerbox.c new/gtkwave-3.3.68/src/markerbox.c --- old/gtkwave-3.3.67/src/markerbox.c 2015-05-09 01:17:16.000000000 +0200 +++ new/gtkwave-3.3.68/src/markerbox.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2014. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -45,7 +45,7 @@ } -unsigned int bijective_marker_id_string_hash(char *so) +unsigned int bijective_marker_id_string_hash(const char *so) { unsigned int val=0; int i; @@ -70,7 +70,7 @@ } -unsigned int bijective_marker_id_string_len(char *s) +unsigned int bijective_marker_id_string_len(const char *s) { int len = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/markerbox.h new/gtkwave-3.3.68/src/markerbox.h --- old/gtkwave-3.3.67/src/markerbox.h 2014-06-24 21:40:22.000000000 +0200 +++ new/gtkwave-3.3.68/src/markerbox.h 2015-11-19 02:42:19.000000000 +0100 @@ -28,8 +28,8 @@ void markerbox(char *title, GtkSignalFunc func); char *make_bijective_marker_id_string(char *buf, unsigned int value); -unsigned int bijective_marker_id_string_hash(char *so); -unsigned int bijective_marker_id_string_len(char *s); +unsigned int bijective_marker_id_string_hash(const char *so); +unsigned int bijective_marker_id_string_len(const char *s); #endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/menu.c new/gtkwave-3.3.68/src/menu.c --- old/gtkwave-3.3.67/src/menu.c 2015-06-23 01:32:37.000000000 +0200 +++ new/gtkwave-3.3.68/src/menu.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2014. + * Copyright (c) Tony Bybell 1999-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -6530,6 +6530,118 @@ } void +menu_dataformat_fpshift_on(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\nData Format-Fixed Point Shift-On"); + help_text( + " will step through all highlighted traces and ensure that" + " bits and vectors with this qualifier will be right shifted" + " prior to being displayed as Signed Decimal or Decimal values." + ); + return; + } + +dataformat( ~(TR_FPDECSHIFT), TR_FPDECSHIFT ); +} + +void +menu_dataformat_fpshift_off(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\nData Format-Fixed Point Shift-Off"); + help_text( + " will step through all highlighted traces and ensure that" + " bits and vectors with this qualifier will not be right shifted" + " prior to being displayed as Signed Decimal or Decimal values." + ); + return; + } + +dataformat( ~(TR_FPDECSHIFT), 0 ); +} + + +static void +menu_dataformat_fpshift_specify_cleanup(GtkWidget *widget, gpointer data) +{ +(void)widget; +(void)data; + + Trptr t; + int fix=0; + int shamt = GLOBALS->entrybox_text ? atoi(GLOBALS->entrybox_text) : 0; + int mask = ~(TR_FPDECSHIFT); + int patch = TR_FPDECSHIFT; + + if((shamt < 0)||(shamt > 255)) { shamt = 0; patch = 0; } + + if((t=GLOBALS->traces.first)) + { + while(t) + { + if(IsSelected(t)&&!IsShadowed(t)) + { + t->minmax_valid = 0; /* force analog traces to regenerate if necessary */ + + t->t_fpdecshift = shamt; + t->flags=((t->flags)&mask)|patch; + fix=1; + } + t=t->t_next; + } + if(fix) + { + GLOBALS->signalwindow_width_dirty=1; + MaxSignalLength(); + signalarea_configure_event(GLOBALS->signalarea, NULL); + wavearea_configure_event(GLOBALS->wavearea, NULL); + } + } + +if(GLOBALS->entrybox_text) { free_2(GLOBALS->entrybox_text); GLOBALS->entrybox_text=NULL; } +GLOBALS->signalwindow_width_dirty=1; +MaxSignalLength(); +signalarea_configure_event(GLOBALS->signalarea, NULL); +wavearea_configure_event(GLOBALS->wavearea, NULL); +} + + +void +menu_dataformat_fpshift_specify(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\nData Format-Fixed Point Shift-Specify"); + help_text( + " will open up a requester to specify a shift count then" + " will step through all highlighted traces and ensure that" + " bits and vectors with this qualifier will be right shifted" + " prior to being displayed as Signed Decimal or Decimal values." + ); + return; + } + +entrybox("Fixed Point Shift Specify",300,"",NULL,128,GTK_SIGNAL_FUNC(menu_dataformat_fpshift_specify_cleanup)); + +dataformat( ~(TR_FPDECSHIFT), 0 ); +} + +void menu_dataformat_invert_on(gpointer null_data, guint callback_action, GtkWidget *widget) { (void)null_data; @@ -7332,6 +7444,7 @@ " P = Process Filter\n" " T = Transaction Filter\n" " p = Population Count\n" + " s = Fixed Point Shift (count)\n" ); } else @@ -7465,6 +7578,9 @@ WAVE_GTKIFE("/Edit/Data Format/Gray Filters/None", NULL, menu_dataformat_nogray, WV_MENU_GBNONE, "<Item>"), WAVE_GTKIFE("/Edit/Data Format/Popcnt/On", NULL, menu_dataformat_popcnt_on, WV_MENU_POPON, "<Item>"), WAVE_GTKIFE("/Edit/Data Format/Popcnt/Off", NULL, menu_dataformat_popcnt_off, WV_MENU_POPOFF, "<Item>"), + WAVE_GTKIFE("/Edit/Data Format/Fixed Point Shift/On", NULL, menu_dataformat_fpshift_on, WV_MENU_FPSHIFTON, "<Item>"), + WAVE_GTKIFE("/Edit/Data Format/Fixed Point Shift/Off", NULL, menu_dataformat_fpshift_off, WV_MENU_FPSHIFTOFF, "<Item>"), + WAVE_GTKIFE("/Edit/Data Format/Fixed Point Shift/Specify", NULL, menu_dataformat_fpshift_specify, WV_MENU_FPSHIFTVAL, "<Item>"), WAVE_GTKIFE("/Edit/Color Format/Normal", NULL, menu_colorformat_0, WV_MENU_CLRFMT0, "<Item>"), WAVE_GTKIFE("/Edit/Color Format/Red", NULL, menu_colorformat_1, WV_MENU_CLRFMT1, "<Item>"), @@ -8134,6 +8250,9 @@ WAVE_GTKIFE("/Data Format/Gray Filters/None", NULL, menu_dataformat_nogray, WV_MENU_GBNONE, "<Item>"), WAVE_GTKIFE("/Data Format/Popcnt/On", NULL, menu_dataformat_popcnt_on, WV_MENU_POPON, "<Item>"), WAVE_GTKIFE("/Data Format/Popcnt/Off", NULL, menu_dataformat_popcnt_off, WV_MENU_POPOFF, "<Item>"), + WAVE_GTKIFE("/Data Format/Fixed Point Shift/On", NULL, menu_dataformat_fpshift_on, WV_MENU_FPSHIFTON, "<Item>"), + WAVE_GTKIFE("/Data Format/Fixed Point Shift/Off", NULL, menu_dataformat_fpshift_off, WV_MENU_FPSHIFTOFF, "<Item>"), + WAVE_GTKIFE("/Data Format/Fixed Point Shift/Specify", NULL, menu_dataformat_fpshift_specify, WV_MENU_FPSHIFTVAL, "<Item>"), WAVE_GTKIFE("/Color Format/Normal", NULL, menu_colorformat_0, WV_MENU_CLRFMT0, "<Item>"), WAVE_GTKIFE("/Color Format/Red", NULL, menu_colorformat_1, WV_MENU_CLRFMT1, "<Item>"), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/menu.h new/gtkwave-3.3.68/src/menu.h --- old/gtkwave-3.3.67/src/menu.h 2014-08-20 00:08:35.000000000 +0200 +++ new/gtkwave-3.3.68/src/menu.h 2015-11-19 02:42:19.000000000 +0100 @@ -162,6 +162,9 @@ WV_MENU_GBNONE, WV_MENU_POPON, WV_MENU_POPOFF, +WV_MENU_FPSHIFTON, +WV_MENU_FPSHIFTOFF, +WV_MENU_FPSHIFTVAL, WV_MENU_CLRFMT0, WV_MENU_CLRFMT1, WV_MENU_CLRFMT2, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/mouseover.c new/gtkwave-3.3.68/src/mouseover.c --- old/gtkwave-3.3.67/src/mouseover.c 2014-05-28 06:59:41.000000000 +0200 +++ new/gtkwave-3.3.68/src/mouseover.c 2015-11-19 02:42:19.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 2006-2014. + * Copyright (c) Tony Bybell 2006-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -25,8 +25,9 @@ /************************************************************************************************/ -static int determine_trace_flags(unsigned int flags, char *ch) +static int determine_trace_flags(Trptr t, char *ch) { +unsigned int flags = t->flags; int pos = 0; /* [0] */ @@ -85,7 +86,14 @@ /* [14] */ if((flags & TR_POPCNT) != 0) { ch[pos++] = 'p'; } -/* [15] (at worst case this needs 16 characters) */ +/* [15] */ +if((flags & TR_FPDECSHIFT) != 0) + { + int ln = sprintf(ch+pos, "s(%d)", t->t_fpdecshift); + pos += ln; + } + +/* [16+] */ ch[pos] = 0; return(pos); @@ -289,7 +297,7 @@ name_charlen = t->name ? strlen(t->name) : 0; if(name_charlen) { - int len = determine_trace_flags(t->flags, flag_string); + int len = determine_trace_flags(t, flag_string); flagged_name = malloc_2(name_charlen + 1 + len + 1); memcpy(flagged_name, t->name, name_charlen); flagged_name[name_charlen] = ' '; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/mouseover_sigs.c new/gtkwave-3.3.68/src/mouseover_sigs.c --- old/gtkwave-3.3.67/src/mouseover_sigs.c 2014-05-28 06:59:41.000000000 +0200 +++ new/gtkwave-3.3.68/src/mouseover_sigs.c 2015-11-19 02:42:19.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 2006-2014. + * Copyright (c) Tony Bybell 2006-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -112,7 +112,14 @@ /* [14] */ if((flags & TR_POPCNT) != 0) { ch[pos++] = 'p'; } -/* [15] (at worst case this needs 16 characters) */ +/* [15] */ +if((flags & TR_FPDECSHIFT) != 0) + { + int ln = sprintf(ch+pos, "s(%d)", t->t_fpdecshift); + pos += ln; + } + +/* [16+] */ ch[pos] = 0; if(!t->vector) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/savefile.c new/gtkwave-3.3.68/src/savefile.c --- old/gtkwave-3.3.67/src/savefile.c 2015-06-23 01:32:37.000000000 +0200 +++ new/gtkwave-3.3.68/src/savefile.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 2012-2013. + * Copyright (c) Tony Bybell 2012-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -270,6 +270,10 @@ { fprintf(wave, "[color] %d\n", t->t_color); } + if(t->flags & TR_FPDECSHIFT) + { + fprintf(wave, "[fpshift_count] %d\n", t->t_fpdecshift); + } if(t->flags & TR_FTRANSLATED) { @@ -810,6 +814,7 @@ } GLOBALS->default_flags=TR_RJUSTIFY; + GLOBALS->default_fpshift=0; GLOBALS->shift_timebase_default_for_add=LLDescriptor(0); GLOBALS->strace_current_window = 0; /* in case there are shadow traces */ @@ -846,6 +851,7 @@ } GLOBALS->default_flags=TR_RJUSTIFY; + GLOBALS->default_fpshift=0; GLOBALS->shift_timebase_default_for_add=LLDescriptor(0); update_markertime(GLOBALS->tims.marker); if(wave_is_compressed) pclose(wave); else fclose(wave); @@ -1569,6 +1575,16 @@ GLOBALS->which_t_color = 0; } } + else if (strcmp (w2, "fpshift_count") == 0) + { + int fpshift_count = 0; + sscanf (w, "%d", &fpshift_count); + if((fpshift_count<0)||(fpshift_count>255)) + { + fpshift_count = 0; + } + GLOBALS->default_fpshift = fpshift_count; + } else if (strcmp (w2, "pattern_trace") == 0) { int which_ctx = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/tcl_helper.c new/gtkwave-3.3.68/src/tcl_helper.c --- old/gtkwave-3.3.67/src/tcl_helper.c 2014-08-11 02:38:54.000000000 +0200 +++ new/gtkwave-3.3.68/src/tcl_helper.c 2015-11-19 07:58:08.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell and Concept Engineering GmbH 2008-2014. + * Copyright (c) Tony Bybell and Concept Engineering GmbH 2008-2016. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -896,6 +896,7 @@ most_recent_lbrack_list = calloc_2(c, sizeof(char *)); GLOBALS->default_flags=TR_RJUSTIFY; +GLOBALS->default_fpshift=0; GLOBALS->strace_current_window = 0; /* in case there are shadow traces; in reality this should never happen */ @@ -1214,6 +1215,7 @@ paste_routine: GLOBALS->default_flags=TR_RJUSTIFY; +GLOBALS->default_fpshift=0; GLOBALS->traces.buffercount=GLOBALS->traces.total; GLOBALS->traces.buffer=GLOBALS->traces.first; @@ -2046,6 +2048,12 @@ WAVE_OE_ME } + if(t->t_fpdecshift) + { + one_entry = make_message("[fpshift_count] %d\n", t->t_fpdecshift); + WAVE_OE_ME + } + if((t->shift)||((prevshift)&&(!t->shift))) { one_entry = make_message(">"TTFormat"\n", t->shift); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/timeentry.c new/gtkwave-3.3.68/src/timeentry.c --- old/gtkwave-3.3.67/src/timeentry.c 2014-07-14 02:42:28.000000000 +0200 +++ new/gtkwave-3.3.68/src/timeentry.c 2015-11-19 02:42:19.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 1999-2008 + * Copyright (c) Tony Bybell 1999-2016 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -100,7 +100,7 @@ newhi=unformat_time(entry_text, GLOBALS->time_dimension); newhi -= GLOBALS->global_time_offset; -if(newhi>GLOBALS->max_time) +if((newhi>GLOBALS->max_time) || (!strlen(entry_text))) /* null string makes max time */ { newhi=GLOBALS->max_time; } @@ -150,7 +150,7 @@ gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(box), GLOBALS->from_entry, TRUE, TRUE, 0); gtk_widget_set_usize(GTK_WIDGET(GLOBALS->from_entry), 90, 22); -gtk_tooltips_set_tip_2(tooltips, GLOBALS->from_entry, "Scroll Lower Bound", NULL); +gtk_tooltips_set_tip_2(tooltips, GLOBALS->from_entry, "Scroll Lower Bound (use MX for named marker X)", NULL); gtk_widget_show(GLOBALS->from_entry); @@ -166,7 +166,7 @@ gtk_widget_show(label2); gtk_box_pack_start(GTK_BOX(box2), GLOBALS->to_entry, TRUE, TRUE, 0); gtk_widget_set_usize(GTK_WIDGET(GLOBALS->to_entry), 90, 22); -gtk_tooltips_set_tip_2(tooltips, GLOBALS->to_entry, "Scroll Upper Bound", NULL); +gtk_tooltips_set_tip_2(tooltips, GLOBALS->to_entry, "Scroll Upper Bound (use MX for named marker X)", NULL); gtk_widget_show(GLOBALS->to_entry); if(!GLOBALS->use_toolbutton_interface) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gtkwave-3.3.67/src/version.h new/gtkwave-3.3.68/src/version.h --- old/gtkwave-3.3.67/src/version.h 2015-03-10 19:55:01.000000000 +0100 +++ new/gtkwave-3.3.68/src/version.h 2015-11-05 04:49:42.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) Tony Bybell 2010-2015. + * Copyright (c) Tony Bybell 2010-2016. * * 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-2015 BSI" +#define WAVE_VERSION_INFO "GTKWave Analyzer v" PACKAGE_VERSION " (w)1999-2016 BSI" #endif