1 /* $Header: /cvs/maptools/cvsroot/libtiff/libtiff/tif_msdos.c,v 1.2 2005/12/21 12:23:13 joris Exp $ */ 
   4  * Copyright (c) 1988-1997 Sam Leffler 
   5  * Copyright (c) 1991-1997 Silicon Graphics, Inc. 
   7  * Permission to use, copy, modify, distribute, and sell this software and  
   8  * its documentation for any purpose is hereby granted without fee, provided 
   9  * that (i) the above copyright notices and this permission notice appear in 
  10  * all copies of the software and related documentation, and (ii) the names of 
  11  * Sam Leffler and Silicon Graphics may not be used in any advertising or 
  12  * publicity relating to the software without the specific, prior written 
  13  * permission of Sam Leffler and Silicon Graphics. 
  15  * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,  
  16  * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY  
  17  * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.   
  19  * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR 
  20  * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, 
  21  * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
  22  * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF  
  23  * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE  
  28  * TIFF Library MSDOS-specific Routines. 
  30 #if defined(__WATCOMC__) || defined(__BORLANDC__) || defined(_MSC_VER) 
  31 #include <io.h>         /* for open, close, etc. function prototypes */ 
  37 _tiffReadProc(thandle_t fd
, tdata_t buf
, tsize_t size
) 
  39         return (read((int) fd
, buf
, size
)); 
  43 _tiffWriteProc(thandle_t fd
, tdata_t buf
, tsize_t size
) 
  45         return (write((int) fd
, buf
, size
)); 
  49 _tiffSeekProc(thandle_t fd
, toff_t off
, int whence
) 
  51         return (lseek((int) fd
, (off_t
) off
, whence
)); 
  55 _tiffCloseProc(thandle_t fd
) 
  57         return (close((int) fd
)); 
  63 _tiffSizeProc(thandle_t fd
) 
  66         return (fstat((int) fd
, &sb
) < 0 ? 0 : sb
.st_size
); 
  70 _tiffMapProc(thandle_t fd
, tdata_t
* pbase
, toff_t
* psize
) 
  76 _tiffUnmapProc(thandle_t fd
, tdata_t base
, toff_t size
) 
  81  * Open a TIFF file descriptor for read/writing. 
  84 TIFFFdOpen(int fd
, const char* name
, const char* mode
) 
  88         tif 
= TIFFClientOpen(name
, mode
, 
  90             _tiffReadProc
, _tiffWriteProc
, _tiffSeekProc
, _tiffCloseProc
, 
  91             _tiffSizeProc
, _tiffMapProc
, _tiffUnmapProc
); 
  98  * Open a TIFF file for read/writing. 
 101 TIFFOpen(const char* name
, const char* mode
) 
 103         static const char module[] = "TIFFOpen"; 
 106         m 
= _TIFFgetMode(mode
, module); 
 109         fd 
= open(name
, m
|O_BINARY
, 0666); 
 111                 TIFFErrorExt(0, module, "%s: Cannot open", name
); 
 114         return (TIFFFdOpen(fd
, name
, mode
)); 
 118 extern  char* malloc(); 
 119 extern  char* realloc(); 
 125 _TIFFmalloc(tsize_t s
) 
 127         return (malloc((size_t) s
)); 
 137 _TIFFrealloc(tdata_t p
, tsize_t s
) 
 139         return (realloc(p
, (size_t) s
)); 
 143 _TIFFmemset(tdata_t p
, int v
, tsize_t c
) 
 145         memset(p
, v
, (size_t) c
); 
 149 _TIFFmemcpy(tdata_t d
, const tdata_t s
, tsize_t c
) 
 151         memcpy(d
, s
, (size_t) c
); 
 155 _TIFFmemcmp(const tdata_t p1
, const tdata_t p2
, tsize_t c
) 
 157         return (memcmp(p1
, p2
, (size_t) c
)); 
 161 msdosWarningHandler(const char* module, const char* fmt
, va_list ap
) 
 164                 fprintf(stderr
, "%s: ", module); 
 165         fprintf(stderr
, "Warning, "); 
 166         vfprintf(stderr
, fmt
, ap
); 
 167         fprintf(stderr
, ".\n"); 
 169 TIFFErrorHandler _TIFFwarningHandler 
= msdosWarningHandler
; 
 172 msdosErrorHandler(const char* module, const char* fmt
, va_list ap
) 
 175                 fprintf(stderr
, "%s: ", module); 
 176         vfprintf(stderr
, fmt
, ap
); 
 177         fprintf(stderr
, ".\n"); 
 179 TIFFErrorHandler _TIFFerrorHandler 
= msdosErrorHandler
;