]> Creatis software - gdcm.git/log
gdcm.git
20 years agoOps ! Forgot to commit the .h
jpr [Thu, 30 Oct 2003 17:05:55 +0000 (17:05 +0000)]
Ops ! Forgot to commit the .h

20 years ago * FIX : a VC++ intended syntax modif broke the 12/12 Bytes expanding
jpr [Thu, 30 Oct 2003 17:04:53 +0000 (17:04 +0000)]
  * FIX : a VC++ intended syntax modif broke the 12/12 Bytes expanding

20 years ago2003-10-29 Jean-Pierre Roux
jpr [Thu, 30 Oct 2003 17:04:21 +0000 (17:04 +0000)]
2003-10-29 Jean-Pierre Roux
      * adding  gdcmHeader::GetLUTRGBA
               returns a 4 * 256 Bytes Reg/Green/Blue/Alpha vtk compliant LUT
       --> Mathieu, the modif u're waiting for is not yet committed
      * removal of now useless GetLUTRed,GetLUTGreen,GetLUTBlue,GetLUTRGB

20 years ago*ENH: Can be used like this '$vtkgdcmViewer *.dcm' with *.dcm being coherents dicom...
malaterre [Thu, 30 Oct 2003 11:12:22 +0000 (11:12 +0000)]
*ENH: Can be used like this '$vtkgdcmViewer *.dcm' with *.dcm being coherents dicom files.

