D. Seidman
October 31, 1992



                               MORE TOOLS
                   More Utilities for WordPerfect(r)

                       From the Author of WPTOOLS
                             David Seidman
                          Software by Seidman



                              INTRODUCTION


MORE TOOLS Version 1.0 is a collection of utility programs for use with 
WordPerfect Versions 5.0 and 5.1 (WP50, WP51, or, collectively, WP5), 
including both the Windows and the DOS versions of WordPerfect.  All of 
the programs are useful with WP51 for DOS.  A few are not useful with 
WP51 for Windows or WP50.  Many of the programs are also useful with 
LetterPerfect, because its files are WP51 files.  The shareware 
distribution consists of this documentation in ASCII format and ten 
programs:  AUTHOR, BOXFILE, CONCATWP, FREEZE, LFSD, MPSET, PRIMO, 
SHOWSET, STYLIB, and WFWP.  Users who pay the license fee receive two 
additional utility programs -- ADDPRS and SHOWCODE -- and this 
documentation in WP5 format. 




                                PROGRAMS


Briefly, this is what the MORE TOOLS programs do:

ADDPRS   A tool for network administrators, allowing selective updating 
of printer definitions in personal setup files from the definitions in 
the master setup file.  More flexible than NWPSETUP. 

AUTHOR   A tool for managing table of authorities marking.  Generates 
(as a secondary merge file) a list of the full forms and associated 
short forms used in a document. 

BOXFILE  Lists the graphics files a WP5 document uses. 

CONCATWP Combines a group of WP5 files into a single file, with or 
without separators between files.  Useful for combining text and saving 
disk space. 

FREEZE   "Freezes" styles, cross-references, and paragraph numbers, 
converting them to ordinary text so that they are no longer subject to 
change without explicit editing. 

LFSD     Simulates WP5's List Files, but allows the files to be sorted 
in reverse date order (most recent first), date order, by extension, or 
by file name.  For WP51 for DOS. 

MPSET    Sets environmental variables in the DOS master environment.  
Aids communication between WP5 and other programs through environmental 
variables. 

PRIMO    Converts merge codes to (bolded) ordinary text, for convenient 
printing and debugging of primary (or secondary) merge files. Much 
faster than the CODES macro. 

SHOWCODE Converts a WP5 file into more or less what you would see in 
Reveal Codes.  A much more complete conversion than the CODES macro 
provides, and much, much faster. 

SHOWSET  Lists most of the information in SET files.  Find out what the 
default settings are without searching in WP5; print for future 
reference. 

STYLIB   Helps manage your styles.  Create a new style library by 
selecting styles from any or all of your existing style libraries and 
documents. 

WFWP     Computes and lists the frequencies of words in WP5 files. 


I.  ADDPRS

ADDPRS is a tool for network administrators.  Like WPCorp's NWPSETUP 
program, ADDPRS updates personal setup files with the printer 
definitions in the master setup file (ordinarily WP{WP}.SET).  But 
unlike NWPSETUP, ADDPRS updates selectively.  You can choose both which 
printer definitions in the master setup file to add to the personal 
setup files and which personal setup files to update.  Thus, even 
though the master setup file contains definitions for every printer 
available anywhere on the network, ADDPRS can add some definitions for 
some users, and other definitions for other users.  If a definition to 
be added already appears in the personal set file, it will not be 
duplicated. 

ADDPRS is interactive.  You can get help at any time by typing F1 (exit 
from Help with the ESC key).  The program first asks you to supply the 
name of the directory where the master set file is located, proposing 
the default directory.  You can accept the default directory by hitting 
the Enter key, or you can enter another directory name.  (If the first 
key you hit is a character key, the proposed directory vanishes.  If 
the first key you hit is not a character key, but instead is, say, a 
cursor arrow key, you can edit the proposed directory.  End editing 
with Esc or Enter.) 

ADDPRS then asks for the name of the master set file, proposing 
WP{WP}.SET.  You can give a different response, following the rules for 
editing described above.  You are then asked for the name of the 
directory containing the set files to be updated, the personal set 
files; the program proposes *.SET, which will usually be the correct 
choice, although you can edit it. 

Once ADDPRS has the necessary file and path specifications, it presents 
a list of the printer definitions found in the master set file.  You 
select from this list the printer definitions to be added to the 
personal set files.  Selected definitions are indicated with a check 
mark. 

       You can select in several ways.  INS selects the highlighted 
       definition, DEL deselects it.  SPACE toggles selection; if the 
       highlighted item is selected, SPACE deselects it, and if it is 
       not selected, SPACE selects it.  You can select a block of 
       definitions by hitting F7 at the point you would like the block 
       to begin and F8 where you would like the block to end.  The 
       blocked text will be highlighted.  For additional options, see 
       the help screen (F1). 

Once you have selected the definitions, you must accept your 
selections.  Accept the selections by hitting the Enter key.  If you 
hit Esc, nothing will be selected and the program will terminate. The 
program will also terminate if you accept without having selected 
anything. 

After the definitions are selected, ADDPRS lists the files matching the 
specification of the set files to be updated (but it does not include 
WP{WP}.SET on the list even though that name will usually match the 
wildcard file specification of the personal set files).  You select 
files to be updated from this list in the same manner you select 
definitions (although the marking appears slightly different).  After 
you select the files to be updated, you must accept the selections with 
the Enter key (again, Esc blocks selection and causes the program to 
terminate). 

Once you have accepted your selection of printer definitions, ADDPRS 
does the updating, generating a backup file for each updated set file.  
These backups have the same name as the updated set files, except that 
they have a different extension.  ADDPRS will try to use the extension 
B01, and if that is already in use, it will try B02, and so on through 
B99.  If B99 is in use, no backup will be created. 

Usage: ADDPRS [/m]

              The option /m tells ADDPRS to treat the display as 
              monochrome rather than as color display.  Use this option 
              if you do not like the default color selections. 

Warning:  ADDPRS requires a good deal of memory, and is therefore 
likely not to work if, for example, you run it while shelled from 
WordPerfect. 

II.  AUTHOR

AUTHOR helps you manage tables of authorities, so it is intended mainly 
for those who prepare legal briefs.  WP5 provides no way to generate a 
list of full forms and their associated short forms -- you have to 
remember, or make notes of, the short form you have chosen for each 
full form.  AUTHOR makes it easy for you to make a list of all your 
full forms and their associated short forms.  AUTHOR will also allow 
you to discover short forms not yet assigned to full forms without 
actually generating the table of authorities. 

AUTHOR reads a WP5 document that contains table of authorities marking 
and extracts the table of authorities information for the marked 
entries.  It writes this information to a WP50 secondary merge file, so 
you can easily manipulate the information and put it into the format 
most useful and convenient for you. 

For each record in the secondary merge file AUTHOR creates, Field 1 is 
the full form of a table of authorities entry, Field 2 is the short 
form, and Field 3 is the section number in the table where the 
authority is to be inserted.  There is one record for each full form 
table of authorities entry, and one for each short form that is not 
associated with a full form (Field 1 is blank for these records).  
Short forms that lack a full form are assigned section number 0 in the 
second field. 

Suppose you wanted a list of your full forms with their associated 
short form names, sorted by section and alphabetically by full form 
within sections, and you did not want the list to include short forms 
not yet assigned to full forms.  You could use WP5's sort/select 
function to take from the AUTHOR-generated secondary merge file only 
the records that include full forms and sort those by section and full 
form, and then merge the results into a convenient report format. The 
sort/select screen might look like this: 

-------------------------- Sort Secondary Merge File -------------------------

Key Typ Field Line Word    Key Typ Field Line Word    Key Typ Field Line Word 
1   n     3     1    1     2   a     1     1    1     3                      
4                          5                          6                      
7                          8                          9                      
Select                                                                        
key1<>0                                                                       

