home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #4 / amigaacscoverdisc1998-041998.iso / utilities / shareware / workbench / hypertext_dtc / arexx / searchxref.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1997-03-31  |  2.8 KB  |  122 lines

  1. /*
  2. ** $PROJECT: HyperText-DataType-System
  3. **
  4. ** $VER: searchxref.rexx 40.2 (31.03.97)
  5. **
  6. ** $AUTHOR: Stefan Ruppert , Windthorststrasse 5 , 65439 Floersheim , GERMANY
  7. **
  8. ** $COPYRIGHT: (C) Copyright 1997 by Stefan Ruppert, All Rights Reserved!
  9. **
  10. ** $EMAIL: Stefan.Ruppert@informatik.fh-wiesbaden.de
  11. **
  12. ** $HISTORY:
  13. **
  14. ** 31.03.97 : 040.002 : added PUBSCREEN support
  15. ** 21.02.97 : 040.001 : initial
  16. **
  17. */
  18.  
  19. /* --------------------------- needed libraries --------------------------- */
  20.  
  21. Call AddLib('rexxsupport.library',0,-30,0)
  22. Call AddLib('rexxdossupport.library',0,-30,0)
  23. Call AddLib('rexxxref.library',0,-30,0)
  24. Call Addlib("rexxreqtools.library", 0, -30, 0)
  25.  
  26. Signal On Syntax
  27. Parse Arg args
  28.  
  29. rxport        = ''
  30. stem.search   = ''
  31. stem.max      = 32767
  32. stem.pubscreen= ''
  33. stem.verbose  = 0
  34. stem.prompt   = 0
  35.  
  36. reqtags       = ''
  37.  
  38. 'GETATTR OBJECT=APPLICATION FIELD=SCREEN VAR=STEM.PUBSCREEN'
  39.  
  40. lang          = GetEnv('LANGUAGE')
  41. If lang = 'deutsch' Then Do
  42.    reqgadgets = '_Suchen|_Abbrechen'
  43.    reqtitle   = 'HTDS XRef Abfrage'
  44.    doctitle   = 'XRef Abfrage Ergebnis für : '
  45. End
  46. Else
  47. Do
  48.    reqgadgets = '_Search|_Cancel'
  49.    reqtitle   = 'HTDS XRef Query'
  50.    doctitle   = 'XRef Query Result for : '
  51. End
  52.  
  53. template = 'SEARCH,MAX/N,PUBSCREEN/K,PROMPT/S,VERBOSE/S'
  54.  
  55. If ReadArgs(args,template,'STEM.') Then Do
  56.    If stem.pubscreen ~= '' Then
  57.       reqtags = reqtags || ' rt_pubscrname=' || stem.pubscreen
  58.  
  59.    If stem.search = '' | stem.prompt Then
  60.       stem.search = RTGetString(stem.search,,reqtitle, reqgadgets, reqtags)
  61.  
  62.    If stem.search = '' Then
  63.       Exit 0
  64.  
  65.    If stem.verbose Then
  66.       Say 'Searching for : "' || stem.search || '"'
  67.  
  68.    If FindXRef(stem.search,,stem.max) Then Do
  69.       If stem.verbose Then
  70.      Say 'Found ' || xref.count || ' matches.'
  71.  
  72.       If xref.count = 1 Then
  73.      link = MakeLink(1)
  74.       Else
  75.       Do
  76.      /* try to flush old files */
  77.      link = 'T:xref.hguide'
  78.      i = 0
  79.      old = 0
  80.      Do While Exists(link)
  81.         If old == i Then Do
  82.            'FLUSH DOCUMENT="' || link || '"'
  83.         Delete(link)
  84.            old = old + 1
  85.         End
  86.         Else
  87.         Do
  88.            i = i + 1
  89.            link = 'T:xref' || i || '.hguide'
  90.         End
  91.      End
  92.  
  93.      If Open('fh',link,'w') Then Do
  94.         WriteLn('fh','@hyperguide xref-query.hguide')
  95.         WriteLn('fh','@node main "' || doctitle || '`' || stem.search || '''"')
  96.         Do i = 1 To xref.count
  97.         Call WriteLn('fh','@{"' || xref.i.Name || '" link "' || MakeLink(i) || '"}@{tab}')
  98.         END
  99.         WriteLn('fh','@endnode')
  100.         Call Close('fh')
  101.      End
  102.       End
  103.  
  104.       If stem.verbose Then
  105.      Say 'Link To "' || link || '"'
  106.       'LINK ' || link
  107.    End
  108. End
  109.  
  110. Exit 0
  111.  
  112. MakeLink:
  113.   xrefnumber = arg(1)
  114.   return AddPart(xref.xrefnumber.path,AddPart(xref.xrefnumber.file,xref.xrefnumber.nodename))
  115.  
  116. Syntax:
  117.   If stem.verbose & SIGL = 52 Then
  118.      Say 'Nothing found for : "' || stem.search || '"'
  119.   If stem.verbose Then
  120.      Say 'Error: ' || SIGL || ': ' || ERRORTEXT(RC)
  121.   Exit 0
  122.