maccfg.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:7k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. /*---------------------------------------------------------------------------
  2.     MACOS specific configuration and declarations:
  3.   ---------------------------------------------------------------------------*/
  4. #ifndef __maccfg_h
  5. #define __maccfg_h
  6. /*****************************************************************************/
  7. /*  Macros, missing RTL declarations, compatibility typedefs                 */
  8. /*****************************************************************************/
  9. #if defined(__MWERKS__) && defined(macintosh)
  10. #  include <OSUtils.h>
  11.    typedef unsigned long mode_t;
  12. #  define _STAT
  13. #  if (defined(MacStaticLib) || defined(USE_SIOUX))
  14. #    define MAIN   UZ_EXP UzpMain   /* was UzpUnzip */
  15. #  else
  16. #    define MAIN   _dummy_main
  17. #  endif
  18. #endif
  19. #ifdef THINK_C
  20. #  ifndef __STDC__              /* if Think C hasn't defined __STDC__ ... */
  21. #    define __STDC__ 1          /*   make sure it's defined: it needs it */
  22. #  else
  23. #    if !__STDC__               /* sometimes __STDC__ is defined as 0; */
  24. #      undef __STDC__           /*   it needs to be 1 or required header */
  25. #      define __STDC__ 1        /*   files are not properly included. */
  26. #    endif /* !__STDC__ */
  27. #  endif
  28. #  define IOCompletionUPP   ProcPtr
  29. #  define CREATOR  'KAHL'
  30. #  define MAIN     _dummy_main
  31. #endif /* THINK_C */
  32. #ifdef MPW
  33. #  include <Errors.h>
  34. #  include <Files.h>
  35. #  include <Memory.h>
  36. #  include <Quickdraw.h>
  37. #  include <ToolUtils.h>
  38. #  ifndef QUERY_TRNEWLN
  39. #    define QUERY_TRNEWLN
  40. #  endif
  41. #  ifdef fileno
  42. #    undef fileno
  43. #  endif
  44. #  ifdef MCH_MACINTOSH
  45. #    define CREATOR     'Manx'
  46. #  else
  47. #    define CREATOR     'MPS '
  48. #  endif
  49. #endif /* MPW */
  50. #include <fcntl.h>              /* O_BINARY for open() w/o CR/LF translation */
  51. #define fileno(x)       ((x) == stdout ? 1 : ((x) == stderr ? 2 : (short)(x)))
  52. #define open            macopen
  53. #define close           macclose
  54. #define fclose(x)       macclose(fileno((x)))
  55. #define read            macread
  56. #define write           macwrite
  57. #define lseek           maclseek
  58. #define creat(x,y)      maccreat((x))
  59. #define stat            UZmacstat
  60. #define lstat           UZmacstat
  61. #define dup
  62. #ifndef MCH_MACINTOSH
  63. #  define NO_STRNICMP
  64. #endif
  65. #define DIR_END ':'
  66. #ifndef DATE_FORMAT
  67. #  define DATE_FORMAT DF_MDY
  68. #endif
  69. #define lenEOL        1
  70. #define PutNativeEOL  *q++ = native(CR);
  71. #define NOANSIFILT  /* MWRKS C creates broken code for the ANSI-ESC filter */
  72. #define MALLOC_WORK
  73. #define INT_SPRINTF
  74. #if (!defined(NO_EF_UT_TIME) && !defined(USE_EF_UT_TIME))
  75. #  define USE_EF_UT_TIME
  76. #endif
  77. #undef IZ_CHECK_TZ
  78. #undef MORE
  79. #undef DYNAMIC_CRC_TABLE
  80. #ifndef MPW
  81. #  ifndef MacStaticLib
  82. #    ifndef USE_SIOUX
  83. #      define fgets       macfgets
  84. #      define fflush(f)
  85. #      define fprintf     macfprintf
  86. #      define fputs(s,f)  macfprintf((f), "%s", (s))
  87. #      define printf      macprintf
  88. #      ifdef putc
  89. #        undef putc
  90. #      endif
  91. #      define putc(c,f)   macfprintf((f), "%c", (c))
  92. #    endif /* !USE_SIOUX */
  93. #  else
  94. #    ifdef putc
  95. #      undef putc
  96. #    endif
  97. #    define putc(c,f)   fprintf((f), "%c", (c))
  98. #  endif
  99. #  define isatty(f)     (((f) >= 0) || ((f) <= 2))
  100. #endif
  101. #ifndef isascii
  102. #  define isascii(c)    ((unsigned char)(c) <= 0x3F)
  103. #endif
  104. #include "macstat.h"
  105. #include "macdir.h"
  106. #ifdef CR
  107. #  undef  CR
  108. #endif
  109. #ifdef foreign
  110. #  undef foreign
  111. #endif
  112. #define foreign(c) ((c) & 0x80 ? MacRoman_to_ISO8859_1[(c) & 0x7f] : (c))
  113. #ifdef native
  114. #  undef native
  115. #endif
  116. #define native(c)  ((c) & 0x80 ? ISO8859_1_to_MacRoman[(c) & 0x7f] : (c))
  117. #define NATIVE "MacRoman charset"
  118. #ifdef _ISO_INTERN
  119. #  undef _ISO_INTERN
  120. #endif
  121. #define _ISO_INTERN(str1) {register uch *p;
  122.    for (p=(uch *)(str1); *p; p++)
  123.      *p = (*p & 0x80) ? ISO8859_1_to_MacRoman[*p & 0x7f] : *p;}
  124. #ifdef _OEM_INTERN
  125. #  undef _OEM_INTERN
  126. #endif
  127. #ifndef IZ_OEM2ISO_ARRAY
  128. #  define IZ_OEM2ISO_ARRAY
  129. #endif
  130. #define _OEM_INTERN(str1) {register uch *p;
  131.    for (p=(uch *)(str1); *p; p++)
  132.      *p = (*p & 0x80) ? ISO8859_1_to_MacRoman[oem2iso[*p & 0x7f]] : *p;}
  133. #ifdef FILEIO_C         /* get the ISO8859-1 <--> MacROMAN conversion tables */
  134. #  include "charmap.h"
  135. #else
  136.    extern ZCONST uch ISO8859_1_to_MacRoman[128];
  137.    extern ZCONST uch MacRoman_to_ISO8859_1[128];
  138. #endif
  139. #define EB_M3_FL_NOCHANGE   0x02    /* filename will be not changed */
  140. /* other EB_M3 flags are defined in unzpriv.h */
  141. #define EB_MAC3_SIZE        (EB_HEADSIZE + EB_MAC3_HLEN)
  142. /*****************************************************************************/
  143. /*  Structure typedefs                                                       */
  144. /*****************************************************************************/
  145. typedef struct _ZipExtraHdr {
  146.         ush header;               /*    2 bytes */
  147.         ush data;                 /*    2 bytes */
  148. } ZIP_EXTRA_HEADER;
  149. /* the following structure is a combination of the old and the new
  150.    extra-field definition; so it's *not* the definition of the extra-field  */
  151. typedef struct _MacInfo {
  152.     ush         header;     /* tag for this extra block type  */
  153.     ush         data;       /* total data size for this block */
  154.     ulg         size;       /* uncompressed finder attribute data size */
  155.     ush         flags;      /* info bits:
  156.                                  bit 0   if set, file is a data fork
  157.                                  bit 1   if set, filename will be not changed
  158.                                  bit 2   if set, Attribs is uncompressed
  159.                                  bit 3   if set, date and times are in 64 bit;
  160.                                          if zero, date and times are in 32 bit
  161.                                  bit 4   if set, "local time - UTC" offsets are
  162.                                          omitted
  163.                                  bits 5-15       reserved; not tested;   */
  164.     ush         CompType;
  165.     ulg         CRCvalue;
  166.     CInfoPBRec  fpb;        /* Macintosh FInfo / FXInfo structure */
  167.     long        Cr_UTCoffs; /* difference "local time - UTC" for Creat-time */
  168.     long        Md_UTCoffs; /* difference "local time - UTC" for Modif-time */
  169.     long        Bk_UTCoffs; /* difference "local time - UTC" for Bckup-time */
  170.     short       TextEncodingBase;   /* TextEncodingBase (Charset) */
  171.     char       *FullPath;           /* Path of the current file */
  172.     char       *FinderComment;      /* Finder Comment of current file */
  173. } MACINFO;
  174. /*****************************************************************************/
  175. /*  Global Vars                                                              */
  176. /*****************************************************************************/
  177. #define SYSTEM_SPECIFIC_GLOBALS 
  178.     short    giCursor;
  179.     CursHandle rghCursor[4];       /* status cursors */
  180. #define SYSTEM_SPECIFIC_CTOR    MacGlobalsInit
  181. /*****************************************************************************/
  182. /*  Prototypes                                                               */
  183. /*****************************************************************************/
  184. ulg    makePPClong(ZCONST uch *sig);
  185. ush    makePPCword(ZCONST uch *b);
  186. char  *FindNewExtractFolder(char *ArchivePath);
  187. void   UserStop(void);
  188. #endif /* !__maccfg_h */