Action                     Order                     Type                     
Select and sort            Ascending                 Merge sort               

1 Perform Action; 2 View; 3 Keys; 4 Select; 5 Action; 6 Order; 7 Type: 0      


This produces as output a file sorted first by section number (field 3, 
used here as sort key 1) and then by full form (field 1, used here as 
sort key 2), but containing only those records for which there are full 
forms (key1<>0).  A simple primary merge file might then put this 
information into parallel columns.  A suitable primary merge file might 
look like this: 


[Col Def:Parallel;2,1",4",4.5",7.5"][Col On][Mrg:LABEL]loop~
[Mrg:FIELD]1~[HPg][Mrg:FIELD]2~[Col Off][HRt]
[Col On][Mrg:NEXT RECORD][Mrg:GO]loop~[HPg][Col Off]



Other report formats, of course, could also be used.  If you have WP51, 
you might find tables preferable to columns. 

Usage:  AUTHOR  Infile  Outfile

              Infile specifies a WP5 document file.

              Outfile is created as a WP50 secondary merge file.  If 
              Outfile already exists, AUTHOR will overwrite the 
              existing file with a new one of the same name, without 
              warning. 

              Either file specification may include the full pathname. 


III.  BOXFILE

BOXFILE generates a list of the files that provide the contents of the 
boxes (figure, table, text, equation, and user) used in documents.  
That is, it reads a document, extracts the file names that were entered 
into the box create or edit screen, and writes the results to standard 
output. Typically, these files are graphic image files, such as .WPG 
files, although the files may also contain text or other material.  
Graphic image files may be incorporated into a document itself, or else 
left on disk to be read when the document is viewed or printed; BOXFILE 
lists incorporated graphics and graphics on disk separately, adding ON 
DISK to the listing for files left on disk.  The separate 
identification of files on disk is particularly useful when you are 
sending a file to someone else and need to know which graphic image 
files to send with the document.  In addition, BOXFILE lists the number 
of times each file is used in a document. 

Usage:  BOXFILE  Inputfile

              Inputfile is the a WP5 document file.  It may include a 
              complete path specification.  Wildcards may be used, and 
              BOXFILE will process each WP5 document matching the file 
              specification. 

              Output is written to standard output and may be piped or 
              redirected.  Unless wildcards are used, the typical 
              document has sufficiently few box files that piping and 
              redirection are probably not useful. 



IV.  CONCATWP

CONCATWP combines a group of WP5 files into a single file.  The output 
document prefix is the prefix of the first file in the combined output 
file.  That means, among other things, that the initial codes are taken 
from the first file.  The separator between files is selected by the 
user. By default, there is no separator, which is not usually what you 
want, but may sometimes be. You can also choose to add a hard return 
between files, a hard page break between files, or a hard page break 
followed by FILE: [filename] between files (where "filename" is the 
name of the next file). 

Files to be combined are specified the way files to be combined using 
the DOS Copy command are specified, by listing them separated by plus 
signs (+).  Unlike the DOS Copy command, however, CONCATWP does not 
permit spaces between the file names and the plus signs. CONCATWP also 
differs from the DOS Copy command in how it determines the name of the 
output file.  If you do not specify otherwise, the output file will be 
named CONCAT.WP5 in the default directory; an existing file of that 
name will be overwritten.  You can specify an output file name 
(including path) by listing it after the list of input files on the 
command line.  Unlike the DOS Copy command, CONCATWP does not permit 
wildcards in the name of the output file. It does, however, permit 
wildcards in the input file names.  It also permits the indirect file 
construction (@Fname -- see Usage below). 

If you combine a group of files this way, the combined file should take 
up significantly less disk space than the individual files.  Thus 
CONCATWP may be a useful step in archiving files you are no longer 
using but want to save.  CONCATWP may also be useful if you create a 
big file in pieces and want to assemble the pieces into the big file.  
There may be other uses for CONCATWP.  We haven't thought much about 
the uses, but wrote the program because a number of WordPerfect users 
said they needed this capability. 

Usage:

CONCATWP filespec[+filespec+...+filespec] [OutputFile] [-sep]

              All WP5 files matching filespec are concatenated and 
              written to Output file. 

              Filespec may include DOS wildcards (*,?) and path 
              specification. 

              @Filespec is an ascii text file with filespecs, one per 
              line. 

              If no OutputFile is specified, the output file is 
              CONCAT.WP5 in the default directory. 

              sep    File Separator.  If R, hard return added between 
                     files.  If P, hard page added.  If N, hard page 
                     plus FILE: fname [HRt] added. 

Example:

       CONCATWP c:\letter\*.jan+c:\memo\*.jan c:\arc\jan -N

              Concatenate all files in subdirectory letter, and all 
              files in subdirectory memo, that have the extension 
              "jan," putting the results into file JAN in subdirectory 
              arc. Separate the files with a hard page break and a line 
              indicating the file name. 


V.  FREEZE

FREEZE "freezes" styles, cross-references, and paragraph numbers in a 
WP5 file.  That is, FREEZE eliminates style, automatic cross-reference, 
and automatic paragraph number (or outline heading) codes from a WP5 
document, leaving in the document only the results of the style, cross-
reference, or paragraph number codes.  The document is therefore 
"frozen" -- the text resulting from style codes, cross reference codes, 
or paragraph number codes will not change unless you directly edit it.  
This freezing can be useful, for example, if you wish to avoid 
accidental changes to the document, if you need to convert the document 
to another format but your conversion program does not properly handle 
these codes, or if you used automatic numbering to assign numbers and 
want to preserve the original numbering even though deleting (or 
reordering) the numbered items.  Note that FREEZE cannot do anything 
useful with cross references unless you have generated the document, 
because until you do, all cross references are to "?". 

FREEZE has several options.  One set allows you to avoid freezing 
styles, cross references, or paragraph numbers.  (If you tell FREEZE to 
avoid freezing all three, it does not process any files, because there 
is nothing left for it to do.)  Another set of options, familiar to 
users of WPTOOLS, controls the processing of multiple files, the 
treatment of backups, and similar matters.  Most of these options are 
discussed briefly in the "usage" section below. 

If you are processing multiple files, or if you are processing a single 
file and do not provide an output file name, FREEZE replaces the input 
file by the output file and creates a backup file with a name based on 
the name of the input file.  In creating the backup file name, FREEZE 
strips off the input file extension and tries to replace it with the 
extension Z01.  (For example, if the input file name is FOO.BAR, FREEZE 
uses FOO.BAR as the name of the output file and tries to use FOO.Z01 as 
the name of the backup file.)  If there is already a file of that name, 
FREEZE tries the extension Z02 (making FOO.Z02), and so on through Z99.  
If all those names are already in use, FREEZE refuses to process the 
input file.  You have the option of not preserving a backup file.  Some 
users find this option convenient, but it is obviously somewhat 
dangerous -- if for some reason FREEZE fails to process your file 
properly and you have no backup, there may be no way to fix the damage. 


Usage: FREEZE Infile [Ofile] [-Option] .. [-Option]

              Infile name of WP5 file (with full path if necessary). 
                     May include wildcards. 

              Ofile  Output file.  Not used if input file name includes 
                     wildcards.  If Ofile is omitted, or wildcards are 
                     used in input file name, a backup file is written 
                     as Infilename with .Znn extension and the output 
                     is in Infile.  If there are no wildcards and Ofile 
                     is specified, it is overwritten if it already 
                     exists. 

Options:
              -P     do not freeze Paragraph numbers
              -S     do not freeze Styles
              -R     do not freeze References
              -K     Kills the backup if no ofile is specified or used
              -T     output gets Time and date of input file
              -A     process wildcard files only if Archive bit set
              -E     process wildcard through directory trEE

