[med-svn] r20050 - in trunk/packages/dcmtk/trunk/debian: . patches
Andreas Tille
tille at moszumanska.debian.org
Fri Sep 11 19:39:56 UTC 2015
Author: tille
Date: 2015-09-11 19:39:55 +0000 (Fri, 11 Sep 2015)
New Revision: 20050
Added:
trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs
trunk/packages/dcmtk/trunk/debian/dcmtk.install
trunk/packages/dcmtk/trunk/debian/dcmtk.manpages
trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install
trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs
trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install
trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides
trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch
trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch
trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch
trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch
trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch
trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch
trunk/packages/dcmtk/trunk/debian/patches/spelling.patch
trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch
trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch
trunk/packages/dcmtk/trunk/debian/source.lintian-overrides
Modified:
trunk/packages/dcmtk/trunk/debian/changelog
trunk/packages/dcmtk/trunk/debian/control
Log:
Do gcc-5 transition on new version (and commit not yet commited changes from experimental)
Modified: trunk/packages/dcmtk/trunk/debian/changelog
===================================================================
--- trunk/packages/dcmtk/trunk/debian/changelog 2015-09-11 19:32:23 UTC (rev 20049)
+++ trunk/packages/dcmtk/trunk/debian/changelog 2015-09-11 19:39:55 UTC (rev 20050)
@@ -4,6 +4,7 @@
* cme fix dpkg-control
* libdcmtk4-dev conflicts libdcmtk2-dev
Closes: #769151
+ * Do gcc-5 transition on new version
-- Andreas Tille <tille at debian.org> Fri, 11 Sep 2015 21:23:03 +0200
Modified: trunk/packages/dcmtk/trunk/debian/control
===================================================================
--- trunk/packages/dcmtk/trunk/debian/control 2015-09-11 19:32:23 UTC (rev 20049)
+++ trunk/packages/dcmtk/trunk/debian/control 2015-09-11 19:39:55 UTC (rev 20050)
@@ -38,7 +38,7 @@
.
Note: This version was compiled with libssl support.
-Package: libdcmtk4
+Package: libdcmtk4v5
Architecture: any
Section: libs
Depends: ${misc:Depends},
@@ -57,7 +57,7 @@
Package: libdcmtk4-dev
Architecture: any
Section: libdevel
-Depends: libdcmtk4 (= ${binary:Version}),
+Depends: libdcmtk4v5 (= ${binary:Version}),
${misc:Depends}
Suggests: dcmtk-doc
Conflicts: libdcmtk2-dev
@@ -108,11 +108,11 @@
This package contains the on-line documentation for the DCMTK libraries
and utilities in HTML format.
-Package: libdcmtk4-dbg
+Package: libdcmtk4v5-dbg
Architecture: any
Section: debug
Priority: extra
-Depends: libdcmtk4 (= ${binary:Version}),
+Depends: libdcmtk4v5 (= ${binary:Version}),
${misc:Depends}
Description: OFFIS DICOM toolkit library debugging symbols
DCMTK includes a collection of libraries and applications for examining,
@@ -120,4 +120,4 @@
sending and receiving images over a network connection, as well as
demonstrative image storage and worklist servers.
.
- This package contains the debugging symbols for libdcmtk4.
+ This package contains the debugging symbols for libdcmtk4v5.
Added: trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk-doc.docs 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+debian/tmp/usr/share/doc/dcmtk/html
Added: trunk/packages/dcmtk/trunk/debian/dcmtk.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk.install (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk.install 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,10 @@
+usr/bin/*
+etc/dcmtk/*
+usr/share/dcmtk/*.css
+usr/share/dcmtk/*.dump
+usr/share/dcmtk/*.lut
+usr/share/dcmtk/dcm2xml.dtd
+usr/share/dcmtk/dsr2xml.xsd
+usr/share/dcmtk/dumppat.txt
+usr/share/dcmtk/wlistdb
+usr/share/dcmtk/wlistqry
Added: trunk/packages/dcmtk/trunk/debian/dcmtk.manpages
===================================================================
--- trunk/packages/dcmtk/trunk/debian/dcmtk.manpages (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/dcmtk.manpages 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+doxygen/manpages/man1/*.1
Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4-dev.install 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,3 @@
+usr/include/dcmtk/*
+usr/lib/*.so
+usr/lib/cmake/
Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.dirs 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1 @@
+usr/lib
Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.install 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,2 @@
+usr/lib/*.so.*
+usr/share/libdcmtk4/*.dic
Added: trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides
===================================================================
--- trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/libdcmtk4v5.lintian-overrides 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,4 @@
+# There is more than one library in one package bundles which makes perfectly
+# sense in this application but does not enable naming the library package apropriately
+libdcmtk4: package-name-doesnt-match-sonames
+libdcmtk4: embedded-library
Added: trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/0001-Fixed-OFoptional-by-introducing-OFalign.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,1044 @@
+From 21142a1d3354b5d4e97a2e160221ae391362e8c1 Mon Sep 17 00:00:00 2001
+From: Jan Schlamelcher <dicom at offis.de>
+Date: Fri, 4 Jul 2014 12:02:51 +0200
+Subject: [PATCH] Fixed OFoptional by introducing OFalign?
+
+---
+ CMake/GenerateDCMTKConfigure.cmake | 29 +++
+ CMake/osconfig.h.in | 12 +
+ config/aclocal.m4 | 41 +++
+ config/configure | 60 +++++
+ config/configure.in | 2 +
+ config/include/dcmtk/config/osconfig.h.in | 6 +
+ ofstd/include/dcmtk/ofstd/ofalign.h | 190 ++++++++++++++
+ ofstd/include/dcmtk/ofstd/ofoption.h | 390 +++++++++++++++++++----------
+ ofstd/include/dcmtk/ofstd/oftraits.h | 4 +-
+ ofstd/tests/toption.cc | 8 +
+ 10 files changed, 610 insertions(+), 132 deletions(-)
+ create mode 100644 ofstd/include/dcmtk/ofstd/ofalign.h
+
+Index: dcmtk-3.6.1~20140617/CMake/GenerateDCMTKConfigure.cmake
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/CMake/GenerateDCMTKConfigure.cmake 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/CMake/GenerateDCMTKConfigure.cmake 2014-07-07 09:04:24.029706532 +0200
+@@ -687,3 +687,32 @@
+ }
+ ")
+ ENDIF(WIN32)
++
++# Check for alignment query / specifier support
++DCMTK_TRY_COMPILE(HAVE_GNU_ALIGNOF "__alignof__ is supported"
++ "int main()
++{
++ char c[__alignof__(int)];
++ return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_MS_ALIGNOF "__alignof is supported"
++ "int main()
++{
++ char c[__alignof(int)];
++ return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_ATTRIBUTE_ALIGNED "__attribute__((aligned)) is supported"
++ "int main()
++{
++ __attribute__((aligned(4))) char c[16];
++ return 0;
++}")
++
++DCMTK_TRY_COMPILE(HAVE_DECLSPEC_ALIGN "__declspec(align) is supported"
++ "int main()
++{
++ __declspec(align(4)) char c[16];
++ return 0;
++}")
+Index: dcmtk-3.6.1~20140617/CMake/osconfig.h.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/CMake/osconfig.h.in 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/CMake/osconfig.h.in 2014-07-07 09:04:24.033706533 +0200
+@@ -1054,4 +1054,16 @@
+ for building with C++11 features.
+ #endif
+
++/* Define if the compiler supports __alignof__ */
++#cmakedefine HAVE_GNU_ALIGNOF
++
++/* Define if the compiler supports __alignof */
++#cmakedefine HAVE_MS_ALIGNOF
++
++/* Define if the compiler supports __attribute__(aligned) */
++#cmakedefine HAVE_ATTRIBUTE_ALIGNED
++
++/* Define if the compiler supports __declspec(align) */
++#cmakedefine HAVE_DECLSPEC_ALIGN
++
+ #endif /* !OSCONFIG_H*/
+Index: dcmtk-3.6.1~20140617/config/aclocal.m4
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/aclocal.m4 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/aclocal.m4 2014-07-07 09:04:24.033706533 +0200
+@@ -1819,6 +1819,47 @@
+ fi
+ ])
+
++AC_DEFUN([AC_CHECK_ALIGNOF],
++[
++ AC_MSG_CHECKING([for __alignof__])
++ AC_LINK_IFELSE(
++ [
++ AC_LANG_SOURCE(
++ [
++ int main(){char c[__alignof__(int)];return 0;}
++ ])
++ ],
++ [dcmtk_have_alignof=[yes]],
++ [dcmtk_have_alignof=[no]]
++ )
++ if test "$dcmtk_have_alignof" = yes; then
++ AC_MSG_RESULT([yes])
++ AC_DEFINE($1,[1],[Define if __alignof__ is available])
++ else
++ AC_MSG_RESULT([no])
++ fi
++])
++
++AC_DEFUN([AC_CHECK_ATTRIBUTE_ALIGNED],
++[
++ AC_MSG_CHECKING([for __attribute__((aligned))])
++ AC_LINK_IFELSE(
++ [
++ AC_LANG_SOURCE(
++ [
++ int main(){__attribute__((aligned(4))) char c[16];return 0;}
++ ])
++ ],
++ [dcmtk_have_attribute_aligned=[yes]],
++ [dcmtk_have_attribute_aligned=[no]]
++ )
++ if test "$dcmtk_have_attribute_aligned" = yes; then
++ AC_MSG_RESULT([yes])
++ AC_DEFINE($1,[1],[Define if __attribute__((aligned)) is available])
++ else
++ AC_MSG_RESULT([no])
++ fi
++])
+
+ dnl
+ dnl This macro checks if a given preprocessor symbol exists and is a string
+Index: dcmtk-3.6.1~20140617/config/configure
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/configure 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/configure 2014-07-07 09:04:24.041706533 +0200
+@@ -14369,6 +14369,66 @@
+ fi
+
+
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __alignof__" >&5
++$as_echo_n "checking for __alignof__... " >&6; }
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++
++ int main(){char c__alignof__(int);return 0;}
++
++
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++ dcmtk_have_alignof=yes
++else
++ dcmtk_have_alignof=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++ if test "$dcmtk_have_alignof" = yes; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAVE_GNU_ALIGNOF 1" >>confdefs.h
++
++ else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ fi
++
++
++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for __attribute__((aligned))" >&5
++$as_echo_n "checking for __attribute__((aligned))... " >&6; }
++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h. */
++
++
++ int main(){__attribute__((aligned(4))) char c16;return 0;}
++
++
++_ACEOF
++if ac_fn_cxx_try_link "$LINENO"; then :
++ dcmtk_have_attribute_aligned=yes
++else
++ dcmtk_have_attribute_aligned=no
++
++fi
++rm -f core conftest.err conftest.$ac_objext \
++ conftest$ac_exeext conftest.$ac_ext
++ if test "$dcmtk_have_attribute_aligned" = yes; then
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
++$as_echo "yes" >&6; }
++
++$as_echo "#define HAVE_ATTRIBUTE_ALIGNED 1" >>confdefs.h
++
++ else
++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
++$as_echo "no" >&6; }
++ fi
++
++
+ CFLAGS="$DEBUGCFLAGS $CFLAGS"
+ CXXFLAGS="$DEBUGCXXFLAGS $CXXFLAGS"
+
+Index: dcmtk-3.6.1~20140617/config/configure.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/configure.in 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/configure.in 2014-07-07 09:04:24.041706533 +0200
+@@ -1236,6 +1236,8 @@
+
+ AC_CHECK_SYNC_FN([__sync_add_and_fetch],[HAVE_SYNC_ADD_AND_FETCH])
+ AC_CHECK_SYNC_FN([__sync_sub_and_fetch],[HAVE_SYNC_SUB_AND_FETCH])
++AC_CHECK_ALIGNOF([HAVE_GNU_ALIGNOF])
++AC_CHECK_ATTRIBUTE_ALIGNED([HAVE_ATTRIBUTE_ALIGNED])
+
+ dnl -------------------------------------------------------
+ dnl Set optimizer and debug compiler flags
+Index: dcmtk-3.6.1~20140617/config/include/dcmtk/config/osconfig.h.in
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/config/include/dcmtk/config/osconfig.h.in 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/config/include/dcmtk/config/osconfig.h.in 2014-07-07 09:04:24.041706533 +0200
+@@ -72,6 +72,9 @@
+ /* Define to 1 if you have the <assert.h> header file. */
+ #undef HAVE_ASSERT_H
+
++/* Define if __attribute__((aligned)) is available */
++#undef HAVE_ATTRIBUTE_ALIGNED
++
+ /* Define to 1 if you have the `bcmp' function. */
+ #undef HAVE_BCMP
+
+@@ -252,6 +255,9 @@
+ /* Define to 1 if you have the `gmtime_r' function. */
+ #undef HAVE_GMTIME_R
+
++/* Define if __alignof__ is available */
++#undef HAVE_GNU_ALIGNOF
++
+ /* Define to 1 if you have the <grp.h> header file. */
+ #undef HAVE_GRP_H
+
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofalign.h
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofalign.h 2014-07-07 09:04:24.045706533 +0200
+@@ -0,0 +1,190 @@
++/*
++ *
++ * Copyright (C) 2014, OFFIS e.V.
++ * All rights reserved. See COPYRIGHT file for details.
++ *
++ * This software and supporting documentation were developed by
++ *
++ * OFFIS e.V.
++ * R&D Division Health
++ * Escherweg 2
++ * D-26121 Oldenburg, Germany
++ *
++ *
++ * Module: ofstd
++ *
++ * Author: Jan Schlamelcher
++ *
++ * Purpose: Implement alignment specifiers / query operators
++ * similar to C++11's alignas and alignof.
++ *
++ */
++
++#ifndef OFALIGN_H
++#define OFALIGN_H
++
++#include "dcmtk/config/osconfig.h"
++#include "dcmtk/ofstd/oftypes.h"
++
++// use native functionality if C++11 is supported
++#ifdef DCMTK_ENABLE_CXX11
++
++#define OFalignof alignof
++#define OFalignas alignas
++
++#elif !defined(DOXYGEN) // fallback implementations
++
++// alignof
++#ifdef HAVE_GNU_ALIGNOF
++#define OFalignof __alignof__
++#elif defined(HAVE_MS_ALIGNOF)
++#define OFalignof __alignof
++#endif
++
++// these helper templates automatically resolve the alignment
++// if a type is given and pass-through any numeric constant
++template<size_t Size>
++struct OFalignas_size_helper { Uint8 size[Size]; };
++template<typename T>
++OFalignas_size_helper
++<
++#ifdef OFalignof
++ OFalignof(T)
++#else // use sizeof instead
++ sizeof(T)
++#endif
++> OFalignof_or_identity() {}
++template<size_t Size>
++OFalignas_size_helper<Size> OFalignof_or_identity() {}
++
++// alignas
++#ifdef HAVE_ATTRIBUTE_ALIGNED
++
++#define OFalignas(A) __attribute__((aligned(sizeof(OFalignof_or_identity<A>()))))
++
++#elif defined(HAVE_DECLSPEC_ALIGN)
++
++// Microsoft workaround: align + align_like
++// __declspec(align) does not understand integral expressions
++// but instead requires an integral literal, Microsoft says:
++// "Valid entries are integer powers of two from 1 to 8192 (bytes),
++// such as 2, 4, 8, 16, 32, or 64."
++// So this is fundamentally different to the real alignment specifiers
++// from GNU and C++11.
++#define OFalign(T,A) OFdeclspec_align<T>::template as<sizeof(OFalignof_or_identity<A>())>::type
++
++// The trick / hack: specialize a template for every valid
++// integral expression and use an appropriate integral literal to
++// define the desired type. At least Microsoft allows us to
++// typedef this stuff, but the API is still fundamentally different
++// to the favored "OFalignas".
++// This also requires a specialization for arrays, since making
++// an array from an aligned type is not the same as making an
++// aligned array.
++#define DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( N )\
++template<typename T>\
++struct make_type<T,N> { typedef __declspec(align(N)) T type; };\
++template<typename T,size_t S>\
++struct make_type<T[S],N> { typedef __declspec(align(N)) T type[S]; }
++
++template<typename X>
++class OFdeclspec_align
++{
++ template<typename T,size_t>
++ struct make_type { typedef T type; };
++ template<typename T,size_t S,size_t A>
++ struct make_type<T[S],A> { typedef T type[S]; };
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 1 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 2 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 4 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 8 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 16 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 32 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 64 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 128 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 256 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 512 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 1024 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 2048 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 4096 );
++ DCMTK_OFALIGN_HACK_CONSTANT_BY_SPECIALIZATION( 8192 );
++
++public:
++ template<size_t A>
++ struct as { typedef OFTypename make_type<X,A>::type type; };
++};
++#endif
++
++#else // DOXYGEN
++
++/** @file ofalign.h
++ * Implements platform independent alignment, if possible similar to
++ * C++11's alignof / alignas functionality.
++ */
++
++/** Determine the alignment of a type T.
++ * @note OFalignof may not be available on your platform / compiler combination.
++ * Use <kbd>#ifdef OFalignof</kbd> to query availability.
++ * @details OFalignof behaves similar to
++ * <a href="http://en.cppreference.com/w/cpp/language/alignof">C++11's alignof</a>
++ * when it's supported.
++ */
++#define OFalignof <unspecified>
++
++/** Align object or class like another type or as specified by an integral expression.
++ * @note OFalignas may not be available on your platform / compiler combination.
++ * Use <kbd>#ifdef OFalignas</kbd> to query availability. See OFalign for an alternative
++ * with limited functionality that supports more platforms in return.
++ * @details OFalignas behaves similar to
++ * <a href="http://en.cppreference.com/w/cpp/language/alignas">C++11's alignas</a>
++ * when it's supported.
++ */
++#define OFalignas <unspecified>
++
++/** Determine a type with modified alignment for a given type T.
++ * @note OFalign may not be available on your platform / compiler combination.
++ * Use <kbd>#ifdef OFalign</kbd> to query availability.
++ * @details
++ * OFalign can be though of as the least common denominator of the alignment capabilities
++ * available on different platform / compiler combinations. Given a type T and an integral
++ * expression I, <kbd>OFalign(T,I)</kbd> evaluates to an appropriately aligned type corresponding
++ * to T.<br>
++ * You may also use another type to specify the desired alignment, e.g. <kbd>OFalign(T,int)</kbd>.
++ * OFalign will then calculate the alignment using <i>OFalignof</i> (if available) or use
++ * <i>sizeof()</i> as approximation.<br>
++ * To align arrays via OFalign, simply pass the array's extents within the parameter, e.g.
++ * <kbd>OFalign(char[12],float)</kbd> to align an array containing <i>12</i> chars like a float.<br>
++ * When using OFalign inside a dependant scope (i.e. inside templates), you may need
++ * to use OFTypename in conjunction with OFalign, e.g.
++ * @code typedef OFTypename OFalign(T,16) value_type; @endcode
++ * OFalign should support alignments as any power of two <= 8192 (examine your compiler's manual
++ * when in doubt).
++ * Other alignments may also be supported, but may not be available on every platform.
++ * OFalign may simply ignore your request if you specify an unsupported aligment
++ * (won't output an error). You may want to check the alignment via <i>OFalignof</i> in case
++ * it is likely to fail. Using another type as alignment specifier should always work,
++ * as the required alignment is obviously supported in that case
++ * (at least when OFalignof is available).
++ */
++#define OFalign <unspecified>
++
++#endif // C++11
++
++#if defined(OFalignas) && !defined(DOXYGEN)
++// OFalign based on OFalignas, so this is "platform-independent".
++#define OFalign(T,A) OFalignas_align<T>::template as<sizeof(OFalignof_or_identity<A>())>::type
++template<typename T>
++struct OFalignas_align
++{
++ template<size_t A>
++ struct as { typedef OFalignas(A) T type; };
++};
++template<typename T,size_t S>
++struct OFalignas_align<T[S]>
++{
++ template<size_t A>
++ struct as { typedef OFalignas(A) T type[S]; };
++};
++#endif
++
++#endif // OFALIGN_H
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/ofoption.h 2014-07-07 09:04:02.545705242 +0200
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h 2014-07-07 09:04:24.045706533 +0200
+@@ -29,6 +29,7 @@
+ #include "dcmtk/ofstd/ofstream.h"
+ #include "dcmtk/ofstd/ofdefine.h"
+ #include "dcmtk/ofstd/oftraits.h"
++#include "dcmtk/ofstd/ofalign.h"
+
+ // include <type_traits> for "std::is_default_constructible"
+ // to recover from compiler insanity (Visual Studio 12+).
+@@ -81,6 +82,210 @@
+ OFnullpt_t OFnullopt;
+ #endif // DOXYGEN
+
++/** Default storage traits of OFoptional<T>.
++ * OFdefault_optional_traits manages the state and storage of the contained
++ * object in a portable manner. You may use this class as base when defining
++ * custom traits for a specific type T, so you won't have to re-implement
++ * this functionality entirely.
++ * @relates OFoptional
++ * @tparam T the content type of the respective OFoptional instance.
++ * @sa OFoptional
++ * @sa OFoptional_traits
++ * @details
++ * <h2>@anchor ofoptional_trait_override Example</h2>
++ * This example shows how to override the <i>is_default_constructible</i>
++ * attribute of <kbd>OFoptional_traits</kbd> for the custom class <i>Test</i>.
++ * @code
++ * // Note: Test's default constructor is private
++ * // which leads to errors when being used within
++ * // OFoptional, since a default constructor exists
++ * // but can't be accessed.
++ * class Test
++ * {
++ * Test() {}
++ * public:
++ * static OFoptional<T> instance();
++ * .
++ * .
++ * .
++ * };
++ *
++ * // Override OFoptional's behavior to fix this problem
++ * template<>
++ * struct OFoptional_traits<Test>
++ * : OFdefault_optional_traits<Test> // derived from default traits
++ * {
++ * // Tell OFoptional that it can't default-construct
++ * // a Test object.
++ * typedef OFfalse_type is_default_constructible;
++ * };
++ * @endcode
++ */
++template<typename T>
++class OFdefault_optional_traits
++{
++#ifndef DOXYGEN
++ // types for detecting T's default constructibility via sfinae
++ struct no_type {};
++ struct yes_type {double d;};
++#ifndef _MSC_VER
++ // helper class to create an argument out of size_t
++ template<size_t>
++ struct consume{};
++ // sfinae overload working for default constructible Xs
++ template<typename X>
++ static yes_type sfinae(consume<sizeof *new X>*);
++#elif _MSC_VER < 1700
++ // Workaround bug in Visual Studio.
++ // On these broken compilers, the argument is not evaluated
++ // unless we require them to evaluate it for choosing which
++ // specialization should be instantiated.
++ template<size_t,size_t>
++ struct consume{};
++ template<size_t X>
++ struct consume<X,X> { typedef void type; };
++ // sfinae overload working for value-initializable Xs, that's as
++ // close as we get on these broken compilers
++ template<typename X>
++ static yes_type sfinae(typename consume<sizeof X(),sizeof X()>::type*);
++#else
++ // Visual Stuio 2012 is completely broken, but it has std::is_defaul_constructible
++ // Note: this tests constructibility, but not if WE can construct this.
++ template<typename X>
++ static yes_type sfinae(typename OFenable_if<std::is_default_constructible<X>::value>::type*);
++#endif
++ // most general sfinae overload, chosen only if everything else fails
++ template<typename X>
++ static no_type sfinae(...);
++
++public:
++ struct is_default_constructible
++ : OFintegral_constant<OFBool,sizeof(sfinae<T>(OFnullptr)) == sizeof(yes_type)> {};
++
++#ifdef DCMTK_USE_CXX11_STL
++
++ template<typename... Args>
++ void construct( Args&&... args )
++ { new (content()) T( std::forward<Args>( args )... ); m_State = OFTrue; }
++
++#else // C++11
++
++#ifdef OFalign
++ void construct() { new (content()) T; m_State = OFTrue; }
++ template<typename X>
++ void construct( const X& x ) { new (content()) T( x ); m_State = OFTrue; }
++#else
++ void construct() { m_pContent = new T; }
++ template<typename X>
++ void construct( const X& x ) { m_pContent = new T( x ); }
++#endif
++
++#endif // NOT C++11
++
++#ifdef OFalign
++ // State and content are stored in the same data-array to
++ // optimize alignment and so on. Mutable, since the content
++ // itself can be modified even if it cant be (re-)assigned.
++ OFdefault_optional_traits() : m_State( OFFalse ) {}
++ void destroy() { OFstatic_cast( T*, content() )->~T(); m_State = OFFalse; }
++ OFBool state() const { return m_State; }
++ void* content() const { return m_Content; }
++ mutable OFTypename OFalign(Uint8[sizeof(T)],T) m_Content;
++ OFBool m_State;
++#else
++ // Allocate content on the heap.
++ OFdefault_optional_traits() : m_pContent( OFnullptr ) {}
++ void destroy() { delete m_pContent; m_pContent = OFnullptr; }
++ OFBool state() const { return m_pContent; }
++ void* content() const { return m_pContent; }
++ T* m_pContent;
++#endif
++
++#endif // NOT DOXYGEN
++};
++
++/** Manages storage and state of the object contained in OFoptional<T>.
++ * OFoptional_traits is a customization point for OFoptional that enables you to define a custom storage management policy for
++ * individual types T. If you don't want to implement everything from scratch, use OFdefault_optional_traits as base class for
++ * your implementation.
++ * @relates OFoptional
++ * @tparam the content type of the respective OFoptional instance.
++ * @sa OFoptional
++ * @sa OFdefault_optional_traits
++ * @details
++ * <h2>Example</h2>
++ * The following example shows how to implement custom OFoptional_traits for an enum that already contains a specific element
++ * to denote an invalid state.
++ * @code
++ * enum FILE_ACCESS
++ * {
++ * NONE = 0000,
++ * READ = 0400,
++ * WRITE = 0200,
++ * . . .
++ * INVALID_ACCESS_CODE = 01000
++ * };
++ *
++ * template<>
++ * struct OFoptional_traits<FILE_ACCESS>
++ * {
++ * // Tell OFoptional that this is default-constructible
++ * typedef OFtrue_type is_default_constructible;
++ * // Initialize storage to the invalid state during construction
++ * OFoptional_traits() : access( INVALID_ACCESS_CODE ) {}
++ * // Constructors
++ * void construct() { access = NONE; }
++ * void construct( FILE_ACCESS fa ) { access = fa; }
++ * // There is nothing to destroy, just set the state to "disengaged"
++ * void destroy() { access = INVALID_ACCESS_CODE; }
++ * // Tell OFoptional how to distinguish "engaged" and "disengaged" FILE_ACCESS objects
++ * OFBool state() const { return access != INVALID_ACCESS_CODE; }
++ * // Just return a pointer to the underlying object
++ * void* content() const { return &access; }
++ * // The actual object
++ * mutable FILE_ACCESS access;
++ * };
++ *
++ * COUT << "This should now be the same: " << sizeof( FILE_ACCESS ) << ' ' << sizeof( OFoptional<FILE_ACCESS> ) << OFendl;
++ * @endcode
++ */
++template<typename T>
++struct OFoptional_traits
++#ifndef DOXYGEN
++: OFdefault_optional_traits<T>
++#endif
++{
++#ifdef DOXYGEN
++ /** <b>Required</b>: default construction policy.
++ * You need to define an appropriate integral constant as "is_default_constructible"
++ * that denotes if OFoptional<T> may attempt to default construct the underlying object
++ * under certain circumstances. You may use <kbd>OFdefault_optional_traits<T>::is_default_constructible</kbd>
++ * to specify this member, which uses SFINAE mechanisms to query a type's default constructibility.
++ */
++ <unspecified> is_default_constructible;
++
++ /// <b>Requried</b>: default constructor, must initialize the state to "disengaged".
++ OFoptional_traits();
++
++ /** <b>Required</b>: type constructors, construct the contained object.
++ * You need to define at least one method of this kind, that takes appropriate
++ * parameter(s) to construct the underlying object. Must set the state to "engaged".
++ * If <kbd>is_default_constructible</kbd> evaluates to <i>OFTrue</i>, an overload
++ * taking zero arguments is also required.
++ */
++ void construct(...);
++
++ /// <b>Required</b>: type destructor, destroys the underlying object and must set the state to "disengaged".
++ void destroy();
++
++ /// <b>Required</b>: state query, must return <i>OFTrue</i> when "engaged" and <i>OFFalse</i> otherwhise.
++ OFBool state() const;
++
++ /// <b>Required</b>: content access, must return a pointer to the contained object.
++ void* content() const;
++#endif
++};
++
+ /** The class template OFoptional manages an optional contained value, i.e.\ a value tagged with a state that reports its validity.
+ * A common use case for OFoptional is the return value of a function that may fail. OFoptional handles expensive to construct
+ * objects well and is more readable, as the intent is expressed explicitly.
+@@ -90,8 +295,10 @@
+ * @tparam T the type of the value to manage initialization state for. The type's destructor must be accessible by OFoptional<T>.
+ * @note There exists a sufficient specialization for reference types (T&) that behaves exactly like a pointer (T*) but allows
+ * OFoptional to be used in a generic context (when it's unknown if T is a reference or not).
++ * @sa OFoptional_traits
++ * @sa OFdefault_optional_traits
+ * @details
+- * ### @anchor optional_syntax %OFoptional Syntax ###
++ * <h2>@anchor optional_syntax %OFoptional Syntax</h2>
+ * OFoptional can be used like a pointer to the contained value, except OFoptional also manages the contained value's storage.
+ * Several operators have been overloaded to simplify the usage of OFoptional. Instead of looking at every overload's specification,
+ * it is more appropriate to describe the possible syntax in a general manner. Therefore we declare the following symbols that are
+@@ -147,7 +354,8 @@
+ * @note Detecting if T is default constructible within OFoptional<T> does not work correctly on all
+ * compilers. Especially all versions of Microsoft Visual Studio are impaired. For example a private
+ * default constructor of T might be detected as <i>not accessible</i> although OFoptional<T>
+- * was declared a friend of T.
++ * was declared a friend of T. Specialize <kbd>OFoptional_traits</kbd> for a particular type T to
++ * override constructibility detection as required. See @ref ofoptional_trait_override "this example".
+ * </td>
+ * </tr>
+ * <tr>
+@@ -285,40 +493,11 @@
+ */
+ template<typename T>
+ class OFoptional
+-{
+ #ifndef DOXYGEN
+- // types for detecting T's default constructibility via sfinae
+- struct no_type {};
+- struct yes_type {double d;};
+-#ifndef _MSC_VER
+- // helper class to create an argument out of size_t
+- template<size_t>
+- struct consume{};
+- // sfinae overload working for default constructible Xs
+- template<typename X>
+- static yes_type sfinae(consume<sizeof *new X>*);
+-#elif _MSC_VER < 1700
+- // Workaround bug in Visual Studio.
+- // On these broken compilers, the argument is not evaluated
+- // unless we require them to evaluate it for choosing which
+- // specialization should be instantiated.
+- template<size_t,size_t>
+- struct consume{};
+- template<size_t X>
+- struct consume<X,X> { typedef void type; };
+- // sfinae overload working for value-initializable Xs, that's as
+- // close as we get on these broken compilers
+- template<typename X>
+- static yes_type sfinae(typename consume<sizeof X(),sizeof X()>::type*);
+-#else
+- // Visual Stuio 2012 is completely broken, but it has std::is_defaul_constructible
+- // Note: this tests constructibility, but not if WE can construct this.
+- template<typename X>
+- static yes_type sfinae(typename OFenable_if<std::is_default_constructible<X>::value>::type*);
++: OFoptional_traits<T>
+ #endif
+- // most general sfinae overload, chosen only if everything else fails
+- template<typename X>
+- static no_type sfinae(...);
++{
++#ifndef DOXYGEN
+ // create a matching istream type if condition is OFTrue
+ template<typename Char,typename Traits,OFBool>
+ struct if_istream{ typedef STD_NAMESPACE basic_istream<Char,Traits>& type; };
+@@ -327,15 +506,9 @@
+ struct if_istream<Char,Traits,OFFalse> {};
+ // use sfinae etc. to enable / disable the respective istream operator overloads
+ template<typename Char,typename Traits>
+- struct if_constructible : if_istream<Char,Traits,sizeof(sfinae<T>(OFnullptr)) == sizeof(yes_type)> {};
++ struct if_constructible : if_istream<Char,Traits,OFoptional_traits<T>::is_default_constructible::value> {};
+ template<typename Char,typename Traits>
+- struct if_not_constructible : if_istream<Char,Traits,sizeof(sfinae<T>(OFnullptr)) == sizeof(no_type)> {};
+-
+-// implement "construct" when "emplace" is not supported
+-// needed for the istream operator
+-#ifndef DCMTK_USE_CXX11_STL
+- void construct() { state() = 1; new (content()) T; }
+-#endif // C++11
++ struct if_not_constructible : if_istream<Char,Traits,!OFoptional_traits<T>::is_default_constructible::value> {};
+
+ public:
+ // generic output stream operator overload
+@@ -354,11 +527,7 @@
+ {
+ if( !opt )
+ {
+-#ifdef DCMTK_USE_CXX11_STL
+- opt.emplace();
+-#else // C++11
+ opt.construct();
+-#endif // NOT C++11
+ if( (is >> *opt).fail() )
+ opt = OFnullopt;
+ return is;
+@@ -539,14 +708,14 @@
+
+ // Default construct an OFoptional object in the disengaged state.
+ OFconstexpr OFoptional()
+- : m_Content()
++ : OFoptional_traits<T>()
+ {
+
+ }
+
+ // Explicitly construct a disengaged OFoptional object.
+ OFconstexpr OFoptional( OFnullopt_t )
+- : m_Content()
++ : OFoptional_traits<T>()
+ {
+
+ }
+@@ -561,44 +730,39 @@
+
+ }
+ #else // C++11
+- : m_Content()
++ : OFoptional_traits<T>()
+ {
+- state() = rhs.state();
+- if( state() )
+- new (content()) T( *rhs );
++ if( rhs.state() )
++ OFoptional_traits<T>::construct( *rhs );
+ }
+ #endif // NOT C++11
+
+ // Copy the engaged state from rhs and its contents if rhs is engaged.
+ OFoptional( const OFoptional& rhs )
+- : m_Content()
++ : OFoptional_traits<T>()
+ {
+- state() = rhs.state();
+- if( state() )
+- new (content()) T( *rhs );
++ if( rhs.state() )
++ OFoptional_traits<T>::construct( *rhs );
+ }
+
+ #ifdef DCMTK_USE_CXX11_STL
+ // Move constructor, kills rhs if it was engaged before.
+ OFoptional( OFoptional&& rhs )
+- : m_Content{}
++ : OFoptional_traits<T>()
+ {
+- state() = rhs.state();
+- if( state() )
++ if( rhs.state() )
+ {
+- new (content()) T( std::move( *rhs ) );
+- rhs.state() = 0;
+- rhs->~T();
++ OFoptional_traits<T>::construct( std::move( *rhs ) );
++ rhs.destroy();
+ }
+ }
+
+ // Variadic constructor that emplaces the content
+ template<typename... Args>
+ OFoptional( Args&&... args )
+- : m_Content{}
++ : OFoptional_traits<T>()
+ {
+- state() = 1;
+- new (content()) T( std::forward<Args>( args )... );
++ OFoptional_traits<T>::construct( std::forward<Args>( args )... );
+ }
+
+ // Move assignment
+@@ -609,25 +773,22 @@
+ {
+ // if both objects are engaged, move content
+ // and kill rhs
+- if( state() == rhs.state() )
++ if( OFoptional_traits<T>::state() == rhs.state() )
+ {
+- if( state() )
++ if( OFoptional_traits<T>::state() )
+ {
+ (**this) = std::move( *rhs );
+- rhs.state() = 0;
+- rhs->~T();
++ rhs.destroy();
+ }
+ }
+- else if( state() ) // suicide if engaged and rhs isn't
++ else if( OFoptional_traits<T>::state() ) // suicide if engaged and rhs isn't
+ {
+- state() = 0;
+- (*this)->~T();
++ OFoptional_traits<T>::destroy();
+ }
+ else // if rhs is engaged and we aren't, swap states, move contents and kill rhs.
+ {
+- OFswap( state(), rhs.state() );
+- new (content()) T( std::move( *rhs ) );
+- rhs->~T();
++ OFoptional_traits<T>::construct( std::move( *rhs ) );
++ rhs.destroy();
+ }
+ }
+ return *this;
+@@ -638,34 +799,27 @@
+ OFoptional& emplace( Args&&... args )
+ {
+ // emplace construct if we are disengaged
+- if( !state() )
+- {
+- state() = 1;
+- new (content()) T( std::forward<Args>( args )... );
+- }
+- else (**this) = T( std::forward<Args>( args )... ); // only emplace new content
++ if( !OFoptional_traits<T>::state() )
++ OFoptional_traits<T>::construct( std::forward<Args>( args )... );
++ else
++ (**this) = T( std::forward<Args>( args )... ); // only emplace new content
+ return *this;
+ }
+ #else // C++11
+ // Construct an engaged OFoptional object containing a copy of x.
+ template<typename X>
+ OFoptional( const X& x )
+- : m_Content()
++ : OFoptional_traits<T>()
+ {
+- state() = 1;
+- new (content()) T( x );
++ OFoptional_traits<T>::construct( x );
+ }
+ #endif // NOT C++11
+
+ // Destroy the contained object if engaged, otherwise do nothing.
+ ~OFoptional()
+ {
+- if( state() )
+-#ifndef _MSC_VER
+- (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+- operator->()->~T();
+-#endif
++ if( OFoptional_traits<T>::state() )
++ OFoptional_traits<T>::destroy();
+ }
+
+ // False friend of the assignment operator to prevent wrong behavior
+@@ -682,23 +836,17 @@
+ if( &rhs != this )
+ {
+ // if both objects are engaged, copy content
+- if( state() == rhs.state() )
++ if( OFoptional_traits<T>::state() == rhs.state() )
+ {
+- if( state() ) (**this) = *rhs;
++ if( OFoptional_traits<T>::state() ) (**this) = *rhs;
+ }
+- else if( state() ) // suicide if engaged and rhs isn't
++ else if( OFoptional_traits<T>::state() ) // suicide if engaged and rhs isn't
+ {
+- state() = 0;
+-#ifndef _MSC_VER
+- (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+- operator->()->~T();
+-#endif
++ OFoptional_traits<T>::destroy();
+ }
+ else // if rhs is engaged and we aren't, copy-construct from rhs.
+ {
+- state() = 1;
+- new (content()) T( *rhs );
++ OFoptional_traits<T>::construct( *rhs );
+ }
+ }
+ return *this;
+@@ -712,66 +860,48 @@
+ #endif // C++11
+ operator OFBool() const
+ {
+- return state() != 0;
++ return OFoptional_traits<T>::state();
+ }
+
+ OFBool operator!() const
+ {
+- return !state();
++ return !OFoptional_traits<T>::state();
+ }
+
+ T& operator*() const
+ {
+- return *static_cast<T*>( content() );
++ return *OFstatic_cast( T*, OFoptional_traits<T>::content() );
+ }
+
+ T* operator->() const
+ {
+- return static_cast<T*>( content() );
++ return OFstatic_cast( T*, OFoptional_traits<T>::content() );
+ }
+
+ // Swap the contents with another OFoptional object.
+ void swap( OFoptional& rhs )
+ {
+ // if both objects are engaged, the contents are swapped.
+- if( state() == rhs.state() )
++ if( OFoptional_traits<T>::state() == rhs.state() )
+ {
+- if( state() ) OFswap( **this, *rhs );
++ if( OFoptional_traits<T>::state() ) OFswap( **this, *rhs );
+ }
+ else
+ {
+ // if we are engaged and rhs isn't, move assign
+ // our contents to rhs.
+- if( state() )
++ if( OFoptional_traits<T>::state() )
+ {
+- new (rhs.content()) T( OFmove( **this ) );
+-#ifndef _MSC_VER
+- (*this)->~T();
+-#else // Workaround bug in Microsoft compilers
+- operator->()->~T();
+-#endif
++ rhs.construct( OFmove( **this ) );
++ OFoptional_traits<T>::destroy();
+ }
+ else // else move assign rhs' contents to us
+ {
+- new (content()) T( OFmove( *rhs ) );
+-#ifndef _MSC_VER
+- rhs->~T();
+-#else // Workaround bug in Microsoft compilers
+- rhs.operator->()->~T();
+-#endif
++ OFoptional_traits<T>::construct( OFmove( *rhs ) );
++ rhs.destroy();
+ }
+- // finally, swap the states
+- OFswap( state(), rhs.state() );
+ }
+ }
+-
+-private:
+- // State and content are stored in the same data-array to
+- // optimize alignment and so on. Mutable, since the content
+- // itself can be modified even if it cant be (re-)assigned.
+- void* content() const { return m_Content; }
+- Uint8& state() const { return m_Content[sizeof(T)]; }
+- mutable Uint8 m_Content[sizeof(T)+1];
+ #endif // NOT DOXYGEN
+ };
+
+Index: dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/oftraits.h
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/oftraits.h 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/oftraits.h 2014-07-07 09:04:24.045706533 +0200
+@@ -37,8 +37,8 @@
+ template<bool B,typename... ARGS>
+ using OFconditional = std::conditional<B,ARGS...>;
+
+-template<typename... ARGS>
+-using OFintegral_constant = std::integral_constant<ARGS...>;
++template<typename T,T Value>
++using OFintegral_constant = std::integral_constant<T,Value>;
+
+ template<typename... ARGS>
+ using OFis_signed = std::is_signed<ARGS...>;
+Index: dcmtk-3.6.1~20140617/ofstd/tests/toption.cc
+===================================================================
+--- dcmtk-3.6.1~20140617.orig/ofstd/tests/toption.cc 2014-06-17 11:23:18.000000000 +0200
++++ dcmtk-3.6.1~20140617/ofstd/tests/toption.cc 2014-07-07 09:04:24.045706533 +0200
+@@ -10,8 +10,16 @@
+
+ OFTEST(ofstd_optional)
+ {
++ OFCHECK( OFoptional_traits<int>::is_default_constructible::value );
++ OFCHECK( !OFoptional_traits<test>::is_default_constructible::value );
++
+ OFoptional<int> o0( 3 ), o1, o2( OFnullopt );
+
++ COUT << OFalignof(OFoptional<char>) << ' ' << sizeof(OFoptional<char>) << OFendl;
++ COUT << OFalignof(OFoptional<short>) << ' ' << sizeof(OFoptional<short>) << OFendl;
++ COUT << OFalignof(OFoptional<float>) << ' ' << sizeof(OFoptional<float>) << OFendl;
++ COUT << OFalignof(long) << ' ' << sizeof(long) << ' ' << OFalignof(OFoptional<long>) << ' ' << sizeof(OFoptional<long>) << OFendl;
++
+ OFCHECK( o0 && *o0 == 3 );
+
+ OFCHECK( !o1 && !o2 );
Added: trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/datadic_install.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,14 @@
+Description: Install dict to versioned dir
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/709123
+Forwarded: no
+
+Index: dcmtk-3.6.1_20140617/dcmdata/data/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20140617.orig/dcmdata/data/CMakeLists.txt 2014-06-18 08:40:12.718534303 +0200
++++ dcmtk-3.6.1_20140617/dcmdata/data/CMakeLists.txt 2014-06-18 08:40:46.010533856 +0200
+@@ -1,2 +1,3 @@
+ # declare installation files
+-INSTALL(FILES dicom.dic acrnema.dic private.dic diconde.dic dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION ${DCMTK_INSTALL_DATDIR} COMPONENT data)
++INSTALL(FILES dcm2xml.dtd dumppat.txt SC.dump VLP.dump DESTINATION ${DCMTK_INSTALL_DATDIR} COMPONENT data)
++INSTALL(FILES dicom.dic acrnema.dic private.dic diconde.dic DESTINATION ${DCMTK_INSTALL_DATDIC} COMPONENT data)
Added: trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/debian_iconv.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,89 @@
+Description: Upstream needs libiconv and libcharset
+ Debian does not ship either of them, so instead use
+ iconv support from eglibc
+ and use libcharset support from gettext
+ We removed the tests since iconv does not work
+Author: Mathieu Malaterre <malat at debian.org>
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/701802
+Forwarded: yes
+
+Index: dcmtk-3.6.1_20131114/CMake/FindICONV.cmake
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/CMake/FindICONV.cmake 2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/CMake/FindICONV.cmake 2013-11-22 19:56:09.278241875 +0100
+@@ -14,11 +14,12 @@
+ MARK_AS_ADVANCED(LIBICONV_INCLUDE_DIR)
+
+ # Look for the library
+-SET(LIBICONV_LIBS iconv)
+-FIND_LIBRARY(LIBICONV_LIBRARY NAMES ${LIBICONV_LIBS})
+-MARK_AS_ADVANCED(LIBICONV_LIBRARY)
++#SET(LIBICONV_LIBS iconv)
++#FIND_LIBRARY(LIBICONV_LIBRARY NAMES ${LIBICONV_LIBS})
++#MARK_AS_ADVANCED(LIBICONV_LIBRARY)
+
+-FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICONV REQUIRED_VARS LIBICONV_LIBRARY LIBICONV_INCLUDE_DIR)
++#FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBICONV REQUIRED_VARS LIBICONV_LIBRARY LIBICONV_INCLUDE_DIR)
++SET(LIBICONV_FOUND TRUE)
+
+ # Copy the result to output variables
+ IF(LIBICONV_FOUND)
+Index: dcmtk-3.6.1_20131114/CMake/FindCharset.cmake
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/CMake/FindCharset.cmake 2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/CMake/FindCharset.cmake 2013-11-22 19:56:09.278241875 +0100
+@@ -7,10 +7,14 @@
+ INCLUDE(FindPackageHandleStandardArgs)
+
+ # Look for the header file
+-FIND_PATH(LIBCHARSET_INCLUDE_DIR NAMES localcharset.h)
++FIND_PATH(LIBCHARSET_INCLUDE_DIR localcharset.h
++/usr/share/gettext/intl/
++)
+ MARK_AS_ADVANCED(LIBCHARSET_INCLUDE_DIR)
+
+-SET(LIBCHARSET_LIBS charset)
++SET(LIBCHARSET_LIBS
++gettextlib
++)
+ FIND_LIBRARY(LIBCHARSET_LIBRARY NAMES ${LIBCHARSET_LIBS})
+ MARK_AS_ADVANCED(LIBCHARSET_LIBRARY)
+
+Index: dcmtk-3.6.1_20131114/ofstd/libsrc/ofchrenc.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/ofstd/libsrc/ofchrenc.cc 2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/ofstd/libsrc/ofchrenc.cc 2013-11-22 19:56:09.278241875 +0100
+@@ -28,6 +28,9 @@
+ #ifdef WITH_LIBICONV
+ #include <iconv.h>
+ #include <localcharset.h>
++// The following #define is important this way it turns on/off iconv support in DCMTK
++// debian/iconv.h does not define this variable
++//#define _LIBICONV_VERSION 0x010E
+ #endif
+
+ BEGIN_EXTERN_C
+@@ -469,6 +472,7 @@
+ OFString versionStr = "LIBICONV, Version ";
+ char buf[10];
+ // extract major and minor version number
++ int _libiconv_version = 0;
+ sprintf(buf, "%i.%i", (_libiconv_version >> 8), (_libiconv_version & 0xff));
+ versionStr.append(buf);
+ return versionStr;
+Index: dcmtk-3.6.1_20131114/dcmdata/libsrc/dcspchrs.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmdata/libsrc/dcspchrs.cc 2013-11-14 15:08:01.000000000 +0100
++++ dcmtk-3.6.1_20131114/dcmdata/libsrc/dcspchrs.cc 2013-11-22 19:56:09.278241875 +0100
+@@ -710,8 +710,9 @@
+
+ OFBool DcmSpecificCharacterSet::isConversionLibraryAvailable()
+ {
++ return OFFalse;
+ // just call the appropriate function from the underlying class
+- return OFCharacterEncoding::isLibraryAvailable();
++// return OFCharacterEncoding::isLibraryAvailable();
+ }
+
+
Added: trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/ofstd_markup_6.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,24 @@
+From: Joerg Riesmeier <dicom at jriesmeier.com>
+Date: Tue, 26 Nov 2013 17:57:46 +0000 (+0100)
+Subject: Fixed issue with test "ofstd_markup_6" (Win32).
+X-Git-Url: http://git.dcmtk.org/web?p=dcmtk.git;a=commitdiff_plain;h=94ae6b50c738e64d8cefa8e07a10fc8ddd75418f
+
+Fixed issue with test "ofstd_markup_6" (Win32).
+
+Fixed issue with test "ofstd_markup_6" not running successfully on Windows
+systems (due to an incorrect length of the input string value).
+---
+
+Index: dcmtk-3.6.1~20131114/ofstd/tests/tmarkup.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/ofstd/tests/tmarkup.cc 2013-12-10 14:55:22.278290390 +0100
++++ dcmtk-3.6.1~20131114/ofstd/tests/tmarkup.cc 2013-12-10 14:56:31.698289462 +0100
+@@ -114,7 +114,7 @@
+ OFTEST(ofstd_markup_6)
+ {
+ OFString resultStr;
+- const size_t sourceLen = 37;
++ const size_t sourceLen = 34;
+ // XML: source string contains a NULL byte!
+ const OFString sourceStr(("This is a test\0, with a NULL byte."), sourceLen);
+ const OFString markupStr = "This is a test, with a NULL byte.";
Added: trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/removemd5.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,15 @@
+Description: Remove md5 files. They only serves as internal bookeeping mecanism
+ for doxygen
+Author: Mathieu Malaterre <malat at debian.org>
+
+--- dcmtk-3.6.1~20140617.orig/doxygen/CMakeLists.txt
++++ dcmtk-3.6.1~20140617/doxygen/CMakeLists.txt
+@@ -40,7 +40,7 @@ IF(DCMTK_WITH_DOXYGEN)
+ ENDIF(NOT WIN32)
+
+ # install html docs and manpages
+- INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/htmldocs/ DESTINATION ${DCMTK_INSTALL_HTMDIR} COMPONENT html PATTERN "CVS" EXCLUDE)
++ INSTALL(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/htmldocs/ DESTINATION ${DCMTK_INSTALL_HTMDIR} COMPONENT html PATTERN "*.md5" EXCLUDE)
+ IF(DCMTK_GENERATE_DOXYGEN_TAGFILE)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${DOXYGEN_TAGFILE} DESTINATION ${DCMTK_INSTALL_DOCDIR} COMPONENT html OPTIONAL)
+ ENDIF(DCMTK_GENERATE_DOXYGEN_TAGFILE)
Added: trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/sparc_align.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,18 @@
+Description: Fix a SIGSEGV on sparc due to alignement issue
+Author: Jan Schlamelcher <dicom at offis.de>
+Origin: upstream
+Reviewed-By: Mathieu Malaterre <malat at debian.org>
+
+--- dcmtk-3.6.1~20140617.orig/ofstd/include/dcmtk/ofstd/ofoption.h
++++ dcmtk-3.6.1~20140617/ofstd/include/dcmtk/ofstd/ofoption.h
+@@ -770,8 +770,8 @@ private:
+ // optimize alignment and so on. Mutable, since the content
+ // itself can be modified even if it cant be (re-)assigned.
+ void* content() const { return m_Content; }
+- Uint8& state() const { return m_Content[sizeof(T)]; }
+- mutable Uint8 m_Content[sizeof(T)+1];
++ Uint64& state() const { return m_Content[sizeof(T)]; }
++ mutable Uint64 m_Content[sizeof(T)+1];
+ #endif // NOT DOXYGEN
+ };
+
Added: trunk/packages/dcmtk/trunk/debian/patches/spelling.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/spelling.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/spelling.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,815 @@
+Description: spelling error reported by lintian
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/730635
+
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcmquant.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcmquant.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcmquant.man 2013-11-27 15:36:37.000000000 +0100
+@@ -258,7 +258,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcmscale.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcmscale.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcmscale.man 2013-11-27 15:36:37.000000000 +0100
+@@ -243,7 +243,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmimage/docs/dcm2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/docs/dcm2pnm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/docs/dcm2pnm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -464,7 +464,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmsign/docs/dcmsign.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsign/docs/dcmsign.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsign/docs/dcmsign.man 2013-11-27 15:36:37.000000000 +0100
+@@ -224,7 +224,7 @@
+ standard.
+
+ Private Keys are expected in PEM or DER encoding. PEM is recommended (and
+-default) because this allows to keep private keys in encrypted form. Command
++default) because this allows one to keep private keys in encrypted form. Command
+ line options control the behaviour of \b dcmsign when an encrypted PEM key is
+ opened (see above). In general it is not recommended to specify the encryption
+ password in the command line because the command line may be visible to other
+@@ -306,7 +306,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/getscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/getscu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/getscu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -505,7 +505,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/dcmsend.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/dcmsend.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/dcmsend.man 2013-11-27 15:36:37.000000000 +0100
+@@ -345,7 +345,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/dcmrecv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/dcmrecv.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/dcmrecv.man 2013-11-27 15:36:37.000000000 +0100
+@@ -292,7 +292,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/storescp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/storescp.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/storescp.man 2013-11-27 15:36:37.000000000 +0100
+@@ -459,7 +459,7 @@
+ filenames created by \e --rename-on-eostudy to maintain the length of 8
+ characters.
+
+-Option \e --exec-on-reception allows to execute a certain command line after
++Option \e --exec-on-reception allows one to execute a certain command line after
+ having received and processed one DICOM object (through a C-STORE-RQ message).
+ The command line to be executed is passed to this option as a parameter. The
+ specified command line may contain a number of placeholders which will be
+@@ -479,7 +479,7 @@
+ execution of \b storescp will not be held back. This behavior can be influenced
+ with the \e --exec-sync option.
+
+-Option \e --exec-on-eostudy allows to execute a certain command line when all
++Option \e --exec-on-eostudy allows one to execute a certain command line when all
+ DICOM objects that belong to one study have been received by \b storescp.
+ The same placeholders as with \e --exec-on-reception may be used, except for
+ '\#f', which is not supported. A study is considered complete by \b storescp
+@@ -794,7 +794,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/termscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/termscu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/termscu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -121,7 +121,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/echoscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/echoscu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/echoscu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -220,7 +220,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/storescu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/storescu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/storescu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -491,7 +491,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/findscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/findscu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/findscu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -367,7 +367,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmnet/docs/movescu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmnet/docs/movescu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmnet/docs/movescu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -656,7 +656,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcmcjpls.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcmcjpls.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcmcjpls.man 2013-11-27 15:36:37.000000000 +0100
+@@ -288,7 +288,7 @@
+
+ The user is responsible for making sure that the compressed images he creates
+ are compliant with the DICOM standard. If in question, the \b dcmcjpls utility
+-allows to convert an image to secondary capture - this SOP class does not pose
++allows one to convert an image to secondary capture - this SOP class does not pose
+ restrictions as the ones mentioned above.
+
+ \section transfer_syntaxes TRANSFER SYNTAXES
+@@ -350,7 +350,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcmdjpls.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcmdjpls.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcmdjpls.man 2013-11-27 15:36:37.000000000 +0100
+@@ -69,7 +69,7 @@
+ -f --read-dataset
+ read data set without file meta information
+
+- # This option allows to decompress JPEG-LS compressed DICOM objects that have
++ # This option allows one to decompress JPEG-LS compressed DICOM objects that have
+ # been stored as dataset without meta-header. Such a thing should not exist
+ # since the transfer syntax cannot be reliably determined without meta-header,
+ # but unfortunately it does.
+@@ -249,7 +249,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpls/docs/dcml2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpls/docs/dcml2pnm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpls/docs/dcml2pnm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -465,7 +465,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsrdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsrdump.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsrdump.man 2013-11-27 15:36:37.000000000 +0100
+@@ -249,7 +249,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/xml2dsr.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/xml2dsr.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/xml2dsr.man 2013-11-27 15:36:37.000000000 +0100
+@@ -271,7 +271,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsr2html.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsr2html.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsr2html.man 2013-11-27 15:36:37.000000000 +0100
+@@ -307,7 +307,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmsr/docs/dsr2xml.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsr/docs/dsr2xml.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmsr/docs/dsr2xml.man 2013-11-27 15:36:37.000000000 +0100
+@@ -263,7 +263,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmcrle.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmcrle.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmcrle.man 2013-11-27 15:36:37.000000000 +0100
+@@ -221,7 +221,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmdrle.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmdrle.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmdrle.man 2013-11-27 15:36:37.000000000 +0100
+@@ -70,7 +70,7 @@
+ -f --read-dataset
+ read data set without file meta information
+
+- # This option allows to decompress RLE compressed DICOM objects that have
++ # This option allows one to decompress RLE compressed DICOM objects that have
+ # been stored as dataset without meta-header. Such a thing should not exist
+ # since the transfer syntax cannot be reliably determined without meta-header,
+ # but unfortunately it does.
+@@ -94,7 +94,7 @@
+ +br --byte-order-reverse
+ least significant byte first
+
+- # This option allows to decompress RLE compressed DICOM files in which the
++ # This option allows one to decompress RLE compressed DICOM files in which the
+ # order of byte segments is encoded in incorrect order. This only affects
+ # images with more than one byte per sample.
+ \endverbatim
+@@ -221,7 +221,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmodify.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmodify.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmodify.man 2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+
+ \section description DESCRIPTION
+
+-\b dcmodify is a tool that allows to modify, insert and delete tags and items
++\b dcmodify is a tool that allows one to modify, insert and delete tags and items
+ in DICOM files. Sequences and tags with a value multiplicity > 1 are also
+ supported. Metaheader information and the tag's VR can not be modified
+ directly by \b dcmodify at this time. In addition to tag modifications,
+@@ -560,7 +560,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/pdf2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/pdf2dcm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/pdf2dcm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -149,7 +149,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dump2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dump2dcm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dump2dcm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -286,7 +286,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/xml2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/xml2dcm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/xml2dcm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -308,7 +308,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcm2xml.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcm2xml.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcm2xml.man 2013-11-27 15:36:37.000000000 +0100
+@@ -351,7 +351,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmconv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmconv.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmconv.man 2013-11-27 15:36:37.000000000 +0100
+@@ -332,7 +332,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmgpdir.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmgpdir.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmgpdir.man 2013-11-27 15:36:37.000000000 +0100
+@@ -204,7 +204,7 @@
+ A \e DICOMDIR file will only be constructed if all files have passed initial
+ tests.
+
+-The \b dcmgpdir utility also allows to append new entries to and to update
++The \b dcmgpdir utility also allows one to append new entries to and to update
+ existing entries in a \e DICOMDIR file. Using option \e +A new entries are
+ only appended to the DICOMDIR, i.e. existing records like the ones for PATIENT
+ information are not updated. Using option \e +U also existing records are
+@@ -264,7 +264,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcmdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcmdump.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcmdump.man 2013-11-27 15:36:37.000000000 +0100
+@@ -366,7 +366,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/dcm2pdf.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/dcm2pdf.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/dcm2pdf.man 2013-11-27 15:36:37.000000000 +0100
+@@ -180,7 +180,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmdata/docs/img2dcm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/docs/img2dcm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/docs/img2dcm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -458,7 +458,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmimgle/docs/dcmdspfn.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/docs/dcmdspfn.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/docs/dcmdspfn.man 2013-11-27 15:36:37.000000000 +0100
+@@ -179,7 +179,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmwlm/docs/wlmscpfs.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmwlm/docs/wlmscpfs.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmwlm/docs/wlmscpfs.man 2013-11-27 15:36:37.000000000 +0100
+@@ -417,7 +417,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrti.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqrti.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrti.man 2013-11-27 15:36:37.000000000 +0100
+@@ -411,7 +411,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrscp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqrscp.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqrscp.man 2013-11-27 15:36:37.000000000 +0100
+@@ -924,7 +924,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqridx.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/docs/dcmqridx.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/docs/dcmqridx.man 2013-11-27 15:37:07.000000000 +0100
+@@ -14,7 +14,7 @@
+
+ \section description DESCRIPTION
+
+-The \b dcmqridx ulility registers DICOM image files in the database index file
++The \b dcmqridx utility registers DICOM image files in the database index file
+ used by the \b dcmqrscp and \b dcmqrti applications. No image files are copied.
+ \b dcmqridx can also list the contents of the database index file.
+
+@@ -105,7 +105,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmrt/docs/drtdump.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmrt/docs/drtdump.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmrt/docs/drtdump.man 2013-11-27 15:36:37.000000000 +0100
+@@ -155,7 +155,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmdjpeg.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmdjpeg.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmdjpeg.man 2013-11-27 15:36:37.000000000 +0100
+@@ -70,7 +70,7 @@
+ -f --read-dataset
+ read data set without file meta information
+
+- # This option allows to decompress JPEG compressed DICOM objects that
++ # This option allows one to decompress JPEG compressed DICOM objects that
+ # have been stored as dataset without meta-header. Such a thing should
+ # not exist since the transfer syntax cannot be reliably determined,
+ # without meta-header but unfortunately it does.
+@@ -297,7 +297,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmj2pnm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmj2pnm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmj2pnm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -509,7 +509,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmcjpeg.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmcjpeg.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmcjpeg.man 2013-11-27 15:36:37.000000000 +0100
+@@ -546,7 +546,7 @@
+
+ The user is responsible for making sure that the compressed images he creates
+ are compliant with the DICOM standard. If in question, the \b dcmcjpeg utility
+-allows to convert an image to secondary capture - this SOP class does not pose
++allows one to convert an image to secondary capture - this SOP class does not pose
+ restrictions as the ones mentioned above.
+
+ With version DCMTK 3.5.4 a new encoder for truely lossless JPEG compression was
+@@ -642,7 +642,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmmkdir.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmjpeg/docs/dcmmkdir.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmjpeg/docs/dcmmkdir.man 2013-11-27 15:36:37.000000000 +0100
+@@ -362,7 +362,7 @@
+ A \e DICOMDIR file will only be constructed if all files have passed initial
+ tests.
+
+-The \b dcmmkdir utility also allows to append new entries to and to update
++The \b dcmmkdir utility also allows one to append new entries to and to update
+ existing entries in a \e DICOMDIR file. Using option \e +A new entries are
+ only appended to the DICOMDIR, i.e. existing records like the ones for PATIENT
+ information are not updated. Using option \e +U also existing records are
+@@ -427,7 +427,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsrcv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsrcv.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsrcv.man 2013-11-27 15:36:37.000000000 +0100
+@@ -100,7 +100,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpschk.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpschk.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpschk.man 2013-11-27 15:36:37.000000000 +0100
+@@ -110,7 +110,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscu.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmprscu.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscu.man 2013-11-27 15:36:37.000000000 +0100
+@@ -171,7 +171,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpssnd.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpssnd.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpssnd.man 2013-11-27 15:36:37.000000000 +0100
+@@ -108,7 +108,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsprt.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsprt.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsprt.man 2013-11-27 15:36:37.000000000 +0100
+@@ -282,7 +282,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmklut.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmmklut.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmklut.man 2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+
+ \section description DESCRIPTION
+
+-The \b dcmmklut utility allows to create a variety of DICOM Modality,
++The \b dcmmklut utility allows one to create a variety of DICOM Modality,
+ Presentation and VOI look-up tables (LUT) and is intended for the creation
+ of test images. The utility is able to read an existing DICOM image file,
+ create a look up table according to the command line options, and write
+@@ -222,7 +222,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscp.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmprscp.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmprscp.man 2013-11-27 15:36:37.000000000 +0100
+@@ -111,7 +111,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmp2pgm.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmp2pgm.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmp2pgm.man 2013-11-27 15:36:37.000000000 +0100
+@@ -128,7 +128,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmkcrv.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmmkcrv.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmmkcrv.man 2013-11-27 15:36:37.000000000 +0100
+@@ -14,7 +14,7 @@
+
+ \section description DESCRIPTION
+
+-The \b dcmmkcrv utility allows to create DICOM images containing curve data.
++The \b dcmmkcrv utility allows one to create DICOM images containing curve data.
+ Since curve data is hardly used by vendors today, this is intended as a
+ means to test implementations that can read curve data. The utility reads an
+ existing DICOM image and a text file containing the curve data in textual
+@@ -156,7 +156,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
+Index: dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsmk.man
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/docs/dcmpsmk.man 2013-11-27 15:36:37.000000000 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/docs/dcmpsmk.man 2013-11-27 15:36:37.000000000 +0100
+@@ -223,7 +223,7 @@
+ whitespaces are treated as a single separator unless they appear between two
+ quotation marks) prior to any further evaluation. Please note that a command
+ file cannot contain another command file. This simple but effective approach
+-allows to summarize common combinations of options/parameters and avoids
++allows one to summarize common combinations of options/parameters and avoids
+ longish and confusing command lines (an example is provided in file
+ <em>\<datadir\>/dumppat.txt</em>).
+
Added: trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/system_charls.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,92 @@
+Description: Remove convenient copy of CharLS
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/705923
+Forwarded: no
+
+Index: dcmtk-3.6.1_20131114/dcmjpls/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/CMakeLists.txt 2013-11-22 19:57:00.498241184 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/CMakeLists.txt 2013-11-22 19:59:31.318239164 +0100
+@@ -2,6 +2,6 @@
+ PROJECT(dcmjpls)
+
+ # recurse into subdirectories
+-FOREACH(SUBDIR libsrc libcharls apps include)
++FOREACH(SUBDIR libsrc apps include)
+ ADD_SUBDIRECTORY(${SUBDIR})
+ ENDFOREACH(SUBDIR)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/CMakeLists.txt 2013-11-22 19:57:00.526241188 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/CMakeLists.txt 2013-11-22 19:59:31.318239164 +0100
+@@ -1,7 +1,7 @@
+ # declare additional include directories
+-INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${dcmimgle_SOURCE_DIR}/include ${dcmimage_SOURCE_DIR}/include ${dcmjpls_SOURCE_DIR}/libcharls ${ZLIB_INCDIR})
++INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/include ${ofstd_SOURCE_DIR}/include ${oflog_SOURCE_DIR}/include ${dcmdata_SOURCE_DIR}/include ${dcmimgle_SOURCE_DIR}/include ${dcmimage_SOURCE_DIR}/include ${ZLIB_INCDIR})
+
+ # create library from source files
+ DCMTK_ADD_LIBRARY(dcmjpls djcparam djdecode djencode djrparam djcodecd djutils djcodece)
+
+-DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage charls)
++DCMTK_TARGET_LINK_MODULES(dcmjpls ofstd oflog dcmdata dcmimgle dcmimage CharLS)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djerror.h
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djerror.h 2013-11-22 19:57:00.538241184 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djerror.h 2013-11-22 19:59:31.318239164 +0100
+@@ -24,7 +24,7 @@
+
+ #include "dcmtk/config/osconfig.h"
+ #include "dcmtk/dcmjpls/djlsutil.h" /* For the OFCondition codes */
+-#include "intrface.h" /* CharLS include */
++#include "CharLS/interface.h" /* CharLS include */
+
+ /** Helper class for converting between dcmjpls and CharLS error codes
+ */
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodecd.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djcodecd.cc 2013-11-22 19:57:00.522241190 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodecd.cc 2013-11-22 19:59:31.318239164 +0100
+@@ -37,7 +37,7 @@
+ #include "djerror.h" /* for private class DJLSError */
+
+ // JPEG-LS library (CharLS) includes
+-#include "intrface.h"
++#include "CharLS/interface.h"
+
+ E_TransferSyntax DJLSLosslessDecoder::supportedTransferSyntax() const
+ {
+Index: dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodece.cc
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libsrc/djcodece.cc 2013-11-22 19:57:00.514241190 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libsrc/djcodece.cc 2013-11-22 19:59:31.318239164 +0100
+@@ -55,7 +55,7 @@
+ #include "dcmtk/dcmimgle/dcmimage.h" /* for class DicomImage */
+
+ // JPEG-LS library (CharLS) includes
+-#include "intrface.h"
++#include "CharLS/interface.h"
+
+ BEGIN_EXTERN_C
+ #ifdef HAVE_FCNTL_H
+Index: dcmtk-3.6.1_20131114/dcmjpls/apps/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/apps/CMakeLists.txt 2013-11-22 20:01:11.434237827 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/apps/CMakeLists.txt 2013-11-22 20:01:30.242237573 +0100
+@@ -8,5 +8,5 @@
+
+ # make sure executables are linked to the corresponding libraries
+ FOREACH(PROGRAM dcmcjpls dcmdjpls dcml2pnm)
+- DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls charls dcmimage dcmimgle dcmdata oflog ofstd ofstd)
++ DCMTK_TARGET_LINK_MODULES(${PROGRAM} dcmjpls CharLS dcmimage dcmimgle dcmdata oflog ofstd ofstd)
+ ENDFOREACH(PROGRAM)
+Index: dcmtk-3.6.1_20131114/dcmjpls/libcharls/CMakeLists.txt
+===================================================================
+--- dcmtk-3.6.1_20131114.orig/dcmjpls/libcharls/CMakeLists.txt 2013-11-22 20:01:36.862237482 +0100
++++ dcmtk-3.6.1_20131114/dcmjpls/libcharls/CMakeLists.txt 2013-11-22 20:01:42.314237411 +0100
+@@ -1,5 +1,5 @@
+ # declare additional include directories
+-INCLUDE_DIRECTORIES(${dcmjpls_SOURCE_DIR}/libcharls ${ofstd_SOURCE_DIR}/include)
++INCLUDE_DIRECTORIES(${ofstd_SOURCE_DIR}/include)
+
+ # create library from source files
+ DCMTK_ADD_LIBRARY(charls header intrface jpegls)
Added: trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch
===================================================================
--- trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/patches/warn_unused_result.patch 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,263 @@
+Description: Fix all issues with -Wunused-result
+ Eg:
+ dcmqrcnf.cc:294:43: warning: ignoring return value of 'char* fgets(char*, int,
+ FILE*)', declared with attribute warn_unused_result [-Wunused-result]
+Author: Mathieu Malaterre <malat at debian.org>
+Bug-Debian: http://bugs.debian.org/731434
+Forwarded: no
+
+Index: dcmtk-3.6.1~20131114/dcmimage/libsrc/dicoimg.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimage/libsrc/dicoimg.cc 2013-12-10 14:55:18.658290442 +0100
++++ dcmtk-3.6.1~20131114/dcmimage/libsrc/dicoimg.cc 2013-12-10 14:56:36.194289404 +0100
+@@ -680,8 +680,9 @@
+ if ((OutputData != NULL) && (OutputData->getData() != NULL))
+ {
+ fprintf(stream, "P6\n%u %u\n%lu\n", Columns, Rows, DicomImageClass::maxval(bits));
+- fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
+- return 1;
++ size_t tobewritten = OutputData->getItemSize();
++ size_t written = fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
++ if( written == tobewritten) return 1;
+ }
+ }
+ }
+Index: dcmtk-3.6.1~20131114/dcmsign/libsrc/simaccon.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmsign/libsrc/simaccon.cc 2013-12-10 14:55:18.634290445 +0100
++++ dcmtk-3.6.1~20131114/dcmsign/libsrc/simaccon.cc 2013-12-10 14:56:36.194289404 +0100
+@@ -61,8 +61,15 @@
+ stream.flushBuffer(bufptr, bufLen);
+ if (bufLen > 0)
+ {
+- if (dumpFile) fwrite(bufptr, 1, (size_t)bufLen, dumpFile);
+- result = mac.digest((unsigned char *)bufptr, (unsigned long)bufLen);
++ size_t written = (size_t)bufLen;
++ if (dumpFile)
++ {
++ written = fwrite(bufptr, 1, (size_t)bufLen, dumpFile);
++ }
++ if( written == (size_t)bufLen )
++ result = mac.digest((unsigned char *)bufptr, (unsigned long)bufLen);
++ else
++ result = EC_DirectoryNotWritable;
+ }
+ return result;
+ }
+Index: dcmtk-3.6.1~20131114/dcmdata/libsrc/dcvrobow.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmdata/libsrc/dcvrobow.cc 2013-12-10 14:55:18.686290438 +0100
++++ dcmtk-3.6.1~20131114/dcmdata/libsrc/dcvrobow.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -214,13 +214,21 @@
+ {
+ swapIfNecessary(EBO_LittleEndian, gLocalByteOrder, data, getLengthField(), sizeof(Uint16));
+ setByteOrder(EBO_LittleEndian);
+- fwrite(data, sizeof(Uint16), OFstatic_cast(size_t, getLengthField() / sizeof(Uint16)), file);
++ size_t tobewritten = OFstatic_cast(size_t, getLengthField() / sizeof(Uint16));
++ size_t written = fwrite(data, sizeof(Uint16), tobewritten, file);
++ if( written != tobewritten )
++ DCMDATA_WARN("DcmOtherByteOtherWord: Some bytes were not written: " << (tobewritten - written) );
+ }
+ } else {
+ Uint8 *data = NULL;
+ getUint8Array(data);
+ if (data != NULL)
+- fwrite(data, sizeof(Uint8), OFstatic_cast(size_t, getLengthField()), file);
++ {
++ size_t tobewritten = OFstatic_cast(size_t, getLengthField());
++ size_t written = fwrite(data, sizeof(Uint8), tobewritten, file);
++ if( written != tobewritten )
++ DCMDATA_WARN("DcmOtherByteOtherWord: Some bytes were not written: " << (tobewritten - written) );
++ }
+ }
+ fclose(file);
+ } else {
+Index: dcmtk-3.6.1~20131114/dcmimgle/libsrc/diimage.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/libsrc/diimage.cc 2013-12-10 14:55:18.694290443 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/libsrc/diimage.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -809,31 +809,40 @@
+ swapBytes(OFreinterpret_cast(Uint8 *, palette), 256 * 4 /*byteLength*/, 4 /*valWidth*/);
+ }
+ /* write bitmap file header: do not write the struct because of 32-bit alignment */
+- fwrite(&fileHeader.bfType, sizeof(fileHeader.bfType), 1, stream);
+- fwrite(&fileHeader.bfSize, sizeof(fileHeader.bfSize), 1, stream);
+- fwrite(&fileHeader.bfReserved1, sizeof(fileHeader.bfReserved1), 1, stream);
+- fwrite(&fileHeader.bfReserved2, sizeof(fileHeader.bfReserved2), 1, stream);
+- fwrite(&fileHeader.bfOffBits, sizeof(fileHeader.bfOffBits), 1, stream);
++ size_t singleitem; // should always be equal to 1 in the following:
++ singleitem = fwrite(&fileHeader.bfType, sizeof(fileHeader.bfType), 1, stream);
++ singleitem = singleitem && fwrite(&fileHeader.bfSize, sizeof(fileHeader.bfSize), 1, stream);
++ singleitem = singleitem && fwrite(&fileHeader.bfReserved1, sizeof(fileHeader.bfReserved1), 1, stream);
++ singleitem = singleitem && fwrite(&fileHeader.bfReserved2, sizeof(fileHeader.bfReserved2), 1, stream);
++ singleitem = singleitem && fwrite(&fileHeader.bfOffBits, sizeof(fileHeader.bfOffBits), 1, stream);
+ /* write bitmap info header: do not write the struct because of 32-bit alignment */
+- fwrite(&infoHeader.biSize, sizeof(infoHeader.biSize), 1, stream);
+- fwrite(&infoHeader.biWidth, sizeof(infoHeader.biWidth), 1, stream);
+- fwrite(&infoHeader.biHeight, sizeof(infoHeader.biHeight), 1, stream);
+- fwrite(&infoHeader.biPlanes, sizeof(infoHeader.biPlanes), 1, stream);
+- fwrite(&infoHeader.biBitCount, sizeof(infoHeader.biBitCount), 1, stream);
+- fwrite(&infoHeader.biCompression, sizeof(infoHeader.biCompression), 1, stream);
+- fwrite(&infoHeader.biSizeImage, sizeof(infoHeader.biSizeImage), 1, stream);
+- fwrite(&infoHeader.biXPelsPerMeter, sizeof(infoHeader.biXPelsPerMeter), 1, stream);
+- fwrite(&infoHeader.biYPelsPerMeter, sizeof(infoHeader.biYPelsPerMeter), 1, stream);
+- fwrite(&infoHeader.biClrUsed, sizeof(infoHeader.biClrUsed), 1, stream);
+- fwrite(&infoHeader.biClrImportant, sizeof(infoHeader.biClrImportant), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biSize, sizeof(infoHeader.biSize), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biWidth, sizeof(infoHeader.biWidth), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biHeight, sizeof(infoHeader.biHeight), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biPlanes, sizeof(infoHeader.biPlanes), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biBitCount, sizeof(infoHeader.biBitCount), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biCompression, sizeof(infoHeader.biCompression), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biSizeImage, sizeof(infoHeader.biSizeImage), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biXPelsPerMeter, sizeof(infoHeader.biXPelsPerMeter), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biYPelsPerMeter, sizeof(infoHeader.biYPelsPerMeter), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biClrUsed, sizeof(infoHeader.biClrUsed), 1, stream);
++ singleitem = singleitem && fwrite(&infoHeader.biClrImportant, sizeof(infoHeader.biClrImportant), 1, stream);
+ /* write color palette (if applicable) */
+- if (palette != NULL)
+- fwrite(palette, 4, 256, stream);
++ if (singleitem && palette != NULL)
++ {
++ size_t paletteitems = fwrite(palette, 4, 256, stream);
++ if( paletteitems != 256 ) singleitem = 0;
++ }
+ /* write pixel data */
+- fwrite(data, 1, OFstatic_cast(size_t, bytes), stream);
++ if( singleitem )
++ {
++ size_t pddata = fwrite(data, 1, OFstatic_cast(size_t, bytes), stream);
++ if( pddata != OFstatic_cast(size_t, bytes)) singleitem = 0;
++ }
+ /* delete color palette */
+ delete[] palette;
+- result = 1;
++ if( singleitem )
++ result = 1;
+ }
+ /* delete pixel data */
+ delete OFstatic_cast(char *, data); // type cast necessary to avoid compiler warnings using gcc >2.95
+Index: dcmtk-3.6.1~20131114/dcmimgle/libsrc/dimoimg.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmimgle/libsrc/dimoimg.cc 2013-12-10 14:55:18.706290444 +0100
++++ dcmtk-3.6.1~20131114/dcmimgle/libsrc/dimoimg.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -2143,9 +2143,10 @@
+ fprintf(stream, "P6\n%u %u\n255\n", Columns, Rows);
+ else
+ fprintf(stream, "P5\n%u %u\n%lu\n", Columns, Rows, DicomImageClass::maxval(bits));
+- fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
++ size_t tobewritten = OutputData->getItemSize();
++ size_t written = fwrite(OutputData->getData(), OFstatic_cast(size_t, OutputData->getCount()), OutputData->getItemSize(), stream);
+ deleteOutputData();
+- return 1;
++ if( written == tobewritten ) return 1;
+ }
+ }
+ return 0;
+Index: dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrcnf.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/libsrc/dcmqrcnf.cc 2013-12-10 14:55:18.674290443 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrcnf.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -291,7 +291,12 @@
+ char *c;
+
+ while (!feof(cnffp)) {
+- fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ char *ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ if( !ret )
++ {
++ error = 1;
++ break;
++ }
+ lineno++;
+ if (feof(cnffp)) continue;
+ if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -413,7 +418,12 @@
+ DcmQueryRetrieveConfigHostEntry *helpentry;
+
+ while (!feof(cnffp)) {
+- fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ char *ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ if( !ret )
++ {
++ error = 1;
++ break;
++ }
+ (*lineno)++;
+ if (feof(cnffp)) continue;
+ if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -469,7 +479,12 @@
+ DcmQueryRetrieveConfigHostEntry *helpentry;
+
+ while (!feof(cnffp)) {
+- fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ char * ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ if( !ret )
++ {
++ error = 1;
++ break;
++ }
+ (*lineno)++;
+ if (feof(cnffp)) continue;
+ if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+@@ -525,7 +540,12 @@
+ DcmQueryRetrieveConfigAEEntry *helpentry;
+
+ while (!feof(cnffp)) {
+- fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ char * ret = fgets(rcline, sizeof(rcline), cnffp); /* read line in configuration file */
++ if( !ret )
++ {
++ error = 1;
++ break;
++ }
+ (*lineno)++;
+ if (feof(cnffp)) continue;
+ if (rcline[0] == '#' || rcline[0] == 10 || rcline[0] == 13)
+Index: dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrdbi.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmqrdb/libsrc/dcmqrdbi.cc 2013-12-10 14:55:18.666290445 +0100
++++ dcmtk-3.6.1~20131114/dcmqrdb/libsrc/dcmqrdbi.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -3416,7 +3416,8 @@
+
+ record.hstat = DVIF_objectIsNotNew;
+ DB_lseek(handle_->pidx, OFstatic_cast(long, SIZEOF_STUDYDESC + idx * SIZEOF_IDXRECORD), SEEK_SET);
+- write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD);
++ ssize_t written = write(handle_->pidx, OFreinterpret_cast(char *, &record), SIZEOF_IDXRECORD);
++ if( written != SIZEOF_IDXRECORD ) result = EC_DirectoryNotWritable;
+ DB_lseek(handle_->pidx, 0L, SEEK_SET);
+ DB_unlock();
+ }
+Index: dcmtk-3.6.1~20131114/dcmpstat/apps/dcmp2pgm.cc
+===================================================================
+--- dcmtk-3.6.1~20131114.orig/dcmpstat/apps/dcmp2pgm.cc 2013-12-10 14:55:18.646290441 +0100
++++ dcmtk-3.6.1~20131114/dcmpstat/apps/dcmp2pgm.cc 2013-12-10 14:56:36.198289404 +0100
+@@ -363,9 +363,12 @@
+ if (ofile)
+ {
+ fprintf(ofile, "P5\n%d %d 255\n", overlayWidth, overlayHeight);
+- fwrite(overlayData, overlayWidth, overlayHeight, ofile);
++ size_t written = fwrite(overlayData, overlayWidth, overlayHeight, ofile);
+ fclose(ofile);
+- oss << " - written." << OFendl;
++ if( written == overlayHeight )
++ oss << " - written." << OFendl;
++ else
++ oss << " -write error-" << OFendl;
+ } else oss << " -write error-" << OFendl;
+ } else {
+ oss << " unable to access overlay data!" << OFendl;
+@@ -546,8 +549,12 @@
+ {
+ OFLOG_DEBUG(dcmp2pgmLogger, "writing PGM file: " << opt_pgmName);
+ fprintf(outfile, "P5\n%ld %ld 255\n", width, height);
+- fwrite(pixelData, (size_t)width, (size_t)height, outfile);
++ size_t written = fwrite(pixelData, (size_t)width, (size_t)height, outfile);
+ fclose(outfile);
++ if( written != (size_t)height ) {
++ OFLOG_FATAL(dcmp2pgmLogger, "Can't create output data.");
++ return 10;
++ }
+ } else {
+ OFLOG_FATAL(dcmp2pgmLogger, "Can't create output file.");
+ return 10;
Added: trunk/packages/dcmtk/trunk/debian/source.lintian-overrides
===================================================================
--- trunk/packages/dcmtk/trunk/debian/source.lintian-overrides (rev 0)
+++ trunk/packages/dcmtk/trunk/debian/source.lintian-overrides 2015-09-11 19:39:55 UTC (rev 20050)
@@ -0,0 +1,3 @@
+# upstream provides two alternates build system: autotools and cmake
+# since we pick cmake, no need to take care of this check:
+dcmtk: outdated-autotools-helper-file
More information about the debian-med-commit
mailing list