home *** CD-ROM | disk | FTP | other *** search
/ The California Collection / TheCaliforniaCollection.cdr / his008 / unarj220.exe / UNARJ.DOC < prev    next >
Text File  |  1991-07-11  |  9KB  |  247 lines

  1.  
  2.      UNARJ.DOC, UNARJ 2.20                  July 1991
  3.  
  4.  
  5.     UNARJ software and manual copyright (c) 1991 by Robert K Jung.
  6.     All rights reserved.
  7.  
  8.     UNARJ version 2.20 release
  9.  
  10.  
  11.      This documents new or updated information since UNARJ 2.10.
  12.  
  13.  
  14.      ** IMPORTANT NEWS ****************************************************
  15.  
  16.      There is an extended header bug in older versions of ARJ, AV.C and
  17.      UNARJ.C.  The extended header processing in read_header() should skip
  18.      4 bytes for the extended header CRC and not 2 bytes.  This is NOT a
  19.      current problem as no versions of ARJ use the extended header.
  20.  
  21.      The following source line in DECODE.C is AMBIGUOUS and has been
  22.      corrected.
  23.  
  24.     weight[i++] = 1 << (16 - i);
  25.  
  26.      **********************************************************************
  27.  
  28.      Here is the C source code for a simple UNARJ extractor program.  It
  29.      has been portabilized courtesy of Mark Adler for platforms that do not
  30.      support ANSI C.  This UNARJ is NOT meant for use as a production
  31.      quality ARJ extractor.  It is meant for the use of 3rd party
  32.      developers who want to build file readers, etc, for ARJ.  The UNARJ
  33.      source code has been built and tested under Turbo C++ 1.0 and Quick C
  34.      2.5.
  35.  
  36.      It has none of the program protection and other fancy features of
  37.      ARJ 2.20.    It is also VERY SLOW compared to ARJ!!!  In ARJ, all of
  38.      the critical routines are written in assembly language.
  39.  
  40.  
  41.      COMMAND SYNTAX:
  42.  
  43.      UNARJ has been modified to support the four commands: "e", "l", "t",
  44.      and "x".  These are equivalent to the ARJ version of these commands.
  45.      However, UNARJ does not create directories when using the "x" command.
  46.  
  47.      Usage:  UNARJ archive[.arj]    (list archive)
  48.          UNARJ e archive        (extract archive)
  49.          UNARJ l archive        (list archive)
  50.          UNARJ t archive        (test archive)
  51.          UNARJ x archive        (extract with pathnames)
  52.  
  53.      UNARJ does not accept any other commands or options.  You cannot
  54.      specify a base directory or select individual files to extract.  UNARJ
  55.      does not support empty directories or volume labels.  UNARJ is much
  56.      slower than ARJ because ARJ is highly optimized using assembly
  57.      language.
  58.  
  59.  
  60.      "e" extract command
  61.  
  62.      This command extracts the contents of the ARJ archive to the current
  63.      directory.  Files in the archive that already exist in the current
  64.      directory will not be extracted.
  65.  
  66.  
  67.      "l" list command
  68.  
  69.      This command lists the contents of the archive to the screen.  The
  70.      UNARJ l command replaces the old AV.EXE program.
  71.  
  72.      The last field on the display TPMGVX stands for:
  73.      T -> text/binary/directory/volume label type
  74.      P -> path information available in "V" listing
  75.      M -> compression method used
  76.      G -> file has been garbled (encrypted)
  77.      V -> archive has been continued to another volume
  78.      X -> this file is an extended portion of a larger file
  79.  
  80.  
  81.      "t" test command
  82.  
  83.      This command tests the contents of the archive by extracting the files
  84.      to the NUL device (no data will be written to disk).  If the contents
  85.      of a file is corrupted, UNARJ will display "CRC error!".  If the
  86.      contents are valid, UNARJ will display "CRC OK".
  87.  
  88.  
  89.      "x" extract with pathnames command
  90.  
  91.      This command extracts the contents of the ARJ archive to the pathnames
  92.      stored in the archive.  If only filespecs are stored in the archive,
  93.      then the files will be extracted to the current directory.  UNARJ will
  94.      not create missing directories in the pathnames.  You must create them
  95.      manually.    Use the UNARJ t command to see the full pathnames stored in
  96.      the archive.
  97.  
  98.  
  99.      PROGRESS INDICATOR
  100.  
  101.      UNARJ uses a small spinning bar to indicate extraction/testing
  102.      progress.
  103.  
  104.  
  105.      BUILDING THE UNARJ PROGRAM
  106.  
  107.      Source files:  UNARJ.C, DECODE.C, ENVIRON.C, UNARJ.H, UNARJ.DEF,
  108.             TCCUNARJ.MAK, QCLUNARJ.MAK, OS2UNARJ.MAK.
  109.  
  110.      For Turbo C/C++, type MAKE /ftccunarj.mak
  111.  
  112.      For QuickC,      type NMAKE /F qclunarj.mak
  113.  
  114.      For OS/2,          type NMAKE /F os2unarj.mak
  115.  
  116.      If you use a compiler other than listed above, the resulting UNARJ.EXE
  117.      will not support restoring file date-time stamps or file attributes.
  118.      You can modify the ENVIRON.C file to add these functions for your
  119.      particular implementation environment.
  120.  
  121.      For UNIX,          type cc -DUNIX unarj.c decode.c environ.c
  122.  
  123.      Send me your implementations and I will try to incorporate them into
  124.      the next version of UNARJ.
  125.  
  126.  
  127.      ACKNOWLEDGEMENTS:
  128.  
  129.      I wish to thank Haruhiko Okumura for providing the ideas for ARJ and
  130.      UNARJ.  His AR001 and AR002 provided the basic compression algorithms
  131.      for ARJ 1.0.  At ARJ 2.0, ARJ uses only the secondary Huffman
  132.      compressor from AR002.
  133.  
  134.      I wish to thank Mark Adler for helping make UNARJ more portable.
  135.  
  136.  
  137.      UNARJ LICENSE POLICY FOR ALL USERS:
  138.  
  139.      The UNARJ program, source code, and the associated documentation
  140.      are copyright (c) 1990,91 Robert K Jung, all rights reserved.
  141.  
  142.      If you distribute this software to others, you are required to
  143.      distribute the ENTIRE package consisting of the following files:
  144.  
  145.      README.DOC
  146.      UNARJ.EXE
  147.      UNARJ.DOC
  148.      UNARJ.C
  149.      DECODE.C
  150.      ENVIRON.C
  151.      UNARJ.H
  152.      UNARJ.DEF
  153.      TCCUNARJ.MAK
  154.      QCLUNARJ.MAK
  155.      OS2UNARJ.MAK
  156.      TECHNOTE.DOC
  157.  
  158.      I strongly prefer that the files be distributed in the format
  159.      originally released:  UNARJ220.EXE with the ARJ-SECURITY envelope as
  160.      created by the author.  If you must distribute the UNARJ archive in
  161.      another archive format, please archive the UNARJ220.EXE as one file
  162.      inside the other archive.    Re-archival of the software as separate
  163.      files means losing the ARJ security envelope.
  164.  
  165.      You may freely use the UNARJ C source code provided the end product is
  166.      NOT an ARJ archiver (both compress and extract ARJ files).  If you
  167.      wish to distribute a modified version of UNARJ.EXE, you MUST indicate
  168.      that it is a modified version both in the program and source code.
  169.  
  170.      If you create a modified version of UNARJ.EXE, I would appreciate a
  171.      copy of the new source code.  I am holding the copyright on the source
  172.      code, so please do not delete my name from the program files or the
  173.      documentation.
  174.  
  175.      The UNARJ.EXE program is built from this source using Turbo C++ 1.0.
  176.  
  177.      You may freely use, copy, and distribute UNARJ.EXE, provided that no
  178.      fee is charged for such use, copying or distribution.
  179.  
  180.      You may use UNARJ.EXE in a commercial software package provided that
  181.      no additional fee is charged for using UNARJ.EXE and provided that the
  182.      user fully understands that NO warranty or support is provided for
  183.      UNARJ.EXE.  Moreover, the user must fully understand that UNARJ does
  184.      not have the long usage history as ARJ does.
  185.  
  186.      This source code is intended to promote the building of utilities to
  187.      support the use of ARJ and ARJ archives.
  188.  
  189.  
  190.      TECHNICAL SUPPORT:
  191.  
  192.      Please report any bugs.  I will TRY to fix them.  If you have
  193.      portability improvements, I would appreciate receiving a copy of them.
  194.  
  195.      If you find UNARJ of value, a gift of 10 dollars or any amount would be
  196.      greatly appreciated.
  197.  
  198.      I can be reached at:
  199.  
  200.      Robert Jung at The Black Depths BBS  (508) 427-5379
  201.  
  202.      Robert Jung at Bay State BBS      (617) 598-6646
  203.  
  204.      Robert Jung at FIDONET address:  1:16/390.7
  205.  
  206.      Robert Jung in the COMPRESS (ILINK), LHARC / COMPRESSIONS
  207.      (SMARTNET), SHARE (RIME) or ARCHIVERS (RELAYNET) echo conferences.
  208.  
  209.      2606 Village Road West
  210.      Norwood, Massachusetts 02062
  211.      USA
  212.  
  213.      Internet address:    robjung@world.std.com  (Checked daily)
  214.  
  215.      Compuserve users can enter   >INTERNET: robjung@world.std.com
  216.      at the "Send to" prompt.  I prefer CompuServe users to send mail
  217.      to this address as opposed to my CompuServe userid below.
  218.  
  219.      CompuServe userid: 72077,445  (Checked infrequently)
  220.  
  221.  
  222.      DISCLAIMER:
  223.  
  224.      This software UNARJ is provided on an "as is" basis without warranty
  225.      of any kind, expressed or implied, including but not limited to the
  226.      implied warranties of merchantability and fitness for a particular
  227.      purpose.  The person using the software bears all risk as to the
  228.      quality and performance of the software. Should the software prove
  229.      defective, the user assumes the entire cost of all necessary repair,
  230.      servicing, or correction.    The author will not be liable for any
  231.      special, incidental, consequential, indirect or similar damages due to
  232.      loss of data or any other reason, even if the author or an agent of
  233.      the author has been advised of the possibility of such damages.
  234.  
  235.  
  236.      HISTORY:
  237.  
  238.      UNARJ 2.20 - Changed arguments in get_mode_str() and set_ftime_mode() to
  239.           at least int size.
  240.  
  241.           Added default_case_path() for convenience in UNIX.
  242.  
  243.           Added two missing %c from printf statement in list_arc().
  244.  
  245.    end document
  246.  
  247.