Examples:

       FREEZE c:\*.* -skte
       or FREEZE c:\*.* -s -k -t -e

       Process every (WP5) file on drive c.  Freeze only the cross 
       references and paragraph numbers.  Delete all backup files.  Use 
       the date and time of the input files on the backup files. 

       FREEZE c:\*.*

       Process every (WP5) file in the root directory of drive c.  
       Freeze styles, paragraph numbers, and cross references.  
       Preserve backup files.  Use the current date and time for the 
       output files. 


VI.  LFSD

LFSD ("List Files, Sort Directory") is designed to overcome a WP5 
limitation:  List Files sorts files only by name.  LFSD cannot change 
that, but it allows you to achieve the effect of List Files with the 
files sorted in other ways.  By default, LFSD sorts files by DOS file 
date (which is the date the file was last modified), the most recent 
files listed first, but other sort orders are also available. 

LFSD is a standalone computer program, which means you can use it from 
the DOS command line, but that is probably not what you want to do.  
LFSD is designed to be run from inside WP5 itself, to be used where you 
would otherwise use the List Files feature of WP5 from the main editing 
screen.  LFSD can be more or less seamlessly integrated with 
WordPerfect through use of a macro that invokes it.  You could even 
assign the macro to the F5 key (although that presents problems, 
because List Files can be used in several contexts).  This seamless 
integration is not possible with WP50, and so LFSD is for use with WP51 
for DOS, not WP50 or WP51 for Windows. 

Ignoring the details of managing the seamless integration, what happens 
when you invoke LFSD from within WP5?  By default, it displays a 
directory in two columns, reflecting a file specification you 
previously selected, with the files sorted by date (directories are 
listed before files, in alphabetical order) in reverse date order -- 
that is, the most recent files are listed first.  Here is what it looks 
like: 

 D:\MT\*.* ͸
..               <Dir> 03-18-92  9:01a DOCS             <Dir> 08-18-92  9:12p 
XXLFSD.WPM          78 08-18-92  9:11p READ.ME            155 08-18-92  6:39p 
WFWP.EXE         18176 08-18-92  6:33p WFWP.PAS         14582 08-18-92  6:32p 
GCE.TPU           5376 08-18-92  1:00a GCE.PAS          19082 08-18-92  1:00a 
GCE.BAK          19083 08-18-92  1:00a TP16530E.$$$         0 08-17-92 10:19p 
MTEXE.ZIP       246509 08-15-92 10:29p ADDPRS.EXE       95056 08-15-92 10:42a 
ADDPRS.PAS       27075 08-15-92 10:42a MT.WP5           64622 08-07-92 12:20a 
SHOWCODE.EXE     41728 07-29-92  6:40p SHOWCODE.PAS     13305 07-29-92  6:40p 
PRIMO.EXE        16272 07-29-92  6:03p PRIMO.PAS        22414 07-29-92  6:03p 
FREEZE.EXE       18880 07-29-92  4:35p FREEZE.PAS       28517 07-29-92  4:35p 
SHOWSET.EXE      21696 07-29-92 12:16p SHOWSET.PAS      27731 07-29-92 12:16p 
SHOWSET.BAK      27710 07-29-92 12:15p SHOWSET1.PAS     29112 07-29-92 11:57a 
SHOWCODE.BAK     13305 07-29-92 11:09a SCUNIT1.TPU      44032 07-29-92 10:24a 
SCUNIT1.PAS      49544 07-29-92 10:24a SCUNIT1.BAK      49530 07-29-92 10:23a 
SCGLOB.TPU        6400 07-29-92 10:23a SCGLOB.PAS        7981 07-29-92  9:43a 
MPSET.EXE         5744 06-01-92 10:24p MPSET.PAS         1754 06-01-92 10:24p 
SS1.PAS          28710 05-11-92  9:39p SS.PAS           28991 05-11-92  6:16p 
STYLIB.EXE      104064 05-10-92  2:45p STYLIB.PAS       29382 05-10-92  2:44p 
SHOWSET0.PAS     28586 05-07-92 12:42a DS.LIB            1018 05-03-92 11:41a 
UTILS.WP5        40365 05-02-92  6:20p LFSD.WP5          4571 04-01-92 11:16p 
CONCATWP.EXE     10336 03-31-92 12:17a CONCATWP.PAS      6216 03-31-92 12:17a 
CONCATWP.BAK      6287 03-30-92 11:58p RPT.1              732 03-18-92 10:41a 
<Enter> - select  AltL - look  AltD - delete  F1,Esc,F7 - Quit  AltS - resort;


One of the file names will be highlighted.  You move the highlight bar 
around the directory display with the expected keys -- the cursor 
arrows, Home to get to the first item, End to get to the last, and 
PageUp and PageDown to scroll the display one screen.  There is also a 
function like Name Search in List Files.  To use it, just start typing 
on the character keys.  But since the files would not normally be in 
alphabetical order, this is generally not very useful. 

The choices available to you while the highlight bar is on a file are 
listed at the bottom of the screen.  The most important is the first, 
Enter to Select.  If you hit Enter when the highlight bar is on a 
directory, the display will change to show that directory's files.  If 
you hit Enter when the highlight bar is on a file, that file is 
selected for retrieving into WordPerfect, and LFSD exits back to the 
DOS command line.  LFSD doesn't actually retrieve the file into 
WordPerfect, but if you have set up the mechanism for seamless 
integration as suggested below, the file will be retrieved. 

If you want to view the highlighted file, use Alt-L.  LFSD itself does 
not display the text of WordPerfect files, but instead uses another 
Software by Seidman program, WP5LOOK, to display the file.  If LFSD 
cannot find WP5LOOK, Alt-L will not be shown as an available choice; if 
you select it, it will be ignored.  Viewing files is discussed further 
below. 

If you want to delete the highlighted file, use Alt-D.  The highlighted 
file will be deleted and the list of files redisplayed. 

If you would like to change the order in which the files are sorted, 
use Alt-S.  A small menu appears, indicating your choices: 

                      SELECT SORT ORDER͸
                                               
                       0 - No change           
                                               
                       1 - most Recent first   
                                               
                       2 - Oldest first        
                                               
                       3 - by Extension        
                                               
                       4 - by File name        
                                               
                      Choose letter or number;


Select the one you wish by hitting its number (or its highlighted 
letter).  Unless you choose No change (which you should, if you wish to 
exit the menu without choosing a new sort order), the files in the 
directory display will be resorted into the desired order. 

Finally, you may exit from LFSD without selecting a file to be 
retrieved.  Just hit F1, F7, or Esc. 


Integrating LFSD With WordPerfect

When you select a file from the LFSD display, LFSD creates a WP51 macro 
named xxLFSD.WPM (in the default directory or, better, in your macro 
directory if LFSD knows what it is). xxLFSD.WPM assigns the pathname of 
the selected file to the variable xxPName. 

To integrate LFSD with WP51, write a macro that causes WP51 to run 
LFSD, then executes xxLFSD.WPM, and then retrieves the file whose name 
is by then stored in the variable xxPName. 

Here is a WP51 macro (called SD here, but you can give it any legal 
name) that does all this, starting LFSD with the directory displayed in 
the default sort order: 


{DISPLAY OFF}
{TEXT}PName~Enterdirectorypathtodisplay:~
{Shell}clfsd/p{VARIABLE}Pname~/mc:\wp51\macros{Enter}
{NEST}xxLFSD~
{IF EXISTS}xxPName~{Retrieve}{VARIABLE}xxPName~{Enter}


