home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.wwiv.com
/
ftp.wwiv.com.zip
/
ftp.wwiv.com
/
pub
/
BBS
/
MPM1_25.ZIP
/
maxfmpm.INF
(
.txt
)
< prev
next >
Wrap
OS/2 Help File
|
1994-12-27
|
87KB
|
2,693 lines
ΓòÉΓòÉΓòÉ 1. OverView ΓòÉΓòÉΓòÉ
MaxFile/PM - Version 1.25
A FILES.BBS Manager for Presentation Manager
Copyright (C) 1993,1994 by Craig Morrison
All Rights Reserved.
Portions of the header files used in compilation are:
Copyright (C) 1992 by Scott Dudley
Copyright (C) 1993 by Aki Antman
Copyright (C) 1994 by Marco Maccaferri
MSGAPI portions of the Announce Files option are:
Copyright 1991,94 by Scott J. Dudley. All rights reserved.
"Squish" and "Maximus" are trademarks of Lanius Corporation.
From the Development Team of:
Craig Morrison - MaxFile/PM Development
1:201/60@fidonet.org
Ronald Van Iwaarden - MaxFile/2 Development
1:104/338@fidonet.org
ΓòÉΓòÉΓòÉ 1.1. Special Thanks ΓòÉΓòÉΓòÉ
Mark Kimes
For putting up with my never ending questions and general bull-headedness
when it comes to programming under OS/2. (Very handy guy to talk to when it
comes to programming in general!)
Elliott Goodman
Beta Tester
ANNOUNCE.CMD Author
Philip Perlman
Beta Tester
Ronald Van Iwaarden
Cohort in crime and Beta Tester
ΓòÉΓòÉΓòÉ 1.2. OS/2 Version Information ΓòÉΓòÉΓòÉ
MaxFile/PM should operate normally under all versions of OS/2 from 2.xx and
higher.
ΓòÉΓòÉΓòÉ 1.3. Foreword ΓòÉΓòÉΓòÉ
MaxFile/PM is a FILES.BBS manager that runs under Presentation Manager. While
it was written with the Maximus-CBCS in mind, any BBS software package that
uses the standard FILES.BBS format is supported.
A short list of the features are:
1. Drag and Drop between file areas
2. FILE_ID.DIZ import
3. Rearchiving files
4. Sorting by:
Name
Date
Size
Description
5. In-place editing of file descriptions
6. Renaming files
7. Full REXX Macro Integration
ΓòÉΓòÉΓòÉ 1.4. Support ΓòÉΓòÉΓòÉ
If you need to contact me about the program I can be reached in a number of
places. NetMail will get you the fastest response, but I read the OS2PRODSUP,
OS2BBS and MUFFIN conferences everyday and intend on answering any questions
posted there. There is also a local conference on my BBS called MFILEPMSUP that
you are more than welcome to poll for. Contact either myself, Elliott Goodman
at 1:102/1319 or Pete Norloff at 1:109/347 for more information about getting
hooked up.
Due to the large cost in crashing netmail all over the world I will only be
sending replies out crash to registered users who report a problem. Sorry
folks, but most of my income is generated by these projects. If they don't get
registered I can't provide free support. I will respond to everyone who sends
netmail, but it will be routed netmail in most cases.
While I will answer questions from those of you who have not registered the
program, you will get a much quicker response from me if you have.
I *will* support MaxFile/PM, all you need to do is ask.
ΓòÉΓòÉΓòÉ 2. Registration ΓòÉΓòÉΓòÉ
I'm going to keep this short, sweet and to the point. It is $25 to register the
program. You may use this version of MaxFile/PM for 45 days from the day you
first run it. After the 45 day evaluation period it will no longer operate.
MaxFile/PM is not freeware, it is shareware, you are expected to register the
program if you continue using it.
Please print out and read the REGISTER.FRM file that is included in the archive
for more information on registering the program.
Registration provides me with the incentive to keep working on the program,
it's all up to you folks that use the program. I treat registered users VERY
well.
'Nuff said...
ΓòÉΓòÉΓòÉ 3. License Information ΓòÉΓòÉΓòÉ
MaxFile/PM LICENSE FOR USE AND DISTRIBUTION
MaxFile/PM is not public domain software, nor is it free
software.
MaxFile/PM is copyright (C) 1993,94 by Craig A. Morrison.
All Rights Reserved.
Non-registered users are granted a limited license to use
MaxFile/PM on a trial basis, for a period not to exceed 45 days,
for the purpose of determining whether MaxFile/PM is suitable for
their needs. Use of MaxFile/PM, except for this limited purpose,
requires registration. Use of non-registered copies of
MaxFile/PM by any person, business, corporation, governmental
agency or other entity institution is strictly forbidden.
Registration grants a user the right to use MaxFile/PM only on
a single computer; a registered user may use the program on a
different computer, but may not use the program on more than one
computer at the same time.
No one may modify MaxFile/PM in any way, including but not
limited to decompiling, disassembling or otherwise reverse
engineering the program.
All users are granted a limited license to copy MaxFile/PM
only for the trial use of others subject to the above
limitations, and also the following:
MaxFile/PM must be copied in unmodified form, complete
with all contents of the original distribution archive.
Bulletin board system operators (Sysops) are granted
permission to convert the distribution archive to another
format so long as the complete contents of the original
archive are transferred in whole.
No fee, charge or other compensation may be accepted or
requested by any licensee.
MaxFile/PM may not be distributed in conjunction with any
other product without the prior written consent of the
author.
Operators of electronic bulletin board systems may post
MaxFile/PM for downloading by their users only as long as the
above conditions are met.
Distributors of public domain or user supported software may
distribute copies of MaxFile/PM subject to the above
conditions.
ΓòÉΓòÉΓòÉ 4. Before You Start - READ THIS! ΓòÉΓòÉΓòÉ
The default installation of OS/2 defines Mouse Button 1 as the left button and
Mouse Button 2 as the right button. Please keep this in mind as you read
through this document if you have redefined your mouse buttons.
A word to the wise here..
BACKUP *BEFORE* USING MAXFILE/PM !
Here comes the standard disclaimer...I don't promise that MaxFile/PM will do
anything for you except take up space on your hard drive. While I am fairly
certain I have got all the nasties out of it, there is a chance that I may have
missed something. So please be safe and backup prior to using the program.
Suffice it to say, you have been warned..
See also: OS/2 Version Information
ΓòÉΓòÉΓòÉ 5. Configuring MaxFile/PM ΓòÉΓòÉΓòÉ
To configure MaxFile/PM for use, simply start MaxFile/PM by typing MAXFMPM and
pressing ENTER at an OS/2 Command Prompt. The MaxFile/PM Settings notebook will
be presented for you, so that you can enter the vital information about your
system and BBS setup.
The Settings Notebook is where you configure MaxFile/PM so that it fits your
particular system. There are a lot of options here, some required, some not,
all depending on whether you want to be able to use that particular feature or
not. There are 4 major categories of information here; Main, Archivers, Viewers
and Other. Some of the categories have more than one page devoted to them. A
detailed discussion of the categories follows.
ΓòÉΓòÉΓòÉ 5.1. Settings/Main - Basic information ΓòÉΓòÉΓòÉ
The Main section of the notebook consists of three pages that contain the
information that tells MaxFile/PM the basics about your BBS configuration and
how to handle certain options.
ΓòÉΓòÉΓòÉ 5.1.1. Main - Page 1 ΓòÉΓòÉΓòÉ
This sections covers Main Page 1 of the settings notebook. It contains the
basics of your BBS configuration.
ΓòÉΓòÉΓòÉ 5.1.1.1. Registration Key ΓòÉΓòÉΓòÉ
Your registration key, if you have one. If not leave it blank.
Enter the registration key exactly the same as it is given to you.
ΓòÉΓòÉΓòÉ 5.1.1.2. Registration Name ΓòÉΓòÉΓòÉ
Your name, this works in conjunction with the Registration Key field.
MaxFile/PM hashes your name against your Key to see if you really are a
registered user.
The Registration XXXX fields when filled out properly, stop the usage timer.
ΓòÉΓòÉΓòÉ 5.1.1.3. BBS Package ΓòÉΓòÉΓòÉ
Four choices here:
Maximus
Lora
SuperBBS
Generic
Simply select one from the drop down list box. Or type in one of the names in
the list above.
ΓòÉΓòÉΓòÉ 5.1.1.4. BBS Directory ΓòÉΓòÉΓòÉ
This is the directory that your BBS software resides in. Enter the FULL path
specification.
ΓòÉΓòÉΓòÉ 5.1.1.5. Temp Directory ΓòÉΓòÉΓòÉ
This is the FULL path to an EXISTING directory that MaxFile/PM can use to store
temporary files in and use for rearchiving files. Don't use this directory for
ANYTHING else while MaxFile/PM is running. EVERYTHING, INCLUDING ANY
SUB-DIRECTORIES WILL BE REMOVED BY Maxfile/PM IF YOU REARCHIVE ANY FILES.
ΓòÉΓòÉΓòÉ 5.1.1.6. File Area Data ΓòÉΓòÉΓòÉ
This is the FULL path and filename of the file that contains your file area
definitions. For Maximus 2.xx users this will be AREA.DAT, for Lora users this
will SYSFILE.DAT, for SuperBBS users this will be FLSEARCH.BBS, for those using
the Generic setup this should be the name of the text file you created
according the guidelines in the Generic File Area Definitions section.
ΓòÉΓòÉΓòÉ 5.1.2. Main - Page 2 ΓòÉΓòÉΓòÉ
This sections covers Main Page 2. This page contains the settings that control
the overall operation of MaxFile/PM. Such as window defaults, etc..
ΓòÉΓòÉΓòÉ 5.1.2.1. AutoSave ΓòÉΓòÉΓòÉ
This tells MaxFile/PM whether or not you want your FILES.BBS files
automatically saved when you close a file area. If you check this option
MaxFile/PM will save the FILES.BBS for you as soon as you close the window
associated with a FILES.BBS, if not, it will prompt you and ask if you want the
information saved.
ΓòÉΓòÉΓòÉ 5.1.2.2. Button Bar ΓòÉΓòÉΓòÉ
This check box tells MaxFile/PM whether or not you want the button bar turned
on in your FILES.BBS windows.
ΓòÉΓòÉΓòÉ 5.1.2.3. Create File Summaries ΓòÉΓòÉΓòÉ
When checked MaxFile/PM will create a summary of the file statistics for a file
area when the FILES.BBS for the area is saved. The name of the file will the
same as the file list (FILES.BBS in most cases) with the extension removed and
replaced with SUM. It will be saved into the same directory as the file list.
ΓòÉΓòÉΓòÉ 5.1.2.4. Header Size ΓòÉΓòÉΓòÉ
For those of you using programs such as DownSort, this option will allow you to
tell MaxFile/PM how many lines at the beginning of your FILES.BBS to skip when
reading them in. The headers ARE preserved when MaxFile/PM writes out a new
FILES.BBS.
ΓòÉΓòÉΓòÉ 5.1.2.5. Dupe Length ΓòÉΓòÉΓòÉ
Tells MaxFile/PM how many characters to look at in a filename when performing a
search for duplicates.
ΓòÉΓòÉΓòÉ 5.1.2.6. ED Marker ΓòÉΓòÉΓòÉ
For those BBS packages that support extended descriptions this option will come
in handy. Here you tell MaxFile/PM what character is associated with extended
descriptions for your BBS Package. This character can not be a space or a dash.
Defining this character causes a few changes in the way MaxFile/PM handles your
file descriptions. When this option is used, file descriptions are allowed to
be up to 1024 characters in length and nothing is stripped from FILE_ID.DIZ
descriptions read in from archives. MaxFile/PM does not insert this character
in multiple line descriptions for you, you need to do this. However, when you
use Format Description MaxFile/PM will take care of putting this character
where it belongs.
ΓòÉΓòÉΓòÉ 5.1.2.7. FileList Margin ΓòÉΓòÉΓòÉ
This setting causes a change in the file description handling similar to the ED
Marker. NOTE: If an ED Marker is defined, FileList Margin is IGNORED. However,
if an ED Marker is NOT defined and FileList Margin is greater than zero; File
descriptions are limited to 1024 characters, FILE_ID.DIZ's are imported as is,
when a FILES.BBS is written _FileList Margin_ spaces are added to the beginning
of each extra line in the file description so that they line up in a file
listing.
If an ED Marker is not defined and this is set to zero, file descriptions are
limited to 255 characters, any non-printable ASCII characters (0-31) and
high-bit ASCII characters are stripped from the file description.
ΓòÉΓòÉΓòÉ 5.1.2.8. File Database Utility ΓòÉΓòÉΓòÉ
The next field is for the filename of your File Database Utility. For Maximus
this will be either FB.EXE or FBP.EXE. On my system I have this set to FBP,
since the utility is in my path. For Lora-BBS users, this will be FILEIDX.EXE.
Please see the Known Problems section at the end of this document for more
information about FILEIDX.EXE. For SuperBBS users, I don't have a clue. If
someone would fill me in on this one I'd really appreciate it! This entry is
only required if you want MaxFile/PM to run the utility for you.
ΓòÉΓòÉΓòÉ 5.1.2.9. Run FD Utility ΓòÉΓòÉΓòÉ
The options for Run FD Utility determine when and if the File Database utility
will get run. There are three; Always, Prompt and Never. Always will run your
file database utility every time you exit MaxFile/PM. If no changes have been
made, it will prompt you before running it. Prompt will ask you if you wish to
run it. Do I need to explain Never? :-}
ΓòÉΓòÉΓòÉ 5.1.2.10. Display ΓòÉΓòÉΓòÉ
The Display options control whether or not the file size and date information
gets displayed for your files in the FILES.BBS windows. Simply check or uncheck
the check boxes to set your preferences.
ΓòÉΓòÉΓòÉ 5.1.3. Main - Page 3 ΓòÉΓòÉΓòÉ
This section covers a bit more of the basic information..
ΓòÉΓòÉΓòÉ 5.1.3.1. Extensions edit control ΓòÉΓòÉΓòÉ
This is a simple edit control that you use to enter in the extensions that you
want add to the list box to the right. You may enter up to 3 characters for
each extension, wild cards are allowed. These extensions are used while
adopting files, anything not defined here will be ignored. These extensions are
use when you perform an Adopt from the FILES.BBS window context menu or you
have Auto Adopt turned on.
ΓòÉΓòÉΓòÉ 5.1.3.2. Add button ΓòÉΓòÉΓòÉ
After entering an extension in the edit control click this button to add it to
the list of extensions in the list box.
ΓòÉΓòÉΓòÉ 5.1.3.3. Remove button ΓòÉΓòÉΓòÉ
This button allows you to remove an entry from the list box. Simply highlight
the entry you want to remove from the list box and click here.
ΓòÉΓòÉΓòÉ 5.1.3.4. Auto Adopt ΓòÉΓòÉΓòÉ
This check box tells MaxFile/PM if you want it to automatically perform an
Adopt when a file area is first opened. This only works if you have actually
added at least one extension for MaxFile/PM to scan for.
ΓòÉΓòÉΓòÉ 5.1.3.5. Download counters ΓòÉΓòÉΓòÉ
If you want download counters added to the description of files that get
adopted, check this box.
The next field is an edit control that allows you to configure the text string
you want to use for a download counter. You may enter up to 9 characters.
ΓòÉΓòÉΓòÉ 5.1.3.6. Default Description ΓòÉΓòÉΓòÉ
You may enter up to 80 characters for a default description. This text will get
used any time you Insert, Adopt or drop files from an outside source into a
window in MaxFile/PM and those files meet the following criteria: 1, they are
not an archive or 2, they are an archive and the archive does not contain a
FILE_ID.DIZ description inside of it.
ΓòÉΓòÉΓòÉ 5.1.3.7. Add (x/xx) counter on description copy ΓòÉΓòÉΓòÉ
This option allows you to tell MaxFile/PM whether or not you want the (xx of
xx) counters appended onto the end of descriptions when you perform a
"Description->Copy" in a FILES.BBS window. Check it if you want them, unchecked
if you don't. The default is for them to be added.
ΓòÉΓòÉΓòÉ 5.1.3.8. Remove Items ΓòÉΓòÉΓòÉ
Three choices here:
Prompt
Entries
Entries and Files
This configuration option affects the default action of "Remove Items" inside a
FILES.BBS window. Prompt asks you each time. Entries removes just the entries.
Entries and Files removes the entries and deletes the files associated with
those entries.
ΓòÉΓòÉΓòÉ 5.2. Settings/Archivers - Archiver Information ΓòÉΓòÉΓòÉ
This section causes the most confusion when configuring MaxFile/PM. The best I
can do to help is to tell you what I use here on my system to give you a few
hints.
There are eight pages, one each for; Zip, Arj, Lzh, Arc, HA, RAR, UC2 and ZOO.
I don't use HA, RAR or UC2 so you are on your own with these archivers.
You will need to enter the executable name and the appropriate switches for
each of the actions for each archiver. You should include any switches
necessary for recursing sub-directories and if you want to make MaxFile/PM's
job a little easier, any switches to tell the archivers to 'move' files into
archives when adding to or creating a new archive. Below I will give a short
description of each entry and the settings for the archivers I use. You will
have MUCH better success with OS/2 based archivers.
NOTE: Each of the archivers you use must be able to accept filenames on the
command line other than just the archive name. Some versions of UNARJ do not
allow you to do this. F'REQ GNUNARJ.* from me if you need an updated version
that allows filenames.
I also believe I have gotten the DOS kludge worked around in the code. So you
should be able to just define your DOS archivers just like OS/2 based
archivers, I.E, PKUNZIP -v, for listing an archive. The settings for the DOS
archivers below worked for me for what little time I spent with them.
ΓòÉΓòÉΓòÉ 5.2.1. Extract ΓòÉΓòÉΓòÉ
This entry should contain the command and switches necessary to extract a file
from an archive.
ZIP unzip -xo -U -C
ARJ unarj e
ARJ ARJ x -y
LZH lh x /o
ARC arc x
RAR rar -o+ -y
HA ha ey
UC2 uc2 ESF
ZOO zoo xO
ΓòÉΓòÉΓòÉ 5.2.2. Add ΓòÉΓòÉΓòÉ
This entry should contain the command and switches necessary to add files to an
archive.
ZIP zip -9 -r
ARJ ARJ a -r -y
LZH lh a /o
ARC arc a
RAR RAR a -r -y -ep1
HA ha a12rd
UC2 UC2 uc ASF
ZOO zoo ah
ΓòÉΓòÉΓòÉ 5.2.3. List ΓòÉΓòÉΓòÉ
This entry should contain the command and switches necessary to list the files
in an archive to standard output.
ZIP unzip -v
ARJ unarj l
ARJ ARJ v -y
LZH lh l /o
ARC arc l
RAR RAR v -y
HA HA l
UC2 UC2 VS
ZOO zoo L
ΓòÉΓòÉΓòÉ 5.2.4. Test ΓòÉΓòÉΓòÉ
This entry should contain the command and switches necessary to test the
integrity of an archive with the output going to standard output.
ZIP unzip -t
ARJ unarj t
ARJ arj t -y
LZH lh t /o
ARC arc v
RAR RAR t -std -y
HA HA t
UC2 UC2 TF
ZOO zoo xN
ΓòÉΓòÉΓòÉ 5.3. Settings/Viewers - File Viewers ΓòÉΓòÉΓòÉ
Here you can define viewers for use with the View function in a FILES.BBS
window. Enter the filename and any necessary switches for each of the programs.
There are entries for the following file types:
GIF
PCX
JPG
TIF
BMP
Other
The 'Other' entry catches anything that is not an archive, GIF, PCX, JPG, TIF
or BMP file. I.E, text files.
ΓòÉΓòÉΓòÉ 5.4. Settings/Other - Other Programs. ΓòÉΓòÉΓòÉ
This section covers those items I just couldn't figure out where else to put.
ΓòÉΓòÉΓòÉ 5.4.1. Virus Scanner ΓòÉΓòÉΓòÉ
This should be the name of the program to scan files for viruses, make sure to
include any necessary switches.
NOTE: MaxFile/PM does NOT extract files from the archives. You will need to do
this, or use a utility that can do it for you.
ΓòÉΓòÉΓòÉ 5.4.2. Editor ΓòÉΓòÉΓòÉ
Here you can define a text editor for editing text based files. Currently this
is only used for editing REXX macro scripts.
ΓòÉΓòÉΓòÉ 5.4.3. Shift F<xx> ΓòÉΓòÉΓòÉ
Five entries here, one each for:
Shift F6
Shift F7
Shift F8
Shift F9
Shift F10
These five entries are for things I may have overlooked or for some special
processing that you would like to do to a file. Enter the program name and any
switches they need. When in a FILES.BBS window and you press one of the above
keystrokes, the appropriate entry will get started with one of the selected
files as a parameter on its command line, this will continue one file at a time
until all of the selected files have been processed.
ΓòÉΓòÉΓòÉ 5.5. Generic File Area Definitions ΓòÉΓòÉΓòÉ
To provide support for any BBS system that uses the standard FILES.BBS format
for their file listings I have come up with a very simple text file format that
will allow you to tell MaxFile/PM how your file areas are defined.
The file is made up of a verb that tells MaxFile/PM how many areas it can
expect to find in the text file. Each successive line after that verb defines
the file areas themselves. A sample file is shown below:
----------------------------- AREAS.CFG sample --------------------------------
AreaCount 5
0 d:\max\file\uncheck d:\max\file\uncheck\files.bbs Unchecked Uploads
1 d:\max\file\max d:\max\file\max\files.bbs BBS Stuff
2 d:\max\file\dos\games d:\max\file\dos\games\files.bbs Dos Games
3 d:\max\file\os2\util d:\max\file\os2\util\files.bbs OS/2 Utilities
4 d:\max\file\os2\apps d:\max\file\os2\apps\files.bbs OS/2 Applications
-------------------------------------------------------------------------------
The 'AreaCount' keyword tells MaxFile/PM how many area definitions it can
expect to find in the file. The AreaCount keyword must come BEFORE the area
definition lines.
The format for each area definition line is:
<area tag> <file path> <list name> <area description>
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
<area tag> Is a short name to identify the file area.
<file path> Is the path to the files.
<list name> Is the full drive:\path and filename of the
FILES.BBS for the area.
<area description> Is a short description of the area.
ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇ
You can name this file what ever you wish, just make sure you specify the name
of this file for the File Area Data option in the Settings notebook and make
sure the BBS Package is set to 'Generic'.
ΓòÉΓòÉΓòÉ 6. Using MaxFile/PM ΓòÉΓòÉΓòÉ
When MaxFile/PM first comes up a window will be displayed that contains all of
your file areas. I will be referring to this window by the term File Area
Window throughout the rest of this document.
When you open up a file area, a window that is very similar in appearance to
the File Area window will appear. This window will contain all the files listed
in the FILES.BBS for that area. These windows will be referred to as FILES.BBS
Windows from here on out.
ΓòÉΓòÉΓòÉ 6.1. Selecting Items ΓòÉΓòÉΓòÉ
Perhaps the most confusing part of working in a window is selecting or
deselecting items. I wrote the program and I still have to think about it.
Basically it works like this; Clicking mouse button 1 on an item selects it and
clears the selection from any other items in the window. To select multiple
items in the window, press mouse button 1 on the first item you want selected
and hold it down while you drag the mouse cursor. This allows you to select a
contiguous range of items.
If you want to select multiple items and they aren't adjacent to each other,
hold down the CTRL key while you click mouse button 1 on each item. If the item
is not selected it will become selected, if the item is already selected the
selection is cleared for that item.
Another technique to select items uses a combination of the CTRL and SHIFT keys
along with mouse button one. The SHIFT key when used in conjunction with mouse
button 1 will select/deselect all items between the first marked item and the
item SHIFT-clicked on. An example might help:
COMMENT
FILE1 <-- click mouse button one here
FILE2
FILE3
FILE4
FILE5 <-- SHIFT-click mouse button one here
COMMENT
FILE6 <-- CTRL-click mouse button one here
FILE7
FILE8
FILE9
FILE10
FILE11
FILE12 <-- CTRL-SHIFT-click mouse button one here
With no items selected, the above actions would select two non-contiguous
blocks of files; FILE1-FILE5 and FILE6-FILE12.
ΓòÉΓòÉΓòÉ 6.2. Drag and Drop/Moving Files ΓòÉΓòÉΓòÉ
* THIS IS HOW YOU MOVE FILES BETWEEN FILE AREAS *
Remember, MaxFile/PM is a Workplace Shell and Presentation Manager friendly
program. The basic operations of changing, editing and moving objects work the
same way.
A drag operation is started by pressing mouse button 2 down and dragging the
mouse cursor. The operation is considered complete when you release mouse
button 2. Should you wish to abort the drag, press the ESC key on your
keyboard.
When dragging files between windows in MaxFile/PM, holding down the CTRL key
will cause the objects to be copied instead of moved. This works for both files
and comments.
You will need to make sure that both the source and destination windows are
visible on your display.
You can drag files from anywhere on your system and drop them either on a
FILES.BBS window or onto the File Area window. When dropping on an open
FILES.BBS window, the files are inserted into the FILES.BBS at the point at
which they were dropped. When dropping on the File Area window, the files are
inserted at the end of the FILES.BBS for the area they are dropped on.
You can also rearrange the items in a FILES.BBS window by selecting them, then
dragging them and dropping them where you want them to be.
Many of you have asked about this one...To delete one or more items from a
FILES.BBS window; highlight the items you want deleted, then drag them to the
shredder object and delete them. Or, alternatively you can use the Remove Items
option on the context menu.
ΓòÉΓòÉΓòÉ 6.3. File Area Window ΓòÉΓòÉΓòÉ
The File Area window serves two basic purposes. First, it allows you to open
FILES.BBS Windows and second, it also serves as a dropping point for files so
that you can quickly move files to another file area without having to open the
file area.
ΓòÉΓòÉΓòÉ 6.3.1. File Area Window Context Menu ΓòÉΓòÉΓòÉ
The File Area Window Context Menu is where you control the overall operations
of MaxFile/PM. A somewhat detailed explanation of each menu item follows.
ΓòÉΓòÉΓòÉ 6.3.1.1. Open... ΓòÉΓòÉΓòÉ
This menu item allows you to open the highlighted file area(s).
The various ways of opening a file area are:
1. Highlighting the area you want to open and pressing enter.
2. Double-clicking mouse button 1 on a file area.
If the file area is already open it will be brought into view, even if it is
minimized to the Minimized Window Viewer folder.
ΓòÉΓòÉΓòÉ 6.3.1.2. Area Sort ΓòÉΓòÉΓòÉ
Three options here:
Tag
Description
Files Dir
These options sort the File Area Window listing by the appropriate field in
ascending order.
ΓòÉΓòÉΓòÉ 6.3.1.3. Check for Duplicates ΓòÉΓòÉΓòÉ
To check your file areas for duplicate files choose this menu item after
selecting the area(s) you want MaxFile/PM to check against all of your file
areas. Please note that the scan performed when checking for duplicates does
not involve the FILES.BBS files for the areas scanned, it looks at the contents
of the download directory for each area. So all duplicates will be found
regardless of whether there is a FILES.BBS entry for them or not. However, the
files searched for come directly from the FILES.BBS files of the areas selected
in the File Area window. So make sure if you have a FILES.BBS window open for
one of the areas you will be checking for duplicates from, that you have saved
any changes made in that window.
The File Area window will be locked open until you close the DupeCheck Results
dialog box. This dialog will appear as soon as the file scanning is complete.
Inside this dialog you will see a listing of all the files found. To open the
file area associated with a file, simply double-click on its entry. If you
decide that you want to delete the file from this dialog, highlight the entry
and click the delete button.
ΓòÉΓòÉΓòÉ 6.3.1.4. Search... ΓòÉΓòÉΓòÉ
This function is very similar to the Dupe Checker option, with the exception
that instead of checking for duplicate files you can enter a string of text
that MaxFile/PM will search for in each of the FILES.BBS files for each of the
selected areas.
First select the areas that you want to search, then bring up the context menu
and select 'Search...' A dialog box will come up asking you what to search for.
You may enter up to 80 characters. Click ok to begin the search.
The search is not case nor position sensitive. Both the filename and
description are searched for the text, if the text appears in one of these two
places a 'hit' will occur. The dialog box that comes up after the search is
complete works exactly the same as the dialog box showing the results of the
Dupe Checker option.
ΓòÉΓòÉΓòÉ 6.3.1.5. Find Area... ΓòÉΓòÉΓòÉ
This function will allow you to enter an area tag, MaxFile/PM will find the
area and then scroll it into view for you.
ΓòÉΓòÉΓòÉ 6.3.1.6. All Files List ΓòÉΓòÉΓòÉ
Probably the most requested feature had to be the ability to generate a list of
available files from the FILES.BBS listings. MaxFile/PM will generate an all
files list for you. It's highly customizable and can be run automagically from
a batch file once configured correctly.
To use the all files generator interactively, simply start MaxFile/PM and then
select the areas from the File Area window that you want included in the
listing. Then bring up the context menu and select "All Files List". MaxFile/PM
will then process each FILES.BBS and produce two listings under the filenames
ALLFILES.LST and NEWFILES.LST in the directory that MaxFile/PM resides in.
Each time you run the all files generator from the context menu, a file called
ALLFILES.CFG will be written that contains a list of the area tags for each of
the areas in the listing. Do NOT modify this file. The purpose behind this file
is to tell MaxFile/PM what areas to include when you run the all files
generator in batch mode. If you delete file areas that are in your
ALLFILES.CFG, you MUST run the all files generator from the context menu in
interactive mode at least once to keep the ALLFILES.CFG in sync with your file
areas. I'll put it this way... IF YOU WANT TO RUN IN BATCH MODE YOU MUST KEEP
allfiles.cfg IN SYNC WITH YOUR FILE AREAS.
To customize the all files generator to suit your tastes, you can create some
text files which will be written to your file listing at the appropriate times.
The names for the files are:
ALLFILES.HDR
NEWFILES.HDR
ALLFILES.FTR
NEWFILES.FTR
ALLFILES.CUS
ALLFILES.HDR and ALLFILES.FTR are written verbatim to the file listing at the
beginning and ending of the listing, respectively. ALLFILES.CUS is a little
more complex. It allows you to insert text into the headers that are written to
the listing for each file area. The format of the file is:
<AreaTag> <Header text......>
<AreaTag> is the area tag of the file area header the text that follows it
should be inserted into. You may place as many lines as you need to for each
area as long as they all follow this format. <AreaTag> is checked against the
area tag for each area in such a manner that if the tag for the area begins
with the tag specified in this file the text will get inserted. An example
might be of some help here..
You have the following areas:
CICA001
CICA002
CICB001
001
002
In your ALLFILES.CUS file you have:
CICA Files in this area are NOT freq'able.
CIC These files are on my CD-ROM.
00 These files are freq'able anytime but ZMH.
CICA would match CICA001 and CICA002. CIC would match CICA001, CICA002 and
CICB002. 00 would match 001 and 002. Get the idea? Its rather simple once you
get used it.
To run the all files generator in batch mode from the command line, specify the
-A switch on MaxFile/PM's command line. MaxFile/PM will do its thing and then
return to the command prompt when it is done. -a, -A, /a and /A are all
recognized as valid switches for this mode of operation.
ΓòÉΓòÉΓòÉ 6.3.1.7. Outdated Files... ΓòÉΓòÉΓòÉ
This option will allow you to either remove or move to a file area those files
that are older than a certain number of days.
The process of taking care of your outdated files begins by selecting the areas
that you wish to scan from the File Area window. Now, bring up the context menu
and select 'OutDated Files...', you will be presented with a dialog box, this
is where you tell MaxFile/PM how to manage the old files.
To remove files, select the Kill radio button. To move files to a selected file
area, select the Move radio button and then enter the Area Tag of the file area
you want the files to go into. The Area Tag you type in MUST exactly match one
of the area tags listed in the first column of the File Area window, upper and
lower case letters are important here.
Now you need to tell MaxFile/PM the number of days old a file has to be before
it will be moved or deleted. Either type in the number of days or use the spin
button to adjust the number of days to your liking. To give you some indication
of the date range you will be working with, the date below the spin button will
tell you what the date on the oldest file can be.
After entering the above, click OK and sit back and let MaxFile/PM do its
thing. If a file area you have selected is open, it will be skipped. Also, if
you are moving files, the file area that will receive the dated files will be
skipped.
ΓòÉΓòÉΓòÉ 6.3.1.8. Create FREQ List... ΓòÉΓòÉΓòÉ
Here you can tell MaxFile/PM to create an OKFILE listing for your mailer based
on the selected items in the File Area window.
After selecting this option, you will be presented with a standard File Save As
dialog to choose a filename from. You can either type in the name of an
existing file, or the name you want the listing to have. If it doesn't exist
MaxFile/PM will create it for you.
If the file "MAGIC.TXT" exists in the directory you start MaxFile/PM from, the
entries in it will be copied to the output file. The directory listing will
then be appended to the output file.
ΓòÉΓòÉΓòÉ 6.3.1.9. REXX Macro... ΓòÉΓòÉΓòÉ
Don't like the way MaxFile/PM does something? Well, now YOU can change it! REXX
scripts are now supported. In addition to all the commands available from REXX,
there are 21 REXX extensions added by MaxFile/PM so that you can manipulate
your files from a REXX command script.
A discussion of REXX is well beyond the scope of this document, instead what
you will read about here are the extensions that MaxFile/PM adds to REXX to
allow you to work with your files. The supplied TESTREXX.CMD file is a sample
that shows the syntax and usage of each of the added functions. PLEASE use this
file as a guide when you are constructing your macros.
REXX commands and programs that communicate with the user via Standard input
and Standard output are fully supported by MaxFile/PM's REXX interface. When
the REXX interface first starts up a window entitled "MaxFile/PM REXX Output"
will appear on your desktop, this window is your means of communication with
REXX.
The top line of the REXX output window contains a single line edit control that
can accept up to 80 characters. When you wish to actually send the typed text
to standard input, click on the Send button. Clicking on the Send button when
the control is empty sends a CR/LF pair to standard input.
The remainder of the output window is reserved for the output coming from your
REXX commands and/or application programs. REXX's PULL and SAY commands are
fully supported. There are some limitations to what the output window can do
though. It doesn't support; reverse tabs, vertical tabs, backspace or cursor
movements. For applications that use this type of output or expect to be able
to write to the screen using other methods than standard output you are going
to need to use the START command or some other similar utility to run them in
another session.
To stop a REXX script that is running, bring the Main File Area window to the
front and pull up the context menu, then select Stop REXX this will halt the
script after the current instruction is complete.
Starting MaxFile/PM with the -r switch will cause MaxFile/PM to open its main
window, immediately run the REXX script specified and then exit. An example:
MAXFMPM -rTESTREXX.CMD
Would start MaxFile/PM, run TESTREXX.CMD to completion and then exit. -r -R /r
and /R are all valid forms of the "REXX" switch.
Listed later you will see the REXX extensions for use with MaxFile/PM, they
will be listed by name with a short explanation of each. All the functions
return 'ERROR' if something goes wrong. Those functions that aren't meant to
return some type of information return 'OK' for success. If a syntax error
occurs, processing of the script stops and the error cause can be found in the
file REXX.ERR in the directory MaxFile/PM resides in.
* PAY ATTENTION TO THE NEXT PARAGRAPH *
* IT WILL MAKE OR BREAK YOUR REXX SCRIPTS *
You can change directories throughout the lifetime of your script, but
MaxFile/PM needs to be able to find its files and it expects them to be in the
directory that your script gets called from. So if things start acting
strangely when you are testing a script, make sure the current directory is
your MaxFile/PM directory before you call one of the extensions listed here.
The standard REXX function DIRECTORY() will return the current directory for
you, use it to save the directory your script starts out in. Then just before
your script ends, use it to restore the current directory.
ΓòÉΓòÉΓòÉ 6.3.1.10. Stop REXX ΓòÉΓòÉΓòÉ
Stops the currently running REXX macro. The current instruction in the macro
will finish executing before the macro stops.
ΓòÉΓòÉΓòÉ 6.3.1.11. Edit REXX Macro... ΓòÉΓòÉΓòÉ
Here you can find and edit a REXX macro script, provided you have an editor
defined in your configuration.
After selecting this option you will be presented with a standard file dialog
to select from the files on your system. After selecting a file, the editor you
have configured will be started with the selected file as its one and only
argument.
ΓòÉΓòÉΓòÉ 6.3.1.12. Settings... ΓòÉΓòÉΓòÉ
Brings up the Settings Notebook for MaxFile/PM. Please see Configuring
MaxFile/PM for more information.
ΓòÉΓòÉΓòÉ 6.3.1.13. Product Information ΓòÉΓòÉΓòÉ
Displays MaxFile/PM's Product Information Dialog.
ΓòÉΓòÉΓòÉ 6.3.2. MaxFile/PM REXX Extensions ΓòÉΓòÉΓòÉ
This section covers the extensions that MaxFile/PM provides for use in your
REXX scripts that are run from the File Area Window context menu.
ΓòÉΓòÉΓòÉ 6.3.2.1. MPM_GetVersion() ΓòÉΓòÉΓòÉ
Returns MaxFile/PM's revision or version number.
ΓòÉΓòÉΓòÉ 6.3.2.2. MPM_ClearWindow() ΓòÉΓòÉΓòÉ
Clears the REXX output window.
ΓòÉΓòÉΓòÉ 6.3.2.3. MPM_MsgBox(message, title) ΓòÉΓòÉΓòÉ
Displays a simple message box using 'message' as the text displayed in the
message box and 'title' as the title for the message box.
ΓòÉΓòÉΓòÉ 6.3.2.4. MPM_QueryArea([areatag]) ΓòÉΓòÉΓòÉ
Works in two different ways. Called with no arguments it returns the area tag
of the first file area listed in the Main File Area window listing. When called
with a single argument containing the area tag of an existing file area, it
will return the area tag of the NEXT file area in the list. In either case, if
an area can't be found it returns 'ERROR'.
ΓòÉΓòÉΓòÉ 6.3.2.5. MPM_QueryAreaList('stemvar') ΓòÉΓòÉΓòÉ
Creates a compound stem variable containing the area tag, description, download
path and the full path/filename of the FILES.BBS for each area.
The stem variable name is passed to the function as a string. stemvar.0
contains the total number of areas that information has been returned for.
An example of how to use this function follows:
/* MPM_QueryAreaList() example */
rc = MPM_QueryAreaList('arealist')
Say arealist.0' items in Area List.'
Say arealist.1.area' is the first area.'
Say arealist.1.desc' is the first area description.'
Say arealist.1.path' is the first area download path.'
Say arealist.1.fbbs' is the first area FILES.BBS location.'
ΓòÉΓòÉΓòÉ 6.3.2.6. MPM_QueryAreaInfo(areatag, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
Queries and returns the specified information for 'areatag.' The level info is
as follows:
0 Area description
1 Download Path
2 FILES.BBS Location
ΓòÉΓòÉΓòÉ 6.3.2.7. MPM_DeselectArea(areatag) ΓòÉΓòÉΓòÉ
Detags a file area in the Main File Area window.
ΓòÉΓòÉΓòÉ 6.3.2.8. MPM_SelectArea(areatag) ΓòÉΓòÉΓòÉ
Tags a file area in the Main File Area Window.
ΓòÉΓòÉΓòÉ 6.3.2.9. MPM_OpenArea(areatag) ΓòÉΓòÉΓòÉ
Opens the FILES.BBS Window associated with 'areatag'.
ΓòÉΓòÉΓòÉ 6.3.2.10. MPM_CloseArea(areatag) ΓòÉΓòÉΓòÉ
Closes the FILES.BBS window associated with 'areatag.'
ΓòÉΓòÉΓòÉ 6.3.2.11. MPM_IsAreaOpen(areatag) ΓòÉΓòÉΓòÉ
Returns "1" if the FILES.BBS window associated with 'areatag' is open, "0"
otherwise.
ΓòÉΓòÉΓòÉ 6.3.2.12. MPM_AllFilesList() ΓòÉΓòÉΓòÉ
Starts up the All Files List generator in interactive mode, the list generated
will be made up of the file areas that are selected in the File Area window.
Use MPM_SelectArea() and MPM_DeselectArea() to select areas from REXX.
ΓòÉΓòÉΓòÉ 6.3.2.13. MPM_SetFDUFlag(areatag) ΓòÉΓòÉΓòÉ
Sets the File Database Utility flag for the FILES.BBS that is associated with
'areatag.' Use this to tell MaxFile/PM that the File Database Utility needs to
be run to update your file database after making changes that MaxFile/PM
doesn't know about.
ΓòÉΓòÉΓòÉ 6.3.2.14. MPM_QueryFile(areatag[, filename]) ΓòÉΓòÉΓòÉ
Returns the base filename of a file from a FILES.BBS window. When called with
just the area tag of an open window it returns the first file in the window.
When called with both the area tag and an existing filename it will return the
NEXT filename in the window. If something goes wrong it returns ERROR.
ΓòÉΓòÉΓòÉ 6.3.2.15. MPM_QueryFileList(areatag, 'stemvar') ΓòÉΓòÉΓòÉ
Creates a compound stem variable containing a list of all the files in the
FILES.BBS associated with 'areatag'. The stem variable name is passed as a
string to the function. stemvar.0 contains how many items are in the list.
An example follows:
/* MPM_QueryFileList() example */
Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
mpmarea = 'TEST'
/* Open up the file area */
retval = MPM_OpenArea(mpmarea)
/* Give the open call a chance to work */
Call SysSleep 3
If MPM_IsAreaOpen(mpmarea) = '0' then Exit
rc = MPM_QueryFileList(mpmarea, 'files')
rc = MPM_CloseArea(mpmarea)
Say 'There are 'files.0' files in the list.'
Say
Say files.1.file' is the first file.'
Say files.1.path' is the path of the first file.'
Say files.1.desc' is the description of the first file.'
ΓòÉΓòÉΓòÉ 6.3.2.16. MPM_QueryFileInfo(areatag, filename, '0' | '1' | '2' | '3') ΓòÉΓòÉΓòÉ
Queries and returns the specified information about 'filename.' The level
information is as follows:
0 File Path
1 File Date in DD MMM YYYY format
2 File Size
3 File Description
ΓòÉΓòÉΓòÉ 6.3.2.17. MPM_SelectFile(areatag, filename) ΓòÉΓòÉΓòÉ
Select 'filename' in the area identified by 'areatag'.
ΓòÉΓòÉΓòÉ 6.3.2.18. MPM_DeselectFile(areatag, filename) ΓòÉΓòÉΓòÉ
Deselect 'filename' in the area identified by 'areatag'.
ΓòÉΓòÉΓòÉ 6.3.2.19. MPM_SetFileInfo(areatag, filename, '0' | '1' | '2') ΓòÉΓòÉΓòÉ
Set the displayed information for a file in a FILES.BBS window. The level
information is as follows:
0 Set File Date
1 Set File Size
2 Set File Description
Please note that options 0 and 1 are only for display purposes, if you want to
set the file's date ("touch" it) you need to perform this yourself, MaxFile/PM
does not do this for you, the same goes for the file's size. This REXX
extension is merely to update the display in the FILES.BBS window. Option 2,
for setting descriptions, does actually alter the description that will get
saved for the file though.
Dates should be in the FTSC format DD MMM YYYY, I.E, 01 Dec 1993. Sizes should
be unformatted with no thousands separators.
ΓòÉΓòÉΓòÉ 6.3.2.20. MPM_RemoveFile(areatag, filename) ΓòÉΓòÉΓòÉ
Removes the file 'filename' from the FILES.BBS window associated with
'areatag'.
ΓòÉΓòÉΓòÉ 6.3.2.21. MPM_AddFile(areatag, filename, description) ΓòÉΓòÉΓòÉ
Adds 'filename' with description to the FILES.BBS window associated with
'areatag'. 'filename' MUST be a FULL file specification in the form of
D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes wrong.
ΓòÉΓòÉΓòÉ 6.3.2.22. MPM_AnnounceFiles('stemvar') ΓòÉΓòÉΓòÉ
Creates a file announcement message and writes it to a Squish or *.MSG message
base. The message is built from the information stored in the compound stem
variable 'stemvar'.
Please see TANN.CMD (included in the distribution archive) for an example of
how to use this extension.
The elements of the message that need to be placed in 'stemvar' are as follows:
stemvar.msgpath is the root path of the message area to place the
message in.
stemvar.msgproc is the executable name and switches needed to run
your mail tosser/packer, this one is optional, if
it isn't defined it is ignored.
stemvar.msgtype this defines the type of message base and must be
one of: SQUISH, MSG or MSGECHO.
stemvar.msgflag is the message flag you want to use for this
message, it must be one of: HOLD, NORMAL, DIRECT
or CRASH.
stemvar.to is the name to address the message to, if it isn't
defined it defaults to 'All'.
stemvar.toaddr this the Fidonet style address of the recipient of
the message. It must be in the format
Zone:Net/Node.Point, I.E, 1:201/60.0, if not
defined it defaults to stemvar.fromaddr.
stemvar.from is the name the message is from, this one is
required.
stemvar.fromaddr is the address of who the message is from, in
other words, the originating Fidonet address. This
one is also required.
stemvar.subject this gets put in the subject field of the message.
If not defined it defaults to 'File Announcement'.
stemvar.header is the header of the message, it gets placed just
before the file list in the message. This one is
optional. 1024 character limit.
stemvar.footer this is similar to the header, except it comes
after the file list in the message. It is also
optional. 1024 character limit.
stemvar.origin this is the text that will get put in the origin
line of the message. The '_*_Origin:_' and from
fidonet address are taken care for you. All you
need to enter here is what text you want added in
between the two. This is optional, if it is not
defined no origin line is generated.
stemvar.0 contains the number files being announced.
stemvar.x.file this is the base filename of a file to announce.
stemvar.x.path is the drive and path to the above base filename.
Do NOT include the filename here.
stemvar.x.desc this is the description you want to use for this
file in the message. 1024 character limit.
'x' in the above three is a place holder for each of the files that you want
announced, up to stemvar.0 files.
ΓòÉΓòÉΓòÉ 6.3.2.23. MPM_FileAreaSort(area, 'Name|Date|Size|Desc', 'Asc|Desc'[, 'All']) ΓòÉΓòÉΓòÉ
Sorts the file area 'area' by; Name, Date, Size or Desc. In either ascending or
descending order, optionally deselecting all highlighted files.
This function behaves just like the menu options on the FILES.BBS context menu,
if any items are selected ONLY those items are sorted. If you want to sort the
entire area make sure you pass the fourth argument 'All' to it.
ΓòÉΓòÉΓòÉ 6.3.2.24. MPM_SaveFilesBBS(area) ΓòÉΓòÉΓòÉ
Saves the FILES.BBS for 'area'. Should be used after any changes are made to a
FILES.BBS window.
ΓòÉΓòÉΓòÉ 6.3.2.25. MPM_SetWindowState([area, ]'MAXIMIZE | MINIMIZE | RESTORE') ΓòÉΓòÉΓòÉ
Sets the state of a window. If 'area' is ommitted, the File Area Window is set,
otherwise, the state of the FILES.BBS window 'area' will be set.
The possible window states are; MAXIMIZE, MINIMIZE or RESTORE, only one may be
specified per call to this function.
ΓòÉΓòÉΓòÉ 6.3.2.26. MPM_Crc32('filename') ΓòÉΓòÉΓòÉ
Examines 'filename' and returns a CRC32 value calculated according to FIPS PUB
71 and FED-STD-1003. This should prove useful for rolling your own TIC
processor.
ΓòÉΓòÉΓòÉ 6.4. FILES.BBS Window ΓòÉΓòÉΓòÉ
FILES.BBS windows are the heart and soul of MaxFile/PM, these windows are where
you will be spending most of your time. A FILES.BBS window is very similar to
the File Area window in appearance. What you will see when you open one of
these windows is the contents of the FILES.BBS that is associated with the file
area this window belongs to.
ΓòÉΓòÉΓòÉ 6.4.1. The Button Bar ΓòÉΓòÉΓòÉ
If you have the Button Bar option in the Settings Notebook/Main/Page 2 turned
on then just below the title bar of each FILES.BBS window there will be a
button bar that contains buttons for the most commonly used items on the
context menu.
Should you forget what a particular button does you can find out by pressing
mouse button 1 down while the mouse pointer is over the button and holding it
down. A short description will appear in the status bar at the bottom of the
FILES.BBS window. If you don't want to perform the operation at that time, drag
the mouse pointer down into the list of files and release mouse button 1.
Moving from the left side of the window towards the right, here's what they do:
Sort Uses the *last* sort type selected from the
context menu in a FILES.BBS Window. If no sort has
been selected it defaults to Name/Ascending.
Edit Description This is the same as ^E and Edit Description on the
context menu. Allows you to edit the description
for the highlighted file, if more than one file is
highlighted the file with the dotted cursor focus
is the one that will have the edit box opened for
it.
Get FILE_ID.DIZ Attempts to extract the FILE_ID.DIZ from the
selected files.
Touch Files Touches all the selected files.
Virus Scan Runs the defined Virus Scanner on all highlighted
files.
Test Archive Runs the archiver tests on the highlighted
archives.
Remove Items Just like Remove Items... from the context menu.
Format Same as Description->Format... from the context
Description... menu.
ΓòÉΓòÉΓòÉ 6.4.2. Hotkeys ΓòÉΓòÉΓòÉ
The following accelerator keys may be used when you are working in FILES.BBS
window:
^ = CTRL, ! = SHIFT
Sort Ascending
Name ^1
Date ^2
Size ^3
Description ^4
Sort Descending
Name ^5
Date ^6
Size ^7
Description ^8
Description
Edit ^E
Format ^F
Get DIZ ^G
Set DIZ ^S
Files
Adopt ^A
Announce ^N
Touch ^O
View ENTER
Virus Scan ^C
Archives
Test ^T
Extract to ^X
ReArchive
to ZIP !F2
to ARJ !F3
to LZH !F4
to ARC !F5
Remove Items ^D
ΓòÉΓòÉΓòÉ 6.4.3. Renaming Files ΓòÉΓòÉΓòÉ
To rename a file, press and hold the ALT key and click mouse button 1 on the
file that you want to rename. Then enter the new filename and click button 1
anywhere outside the edit box or press the keypad Enter key. Pressing ESC will
discard any changes you have made to the filename.
ΓòÉΓòÉΓòÉ 6.4.4. Editing File Descriptions ΓòÉΓòÉΓòÉ
Editing descriptions works in the much the same manner as renaming files,
ALT+click mouse button 1 on the description you want to edit. To save the
description, click outside the edit box or press the keypad Enter key. Pressing
ESC will discard any changes made to the description or comment.
The standard CUA conventions for cutting and pasting text work while the
editing window is open for you to edit descriptions.
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
ΓöéCtrl+INS ΓöéCopy to the Clipboard Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéShift+Del ΓöéCut to the Clipboard Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéDel ΓöéCut (to the black hole of bits) Γöé
Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
ΓöéShift+INS ΓöéPaste from the Clipboard Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
These aren't well documented, but they are standard items that you can expect
*most* applications to use when working with text, including MaxFile/PM.
ΓòÉΓòÉΓòÉ 6.4.5. FILES.BBS Window Context Menu ΓòÉΓòÉΓòÉ
This sections covers the context menu for each FILES.BBS Window.
ΓòÉΓòÉΓòÉ 6.4.5.1. Save FILES.BBS ΓòÉΓòÉΓòÉ
Performs an unconditional save of the FILES.BBS for the current FILES.BBS
Window. At the same time it also sets the flag for this area to tell MaxFile/PM
that the File Database Utility (if you have one configured) needs to be run on
it.
ΓòÉΓòÉΓòÉ 6.4.5.2. Shift-Macros ΓòÉΓòÉΓòÉ
Each of your defined program macros will be listed on this sub-menu. See
Configuring MaxFile/PM -- Other for more information on program macros.
ΓòÉΓòÉΓòÉ 6.4.5.3. Sort Ascending ΓòÉΓòÉΓòÉ
Four choices:
Name
Date
Size
Description
Sorts the FILES.BBS entries for the current FILES.BBS Window in ascending
order.
Please note the following; If you want the entire FILES.BBS sorted make sure
that none of the items in the window are selected. If any items are selected
ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection
emphasis on all items in the window. This applies to both ascending and
descending sorts.
ΓòÉΓòÉΓòÉ 6.4.5.4. Sort Descending ΓòÉΓòÉΓòÉ
Four choices:
Name
Date
Size
Description
Sorts the FILES.BBS entries for the current FILES.BBS Window in descending
order.
Please note the following; If you want the entire FILES.BBS sorted make sure
that none of the items in the window are selected. If any items are selected
ONLY those items get sorted. Deselect All or CTRL+\ will remove the selection
emphasis on all items in the window. This applies to both ascending and
descending sorts.
ΓòÉΓòÉΓòÉ 6.4.5.5. Descriptions ΓòÉΓòÉΓòÉ
This section covers the operations that can be performed on file descriptions.
ΓòÉΓòÉΓòÉ 6.4.5.5.1. Copy ΓòÉΓòÉΓòÉ
This selection takes the first description from a group of selected items and
copies it to the rest of the files in the group. The copied description will
have '(xx of xx)' appended to the end of it. This is convenient to use with a
group of files that are all part of one program or file collection.
ΓòÉΓòÉΓòÉ 6.4.5.5.2. Cleanse ΓòÉΓòÉΓòÉ
This option goes through each of the selected items in a FILES.BBS window and
removes all the extra whitespace, non-printable ASCII and high-ASCII characters
from the descriptions or comments.
ΓòÉΓòÉΓòÉ 6.4.5.5.3. Edit ΓòÉΓòÉΓòÉ
Many of you asked for this one. Edit Description allows you to edit the
description of a selected item by first selecting it, then choosing this option
from the context menu. It works the same way as ALT+clicking mouse button 1 on
an item's description.
ΓòÉΓòÉΓòÉ 6.4.5.5.4. Format... ΓòÉΓòÉΓòÉ
This option is only usable when you have an Extended Description Marker (ED
Marker) or a FileList Margin defined in the Settings Notebook.
When an ED Marker is defined:
What it does is take a file description and break it up into smaller parts and
insert the defined ED Marker at the beginning of the excess lines so that your
BBS package will understand the excess lines are part of the description for a
file.
After selecting this option from the context menu a dialog box will be
presented asking you for a left margin and a line length. The left margin is
where you want the ED Marker placed on the line and the line length is how many
characters past the ED Marker the description is allowed to go on each line.
When an ED Marker is NOT defined and FileList Margin is greater than zero:
What it does is take a file description and wrap it into smaller line segments
based on 80 - _FileList Margin_.
ΓòÉΓòÉΓòÉ 6.4.5.5.5. Get FILE_ID.DIZ ΓòÉΓòÉΓòÉ
This option goes through the selected items in the window and attempts to
extract the FILE_ID.DIZ from them. Comments and files that aren't archives are
skipped over by this function. If a FILE_ID.DIZ is present in the archives
selected, it will be read from it and placed in the description field. You will
need to edit this text to suit your needs.
ΓòÉΓòÉΓòÉ 6.4.5.5.6. Set FILE_ID.DIZ ΓòÉΓòÉΓòÉ
Here you can insert the file description for selected archives into the
archives as a FILE_ID.DIZ. You will need to edit the description to conform to
the 45/10 standard.
ΓòÉΓòÉΓòÉ 6.4.5.5.7. Scan Docs... ΓòÉΓòÉΓòÉ
This works only with archives. MaxFile/PM will go through and extract all the
documentation files it can find for a selected archive. It will then present a
dialog box that will allow you to copy text from a file to use as a
description.
Each selected archive is processed in sequence, in other words, the Get
Description Text dialog gets presented once for each selected archive.
When the dialog first comes up a standard File Open dialog will be presented
for you to choose a file to open. NOTE: If there were directories stored in the
archive, they will be present and you might have to go down a few to find the
files.
After selecting a file the first 8K of it will be loaded into the text entry
control in the Get Description dialog. You can edit the text if necessary to
get it somewhere close to what you want.
If you choose to open an INF file, the OS/2 View application will be started so
that you can view the file selected. Using the Services menu from View you can
copy a page to the clipboard from the INF file. Then you can switch back to the
Get Description Dialog and paste the contents of the clipboard into the entry
control by clicking on the "Paste from Clipboard" button.
To copy and use part of the text in the entry control, highlight the text you
want to copy and click on the "Copy" button. The highlighted text will be
copied into the description of the selected file that the file in the entry
control was extracted from.
All the normal description handling characteristics apply to the copied text.
If you do NOT have an Extended Description Marker defined and FileList Margin
is set to 0; all whitespace, unprintable characters (CR, LF, etc..) and
high-bit ASCII are stripped from the description and it is truncated to 255
characters.
ΓòÉΓòÉΓòÉ 6.4.5.6. Files ΓòÉΓòÉΓòÉ
This sections covers the operations that can be performed on files.
ΓòÉΓòÉΓòÉ 6.4.5.6.1. Find... ΓòÉΓòÉΓòÉ
Many, many of you asked for this one. After selecting this option you will be
asked to type in a filename. MaxFile/PM will search for the name and scroll it
into view if it is found. Partial filenames are okay, case is not important.
ΓòÉΓòÉΓòÉ 6.4.5.6.2. Adopt ΓòÉΓòÉΓòÉ
Adopt Files allows you to add any orphan files in a particular file area to the
FILES.BBS for that area. Adopting is performed in a separate thread so that you
may continue to work in the window for the file area while the adopt is going
on. The window will be locked open while the Adopt is being performed.
ΓòÉΓòÉΓòÉ 6.4.5.6.3. Remove Missing ΓòÉΓòÉΓòÉ
This option automates the process of removing entries in a FILES.BBS window
that have no file associated with them.
No special setup is required, just bring up the context menu and select this
option. MaxFile/PM will then search through the FILES.BBS window and remove all
entries that meet the following criteria; The entry is a file, is 0 bytes in
size and has a date/time stamp of 00/00/00 00:00:00.
ΓòÉΓòÉΓòÉ 6.4.5.6.4. Purge Dupes ΓòÉΓòÉΓòÉ
Purge Dupes scans the FILES.BBS window looking for duplicate file entries. Only
the last entry for each file that has a duplicate entry is kept.
ΓòÉΓòÉΓòÉ 6.4.5.6.5. Announce... ΓòÉΓòÉΓòÉ
This option will allow you to write a customized message announcing selected
files directly to any Squish, *.MSG or *.MSG ECHO message base. You may also
specify a mail processor so that you can scan for the message to send it out of
your system.
The whole process gets started by selecting the files you wish to announce from
a FILES.BBS window. Next you bring up the context menu and select 'Announce
Files...' You will be presented with a configuration dialog you must fill out
to tell MaxFile/PM the particulars about the message you want to send. As it
stands right now, you have to fill out the dialog for each different window.
The configuration for each window will be saved separately and will be used
each subsequent time you announce files from each particular window.
There are a few things MaxFile/PM needs to know to be able to send the message
correctly and they are as follows:
Message Base Path The full path and base filename of the message
area put the message in. For *.MSG areas this will
be the full path to the directory that contains
the *.MSG files. For Squish areas this will be the
path and base filename of the Squish files related
to the message area. This is a required entry.
Mail Processor This is an optional entry to allow you to scan for
the message that was just written by a mail
tosser/scanner. Please see the documentation for
your tosser/scanner for more information.
Message Type This is the message base type, *.MSG and Squish
are fairly self-explanatory. *.MSG Echo, refers to
a Fidonet style *.MSG echo mail area that stores
the high-water mark in 1.MSG.
Message Flags These are the attribute flags for the message you
will be creating. They are mutually exclusive. I
will be adding Direct to the available flags when
I get the time to research the flags more.
To: This is the name of the recipient of the message.
If you leave it blank, MaxFile/PM will
automatically default to 'All.'
To Addr: This is the address of the recipient of the
message. If left blank, the From Address will be
used. (Please see the From Address discussion for
more information on entering Fidonet addresses.)
From: This is a required entry. This is the name of the
sender of the message.
From Addr: This is a required entry. This is the address of
the sender of the message. Most likely this will
be your fidonet address if you have one. If not it
doesn't matter what you enter here, as it won't
get used by your message bases.
The format for entering Fidonet addresses into
MaxFile/PM is: zone:net/node.point All four
elements are required. To use my address as an
example, the field would have 1:201/60.0 entered
into it.
Header This is an optional entry that you can use to
place a customer banner at the top of the message
just before the files that are being announced in
the message. It is pretty much free-form, but you
will be much better off if you leave the
formatting up to MaxFile/PM. You may enter up to
1024 characters in this field.
Footer This entry is basically the same as the Header
field, except it comes after the announced files.
You may enter up to 1024 characters in this field.
The 'Subject' line of the message is 'File Announcement' it is currently hard
coded. If I get enough requests, I will add it as an option but as you can see,
the message dialog is quite full as it is. The Tear line will always read '---
MaxFile/PM x.xx'.
ΓòÉΓòÉΓòÉ 6.4.5.6.6. Send... ΓòÉΓòÉΓòÉ
Here you can create a file attach message. First select the file or files that
you want to send, then select this item. The same dialog that is used for the
Announce Files option is presented for you to fill out, please see the
discussion of that function for more information on the dialog controls.
The Header and Footer text are combined together to create the body of the
message, if you enter any text for them. No tearline or origin are added to the
message. In addition to the message attributes you set in the message
information dialog box, the File Attach and Kill/Sent bits are set.
ΓòÉΓòÉΓòÉ 6.4.5.6.7. Touch ΓòÉΓòÉΓòÉ
"Touching" is the process of updating the Time and Date stamps of files to the
current time and date. This option allows you to do that for the selected files
in the current window.
ΓòÉΓòÉΓòÉ 6.4.5.6.8. View ΓòÉΓòÉΓòÉ
The View option works in conjunction with the external program options. For
archives it will fire up the proper archiver to create a list of files
contained in the archive and display a dialog containing that list. For
pictures and text files the appropriate viewer will be started. View is also
the action that is associated with double-clicking mouse button 1 on an entry
in the window.
ΓòÉΓòÉΓòÉ 6.4.5.6.9. Virus Scanner ΓòÉΓòÉΓòÉ
This option runs the virus scanner you have set up on each file selected in the
current FILES.BBS window. The window that the virus scanner is run in is not
closed when the scan is complete so that you may view the results.
Nothing is extracted from the archives. The files are passed to the
'Other->Virus Scanner' entry from the Settings Notebook one at a time until all
the selected files have been scanned. At this writing it is up to you to
perform any additional processing.
ΓòÉΓòÉΓòÉ 6.4.5.7. Archives ΓòÉΓòÉΓòÉ
This section covers the operations that can be performed in archives.
ΓòÉΓòÉΓòÉ 6.4.5.7.1. Test Archive ΓòÉΓòÉΓòÉ
This option only works with archives. It simply invokes the appropriate
archiver for each selected item in the window. The output from the archiver
will be displayed in a dialog box after the testing is completed for each
archive.
ΓòÉΓòÉΓòÉ 6.4.5.7.2. Extract To... ΓòÉΓòÉΓòÉ
Here you can extract a selected archive to a directory that you specify. Note
that the directory you specify must exist.
After you have used this option at least once, the directory will be remembered
the next time the dialog box comes up asking you for a directory. You can just
press ENTER to accept it.
ΓòÉΓòÉΓòÉ 6.4.5.7.3. ReArchive ΓòÉΓòÉΓòÉ
Eight choices here:
to ZIP
to ARJ
to LZH
to ARC
to HA
to RAR
to UC2
to ZOO
Each of these options takes an existing archive or group of archives and
converts them to the appropriate archive type.
If the ADD entry for an archive is not defined its entry on this sub-menu will
be disabled.
ΓòÉΓòÉΓòÉ 6.4.5.8. Insert ΓòÉΓòÉΓòÉ
This section covers the options for inserting comments and files into a
FILES.BBS Window.
ΓòÉΓòÉΓòÉ 6.4.5.8.1. Comment ΓòÉΓòÉΓòÉ
To Insert a comment into the current FILES.BBS window, first select the item in
the window that you want the comment to go in FRONT of. Then bring up the
context menu and select Insert->Comment. A blank comment will then be inserted
in the FILES.BBS window.
ΓòÉΓòÉΓòÉ 6.4.5.8.2. File... ΓòÉΓòÉΓòÉ
Insert/File works much the same way as Insert/Comment, first select the item in
the window that you want the file to go in FRONT of, then select Insert->File
from the context menu. A file dialog will be displayed so that you can find the
file you want to insert. Once you have found the file, select the Insert button
in the dialog box. The file will then be inserted into the current window.
Selecting the Cancel button inside the file dialog box aborts the insert
operation.
The file will be inserted into the FILES.BBS with a FULL PATH SPECIFICATION. It
does NOT get copied or moved into the download directory. This allows you to
point to a single file from multiple FILES.BBS files.
ΓòÉΓòÉΓòÉ 6.4.5.9. Remove Items ΓòÉΓòÉΓòÉ
This item removes or deletes items from the FILES.BBS window. When you select
it from the context menu, a dialog box will appear allowing you two options.
'Entries' just removes the entry from the FILES.BBS window, 'Entries and Files'
causes the entries to be removed and the associated with the entries to be
deleted. Click Ok to remove the items, or Cancel to abort the operation.
ΓòÉΓòÉΓòÉ 6.4.5.10. Select All ΓòÉΓòÉΓòÉ
Selects all items in the current FILES.BBS Window.
ΓòÉΓòÉΓòÉ 6.4.5.11. Select All Files ΓòÉΓòÉΓòÉ
Selects all files in the current FILES.BBS window, excluding orphans.
ΓòÉΓòÉΓòÉ 6.4.5.12. Deselect All ΓòÉΓòÉΓòÉ
Deselects all items in the current FILES.BBS Window.
ΓòÉΓòÉΓòÉ 6.4.5.13. Display Date ΓòÉΓòÉΓòÉ
Toggles the display of the File Date column in the current FILES.BBS Window.
This setting is temporary, FILES.BBS Windows will always open according to the
settings defined in the Settings Notebook.
ΓòÉΓòÉΓòÉ 6.4.5.14. Display Size ΓòÉΓòÉΓòÉ
Toggles the display of the File Size column in the current FILES.BBS Window.
This setting is temporary, FILES.BBS Windows will always open according to the
settings defined in the Settings Notebook.
ΓòÉΓòÉΓòÉ 6.4.5.15. Area Statistics ΓòÉΓòÉΓòÉ
This option displays an information message box containing how many files are
in the current area, how much space they take up and how much free space
remains on the volume.
ΓòÉΓòÉΓòÉ 7. Example REXX Command Scripts ΓòÉΓòÉΓòÉ
This section contains some example REXX scripts that you can use to get an idea
of how to use REXX with MaxFile/PM.
Keep in my that these were written with the system they were tested on in mind,
so you may have to change paths or areas to suit your configuration.
ΓòÉΓòÉΓòÉ 7.1. ANNOUNCE.CMD ΓòÉΓòÉΓòÉ
/* ANNOUNCE.CMD - REXX program to generate a File Announcement
with MPBeta for new files. Version 1.22
ver 1.1: Found an error and in the process of cleaning it up, sped up the
program's execution! Moved the file_desc stuff inside the loop.
ver 1.2: Added format description routines, most borrowed from Craig
Morrison (Thanks!)
ver 1.21: Added two lines to add back the space between upload counters:
from ( 0) back to ( 0). It was stripped out in formatting.
- 13 July, 1994 by Elliott Goodman, 1:102/1319 - 805-264-0200
*/
/* check whether RxFuncs are loaded. If not, load them. */
if RxFuncQuery('SysLoadFuncs') then
do
call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
call SysLoadFuncs
end
/* Just to let the user know what's going on.... */
say 'Searching thru file areas for new files to announce.'
say 'Please wait....';
say ' ';
/* create a tracking file */
report = 'd:\lora\file\mpbeta\announce.txt'
/* delete old tracking file, if present */
call SysFileDelete(report)
m_txt = 'Report of ANNOUNCE.CMD activity'
call lineout report, m_txt
m_txt = date('U')
call lineout report, m_txt
m_txt = ''
call lineout report, m_txt
/* get today's date, create an index from it */
day_index = SPECIFIED_DATE_IN_DAYS( DATE('U') )
/* set some defaults */
nfile.0 = 0
files.0 = 0 /* will increment */
file_index = 0
lmargin = 16 /* how far from the left margin the ED Marker should be */
llength = 45 /* this is how long each line segment should be */
EDMarker = '>' /* Set EDMarker to your extended description character */
spaces = SubStr(Copies(' ', 80), 1, lmargin)||EDMarker||' '
/* set up the array elements of FILES which will be used by
MPM_AnnounceFiles() at the end of all this processing.
See TANN.CMD included with MPBeta for details. */
files.msgpath = 'D:\LORA\MSG\USERS'
files.msgtype = 'SQUISH'
files.msgflag = 'CRASH'
files.to = 'ALL'
files.toaddr = '1:102/1316.0'
files.header = 'New files online at Miles Enterprises BBS'
files.from = 'Elliott Goodman'
files.fromaddr = '1:102/1319.0'
files.footer = '- Elliott'
/* your origin info */
files.origin = 'Miles Enterprises * 805-264-0200 *'
/* my first 44 areas are on the CD so I start with 44 (and increment it
immediately.) This saves time since the CD is slow. */
mpmarea = 44
do forever /* we'll bail out after the last area */
mpmarea = MPM_QueryArea(mpmarea) /* look at next area */
if mpmarea = 'ERROR' then do
leave /* this will bail us out */
end /* if error (past last file area) */
/* get drive/subdir of next file area */
area_path = MPM_QueryAreaInfo(mpmarea, '1')
/* notify user of our progress */
say area_path ;
/* use SysFileTree here to check for new files */
call SysFileTree area_path, stuff, 'F'
/* reset before each file area */
found_new = 0
nfile.0 = 0
/* assume at least one file in the file area */
do i = 1 to stuff.0 /* cycle thru files in one area */
/* get info on each file in the area */
parse var stuff.i,
file_date,
file_time,
file_size,
file_attr,
file_name
/* remove trailing space */
file_name = strip( file_name )
/* remove drive/subdir info from filename */
parse var file_name (area_path) file_name
/* convert to caps, just in case */
file_name = translate( file_name )
/* get extention. We don't want to announce FILES.BBS or FILES.BAK! */
parse var file_name junk '.' extn
if extn = 'BAK' then do
iterate
end
if extn = 'BBS' then do
iterate
end
/* test if next file is dated today, hence NEW */
file_test = SPECIFIED_DATE_IN_DAYS( file_date )
if file_test = day_index then do
/* here's where the ver. 1.1 code makes it's major changes. Store the
files that are new and do them all at once for each area */
found_new = 1
nfile.0 = nfile.0 + 1
t_index = nfile.0
nfile.t_index = file_name
end /* if file_test = day_index */
end /* do i = 1 to stuff.0 */
/* now, if we found one or more new files in this area... */
if found_new = 1 then do
/* we have to open the files.bbs file so we can get the
description */
retval = MPM_OpenArea(mpmarea)
/* this just gives the system time to open the file */
Call SysSleep 3
/* ....cycle thru the new files for this area */
do k = 1 to nfile.0
/* continue storing elements in FILES */
file_index = file_index + 1
files.0 = files.0 + 1
files.file_index.path = area_path
files.file_index.file = nfile.k
text = MPM_QueryFileInfo(mpmarea, nfile.k, '3')
/* just in case no description was Tic'd... */
if text = 'ERROR' then do
text = 'No Description!'
end
/* here's where we format the file description! */
/* Translate all CRs, LFs and Extended Description Markers into spaces */
ntext = Translate(text, ' ', x2c('0d')||x2c('0a')||EDMarker)
text = GetOneLine(llength, ntext)
ntext = Space(DelWord(ntext, 1, Words(text)), 1)
Do While Length(ntext) \= 0
wText = GetOneLine(llength, ntext)
text = text||x2c('0d')||x2c('0a')||spaces||wText
ntext = Space(DelWord(ntext, 1, Words(wText)), 1)
End
/* the following two lines replace the extra space between
parentesis that was removed: ( 0) */
text = overlay(' ',text,1,1)
text = '('||text
retval = MPM_SetFileInfo(mpmarea, nfile.k, '2', text)
text = Space(Translate(text, ' ', '>'), 1)
files.file_index.desc = text
end /* do k to nfile.0 */
/* close the files.bbs file to avoid problems */
retval = MPM_CloseArea(mpmarea)
end /* if found = 1 */
end /* do forever */
/* if no new files: exit */
if files.0 = 0 then do
m_txt = 'No new files found'
call lineout report, m_txt
exit
end
/* there are new files. Save the info so we can play
with the descriptions when we wake up <g> */
m_txt = 'List of New Files'
call lineout report, m_txt
m_txt = ' '
call lineout report, m_txt
do j = 1 to files.0
m_txt = 'File Path = ' files.j.path
call lineout report, m_txt
m_txt = 'File Name = ' files.j.file
call lineout report, m_txt
m_txt = 'File Description = ' files.j.desc
call lineout report, m_txt
m_txt = ' '
call lineout report, m_txt
end
/* actually make the announcement */
retval = MPM_AnnounceFiles('files')
m_txt = files.0 'new files announced!'
call lineout report, m_txt
/* and we're done */
exit
/*------------------------------------------------*/
/* Convert calendar date to consistent date index */
/*------------------------------------------------*/
SPECIFIED_DATE_IN_DAYS:
Procedure
parse arg,
mm '/',
dd '/',
yy
days_by_month = '31 28 31 30 31 30 31 31 30 31 30 31'
current_number_of_days = (yy * 365) + dd
do m = 1 while m < mm
current_number_of_days = current_number_of_days +,
WORD( days_by_month, m )
end
return current_number_of_days
/* This subroutine and all format description routines written by
Craig Morrison, author of MaxFilePM.
GetOneLine takes a variable length string and returns a blank delimited
string that is a substring of inText and is no longer than llen
characters.
A single word that is longer than llen is simply truncated at llen when it
would be the only word in a line segment and not wrappable. Its cheesy and
cheap, but hey, it works.. ;-)
*/
GetOneLine:
Parse Arg llen, inText
cText = ''
Do While Length(cText' 'Word(inText, 1)) < llen
cText = cText' 'Word(inText, 1)
inText = DelWord(inText, 1, 1)
If inText = '' Then Leave
End
if cText = '' Then Do
cText = Left(inText, llen)
End
Return Space(cText, 1)
ΓòÉΓòÉΓòÉ 7.2. FILELIST.CMD ΓòÉΓòÉΓòÉ
/* MPM_QueryFileList() example */
Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
mpmarea = 'TEST'
/* Open up the file area */
retval = MPM_OpenArea(mpmarea)
/* Give the open call a chance to work */
Call SysSleep 3
If MPM_IsAreaOpen(mpmarea) = '0' then Exit
rc = MPM_QueryFileList(mpmarea, 'files')
rc = MPM_CloseArea(mpmarea)
Say 'There are 'files.0' files in the list.'
Say
Say files.1.file' is the first file.'
Say files.1.path' is the path of the first file.'
Say files.1.desc' is the description of the first file.'
Say
Say 'Click SEND to quit.'
Pull .
ΓòÉΓòÉΓòÉ 7.3. LISTAREA.CMD ΓòÉΓòÉΓòÉ
/* LISTAREA.CMD Lists all available file areas */
rc = MPM_QueryAreaList('arealist')
do i = 1 to arealist.0
Say arealist.i.area' - 'arealist.i.desc
end
Say
Say 'Click SEND to quit.'
Pull .
ΓòÉΓòÉΓòÉ 7.4. TANN.CMD ΓòÉΓòÉΓòÉ
/* Test MPM_AnnounceFiles(..) */
/* */
/* This example shows how to define ALL the fields for a file announcement */
/* Please note that by using MPM_QueryFileList(..) you can generate the */
/* the stem needed to create a file announcement. All you have to do after */
/* calling that function is filter out the files you don't want, then fill */
/* in the message information before calling MPM_AnnounceFiles(..). */
files.0 = 1
files.1.path = 'D:\bcos2\maxfile\'
files.1.file = 'mpm1_20.zip'
files.1.desc = 'MaxFile/PM 1.25, A FILES.BBS Manager for Presentation Manager'
/* Path to the message area, REQUIRED */
files.msgpath = 'D:\Max\Msg\Public'
/* Mail tosser/packer information, optional */
files.msgproc = 'd:\squish\sq386p -cd:\squish\squish.cfg squash link -fWORKCHAT'
/* Message area type: SQUISH, MSG or MSGECHO. REQUIRED */
files.msgtype = 'SQUISH'
/* Message flag; HOLD, NORMAL or CRASH. REQUIRED */
files.msgflag = 'NORMAL'
/* Who to address the message to, defaults to 'All' if not defined */
files.to = 'Elliott Goodman'
/* The fidonet address for who the message is addressed to */
/* All four elements are REQUIRED, defaults to *.fromaddr if not defined */
files.toaddr = '1:102/1319.0'
/* Who the message is from, REQUIRED */
files.from = 'Craig Morrison'
/* Fidonet address of who the message is from, REQUIRED */
files.fromaddr = '1:201/60.0'
/* Optional header text for the message */
files.header = 'Check this out:'
/* Optional footer text for the message */
files.footer = "Slick ain't it?"
/* Optional subject line, defaults to 'File Announcement' if not defined */
files.subject = 'REXX MPM_AnnounceFiles(..) Test'
/* Optional origin information, if not defined, no origin line is created */
files.origin = 'Workplace Connection * (317) 742-2680'
/* The call itself, returns 'ERROR' if something goes wrong */
retval = MPM_AnnounceFiles('files')
rc = MPM_MsgBox(retval, 'MPM_AnnounceFiles Result')
ΓòÉΓòÉΓòÉ 7.5. TESTREXX.CMD ΓòÉΓòÉΓòÉ
/* TEXTREXX.CMD - Sample REXX command file for testing MaxFile/PM's REXX */
/* macro extensions. */
Say 'MaxFile/PM demo in progress.'
Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
/* MPM_GetVersion() returns MaxFile/PM's revision number. */
mpmver = MPM_GetVersion()
/* MPM_MsgBox(message, title) displays a simple message box using 'message' */
/* as the text displayed in the message box and 'title' as the title for the */
/* message box. */
rc = MPM_MsgBox('Version 'mpmver, 'MaxFile/PM - Query Version Number')
/* MPM_QueryArea([area tag]) works in two different ways. */
/* Called with no arguments it returns the area tag of the first file area */
/* listed in the Main File Area window listing. */
/* When called with a single argument containing the area tag of an existing */
/* file area, it will return the area tag of the NEXT file area in the list. */
/* In either case, if an area can't be found it returns 'ERROR'. */
mpmarea = MPM_QueryArea()
rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query File Area')
/* MPM_DeselectArea(area tag) detags a file area in the Main File Area */
/* window. */
retval = MPM_DeselectArea(mpmarea)
rc = MPM_MsgBox(retval, 'MaxFile/PM - Deselect File Area Results')
/* See the MPM_QueryArea() comments above. */
mpmarea = MPM_QueryArea(mpmarea)
rc = MPM_MsgBox(mpmarea, 'MaxFile/PM - Query Next File Area')
/* MPM_SelectArea(area tag) tags a file area in the Main File Area Window. */
retval = MPM_SelectArea(mpmarea)
rc = MPM_MsgBox(retval, 'MaxFile/PM - Select File Area Results')
/* MPM_OpenArea(area tag) opens a FILES.BBS Window. */
retval = MPM_OpenArea(mpmarea)
rc = MPM_MsgBox(retval, 'MaxFile/PM - Open File Area Results')
/* MPM_IsAreaOpen(area tag) returns "1" if the FILES.BBS window associated */
/* with 'area tag' is open, "0" otherwise. */
retval = MPM_IsAreaOpen(mpmarea)
rc = MPM_MsgBox(retval, 'MaxFile/PM - Is File Area Open Results')
/* MPM_SetFDUFlag(area tag) sets the File Database Utility flag for the */
/* FILES.BBS that is associated with 'area tag.' Use this to tell MaxFile/PM */
/* that the File Database Utility needs to be run to update your file */
/* database after making changes that MaxFile/PM doesn't know about. */
/* retval = MPM_SetFDUFlag(mpmarea) */
/* rc = MPM_MsgBox(retval, 'MaxFile/PM - Set FD Utility Flag Results') */
/* MPM_CloseArea(area tag) closes the FILES.BBS window associated with 'area */
/* tag.' */
retval = MPM_CloseArea(mpmarea)
rc = MPM_MsgBox(retval, 'MaxFile/PM - Close File Area Results')
/* MPM_QueryAreaInfo(area tag, '0' | '1' | '2') queries and returns the */
/* specified information for 'area tag.' The level info is as follows: */
/* */
/* 0 - Area description */
/* 1 - Download Path */
/* 2 - FILES.BBS Location */
areainfo = MPM_QueryAreaInfo(mpmarea, '0')
rc = MPM_MsgBox('Description = 'areainfo,,
'MaxFile/PM - Query Area Info Results')
areainfo = MPM_QueryAreaInfo(mpmarea, '1')
rc = MPM_MsgBox('Download Path = 'areainfo,,
'MaxFile/PM - Query Area Info Results')
areainfo = MPM_QueryAreaInfo(mpmarea, '2')
rc = MPM_MsgBox('FILES.BBS Location = 'areainfo,,
'MaxFile/PM - Query Area Info Results')
/*****************************************************************************/
/* */
/* What follows is a simple example of querying information about an open */
/* file area. */
/* */
/*****************************************************************************/
mpmarea = 'TEST'
/* Open up the file area */
retval = MPM_OpenArea(mpmarea)
/* Give the open call a chance to work */
Call SysSleep 3
/* Loop until the file area is open */
areaopen = '0'
do until areaopen \= '0'
Call SysSleep 1
areaopen = MPM_IsAreaOpen(mpmarea)
end
/* MPM_QueryFile(area tag[, filename]) returns the base filename of a */
/* file from a FILES.BBS window. When called with just the area tag of an */
/* open window it returns the first file in the window. When called with */
/* both the area tag and an existing filename it will return the NEXT */
/* filename in the window. If something goes wrong it returns ERROR. */
/* Query the filename of the first file */
filename = MPM_QueryFile(mpmarea)
rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
if filename = 'ERROR' then do
exit
end
/* Query the next filename */
filename = MPM_QueryFile(mpmarea, filename)
rc = MPM_MsgBox('File = 'filename, 'MaxFile/PM - Query File Results')
/* MPM_QueryFileInfo(area tag, filename, '0' | '1' | '2' | '3') queries */
/* and returns the specified information about 'filename.' The level */
/* information is as follows: */
/* */
/* 0 - File Path */
/* 1 - File Date in DD MMM YYYY format */
/* 3 - File Size */
/* 4 - File Description */
fileinfo = MPM_QueryFileInfo(mpmarea, filename, '0')
rc = MPM_MsgBox('Filepath = 'fileinfo, 'MaxFile/PM - Query File Info Results')
/* MPM_SelectFile/MPM_DeselectFile(area tag, filename) select and */
/* deselect 'filename', respectively, in the area identified by 'area */
/* tag'. */
retval = MPM_SelectFile(mpmarea, filename)
rc = MPM_MsgBox(filename' selected!', 'Select File')
fileinfo = MPM_QueryFileInfo(mpmarea, filename, '1')
rc = MPM_MsgBox('Filedate = 'fileinfo, 'MaxFile/PM - Query File Info Results')
fileinfo = MPM_QueryFileInfo(mpmarea, filename, '2')
rc = MPM_MsgBox('Filesize = 'fileinfo, 'MaxFile/PM - Query File Info Results')
fileinfo = MPM_QueryFileInfo(mpmarea, filename, '3')
rc = MPM_MsgBox('File description = 'fileinfo,,
'MaxFile/PM - Query File Info Results')
retval = MPM_DeselectFile(mpmarea, filename)
rc = MPM_MsgBox(filename' deselected!', 'Deselect File')
/* MPM_SetFileInfo(area tag, filename, '0' | '1' | '2') set the displayed */
/* information for a file in a FILES.BBS window. The level information is */
/* as follows: */
/* */
/* 0 - Set File Date */
/* 1 - Set File Size */
/* 2 - Set Description */
/* */
/* Please note that options 0 and 1 are only for display purposes, if you */
/* want to set the file's date ("touch" it) you need to perform this */
/* yourself, MaxFile/PM does not do this for you, the same goes for the */
/* file's size. This REXX extension is merely to update the display in */
/* the FILES.BBS window. Option 2, for setting descriptions, does */
/* actually alter the description that will get saved for the file. */
/* retval = MPM_SetFileInfo(mpmarea, filename, '2', 'Set with TESTREXX.CMD') */
/* rc = MPM_MsgBox(retval, 'Set File Info Results') */
/* MPM_RemoveFile(area tag, filename) removes the file 'filename' from */
/* the FILES.BBS window associated with 'area tag'. */
/* retval = MPM_RemoveFile(mpmarea, filename) */
/* rc = MPM_MsgBox(retval, 'Remove File results') */
/* MPM_AddFile(area tag, filename, description) adds 'filename' with */
/* description to the FILES.BBS window associated with 'area tag'. */
/* 'filename' MUST be a FULL file specification in the form of */
/* D:\PATH\FILENAME.EXE! The function returns 'ERROR' if something goes */
/* wrong. */
/* retval = MPM_AddFile(mpmarea, 'd:\test\ivtech.zip', 'New File from REXX') */
/* rc = MPM_MsgBox(retval, 'Add File Results') */
/* Close the file area */
retval = MPM_CloseArea(mpmarea)
/* MPM_Crc32(filename) returns a CRC32 for the specified file or ERROR if */
/* something goes wrong. */
crc = MPM_Crc32('MPM1_20.ZIP')
rc = MPM_MsgBox('MPM1_20.ZIP CRC32 = 'crc, 'MPM_Crc32 Results')
rc = MPM_MsgBox('REXX Demo Complete!', 'MaxFile/PM - REXX Demo')
ΓòÉΓòÉΓòÉ 7.6. NEWFILES.CMD ΓòÉΓòÉΓòÉ
/* Sample MaxFile/PM New Files Search script */
'@echo off'
fAreas = 'FWAPPS FWBBS FWCOMM FWPROG FWREXX FWSYSUTL FWUTILS IBMINFO WINDATA'
fAreas = fAreas||' WINGAME WINGRAF WINPRNT WINPROG WINSOUN WINSYST WINUTIL'
fAreas = fAreas||' WINWORD'
/* Load just the REXXUTIL functions we need */
Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
tDate = DATE('O')
Parse Var tDate tYear '/' tMonth '/' tDay
Say 'Beginning new files scan for 'tYear||tMonth||tDay'...'
newfiles = 0
Do index = 1 to Words(fAreas)
fbbs = MPM_QueryAreaInfo(Word(fAreas, index), '2')
If Stream(fbbs, 'c', 'query exists') \= '' Then Do
rc = MPM_OpenArea(Word(fAreas, index))
Call SysSleep 5
If MPM_IsAreaOpen(Word(fAreas, index)) = '1' Then Do
Drop fList.
Say
Say 'Reporting files for area - 'Word(fAreas, index)'.'
rc = MPM_QueryFileList(Word(fAreas, index), 'fList')
rc = MPM_CloseArea(Word(fAreas, index))
If fList.0 \= 0 Then Do
Do fIndex = 1 to fList.0
fDate = Stream(fList.fIndex.path||fList.fIndex.file,,
'c', 'query datetime')
Parse Var fDate fMonth '-' fDay '-' fYear .
If tYear||tMonth||tDay = fYear||fMonth||fDay Then Do
Say
Say ' 'fList.fIndex.file' is a new file.'
newfiles = newfiles + 1
End
End
End
End
End
End
Say
Say 'New file scan complete, 'newfiles' found.'
Say 'Click SEND to quit...'
Pull .
ΓòÉΓòÉΓòÉ 7.7. FILESORT.CMD ΓòÉΓòÉΓòÉ
/* File Sort Demo */
Call RxFuncAdd 'SysSleep', 'RexxUtil', 'SysSleep'
/* Hide the main window */
Call MPM_SetWindowState('MINIMIZE')
/* Initial file area open */
Call MPM_OpenArea '1'
Call SysSleep 4
Call MPM_FileAreaSort '1', 'Date', 'Desc', 'All'
Call MPM_MsgBox 'Click OK to Continue', 'MaxFile/PM REXX Demo'
Call MPM_FileAreaSort '1', 'Name', 'Asc', 'All'
Call MPM_MsgBox 'Click OK to Continue', 'MaxFile/PM REXX Demo'
Call MPM_SaveFilesBBS('1')
Call MPM_CloseArea('1')
/* Restore the main window */
Call MPM_SetWindowState('RESTORE')
ΓòÉΓòÉΓòÉ 8. Known Problems ΓòÉΓòÉΓòÉ
In a system as configurable as OS/2 there are always going to be problems, this
section is devoted to those problems and in some cases work-arounds. If you are
having trouble with MaxFile/PM this is the first place to look to see if you
can find some help.
ΓòÉΓòÉΓòÉ 8.1. Lora's FILEIDX.EXE ΓòÉΓòÉΓòÉ
Lora-BBS File index maintenance utility
Make sure that you specify the files IDX file that you want rebuilt in the Main
Settings dialog box. For example:
ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
File Database Utility Γöé E:\LORA\FILEIDX E:\LORA\FILES.IDX Γöé
ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
MaxFile/PM will take care of the rest. (The "AREA .. .. .." part.)
ΓòÉΓòÉΓòÉ 8.2. CONTAINER DISPLAY CORRUPTION ΓòÉΓòÉΓòÉ
Moving vertical separator bar messes up highlighting
The Service Pack for OS/2 2.1 screwed up the way the highlighting is handled
when the vertical separator bar is moved. I didn't it break folks, IBM did.
ΓòÉΓòÉΓòÉ 8.3. MAXFMPM.INI CORRUPTION ΓòÉΓòÉΓòÉ
MAXFMPM.INI gets trashed if a REXX script bombs out and won't quit.
Always keep a backup of your MAXFMPM.INI file someplace safe. I need specific
examples of scripts that I can use to recreate the problem. I'm not sure what
is causing it, but I am looking into it.
The key to safety is to backup before you start a new script and try to debug
it to get it to work.
ΓòÉΓòÉΓòÉ 8.4. RANDOM WPS LOCK UPS ΓòÉΓòÉΓòÉ
While I can't pin down any one cause, there are a few things I have noticed
that cause problems:
Bloated INI files (OS2.INI larger than 512k)
Version mismatches on display drivers. (e.g., 2.10 drivers used for 2.11)
The display drivers do make a difference, I was running along fine until I
installed the WD 640x480 256 color drivers.
ΓòÉΓòÉΓòÉ 8.5. LAUNCH PAD SHREDDER WON'T SHRED MY FILES ΓòÉΓòÉΓòÉ
Create a shadow of your shredder object on the desktop and drag the items you
want deleted to it or use Remove Items from the context menu in a FILES.BBS
window.