"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
the uninterpreted source code file.
2 UNARJ.TXT, UNARJ 2.65 June 2002
5 UNARJ software and manual copyright (c) 1990-2002 ARJ Software, Inc.
6 All rights reserved.
8 UNARJ version 2.65 release
11 This documents new or updated information since UNARJ 2.10.
14 ** IMPORTANT NEWS ****************************************************
16 At 2.65, a fix to DECODE.C make_table() calls was made to help UNARJ
17 handle damaged archives.
19 At ARJ 2.60, there are new chapter fields and a data encryption field.
21 The ARJ archive format at 2.39 and above supports an archive
22 date-time modified field.
24 A new data check has been added to make_table() in DECODE.C to
25 account for badly corrupted data.
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.
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.
35 The following source line in DECODE.C is AMBIGUOUS and has been
38 weight[i++] = 1 << (16 - i);
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.
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.
55 COMMAND SYNTAX:
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.
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)
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
74 "e" extract command
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.
81 "l" list command
83 This command lists the contents of the archive to the screen. The
84 UNARJ l command replaces the old AV.EXE program.
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
96 "t" test command
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".
103 You can use this command to see if an archive contains pathnames.
106 "x" extract with pathnames command
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.
116 PROGRESS INDICATOR
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.
123 BUILDING THE UNARJ PROGRAM
125 Source files: UNARJ.C, DECODE.C, ENVIRON.C, UNARJ.H, UNARJ.DEF,
126 TCCUNARJ.MAK, QCLUNARJ.MAK, OS2UNARJ.MAK, BCC32.MAK.
128 For Turbo C/C++, type MAKE /ftccunarj.mak
130 For Borland C++, type MAKE /fbcc32.mak
132 For QuickC, type NMAKE /F qclunarj.mak
134 For OS/2 BC++, type MAKE /fos2unarj.mak
136 For Coherent, type
137 cc -DUNIX -DCOHERENT -o unarj unarj.c decode.c environ.c
139 For UNIX type cc -DUNIX -o unarj unarj.c decode.c environ.c
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.
146 If you send us your implementations, we will try to incorporate them
147 into the next version of UNARJ.
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.
157 We wish to thank Mark Adler for helping make UNARJ more portable.
159 We also wish to acknowledge the use of the file date-time stamping
160 routines in Rahul Dhesi's ZOO archiver.
162 And to those who have contributed bug reports and porting information,
163 we extend our thanks.
166 UNARJ LICENSE POLICY FOR ALL USERS:
168 The UNARJ program, source code, and the associated documentation
169 are copyright (c) 1990-2002 ARJ Software, Inc. all rights reserved.
171 If you distribute this software to others, you are required to
172 distribute the ENTIRE package consisting of the following files:
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.
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.
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.
203 The UNARJ.EXE program is built from this source using Borland C++ 3.1.
205 You may freely use, copy, and distribute UNARJ.EXE, provided that no
206 fee is charged for such use, copying or distribution.
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
215 This source code is intended to promote the building of utilities to
216 support the use of ARJ and ARJ archives.
219 TECHNICAL SUPPORT:
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.
224 We can be reached at:
226 Internet address: firstname.lastname@example.org
227 Web site: www.arjsoftware.com
229 ARJ Software, Inc.
230 P.O. Box 249
231 Norwood, MA 02062 USA
233 Fax: 781-769-4893
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.
253 UNARJ 2.65 - Fixed table boundaries per suggestion of
255 UNARJ 2.63 - Added additional header data checks.
257 UNARJ 2.61 - Added chapter and encryption information.
259 UNARJ 2.43 - Added "/" to list of valid path separators.
261 UNARJ 2.42 - Changed copyright messages.
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.
267 UNARJ 2.30 - Added new header arj flag (BACKUP_FLAG).
268 Updated information in TECHNOTE.DOC.
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.
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.
283 UNARJ 2.20 - Changed arguments in get_mode_str() and set_ftime_mode() to
284 at least int size.
286 Added default_case_path() for convenience in UNIX.
288 Added two missing %c from printf statement in list_arc().
290 end document