20 years ago*FIX: only one function is being exported for now ! You should use GLOBAL(return...
malaterre [Wed, 29 Oct 2003 18:24:40 +0000 (18:24 +0000)]
*FIX: only one function is being exported for now ! You should use GLOBAL(return type) see ljpg/jpeg.h for more info

20 years ago*FIX: sorry !
malaterre [Wed, 29 Oct 2003 18:20:58 +0000 (18:20 +0000)]
*FIX: sorry !

20 years ago*FIX: release compilation mode
malaterre [Wed, 29 Oct 2003 18:02:12 +0000 (18:02 +0000)]
*FIX: release compilation mode

20 years ago*FIX: removed this files
malaterre [Wed, 29 Oct 2003 17:42:29 +0000 (17:42 +0000)]
*FIX: removed this files

20 years ago*ENH: Add include dir to medcon lib
malaterre [Wed, 29 Oct 2003 17:37:03 +0000 (17:37 +0000)]
*ENH: Add include dir to medcon lib

20 years ago*FIX: more about medcon lib in DSP files
malaterre [Wed, 29 Oct 2003 17:26:12 +0000 (17:26 +0000)]
*FIX: more about medcon lib in DSP files

20 years ago*FIX: DOH ! libgdcmijpg8 -> libgdcmljpeg
malaterre [Wed, 29 Oct 2003 17:13:29 +0000 (17:13 +0000)]
*FIX: DOH ! libgdcmijpg8 -> libgdcmljpeg

20 years ago*ENH: Two steps is necessary to please VC++ compiler...
malaterre [Wed, 29 Oct 2003 17:12:07 +0000 (17:12 +0000)]
*ENH: Two steps is necessary to please VC++ compiler...

20 years ago*ENH: Turn it into DOS file type to match libgdcmijpeg8.dsp file type
malaterre [Wed, 29 Oct 2003 17:10:26 +0000 (17:10 +0000)]
*ENH: Turn it into DOS file type to match libgdcmijpeg8.dsp file type

20 years ago*FIX: DOH ! Forgot about windo$e users, they couldn't read lossless jpeg, from medcon...
malaterre [Wed, 29 Oct 2003 17:07:01 +0000 (17:07 +0000)]
*FIX: DOH ! Forgot about windo$e users, they couldn't read lossless jpeg, from medcon lib !

20 years agoTo avoid pb with xmedcon-breaker CT McTwin Elscint images
jpr [Mon, 27 Oct 2003 16:45:57 +0000 (16:45 +0000)]
To avoid pb with xmedcon-breaker CT McTwin Elscint images

20 years agoremoval of useless cout
jpr [Mon, 27 Oct 2003 15:05:44 +0000 (15:05 +0000)]
removal of useless cout

20 years agoENH: For version prior to vtkImageViewer2 -r 1.19
jpr [Mon, 27 Oct 2003 14:27:13 +0000 (14:27 +0000)]
ENH: For version prior to vtkImageViewer2 -r 1.19

20 years ago*Removal of ido stuff
malaterre [Mon, 27 Oct 2003 14:02:42 +0000 (14:02 +0000)]
*Removal of ido stuff

20 years agoremoval of now useless LibIDO Jpeg Lossless .h and .cxx
jpr [Mon, 27 Oct 2003 14:01:12 +0000 (14:01 +0000)]
removal of now useless LibIDO Jpeg Lossless .h and .cxx

20 years ago*ENH: Added CharEvent to browse throught a multiframe volume, press any key it will...
malaterre [Mon, 27 Oct 2003 13:43:57 +0000 (13:43 +0000)]
*ENH: Added CharEvent to browse throught a multiframe volume, press any key it will lopp over frames.

20 years ago*ENH: vtkGdcmReader.cxx can now read multiframe dicom
malaterre [Fri, 24 Oct 2003 15:38:56 +0000 (15:38 +0000)]
*ENH: vtkGdcmReader.cxx can now read multiframe dicom
*FIX: remove a call to ->Modified ... see comments
*FIX: vtkgdcmViewer.cxx was writting ASCII file...this is so slooooooow !

20 years ago*ENH: Can read CT-MONO2-8-abdo.dcm now
malaterre [Fri, 24 Oct 2003 14:34:22 +0000 (14:34 +0000)]
*ENH: Can read CT-MONO2-8-abdo.dcm now
*ENH: CT-MONO2-8-abdo.dcm is in color again, do not press 'r' or you'll loose the color

20 years ago*FIX: More pragma disable fro VC++, I don't think I break something as it is also...
malaterre [Thu, 23 Oct 2003 15:54:49 +0000 (15:54 +0000)]
*FIX: More pragma disable fro VC++, I don't think I break something as it is also disable in VTK/ITK. But it fasten debug compilation time.

20 years ago*FIX: gdcm/Makefile.am fix for generating ljpg medcon
malaterre [Thu, 23 Oct 2003 15:10:51 +0000 (15:10 +0000)]
*FIX: gdcm/Makefile.am fix for generating ljpg medcon
*ENH: CMakeLists.txt now generate 'pygdcm.so' instead of 'libpygdcm.so'

20 years ago*RMV: Remove some file from medcon lib that are not necesseray
malaterre [Thu, 23 Oct 2003 14:00:54 +0000 (14:00 +0000)]
*RMV: Remove some file from medcon lib that are not necesseray

20 years agodoh
malaterre [Thu, 23 Oct 2003 13:01:17 +0000 (13:01 +0000)]
doh

20 years ago* FIX: Problem with path for libvtkgdcmPython
malaterre [Thu, 23 Oct 2003 13:00:26 +0000 (13:00 +0000)]
* FIX: Problem with path for libvtkgdcmPython
* ENH: Try adding a search script for python site-package

20 years agogdcm now deals with 16 Bits Run Length Encoded images
jpr [Thu, 23 Oct 2003 12:08:32 +0000 (12:08 +0000)]
gdcm now deals with 16 Bits Run Length Encoded images

20 years ago*FIX: When copying a Makefile.am to CMakeLists.txt one should remove the '\'
malaterre [Wed, 22 Oct 2003 10:04:54 +0000 (10:04 +0000)]
*FIX: When copying a Makefile.am to CMakeLists.txt one should remove the '\'

20 years agoMakefile.am,CMakeLists.txt updated to deal with the new library
jpr [Tue, 21 Oct 2003 12:22:28 +0000 (12:22 +0000)]
Makefile.am,CMakeLists.txt updated to deal with the new library

20 years agoadd the method
jpr [Tue, 21 Oct 2003 12:19:43 +0000 (12:19 +0000)]
add the method
int gdcmHeader::GetBitsAllocated(void);

20 years ago- garbage Siemens 'Leonardo' images dealt with
jpr [Tue, 21 Oct 2003 12:18:23 +0000 (12:18 +0000)]
- garbage Siemens 'Leonardo' images dealt with
  (the patch is easy to remove)
- cosmetic changes to avoid warnings

20 years ago- call of 'xmedcom' Jpeg Lossles libray (instead of the old LibIDO one)
jpr [Tue, 21 Oct 2003 12:14:31 +0000 (12:14 +0000)]
- call of 'xmedcom' Jpeg Lossles libray (instead of the old LibIDO one)
- 'Compacted Files' (12 Bits Allocate, 12 Bits Stored) are now dealt with

20 years agoadd the files for 'xmedcon' Jpeg Lossless library
jpr [Tue, 21 Oct 2003 12:08:53 +0000 (12:08 +0000)]
add the files for 'xmedcon' Jpeg Lossless library

20 years agoadd the directory jpg, for 'xmedcon' Jpeg Lossless Library
jpr [Tue, 21 Oct 2003 12:05:29 +0000 (12:05 +0000)]
add the directory jpg, for 'xmedcon' Jpeg Lossless Library

20 years ago* ENH: vtkgdcmViewer now autoscale color/window level on start-up, no need to press...
malaterre [Mon, 20 Oct 2003 16:01:05 +0000 (16:01 +0000)]
* ENH: vtkgdcmViewer now autoscale color/window level on start-up, no need to press 'r' now.

20 years agogdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error)
jpr [Wed, 15 Oct 2003 15:01:15 +0000 (15:01 +0000)]
gdcmHeader::gdcmHeader(const char *InFilename, bool exception_on_error)
no longer seg faults when file is not found