This macro first prompts you for a directory path to display, as does 
List Files (unlike List Files, SD does not suggest a directory path, 
but a more complicated macro could).  You would respond with *.* to 
display all files in the current directory, or with another 
specification, as with List Files.  SD stores that path specification 
in the variable PName and then (in the third line, which begins with 
{Shell}) executes a DOS command, which runs LFSD with two parameters on 
the command line.  (The macro as written assumes that LFSD is either in 
the current directory or else somewhere along the DOS path.  If you 
want to put LFSD somewhere else, say in c:\wp51, you would change the 
third line of SD so that it begins {Shell}cc:\wp51\lfsd, followed by 
the rest of the line as above.)  Note that this line ends with a space 
after the {Enter}.  The space responds to the Press Any Key to Continue 
prompt that follows execution of a DOS command.  The next line executes 
the macro xxLFSD, just written by LFSD.  If you told LFSD you wanted to 
retrieve a file, executing xxLFSD creates the variable xxPName, 
containing the pathname of the file you selected; otherwise xxPName 
does not exist after SD executes xxLFSD.  The last line of the macro 
tests to see whether xxPName exists; if it does SD causes it to be 
retrieved. 

SD.WPM demonstrates two of the three possible command line parameters 
for LFSD.  All three are described here: 

       /ppath The directory to display.  If you do not specify files 
              but only specify the directory, *.* is assumed.  If you 
              omit the /p parameter, *.* in the current directory is 
              assumed. 

       /mdir  dir is the directory in which LFSD will write xxLFSD.WPM.  
              (If you omit it, and it is not a good idea to omit it, 
              the current directory is assumed.)  Usually, you specify 
              your macro directory.  (SD as written provides the 
              conventional name of the WP51 macro directory.)  You can 
              use any directory, but if you do not use the WP51 macro 
              directory (and do not want to use whatever happens to be 
              the current directory), you must modify SD (or the macro 
              you use instead of SD) so that the macro name following 
              {NEST} includes the full path designation. 
 
       /sc    c indicates your choice of sort order.  There are four 
              possible sort orders:

                     R - date order, most Recent first
                     O - date order, Oldest first
                     E - alphabetical by Extension
                     F - alphabetical by File name

                     If you do not specify a sort order, LFSD will use 
                     R and sort by date, most recent first.  There is 
                     obviously little point in using LFSD with /sF, 
                     since that is what WordPerfect's List Files would 
                     give you anyway. 



Viewing Files

LFSD does not include a viewer for WP5 files, but if Alt-L is shown as 
a choice on the main display screen and you choose it, LFSD will try to 
display the file using WP5LOOK, another program from Software by 
Seidman.  (WP5LOOK is a part of WPTOOLS, described below.)  In order 
for this to work, you must have WP5LOOK.EXE, and it must be located 
where LFSD can find it, which means it should be somewhere on your DOS 
path, in the current directory, or (if you are using DOS 3.0 or higher) 
in the same directory as LFSD.EXE.  There also must be enough free 
memory to run WP5LOOK.  If you have EMS memory, LFSD will try to swap 
itself to EMS, leaving almost all the conventional memory it uses for 
WP5LOOK to use.  If you have no (or insufficient) EMS, LFSD will swap 
itself to disk, a relatively slow process.  Whether there will be 
enough memory to run WP5LOOK after LFSD swaps itself out depends on how 
much conventional memory your computer has, how much conventional 
memory WordPerfect happens to be using when you invoke LFSD, and what 
other programs are currently occupying conventional memory.  It also 
depends on how much memory WP5LOOK requires.  WP5LOOK Version 4.0 and 
later, which can display not only WP5 files, but also any other files, 
is a reasonably large program requiring a substantial amount of memory, 
and it will often be too large for use with LFSD.  Older versions of 
WP5LOOK (which were part of versions of WPTOOLS earlier than 5.1) 
require less memory -- but also display only WP5 files.  The current 
registered version of WPTOOLS includes not only the latest WP5LOOK, but 
also an earlier version, shipped as OLDLOOK.EXE, which can be renamed 
to WP5LOOK and used with LFSD when memory constraints prohibit use of 
the current WP5LOOK. 

If LFSD can find a file named WP5LOOK.BAT, it will use that file 
instead of WP5LOOK, passing the name of the file to be viewed as a 
command line parameter.  This can be useful if you want to use any of 
the WP5LOOK command line options (for example, WP5LOOK.BAT might 
contain this line: c:\wptools\WP5LOOK %1 -RN), if you follow the common 
practice of renaming WP5LOOK.EXE to LOOK.EXE (thus, if LOOK.EXE is on 
your path, WP5LOOK.BAT might contain LOOK %1), or if you choose to use 
a file viewer other than WP5LOOK. 


More About Memory Constraints

Because LFSD is normally used only while WP5 is also running, memory 
can be a considerable problem.  As memory becomes tight, some of the 
options otherwise available disappear.  There are also limitations on 
the number of filenames LFSD can display.  Unless you have very tight 
memory constraints (or enormous subdirectories), this is not likely to 
be a problem, because LFSD, if memory is available, can display several 
hundred files in a subdirectory. 


VII.  MPSET

MPSET has no particular connection with WP5, but it allows WP5 to 
communicate with other computer programs.  Programs often communicate 
with each other though the DOS environment.  One program sets a 
variable in the DOS environment, the other program reads the value of 
that variable from the DOS environment. 

WP5 has no command to set a variable in the DOS environment.  WP51, 
however, allows the user to execute a DOS command (Control-F1, 2).  
Thus you can execute the DOS SET command (which sets variables in the 
DOS environment) from within WP51.  (You can accomplish the same thing 
in WP50 by shelling to DOS, executing the SET command, and then 
executing EXIT.) 

Unfortunately, while this will set a variable in the environment, it 
does not usually allow WP5 to communicate with other programs using the 
environment.  The problem is that there is more than one environment.  
If you are at the DOS prompt, not shelled from another program, the 
only environment is the "master" environment.  If you then execute WP5, 
it gets its own environment, which contains all the variables set in 
the master environment.  If you set a variable in WP5's environment, it 
is not set in the master environment, and when you exit from WP5, its 
environment, and the variable you set there, disappear.  If you shell 
from WP5, you have still another environment.  If you want to set an 
environmental variable that another program can read, you have to set 
the variable not in the current environment, but at least in the 
"parent" environment (one level up), and perhaps at a higher level than 
that.   To be sure you get the right one, you need to set the variable 
in the master environment.  But the SET command sets variables only in 
the current environment. 

MPSET allows you to set environmental variables in the parent 
environment, the master environment, or both.  If you use it from WP5 
instead of the SET command (as described above), you can set 
environmental variables that are still there when WP5 exits, so other 
programs can read them. 


Usage: MPSET Envs EnvVar Value

              Envs indicates which environment.  Use M for master, P 
              for Parent, MP for both. 

              EnvVar is name of an (existing or new) environmental 
              variable. 

              Value is the value to set EnvVar to.  No embedded blanks.  
              Leave out to delete the variable 

Examples:

              MPSET M FNAME MPSET.DOC

              Sets the variable FNAME to MPSET.DOC in the master 
              environment. 

              MPSET M FNAME

              Removes the variable FNAME from the master environment. 

              MPSET will fail if there is not enough room in the 
              relevant environment to add a new variable, or if it 
              cannot find the master (or parent) environment.  If it 
              fails, an appropriate message is sent to the screen. 

              If you want to run MPSET without any visible output, 
              redirect the output to NUL, e.g., 

              MPSET M FNAME MPSET.DOC >NUL


MPSET solves only half the problem of communication between programs.  
The other half is getting a program to read an environmental variable 
that another program has set.  WP5 has no command for reading 
environmental variables.  That can be handled by another Software by 
Seidman program, MacArgs, which is a part of MacroAid, described below.  
MacArgs replaces assignments to variables in a WP5 DOS macro.  Suppose 
you have this statement in a WP5 macro named MyMacro.Wpm: 

       {ASSIGN}0~OldString~

