home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
wplog32.zip
/
readme.txt
< prev
next >
Wrap
Text File
|
1993-10-03
|
25KB
|
400 lines
WPLOG32.ZIP Four WordPerfect 5.2 for OS/2 and Windows macros
LOGMAC32.ZIP Different in name only (same macros) to differentiate between
the Windows and OS/2 WordPerfect versions. Depending on how the macro
language changes between future releases of WPWin and WPOS/2, Windows
compatibility may be discontinued - assuming, of course, I come up with
any other 'bright' ideas.
LogFiles.WCM
------------
This macro will first cycle through all open documents, making note
of their names to be displayed in the LogFiles menu. The user can then
click upon the files he/she would like excluded from the logging process.
A maximum thirty-five character Work Profile name (see A Note About
Profiles) is then assigned which identifies the group of logged files.
Once the user clicks 'OK', the macro begins to log all selected files,
adding the doc.'s name and cursor location in WPWP.INI. With version
3.2, it is now possible to select which documents you would like closed as
well as logged. Thus, if you have 4 docs opened, you can have the macro
log docs. 1-3, but close only docs. 2 and 4. This feature is not
available if the LogFiles menu has been turned off in LogState.
Also new to version 3.2 is the elimination of the 4 Work-Profile
limit. As a result, two more buttons have been added to LogFiles' dialog
box - Delete Profile and Edit Name. The first deletes all the logging
information from the given profile, but leaves the [LogProfile] section in
WPWP.INI with the single line ProfName=Free. If/when you create another
Work Profile, the macro will either add the information to the first
[LogProfile] section with a ProfName=Free key or create another section if
none is found. The second button brings up another dialog box in which you
can rename/edit the displayed Work Profile name. This does not overwrite
the logged information, simply the name which identifies that particular
Work Profile.
LogFiles now minimizes the documents as the filenames are read.
This not only improves performance by eliminating the need for WP to
perform screen redraws, but it also helps to see exactly what's going on.
With the addition of the Close Selective docs. feature, knowing what
remains opened is important, especially if you intend to Resume another
Work Profile. Doc. windows can be returned to a previous state upon
macro completion (see LogState.WCM).
It also struck me that it would be advantageous to have specific
profiles automatically resume in Express Mode, regardless of the default
setting in LogState's group box. As a result, a check box has been added
below the Profile list box. This addition necessitated yet another addition,
mentioned in the next paragraph.
The other addition is a mode overide. If the Menu Prompt is
selected in LogState (the default setting), or if the specific profile
has not been marked as Express in LogFiles, you have a certain amount
of time when the macro first runs to switch to Express Mode. The same
holds true for Express - hitting the ESC key will initiate a mode
opposite to the one that is currently active.
Resume.WCM
----------
Resume reads the logged filenames in the selected Work Profile in
WPWP.INI and displays the filenames in a menu. The user can choose to
exclude some of the docs. from the list or fetch a different profile.
Once 'OK' is selected, the macro opens the selected files and, using the
cursor-location information logged previously, returns the cursor to its
position when the file was originally logged. You can use the Work
Profiles generated by version 3.0. If the macro is unable to retrieve the
cursor information, a brief message will appear informing you of the
problem, the cursor will remain at the top of the document, and the macro
will resume operation. You'll have to hunt up the [Comment | Logged[x]]
(where [x] is either 1, 2, 3, or 4) yourself and remove it manually.
Logging the file with version 3.1 and above will add the necessary
information to the Work Profile in WPWP.INI.
As in version 3.0, if a file has been deleted or renamed by the
user between the LogFiles and Resume processes, the macro will simply
inform the user that the file in question could not be opened, and resume
operation.
If you would rather do without the cursor repositioning feature,
click on the radio button marked Leave Cursor at Top in LogState's Cursor
Repositioning group box. If repositioning is turned off, the cursor will
remain at the top of the document after it has been opened by Resume. You
can also turn Position and Line repositioning off. See the description for
LogState for more on this. As a result of the addition of the Close
Selective docs. feature, Resume first cascades all opened docs., which
allows you to see what docs are currently opened to avoid opening a doc.
that is already so. Doc. windows can be returned to a previous state upon
macro completion (see LogState.WCM). If you happen to select a file that is
opened, Resume will try to open it. In the OS/2 version, at least, WP
gives you the choice of either cancelling the doc. opening or going ahead
and opening it as a read-only file. Opening it isn't a problem, but
choosing not to load it is. It sends an Error message to Resume, which
causes the macro to branch to an ONERROR label which I used in case a user
attempted to open more docs. than WP would allow. There was no way out of
this catch-22 as far as I could see except by issuing an ONERROR CALL
statement before the files are loaded. In that case, if you do try to open
a file that is already opened, and you choose not to load it when WP
prompts you, the error message will be diverted away from the official
error label. In essence, this means that the macro will continue loading
the files checked off in Resume's menu, but if you try to exceed the doc.
limit, you won't get a warning telling you that such-and-such a file was
not opened. Instead, the macro will end abruptly but peacefully. It was
one or the other, and I thought the one was more useful than the other.
One final addition is a mode overide. If the Menu Prompt is
selected in LogState (the default setting), or if the specific profile
has not been marked as Express in LogFiles, you have a certain amount
of time when the macro first runs to switch to Express Mode. The same
holds true for Express - hitting the ESC key will initiate a mode
opposite to the one that is currently active.
LogState.WCM
------------
This macro allows the user to specify whether the File-Selection
prompt should appear when LogFiles and Resume are run. LogState can be run
from either of the two other macros in order to configure LogFiles and
Resume. N.B. The macro must first be compiled; otherwise, an error
message will be generated by WP. To turn File-Selection prompts back on,
run LogState again. Turning the File-Selection prompt Off will not give
you access to the Work Profiles or Selective doc. closing in LogFiles,
however. The last Work Profile you selected will be active until it is
changed. Alternatively, you can press the ESC key when LogFiles or Resume
first run in order to access the Interactive mode for that specific session.
New to version 3.2 is the Close Documents at Log Time menu.
Selecting Close All Documents simply checks off all the documents that are
listed in LogFiles' dialog box. Selecting Close Selective Documents simply
leaves the check boxes empty in LogFiles' dialog box. If File-Selection
menus are turned off, Logfiles will log and close all opened documents.
Also new to version 3.2 is the ability to launch LogFiles or Resume
directly from LogState. N.B. Both macros must first be compiled in order
to launch them directly from LogState; otherwise, WP will generete an error
message, and LogState will terminate. After you've made your menu
selections, clicking on either the LogFiles or Resume button will first
save the LogState selections to WPWP.INI and then launch LogFiles or
Resume.
As stated above, LogState can also turn Position or Line and
Position repositioning off or shorten the timeout length. This is
accomplished by clicking on the Timeouts button. When cursor repositioning
is selected, the cursor first moves to the page logged in WPWP.INI. The
macro then looks at the line number and estimates whether it lies on the
top or bottom half of the page. If at the bottom, the cursor is
repositioned to the bottom of the page and counting begins from there,
moving up one line at a time. Finally, the macro attempts to match the
cursor location with that found in WPWP.INI. Like the line repositioning,
character repositioning first estimates whether the cursor should go in the
first or the second half of the line. If the first half, then the cursor
is moved to the right one character at time. For these reasons, Line and
Position Counters in the Cursor Repositioning Timeout dialog box cannot
exceed 50. There wouldn't be much point in specifying a larger number,
since it would take too long for a timeout to occur if the cursor was
unable to find its previous location, and most sheets of paper will only
hold a maximum of 80 characters by 66 lines. To turn either Line or
Position repositioning off, change the number in the appropriate counter to
1. This will also disable the Timeout error message in Resume. I added
these timeout procedures to take into account significant editing of a
document between logging processes and possible errors in WP's reporting
cursor location (this happened to me once). For example, if the first log
reports cursor location on Pg 10, Ln 6.67", and Pos 3.68", but you delete
everything from Pg 10, Ln 1.00" on later and then try to Resume the
document still later, obviously, the cursor will never find its old
location. The repositioning loop would go on endlessly since it would
continue looking for a Ln number it could never reach. This is a problem
only for Ln and Pos repositioning. To avoid a possible conflict, I've also
added a small verification routine when the Page reposition is executed.
If, using the previous example, you deleted everything from Pg 9 on, the
cursor would first land on Pg 9 without giving an error, and start looking
for the old cursor location on the wrong page. To prevent this, the macro
checks the page number it lands on. If it doesn't match the logged page
number, repositioning stops and the cursor remains on whichever page it
happens to be when the error occurs.
Two additional group boxes have been added to version 2.0, both of
which set document window behaviour upon completion of LogFiles and Resume.
In LogFiles, the doc. windows are normally left minized. You can change
this by clicking on a specific radio button, either Maximize, Tile, Cascade,
or Minimize. In Resume, doc. windows are normally left cascaded. By
clicking on the appropriate radio button in LogState, you can have Resume
maximize the doc. windows upon exit, or, alternatively, have the doc.
windows tiled or cascaded (if anyone feels a need to have docs. minimize
themselves upon macro completion, drop me a line and I'll implement it).
The behaviour of the 'Timeouts' push button has also been altered to
reflect the state of the 'Leave Cursor at Top' radio button in the 'Cursor
Repositioning' group box. If it is, the 'Timeouts' button will read
'Refresh Dialog Box' rather than 'Timeouts...'. This serves two purposes:
to avoid confusion if the 'Leave Cursor at Top' button is selected
(in which case Timeouts are irrelevant) and to have the macro redraw
the dialog box in the event that the 'Leave Cursor at Top' radio
button is deselected and the user desires to change timeout defaults.
MenuLog.WCM
-----------
This is a small macro that will add the above three macros to
WordPerfect's File menu. If you're like me, you're not overly fond of
using a mouse and/or a button bar. By running this macro, you can press
the Alt+F, / keys to gain easy access to LogFiles, Resume, or LogState. If
you haven't got the /m-macroname switch already when launching WP, just add
it as a parameter, e.g. /m-menulog. If you've already got a startup
macro, simply add a Run statement at the end of the original startup macro,
e.g. Run("macropath\menulog.wcm") where macropath is the location of the
MenuLog macro. It is important that the Run statement be last (before a
Quit statement, obviously), because MenuLog ends with a Return statement,
which is required by LogState. The reason why LogState calls MenuLog is
that the Document Logging and Resume Profile submenus reflect the state of
menu prompts. If you turn Resume's File-menu prompt off, for example, the
submenu item will read 'Resume Profile... - Express' as opposed to simply
'Resume Profile...' This is to help people like myself with short
memories. There shouldn't be a problem if you've got some of your own
items added to the File Menu, because MenuLog attempts to add the 'Log /
Resume' item only immediately after Save As...; if it encounters an
error, it tries to delete an item bearing the 'Log / Resume' name and then
attempts, once again, to add 'Log / Resume' to the File Menu. If you
encounter difficulties (like MenuLog appearing to be caught in an endless
loop), try including your own items in MenuLog and then running it. By
default, MenuLog is not invoked by LogState. If you would like to have
LogState add and dynamically update the 'Log / Resume' menu item in WP's
File Menu, click on the Menu button in LogState, and click on the 'Add Log
/ Resume to File Menu' checkbox.
A Note About Profiles
---------------------
By 'profile' I mean a working environment. It's easier to think of
Work Profiles as different projects you are working on. LogProfile2, for
example, could contain the documents you had opened while working on
Chapter Two of a book, whereas LogProfile1 could contain the document list
from your work on an article you intend to continue at a later time. All
Profiles are user-definable in that the user can assign a descriptive name
of up to 35 characters to each profile. Using the above example,
LogProfile2 could be be named 'Chapter Two' and LogProfile1 'Article -
needs a conclusion'. In LogFiles, the profile names can be edited (by
pressing the 'Edit Names...' button) or you can add a new Work Profile
simply by typing a new name in the drop box. In Resume, profiles cannot be
changed - what you see is what WPWP.INI reports.
Cleaning up WPWP.INI
--------------------
If you've used a version of LogFiles earlier than 3.0, you'll have
to clean up your WPWP.INI file unless you don't mind having useless
information stored in it. WPWP.INI is normally stored in your \os2
directory for OS/2 users, \os2\mdos\winos2 directory for WinOS/2 users, or
\windows directory for Windows users. Open the file using any ASCII text
editor, and delete the section called [Log-Resume]. It should look
something like this:
[Log-Resume]
Doc1=[the document name goes here]
Doc2=[ditto]
NumberOfFiles=2
The reason for this cleanup is that version 3.x of LogFiles and Resume
looks for sections called [LogProfile{x}], where {x} is a number from 1
up. The keys in the [LogProfile{x}] sections remain the same except for a
few additions. Once you've made the appropriate deletion, save WPWP.INI
as an ASCII file. Note, however, that some ASCII editors leave an
end-of-file marker (^Z) at the end of the file. If this is the case,
the macros will continue to function, but if you try editing WPWP.INI,
you won't see what lies beyond the ^Z mark. For OS/2 users, bear in
mind, also, that long filenames may be wrapped to the next line, and
the text editor may append a CR/LF code at the end of the first line,
thereby effectively truncating the filename. If this happens, Resume
will report a file-not-found error.
Bugs
----
There are no known bugs, except for those that are generated by WP
for OS/2 5.2. According to WPOS/2 Tech. support, the inability to use
mnemonics as short-cuts to various options in a menu has been documented
and is expected to be corrected in a later release (perhaps 6.0).
Similarly, pressing <Enter> to proceed or <Esc> to dismiss a dialog box
do not function properly. This falls under the mnemonic bug just mentioned.
A pointing device, therefore, is required. As far as I know, none of this
Applies to WPWin 5.2.
For some reason the 'Yes!' parameter in the FileSave(Variable;
WordPerfect51!; Yes!) command does not overwrite an existing file without
prompting the user as it's supposed to; instead, it invariably brings up
the FileSaveAs dialog box at least on my system. Omitting the Yes! parameter
seems to have cleared up the problem, but it may need to be added in an
interim or future releases of WP for OS/2 and/or for WPWin 5.2. If you
find a bug, please contact me at
G9026163@mcmail.cis.McMaster.CA
The address should be valid for the next year or so.
What is known are the following limitations: if you use accented
characters in your filenames, Resume may choke (and bring WordPerfect down
with it). This may only be a limitation on the OS/2 version - I haven't
tried it on WPWin. If you're a rapid mouse clicker, one of the macros may
go into Pause mode (this usually happens only with LogState). If it appears
that a macro isn't doing anything, check WordPerfect's Macro menu. If you
see a check mark beside the Pause option, simply click on it to uncheck
Pause and the macro will resume.
Acknowledgments
---------------
I'm not much of a programmer. My motto is, if it works, great.
Many thanks must go to Ulrich Brinkman, who, way back in March '93
suggested using the DLLCall command to write and read the information to
WPWP.INI instead of to a WP document as I had originally done. Richard
Reiner is largely responsible for version 3.0 of the WPWin set, since he
graciously permitted me to mofidy his LastFour macro, thereby allowing the
user to select the files he/she wants logged and/or reopened. He also
permitted me to modify his NamedMrk macro to search for a specific
[Comment] rather than simply any [Comment] in the same version. Richard
has also been exceptionally patient with me in helping to debug the various
macros and full of ideas for improvements.
Revision History:
================
Logfiles.WCM
------------
1.0: (Feb. '93) Initial WPWin 5.2 release.
1.1: Added If statement to correct the creation of a blank
document if only one doc. is logged.
2.0: (Mar. '93) Ulrich Brinkmann's implementation of DLLCall
code to log files in WPWP.INI.
3.0: (Jul. '93) Incorporated and modified some of Richard
Reiner's LastFour.WCM code to allow user either to log all
currently opened documents or a selection. Replaced two
consecutive [Comment] codes by one [Comment] containing the
string 'Logged[x]', where '[x]' is a number from 1 to 4.
R.R.'s code for extracting the contents of a [Comment],
comparing it to a specified string, and deciding whether
the [Comment] is the one we want or whether the macro
should keep looking makes the one [Comment] possible.
Added the ability to bypass the File-Selection menu.
Added max. 4 user-defined profiles.
(Aug. '93) Some modifications made for WPOS/2 5.2, to
accommodate HPFS and the quirky way WPOS/2 cycles
through open docs. 'Previous Doc' doesn't seem to
do what it's supposed to, i.e. it doesn't work at all!
3.1: (Aug. '93) Did away with the [Comment] method of keeping
track of the cursor location altogether, which allowed me
to bypass the Save() command if a document has not been
modified a real time-saver in the long run!
Added a small checking routine to ensure that the cursor is
at the MainEditScreen before proceeding with the logging
process. This is necessary if, for example, the cursor is
in a Foot/Endnote. If it is, a Close() command is issued,
and the cursor returns to MainEditScreen.
3.2: (Sept. '93) Added Selective Doc. Closing in LogFiles menu
(this feature is not available if you've turned the menu
off in LogState). Also added a DocMinimize() command to
speed processing up a little and to allow the user to see
which docs. remain open after the logging process. Removed
the 4 Work-Profile limit and added the Delete and Edit
buttons. Improved some of the code for more reliable
performance and eliminated the NumberOfFiles= key for each
[LogProfile]. Eliminated redundant code.
Added doc. window behaviour upon completion of macro.
(Oct. '93) Added the 'Resume - Express' checkbox and the
manual overide.
Resume.WCM
----------
1.0: (Feb. '93) Initial Release.
2.0: (Mar. '93) Ulrich Brinkmann's implementation of DLLCall
code to fetch the filenames from WPWP.INI before opening.
3.0: (Jul. '93) Inclusion of Richard Reiner's code from
LastFour.WCM to enable user to select what docs. he/she
would like opened.
Improved error handling Abort! message no longer
encountered if full document roster is used;
Resume won't grind to a halt if a file to be reopened no
longer exists Added the ability to bypass the
File-Selection menu. Added max. four user-defined profiles.
(Aug. '93) Some modifications for the WPOS/2 5.2 version,
to accommodate HPFS.
3.1: (Aug. '93) By eliminating the [Comment] method of keeping
track of the cursor location at log time, I've managed to
shave 30 seconds off a two document resumption (a small,
informal, and very unscientific in-house test). Of course,
if cursor repositioning is turned off, you'll shave even
more off processing time.
3.2: (Sept. '93) Added a WindowCascade() command so that the
user can see the documents that are being opened, and
choose the one he/she would like to edit after Resume is
complete. I think clicking on the Maximize button is easier
than going the Window | Doc. menu route.
Added timeout routines for cursor relocation.
Eliminated redundant code.
Added doc. window behaviour upon completion of macro.
(Oct. '93) Implemented the mode overide in accordance with
the profile-specific express mode.
LogState.WCM
------------
1.0: (Jul. '93) Initial release as LogPrmpt.WCM
(Aug. '93) Added ability to turn cursor repositioning ON or
OFF
Name change from LogPrmpt.WCM to LogState.WCM to reflect
additional function.
2.0: (Sept. '93) Added ability to run LogFiles and Resume
directly from LogState. Added Close Documents at Log Time
items.
Added the Repositioning push button and accompanying
dialog box to configure the cursor repositioning timeout
parameters for Line and Position.
Added the Menu button and dialog box to activate MenuLog
whenever LogState is run.
Added the LogFiles and Resume Document Window group boxes.
Changed the behaviour of the 'Timeouts...' push button to
reflect the state of the 'Leave Cursor at Top' radio button.
MenuLog.WCM
-----------
1.0 (Sept. '93) Initial release
Paul H. Caron G9026163@mcmail.cis.McMaster.CA
(3 October 1993)