20 years agoEmprovement of reading for Dicom encapsulated Jpeg LossLess MultiFrame images
jpr [Wed, 15 Oct 2003 14:28:20 +0000 (14:28 +0000)]
Emprovement of reading for Dicom encapsulated Jpeg LossLess MultiFrame images

20 years agoSome more corrections
jpr [Tue, 14 Oct 2003 15:56:06 +0000 (15:56 +0000)]
Some more corrections

20 years agoMissing elements added
jpr [Tue, 14 Oct 2003 15:39:32 +0000 (15:39 +0000)]
Missing elements added
(just to be affraid : have a look at
ftp://medical.nema.org/medical/dicom/2003/01v03dif/01v03_06.pdf
and do it again next year ;->

20 years ago* TODO: *.in file to genereate a UseGDCM later
malaterre [Tue, 14 Oct 2003 12:41:09 +0000 (12:41 +0000)]
* TODO: *.in file to genereate a UseGDCM later

20 years ago--> Some supposed-to-be Dicom Images have no preamble.
jpr [Tue, 14 Oct 2003 11:53:16 +0000 (11:53 +0000)]
--> Some supposed-to-be Dicom Images have no preamble.
    OpenFile takes it into account

--> Jpeg LossLess 24 Bits images doesn-t break any longer gdcm

20 years agoAccording to PS 3.3-2003 C.11.1.1.2 p 619, when each pixel of a PLATTE COLOR
jpr [Mon, 13 Oct 2003 13:41:57 +0000 (13:41 +0000)]
According to PS 3.3-2003 C.11.1.1.2 p 619, when each pixel of a PLATTE COLOR
is stored on 2 Bytes, theese 2 Bytes must be equal.
But there are NOT.
It's fixed !

20 years ago* FIX: vtkgdcm was not being installed
malaterre [Mon, 13 Oct 2003 11:50:38 +0000 (11:50 +0000)]
* FIX: vtkgdcm was not being installed

20 years ago* FIX: "jpeglib.h" was not found on VC++
malaterre [Mon, 13 Oct 2003 11:42:55 +0000 (11:42 +0000)]
* FIX: "jpeglib.h" was not found on VC++

20 years agoENH : OpenFile closes the file if it *really* doesn't look like
jpr [Fri, 10 Oct 2003 16:54:25 +0000 (16:54 +0000)]
ENH : OpenFile closes the file if it *really* doesn't look like
      an ACR-NEMA / DICOM one.

20 years ago* FIX: PATH to dictionary was wrong (missing /)
malaterre [Fri, 10 Oct 2003 15:36:24 +0000 (15:36 +0000)]
* FIX: PATH to dictionary was wrong (missing /)
* ENH: OpenFile, return true if the file looks like an ACR or DICOM file

20 years ago* FIX: make install should be ok now on ùnix plateform
malaterre [Fri, 10 Oct 2003 13:11:56 +0000 (13:11 +0000)]
* FIX: make install should be ok now on ùnix plateform

20 years ago* ENH: Generate both user and dev documentation
malaterre [Fri, 10 Oct 2003 11:46:23 +0000 (11:46 +0000)]
* ENH: Generate both user and dev documentation
* ENH: Should work on windows too
* ENH: Only one doxygen config.in file is needed

20 years ago* FIX: CMake generate now documentation
malaterre [Fri, 10 Oct 2003 10:05:09 +0000 (10:05 +0000)]
* FIX: CMake generate now documentation
* ENH: out of source doc build !

20 years ago* FIX: force jpeg dir to the local one (gdcm/src/jpeg)
malaterre [Thu, 9 Oct 2003 18:05:23 +0000 (18:05 +0000)]
* FIX: force jpeg dir to the local one (gdcm/src/jpeg)

20 years ago* doh, forgot the most important :)
malaterre [Thu, 9 Oct 2003 17:54:33 +0000 (17:54 +0000)]
* doh, forgot the most important :)

