home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / wp_dtp / ispell.lha / README < prev    next >
Text File  |  1991-02-08  |  14KB  |  319 lines

  1.               This is the README file for the distribution of
  2.                ISpell Version 3.1ljr with ARexx Server Mode!
  3.                          Fri Feb  8 11:47:01 1991
  4.                             by Loren J. Rittle
  5.  
  6.  
  7. IMPORTANT NOTE:
  8. Additions and modifications copyright (C) 1990, 1991  Loren J. Rittle.
  9. Special thanks to Tom Rokicki of Radical Eye Software for the MinRexx code.
  10. Thanks to all who hacked on ISpell before me.
  11. Original version of ISpell copyright (C) 1983  Pace Willisson.
  12. Permission for non-profit use is hereby granted.
  13. All other rights reserved.
  14.  
  15. ANOTHER *REAL* IMPORTANT NOTE:
  16. This is the first distribution of ISpell (that I know of, at least)
  17. that has been compiled with SAS/C v5.10 instead of Aztec C v3.6A.
  18. Because SAS/C and Aztec C use different bit field ordering, all
  19. old hashed dictionaries need to be regenerated from source (dict.2 or
  20. dict.191, etc) via the buildhash command.  Hopefully, people with
  21. smaller machines will be able to obtain the new ispell.hash file
  22. from the same place you got this distribution.
  23.  
  24. FINAL IMPORTANT NOTE:
  25. Currently, the Amiga version of ISpell is my pet project.  You get source,
  26. but if you make any neat (or useful) enhancements it would probably be best
  27. if you were to send them to me for inclusion in the next major release.
  28. Your input will be plainly acknowledged in the README file and greatly
  29. appreciated by myself and users of the Amiga version of ISpell everywhere.
  30. I will take anything:  new or improved front ends, new features,
  31. improvements in WorkBench support (currently nil:).
  32.  
  33. I, Loren J. Rittle, claim that I am the current keeper of ISpell for the
  34. Amiga.
  35.  
  36. To install ISpell from binary:
  37.     a) Unlharc this archive (you most likely did this if you are
  38.        reading this).
  39.     b) Acquire the appropriate hashed dictionary file, ispell.hash
  40.        (you should be able to get a hashed dictionary file from the
  41.        place that you received this distribution). There are
  42.        different hashed dictionary files.  You must pick one of them
  43.        based upon how much ram you have to spare, see below.  Be sure
  44.        to read the above note entitled `ANOTHER *REAL* IMPORTANT NOTE.'
  45.        If you already have ISpell installed, you may have to acquire
  46.        the new hashed dictionary file or rebuild it from source with
  47.        the buildhash command.
  48.     c) copy ispell.hash s:
  49.        -or- copy ispell.smallhash s:ispell.hash (if memory is tight)
  50.     d) copy c/ispell c:
  51.     e) make sure that the t: logical assign exists.
  52.     f) copy rexx rexx: (if you want to take advantage of Rexx Server
  53.        Mode, see below)
  54.     g) Read notes below.
  55.  
  56. To install ISpell from source:
  57.     (Please note this only compiles under SAS/C v5.10
  58.     at this time. --- LJR)
  59.     (You need ARexx includes and rexxglue.asm to make ISpell with
  60.     ARexx Server Mode from source. These come with ARexx, just copy
  61.     rexxglue.asm to lc:/source and put includes in your standard
  62.     include: tree. --- LJR)
  63.     a) Unlharc this archive (you most likely did this if you are
  64.        reading this).
  65.     b) Acquire a dictionary file, either dict.191 or dict.2
  66.        (you should be able to get a dictionary file from the place 
  67.        that you received this distribution).  There are different
  68.        dictionary files.  You must pick one of them based upon how much
  69.        ram you have to spare, see below.  Place this acquired source
  70.        dictionary in the src directory.
  71.     c) cd src
  72.     d) edit the makefile and select
  73.         1) dictionary directory, and
  74.         2) dictionary of choice. You must set DDICT, 
  75.            BIG_DICT and HSIZE appropriately.
  76.     e) make (lmk)
  77.      f) copy ispell <c directory>
  78.      g) copy ispell.hash <dictionary directory>
  79.     h) make sure that the t: logical assign exists.
  80.     i) copy rexx rexx: (if you want to take advantage of Rexx Server
  81.        Mode, see below)
  82.     j) Read notes below.
  83.  
  84.  
  85. Notes by Luis Soltero (Modified by LJR slightly to bring it up to date):
  86.  
  87. The ISpell dictionary comes in several flavors.  The big dictionary
  88. distribution requires an amiga w/ LOTS of ram.  To compile the dict.2 
  89. version you will need 1.4 megs of ram. To run this version you need 
  90. 750k.  This dictionary supports Capitalization mode.
  91.  
  92. The small dictionary distribution also requires lots of ram.
  93. 700k to compile and 450k to run.  dict.191 does not support Capitalization.
  94.  
  95. I have tried to keep the UNIX code intact. This version of ISpell
  96. should run fine under UNIX.  To compile on a UNIX machine, but you will
  97. need the Makefile.unix file from a past distribution of ISpell, then
  98.     copy Makefile.unix makefile
  99.     follow normal UNIX installation procedures.
  100. (Well, this is *not* the case anymore! Sorry, but most UNIX compilers
  101. don't handle ANSI C as well as SAS/C does.  When I converted the
  102. source over to it, I decided that it should be clean ANSI C.
  103. Good luck getting any of this to compiler under UNIX. --- LJR
  104. Note: I'm not sorry I did this, as ISpell seems to be quite a
  105. bit more stable now.)
  106.  
  107. The dictionary management stuff does run on the amiga.  If you take
  108. a closer look you will note that its all bourne, sed and awk scripts.
  109. All of these scripts are not included, again see past distribution.
  110. Maybe some other day....
  111.  
  112. One enhancement I (Luis) have made to ISpell is the addition of regex
  113. searching for words.  The original code passed the regular expression to
  114. egrep.  Egrep was expected to search for words in /usr/dict/web2.  I
  115. uploaded a version of regex.c from j.cc.purdue.edu and added code to do the
  116. searching in the ram resident hash table.  I have not tested this code
  117. under UNIX but expect it to work fine (famous last words).
  118.  
  119. <End of notes by Luis.>
  120.  
  121. <Start of new notes by Loren.>
  122.  
  123. Notes on the ARexx Server Mode of ISpell:
  124.  
  125.     Quick Overview of Servers
  126.  
  127. Servers are a big deal in the UNIX world.  I like the way things work under
  128. UNIX most of the time, the way servers work under UNIX is no exception.  A
  129. server is a program that stays in core waiting for requests from other
  130. programs.  In general, when a server receives a request for service, it
  131. performs a given action or a sequence of actions and then replies to the
  132. requester.  The requests to the server can come from a number of sources:
  133. front-end client programs running on the local host (with any type of
  134. message passing scheme, e.g.  EXEC's or ARexx's message passing facility)
  135. or a remote host (with the appropriate networking software, e.g.  TCP/IP),
  136. and directly from the user via some form of command line (e.g.  via ARexx).
  137.  
  138. Some advantages to usings servers instead of classic approaches are as
  139. follows,
  140.  
  141.   1.  The client and the server can be run on different machines with the
  142.       appropriate networking software.
  143.  
  144.   2.  User can customize the front-end (client) software without having
  145.       to know how the server works internally.  User must only know
  146.       the client-server interface.
  147.  
  148.   3.  Servers can sometimes perform a given operation much faster than
  149.       the standard load, run, terminate cycle.  For example, if one wants
  150.       to spell check even one word with ISpell about 700KB of information
  151.       must be loaded into memory.  Later, if another single word must be
  152.       checked, then the entire 700KB of data must be reloaded into memory.
  153.       With ISpell's new server mode, small client programs can connect
  154.       up with the running ISpell server to spell check words or documents,
  155.       while avoiding the reload time.
  156.  
  157.     Overview of the ARexx Server Mode of ISpell
  158.  
  159. By no surprise, currently under the AmigaOS client-server relations are
  160. most easily implemented with ARexx.  Requests and replies take the form
  161. of ARexx messages.  The only limitation of using ARexx in order to 
  162. implement client-server relations is that the client and the server must
  163. run on the same Amiga.  Hopefully, this restriction will be lifted with
  164. the advent of support on the Amiga for real networking protocols (TCP/IP
  165. and others).
  166.  
  167. ISpell can be started up in server mode with one of the following command.
  168. If you have runback and the NULL:  device then the preferred method for
  169. starting the ISpell server is,
  170.  
  171.     runback ispell -r >null: <null:
  172.  
  173. because it disconnects completely from the console window that it is
  174. started from.  The following method will work alright on any Amiga, with
  175. the small problem that it keeps a lock on the console window, thus you can
  176. not close the window until ISpell is terminated.
  177.  
  178.     run ispell -r >nil: <nil:
  179.  
  180. Once the server has been started, it is a good idea to wait for the ISpell
  181. ARexx port to show up before trying to use it.  The ISpell's ARexx port
  182. name is IRexxSpell and the easiest way to wait for it's arrival is with the
  183. following command,
  184.  
  185.     waitforport 'IRexxSpell'
  186.  
  187. For thoses of you who excited to see the ISpell ARexx server work type,
  188.  
  189.     "options results;address 'IRexxSpell' check ites;say result"
  190.  
  191. at a WShell prompt (What!  Not using the WShell yet!  OK, if you promise to
  192. buy it soon, I'll tell you how to get this to work without the WShell for
  193. now --- add 'rx' in front of the rest of the command line.  If you don't
  194. have ARexx, then none of this will work at all, sorry!)
  195. You should see the computer respond with,
  196.  
  197.     & BITES CITES ICES IRES ITEM ITEMS ITS KITES RITES SITES TIES
  198.  
  199. Or, if you have installed the ARexx front-end scripts into your REXX:
  200. directory then try typing,
  201.  
  202.     spell ites
  203.  
  204. Poor souls san WShell should add the 'rx' in front of the command line.
  205. Even poorer souls without ARexx should, at this point, stop reading this
  206. and buy ARexx and WShell, and then come back to this after installing said
  207. software.  You can't spend $60 for Amiga software in any better way, in my
  208. opinion.  More than enough said.  The computer should respond with,
  209.  
  210.     The word 'ites' is not found. Try these words: bites cites ices 
  211.     ires item items its kites rites sites ties
  212.  
  213. There are also CygnusEd Professional macros to spell check a word and a
  214. buffer included with this package.  See rexx/ced for CED macros.  See
  215. s/RexxCommands for function key bindings for CED macros.  Load these with
  216. the Load Dos/ARexx commands...  menu item in CED.  Or, if you have already
  217. assigned some function keys, use the Install Dos/ARexx commands...  menu
  218. item repeatedly to customize your own setup.  If you don't have the
  219. (currently) newest versions of CygnusEd (Release 2.12) and ARexx (version
  220. 1.15) you may need to hack the macros up a bit or try to use the old
  221. versions given in rexx/ced/old.
  222.  
  223. Mike (My Watch Has Windows) Meyer has been kind enough to provide ARexx
  224. macros that interface the mg editor to ISpell.  See the README file in
  225. the mgStuff directory.  I have not used any of this, because I don't
  226. have/use mg.  This is officially unsupported, but knowing Mike, you
  227. shouldn't have any problems.  He also submitted an ISpell WishList at the
  228. same time.  I will look into the ideas.  Thanks Mike!
  229.  
  230. Feel free to write your own front-ends or modify the ones that I have
  231. supplied.  Below are the ARexx commands that ISpell knows how to respond
  232. to.  See my examples in the rexx directory for exact usage.  Have fun and
  233. please give the improved or new front-ends to ISpell away for all to see
  234. and play with.  I would like to see a nice CanDo front-end to ISpell.
  235.  
  236.  
  237.      Commands that the ISpell Server Will Respond To
  238.  
  239. ADD <word>         ---  Adds a word to the `global personal dictionary'
  240.               and immediately save the personal dictionary
  241.               to disk.
  242.  
  243. QUICKADD <word>      ---  Adds a word as above, without saving changes
  244.               to the file on disk.  An ADD command will
  245.               record any QUICKADD's since the last ADD.
  246.               If the server is shut down (or the Amiga's
  247.               power is lost), then all QUICKADD'ed words
  248.               are lost if no ADD was performed.
  249.  
  250. CHECK <word>         ---  The ISpell server checks the stated word in its
  251.               dictionary and returns a string that describes
  252.               if the word was found or, if not, replacements.
  253.               This return string is documented in man/ispell.1,
  254.               it is the same as if words were piped in via
  255.               standard in. See rexx/spell.rexx and
  256.               rexx/ced/WordSpell.ced for how to parse the
  257.               returned string in ARexx.
  258.  
  259. Excerpt taken from man/ispell.1:
  260. If the word was found in the main dictionary, or your personal dictionary,
  261. then the line contains only a '*'.  If the word was found through suffix
  262. removal, then the line contains a '+', a space, and the root word.  If the
  263. word is not in the dictionary, but there are near misses, then the line
  264. contains an '&', a space, and a list of the near misses separated by
  265. spaces.
  266.  
  267. Also, each near miss is capitalized the same as the input word if unless
  268. such capitalization is illegal; in the latter case each near miss is
  269. capitalized correctly according to the dictionary.  Finally, if the word
  270. neither appears in the dictionary, and there are no near misses, then the
  271. line contains only a '#'.  This mode is also suitable for interactive use
  272. when you want to figure out the spelling of a single word.
  273.  
  274. QUICKCHECK <word>    ---  As above, but only checks to see if the
  275.               word is in the dictionary.  Does not try
  276.               to find close matches, etc.  See
  277.               rexx/ced/QuickWordSpell.ced for Usage.
  278.               Will return the string 'ok' or 'bad'
  279.               depending on if the word is found or not.
  280.  
  281. LOOKUP <word>         ---  Looks up word (really a grep pattern).
  282.               See rexx/lookup.rexx for usage.  `.*' is
  283.               the match anything wild-card :-). `.' is
  284.               the match one character wild-card, see a
  285.               manual on grep or src/regex.c for more
  286.               information.
  287.  
  288. FILECHECK <filename> ---  The ISpell server checks the named file, returns
  289.               the filename of a temporary file that contains
  290.               a list of words not found in the dictionary.
  291.               The client is required to delete the temporary
  292.               file when done with it.  Be sure to include the
  293.               complete path in the filename as there are no
  294.               good ways to know the current directory of the
  295.               ISpell server.  See rexx/spellfile.rexx and
  296.               rexx/ced/Spell.ced for usage.
  297.  
  298. VERSION             ---  The ISpell server replies with its version string
  299.               and a line of the currently compiled in ARexx
  300.               commands that it will response to.
  301.  
  302. EXIT             ---  Causes the ISpell server to terminate after
  303.               replying to the request.
  304.  
  305.  
  306. BUGS:    This program does not take to running out of ram gracefully.
  307.     (I have no idea if this is still the case. --- LJR)
  308.  
  309.  
  310. Please direct comments and bug reports to
  311.  
  312.   Loren J. Rittle
  313.   1008 Landing Rd.
  314.   Naperville, IL  60540
  315.   (708)420-7942
  316.  
  317.   Internet E-Mail Address:
  318.   lrg7030@uxa.cso.uiuc.edu
  319.