home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / dmi125.zip / Alias.Cmd next >
OS/2 REXX Batch file  |  1996-09-26  |  4KB  |  97 lines

  1. /*********************************************************************/
  2. /* DMI IRC REXX Command Script for REXX Clients.  v1.25   26 Sep 96  */
  3. /*********************************************************************/
  4. /* Alias Management Functions                             26 Sep 96  */
  5. /*********************************************************************/
  6.  
  7. Alias:
  8.    Parse Upper Arg WinHandle WinName OurNick Verb Action AliasName AliasText
  9.    Parse Arg xWinHandle xWinName xOurNick xVerb xAction xAliasName xAliasText
  10.  
  11.    Pool = 'OS2ENVIRONMENT'
  12.    CMD = Value('COMSPEC',, Pool)
  13.    ErrStr = '*[Error]*'
  14.    DMIMsg = '*DMI*'
  15.    DataDir = Value('DataDir',, Pool)
  16.    AliasList = DataDir || 'Aliases.Lst'
  17.    
  18.    SIGNAL ON SYNTAX
  19.    Select
  20.       When (Action == 'ADD') then do
  21.          Stream(AliasList, 'C', 'SEEK <0')  /* Go to End of File */
  22.          IF (Pos('/', AliasName) \= 1) then AliasName = '/'AliasName
  23.          LineOut(AliasList, AliasName xAliasText)
  24.          IrcRexxDisplay(DMIMsg 'Alias Added: ' || AliasName'.', WinHandle)
  25.          LineOut(AliasList)
  26.       end
  27.       When (Action == 'DEL') then do
  28.          Drop TempStem.
  29.          TempNum = 0
  30.          Stream(AliasList, 'C', 'CLOSE')
  31.          IF (Pos('/', AliasName) \= 1) then AliasName = '/'AliasName
  32.          do while Lines(AliasList)
  33.             TempLine = LineIn(AliasList)
  34.             Parse upper var TempLine TempName TempText
  35.             If (IrcRexxWildCard(AliasName, TempName) == 'MATCH') then
  36.                IrcRexxDisplay(DMIMsg 'Alias deleted: ' || xAliasName, WinHandle)
  37.             else do
  38.                TempNum = TempNum + 1
  39.                TempStem.TempNum = TempLine
  40.             end
  41.          end
  42.          LineOut(AliasList)
  43.          CALL Library
  44.          rc = SysFileDelete(AliasList)
  45.          LineOut(AliasList)
  46.          do TempNum2 = 1 to TempNum
  47.             LineOut(AliasList, TempStem.TempNum2)
  48.          end
  49.          LineOut(AliasList)
  50.       end
  51.       When (Action == 'LIST') then do
  52.          IrcRexxDisplay('Current Alias list:', WinHandle)
  53.          IrcRexxDisplay('~~~~~~~~~~~~~~~~~~~', WinHandle)
  54.          if ((SysFileSearch('/', AliasList, 'Temp.') = 0) & (Temp.0 > 0)) then do
  55.             TempCount = 0
  56.             TempStr = ''
  57.             do until TempCount >= Temp.0
  58.                TempCount = TempCount + 1
  59.                parse var Temp.TempCount AliasName dummy
  60.                TempStr = TempStr Left(AliasName, 8)
  61.                If (TempCount // 5 = 0) then do
  62.                   IrcRexxDisplay(TempStr, WinHandle)
  63.                   TempStr = ''
  64.                end
  65.             end
  66.             IrcRexxDisplay(TempStr, WinHandle)
  67.          end
  68.          else
  69.             IrcRexxDisplay('No aliases defined.', WinHandle)
  70.          LineOut(AliasList)
  71.       end
  72.       When (Action == 'VLIST') then do
  73.          IrcRexxDisplay('Current Alias list:', WinHandle)
  74.          IrcRexxDisplay('~~~~~~~~~~~~~~~~~~~', WinHandle)
  75.          IrcRexxDisplay('Name     Text', WinHandle)
  76.          IrcRexxDisplay('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~', WinHandle)
  77.          do while Lines(AliasList)
  78.             TempLine = LineIn(AliasList)
  79.             Parse var TempLine TempName TempText
  80.             IrcRexxDisplay(Left(TempName, 8) TempText, WinHandle)
  81.          end
  82.          LineOut(AliasList)
  83.       end
  84.       otherwise IrcRexxDisplay(ErrStr 'Usage: /ALIAS <Option> [Name] [Text]', WinHandle)
  85.    end
  86.    Return ''
  87.  
  88. library:
  89.    CALL RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs'
  90.    CALL SysLoadFuncs
  91. Return
  92.  
  93. SYNTAX:
  94.    IrcRexxDisplay(ErrStr 'REXX Syntax Error' RC '(' || ErrorText(RC) || ') at line' SIGL 'of Alias.Cmd.', WinHandle);
  95. Return ''
  96.  
  97.