20 years ago* FIX: cygwin build failed
malaterre [Thu, 9 Oct 2003 17:52:44 +0000 (17:52 +0000)]
* FIX: cygwin build failed

20 years ago* FIX: http://www.cmake.org/pipermail/cmake/2003-October/004369.html
malaterre [Thu, 9 Oct 2003 16:16:59 +0000 (16:16 +0000)]
* FIX: http://www.cmake.org/pipermail/cmake/2003-October/004369.html
* FIX: http://www.cmake.org/pipermail/cmake/2003-October/004373.html

20 years agoFIX: on cygwin Wsock32 doesn't exist
malaterre [Thu, 9 Oct 2003 15:39:32 +0000 (15:39 +0000)]
FIX: on cygwin Wsock32 doesn't exist

20 years ago* doh, ADD_DEFINITIONS needed for now
malaterre [Thu, 9 Oct 2003 15:31:19 +0000 (15:31 +0000)]
* doh, ADD_DEFINITIONS needed for now

20 years ago* FIX: jpr !!!
malaterre [Thu, 9 Oct 2003 14:58:28 +0000 (14:58 +0000)]
* FIX: jpr !!!

20 years ago* CMake-ification of gdcm, we have now two build system
malaterre [Thu, 9 Oct 2003 14:52:45 +0000 (14:52 +0000)]
* CMake-ification of gdcm, we have now two build system

