home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
626a.lha
/
GUISpell_v1.0
/
GUISpell.doc.pp
/
GUISpell.doc
Wrap
Text File
|
1992-04-07
|
16KB
|
356 lines
Welcome to GUISpell-1.0 by Loren J. Rittle (l-rittle@uiuc.edu).
[Warning: you must have AmigaOS release 2.04 (with ARexx running) to
use GUISpell. This program makes use of many 2.04 features and there
will never be a version of GUISpell that works with pre-2.04.]
GUISpell is a graphical front end to ISpell-3.1ljr (or later) [with
ARexx server mode/port added by yours truly] or to any spelling
checker that adheres to the standard ``Spell Checker ARexx Interface''
as first described in ISpell documentation and more recently in a
UseNet message posted by myself on `Mon, 23 Mar 92 10:32:37 GMT' to
comp.sys.amiga.applications (see file, entitled UseNet_posts, which
contains the three messages I posted to UseNet on the subject).
[This free version of GUISpell, as distributed, only works with
ISpell-3.1ljr (or later). Since this is the only spelling checker
that adheres to the standard ``Spell Checker ARexx Interface'' at this
time, this is no great restriction. The full release doesn't have
this restriction.]
Let's get the nasty legal stuff out of the way first (PLEASE READ IT
FOR YOUR SAKE, ESP. IF YOU DECIDE TO USE GUISpell):
This is the initial public release of GUISpell (known before, during and
after beta testing as IGadSpell. Sorry Chris, but the name of the ARexx
port changed from 'IGadSpell' to 'GUISpell'). This software package is
Copyright © 1991, 1992 Loren J. Rittle (l-rittle@uiuc.edu)
and may only be used as licensed by the author and copyright holder,
Loren J. Rittle. Please read the license statement carefully,
I don't want anyone getting into legal trouble:
[Although this package works closely with ISpell (or some other spell
checker backend) via ARexx, it is a completely separate product with
a different original author and different use license.]
This work is Copyright © 1991, 1992 Loren J. Rittle (l-rittle@uiuc.edu)
This software may be freely distributed and redistributed,
non-commercially for non-commercial purposes, provided this notice is
included. You have the right to use the information contained within
this document/program in any way that you see fit, as long as you
quote this as the source of the information (e.g. you have the right
to study the code to GUISpell and see how I do clipboard hooks and
copy the method or a small bit of code into your own project, but you
must state that ideas/code snip was taken from GUISpell). With this
free version of GUISpell, you *don't* have the right to change and/or
recompile the program from the included source code. You have the
right to run the included binary. All other rights, most notably
commercial ones, are reserved by the author. Of main importance, note
that the right to modify this package in any way and redistribute is
reserved by the author (this will be the only freely redistributable
version of GUISpell. I know this version of GUISpell is limited in
some ways, but this restriction is in place so I can recoup my
development costs by selling enhanced versions, but yet allow the
source code to be useful to other people/developers).
Contact the author for other licensing agreements, the full non-freely
redistributable release as described below and for inclusion into any
commercial package (I'm all for the idea :-) at:
Internet EMail (preferred for initial contact):
l-rittle@uiuc.edu
Snail Mail (extra slow because I don't really live here):
Loren J. Rittle
1008 Landing Rd.
Naperville, IL 60540
DISCLAIMER:
This software is provided 'as-is', without warranty of any kind,
either expressed or implied. In no event will I, Loren J. Rittle,
be liable for direct, indirect, incidental or consequential damages
or data loss resulting from the use or application of this software.
The entire risk as to the results and performance of this software
is assumed by you."
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
There, how's that for legal mush? Just trying to cover my...
Special thanks to Mike Schwartz (mykes@amiga0.sf-bay.org) for his PD
GadTools Example that was posted to alt.sources.amiga on `11 Nov 91
12:14:43 PST'. Thanks so much Mike, your example inspired me to write
this!
I also wish to thank Chris A. Wichura (caw@miroc.chi.il.us) for being
a beta tester and for writing some TurboText macros that play with
ISpell and GUISpell. Thanks to Eddy Carroll for Small.a (I now use
cres.o, but thanks). Thanks to Michael Jansson for smallIFFparse (a
sub-set of IFFparse that is Freely Redistributable) and sample code.
Thanks to Radical Eye Software for MinRexx (which is used almost
unchanged in ISpell and with some modification to allow an application
to send ARexx commands and receive string responses in GUISpell).
Thanks finally to people who worked on the Amiga port of ISpell before
I received it and added the ARexx Server Mode:
Luis Soltero
Tomas Rokicki of Radical Eye Software
This is the first and only scheduled public release (but believed to
be quite stable). If you like (or at least use) this free version of
GUISpell, please send [e]mail to me so I can keep track of the number
of people interested in ISpell and GUISpell related software. The
[e]mail address you use will be kept and when I announce the full
version of the software, I'll mail you at that address with details.
Please send information about any programs (or the actual macros) you
have made or make to interface with this package: ISpell and GUISpell
(if you look at the examples that I provide, you will note that
requests to 'IRexxSpell' and 'GUISpell' are intertwined --- it is now
assumed that if you have ISpell, you will also have GUISpell). Please
give yourself credit in the macros' header comment.
Currently I have ISpell/GUISpell interfaces for the following programs:
- CED (3 different sets now!
* 1 for pre v 2.12 - just ISpell
* 1 for v 2.12 - just ISpell
* 1 for v 2.12 - GUISpell w/ ISpell),
- mg,
- TurboText (both
* plain ISpell and
* GUISpell w/ ISpell),
- CLI/WShell,
- idea for a VLT interface using the keystroke trapper (not done yet),
- rough set for ProVector,
- GUISpell by itself.
I have heard of a set of macros that play with ProWrite. I would
like them, so I can include them in this package.
As I updated some of the macros I use with ISpell when I got 2.04
(because they had some filenaming problems), I will include them
in this package. Look in rexx/ for GUISpell/ISpell macros.
Currently, GUISpell makes no attempt to fire up ISpell, thus you must
make sure that it is up and running before GUISpell tries to request
ISpell services. If you forget to start ISpell, currently the screen
will flash when GUISpell tries to send ISpell a message. You may
start up ISpell and retry the GUISpell operation, no harm done...
This issue is being looked into and is to be addressed in the full
release.
This is a rough manual to GUISpell:
GUISpell - The GUI:
These are brief notes to get you going, play around a bit.
[This public release of GUISpell only supports public screens as
follows: first try to open on CED's screen if available,
else try to open on WorkBench screen.
Other releases will support public screens in a general way and allow
public screen jumping, etc., but you will have to buy that version.]
[This public release of GUISpell only supports the plain ISpell
program's ARexx port. The full release supports general spell
checking programs that adhere to the `Spell Checker ARexx Interface'
and International ISpell ARexx port.]
Lookup Style-
Spell: uses address 'IRexxSpell' check <current word in user text area>
to generate a list of replacement words in the list view area
when a `check' is requested (see below).
Reg exp: uses address 'IRexxSpell' lookup ...
Exact: uses address 'IRexxSpell' quickcheck ...
Auto-Clip-
[If turned on]
Turns on the clipboard hooks! When another application places text
IFF data into the clipboard, GUISpell will take the new data from the
clipboard and place it into the user text area. The new data is then
checked with the currently selected Lookup Style. There is a discriminator
filter that will not latch new data if it looks like more than one word.
In cases that are discriminated against, the user must manually invoke
the `from clip' operation by hitting the From Clip button. This mode works
great with Snap's ability to snap a word into the clipboard.
Likewise, when the user selects a replacement word from the list view area,
the word is transferred to the clipboard.
Add button-
Adds the current word in the user text area to the personal dictionary,
using the address 'IRexxSpell' add ... command of ISpell.
[If no personal dictionary was found at startup time, then one is created
by ISpell. Consult ISpell documentation, as I think that there may be
some differences based upon version. The version I currently use likes to
create and find the personal dictionary in the directory pointed to by
env:HOME and then in S: (if env:HOME is not set).]
User text area-
There are many ways that this field can be set. The most direct way is
for the user to click inside the field and type new data. Standard
Amiga-Q/Amiga-X handling is performed. Hitting return while the text
cursor is anywhere in the field will start a spell check with the currently
set Lookup Style.
Do button-
Alternate way to start a spell check with the currently set Lookup Style.
From Clip button-
The manual way to get data from the clipboard. The new data is then
checked with the current Lookup Style. There is a discriminator
filter that will not *check* (note how this is different from the
discriminator on the auto-clip action) new data if it looks like more than
one word. In cases that are discriminated against, the user must manually
invoke the `Do' operation by hitting the Do button.
To Clip button-
The manual way to put data into the clipboard. The current text in the
user text area is transferred to the clipboard.
List View area-
The user can view available replacement words after a check is completed
by using the available scoll bar. If a word is clicked upon, then it
is transferred to the user text area (a REXX call back and an auto-clip action
may take place also).
This area can be hidden from view with the ZOOM gadget. It is
restored in the same manner as hiding, another click on the ZOOM
gadget.
The first entry in the list view is a solo character form the table below
(OR "yes" or "no", if in exact mode):
[This is a temp kludge. See future issues below. -Loren]
[Excerpt taken from man/ispell.1:]
If the word was found in the main dictionary, or your personal dictionary,
then the line contains only a '*'. If the word was found through suffix
removal, then the line contains a '+', a space, and the root word. If the
word is not in the dictionary, but there are near misses, then the line
contains an '&', a space, and a list of the near misses separated by
spaces.
Also, each near miss is capitalized the same as the input word if unless
such capitalization is illegal; in the latter case each near miss is
capitalized correctly according to the dictionary. Finally, if the word
neither appears in the dictionary, and there are no near misses, then the
line contains only a '#'. This mode is also suitable for interactive use
when you want to figure out the spelling of a single word.
GUISpell - The ARexx interface:
[This public release of GUISpell only supports one ARexx port name.
The name of the port is 'GUISpell'.]
CHECK <word>
Inserts <word> into the user's edit window and initiates an async
spell check upon the word. The list view is updated once the request
has been satisfied by ISpell. Returns the string, "ok".
NOTE: Returns right after initiating the spell request. GUISpell
doesn't wait for the return from ISpell. Use the IRexxSpell interface
if you want to directly spell check a word. Currently, the lookup style
is always `Spell' (even if the user has set some other mode via the
GUI).
CURRENTTEXT
Returns, in string form, the current user selected text (i.e. the
text in the user's edit window).
CHECKCALLBACKHOOK <path:path/.../file.rexx> <parameters>
If a check call back hook is not already present, this ARexx message
causes GUISpell to install a call back hook that is activated ONCE
AND ONLY ONCE when a user clicks on a replacement word.
Returns the string "installed" or "notinstalled" depending upon if
a hook could be installed.
NOTE: Currently, the rexx call back with parameters should be less than
512 bytes of data. If a request to install a call back with more than
512 bytes of data is found, it will fail with a "notinstalled" return.
VERSION
A short version string is returned with a list of all supported ARexx
commands.
EXIT
Causes GUISpell to terminate after replying to the request.
Returns the string "bye".
WARNING: I did find a nasty bug in Snap 1.61 that *will* cause a
system crash if the IFF text in the clipboard has an ANNO chunk after
the the data chunk! Mail has been sent to Snap's author, but after a
month, I still haven't heard a reply. Surprisingly, ASDG's cb2rx has
a problem (not a crash inducing error) with ANNO chunks in IFF text
also! Needless to say, I don't put ANNO chunks in the IFF files
anymore.
Features in the full non-freely redistributable release (that isn't
quite done yet):
Ability to specify which public screen to open on at startup time.
Move (jump) between public screens via ARexx and GUI.
Support for more than one GUISpell being open (ARexx port stuff fails
currently in the free public release) and ability to name the ARexx
port GUISpell should use.
Ability to specify name of backend spell server's ARexx port to
connect to a startup time and dynamically via GUI and ARexx.
Ability to start a backend spell server via GUI.
Support for user specified window/zoom coordinates.
More power exposed to ARexx interface.
True `hide window' state (ARexx or commodity HotKey brings back) in
addition to `zoom window'.
Fix of the List View Solo Character on First Line kludge. That is,
the list view is only used to list replacement words and the result of
a spell check is displayed in another (cleaner) manner.
Support, I won't answer any [e]mail related to GUISpell unless you are
registers. Bug fixes will be as fast as I can make them if you are
registered.
Full source included as in this version. Unlike this free public
version, you will have the right to make changes (that may be passed
around to other registered users of GUISpell if you like). I believe
in full source disclosure (ah, the one thing about GNU software that I
really like).
If you use ISpell, please give this beast a work out. Feel free to
tell me what you like and hate about the implementation (proposed and
actual). New feature ideas will be welcomed. FINAL DISCLAIMER: I am
under no obligation to provide support or reply [e]mail on anything
you [e]mail me related to this free public release of GUISpell OR to
provide the above mentioned full non-freely redistributable version of
GUISpell. I'm somewhat of a softy and will most likely answer your
[e]mail and I have every intention of finishing the full release soon,
but one never knows what might come up.
Regards and thanks for reading this document,
Loren J. Rittle
l-rittle@uiuc.edu
Wed Mar 25 22:19:59 1992