]> Creatis software - gdcm.git/blobdiff - src/gdcmDocEntry.cxx
BUG: Yet another shoot yourself in the foot
[gdcm.git] / src / gdcmDocEntry.cxx
index b5d013c9bee6cee0b4689ad06b20ca9e199a42da..706d023c351865c50f1db532d8c6f947a60116e9 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/28 13:02:32 $
-  Version:   $Revision: 1.76 $
+  Date:      $Date: 2005/11/21 12:15:06 $
+  Version:   $Revision: 1.78 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -84,6 +84,10 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype)
    //
    // ----------- Writes the common part
    //
+    // To avoid gdcm to propagate oddities.
+    // --> Don't forget to *write* an even length value   
+   if (lgth%2)
+      lgth ++;
    
  // ----------- Writes the common part : the Tag   
    binary_write( *fp, group); //group number
@@ -124,10 +128,10 @@ void DocEntry::WriteContent(std::ofstream *fp, FileType filetype)
       else
       {
          binary_write(*fp, vr.str());
-                  
-         if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") /*|| (vr == "UN")*/ )
-// FIXME : what is the status of VR = "UN"
-//         --> uncomment or remove comment !
+
+         // See PS 3.5-2004 page 33, 36                  
+         if ( (vr == "SQ") || (vr == "OB") || (vr == "OW") || (vr == "OF") 
+          ||  (vr == "UN") || (vr == "UT") )
          {
             binary_write(*fp, zero);
             if (vr == "SQ")