Acorn-specific compile instructions ----------------------------------- Use the "RunMe1st" file (it is an Obey file) to convert all the files from "filename/[chs]" to "[chs].filename" (so that zip could be easily compiled under RISC OS). It will also set the correct makefile. To compile just set the CSD to the main zip directory and run 'amu'. Currently only the Acorn C V5 compiler has been tested but probably also Acorn C V4 and the Acorn Assembler V2 will be able to compile zip. The default makefile is configured without the support for the Extended Timestamp Extra Field. If you wan to enable it you have to add "-DUSE_EF_UT_TIME" to CFLAGS (see makefile). Without the Extended Timestamp Field support, zipfiles created by zip are identical to the zipfiles created by SparkFS. However, the Extended Timestamp Field can be useful if you are going to unzip your zipfiles on a non-RISC OS machine since the correct time stamp will be preserved across different timezones. Note that in this case, both the SparkFS Extra Field and the Extended Timestamp Extra Field will be used, so the zipfiles will still be fully compatible with SparkFS and with the RISC OS version of unzip. The executables-only distributions will be compiled without the support for the Extended Timestamp Extra Field. If you need it but you can't compile zip yourself, you can contact the authors at the Info-ZIP address who will do it for you. Acorn-specific usage instructions --------------------------------- An extra option ('I') has been added to the Acorn port: if it is specified zip will not consider Image files (eg. DOS partitions or Spark archives when SparkFS is loaded) as directories but will store them as single files. This means that if you have, say, SparkFS loaded, zipping a Spark archive will result in a zipfile containing a directory (and its content) while using the 'I' option will result in a zipfile containing a Spark archive. Obviously this second case will also be obtained (without the 'I' option) if SparkFS isn't loaded. When adding files to a zipfile; to maintain FileCore compliance, all files named "file/ext" will be added to the archive as "file.ext". This presents no problem if you wish to use unzip to extract them on any other machine, as the files are correctly named. This also presents no problem if you use unzip for RISC OS, as the files are converted back to "file/ext" format. The only problem appears when you use SparkFS to decompress the files, as a file called "file.ext" will be extracted as "file_ext", not what it was added as. You must be careful about this. Case Specific. Depending on how you type the command, files will be added exactly as named; in this example: *zip new/zip newfile *zip new/zip NewFile *zip new/zip NEWFILE will create an archive containing 3 copies of the same Risc OS file 'newfile' called 'newfile', 'NewFile' and 'NEWFILE'. Please be careful. The Acorn port conserves file attributes, including filetype, so if you zip on an Acorn, and unzip on another Acorn, filetypes will be maintained precisely as if you used uncompressed files. If you de-archive on another machine (PC, Mac, Unix etc..), filetypes will be ignored, but the files will be identical despite this. This feature is fully compatible with SparkFS, so zipfiles created by zip will be correctly uncompressed (including filetype, etc.) by SparkFS. An additional feature went into this port to cope better with C-code and extensions. This allows the acorn files "c.foo" to be added to the archive as "foo/c", eventually appearing in the archive as "foo.c", allowing for better handling of C or C++ code. Example: *Set Zip$Exts "dir1:dir2:dir3" *zip new/zip dir1.file *zip new/zip dir2.help *zip new/zip dir3.textfile Creates a zipfile new/zip, with entries file.dir1, help.dir2, textfile.dir3. The usual settings for Zip$Exts are "h:o:s:c", allowing C code to be added to the archive in standard form. A final note about the Acorn port regards the use of the 'n' option: this is used to specify a list of suffixes that will not be compressed (eg. .ZIP, since it is already a compressed file). Since RISC OS uses filetypes instead of suffixes, this list of suffixes is actually considered as a list of filetypes (3 hex digit format). By default, zip doesn't compress filetypes DDC (Archive, Spark or Zip), D96 (CFS files) and 68E (PackDir).