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

压缩解压

开发平台:

MultiPlatform

  1. [e-mail excerpt from Dave Lovelace explaining AOS/VS port, compiler, etc.]
  2. > From: Dave Lovelace <davel@cyberspace.org>
  3. > Subject: Re: zip on Data General AOS/VS
  4. > Date: Wed, 17 May 1995 11:02:03 -0400 (EDT)
  5. > The diffs for zip & unzip are both in the same file.  I've also included the
  6. > extra source files which I wrote, the CLI macros which I used to compile
  7. > & link the things, & my own history of what I did.  Note that some of the
  8. > changes I made reversed earlier changes, & this was written for my own
  9. > use (or for others here if I leave or die or something).  I hope it will help.
  10. > This was compiled using DG's C compiler for AOS/VS, rev 4.10.  It has been
  11. > compiled only on an MV-5500 running AOS/VS rev 7.70, but the resulting
  12. > programs have been distributed & run on several different MVs running various
  13. > versions of AOS/VS, so it should be fairly independent of at least minor rev
  14. > variations.  To the best of my knowledge it has *not* been tested under
  15. > AOS/VS II, & I really don't know anything about that environment; possibly
  16. > the special AOS/VS file info I'm storing in the extra field will have some
  17. > different format there.
  18. [README/history info from Dave Lovelace]
  19. In modifying this for use on AOS/VS, I found only a few changes
  20. were needed for DG C 4.10:
  21. 2. There was a bug in the inflate() code, because memset()
  22.    was being called with a non-char pointer.  Pretty obviously
  23.    the other systems where this was used do not have char pointers
  24.    different from other pointers.  IT IS QUITE POSSIBLE THAT OTHER
  25.    BUGS OF THIS SORT EXIST.  Testing did not uncover any.
  26. 3. In fileio.c, it appears that utime() is being called correctly,
  27.    but it does not set the file's time and always returns failure.
  28.    Since the AOS/VS tar and cpio programs provided by DG also suffer
  29.    from the fault of not setting file times, I must conclude that
  30.    this is by design.  At any rate, I modified the code (with
  31.    compilation conditional on a macro AOS_VS) to not say "error"
  32.    when this occurs.
  33. One change which I think would be desirable: if the filename isn't
  34. already a relative or absolute pathname (specifying a unique location),
  35. the program follows the searchlist under AOS/VS.  It will unexpectedly
  36. replace files anywhere in your searchlist.  (If you don't use the
  37. -o option, it will ask you first, but not tell you where the file
  38. to be replaced resides.)  I suspect this could be handled by prepending
  39. ./ to any filenames which don't already begin with /.  (I haven't
  40. checked how this would work inside the program.  Possibly this
  41. could be done in every case - I don't think PKZIP ever stores an
  42. absolute pathname.)
  43. To see the compile options I used, look at the file MAKE.AOS_VS.CLI
  44. You may of course need to change the searchlist to use that macro.
  45.  ------------------------------------------------------------------
  46. 15-dec-93
  47. I fixed some of the above things, introducing new problems.  It now
  48. won't follow the searchlist - but the logic prevents it from creating
  49. directories (if they aren't explicitly in the ZIP, anyway).  But
  50. UNZIP now sets the creation time to the time stored in the ZIP, and
  51. ZIP now stores that instead of the TLM.  I had to introduce an
  52. extra module, with some code of my own and some other public domain
  53. code, to accomplish this.
  54.  ------------------------------------------------------------------
  55.  1-jun-94
  56. I found an additional bug: the header was causing void to be #define'd
  57. as int, and prototypes weren't being used.  I changed UNZIP.H and
  58. added a define of PROTO to the MAKE.AOS_VS.CLI and REMAKE.CLI macros.
  59. I found and fixed the bug that prevented the (creation) times from
  60. being set on files with explicit paths.  (The Unix-style paths didn't
  61. work as inputs to the AOS/VS ?CREATE system call.)  
  62. Additional known bugs:
  63. 1. I have not yet located the source of the bug that prevents the
  64.    date/time from being set (also ACLs etc.) when an existing file
  65.    is overwritten.  For some reason the call to delete & recreate
  66.    the file is not being reached.
  67. 2. We need to do something in ZIP to store (as comments?) the file's
  68.    type and ACL, and then here in UNZIP extract these and apply
  69.    them.  This is not going to be trivial to make foolproof, but
  70.    it's badly needed.
  71.  ------------------------------------------------------------------
  72.  2-jun-94
  73. I fixed #1 above.  The compiler was checking whether UNIX was defined,
  74. and it wasn't.  It appears that *some* of the places UNIX is used are
  75. things we can't get along with, so I changed the code to check for
  76. AOS_VS as well.  It seems to work just fine.
  77. I also introduced a function zvs_credir() to create a directory
  78. (as opposed to a CPD, though it can create CPDs to with the proper
  79. file-type parameter).  Directories in a path which are being created
  80. will now be directories instead of CPDs.
  81. The big change that's needed now is to have ZIP store (somehow)
  82. the file's ACL and file type, and then to have UNZIP use this
  83. information to recreate the file as it was before ZIPping.  Ideally,
  84. ZIP should also store links and CPD max-block info as well.  Planned
  85. strategy: either in the name field but after the name, or in a comment,
  86. store the packet returned by ?FSTAT (using sys_fstat()), and then
  87. use this packet for the ?CREATE call in zvs_create().
  88.  ------------------------------------------------------------------
  89. 22-Jul-94
  90. The changes to use the extra-field field for AOS/VS file info are in
  91. place.  In general, if a ZIPfile was created with the current rev of
  92. ZIP.PR, the files should be restored with file type, ACL, etc. OK.
  93. I didn't test to make sure element size & max index levels come
  94. through OK, but I think they should.
  95. Unix symbolic links are now UNZIPped OK, but ZIP.PR isn't yet able
  96. to ZIP links.  When it is, UNZIP should be ready.
  97. In general UNZIP now ignores the searchlist fairly well, but not
  98. perfectly.  If the directory of a file you're UNZIPping can be
  99. referenced elsewhere in the searchlist, UNZIP will find the file
  100. there.  (For example, if the file UDD/BBASIC/ZZPGSUBSET.SR is in
  101. the ZIPfile, and : is in your searchlist, then UDD and UDD:BBASIC
  102. will be created under your current directory, but UNZIP will still
  103. find :UDD:BBASIC:ZZPGSUBSET.SR instead of =UDD:BBASIC:ZZPGSUBSET.SR.
  104. Filenames (which are now stored in uppercase by ZIP.PR) must be
  105. matched exactly if specified.  This applies to Unix path structure
  106. as well as case.
  107.  ------------------------------------------------------------------
  108.  4-Aug-94
  109. I fixed a bug which caused (for links only) the Unix pathname to
  110. be put through ux_to_vs_name twice.  The result was that a path
  111. such as    dir1/dir2/fname    went first to    :dir1:dir2:fname    and
  112. then to    dir1?dir2?fname.
  113. I also added the /NOSEA switch to the cc/link lines in the macros
  114. MAKE.AOS_VS.CLI and REMAKE.CLI.  This should prevent any confusion
  115. over whether a file exists somewhere other than relative to the current
  116. dir.  This would disable calls to system() from using the searchlist,
  117. but in this program I think they're all useless & hopefully inactive
  118. anyway.
  119.  ------------------------------------------------------------------