20 years agoOdd length strings are padded with '\0' (not with spaces, to remain compliant
jpr [Thu, 9 Oct 2003 13:22:54 +0000 (13:22 +0000)]
Odd length strings are padded with '\0' (not with spaces, to remain compliant
with already defined strings, like Transfert Syntax UID and others)

20 years agoFIX: VC++ warning about return type in main
malaterre [Thu, 9 Oct 2003 11:29:17 +0000 (11:29 +0000)]
FIX: VC++ warning about return type in main

20 years agoFIX: CV++
malaterre [Thu, 9 Oct 2003 11:27:29 +0000 (11:27 +0000)]
FIX: CV++

20 years ago* SpuriousFile.raw removed...
malaterre [Tue, 7 Oct 2003 15:38:09 +0000 (15:38 +0000)]
* SpuriousFile.raw removed...

20 years agoFIX : compilation process wad broken.
manu [Tue, 7 Oct 2003 09:42:53 +0000 (09:42 +0000)]
FIX : compilation process wad broken.
Changed gdcmViewer_sources to vtkgdcmViewer_sources

20 years ago* removed these files, they were "Generated automatically from configure.in by autohe...
malaterre [Mon, 6 Oct 2003 15:35:23 +0000 (15:35 +0000)]
* removed these files, they were "Generated automatically from configure.in by autoheader."

20 years ago* change GetXSpacing and GetYSpacing "%f\\%" is parsed backward.
malaterre [Mon, 6 Oct 2003 15:32:48 +0000 (15:32 +0000)]
* change GetXSpacing and GetYSpacing "%f\\%" is parsed backward.

20 years ago* change gdcmViewer -> vtkgdcmViewer
malaterre [Mon, 6 Oct 2003 14:05:20 +0000 (14:05 +0000)]
* change gdcmViewer -> vtkgdcmViewer
See: http://www.creatis.insa-lyon.fr/pipermail/dcmlib/2003-October/000192.html

20 years agoA few nasty patches to allow the reading of a lot of nasty images
jpr [Mon, 6 Oct 2003 13:37:25 +0000 (13:37 +0000)]
A few nasty patches to allow the reading of a lot of nasty images
( e.g : well known GE images with a wrong elem length,
      : Philips MRI Images with a wrong Huffman table)
--> still to be done : allow the reading of bugged LEONARDO Siemens images

20 years agoOne more JPEG LossLess type "JPEG Baseline (Process 14)" is now decoded.
jpr [Fri, 3 Oct 2003 16:22:24 +0000 (16:22 +0000)]
One more JPEG LossLess type "JPEG Baseline (Process 14)" is now decoded.

20 years ago* beware of trailing white space !
malaterre [Fri, 3 Oct 2003 15:27:44 +0000 (15:27 +0000)]
* beware of trailing white space !

20 years ago* added a gdcmViewer to vtk test, use mouse to control window level & window width
malaterre [Fri, 3 Oct 2003 14:51:48 +0000 (14:51 +0000)]
* added a gdcmViewer to vtk test, use mouse to control window level & window width

20 years ago* vtkGdcmReader is now able to read rgb dicom file.
malaterre [Fri, 3 Oct 2003 14:48:31 +0000 (14:48 +0000)]
* vtkGdcmReader is now able to read rgb dicom file.
* src/gdcmHeaderHelper : GetNumberOfScalarComponents()

20 years agogdcmHeaderHelper::GetNumberOfScalarComponents() added, to allow displaying RGB images...
jpr [Fri, 3 Oct 2003 14:26:11 +0000 (14:26 +0000)]
gdcmHeaderHelper::GetNumberOfScalarComponents() added, to allow displaying RGB images (not only by affim ;-)

20 years agogdcmFile::GetImageDataIntoVector now
jpr [Fri, 3 Oct 2003 07:46:06 +0000 (07:46 +0000)]
gdcmFile::GetImageDataIntoVector now
 - deals with MultiFrames MultiFragments Run Length Encoded files
 - deals with YcBcR (YBR_FULL) files
 - deals with YBR_YBR_FULL_422 files (they work as RBG files ?!?)

WARNING : nothing was checked for YBR_PARTIAL_422, YBR_ICT, YBR_RCT files.
          (no sample found :-(

20 years agosrc/*.cxx removed pragma thingies to src/gdcmCommon.h
malaterre [Thu, 2 Oct 2003 11:26:15 +0000 (11:26 +0000)]
src/*.cxx removed pragma thingies to src/gdcmCommon.h
Two reasons: - clear things
             - third parties access gdcm through header files, so won't
             suffer anymore VC++ complains

20 years ago* add argv[1]
malaterre [Tue, 30 Sep 2003 14:07:20 +0000 (14:07 +0000)]
* add argv[1]
* removed leaks

20 years agoNow gdcmParse.cxx is 80 characters line long.
jpr [Thu, 25 Sep 2003 18:20:58 +0000 (18:20 +0000)]
Now gdcmParse.cxx is 80 characters line long.

20 years ago-->File gdcmParse.cxx added
jpr [Thu, 25 Sep 2003 18:06:49 +0000 (18:06 +0000)]
-->File gdcmParse.cxx added
gdcmFile::ParsePixelData(void); display the result
of Dicom-encapsulated JPEG or RLE files 'Pixels Element' parsing.
For checking purpose only.

-->modif to improve the processing of multi-Frames multi-Segments compressed files.

20 years agoThe lines are now eigthy characters long...
jpr [Wed, 24 Sep 2003 16:46:38 +0000 (16:46 +0000)]
The lines are now eigthy characters long...
... and it works under RedHat 7.3 (mistyping removed)

20 years agoRemove spurious tests
jpr [Wed, 24 Sep 2003 16:18:32 +0000 (16:18 +0000)]
Remove spurious tests

20 years agoRemaining etc... replaced by ...
regrain [Wed, 24 Sep 2003 14:45:02 +0000 (14:45 +0000)]
Remaining etc... replaced by ...
Now it compiles under RehHat 9

20 years agoostream replaced by std::ostream
jpr [Wed, 24 Sep 2003 14:29:23 +0000 (14:29 +0000)]
ostream replaced by std::ostream

20 years agomistyping corrected
jpr [Wed, 24 Sep 2003 14:22:44 +0000 (14:22 +0000)]
mistyping corrected

20 years agowarning added in doxygen part
jpr [Wed, 24 Sep 2003 14:20:02 +0000 (14:20 +0000)]
warning added in doxygen part

20 years agoRemaining ... and so on
jpr [Wed, 24 Sep 2003 14:01:04 +0000 (14:01 +0000)]
Remaining ... and so on

20 years agocout replaced by std::cout
jpr [Wed, 24 Sep 2003 13:52:46 +0000 (13:52 +0000)]
cout replaced by std::cout

20 years agoRemaining hex replaced by std::hex
jpr [Wed, 24 Sep 2003 13:45:11 +0000 (13:45 +0000)]
Remaining hex replaced by std::hex
          dec             std::hex

(printf never messed us up as much, or is it just me?)

20 years agoRemaining vector replaced by std::vector
jpr [Wed, 24 Sep 2003 13:36:15 +0000 (13:36 +0000)]
Remaining vector        replaced by std::vector
          ostringstream             std::ostringstream

20 years agoRemaining ...
jpr [Wed, 24 Sep 2003 13:29:49 +0000 (13:29 +0000)]
Remaining ...

20 years agomistyping corrected
jpr [Wed, 24 Sep 2003 13:27:02 +0000 (13:27 +0000)]
mistyping corrected

20 years agoremaining and so on ...
jpr [Wed, 24 Sep 2003 13:25:21 +0000 (13:25 +0000)]
remaining and so on ...
(Sorry, I'm under RedHat 7.3, and gcc agrees with *everything"
gcc disagrees with a lot of stuff under RedHat 9 :-(

20 years agoistream replaced by std::istream
jpr [Wed, 24 Sep 2003 13:21:46 +0000 (13:21 +0000)]
istream replaced by std::istream

20 years agoRemaining ostream replaced by std::ostream
jpr [Wed, 24 Sep 2003 13:16:50 +0000 (13:16 +0000)]
Remaining ostream replaced by std::ostream

20 years agoRemaining \n in std::cout and std::cerr replaced by std::endl
jpr [Wed, 24 Sep 2003 13:00:59 +0000 (13:00 +0000)]
Remaining \n in std::cout and std::cerr replaced by std::endl

20 years agoRemaining cerr replaced by std::cerr
jpr [Wed, 24 Sep 2003 12:52:30 +0000 (12:52 +0000)]
Remaining cerr replaced by std::cerr
          endl replaced by std::endl

20 years agoMistyping in doxygen header corrected
jpr [Wed, 24 Sep 2003 12:38:26 +0000 (12:38 +0000)]
Mistyping in doxygen header corrected

20 years agoRemove using namespace std;
jpr [Wed, 24 Sep 2003 11:37:10 +0000 (11:37 +0000)]
Remove using namespace std;

Replace string by std::string
        map    by std::map
        vector by std:vector

Warning "RLE part" is not yet fully checked.
        Remaining a lot of pb with 'color' (RGB or Palette) images

20 years ago * src/gdcmUtil.[cxx|h] : change the _CreateCleanString return value from
regrain [Mon, 22 Sep 2003 08:28:43 +0000 (08:28 +0000)]
  * src/gdcmUtil.[cxx|h] : change the _CreateCleanString return value from
        char* to std::string. Thus, the use of strdup becoomes useless. (see
        previous commis of Malaterre)
      * src/gdcmElValSet.cxx : reuse commented call to _CreateCleanString like
        before the last Malaterre's commit.
     -- BeNours

20 years ago* doh I had commited unix file for Win workspace !
malaterre [Fri, 19 Sep 2003 15:49:54 +0000 (15:49 +0000)]
* doh I had commited unix file for Win workspace !

20 years ago* oops forgot to commit Changelog :)
malaterre [Fri, 19 Sep 2003 15:36:52 +0000 (15:36 +0000)]
* oops forgot to commit Changelog :)

20 years ago* This commit should fix the Debug building under VC++, the problem was mainly a...
malaterre [Fri, 19 Sep 2003 15:36:04 +0000 (15:36 +0000)]
* This commit should fix the Debug building under VC++, the problem was mainly a mixture of debug and release lib being loaded at startup.
* I also remove a depency to a specific C function: strdup. Because I had to force the link to msvcrtd (whereas strdup is in libc).