PDBAR(1) Palm hacking commands PDBAR(1)NAMEpdbar - Palm database archiver, version 0.5.
SYNOPSISpdbar t dbfile
pdbar h dbfile
pdbar x dbfile [ioptions] [records..]
pdbar c [hoptions] dbfile name type cid [ioptions] [files..]
pdbar u [hoptions] dbfile [ioptions] [updates..]
pdbar a [hoptions] dbfile [ioptions] [files..]
pdbar d [hoptions] dbfile [doptions] [records..]
pdbar V
DESCRIPTION
The pdbar utility creates and manipulates PalmOS database (.pdb) and
resource (.prc) files. The first argument determines the mode of opera‐
tion, as follows:
t List contents. For regular databases a list of records is gener‐
ated, each line showing the record attributes, category, record
size, and an ascii dump of the first few bytes of the record.
For resource databases, a list of resources is generated, each
line showing resource type, hex id, size, and ascii dump of the
first few bytes of the resource.
h List header information. A report of the database header is gen‐
erated, showing the database name (this is the name that would
be visible on a device), the database type, creator id,
attributes, version, creation time, last modification time, last
backup time, mod number, nrecords (or resources), and the size
of the application info block in the database.
x Extract. The extract mode can extract all or just specific
records from a database. With no further arguments, all records
will be extracted from the database. If further arguments are
provided, these should specify the index of the record to
extract for regular databases, and the type and id of the
desired resource for resource databases. By default, individual
records will be saved as files with the name <index>.pdr, where
<index> is the index of the record in the database, individual
resources will be saved as files with the name <type><id>.bin,
where <type> is the 4 character type of the resource, and <id>
is the resource id in 4 digit hexadecimal. A preferred filename
for a saved item can be specified for each record using the -f
option to the record or resource specification.
c Create a new database. The create mode creates a new database
file, with the database name, type, and creator id specified as
(required) arguments. If no further arguments are specified, the
resulting database will contain no records, but will have a
valid database header. If further arguments are specified, they
should specify files to be appended to the database as records
or resources (see the -a mode description).
u Touch the header or record attributes. In touch mode, changes to
the database header can be specified. By default, the last modi‐
fication time will be updated to the current time, but further
changes can be specified using the header options. See HEADER
OPTIONS section. In addition, attribute information for particu‐
lar records can be specified. For regular databases, the new
record category and record attributes may be specified, using
the -c and -a options. The records to touch are specified by
index. For resource databases, the new resource type and id may
be specified using the -T option. The resources to touch are
specified by <type> and <id>.
a Append records or resources. In append mode, records or
resources will be added to the database. For regular databases,
the target record category and record attributes may be speci‐
fied, using the -c and -a options before the source filename.
For resource databases, the target resource type and id may be
specified using the -T option before the source filename. If the
-T option is not specified, the source filename is assumed to
specify the type and id in the <type><index> fashion described
for the x mode. In addition to individual records and
resources, pdbar can append whole databases, in effect merging
the records or resources from one database into another. Data‐
bases may be specified as append items explicitly using the -p
argument option, or implicitly by using a .pdb extension for
record databases, and .prc extension for resource databases.
d Delete. In delete mode, records or resources are removed from
the database. Records are specified by index, resources are
specified by type and id.
V Version. Print the version number.
r Create resource. r is an convenience alias for c -a resource.
See HEADER OPTIONS section.
l l is an alias for t.
i i is an alias for h.
-mode All modes may be prefixed with - if that makes you feel better.
HEADER OPTIONS
The a, c, d, u modes accept hoptions which update the database informa‐
tion as follows:
-n name
Database name. This is the name of the database that will be
visible on the device. Note that this is entirely independent
from the dbfile, although some utilities will imply the latter
from the former.
-T type
The four character database type. For example, an application
resource database is of type 'appl'. The address book database
is of type 'DATA'.
-I cid
The four character creator identifier. This specifies which
application owns the database.
-a attributes
Database attributes. These may be specified as a hex number, or
symbolically using the keywords resource, readonly, dirty,
backup, newer, reset, copyprevent, stream, hidden, launchable,
recyclable, bundle, or any bit-ORed combination of names or hex
numbers. For new databases, the attributes default to 0x0 (none
set).
-v version
The database version. For new databases, this defaults to 1.
-C creation_time
The time the database was created. Times should be specified
using the format [[CC]YY]MMDDHHMM, or using the special keywords
now, or never. The former is the current time, that latter is
the beginning of PalmOS time (90401010000). For new databases,
this defaults to now.
-m last_modification_time
The time the database was created. For new databases, this
defaults to now.
-b last_backup_time
The time the database was last backed up. For new databases,
this defaults to never.
INFO OPTIONS
The x, c, u, and a modes accept ioptions, and the d mode accepts dop‐
tions, which operate on the app and sort info in the database:
-A filename
AppInfo filename. In x mode, specifies that the database
AppInfo should be saved to filename. In c,u, and a
modes, specifies that the database AppInfo should be set
from filename.
-S filename
SortInfo filename. In x mode, specifies that the database
SortInfo should be saved to filename. In c,u, and a
modes, specifies that the database SortInfo should be set
from filename.
-A Delete AppInfo. In d mode, specifies that the database
AppInfo should be deleted from the database.
-S Delete SortInfo. In d mode, specifies that the database
SortInfo should be deleted from the database.
EXAMPLES
The following example prints the header information for the
database 'foo.pdb'.
pdbar h foo.pdb
The following extracts all records from 'foo.pdb'.
pdbar x foo.pdb
The following extracts the application icon resource from
'app.prc' and saves it in the file 'icon.Tbmp'. Note the use of
decimal specification for the resource id. The id may be speci‐
fied in hex using by using the '0x' prefix.
pdbar x app.prc -f icon.Tbmp tAIB 1000
The following creates a new application resource database from
all the the files with a '.bin' extension in the current direc‐
tory. The database will have creator id of 'djwP' and will have
the backup bit set.
pdbar c -a "resource|backup" app.prc myapp appl djwP *.bin
If you use the author's technique for creating multi-segment
library prcs with CodeWarrior, the following example will be
useful. This example uses the touch mode to change the database
type to 'libr', and to change the attribute type of the primary
code resource from type = 'code', id = '1' (as used in an appli‐
cation) to type = 'libr',
id = '0' (as used in a library).
pdbar u -T libr mylib.prc -T libr 0 code 1
The following example merges the resources from two different
resource databases, code.prc, and resource.prc into a single
target application database, myapp.prc. This technique is use‐
ful for managing code and non-code elements of an application,
using the individual resource databases as libraries.
pdbar r myapp.prc myapp appl djwP code.prc resource.prc
By default, pdbar saves extracted resources using the form
<type><id>.bin, where <type> is the 4 character type of the
resource, and <id> is the resource id in 4 digit hexadecimal.
When appending resources to a new or existing resource database,
pdbar will attempt to decode the resource and id of the resource
being appended from the resource filename using this same naming
scheme, or you can explicitly specify the resource and id using
the -T syntax. Here are two invocations of pdbar that do exactly
the same thing: create a new resource database with one resource
which has type = NFNT and id = 256 (0x0100 hexadecimal):
pdbar c -a "resource" font.prc Font FONT djwF NFNT0100.bin
pdbar r font.prc Font FONT djwF -T NFNT 256 myfont
The following example creates a stream database that can be
accessed using the PalmOS FileStream API. The stream will con‐
tain the contents of the file 'WarAndPeace.txt':
pdbar c -a "stream" book.pdb Book DATA djwS WarAndPeace.txt
In the following example, 'book.pdb' is a stream database. This
example extracts the stream from that database and stores the
result in the output file 'Book.txt':
pdbar x book.pdb Book.txt
AUTHOR
par was written by David Williams, djw@djw.org
FreeBSD NOTES
par was renamed pdbar to avoid conflicting with the preexisting
text processing tool of the same name.
Version 0.5 (beta) November 1999 PDBAR(1)