home *** CD-ROM | disk | FTP | other *** search
- This is the README file for the distribution of
- ISpell Version 3.3LJR with ARexx Server Mode!
- Fri Nov 20 01:16:13 1992
- by Loren J. Rittle
-
-
- IMPORTANT NOTE:
- Additions and modifications copyright (C) 1990, 1991, 1992 Loren J. Rittle.
- Special thanks to Tom Rokicki of Radical Eye Software for the MinRexx code.
- Thanks to Mike Meyer for the mg interface to ISpell.
- Thanks to Willy G. J. Langeveld for enhanced TurboText interface to ISpell.
- Thanks to Christopher A. Wichura for the TurboText interface to GUISpell.
- Thanks to Steve Koren for the GNU EMACS interface to ISpell.
- Thanks to all who hacked on ISpell before me. In particular,
- Luis Soltero and Tom Rokicki worked on the Amiga port before I
- added the ARexx port.
- Original version of ISpell copyright (C) 1983 Pace Willisson.
- Permission for non-profit use is hereby granted.
- All other rights reserved.
-
- Currently, the TurboText interface to ISpell contributed by Willy L.
- *may* be broken. My fault, not Willy's. This problem, if it exists,
- will be addressed in a soon to be released update. The reason that
- this couldn't be avoided/fixed before public release is due to the
- fact that I currently have no way to make things privately available
- via ftp from within my work site (in the name of security :-( ).
- I don't have TurboText and thus couldn't test it myself. I tried to
- hack his macros to conform to the new method, but who knows if I
- got it right? I have been dragging my feet on this release for
- too long and thus decided to get it out the door! :-)
-
- GUISpell is now included with the ISpell distribution. GUISpell and
- all other included interfaces (vlt, shell, wshell, ced) were done by myself.
-
- This release of ISpell requires AmigaOS 2.04 or later.
-
- ANOTHER *REAL* IMPORTANT NOTE:
- This is the first distribution of ISpell (that I know of, at least)
- that has been compiled with SAS/C v6.0 instead of SAS/C v5.x.
- Because v5.x and v6.0 use different bit field ordering, all
- old hashed dictionaries need to be regenerated from source (dict.2 or
- dict.191, etc) via the buildhash command. Hopefully, people with
- smaller machines will be able to obtain the new ispell.hash file
- from the same place you got this distribution.
-
- FINAL IMPORTANT NOTE:
- Currently, the Amiga version of ISpell is my pet project. You get source,
- but if you make any neat (or useful) enhancements it would probably be best
- if you were to send them to me for inclusion in the next major release.
- Your input will be plainly acknowledged in the README file and greatly
- appreciated by myself and users of the Amiga version of ISpell everywhere.
- I will take anything: new or improved front ends, new features,
- improvements in WorkBench support (currently nil:).
-
- To install ISpell from binary:
- a) Unlharc this archive (you most likely did this if you are
- reading this).
- b) copy c/ispell to c:
- c) copy c/GUISpell to c:
- d) copy s/ispell.hash to s:
- e) make sure that the t: logical assign exists.
- f) look at README's in the interfaces/ directory tree.
- Follow any directions related to an interface you would
- like to install.
- g) Read notes below.
-
- To install ISpell from source:
- Takes some work these days. :-)
- a) cd ISpell & smake
- b) cd interfaces/GUISpell-1.1 & smake
- c) install as above (except get binaries from the source directory)
-
- Memory requirements to run ISpell:
- The ISpell dictionary comes in several flavors. The big dictionary
- distribution requires an amiga w/ LOTS of ram. To compile the dict.2
- version you will need 1.4 megs of ram. To run this version you need 750k.
- This dictionary supports Capitalization mode. Currently dict.2 is the only
- one shipped with the ISpell package.
-
- Notes on the ARexx Server Mode of ISpell:
-
- Quick Overview of Servers
-
- Servers are a big deal in the UNIX world. I like the way things work under
- UNIX most of the time, the way servers work under UNIX is no exception. A
- server is a program that stays in core waiting for requests from other
- programs. In general, when a server receives a request for service, it
- performs a given action or a sequence of actions and then replies to the
- requester. The requests to the server can come from a number of sources:
- front-end client programs running on the local host (with any type of
- message passing scheme, e.g. EXEC's or ARexx's message passing facility)
- or a remote host (with the appropriate networking software, e.g. TCP/IP),
- and directly from the user via some form of command line (e.g. via ARexx).
-
- Some advantages to usings servers instead of classic approaches are as
- follows,
-
- 1. The client and the server can be run on different machines with the
- appropriate networking software.
-
- 2. User can customize the front-end (client) software without having
- to know how the server works internally. User must only know
- the client-server interface.
-
- 3. Servers can sometimes perform a given operation much faster than
- the standard load, run, terminate cycle. For example, if one wants
- to spell check even one word with ISpell about 700KB of information
- must be loaded into memory. Later, if another single word must be
- checked, then the entire 700KB of data must be reloaded into memory.
- With ISpell's new server mode, small client programs can connect
- up with the running ISpell server to spell check words or documents,
- while avoiding the reload time.
-
- Overview of the ARexx Server Mode of ISpell
-
- By no surprise, currently under the AmigaOS client-server relations are
- most easily implemented with ARexx. Requests and replies take the form of
- ARexx messages. The only limitation of using ARexx in order to implement
- client-server relations is that the client and the server must run on the
- same Amiga. Hopefully, this restriction will be lifted with the advent of
- support on the Amiga for real networking protocols (TCP/IP and others).
-
- ISpell can be started up in server mode with the following command:
-
- run <nil: >nil: ispell -r <nil: >nil:
-
- Once the server has been started, it is a good idea to wait for the ISpell
- ARexx port to show up before trying to use it. The ISpell's ARexx port
- name is IRexxSpell and the easiest way to wait for it's arrival is with the
- following command,
-
- waitforport 'IRexxSpell'
-
- For thoses of you who are excited to see the ISpell ARexx server work type,
-
- rx "options results;address 'IRexxSpell' check ites;say result"
-
- at a Shell prompt.
-
- You should see the computer respond with,
-
- & BITES CITES ICES IRES ITEM ITEMS ITS KITES RITES SITES TIES
-
- Or, if you have installed the ARexx front-end scripts into your REXX:
- directory then try typing,
-
- spell ites
-
- The computer should respond with,
-
- The word 'ites' is not found. Try these words: bites cites ices
- ires item items its kites rites sites ties
-
- Please see the README's interfaces/ directory tree for other interfaces
- available.
-
- Feel free to write your own front-ends or modify the ones that I have
- supplied. Below are the ARexx commands that ISpell knows how to respond
- to. See my examples in the rexx directory for exact usage. Have fun and
- please give the improved or new front-ends to ISpell away for all to see
- and play with.
-
-
- Commands that the ISpell Server Will Respond To
-
- ADD <word> --- Adds a word to the `global personal dictionary'
- and immediately save the personal dictionary
- to disk.
-
- QUICKADD <word> --- Adds a word as above, without saving changes
- to the file on disk. An ADD command will
- record any QUICKADD's since the last ADD.
- If the server is shut down (or the Amiga's
- power is lost), then all QUICKADD'ed words
- are lost if no ADD was performed.
-
- CHECK <word> --- The ISpell server checks the stated word in its
- dictionary and returns a string that describes
- if the word was found or, if not, replacements.
- This return string is documented in man/ispell.1,
- it is the same as if words were piped in via
- standard in. See rexx/spell.rexx and
- rexx/ced/WordSpell.ced for how to parse the
- returned string in ARexx.
-
- 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.
-
- QUICKCHECK <word> --- As above, but only checks to see if the
- word is in the dictionary. Does not try
- to find close matches, etc. See
- rexx/ced/QuickWordSpell.ced for Usage.
- Will return the string 'ok' or 'bad'
- depending on if the word is found or not.
-
- LOOKUP <word> --- Looks up word (really a grep pattern).
- See rexx/lookup.rexx for usage. `.*' is
- the match anything wild-card :-). `.' is
- the match one character wild-card, see a
- manual on grep or src/regex.c for more
- information.
-
- FILECHECK <filename> --- The ISpell server checks the named file, returns
- the filename of a temporary file that contains
- a list of words not found in the dictionary.
- The client is required to delete the temporary
- file when done with it. Be sure to include the
- complete path in the filename as there are no
- good ways to know the current directory of the
- ISpell server. See rexx/spellfile.rexx and
- rexx/ced/Spell.ced for usage.
-
- EXTENDEDFILECHECK <filename> --- The ISpell server checks the named file
- and return the list of mispelled words and
- locations in a stem variable called ispellresult.
-
- On return:
- ispellresult. is the stem name.
- ispellresult.count is the number of errors.
- ispellresult.1.word is the first word in error.
- ispellresult.1.line is the line position of the
- first word in error.
- ispellresult.1.column is the column position of
- the first word in error.
- ispellresult.j.word is the j'th word in error.
- ispellresult.j.line is the line position of the
- j'th word in error.
- ispellresult.j.column is the column position of
- the j'th word in error.
-
- This is a real hack. Please expect this to
- be cleaned up. There may be bugs here. Not
- well tested. Be careful. Etc...
-
- VERSION --- The ISpell server replies with its version string
- and a line of the currently compiled in ARexx
- commands that it will response to.
-
- EXIT --- Causes the ISpell server to terminate after
- replying to the request.
-
-
- Please direct comments and bug reports to
-
- Loren J. Rittle <rittle@comm.mot.com>
-
- 1008 Landing Rd.
- Naperville, IL 60540
-
- wk: (708) 576-7794
- hm: (708) 420-7942
-