home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / packer / unzip41 / vms / vmsnotes < prev   
Encoding:
Text File  |  1991-05-06  |  4.9 KB  |  90 lines

  1.                      VMS Notes for UnZip 4.1
  2.                            12 May 1991
  3.  
  4.  
  5. The various VMS tweaks to UnZip 4.1 were tested on a VAX 8600 running
  6. VMS 5.2 and VAX C 3.0.  Older tweaks were also tested on a VAX 11/785.
  7.  
  8. Among other things, this system has built into its C run-time library
  9. most of the standard Unix functions; the notable exception is utime().
  10. Despite this lack, however, UnZip does manage to set the date/time of 
  11. each extracted file.  The compiler also predefines the token "VMS", so 
  12. it is not necessary to specify this on the compiler command line.
  13.  
  14. To build UnZip, just run the included command file VMS_MAKE.COM (i.e.,
  15. "@vms_make").  By default, this creates a shareable-image executable,
  16. which is smaller and (supposedly) loads faster than the normal type
  17. (that's "loads" the verb, not the adjective...).  It also will be 
  18. better able to take advantage of any bug fixes or new capabilities 
  19. that DEC might introduce, since the library code isn't built into the 
  20. executable.  The shared executable is about a quarter the size of the 
  21. ordinary type.
  22.  
  23. [Btw, the VMS make utility "MMS" seems not to be compatible enough with
  24. Unix make to use the same makefile.  Antonio Querubin, Jr., sent along an 
  25. MMS makefile, but it has a small incompatibility with the current UnZip 
  26. distribution.  If DESCRIP.MMS is included with this package, read the 
  27. comments at the top to see what action is required.]
  28.  
  29. UnZip is written to return the standard PK-type return codes (or error
  30. codes, or exit codes, or whatever you want to call them).  Unfortunately,
  31. VMS insists on interpreting the codes in its own lovable way, and this
  32. results in endearing commentary such as "access violation, error mask =
  33. 0005, PC = 00003afc" (or something like that) when you run UnZip with no
  34. arguments.  To avoid this I've added a special VMS_return() function which
  35. interprets the error codes and prints a semi-informative message (enclosed
  36. in square [] brackets), then exits with a normal error status.  Tastes
  37. vary, however, and some people may not like the semi-informative messages
  38. (I don't, for one).  If you happen to be one of those people, you may
  39. disable the messages by recompiling misc.c with NO_RETURN_CODES defined.
  40. (This knocks down the executable size by a block or 4, too.)  The syntax 
  41. is as follows:
  42.     cc /def=(NO_RETURN_CODES) misc
  43.  
  44. To use UnZip in the normal way, define a symbol "unzip" as follows:
  45.     unzip :== "$diskname:[directory]unzip.exe"
  46. (substitute for "diskname" and "directory" as appropriate, and DON'T FORGET
  47. THE "$"!  It won't work if you omit that.)  In general it's wise to stick 
  48. such assignments in your LOGIN.COM file and THEN forget about them.  It is 
  49. no longer necessary to worry about the record type of the zipfile...er, 
  50. well, most of the time, anyway (see the special Kermit section below).
  51.  
  52. Having done all this you are ready to roll.  Use the unzip command in
  53. the usual way; as with the MS-DOS and Unix versions, this one uses '-'
  54. as a switch character.  If nothing much happens when you do a directory
  55. listing, for example, you're probably trying to specify a filename which
  56. has uppercase letters in it...VMS thoughtfully converts everything on the
  57. command line to lowercase, so even if you type:
  58.     unzip -v zipfile Makefile
  59. what you get is:
  60.     unzip -v zipfile makefile
  61. which, in my example here, doesn't match the contents of the zipfile.
  62. This is relatively easy to circumvent, by enclosing the filespec(s) in 
  63. quotes:
  64.     unzip -tq unzip401 "Makefile" "VMS*" *.c *.h
  65. [This example also demonstrates the use of wildcards, which act like Unix
  66. wildcards, not VMS ones.   In other words, "VMS*" matches files VMSNOTES,
  67. VMS_MAKE.COM, and VMSSHARE.OPT, whereas the normal VMS behavior would be
  68. to match only the first file (since the others have extensions--ordinarily,
  69. you would be required to specify "VMS*.*").]
  70.  
  71. Note that created files get whatever default permissions you've set, but 
  72. created directories additionally inherit the (possibly more restrictive) 
  73. permissions of the parent directory.  And, of course, things probably won't 
  74. work too well if you don't have permission to write to whatever directory 
  75. into which you're trying to extract things.  (That made sense; read it 
  76. again if you don't believe me.)
  77.  
  78. SPECIAL KERMIT NOTES:  Kermit files uploaded with "set file type binary"
  79. remain incompatible with UnZip, despite the inclusion of code from Joe
  80. Meadows' spectacular VMS utility, FILE.  The reason is that the files
  81. created on the VMS side have "variable length, 510-byte maximum" records,
  82. which is to say, there's extra junk inside them that shouldn't be there.
  83. Avoid this problem by uploading with "set file type fixed" and everything
  84. should be hunky-dory.  If you forgot, you can convert the zipfile into
  85. UnZip-readable form (i.e., "stream-LF" format) with Rahul Dhesi's BILF
  86. utility.  A similar utility will be included in future releases of UnZip.
  87.  
  88. Greg Roelofs,
  89.  often found lurking about Info-ZIP@WSMR-Simtel20.Army.Mil
  90.