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

压缩解压

开发平台:

MultiPlatform

  1. /*
  2.  Copyright (C) 1990-1998 Mark Adler, Richard B. Wales, Jean-loup Gailly,
  3.  Kai Uwe Rommel, Onno van der Linden, George Petrov and Igor Mandrichenko.
  4.  Permission is granted to any individual or institution to use, copy, or
  5.  redistribute this software so long as all of the original files are included,
  6.  that it is not sold for profit, and that this copyright notice is retained.
  7. */
  8. #ifndef __tandem_h   /* prevent multiple inclusions */
  9. #define __tandem_h
  10. #define TANDEM       /* better than __TANDEM */
  11. #define LICENSED     /* object needs FUP LICENSE to allow timestamp update */
  12. #define NO_UNISTD_H
  13. /* Include file for TANDEM */
  14. #ifndef NULL
  15. #  define NULL 0
  16. #endif
  17. #include <time.h>               /* the usual non-BSD time functions */
  18. #include <stdio.h>
  19. #include <sysstat.h>
  20. #include <unistd.h>
  21. #include <errno.h>
  22. #define PASSWD_FROM_STDIN
  23.                   /* Kludge until we know how to open a non-echo tty channel */
  24. #define TANDEM_BLOCKSIZE 4096
  25. #define MAXFILEPARTLEN 8
  26. #define MAXPATHLEN 128
  27. #define EXTENSION_MAX 3
  28. #define NO_RMDIR
  29. #define NO_MKTEMP
  30. #ifdef UNZIP                    /* definitions for UNZIP */
  31. /* #define INBUFSIZ 8192       */
  32. /* #define USE_STRM_INPUT      */
  33. /* #define USE_FWRITE          */
  34. /* #define REALLY_SHORT_SYMS   */
  35. /* #define PATH_MAX 128        */
  36. #endif /* UNZIP */
  37. #define EXIT zexit     /*  To stop creation of Abend files */
  38. #define RETURN zexit   /*  To stop creation of Abend files */
  39. #define fopen zipopen  /*  To allow us to set extent sizes */
  40. #define putc zputc     /*  To allow us to auto flush  */
  41. void zexit (int);
  42. FILE *zipopen(
  43. const char *,
  44. const char *
  45. );
  46. int zputc(
  47. int,
  48. FILE *
  49. );
  50. #define FOPR "rb"
  51. #define FOPM "r+"
  52. #define FOPW "wb"
  53. #define FOPWT "w"
  54. #define CBSZ 0x10000  /* Was used for both fcopy and file_read.        */
  55.                       /* Created separate define (SBSZ) for file_read  */
  56.                       /* fcopy param is type size_t (unsigned long)    */
  57.                       /* For Guardian we choose a multiple of 4K       */
  58. #define ZBSZ 0x10000  /* This is used in call to setvbuf, 64K seems to work  */
  59.                       /* in all memory models. Again it is an unsigned long  */
  60.                       /* For Guardian we choose a multiple of 4K             */
  61. #ifndef __INT32
  62. #define SBSZ 0x04000  /* For STORE method we can use a maximum of int        */
  63.                       /* size.  In Large memory model this equates to 32767  */
  64.                       /* We use a multiple of 4k to match Guardian I/O       */
  65. #else
  66. #define SBSZ 0x10000  /* WIDE model so we can use 64K                        */
  67. #endif /* __INT32 */
  68. /* For deflate.c,  need to look into BI_MEM and DYN_ALLOC defines */
  69. /* <dirent.h> definitions */
  70. #define NAMELEN FILENAME_MAX+1+EXTENSION_MAX   /* allow for space extension */
  71. struct dirent {
  72.    struct dirent *d_next;
  73.    char   d_name[NAMELEN+1];
  74. };
  75. typedef struct _DIR {
  76.    struct  dirent *D_list;
  77.    struct  dirent *D_curpos;
  78.    char            D_path[NAMELEN+1];
  79. } DIR;
  80. DIR *          opendir(const char *dirname);
  81. struct dirent *readdir(DIR *dirp);
  82. void           rewinddir(DIR *dirp);
  83. int            closedir(DIR *dirp);
  84. char *         readd(DIR *dirp);
  85. #define ALIAS_MASK  (unsigned int) 0x80
  86. #define SKIP_MASK   (unsigned int) 0x1F
  87. #define TTRLEN      3
  88. #define RECLEN      254
  89. #define DISK_DEVICE         3
  90. #define SET_FILE_SECURITY   1
  91. #define SET_FILE_OWNER      2
  92. #define SET_FILE_BUFFERED   90
  93. #define SET_FILE_BUFFERSIZE 93
  94. #define DOS_EXTENSION      '.'
  95. #define TANDEM_EXTENSION   ' '
  96. #define TANDEM_DELIMITER   '.'
  97. #define TANDEM_NODE        '\'
  98. #define INTERNAL_DELIMITER '/'
  99. #define INTERNAL_NODE      '//'
  100. #define TANDEM_WILD_1      '*'
  101. #define TANDEM_WILD_2      '?'
  102. #define DOS_EXTENSION_STR      "."
  103. #define TANDEM_EXTENSION_STR   " "
  104. #define TANDEM_DELIMITER_STR   "."
  105. #define TANDEM_NODE_STR        "\"
  106. #define INTERNAL_DELIMITER_STR "/"
  107. #define INTERNAL_NODE_STR      "//"
  108. typedef struct {
  109.    unsigned short int count;
  110.    char rest[RECLEN];
  111. } RECORD;
  112. char    *endmark = "xFFxFFxFFxFFxFFxFFxFFxFF";
  113. #endif /* !__tandem_h */