[45760] trunk/dports/graphics/dcmtk

macsforever2000 at macports.org macsforever2000 at macports.org
Wed Jan 21 06:34:28 PST 2009


Revision: 45760
          http://trac.macports.org/changeset/45760
Author:   macsforever2000 at macports.org
Date:     2009-01-21 06:34:28 -0800 (Wed, 21 Jan 2009)
Log Message:
-----------
Maintainer update to patch level 2. (#18119)

Modified Paths:
--------------
    trunk/dports/graphics/dcmtk/Portfile

Added Paths:
-----------
    trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-findscu.cc.diff
    trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-movescu.cc.diff

Modified: trunk/dports/graphics/dcmtk/Portfile
===================================================================
--- trunk/dports/graphics/dcmtk/Portfile	2009-01-21 14:21:27 UTC (rev 45759)
+++ trunk/dports/graphics/dcmtk/Portfile	2009-01-21 14:34:28 UTC (rev 45760)
@@ -3,10 +3,11 @@
 PortSystem 1.0
 
 name                        dcmtk
-version                     3.5.4
+version                     3.5.4_p2
 categories                  graphics
 platforms                   darwin
-maintainers                 uni-koblenz.de:guidolorenz
+maintainers                 uni-koblenz.de:guidolorenz \
+                            openmaintainer
 description                 The DICOM Toolkit.
 long_description            DCMTK is a collection of libraries and applications implementing \
                             large parts of the DICOM standard. It includes software for examining, \
@@ -16,7 +17,10 @@
 
 homepage                    http://dicom.offis.de/dcmtk
 
-master_sites                ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/
+master_sites                ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/ \
+                            http://dicom.offis.de/download/dcmtk/dcmtk354/
+distname                    dcmtk-3.5.4
+
 checksums                   md5 0afd971cdf976a5b336722ef2f68e6d7 \
                             sha1 169056874947083e68eb941fcd53faaebc862ae5 \
                             rmd160 d1558c9c68e53e0ea3b080fd2fb50b9d8e30eeba
@@ -25,13 +29,17 @@
                             port:tiff \
                             port:libpng \
                             port:libxml2
-                            
+
 destroot.target-append      install-lib
 
+# Apply changes made in ftp://dicom.offis.de/pub/dicom/offis/software/dcmtk/dcmtk354/patch/dcmtk-3.5.4_p2.tar.gz
+patchfiles                  patch-dcmnet-apps-findscu.cc.diff \
+                            patch-dcmnet-apps-movescu.cc.diff
+
 platform darwin 9 {
 	# See http://forum.dcmtk.org/viewtopic.php?t=1372
 	
-	patchfiles              patch-config-configure.in.diff
+	patchfiles-append       patch-config-configure.in.diff
 	
 	post-patch {
 		# Usually, we would system "cd ${worksrcpath}/config && ./autoall" here, but due to a

Added: trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-findscu.cc.diff
===================================================================
--- trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-findscu.cc.diff	                        (rev 0)
+++ trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-findscu.cc.diff	2009-01-21 14:34:28 UTC (rev 45760)
@@ -0,0 +1,132 @@
+--- dcmnet/apps/findscu.cc.orig	2005-12-08 16:44:19.000000000 +0100
++++ dcmnet/apps/findscu.cc	2007-10-19 12:22:32.000000000 +0200
+@@ -21,10 +21,10 @@
+  *
+  *  Purpose: Query/Retrieve Service Class User (C-FIND operation)
+  *
+- *  Last Update:      $Author: meichel $
+- *  Update Date:      $Date: 2005/12/08 15:44:19 $
++ *  Last Update:      $Author: onken $
++ *  Update Date:      $Date: 2006/01/17 15:38:50 $
+  *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmnet/apps/findscu.cc,v $
+- *  CVS/RCS Revision: $Revision: 1.47 $
++ *  CVS/RCS Revision: $Revision: 1.48 $
+  *  Status:           $State: Exp $
+  *
+  *  CVS/RCS Log at end of file
+@@ -111,7 +111,6 @@
+     fprintf(stderr, "\n");
+ }
+ 
+-
+ static void
+ addOverrideKey(OFConsoleApplication& app, const char* s)
+ {
+@@ -119,18 +118,29 @@
+     unsigned int e = 0xffff;
+     int n = 0;
+     char val[1024];
++    OFString dicName, valStr;
+     OFString msg;
+     char msg2[200];
+-
+     val[0] = '\0';
++
+     // try to parse group and element number
+     n = sscanf(s, "%x,%x=%s", &g, &e, val);
+-
+-    if (n != 2) {
+-      // not a group-element pair, try to lookup in dictionary
++    OFString toParse = s;
++    size_t eqPos = toParse.find('=');
++    if (n < 2)  // if at least no tag could be parsed
++    { 
++      // if value is given, extract it (and extrect dictname)
++      if (eqPos != OFString_npos)
++      {
++        dicName = toParse.substr(0,eqPos).c_str();
++        valStr = toParse.substr(eqPos+1,toParse.length());
++      }
++      else // no value given, just dictionary name
++        dicName = s; // only dictionary name given (without value)
++      // try to lookup in dictionary
+       DcmTagKey key(0xffff,0xffff);
+       const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
+-      const DcmDictEntry *dicent = globalDataDict.findEntry(s);
++      const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str());
+       dcmDataDict.unlock();
+       if (dicent!=NULL) {
+         // found dictionary name, copy group and element number
+@@ -141,24 +151,15 @@
+       else {
+         // not found in dictionary
+         msg = "bad key format or dictionary name not found in dictionary: ";
+-        msg += s;
++        msg += dicName;
+         app.printError(msg.c_str());
+       }
+-    }
+-    const char* spos = s;
+-    char ccc;
+-    do
++    } // tag could be parsed, copy value if it exists
++    else
+     {
+-      ccc = *spos;
+-      if (ccc == '=') break;
+-      if (ccc == 0) { spos = NULL; break; }
+-      spos++;
+-    } while(1);
+-
+-    if (spos && *(spos+1)) {
+-        strcpy(val, spos+1);
++      if (eqPos != OFString_npos)
++        valStr = toParse.substr(eqPos+1,toParse.length());
+     }
+-
+     DcmTag tag(g,e);
+     if (tag.error() != EC_Normal) {
+         sprintf(msg2, "unknown tag: (%04x,%04x)", g, e);
+@@ -169,26 +170,25 @@
+         sprintf(msg2, "cannot create element for tag: (%04x,%04x)", g, e);
+         app.printError(msg2);
+     }
+-    if (strlen(val) > 0) {
+-        elem->putString(val);
+-        if (elem->error() != EC_Normal)
++    if (valStr.length() > 0) {
++        if (elem->putString(valStr.c_str()).bad())
+         {
+             sprintf(msg2, "cannot put tag value: (%04x,%04x)=\"", g, e);
+             msg = msg2;
+-            msg += val;
++            msg += valStr;
+             msg += "\"";
+             app.printError(msg.c_str());
+         }
+     }
+ 
+     if (overrideKeys == NULL) overrideKeys = new DcmDataset;
+-    overrideKeys->insert(elem, OFTrue);
+-    if (overrideKeys->error() != EC_Normal) {
++    if (overrideKeys->insert(elem, OFTrue).bad()) {
+         sprintf(msg2, "cannot insert tag: (%04x,%04x)", g, e);
+         app.printError(msg2);
+     }
+ }
+ 
++
+ static OFCondition addPresentationContext(T_ASC_Parameters *params);
+ 
+ static OFCondition
+@@ -1164,6 +1164,10 @@
+ /*
+ ** CVS Log
+ ** $Log: findscu.cc,v $
++** Revision 1.48  2006/01/17 15:38:50  onken
++** Fixed "--key" option, which was broken when using the optional assignment ("=")
++** operation inside the option value
++**
+ ** Revision 1.47  2005/12/08 15:44:19  meichel
+ ** Changed include path schema for all DCMTK header files
+ **

Added: trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-movescu.cc.diff
===================================================================
--- trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-movescu.cc.diff	                        (rev 0)
+++ trunk/dports/graphics/dcmtk/files/patch-dcmnet-apps-movescu.cc.diff	2009-01-21 14:34:28 UTC (rev 45760)
@@ -0,0 +1,121 @@
+--- dcmnet/apps/movescu.cc.orig	2005-12-08 16:44:20.000000000 +0100
++++ dcmnet/apps/movescu.cc	2007-10-19 12:59:25.000000000 +0200
+@@ -21,10 +21,10 @@
+  *
+  *  Purpose: Query/Retrieve Service Class User (C-MOVE operation)
+  *
+- *  Last Update:      $Author: meichel $
+- *  Update Date:      $Date: 2005/12/08 15:44:20 $
++ *  Last Update:      $Author: onken $
++ *  Update Date:      $Date: 2006/01/17 15:38:50 $
+  *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmnet/apps/movescu.cc,v $
+- *  CVS/RCS Revision: $Revision: 1.59 $
++ *  CVS/RCS Revision: $Revision: 1.60 $
+  *  Status:           $State: Exp $
+  *
+  *  CVS/RCS Log at end of file
+@@ -148,17 +148,29 @@
+     unsigned int e = 0xffff;
+     int n = 0;
+     char val[1024];
++    OFString dicName, valStr;
+     OFString msg;
+     char msg2[200];
+-
+     val[0] = '\0';
+-    n = sscanf(s, "%x,%x=%s", &g, &e, val);
+ 
+-    if (n != 2) {
+-      // not a group-element pair, try to lookup in dictionary
++    // try to parse group and element number
++    n = sscanf(s, "%x,%x=%s", &g, &e, val);
++    OFString toParse = s;
++    size_t eqPos = toParse.find('=');
++    if (n < 2)  // if at least no tag could be parsed
++    { 
++      // if value is given, extract it (and extrect dictname)
++      if (eqPos != OFString_npos)
++      {
++        dicName = toParse.substr(0,eqPos).c_str();
++        valStr = toParse.substr(eqPos+1,toParse.length());
++      }
++      else // no value given, just dictionary name
++        dicName = s; // only dictionary name given (without value)
++      // try to lookup in dictionary
+       DcmTagKey key(0xffff,0xffff);
+       const DcmDataDictionary& globalDataDict = dcmDataDict.rdlock();
+-      const DcmDictEntry *dicent = globalDataDict.findEntry(s);
++      const DcmDictEntry *dicent = globalDataDict.findEntry(dicName.c_str());
+       dcmDataDict.unlock();
+       if (dicent!=NULL) {
+         // found dictionary name, copy group and element number
+@@ -168,25 +180,16 @@
+       }
+       else {
+         // not found in dictionary
+-        msg = "bad key format or key not found in dictionary: ";
+-        msg += s;
++        msg = "bad key format or dictionary name not found in dictionary: ";
++        msg += dicName;
+         app.printError(msg.c_str());
+       }
++    } // tag could be parsed, copy value if it exists
++    else
++    {
++      if (eqPos != OFString_npos)
++        valStr = toParse.substr(eqPos+1,toParse.length());
+     }
+-    const char* spos = s;
+-    char ccc;
+-    do
+-    {
+-      ccc = *spos;
+-      if (ccc == '=') break;
+-      if (ccc == 0) { spos = NULL; break; }
+-      spos++;
+-    } while(1);
+-
+-    if (spos && *(spos+1)) {
+-        strcpy(val, spos+1);
+-    }
+-
+     DcmTag tag(g,e);
+     if (tag.error() != EC_Normal) {
+         sprintf(msg2, "unknown tag: (%04x,%04x)", g, e);
+@@ -197,21 +200,19 @@
+         sprintf(msg2, "cannot create element for tag: (%04x,%04x)", g, e);
+         app.printError(msg2);
+     }
+-    if (strlen(val) > 0) {
+-        elem->putString(val);
+-        if (elem->error() != EC_Normal)
++    if (valStr.length() > 0) {
++        if (elem->putString(valStr.c_str()).bad())
+         {
+             sprintf(msg2, "cannot put tag value: (%04x,%04x)=\"", g, e);
+             msg = msg2;
+-            msg += val;
++            msg += valStr;
+             msg += "\"";
+             app.printError(msg.c_str());
+         }
+     }
+ 
+     if (overrideKeys == NULL) overrideKeys = new DcmDataset;
+-    overrideKeys->insert(elem, OFTrue);
+-    if (overrideKeys->error() != EC_Normal) {
++    if (overrideKeys->insert(elem, OFTrue).bad()) {
+         sprintf(msg2, "cannot insert tag: (%04x,%04x)", g, e);
+         app.printError(msg2);
+     }
+@@ -1407,6 +1408,10 @@
+ ** CVS Log
+ **
+ ** $Log: movescu.cc,v $
++** Revision 1.60  2006/01/17 15:38:50  onken
++** Fixed "--key" option, which was broken when using the optional assignment ("=")
++** operation inside the option value
++**
+ ** Revision 1.59  2005/12/08 15:44:20  meichel
+ ** Changed include path schema for all DCMTK header files
+ **
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090121/705399f8/attachment.html>


More information about the macports-changes mailing list