control: tags -1 patch pending Hello, I'm uploading in deferred/10 the fixed new release, debdiff attached.
you can also grab it from here http://debomatic-amd64.debian.net/distribution#unstable/odin/2.0.3-0.1/buildlog G. On Mon, 12 Dec 2016 15:28:44 +0100 Thies Jochimsen <th...@jochimsen.de> wrote: > Hi Michael, > just tested it on a current Debian stretch. It looks fine with the following > Qt5/Qwt6 packages installed: > > dpkg -l | grep 'libqt5\|libqwt' | grep ^ii > ii libqt5concurrent5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 concurrent module > ii libqt5core5a:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 core module > ii libqt5dbus5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 D-Bus module > ii libqt5designer5:amd64 5.7.1~20161021-2 > amd64 Qt 5 designer module > ii libqt5gui5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 GUI module > ii libqt5network5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 network module > ii libqt5opengl5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 OpenGL module > ii libqt5opengl5-dev:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 OpenGL library development files > ii libqt5printsupport5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 print support module > ii libqt5qml5:amd64 5.7.1~20161021-5 > amd64 Qt 5 QML module > ii libqt5quick5:amd64 5.7.1~20161021-5 > amd64 Qt 5 Quick library > ii libqt5sql5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 SQL module > ii libqt5sql5-sqlite:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 SQLite 3 database driver > ii libqt5svg5:amd64 5.7.1~20161021-2 > amd64 Qt 5 SVG module > ii libqt5test5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 test module > ii libqt5webkit5:amd64 5.7.1~20161021+dfsg-2 > amd64 Web content engine library for Qt > ii libqt5widgets5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 widgets module > ii libqt5xml5:amd64 5.7.1~20161021+dfsg-6 > amd64 Qt 5 XML module > ii libqwt-dev 6.1.2-6 > amd64 Qt widgets library for technical applications (development, qt4) > ii libqwt-headers 6.1.2-6 > amd64 Qt widgets library for technical applications (header files) > ii libqwt-qt5-6 6.1.2-6 > amd64 Qt widgets library for technical applications (runtime, qt5) > ii libqwt-qt5-dev 6.1.2-6 > amd64 Qt widgets library for technical applications (development, qt5) > ii libqwt6abi1 6.1.2-6 > amd64 Qt widgets library for technical applications (runtime, qt4) > > > > And here is the relevant part during configure: > > configure: Environment variable QTDIR not specified, searching for Qt: > checking for /usr/include//qt5/qglobal.h... no > checking for /usr/include/x86_64-linux-gnu/qt5/qglobal.h... no > checking for /usr/share/qt5/include/qglobal.h... no
diff -Nru odin-2.0.2/aclocal.m4 odin-2.0.3/aclocal.m4 --- odin-2.0.2/aclocal.m4 2016-05-30 12:27:09.000000000 +0200 +++ odin-2.0.3/aclocal.m4 2016-11-08 10:05:37.000000000 +0100 @@ -744,7 +744,6 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. diff -Nru odin-2.0.2/ChangeLog odin-2.0.3/ChangeLog --- odin-2.0.2/ChangeLog 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/ChangeLog 2016-10-14 10:49:41.000000000 +0200 @@ -1,5 +1,16 @@ ChangeLog for ODIN +Version 2.0.3: +-------------- + +New Features: +- Added FilterSphereMask to create spherical ROI + +Internal Changes: +- fixes for GCC6 + + + Version 2.0.2: -------------- diff -Nru odin-2.0.2/cmdline-utils/gencoil.1 odin-2.0.3/cmdline-utils/gencoil.1 --- odin-2.0.2/cmdline-utils/gencoil.1 2016-05-30 12:37:22.000000000 +0200 +++ odin-2.0.3/cmdline-utils/gencoil.1 2016-11-08 10:20:15.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH GENCOIL "1" "May 2016" "gencoil 2.0.2" "User Commands" +.TH GENCOIL "1" "November 2016" "gencoil 2.0.3" "User Commands" .SH NAME gencoil \- Generates a virtual coil suitable for sequence simulation in ODIN .SH DESCRIPTION diff -Nru odin-2.0.2/cmdline-utils/genmakefile.1 odin-2.0.3/cmdline-utils/genmakefile.1 --- odin-2.0.2/cmdline-utils/genmakefile.1 2016-05-30 12:37:23.000000000 +0200 +++ odin-2.0.3/cmdline-utils/genmakefile.1 2016-11-08 10:20:16.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH GENMAKEFILE "1" "May 2016" "genmakefile 2.0.2" "User Commands" +.TH GENMAKEFILE "1" "November 2016" "genmakefile 2.0.3" "User Commands" .SH NAME genmakefile \- Generates a Makefile for ODIN methods .SH SYNOPSIS diff -Nru odin-2.0.2/cmdline-utils/gensample.1 odin-2.0.3/cmdline-utils/gensample.1 --- odin-2.0.2/cmdline-utils/gensample.1 2016-05-30 12:37:22.000000000 +0200 +++ odin-2.0.3/cmdline-utils/gensample.1 2016-11-08 10:20:15.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH GENSAMPLE "1" "May 2016" "gensample 2.0.2" "User Commands" +.TH GENSAMPLE "1" "November 2016" "gensample 2.0.3" "User Commands" .SH NAME gensample \- Generates a virtual sample suitable for sequence simulation in ODIN .SH DESCRIPTION diff -Nru odin-2.0.2/cmdline-utils/micalc.1 odin-2.0.3/cmdline-utils/micalc.1 --- odin-2.0.2/cmdline-utils/micalc.1 2016-05-30 12:37:23.000000000 +0200 +++ odin-2.0.3/cmdline-utils/micalc.1 2016-11-08 10:20:17.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH MICALC "1" "May 2016" "micalc 2.0.2" "User Commands" +.TH MICALC "1" "November 2016" "micalc 2.0.3" "User Commands" .SH NAME micalc \- Performs basic mathematics with data sets .SH DESCRIPTION @@ -35,7 +35,7 @@ .HP \fB\-ai\fR: inplane rotation angle (default=0.0) .HP -\fB\-date\fR: Date of scan [yyyymmdd] (default=20160530yyyymmdd) +\fB\-date\fR: Date of scan [yyyymmdd] (default=20161108yyyymmdd) .HP \fB\-fp\fR: FOV in phase direction [mm] (default=220.0mm) .HP @@ -81,7 +81,7 @@ .HP \fB\-te\fR: Time\-to\-echo of the sequence [ms] (default=80.0ms) .HP -\fB\-time\fR: Time of scan [hhmmss] (default=123723hhmmss) +\fB\-time\fR: Time of scan [hhmmss] (default=102016hhmmss) .HP \fB\-tr\fR: Time between consecutive excitations [ms] (default=1000.0ms) .HP @@ -97,7 +97,7 @@ .HP \fB\-rdialect\fR: Read data using given dialect of the format. (default is no dialect) .HP -\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) +\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) .HP \fB\-skip\fR: Skip this amount of bytes before reading the raw data (default=0) .SS "File write options:" @@ -114,7 +114,7 @@ .HP \fB\-wdialect\fR: Write data using given dialect of the format. (default is no dialect) .HP -\fB\-wf\fR: Write format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) +\fB\-wf\fR: Write format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) .HP \fB\-wp\fR: Store the protocol separately to this file. .SS "Filters applied to input file(s) and mask:" @@ -179,6 +179,8 @@ .HP \fB\-slicetime\fR <space\-separated list of slice indices in order of acquisition> : Correct for different acquisition time points of slices .HP +\fB\-spheremask\fR <Position string in the format (slicepos,phasepos,readpos),radius [mm]> : Create spherical mask +.HP \fB\-splice\fR <dimension of the data to be spliced (time slice phase read none )> : splices the image in the given direction .HP \fB\-srange\fR <Single value or range, optionally with increment (e.g. 1\-10:3)> : Select range in slice direction @@ -232,9 +234,6 @@ gz (GNU\-Zip container for other formats) .TP -h5 -(ISMRMRD Image) -.TP hdr (Interfile, dialects: neurostat) .TP diff -Nru odin-2.0.2/cmdline-utils/miconv.1 odin-2.0.3/cmdline-utils/miconv.1 --- odin-2.0.2/cmdline-utils/miconv.1 2016-05-30 12:37:23.000000000 +0200 +++ odin-2.0.3/cmdline-utils/miconv.1 2016-11-08 10:20:16.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH MICONV "1" "May 2016" "miconv 2.0.2" "User Commands" +.TH MICONV "1" "November 2016" "miconv 2.0.3" "User Commands" .SH NAME miconv \- Converts medical image data between formats. .SH SYNOPSIS @@ -26,7 +26,7 @@ .HP \fB\-ai\fR: inplane rotation angle (default=0.0) .HP -\fB\-date\fR: Date of scan [yyyymmdd] (default=20160530yyyymmdd) +\fB\-date\fR: Date of scan [yyyymmdd] (default=20161108yyyymmdd) .HP \fB\-fp\fR: FOV in phase direction [mm] (default=220.0mm) .HP @@ -72,7 +72,7 @@ .HP \fB\-te\fR: Time\-to\-echo of the sequence [ms] (default=80.0ms) .HP -\fB\-time\fR: Time of scan [hhmmss] (default=123723hhmmss) +\fB\-time\fR: Time of scan [hhmmss] (default=102016hhmmss) .HP \fB\-tr\fR: Time between consecutive excitations [ms] (default=1000.0ms) .SS "File read options:" @@ -89,7 +89,7 @@ .HP \fB\-rdialect\fR: Read data using given dialect of the format. (default is no dialect) .HP -\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) +\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) .HP \fB\-skip\fR: Skip this amount of bytes before reading the raw data (default=0) .SS "File write options:" @@ -106,7 +106,7 @@ .HP \fB\-wdialect\fR: Write data using given dialect of the format. (default is no dialect) .HP -\fB\-wf\fR: Write format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) +\fB\-wf\fR: Write format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) .HP \fB\-wp\fR: Store the protocol separately to this file. .SS "Filters:" @@ -171,6 +171,8 @@ .HP \fB\-slicetime\fR <space\-separated list of slice indices in order of acquisition> : Correct for different acquisition time points of slices .HP +\fB\-spheremask\fR <Position string in the format (slicepos,phasepos,readpos),radius [mm]> : Create spherical mask +.HP \fB\-splice\fR <dimension of the data to be spliced (time slice phase read none )> : splices the image in the given direction .HP \fB\-srange\fR <Single value or range, optionally with increment (e.g. 1\-10:3)> : Select range in slice direction @@ -224,9 +226,6 @@ gz (GNU\-Zip container for other formats) .TP -h5 -(ISMRMRD Image) -.TP hdr (Interfile, dialects: neurostat) .TP diff -Nru odin-2.0.2/cmdline-utils/miconv.cpp odin-2.0.3/cmdline-utils/miconv.cpp --- odin-2.0.2/cmdline-utils/miconv.cpp 2016-05-30 12:26:49.000000000 +0200 +++ odin-2.0.3/cmdline-utils/miconv.cpp 2016-11-04 11:23:44.000000000 +0100 @@ -165,22 +165,22 @@ } int nrows=ndsets; if(npars>1) nrows++; - sarray table(ncols,nrows); + sarray table(nrows,ncols); if(npars>1) { for(int ipar=0; ipar<npars; ipar++) { - table(ipar,0)=pars[ipar]; + table(0,ipar)=pars[ipar]; } - table(npars,0)="Dataset"; + table(0,npars)="Dataset"; irow++; } for(FileIO::ProtocolDataMap::const_iterator pdit=pdmap_in.begin(); pdit!=pdmap_in.end(); ++pdit) { for(int ipar=0; ipar<npars; ipar++) { - table(ipar,irow)=rmblock(pdit->first.printval(pars[ipar]), "\n", ""); // truncate after first newline + table(irow,ipar)=rmblock(pdit->first.printval(pars[ipar]), "\n", ""); // truncate after first newline } if(ndsets>1) { STD_ostringstream oss; oss << pdit->second.shape(); - table(npars,irow)=oss.str(); + table(irow,npars)=oss.str(); } irow++; } diff -Nru odin-2.0.2/cmdline-utils/swab.1 odin-2.0.3/cmdline-utils/swab.1 --- odin-2.0.2/cmdline-utils/swab.1 2016-05-30 12:37:23.000000000 +0200 +++ odin-2.0.3/cmdline-utils/swab.1 2016-11-08 10:20:17.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH SWAB: "1" "May 2016" "swab: Mirrors <word-size> bytes, in the case of 2, it swaps adjacent bytes" "User Commands" +.TH SWAB: "1" "November 2016" "swab: Mirrors <word-size> bytes, in the case of 2, it swaps adjacent bytes" "User Commands" .SH NAME swab: \- Mirrors <word-size> bytes, in the case of 2, it swaps adjacent bytes .SH SYNOPSIS diff -Nru odin-2.0.2/cmdline-utils/swab.cpp odin-2.0.3/cmdline-utils/swab.cpp --- odin-2.0.2/cmdline-utils/swab.cpp 2016-05-30 12:26:49.000000000 +0200 +++ odin-2.0.3/cmdline-utils/swab.cpp 2016-07-18 09:48:27.000000000 +0200 @@ -28,7 +28,7 @@ } std::ifstream in_data(argv[2],std::ios::in|std::ios::binary); - if(in_data == NULL) { + if(in_data.bad()) { std::cerr << "swab: ERROR: can't open file " << argv[2] << std::endl; return -1; } @@ -56,14 +56,14 @@ for(k=0;k<n_data/block_size;k++) { if(k == 0) { out_data.open(argv[3],std::ios::out|std::ios::binary); - if(out_data == NULL) { + if(out_data.bad()) { std::cerr << "swab: ERROR: can't open file " << argv[3] << std::endl; return -1; } } else { out_data.open(argv[3],std::ios::out|std::ios::binary|std::ios::app); - if(out_data == NULL) { + if(out_data.bad()) { std::cerr << "swab: ERROR: can't open file " << argv[3] << std::endl; return -1; } diff -Nru odin-2.0.2/configure odin-2.0.3/configure --- odin-2.0.2/configure 2016-05-30 12:27:12.000000000 +0200 +++ odin-2.0.3/configure 2016-11-08 10:05:40.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for odin 2.0.2. +# Generated by GNU Autoconf 2.69 for odin 2.0.3. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='odin' PACKAGE_TARNAME='odin' -PACKAGE_VERSION='2.0.2' -PACKAGE_STRING='odin 2.0.2' +PACKAGE_VERSION='2.0.3' +PACKAGE_STRING='odin 2.0.3' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1387,7 +1387,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 odin 2.0.2 to adapt to many kinds of systems. +\`configure' configures odin 2.0.3 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1462,7 +1462,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of odin 2.0.2:";; + short | recursive ) echo "Configuration of odin 2.0.3:";; esac cat <<\_ACEOF @@ -1631,7 +1631,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -odin configure 2.0.2 +odin configure 2.0.3 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2230,7 +2230,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by odin $as_me 2.0.2, which was +It was created by odin $as_me 2.0.3, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3094,7 +3094,7 @@ # Define the identity of the package. PACKAGE='odin' - VERSION='2.0.2' + VERSION='2.0.3' cat >>confdefs.h <<_ACEOF @@ -18701,7 +18701,7 @@ all_includes="-I$CONF_QTDIR_INCLUDE/QtPrintSupport $all_includes" fi - for qt_extension in "5" "4" "" ; do + for qt_extension in "$QTVERSION" "" ; do post_extension="" pre_extension="" if test "x$qt_extension" = "x4" ; then @@ -19952,7 +19952,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by odin $as_me 2.0.2, which was +This file was extended by odin $as_me 2.0.3, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -20018,7 +20018,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -odin config.status 2.0.2 +odin config.status 2.0.3 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -21254,7 +21254,6 @@ cat <<_LT_EOF >> "$cfgfile" #! $SHELL # Generated automatically by $as_me ($PACKAGE) $VERSION -# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: # NOTE: Changes made to this file will be lost: look at ltmain.sh. # Provide generalized library-building support services. diff -Nru odin-2.0.2/configure.ac odin-2.0.3/configure.ac --- odin-2.0.2/configure.ac 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/configure.ac 2016-06-21 12:56:16.000000000 +0200 @@ -3,7 +3,7 @@ AC_PREREQ([2.69]) -AC_INIT([odin],[2.0.2]) +AC_INIT([odin],[2.0.3]) AC_CONFIG_SRCDIR(tjutils/tjutils.h) AM_INIT_AUTOMAKE @@ -737,7 +737,7 @@ AC_CHECK_FILE($CONF_QTDIR_INCLUDE/QtGui/QPolygonF, all_includes="-I$CONF_QTDIR_INCLUDE/QtGui $all_includes") AC_CHECK_FILE($CONF_QTDIR_INCLUDE/QtWidgets/qwidget.h, all_includes="-I$CONF_QTDIR_INCLUDE/QtWidgets $all_includes") AC_CHECK_FILE($CONF_QTDIR_INCLUDE/QtPrintSupport/qprinter.h, all_includes="-I$CONF_QTDIR_INCLUDE/QtPrintSupport $all_includes") - for qt_extension in "5" "4" "" ; do + for qt_extension in "$QTVERSION" "" ; do post_extension="" pre_extension="" if test "x$qt_extension" = "x4" ; then diff -Nru odin-2.0.2/debian/changelog odin-2.0.3/debian/changelog --- odin-2.0.2/debian/changelog 2016-07-22 13:58:53.000000000 +0200 +++ odin-2.0.3/debian/changelog 2017-03-10 19:41:33.000000000 +0100 @@ -1,3 +1,11 @@ +odin (2.0.3-0.1) unstable; urgency=medium + + * Non-maintainer upload. + - drop gcc patches, upstream + * New upstream release (Closes: #835746) + + -- Gianfranco Costamagna <locutusofb...@debian.org> Fri, 10 Mar 2017 19:40:49 +0100 + odin (2.0.2-0.3) unstable; urgency=medium * Non-maintainer upload. diff -Nru odin-2.0.2/debian/patches/gcc-6-fix2.patch odin-2.0.3/debian/patches/gcc-6-fix2.patch --- odin-2.0.2/debian/patches/gcc-6-fix2.patch 2016-07-22 13:58:22.000000000 +0200 +++ odin-2.0.3/debian/patches/gcc-6-fix2.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,32 +0,0 @@ -Description: Fix some std::max(double,float) call mismatch and some "ifstream not comparable with NULL" - -Author: Gianfranco Costamagna <locutusofb...@debian.org> - ---- odin-2.0.2.orig/cmdline-utils/swab.cpp -+++ odin-2.0.2/cmdline-utils/swab.cpp -@@ -28,7 +28,7 @@ int main(int argc, char* argv[]) { - } - - std::ifstream in_data(argv[2],std::ios::in|std::ios::binary); -- if(in_data == NULL) { -+ if(in_data.fail()) { - std::cerr << "swab: ERROR: can't open file " << argv[2] << std::endl; - return -1; - } -@@ -56,14 +56,14 @@ int main(int argc, char* argv[]) { - for(k=0;k<n_data/block_size;k++) { - if(k == 0) { - out_data.open(argv[3],std::ios::out|std::ios::binary); -- if(out_data == NULL) { -+ if(out_data.fail()) { - std::cerr << "swab: ERROR: can't open file " << argv[3] << std::endl; - return -1; - } - } - else { - out_data.open(argv[3],std::ios::out|std::ios::binary|std::ios::app); -- if(out_data == NULL) { -+ if(out_data.fail()) { - std::cerr << "swab: ERROR: can't open file " << argv[3] << std::endl; - return -1; - } diff -Nru odin-2.0.2/debian/patches/gcc-6-fix.patch odin-2.0.3/debian/patches/gcc-6-fix.patch --- odin-2.0.2/debian/patches/gcc-6-fix.patch 2016-07-15 20:16:01.000000000 +0200 +++ odin-2.0.3/debian/patches/gcc-6-fix.patch 1970-01-01 01:00:00.000000000 +0100 @@ -1,28 +0,0 @@ ---- a/odinseq/odinpulse.cpp -+++ b/odinseq/odinpulse.cpp -@@ -656,7 +656,7 @@ - - // precalculations for Nyquist check - float max_spatial_extension=0.5*data->field_of_excitation; // Assume single point as the excitation shape, so that, in contrast to a shape that fills the whole FOX, aliases would appear at (+/- FOX). Therefore, we can effectively use half the FOX without aliasing. -- max_spatial_extension*=sqrt(mode); // extend to diagonal direction square-shaped alias-free FOX -+ max_spatial_extension*=sqrt(float(int(mode))); // extend to diagonal direction square-shaped alias-free FOX - max_spatial_extension+=data->shape.get_shape_info().spatial_extent; // If shape is not single point, add the total extent of the shape. Otherwise it aliases into the FOX. - if(mode==oneDeeMode) { - dkmax=max_kspace_step(data->Gs, gamma, data->Tp_1pulse, data->G0); ---- a/odinseq/seqplot.h -+++ b/odinseq/seqplot.h -@@ -33,10 +33,10 @@ - static const char* markLabel[]={"none", "exttrigger", "halttrigger", "snapshot", "reset", "acquisition", "endacq", "excitation", "refocusing", "storeMagn", "recallMagn", "inversion", "saturation" }; - AVOID_CC_WARNING(markLabel) - --enum timecourseMode {tcmode_curves=0, tcmode_plain, tcmode_slew_rate, tcmode_kspace, tcmode_M1, tcmode_M2, tcmode_b_trace, tcmode_backgr_kspace, tcmode_backgr_crossterm, tcmode_eddy_currents, numof_tcmodes}; --static const char* timecourseLabel[]= {"Curves", "Plain", "Slew Rate", "k-Space", "1st Grad. Moment", "2nd Grad. Moment", "b-Value Trace", "Backgr. k-Space", "Backgr. Crossterm", "Eddy Currents"}; --static const char* timecoursePrefix[]={"G", "G", "dG", "k", "M1", "M2", "b", "k", "c", "G"}; --static const char* timecourseUnit[]= {ODIN_GRAD_UNIT, ODIN_GRAD_UNIT, ODIN_GRAD_UNIT"/"ODIN_TIME_UNIT, "rad/"ODIN_SPAT_UNIT, "rad*"ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT, "rad*"ODIN_TIME_UNIT"^2/"ODIN_SPAT_UNIT, ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT"^2", "rad/"ODIN_SPAT_UNIT, ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT"^2", ODIN_GRAD_UNIT}; -+enum timecourseMode {tcmode_curves=0, tcmode_plain, tcmode_slew_rate, tcmode_kspace, tcmode_M1, tcmode_M2, tcmode_b_trace, tcmode_backgr_kspace, tcmode_backgr_crossterm, tcmode_eddy_currents, numof_tcmodes}; -+static const char* timecourseLabel[]= {"Curves", "Plain", "Slew Rate", "k-Space", "1st Grad. Moment", "2nd Grad. Moment", "b-Value Trace", "Backgr. k-Space", "Backgr. Crossterm", "Eddy Currents"}; -+static const char* timecoursePrefix[]={"G", "G", "dG", "k", "M1", "M2", "b", "k", "c", "G"}; -+static const char* timecourseUnit[]= {ODIN_GRAD_UNIT, ODIN_GRAD_UNIT, ODIN_GRAD_UNIT"/"ODIN_TIME_UNIT, "rad/" ODIN_SPAT_UNIT, "rad*" ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT, "rad*" ODIN_TIME_UNIT "^2/" ODIN_SPAT_UNIT, ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT "^2", "rad/" ODIN_SPAT_UNIT, ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT "^2", ODIN_GRAD_UNIT}; - AVOID_CC_WARNING(timecourseLabel) - AVOID_CC_WARNING(timecoursePrefix) - AVOID_CC_WARNING(timecourseUnit) diff -Nru odin-2.0.2/debian/patches/series odin-2.0.3/debian/patches/series --- odin-2.0.2/debian/patches/series 2016-07-16 09:31:14.000000000 +0200 +++ odin-2.0.3/debian/patches/series 2017-03-10 19:40:47.000000000 +0100 @@ -1,3 +1 @@ ld-as-needed.diff -gcc-6-fix.patch -gcc-6-fix2.patch diff -Nru odin-2.0.2/geoedit/geoedit.1 odin-2.0.3/geoedit/geoedit.1 --- odin-2.0.2/geoedit/geoedit.1 2016-05-30 12:33:47.000000000 +0200 +++ odin-2.0.3/geoedit/geoedit.1 2016-11-08 10:15:19.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH GEOEDIT "1" "May 2016" "geoedit 2.0.2" "User Commands" +.TH GEOEDIT "1" "November 2016" "geoedit 2.0.3" "User Commands" .SH NAME geoedit \- Geometry editor of ODIN .SH SYNOPSIS diff -Nru odin-2.0.2/INSTALL odin-2.0.3/INSTALL --- odin-2.0.2/INSTALL 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/INSTALL 2016-06-21 12:56:16.000000000 +0200 @@ -200,17 +200,8 @@ Platform Specific Notes: ======================== -* Debian 4 (etch): - To compile the tar.gz from the ODIN download page, the following packages are required: - 'libqt3-mt-dev, libqwt-dev, libgsl0-dev'. Qt4 packages must be de-installed. - Optionally, install libniftiio0-dev for NIFTI support, libdcmtk1-dev for DICOM - support, liboil0.3-dev for fast type conversion, and atlas3-base for fast linear algebra. - If you check out ODIN via SVN, you will need the additional packages - 'autoconf automake libtool'. - Blitz++ must be installed manually and configured with '--enable-shared' because - of a known bug in the Debian package, see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=369753 - for details. Fortunately, this bug gets fixed with the next release of Debian. - + * Ubuntu 14: Required packages for building from scratch: + autoconf automake libtool g++ libgsl0-dev libblitz0-dev libqt4-dev libqt4-dev-bin libqwt-dev libatlas-base-dev libnifti-dev libvtk5-dev libdcmtk2-dev libpng12-dev help2man * Debian 8 (jessie): The dault GCC version 4.9 throws a message: diff -Nru odin-2.0.2/ltmain.sh odin-2.0.3/ltmain.sh --- odin-2.0.2/ltmain.sh 2016-05-30 12:27:10.000000000 +0200 +++ odin-2.0.3/ltmain.sh 2016-11-08 10:05:38.000000000 +0100 @@ -31,7 +31,7 @@ PROGRAM=libtool PACKAGE=libtool -VERSION="2.4.6 Debian-2.4.6-0.1" +VERSION="2.4.6 Debian-2.4.6-2" package_revision=2.4.6 @@ -2068,7 +2068,7 @@ compiler: $LTCC compiler flags: $LTCFLAGS linker: $LD (gnu? $with_gnu_ld) - version: $progname (GNU libtool) 2.4.6 + version: $progname $scriptversion Debian-2.4.6-2 automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` diff -Nru odin-2.0.2/miview/miview.1 odin-2.0.3/miview/miview.1 --- odin-2.0.2/miview/miview.1 2016-05-30 12:34:01.000000000 +0200 +++ odin-2.0.3/miview/miview.1 2016-11-08 10:15:40.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH MIVIEW "1" "May 2016" "miview 2.0.2" "User Commands" +.TH MIVIEW "1" "November 2016" "miview 2.0.3" "User Commands" .SH NAME miview \- Viewer for medical image files .SH SYNOPSIS @@ -77,7 +77,7 @@ .HP \fB\-ai\fR: inplane rotation angle (default=0.0) .HP -\fB\-date\fR: Date of scan [yyyymmdd] (default=20160530yyyymmdd) +\fB\-date\fR: Date of scan [yyyymmdd] (default=20161108yyyymmdd) .HP \fB\-fp\fR: FOV in phase direction [mm] (default=220.0mm) .HP @@ -123,7 +123,7 @@ .HP \fB\-te\fR: Time\-to\-echo of the sequence [ms] (default=80.0ms) .HP -\fB\-time\fR: Time of scan [hhmmss] (default=123401hhmmss) +\fB\-time\fR: Time of scan [hhmmss] (default=101540hhmmss) .HP \fB\-tr\fR: Time between consecutive excitations [ms] (default=1000.0ms) .HP @@ -139,7 +139,7 @@ .HP \fB\-rdialect\fR: Read data using given dialect of the format. (default is no dialect) .HP -\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) +\fB\-rf\fR: Read format, use it to override file extension (options=autodetect 3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro , default=autodetect) .HP \fB\-skip\fR: Skip this amount of bytes before reading the raw data (default=0) .SS "Filters:" @@ -204,6 +204,8 @@ .HP \fB\-slicetime\fR <space\-separated list of slice indices in order of acquisition> : Correct for different acquisition time points of slices .HP +\fB\-spheremask\fR <Position string in the format (slicepos,phasepos,readpos),radius [mm]> : Create spherical mask +.HP \fB\-splice\fR <dimension of the data to be spliced (time slice phase read none )> : splices the image in the given direction .HP \fB\-srange\fR <Single value or range, optionally with increment (e.g. 1\-10:3)> : Select range in slice direction @@ -252,9 +254,6 @@ gz (GNU\-Zip container for other formats) .TP -h5 -(ISMRMRD Image) -.TP hdr (Interfile, dialects: neurostat) .TP diff -Nru odin-2.0.2/odin/odin.1 odin-2.0.3/odin/odin.1 --- odin-2.0.2/odin/odin.1 2016-05-30 12:33:31.000000000 +0200 +++ odin-2.0.3/odin/odin.1 2016-11-08 10:14:50.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH ODIN "1" "May 2016" "odin 2.0.2" "User Commands" +.TH ODIN "1" "November 2016" "odin 2.0.3" "User Commands" .SH NAME odin \- Graphical user interface of ODIN .SH SYNOPSIS diff -Nru odin-2.0.2/odin/odindialog_idea.cpp odin-2.0.3/odin/odindialog_idea.cpp --- odin-2.0.2/odin/odindialog_idea.cpp 2016-05-30 12:26:47.000000000 +0200 +++ odin-2.0.3/odin/odindialog_idea.cpp 2016-06-21 13:16:33.000000000 +0200 @@ -956,6 +956,7 @@ possible_includepaths.push_back("n4/pkg"); possible_includepaths.push_back("n4/pkg/MrServers/MrMeasSrv/SeqIF/libRT"); possible_includepaths.push_back("n4/pkg/MrServers/MrImaging/libSBB"); // for fSBBECGFillTimeRun +// possible_includepaths.push_back("n4/pkg/MrServers/MrImaging/libSeqUtil"); // for SysProperties possible_includepaths.push_back("n4/pkg/MrServers/MrMeasSrv/SeqIF/SeqBuffer"); possible_includepaths.push_back("n4/pkg/MrServers/MrProtSrv/MrProt"); // for MrProt.h possible_includepaths.push_back("n4/x86/delivery/include/MrServers/MrMeasSrv/SeqIF/libRT"); // for libRTmsg.h diff -Nru odin-2.0.2/odindata/fileio.cpp odin-2.0.3/odindata/fileio.cpp --- odin-2.0.2/odindata/fileio.cpp 2016-05-30 12:26:44.000000000 +0200 +++ odin-2.0.3/odindata/fileio.cpp 2016-11-04 11:23:44.000000000 +0100 @@ -1033,6 +1033,8 @@ new FileIOTest; + new FileIOFormatTest<7, 13, float, true,false,false,false,false>("dat"); + #ifdef VTKSUPPORT new FileIOFormatTest<7, 13, u8bit, false,false,false,false,false>("vtk"); diff -Nru odin-2.0.2/odindata/filter_mask.cpp odin-2.0.3/odindata/filter_mask.cpp --- odin-2.0.2/odindata/filter_mask.cpp 2016-05-30 12:26:44.000000000 +0200 +++ odin-2.0.3/odindata/filter_mask.cpp 2016-10-14 10:49:41.000000000 +0200 @@ -137,6 +137,68 @@ return true; } +/////////////////////////////////////////////////////////////////////////// + + +void FilterSphereMask::init(){ + pos.set_description("Position string in the format (slicepos,phasepos,readpos)"); + append_arg(pos,"pos"); + radius.set_unit(ODIN_SPAT_UNIT).set_description("radius"); + append_arg(radius,"radius"); +} + +bool FilterSphereMask::process(Data<float,4>& data, Protocol& prot) const { + Log<Filter> odinlog(c_label(),"process"); + + + Range all=Range::all(); + + + svector toks=tokens(extract(pos, "(", ")", true),','); + ODINLOG(odinlog,normalDebug) << "toks=" << toks.printbody() << STD_endl; + + if(toks.size()!=3) { + ODINLOG(odinlog,errorLog) << "Wrong size (" << toks.size() << "!=3) of position string >" << pos << "<" << STD_endl; + return false; + } + + TinyVector<int,3> centerpos(atoi(toks[0].c_str()), atoi(toks[1].c_str()), atoi(toks[2].c_str())); + + TinyVector<int,4> shape=data.shape(); + TinyVector<int,4> maskshape(shape); + maskshape(timeDim)=1; + + Data<float,4> mask(maskshape); mask=0.0; + + TinyVector<int,3> spatshape(shape(sliceDim), shape(phaseDim), shape(readDim)); + + TinyVector<float,3> voxel_spacing; + voxel_spacing(0)=FileFormat::voxel_extent(prot.geometry, sliceDirection, data.extent(sliceDim)); + voxel_spacing(1)=FileFormat::voxel_extent(prot.geometry, phaseDirection, data.extent(phaseDim)); + voxel_spacing(2)=FileFormat::voxel_extent(prot.geometry, readDirection, data.extent(readDim)); + ODINLOG(odinlog,normalDebug) << "voxel_spacing=" << voxel_spacing << STD_endl; + + + for(unsigned int i=0; i<mask.size(); i++) { + + TinyVector<int,4> index=mask.create_index(i); + + TinyVector<int,3> spatindex(index(1),index(2),index(3)); + + TinyVector<float,3> dist=voxel_spacing*(spatindex-centerpos); + + float r=sqrt(double(sum(dist*dist))); + + if(r<=radius) mask(index)=1.0; + + } + + data.reference(mask); + + return true; +} + + /////////////////////////////////////////////////////////////////////////// diff -Nru odin-2.0.2/odindata/filter_mask.h odin-2.0.3/odindata/filter_mask.h --- odin-2.0.2/odindata/filter_mask.h 2016-05-30 12:26:44.000000000 +0200 +++ odin-2.0.3/odindata/filter_mask.h 2016-10-14 10:49:41.000000000 +0200 @@ -64,6 +64,21 @@ /////////////////////////////////////////////////////////////////////////// +class FilterSphereMask : public FilterStep { + + LDRstring pos; + LDRfloat radius; + + STD_string label() const {return "spheremask";} + STD_string description() const {return "Create spherical mask";} + bool process(Data<float,4>& data, Protocol& prot) const; + FilterStep* allocate() const {return new FilterSphereMask();} + void init(); +}; + + +/////////////////////////////////////////////////////////////////////////// + class FilterUseMask : public FilterStep { LDRfileName fname; diff -Nru odin-2.0.2/odindata/filter_step.cpp odin-2.0.3/odindata/filter_step.cpp --- odin-2.0.2/odindata/filter_step.cpp 2016-05-30 12:26:44.000000000 +0200 +++ odin-2.0.3/odindata/filter_step.cpp 2016-10-14 10:49:41.000000000 +0200 @@ -55,6 +55,7 @@ result.push_back(new FilterGenMask()); result.push_back(new FilterAutoMask()); result.push_back(new FilterQuantilMask()); + result.push_back(new FilterSphereMask()); result.push_back(new FilterUseMask()); result.push_back(new FilterNaN()); diff -Nru odin-2.0.2/odindata/fitting.h odin-2.0.3/odindata/fitting.h --- odin-2.0.2/odindata/fitting.h 2016-05-30 12:26:44.000000000 +0200 +++ odin-2.0.3/odindata/fitting.h 2016-11-04 11:23:44.000000000 +0100 @@ -48,6 +48,14 @@ * The error interval of the final result. */ float err; + +/** + * prints fp to the stream s + */ + friend STD_ostream& operator << (STD_ostream& s, const fitpar& fp) { + return s << fp.val << " +/- " << fp.err; + } + }; diff -Nru odin-2.0.2/odinreco/odinreco.1 odin-2.0.3/odinreco/odinreco.1 --- odin-2.0.2/odinreco/odinreco.1 2016-05-30 12:37:00.000000000 +0200 +++ odin-2.0.3/odinreco/odinreco.1 2016-11-08 10:19:46.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH ODINRECO "1" "May 2016" "odinreco 2.0.2" "User Commands" +.TH ODINRECO "1" "November 2016" "odinreco 2.0.3" "User Commands" .SH NAME odinreco \- Automatic reconstruction for ODIN sequences .SH SYNOPSIS @@ -58,10 +58,9 @@ .HP \fB\-el\fR: Level relative to mean value of first echo for setting mask of exponential decay fit (default=0.50) .HP -\fB\-f\fR: Space sepapared list of output formats (file extensions), possible formats are '3db analyze asc coi dat dcm double float gz h5 hdr idx ima interfile jdx mag mhd +\fB\-f\fR: Space sepapared list of output formats (file extensions), possible formats are '3db analyze asc coi dat dcm double float gz hdr idx ima interfile jdx mag mhd nii .PP -nii ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro -\&' (default=nii) +ph png pos pro reg s16bit s32bit s8bit smp u16bit u32bit u8bit vtk xml xpro' (default=nii) .HP \fB\-ff\fR: k\-space filter function (and its arguments) (options=Gauss NoFilter Triangle Hann Hamming CosSq Blackman BlackmanNuttall Exp , default=NoFilter) .HP diff -Nru odin-2.0.2/odinseq/odinpulse.cpp odin-2.0.3/odinseq/odinpulse.cpp --- odin-2.0.2/odinseq/odinpulse.cpp 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/odinseq/odinpulse.cpp 2016-06-21 13:16:33.000000000 +0200 @@ -656,7 +656,7 @@ // precalculations for Nyquist check float max_spatial_extension=0.5*data->field_of_excitation; // Assume single point as the excitation shape, so that, in contrast to a shape that fills the whole FOX, aliases would appear at (+/- FOX). Therefore, we can effectively use half the FOX without aliasing. - max_spatial_extension*=sqrt(mode); // extend to diagonal direction square-shaped alias-free FOX + max_spatial_extension*=sqrt(float(int(mode))); // extend to diagonal direction square-shaped alias-free FOX max_spatial_extension+=data->shape.get_shape_info().spatial_extent; // If shape is not single point, add the total extent of the shape. Otherwise it aliases into the FOX. if(mode==oneDeeMode) { dkmax=max_kspace_step(data->Gs, gamma, data->Tp_1pulse, data->G0); diff -Nru odin-2.0.2/odinseq/odinpulse_trajectories.cpp odin-2.0.3/odinseq/odinpulse_trajectories.cpp --- odin-2.0.2/odinseq/odinpulse_trajectories.cpp 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/odinseq/odinpulse_trajectories.cpp 2016-07-18 09:02:17.000000000 +0200 @@ -180,7 +180,7 @@ "In the inner part of k-space the radius increases linerly with time,\n" "while in the outer part the distance between adjacent sampling points along the\n" "trajectory in k-space is kept constant.\n" - "The "_TRAJ_OPTIMIZE_PARLABEL_" parameter determines the relative point in time (between\n" + "The " _TRAJ_OPTIMIZE_PARLABEL_ " parameter determines the relative point in time (between\n" "0.0 and 1.0) where the switching between these two modes occurs."); } diff -Nru odin-2.0.2/odinseq/seqgradspiral.cpp odin-2.0.3/odinseq/seqgradspiral.cpp --- odin-2.0.2/odinseq/seqgradspiral.cpp 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/odinseq/seqgradspiral.cpp 2016-07-18 09:29:02.000000000 +0200 @@ -26,13 +26,13 @@ float s=1.0-float(i)/float(TEST_NPTS-1); const kspace_coord& tds=traj_cache->calculate(s); if(i) { - deltaKtangential=STD_max(double(deltaKtangential),norm(tds.kx-last_kx,tds.ky-last_ky)); - max_grad_diff=STD_max(double(max_grad_diff),fabs(tds.Gx-last_Gx)); - max_grad_diff=STD_max(double(max_grad_diff),fabs(tds.Gy-last_Gy)); + deltaKtangential=STD_max(deltaKtangential,float(norm(tds.kx-last_kx,tds.ky-last_ky))); // casts + max_grad_diff=STD_max(max_grad_diff,float(fabs(tds.Gx-last_Gx))); // required + max_grad_diff=STD_max(max_grad_diff,float(fabs(tds.Gy-last_Gy))); // for GCC6/C++11 } - max_grad_magn=STD_max(double(max_grad_magn),fabs(tds.Gx)); - max_grad_magn=STD_max(double(max_grad_magn),fabs(tds.Gy)); + max_grad_magn=STD_max(max_grad_magn,float(fabs(tds.Gx))); // casts required + max_grad_magn=STD_max(max_grad_magn,float(fabs(tds.Gy))); // for GCC6/C++11 last_kx=tds.kx; last_ky=tds.ky; diff -Nru odin-2.0.2/odinseq/seqplot.h odin-2.0.3/odinseq/seqplot.h --- odin-2.0.2/odinseq/seqplot.h 2016-05-30 12:26:46.000000000 +0200 +++ odin-2.0.3/odinseq/seqplot.h 2016-07-18 09:01:10.000000000 +0200 @@ -33,10 +33,10 @@ static const char* markLabel[]={"none", "exttrigger", "halttrigger", "snapshot", "reset", "acquisition", "endacq", "excitation", "refocusing", "storeMagn", "recallMagn", "inversion", "saturation" }; AVOID_CC_WARNING(markLabel) -enum timecourseMode {tcmode_curves=0, tcmode_plain, tcmode_slew_rate, tcmode_kspace, tcmode_M1, tcmode_M2, tcmode_b_trace, tcmode_backgr_kspace, tcmode_backgr_crossterm, tcmode_eddy_currents, numof_tcmodes}; -static const char* timecourseLabel[]= {"Curves", "Plain", "Slew Rate", "k-Space", "1st Grad. Moment", "2nd Grad. Moment", "b-Value Trace", "Backgr. k-Space", "Backgr. Crossterm", "Eddy Currents"}; -static const char* timecoursePrefix[]={"G", "G", "dG", "k", "M1", "M2", "b", "k", "c", "G"}; -static const char* timecourseUnit[]= {ODIN_GRAD_UNIT, ODIN_GRAD_UNIT, ODIN_GRAD_UNIT"/"ODIN_TIME_UNIT, "rad/"ODIN_SPAT_UNIT, "rad*"ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT, "rad*"ODIN_TIME_UNIT"^2/"ODIN_SPAT_UNIT, ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT"^2", "rad/"ODIN_SPAT_UNIT, ODIN_TIME_UNIT"/"ODIN_SPAT_UNIT"^2", ODIN_GRAD_UNIT}; +enum timecourseMode {tcmode_curves=0, tcmode_plain, tcmode_slew_rate, tcmode_kspace, tcmode_M1, tcmode_M2, tcmode_b_trace, tcmode_backgr_kspace, tcmode_backgr_crossterm, tcmode_eddy_currents, numof_tcmodes}; +static const char* timecourseLabel[]= {"Curves", "Plain", "Slew Rate", "k-Space", "1st Grad. Moment", "2nd Grad. Moment", "b-Value Trace", "Backgr. k-Space", "Backgr. Crossterm", "Eddy Currents"}; +static const char* timecoursePrefix[]={"G", "G", "dG", "k", "M1", "M2", "b", "k", "c", "G"}; +static const char* timecourseUnit[]= {ODIN_GRAD_UNIT, ODIN_GRAD_UNIT, ODIN_GRAD_UNIT "/" ODIN_TIME_UNIT, "rad/" ODIN_SPAT_UNIT, "rad*" ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT, "rad*" ODIN_TIME_UNIT "^2/" ODIN_SPAT_UNIT, ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT "^2", "rad/" ODIN_SPAT_UNIT, ODIN_TIME_UNIT "/" ODIN_SPAT_UNIT "^2", ODIN_GRAD_UNIT}; AVOID_CC_WARNING(timecourseLabel) AVOID_CC_WARNING(timecoursePrefix) AVOID_CC_WARNING(timecourseUnit) diff -Nru odin-2.0.2/pulsar/pulsar.1 odin-2.0.3/pulsar/pulsar.1 --- odin-2.0.2/pulsar/pulsar.1 2016-05-30 12:33:37.000000000 +0200 +++ odin-2.0.3/pulsar/pulsar.1 2016-11-08 10:15:01.000000000 +0100 @@ -1,5 +1,5 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.4. -.TH PULSAR "1" "May 2016" "pulsar 2.0.2" "User Commands" +.TH PULSAR "1" "November 2016" "pulsar 2.0.3" "User Commands" .SH NAME pulsar \- Pulse editor of ODIN .SH SYNOPSIS diff -Nru odin-2.0.2/pulsar/pulsar.desktop odin-2.0.3/pulsar/pulsar.desktop --- odin-2.0.2/pulsar/pulsar.desktop 2016-05-30 12:26:48.000000000 +0200 +++ odin-2.0.3/pulsar/pulsar.desktop 2016-06-21 13:16:33.000000000 +0200 @@ -6,5 +6,5 @@ TryExec=pulsar Type=Application Terminal=false -Categories=Education;Science;MedicalSoftware;Development +Categories=Education;Science;MedicalSoftware Icon=odin.png diff -Nru odin-2.0.2/tjutils/tjarray.cpp odin-2.0.3/tjutils/tjarray.cpp --- odin-2.0.2/tjutils/tjarray.cpp 2016-05-30 12:26:45.000000000 +0200 +++ odin-2.0.3/tjutils/tjarray.cpp 2016-11-04 11:23:44.000000000 +0100 @@ -548,8 +548,8 @@ return result; } - int ncols=table.size(0); - int nrows=table.size(1); + int ncols=table.size(1); + int nrows=table.size(0); int icol, irow; @@ -557,16 +557,16 @@ ivector width(ncols); width=0; for(irow=0; irow<nrows; irow++) { for(icol=0; icol<ncols; icol++) { - width[icol]=STD_max(int(table(icol,irow).length()), width[icol]); + width[icol]=STD_max(int(table(irow,icol).length()), width[icol]); } } // Print formatted table for(irow=0; irow<nrows; irow++) { for(icol=0; icol<ncols; icol++) { - int nfillspaces=width[icol]-table(icol,irow).length()+1; + int nfillspaces=width[icol]-table(irow,icol).length()+1; if(icol==(ncols-1)) nfillspaces=0; // do not pad at end - result+=table(icol,irow)+STD_string(nfillspaces,' '); + result+=table(irow,icol)+STD_string(nfillspaces,' '); } result+="\n"; }
signature.asc
Description: OpenPGP digital signature