• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

COPYINGH A D23-Aug-199817.6 KiB341281

ChangeLogH A D05-Aug-2004348 1713

INSTALLH A D23-Mar-2004262 109

Makefile.LinuxH A D03-May-20221 KiB5134

READMEH A D05-Aug-20043.3 KiB7456

THANKSH A D23-Aug-199877 21

configureH A D05-Aug-2004593 2116

mkmkman.cH A D05-Aug-20046.2 KiB198127

par.cH A D03-May-202232.7 KiB1,078914

par.hH A D05-Aug-20041.7 KiB6750

par.manH A D05-Aug-20042 KiB9886

README

1This is par, an archiver for Quake pak?.pak files.
2It has been written for all those who don't like to use windoze (pakexplr by
3Ashley Bone) for pak file processing.
4
5Par knows about listing, extraction and creation of pak archives:
6
7  par -l pak0.pak [files]
8  par -x pak0.pak [files]
9  par -c pak9.pak [files].
10
11In addition, you may specify -v for having par to be more talketive and -f to
12force some actions or/and suppress error messages.
13Since pak archives usually contain hundreds of files, instead of specifying
14them on the command line you may put the names to textfiles and use the -t
15switch. This option may be used instead of (not implemented) wildcards:
16
17  par -l pak0.pak | egrep "^models/weapons" > list
18  par -xvt pak0.pak list
19
20
21Now about the unimplemented stuff:
22
23Q: Why didn't you implement -d for deletion?
24A: This is v0.01, until now I implemented only the very needed features.
25   Workaround: If you want to delete "maps/base1.bsp" from pak0.pak (and you've
26     got enough disk space :-), just type
27
28     par -l pak0.pak | sed "s/^maps\/base1\.bsp$//" > list
29     par -x pak0.pak
30     par -ct pak0.pak list
31
32Q: Why didn't you implement -a for adding?
33A: The implementation of this feature requires some programming effort in order
34   to prevent the archive from being destroyed if an error occours (disk full
35   or something like this). Again, this is v0.01.
36
37Q: I love pipes! Why didn't you implement reading the archive from stdin?
38A: I love pipes, too! Unfortunately, the table of contents of the pak archive
39   is located at its end with the following consequences: Since repositioning
40   the file offset isn't possible with stdin, listing would take much time and
41   the extraction would require to buffer the whole archive. Makes no sense.
42
43Q: Why didn't you implement reading the file list from stdin?
44A: This made sense. Send me an e-mail asking for this feature. Better two...
45
46Q: Why didn't you implement extracting to stdout?
47A: Makes some sense, too. Send me an e-mail asking for this feature.
48
49Q: Why didn't you implement creation to stdout?
50A: I had to rewrite the algorithm. The pak header contains the number of files
51   stored in the archive. Until now, I create an empty archive, add the files
52   one by one and rewrite the header afterwards. This way, files that cannot
53   be accessed by par for some weird reasons (permissions, ...) can be skipped
54   (if -f has been specified). When writing to stdout, par cannot be forced to
55   create a valid archive in this case, since the information on the number of
56   files can only be retrieved by counting the file names.
57   Since this is a weak reason, here another: Since reading the archive from
58   stdin isn't possible, implementing creation to stdout would result in an
59   inconsistency: "par -x -" wouldn't work, but "par -c -" would.
60   Not convinced? Okay, ask me for implementation.
61
62Q: What is the pak file format?
63A: It is described in pak-format.txt.
64
65Q: I want to clean up my Quake directory by putting all downloaded stuff into
66   new pak files. Is this possible?
67A: Yes, it is. The linux quake2 reads (at least) pak[0-9].pak in alphabetic
68   order. All files that are only read may be placed into additional paks.
69   If you find out more about this, please let me know.
70
71
72Par should be available at the ibiblio site at
73http://ibiblio.org/pub/linux/games/quake/.
74