This command:

       MacArgs MyMacro.Wpm -0NewString

will change the macro so the assignment reads

       {ASSIGN}0~NewString~

If you execute a batch file containing the following line:

       MacArgs MyMacro.Wpm -0%FName%

then MyMacro.Wpm will assign the value of the environmental variable 
FName to {VAR 0}.  If you execute MyMacro, that value will then be 
available to WP5. 

Thus MacArgs and MPSET together allow for two-way communication between 
WP5 and other programs through the environment (assuming the other 
programs have a way to read environmental variables). 


VIII.  PRIMO

PRIMO is like SHOWCODE (which is discussed below), but much more 
limited.  PRIMO takes a WP5 file and writes an output file which is 
identical, except that merge codes have been converted to ordinary text 
(in bold).  It is therefore used for printing and debugging primary 
(and secondary) merge files. 

CODES.WPM, which ships with WP51 for DOS, does almost the same thing in 
one of its options (as does CODES.WCM, which ships with WP51 for 
Windows).  Why use PRIMO instead?  There are three reasons: 

    -- PRIMO is much faster, which matters primarily if your merge 
       files are large. 

    -- PRIMO displays the merge codes inside such structures as 
       footnotes, unlike the CODES macros. 

    -- PRIMO displays the old WP50 merge codes as well as the newer 
       style merge codes --again, the CODES macros do not. 


Usage:  PRIMO Infile Outfile

           Infile   A WP5 filename, including path if necessary.  
                    Wildcards are not permitted. 

           Outfile  Name (including path if necessary) for the output 
                    file.  If the output file already exists, it will 
                    be overwritten. 


IX.  SHOWCODE

SHOWCODE reads a WP5 file as its input and writes another one as its 
output.  The output file looks a good deal like what the input file 
looks like when viewed in Reveal Codes mode in WP5. In effect, SHOWCODE 
creates a permanent Reveal Codes version of an entire document file. 
SHOWCODE output, particularly when printed, can be very helpful in 
debugging complex WP5 documents, documenting coding techniques for 
later use, and teaching proper use of WP5. (The example coding of a 
primary merge file in the discussion of AUTHOR above was produced by 
SHOWCODE.) 

There are some differences between what you see in Reveal Codes and the 
SHOWCODE output.  Here are the notable ones. 

    -- because it reveals the entire document at once, SHOWCODE shows 
       some things that no single Reveal Codes screen would show.  
       Thus, while Reveal Codes shows only part of a footnote or 
       similar substructure while you are viewing the main text, 
       SHOWCODE shows the entire substructure at the place in the main 
       text where the code for it appears.  (Initial Codes are not 
       represented by a code in the main text, so SHOWCODE shows the 
       Initial Codes at the start of the document, clearly marked as 
       Initial Codes. You can also choose not to process Initial Codes, 
       or to process only Initial Codes.) 

    -- the symbols used to represent WP5 codes are usually but not 
       always identical to the symbols used in Reveal Codes.  The main 
       reason for differences is that different versions of WordPerfect 
       (5.0, 5.1 for DOS, and 5.1 for Windows) use different symbols 
       for the same (or substantially the same) codes in some cases.  
       SHOWCODE uses a blend of the 5.0 and 5.1/DOS symbols. 

    -- SHOWCODE never shows the font actually selected by a font 
       attribute code, whereas recent releases of WP51 do show that 
       when your cursor is on the attribute code. 

    -- in a few cases, SHOWCODE provides more information than does 
       Reveal Codes.  It seemed more important to provide the 
       information than to worry about matching the Reveal Codes 
       display. 

    -- SHOWCODE will generally not wrap lines at the same places Reveal 
       Codes would wrap them, although exactly where SHOWCODE will wrap 
       them depends on your choice of fonts and margins. 


There are also very substantial differences between SHOWCODE and the 
CODES.WPM macro that ships with WP51 for DOS.  One is speed.  On a 
simple one page document (consisting almost entirely of ordinary text), 
CODES took approximately 2 minutes and 27 seconds to produce the output 
file.  On the same one page document, SHOWCODE took less than one 
second.  Time differences will vary with the nature of the document, 
but they should always be large.  This document took less than 3 
seconds to process on a 25 mhz. 386.  The other is the nature of the 
output.  CODES simply does not approximate the Reveal Codes screen, 
because it leaves out all information other than the symbol identifying 
the code.  This works perfectly well for codes like [HRt], but [Ln 
Spacing] is a good deal less informative than, say, [Ln Spacing:2]. 
CODES gives you the former.  SHOWCODE and Reveal Codes give you the 
latter.  CODES also does not process structures like footnotes, instead 
merely telling you there is a footnote. SHOWCODE shows you everything.  
(We have not spent as much time with the CODES.WCM macro that ships 
with WP51 for Windows, but it appears to share the limitations of 
CODES.WPM.) 

Here is the beginning of the WP5 version of this document as SHOWCODE 
output (font identifications depend on the PRS file used): 

