home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / ch134_e.lha / CHelp.ttx < prev    next >
Text File  |  1992-08-29  |  2KB  |  83 lines

  1. /*
  2.     ARexx macro to load reference file generated by CHelp
  3.     920625: by Mikael BergLund
  4.       Could be very simple if only the GetWord command would return special
  5.       characters as '*' and '!' and so on. Oh well,  could be solved anyway.
  6.       Not totally foolprof i guess. Could probably have a special variant of
  7.       this command that cannot do wildcard searches.
  8. */
  9.  
  10. /* Request results from our hosts */
  11.  
  12. options results
  13.  
  14. /* We don't want to see ARexx steeping about in our document, won't we? */
  15.  
  16. SetDisplayLock ON
  17.  
  18. /* Move to beginning of word */
  19.  
  20. MovePrevWord
  21.  
  22. /* Loop until we stumble upon a '(' or a ' '. Could look for several others
  23.   but these will suffice for the moment */
  24.  
  25. str = ''
  26. do while 1 ~= 2
  27.   GetChar
  28.   c = result
  29.   if ( c ~= '(' ) & ( c ~= ' ' ) & ( c ~= '0a'x ) & ( c ~= ',' ) then
  30.     str = str||c
  31.   else
  32.     break
  33.   MoveRight
  34. end
  35.  
  36. /* Make it upper case */
  37.  
  38. str = upper( str )
  39.  
  40. /* Get length */
  41.  
  42. l = length( str )
  43.  
  44. /* Search for TAGS string attached to end of argument. If present strip it or
  45.   CHelp won't find it */
  46.  
  47. lp = lastpos( 'TAGS', str )
  48.  
  49. if l - lp = 3 then str = delstr( str, l - 3 )
  50.  
  51. /* Remove display lock or we will have serious problems editing this
  52.   document again */
  53.  
  54. SetDisplayLock OFF
  55.  
  56. SetStatusBar 'Searching 4 'str
  57.  
  58. /* Pass argument to CHelp for it to look up */
  59.  
  60. address CHELP1 look str
  61.  
  62. /* CHelp returns all output in a file called ram:chelp.lup. No error checking
  63.   here, if this file is empty we load it anyway */
  64.  
  65. OpenDoc NAME 'ram:chelp.lup'
  66.  
  67. /* Port name of the newly opened document is returned, pick it up */
  68.  
  69. port = result
  70.  
  71. /* Set our host address to the new document... */
  72.  
  73. address VALUE port
  74.  
  75. /* ... and make it read-only */
  76.  
  77. SetReadOnly ON
  78.  
  79. /* We've done our thing so... exit. ARexx will exit this script anyway
  80.   regardless of the exit keyword or not, but for the sake of clarity */
  81.  
  82. exit
  83.