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

压缩解压

开发平台:

MultiPlatform

  1. /* amiga.h
  2.  *
  3.  * Globular definitions that affect all of AmigaDom.
  4.  *
  5.  * Originally included in unzip.h, extracted for simplicity and eeze of
  6.  * maintenance by John Bush.
  7.  *
  8.  * THIS FILE IS #INCLUDE'd by unzip.h
  9.  *
  10.  */
  11. #ifndef __amiga_amiga_h
  12. #define __amiga_amiga_h
  13. #include "amiga/z-stat.h"     /* substitute for <stat.h> and <direct.h> */
  14. #include "amiga/z-time.h"                    /* substitute for <time.h> */
  15. #include <limits.h>
  16. #ifndef NO_FCNTL_H
  17. #  include <fcntl.h>
  18. #else
  19.    int mkdir(const char *_name);
  20. #endif
  21. #ifdef AZTEC_C                       /* Manx Aztec C, 5.0 or newer only */
  22. #  include <clib/dos_protos.h>
  23. #  include <pragmas/dos_lib.h>           /* do inline dos.library calls */
  24. #  define O_BINARY 0
  25. #  define direct dirent
  26. #  define DECLARE_TIMEZONE
  27. #  define ASM_INFLATECODES
  28. #  define ASM_CRC
  29. /* Note that defining REENTRANT will not eliminate all global/static */
  30. /* variables.  The functions we use from c.lib, including stdio, are */
  31. /* not reentrant.  Neither are the stuff in amiga/stat.c or the time */
  32. /* functions in amiga/filedate.c, because they just augment c.lib.   */
  33. /* If you want a fully reentrant and reexecutable "pure" UnZip with  */
  34. /* Aztec C, assemble and link in the startup module purify.a by Paul */
  35. /* Kienitz.  REENTRANT should be used just to reduce memory waste.   */
  36. #endif /* AZTEC_C */
  37. #ifdef __SASC
  38. /* includes */
  39. #  include <sys/types.h>
  40. #  include <sys/dir.h>
  41. #  include <dos.h>
  42. #  include <exec/memory.h>
  43. #  include <exec/execbase.h>
  44. #  if (defined(_M68020) && (!defined(__USE_SYSBASE)))
  45.                             /* on 68020 or higher processors it is faster   */
  46. #    define __USE_SYSBASE   /* to use the pragma libcall instead of syscall */
  47. #  endif                    /* to access functions of the exec.library      */
  48. #  include <proto/exec.h>   /* see SAS/C manual:part 2,chapter 2,pages 6-7  */
  49. #  include <proto/dos.h>
  50. #  include <proto/locale.h>
  51. #  ifdef DEBUG
  52. #    include <sprof.h>      /* profiler header file */
  53. #  endif
  54. #  if ( (!defined(O_BINARY)) && defined(O_RAW))
  55. #    define O_BINARY O_RAW
  56. #  endif
  57. #  if (defined(_SHORTINT) && !defined(USE_FWRITE))
  58. #    define USE_FWRITE      /* define if write() returns 16-bit int */
  59. #  endif
  60. #  if (!defined(REENTRANT) && !defined(FUNZIP))
  61. #    define REENTRANT      /* define if unzip is going to be pure */
  62. #  endif
  63. #  if defined(REENTRANT) && defined(DYNALLOC_CRCTAB)
  64. #    undef DYNALLOC_CRCTAB
  65. #  endif
  66. #  ifdef MWDEBUG
  67. #    include <stdio.h>      /* both stdio.h and stdlib.h must be included */
  68. #    include <stdlib.h>     /* before memwatch.h                          */
  69. #    include "memwatch.h"
  70. #    undef getenv
  71. #  endif /* MWDEBUG */
  72. #endif /* SASC */
  73. #define MALLOC_WORK
  74. #define USE_EF_UT_TIME
  75. #if (!defined(NOTIMESTAMP) && !defined(TIMESTAMP))
  76. #  define TIMESTAMP
  77. #endif
  78. /* check that TZ environment variable is defined before using UTC times */
  79. #if (!defined(NO_IZ_CHECK_TZ) && !defined(IZ_CHECK_TZ))
  80. #  define IZ_CHECK_TZ
  81. #endif
  82. #define AMIGA_FILENOTELEN 80
  83. #ifndef DATE_FORMAT
  84. #  define DATE_FORMAT     DF_MDY
  85. #endif
  86. #define lenEOL            1
  87. #define PutNativeEOL      *q++ = native(LF);
  88. #define PIPE_ERROR        0
  89. #ifdef GLOBAL         /* crypt.c usage conflicts with AmigaDOS headers */
  90. #  undef GLOBAL
  91. #endif
  92. /* Funkshine Prough Toe Taipes */
  93. int Agetch (void);              /* getch() like function, in amiga/filedate.c */
  94. LONG FileDate (char *, time_t[]);
  95. int windowheight (BPTR fh);
  96. void _abort(void);              /* ctrl-C trap */
  97. #define SCREENLINES windowheight(Output())
  98. #ifdef USE_TIME_LIB
  99.    extern int real_timezone_is_set;
  100. #  define VALID_TIMEZONE(tempvar) (tzset(), real_timezone_is_set)
  101. #else
  102. #  define VALID_TIMEZONE(tempvar) ((tempvar = getenv("TZ")) && tempvar[0])
  103. #endif
  104. /* Static variables that we have to add to Uz_Globs: */
  105. #define SYSTEM_SPECIFIC_GLOBALS 
  106.     int filenote_slot;
  107.     char *(filenotes[DIR_BLKSIZ]);
  108.     int created_dir, renamed_fullpath, rootlen;
  109.     char *rootpath, *buildpath, *build_end;
  110.     DIR *wild_dir;
  111.     char *dirname, *wildname, matchname[FILNAMSIZ];
  112.     int dirnamelen, notfirstcall;
  113. /* filenotes[] and filenote_slot are for the -N option that restores      */
  114. /*    comments of Zip archive entries as AmigaDOS filenotes.  The others  */
  115. /*    are used by functions in amiga/amiga.c only.                        */
  116. /* created_dir and renamed_fullpath are used by mapname() and checkdir(). */
  117. /* rootlen, rootpath, buildpath, and build_end are used by checkdir().    */
  118. /* wild_dir, dirname, wildname, matchname[], dirnamelen and notfirstcall  */
  119. /*    are used by do_wild().                                              */
  120. #endif /* __amiga_amiga_h */