Initial Codes:
[Underln:Spaces,Tabs]
End Initial Codes
[L/R Mar: 1.25",1.25"][T/B Mar: 1.25", 0.8"][Footer A:Every
page;[HLine:Full,Baseline,6",0.013",100%][Open Style:Small
Text;[Font:*SN Swiss Bold 08pt (ASCII Business) (FW,
Port)]][HRt]
[HRt]
[HRt]
More Tools for WordPerfect Users[Flsh Rt]Page
^B[C/A/Flrt]][Suppress:FA][Open Style:Text;[Font:*SN Swiss
Roman 10pt (ASCII Business) (FW, Port)]][Comment][Fig
Opt][Fig Box:;MT1.PCX;][AdvDn:3.5"][Def Mark:ToC,2:5,5][HRt]
[->Indent<-][<-Mar Rel]INTRODUCTION[Flsh Rt(DotLead)] 
1[C/A/Flrt][HRt]
[HRt]
[->Indent<-][<-Mar Rel]PROGRAMS[Flsh Rt(DotLead)] 
1[C/A/Flrt][HRt]
[->Indent<-][->Indent][<-Mar Rel]ADDPRS[Flsh Rt(DotLead)] 
2[C/A/Flrt][HRt]

Usage:

    SHOWCODE Infile Outfile [-Option] [-Option]

           Infile is the WP5 file to be converted.  Name may include 
           full path specification. 

           Outfile is the filename, which may include full path 
           specification, of WP5 file for output. 

           Options

           -gfname              If the -g option is not used, the 
                                output file is a WP50 file with a 
                                minimal prefix.  That is, it has no 
                                initial codes, no selected printer, no 
                                document summary, and no styles.  If 
                                the -g option is used, where fname is 
                                the specification of an existing WP5 
                                file, SHOWCODE will instead use the 
                                prefix of that file as the prefix for 
                                Outfile.  This allows you to supply 
                                initial codes and the like.  FName 
                                should not refer to the same file as 
                                Infile or Outfile. 

           -cn                  Do not process Initial Codes.

           -co                  Process only Initial Codes.  Do not 
                                process the rest of the document. 


X.  SHOWSET

SHOWSET reads one or more WordPerfect .SET files and writes (to 
standard output) a listing of the settings in the file.  The result 
tells you nothing that you could not find out by examining screen after 
screen in SETUP and some other places in WordPerfect, but it is a lot 
more convenient to get the information with SHOWSET.  Moreover, since 
you can redirect the output to a file or your printer, you can make a 
permanent record for later use.  SHOWSET is particularly useful to 
network administrators and others who often need to know the .SET file 
settings of many users. 

SHOWSET does not display initial codes, but does identify whether there 
are any initial codes specified in the .SET file.  To display these 
codes, create a document using that .SET file and use SHOWCODE on the 
document. 

Usage:

    SHOWSET filespec

           Filespec, which may include a full path and wildcards, 
           identifies the .SET files to process.  If you leave out the 
           file extension, the extension SET is used. 

           Output goes to standard output, and would normally be 
           redirected (to a file or the printer) or piped (to a program 
           like MORE or LIST). 

Redirection or piping of output is important, since the output for a 
.SET file takes far more than one screen -- and, of course, if the 
input filespec contains a wildcard, there may be output for a large 
number of .SET files. 

Examples:

    SHOWSET c:\wp51\* >result

           Process all .SET files in c:\wp51 and redirect the (ascii) 
           output to file "result" in the default directory. 

    SHOWSET * | LIST /s

           Process all .SET files in the default directory and pipe the 
           output to Vern Buerg's LIST program. 

Although SHOWSET works with .SET files for WP50 as well as WP51, the 
output is somewhat different, because the .SET files are different. 

SHOWSET produces a lot of output.  When you want only a few items of 
information, it may be useful to pipe the SHOWSET output to a program 
that filters it, passing through only what interests you.  Sometimes, 
the DOS FIND command will do the job.  For example, 

    SHOWSET wp{wp}|FIND "Minutes"

will send to the screen only the SHOWSET output that indicates the 
number of minutes between backups.  Usually, more complex filtering is 
required.  We recommend AWK in those circumstances.  Rob Duff's version 
of AWK, widely distributed on BBSs, is our preferred AWK. 


XI.  STYLIB

STYLIB helps you manage your WordPerfect styles.  If you store all your 
styles in a single style library and use just one of them, all of them 
are incorporated into the prefix of the document, unnecessarily 
increasing file size, and making it awkward to find the styles you want 
to use in the list of all your styles.  And it is difficult to move 
styles from one place to another, so that you may find you have styles 
scattered across different documents, with no convenient way to pull 
several different ones into a document where you would like to use 
them. 

STYLIB provides that convenient way.  It allows you to select styles 
from many different style libraries and document files and combine them 
into a single style library.  (Note that, from the standpoint of 
WordPerfect, a document file and a style library are really the same 
thing.  A style library is simply a document that has styles in the 
prefix but has no text.)  Thus it is easy to create style libraries 
containing only the styles needed for a particular document or type of 
document. 

STYLIB works interactively.  You can get help at any time by typing F1 
(exit from Help with the ESC key).  When you invoke the program from 
the command line, it first prompts you for the input file directory -- 
the directory where the files with styles (documents or style 
libraries) are located.  STYLIB suggests the current default directory.  
To accept it, hit ENTER.  Otherwise, if the first key you hit is a 
character, the suggestion will disappear and you can enter whatever you 
like.  If the first key is another key, such as a cursor arrow key, you 
can edit the suggestion.  Once you have finished responding to this 
prompt, STYLIB prompts for a file specification, suggesting *.*.  You 
can accept the suggestion or provide a different file specification, 
which normally would include at least one wildcard (? or *).  Hit ENTER 
when you are finished responding to the prompt.  STYLIB then prompts 
you for the directory in which you wish to write the output file, 
suggesting the directory where the input files are found.  Then it 
prompts you for the name (not including wildcards) of the output file, 
which normally would be a new file, although if you wish to overwrite 
an existing file, you can supply its name. 

Once you have provided the necessary paths and file specifications, 
STYLIB opens a window ("Select sources of styles") in which it displays 
all files matching the input file specification (other than the output 
file and files with the extensions EXE and COM, which are unlikely to 
contain styles).  You then select from this list the files of interest.  
To select a single file, move the highlight to its name using the 
cursor arrows and the Page Up, Page Down, Home, and End keys in 
intuitive fashion.  (You can also move the cursor by typing characters 
-- this works much like Name Search in WordPerfect.)  The INS key will 
select the highlighted file, the DEL key will deselect the highlighted 
file, and the SPACE bar will toggle selection (that is, if a file is 
selected and it is highlighted, the SPACE bar will deselect it; if the 
file is not selected, the SPACE bar will select it).  It may be 
convenient to begin by selecting all files.  CTRL-ENTER (or CTRL-J) 
will toggle the selection of all files (that is, if any items are 
selected, it will deselect all of them; if none are selected, it will 
select all of them).  You can also select a continuous range of file 
names by highlighting the first name in the range, hitting the F7 key, 
highlighting the last file name in the range, and hitting F8.  Selected 
files are marked, so you can tell which ones are selected.  You will do 
no damage by selecting more files than really interest you, so it will 
often be convenient simply to select all files. 

Once you have finished selecting files, you must accept your selections 
by hitting the ENTER key.  You can also exit from the file selection 
list by hitting the ESC key, which will select no files and cause the 
program to terminate. 

After the files are selected and the selections accepted, STYLIB opens 
another window in which it displays the names, types (O for Open, P for 
Paired, T for ouTline), and files of all the styles in the selected 
files.  In addition, the style description of the highlighted style is 
displayed at the bottom of the screen.  Select the styles you want to 
include in the output file, using the methods described above for 
selecting files.  (Avoid selecting two styles with the same name -- 
STYLIB will not allow you to include two styles with the same name in 
the output file.)   Once you have selected the styles you want, accept 
your selections (as above).  STYLIB then writes the output file 
containing those styles and gives you the opportunity to create another 
output style library based on the same input files. 

Usage:     STYLIB [/m]

           The option /m tells STYLIB to treat the display as 
           monochrome rather than as color display.  Use this option if 
           you do not like the default color selections. 

Warning:  STYLIB requires a good deal of memory, and is therefore 
likely not to work if, for example, you run it while shelled from 
WordPerfect. 


XII.  WFWP

"WFWP" stands for Word Frequencies in WP5 files.  The program reads a 
WP5 document file and writes a new output file containing a sorted list 
of the unique words in the input file.  Each word in the output file is 
preceded by a count of the number of times it appears in the input 
file.  The counts are separated from the words by a tab (so you can 
easily manipulate or reorder the list in WordPerfect).  At the end of 
the list, the total number of words, the sum of the counts, appears. 

That sounds straightforward, but what it means depends on the 
definitions of "word," "unique," and "sorted."  Some explanation is in 
order. 

A "word" is, basically, a series of letters delimited by non-letters 
(which may include the beginning or end of the document), although 
certain characters other than letters may be part of a word.  A 
"letter" here means (a) any of the ordinary letters of the English 
alphabet (as found in WordPerfect Character Set 0); (b) any of the 
characters in Character Set 1 (Multinational 1), beginning with 
Character Position 25  (by "Character Position" we mean the number of 
the character within the set); and (c) any of the characters in 
Character Set 10 (Cyrillic).  Note that this excludes the Greek letters 
in Character Set 8.  A word may also include hyphens, apostrophes, and 
slashes, but not at the beginning or end of a sequence of letters.  By 
default, a word may also include periods, but not at the beginning or 
end of a sequence of letters. Thus, by default, U.S.A. is a word, but 
it is listed as U.S.A with no closing period.  By default, a word may 
not include digits (i.e., 0-9), but you may choose to treat digits as 
letters (so that, for example, A1 would be a word).  If you do choose 
to treat digits as letters, by default a sequence whose only "letters" 
are actually digits is not treated as a word (so that, for example, 
123.45 would not be a word), but you may choose to treat such sequences 
as words. 

In determining whether words are "unique," WFWP compares them to other 
words, taking into account every character in the word.  However, 
before comparing words, WFWP converts all "letters" to upper case.  
Thus "apple" and "APPLE" are considered to be the same word.  Letters 
in Character Set 0 are converted to upper case in the ordinary manner 
(that is, a-z becomes A-Z).  We do not claim to know the ordinary 
manner of converting to upper case for letters in Character Sets 1 and 
10.  WFWP simply follows this rule to convert letters in these 
character sets to upper case:  if the Character Position is odd, 
subtract one from it. 

The order in which WFWP sorts words may surprise you.  Sorting is based 
on the following rule for comparing any two characters:  if the 
characters are in different Character Sets, the character with the 
lower Character Set digit is higher in the sort ordering; if the 
characters are in the same Character Set, the character with the lower 
Character Position is higher in the sort ordering.  Thus, for example, 
words beginning with the letter Z occur earlier in the sorted WFWP 
output than do any words beginning with accented A's.  You can, of 
course, re-sort the WFWP output, using the sort function in 
WordPerfect. 

There is a limit to the number of unique words that WFWP can handle.  
The exact limit cannot easily be determined.  The program takes about 
75,000 bytes to load.  For each unique word, the program needs an 
additional number of bytes -- roughly speaking, the number of bytes it 
needs for each unique word is 13 plus twice the number of characters in 
the word.  The number of words the program can handle thus depends on 
the amount of memory you have available and the average length of the 
words in the document.  Suppose that you start with 575,000 free bytes 
of memory before loading the program and the average length of a word 
is five characters.  The program should then be able to handle about 
21,000 unique words.  That should be enough for most purposes, but it 
is plainly not enough for a reasonably sized telephone directory.  
There is also a limit on the number of instances of a unique word WFWP 
can count.  That limit is over 67,000, so you should not have any 
problem. 

Usage:     WFWP Infile Outfile [-options]
   
                  Infile is the specification (including path, if 
                  desired) of a WP5 file containing the words to count. 

                  Outfile is the specification (including path, if 
                  desired) of WP50 file with the results.  If a file 
                  with that specification already exists, it will be 
                  overwritten. 
  
                  Options: 
                  D      treat Digits as letters
                  N      If treating digits as letter, treat Numbers as 
                         words even if they include no letters other 
                         than digits 
                  P      Periods are never part of a word (thus U.S.A. 
                         is 3 words (without P, U.S.A. is one word) 

                  Example:

                  WFWP MyText TheList -DP
                  or     WFWP MyText TheList -D -P

                  The frequency of words in MyText is reported in 
                  TheList.  "A1" is one word, "123" is not a word, and 
                  "U.S.A." is 3 words. 


           *     *     *     *     *     *     *     *     *

                              GETTING HELP

Help in using MORE TOOLS is available by mail, telephone, and several 
forms of E-mail.  The best time for telephone calls is 8pm-11pm Eastern 
time.  At other hours, you are likely to reach only an answering 
machine, but we return calls.  E-mail is recommended. 

David Seidman 
Software by Seidman
2737 Devonshire Pl. NW 
Washington, DC 20008
202/462-7381
FAX: 202/462-8601
CompuServe: [70441,2414]
GEnie: D.SEIDMAN

Software by Seidman monitors several networked WordPerfect BBS 
conferences more or less regularly, as well as the WPSG forum on 
CompuServe and the WordPerfect RT on GEnie.  You can leave questions or 
suggestions in any of these places, or you can send E-mail on 
CompuServe or GEnie.  The networks are listed below, along with the BBS 
we usually call for each.  Note that this information can become 
outdated very quickly.  BBSs and networks are not the world's most 
stable entities. 

    Smartnet       (Arlington Software Exchange, 703-532-7143)
    MetroLink/RIME (D.C. Information Exchange, 202-433-6639)
    Fido           (Free Spirit, 301-283-8917)

                          LICENSE INFORMATION


MORE TOOLS is not in the public domain.  Both the collection and the 
individual programs are fully protected by copyright. 

With respect to the shareware distribution, you are granted without 
charge a license which permits (a) use of the programs for a period of 
30 days for evaluation and testing; (b) making copies for distribution 
to others without charge, provided the programs and the accompanying 
documentation are distributed together and without modification; (c) 
posting the programs, together with the accompanying documentation, on 
electronic bulletin board systems.  The permissions granted in this 
paragraph do NOT apply to program and documentation files that are not 
included in the shareware distribution.  In particular, the permissions 
granted in this paragraph do not apply to ADDPRS.EXE, SHOWCODE.EXE, or 
MT.WP5. 

Use after the 30 day evaluation and testing period requires payment of 
a license fee.  For a single copy (plus necessary archival copies), to 
be used on only one computer at a time, the fee is $25.00.  For large 
quantities, discounts and site licenses are available.  Write for 
information.  Any license for which payment is properly made is valid 
for this version of MORE TOOLS and all subsequent versions.  (The 
license fee is subject to increase as of August 1, 1993.) 

What do you get for your license fee?  You get the latest version of 
the all the MORE TOOLS programs, including the programs that are not 
included in the shareware distribution.  You get permission to use the 
programs and the warm feeling that you are not violating the copyright 
laws.  I will send you notification of significant new versions.  And 
if you let me know about any problems you have with the programs, I 
will try to solve them. 

Users groups and other not-for-profit organizations may distribute 
unmodified copies of the shareware distribution of MORE TOOLS for a fee 
to cover duplication and related costs, but not to exceed $6.00.  Your 
payment of such a fee does not eliminate the requirements concerning 
payment of a license fee.  Certain organizations may have been granted 
permission to distribute the program for a fee larger than $6.00, the 
larger fee to include the license fee for a single copy.  If the 
organization from which you received a copy of the program has been 
granted that permission, it should tell you so. 

The United States Department of Justice is granted a license, without 
payment of fee, for all official use of MORE TOOLS. 


                          WARRANTY INFORMATION


These programs are distributed without warranties of any kind, express 
or implied, including, but not limited to, the implied warranties of 
merchantability and fitness for a particular purpose. 

No representation or other affirmation of fact, including but not 
limited to statements regarding suitability for use, or performance of 
the programs, shall be or be deemed a warranty by the licensor for any 
purpose, nor give rise to any liability or obligation of the licensor 
whatever. 

In particular, no statement in program documentation shall be deemed a 
representation or warranty that the programs will perform in any 
particular manner, or perform in any manner whatsoever, or that the 
programs are suitable for any particular use or any use at all. 

                    OTHER UTILITIES FOR WORDPERFECT
                                  FROM
                          SOFTWARE BY SEIDMAN


                                WPTOOLS

WPTOOLS is a collection of 14 shareware utilities for use with WPerf5, 
with an additional six provided to registered users.  These utilities 
are DOS programs intended for use with WPerf5 for DOS, but most of them 
are also useful with WPerf5 for Windows.  At this writing, the latest 
version of WPTOOLS is 5.1b.  WPTOOLS is available on many BBSs, on 
CompuServe in the WPSGA forum, and on GEnie in the WordPerfect RT.  Or 
you can order it for $25 from Software by Seidman, plus $2.00 for 
shipping and handling.  For your convenience, an order form appears 
below. 


Here are brief descriptions of all 20 WPTOOLS programs:



COMMENTS         Reads one or more WP5 document files, extracts the 
comments, and writes them to a WPerf file or to standard output. 

DISKFONT         Searches a directory for specified soft font files and, 
optionally, lists descriptive information about the fonts it finds. 

ENDFOOT          Converts all footnotes (endnotes) to endnotes 
(footnotes), changing automatic references appropriately. 

FIXPRE           Removes deleted (and optionally other) data packets 
from the prefix of WP5 document files and removes deleted data packets 
from WP5 (and other WPCorp) setup files (e.g., WP{WP}.SET).  For 
document files, this will often facilitate changing the printer driver 
used with the file and shrink the file.  Setup files grow as you modify 
your setup; FIXPRE shrinks them again.  And FIXPRE sometimes helps when 
WP5 just seems to be acting strangely.  Optionally deletes styles, 
initial codes, document summaries, and graphics. 

FONTFILE         Lists the file names of the soft font files specified 
in a PRS file. 

FONTLIST         Lists the names of the fonts used in a WP5 document 
and the PRS file the document calls for. 

IS5XDOC          Identifies WP5 document files.  Useful in batch files. 

LISTMACS         Lists the names and descriptions of macros in WPM and 
WPK files (and the keys for WPK macros), optionally sorted.  Also works 
with PP5 and DR macro and keyboard files. 

MAKETABS         Converts an ASCII text file to a WP50 document, 
replacing spaces by tabs.  Used with columnar material. 

MASTER           Reads a WP5 master document and lists the unexpanded 
subdocuments it calls for. 

MERGESUM         Creates (or adds to) a WP50 secondary merge file, each 
record containing the information from a WP5 document summary (or, 
optionally, the first 400 or so characters of a document if no summary 
was created), along with information from the DOS file directory.  In 
effect, creates a database of document summaries that can be processed 
using the WP5 Merge and Sort functions, or WordPerfect's Notebook 
program. 

PRINTIT          Paginates and formats an ASCII text file for printing. 

PRSFONTS         Lists and optionally numbers the names of the fonts 
available in a WP5 PRS file. 

STYLIST          Lists names and descriptions of styles, optionally 
sorted. 

STYLEUSE         Lists the styles used in the text of a document.  
Lists the styles found in the prefix but not used in the document.  
Optionally deletes unused (or all) styles from the prefix.  Optionally 
deletes style on and off codes from the text of a document, leaving the 
codes added by the style. 

TARGETS          Lists the automatic reference targets and references 
in a WP5 document file, indicating unreferenced targets and references 
to nonexistent targets. 

WHATPTRS         Lists the printers described in ALL files, optionally 
sorted by printer name. 

WP5LOOK          Displays one or more WP5 document files specified on 
the command line, piped to the program, or entered in response to 
prompts.  Particularly because files can be specified with wildcards, 
WP5LOOK may be more convenient than WP5 itself for browsing through WP5 
documents.  Also displays non-WP5 files. 

WPGSIZE          Extracts and lists the dimensions of the image 
coordinate space for WPG files.  Useful in getting the aspect ratio 
right. 

WPSNOOP          Determines, in greater or lesser detail, the file type 
of many, but not all, files associated with recent WordPerfect 
Corporation products.  For WP5 document files, lists the document 
summary and the PRS file.  For macro files, lists the description.  
Optionally reveals the structure of WP5 document file prefixes and of 
set file prefixes. 

                    *     *     *     *     *     *

                WPMD -- The File Doctor for WordPerfect


WPMD fixes sick or broken WordPerfect Version 5.x files.  There are 
many different symptoms of a sick or broken file.  Sometimes some or 
all of the text disappears, although the file size indicates that the 
text should still be there.  Sometimes WPerf5 fails to recognize the 
file as a WPerf5 document file.  Sometimes WPerf5 says there is not 
enough room on the WP disk to retrieve the file, even though there is 
lots of room on the disk.  And sometimes other things go wrong.  WPMD 
can usually cure the file, creating a WPerf5 file requiring only minor 
cleanup. 

                    *     *     *     *     *     *

                                MacroAid

MacroAid is a collection of DOS utility programs for use with WPCorp 
program macros.  The programs work with macros for WordPerfect 5 (but 
not WordPerfect for Windows), PlanPerfect 5, DrawPerfect 1, ED 3, 
LetterPerfect 1, and Shell 3; they may work with later versions and 
other programs as well.  (They do not work with macros for the Windows 
version of WordPerfect.) Several of these programs may be helpful to 
the casual user of macros, but MacroAid is primarily intended for the 
serious macro writer.  Writing WPCorp macros is computer programming, 
and  MacroAid is a set of programmer's tools. 



MacArgs

Changes assignments to macro variables with DOS commands.  The DOS 
command 

                 MacArgs MyMacro.wpm -0Newstring -1AnotherString

changes

                 {ASSIGN}0~OldString~{ASSIGN}1~stuff~

to

                 {ASSIGN}0~NewString~{ASSIGN}1~AnotherString~

in MyMacro.  Example uses: (1) write self-modifying macros that store 
new information for later use, as for macros to number invoices 
consecutively; (2) customize complex macros for different users. 


MacAscii

Converts macros to ASCII text files or WordPerfect documents so that 
they can be edited in WordPerfect or an ASCII text editor.  MacAscii 
also converts the ASCII text file or WordPerfect document back to a 
macro.  Allows editing of macros too big for the built-in macro editor; 
editing of SH macros without WPCorp's ED editor; easy printing of 
macros; use of powerful text processing and editing tools readily 
available for ASCII text files. 


MacCalls

Lists the files required by {CHAIN}, {NEST}, and {SHELL MACRO} commands 
in a macro and the files required by these files. 


MacCrush

Compresses macros by eliminating comments and the tabs and spaces used 
only for formatting; replaces variable names and labels with two-
character names and labels.  Makes your macros load and, depending on 
which release of WPCorp's programs you are using, execute faster. 


MacChang

Changes the product type and version numbers stored within macros.  
Changing your carefully developed WordPerfect macros to PlanPerfect 
macros, for example, sometimes results in a working PlanPerfect macro 
and should always at least make the conversion process easier. 


MacFind

Searches for text strings, macro commands, and key commands in macros 
specified with wildcard file specifications. 


MacRef

Provides a cross-reference listing of a macro -- a file with a line-
numbered version of the text of the macro and a listing of each macro 
command, key command, variable name, shell variable name, label, and 
called file, with the line numbers on which each appears.  An essential 
tool for the development and debugging of complex macros. 

These programs run from the DOS command line, but MacroAid also 
includes MacShell, a shell program that allows you to use the rest of 
the MacroAid programs without worrying about the DOS command line. 

                    *     *     *     *     *     *

                                INVOICE


David Seidman
Software by Seidman
2737 Devonshire Pl. NW
Washington, DC 20008

                                                     DATE:

SOLD TO:

__________________________
__________________________
__________________________


   Ŀ
    Description                               Price              
                                                                 
   Ĵ
                                                                 
    License for MORE TOOLS                     $   25.00         
                                                                 
    additional licenses @ $25.00                _____.__         
                                                                 
                                                                 
                                                                 
                                                                 
   

                                    Total:       $_____.__
     D.C. Residents add 6% D.C. Sales Tax:          ___.__

                             Total Charge:       $_____.__


Make checks payable to Software by Seidman.

For Credit Card orders, Circle one:   VISA   MasterCard  Diners Club

Card Number:     __________________________  Exp. Date: _____________

Name on card:    __________________________________________________

Signature:       __________________________________________________

------------------------------------------------------------


                               ORDER FORM


David Seidman
Software by Seidman
2737 Devonshire Pl. NW
Washington, DC 20008

                                                     DATE:

SHIP TO:

__________________________
__________________________
_________________________


Ŀ
 Description                                   Price              
                                                                  
Ĵ
                                                                  
 __ Licensed copies of WPTOOLS @$25.00          $ _____.__        
                                                                  
 __ Licensed copies of MacroAid  @$25.00          _____.__        
                                                                  
 __ Licensed copies of WPMD @$35.00               _____.__        
                                                                  
                                                                  


                                      Total:       $_____.__
       D.C. Residents add 6% D.C. Sales Tax:          ___.__
                      Shipping and handling:            2.00

                               Total Charge:       $_____.__


Make checks payable to Software by Seidman.

For Credit Card orders, Circle one:   VISA   MasterCard  Diners Club

Card Number:     __________________________  Exp. Date: _____________

Name on card:    __________________________________________________

Signature:       __________________________________________________

------------------------------------------------------------




