"Fossies" - the Fresh Open Source Software Archive

Member "unarj-2.65/unarj.txt" (5 Jun 2002, 11205 Bytes) of package /linux/misc/old/unarj-2.65.tar.gz:


As a special service "Fossies" has tried to format the requested text file into HTML format (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 
    2      UNARJ.TXT, UNARJ 2.65                                    June 2002
    3 
    4 
    5         UNARJ software and manual copyright (c) 1990-2002 ARJ Software, Inc.
    6         All rights reserved.
    7 
    8         UNARJ version 2.65 release
    9 
   10 
   11      This documents new or updated information since UNARJ 2.10.
   12 
   13 
   14      ** IMPORTANT NEWS ****************************************************
   15 
   16      At 2.65, a fix to DECODE.C make_table() calls was made to help UNARJ
   17      handle damaged archives.
   18 
   19      At ARJ 2.60, there are new chapter fields and a data encryption field.
   20 
   21      The ARJ archive format at 2.39 and above supports an archive
   22      date-time modified field.
   23 
   24      A new data check has been added to make_table() in DECODE.C to
   25      account for badly corrupted data.
   26 
   27      There is a newly defined flag bit in the ARJ flags.  See TECHNOTE.DOC
   28      for details.  UNARJ only supports this flag bit with the "l" command.
   29 
   30      There is an extended header bug in older versions of ARJ, AV.C and
   31      UNARJ.C.  The extended header processing in read_header() should skip
   32      4 bytes for the extended header CRC and not 2 bytes.  This is NOT a
   33      current problem as no versions of ARJ use the extended header.
   34 
   35      The following source line in DECODE.C is AMBIGUOUS and has been
   36      corrected.
   37 
   38         weight[i++] = 1 << (16 - i);
   39 
   40      **********************************************************************
   41 
   42      Here is the C source code for a simple UNARJ extractor program.  It
   43      has been portabilized courtesy of Mark Adler for platforms that do not
   44      support ANSI C.  This UNARJ is NOT meant for use as a production
   45      quality ARJ extractor.  It is meant for the use of 3rd party
   46      developers who want to build file readers, etc, for ARJ.  The UNARJ
   47      source code has been built and tested under Turbo C++ 1.0, Quick C
   48      2.5, Borland C++ 3.1, Borland C++ 1.0 for OS/2 and Coherent 3.2.0.
   49 
   50      It has none of the program protection and other fancy features of
   51      ARJ 2.41.  It is also VERY SLOW compared to ARJ.  In ARJ, all of
   52      the critical routines are written in assembly language.
   53 
   54 
   55      COMMAND SYNTAX:
   56 
   57      UNARJ has been modified to support the four commands: "e", "l", "t",
   58      and "x".  These are similar to the ARJ version of these commands.
   59      However, UNARJ does not create directories when using the "x" command.
   60 
   61      Usage:  UNARJ archive[.arj]    (list archive)
   62              UNARJ e archive        (extract archive)
   63              UNARJ l archive        (list archive)
   64              UNARJ t archive        (test archive)
   65              UNARJ x archive        (extract with pathnames)
   66 
   67      UNARJ does not accept any other commands or options.  You cannot
   68      specify a base directory or select individual files to extract.  UNARJ
   69      does not support empty directories or volume labels.  UNARJ is much
   70      slower than ARJ because ARJ is highly optimized using assembly
   71      language.
   72 
   73 
   74      "e" extract command
   75 
   76      This command extracts the contents of the ARJ archive to the current
   77      directory.  Files in the archive that already exist in the current
   78      directory will not be extracted.
   79 
   80 
   81      "l" list command
   82 
   83      This command lists the contents of the archive to the screen.  The
   84      UNARJ l command replaces the old AV.EXE program.
   85 
   86      The last field on the display BTPMGVX stands for:
   87          B -> file has been marked as a backup
   88          T -> text/binary/directory/volume label type
   89          P -> path information available in "V" listing
   90          M -> compression method used
   91          G -> file has been garbled (encrypted)
   92          V -> archive has been continued to another volume
   93          X -> this file is an extended portion of a larger file
   94 
   95 
   96      "t" test command
   97 
   98      This command tests the contents of the archive by extracting the files
   99      to the NUL device (no data will be written to disk).  If the contents
  100      of a file is corrupted, UNARJ will display "CRC error!".  If the
  101      contents are valid, UNARJ will display "CRC OK".
  102 
  103      You can use this command to see if an archive contains pathnames.
  104 
  105 
  106      "x" extract with pathnames command
  107 
  108      This command extracts the contents of the ARJ archive to the pathnames
  109      stored in the archive.  If only filespecs are stored in the archive,
  110      then the files will be extracted to the current directory.  UNARJ will
  111      not create missing directories in the pathnames.  You must create them
  112      manually.  Use the UNARJ t command to see the full pathnames stored in
  113      the archive.
  114 
  115 
  116      PROGRESS INDICATOR
  117 
  118      UNARJ uses a small spinning bar to indicate extraction/testing
  119      progress.  For some systems that have buffered output, the progress
  120      indicator may not work.
  121 
  122 
  123      BUILDING THE UNARJ PROGRAM
  124 
  125      Source files:  UNARJ.C, DECODE.C, ENVIRON.C, UNARJ.H, UNARJ.DEF,
  126                     TCCUNARJ.MAK, QCLUNARJ.MAK, OS2UNARJ.MAK, BCC32.MAK.
  127 
  128      For Turbo C/C++, type MAKE /ftccunarj.mak
  129 
  130      For Borland C++, type MAKE /fbcc32.mak
  131      
  132      For QuickC,      type NMAKE /F qclunarj.mak
  133 
  134      For OS/2 BC++,   type MAKE /fos2unarj.mak
  135 
  136      For Coherent,    type
  137          cc -DUNIX -DCOHERENT -o unarj unarj.c decode.c environ.c
  138 
  139      For UNIX         type cc -DUNIX -o unarj unarj.c decode.c environ.c
  140 
  141      If you use a compiler other than listed above, the resulting UNARJ.EXE
  142      will not support restoring file date-time stamps.  You can modify the
  143      ENVIRON.C file to add these functions for your particular
  144      implementation environment.
  145 
  146      If you send us your implementations, we will try to incorporate them
  147      into the next version of UNARJ.
  148 
  149 
  150      ACKNOWLEDGEMENTS:
  151 
  152      We wish to thank Haruhiko Okumura for providing the ideas for ARJ and
  153      UNARJ.  His AR001 and AR002 provided the basic compression algorithms
  154      for ARJ 1.0.  At ARJ 2.0, ARJ uses only the secondary Huffman
  155      compressor from AR002.
  156 
  157      We wish to thank Mark Adler for helping make UNARJ more portable.
  158 
  159      We also wish to acknowledge the use of the file date-time stamping
  160      routines in Rahul Dhesi's ZOO archiver.
  161 
  162      And to those who have contributed bug reports and porting information,
  163      we extend our thanks.
  164 
  165 
  166      UNARJ LICENSE POLICY FOR ALL USERS:
  167 
  168      The UNARJ program, source code, and the associated documentation
  169      are copyright (c) 1990-2002 ARJ Software, Inc. all rights reserved.
  170 
  171      If you distribute this software to others, you are required to
  172      distribute the ENTIRE package consisting of the following files:
  173 
  174      README.DOC
  175      UNARJ.EXE
  176      UNARJ.DOC
  177      UNARJ.C
  178      DECODE.C
  179      ENVIRON.C
  180      UNARJ.H
  181      UNARJ.DEF
  182      TCCUNARJ.MAK
  183      BCCUNARJ.MAK
  184      BCC32.MAK
  185      QCLUNARJ.MAK
  186      OS2UNARJ.MAK
  187      TECHNOTE.DOC
  188 
  189      We strongly prefer that the files be distributed in the format
  190      originally released:  UNARJ265.EXE with the ARJ-SECURITY envelope as
  191      created by the author.  If you must distribute the UNARJ archive in
  192      another archive format, please archive the UNARJ265.EXE as one file
  193      inside the other archive.  Re-archival of the software as separate
  194      files means losing the ARJ security envelope.
  195 
  196      You may freely use the UNARJ C source code.  If you wish to
  197      distribute a modified version of UNARJ.EXE, you MUST indicate that it
  198      is a modified version both in the program and source code.
  199 
  200      We are holding the copyright on the source code, so please do not
  201      delete our name from the program files or the documentation.
  202 
  203      The UNARJ.EXE program is built from this source using Borland C++ 3.1.
  204 
  205      You may freely use, copy, and distribute UNARJ.EXE, provided that no
  206      fee is charged for such use, copying or distribution.
  207 
  208      You may use UNARJ.EXE in a commercial software package provided that
  209      no additional fee is charged for using UNARJ.EXE and provided that
  210      the user fully understands that NO warranty or support is provided
  211      for UNARJ.EXE by ARJ Software.  Moreover, the user must fully
  212      understand that UNARJ does not have the long usage history that ARJ
  213      does.
  214 
  215      This source code is intended to promote the building of utilities to
  216      support the use of ARJ and ARJ archives.
  217 
  218 
  219      TECHNICAL SUPPORT:
  220 
  221      Please report any bugs.  We will try to fix them.  If you have made
  222      portability improvements, we would appreciate receiving a copy of them.
  223 
  224      We can be reached at:
  225 
  226      Internet address:  robjung@world.std.com
  227      Web site:          www.arjsoftware.com
  228 
  229      ARJ Software, Inc.
  230      P.O. Box 249
  231      Norwood, MA 02062   USA
  232 
  233      Fax: 781-769-4893
  234 
  235 
  236      DISCLAIMER:
  237 
  238      This software UNARJ is provided on an "as is" basis without warranty
  239      of any kind, expressed or implied, including but not limited to the
  240      implied warranties of merchantability and fitness for a particular
  241      purpose.  The person using the software bears all risk as to the
  242      quality and performance of the software. Should the software prove
  243      defective, the user assumes the entire cost of all necessary repair,
  244      servicing, or correction.  ARJ Software, Inc. will not be liable
  245      for any special, incidental, consequential, indirect or similar
  246      damages due to loss of data or any other reason, even if ARJ
  247      Software, Inc. or its agents have been advised of the possibility
  248      of such damages.
  249 
  250 
  251      HISTORY:
  252 
  253      UNARJ 2.65 - Fixed table boundaries per suggestion of
  254 
  255      UNARJ 2.63 - Added additional header data checks.
  256 
  257      UNARJ 2.61 - Added chapter and encryption information.
  258 
  259      UNARJ 2.43 - Added "/" to list of valid path separators.
  260 
  261      UNARJ 2.42 - Changed copyright messages.
  262 
  263      UNARJ 2.41 - Added ARCHIMEDES support.  Added archive date-time
  264                   modified field support.  Added data check to
  265                   make_table().  Updated ARJ header descriptions.
  266 
  267      UNARJ 2.30 - Added new header arj flag (BACKUP_FLAG).
  268                   Updated information in TECHNOTE.DOC.
  269 
  270      UNARJ 2.22 - Added missing semicolon to unarj.c for THINK_C.
  271                   Modified text mode processing to include test for
  272                   host_os in fwrite_txt_crc().
  273                   Added more error checking to unarj.c.
  274 
  275      UNARJ 2.21 - Changed uint ratio() to static uint ratio().
  276                   Added #ifdef VMS to unarj.c.
  277                   Tested unarj on COHERENT (UNIX clone).
  278                   Fixed use of _chmod to handle directories.
  279                   Modified unarj.c to support the MAC THINK_C compiler.
  280                   Added #include <stdlib.h> to vanilla section of environ.c.
  281                   Added file date-time stamping to UNIX section of environ.c.
  282 
  283      UNARJ 2.20 - Changed arguments in get_mode_str() and set_ftime_mode() to
  284                   at least int size.
  285 
  286                   Added default_case_path() for convenience in UNIX.
  287 
  288                   Added two missing %c from printf statement in list_arc().
  289 
  290    end document