/*
 * short.ged -- Show short of class name under cursor.
 *
 * Copyright (C) 1999 Thomas Aglassiner <agi@sbox.tu-graz.ac.at>
 * Freeware. Use at your own risk.
 */
version_info = "$VER: short.ged 1.0 (17.1.99)"

OPTIONS RESULTS                             /* enable return codes     */

if (LEFT(ADDRESS(), 6) ~= "GOLDED") then    /* not started by GoldEd ? */
    address 'GOLDED.1'

'LOCK CURRENT RELEASE=4'                    /* lock GUI, gain access   */

if (RC ~= 0) then
    exit

OPTIONS FAILAT 21

SIGNAL ON SYNTAX                            /* ensure clean exit       */

/* ------------------------ INSERT YOUR CODE HERE: ------------------- */

'QUERY WORD VAR=class_name'

legal_letters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_1234567890'
IF (Strip(Upper(class_name), 'B', legal_letters) = '') ,
   & (class_name ~= '') THEN ,
DO
   temporary_file = 't:short-' || class_name || '.e'

   'REQUEST STATUS="Creating short form..."'

   ADDRESS COMMAND 'rx >nil: golded:tools/eiffel/arexx/execute.rexx Port=SMALLEIFFEL.1 ' || ,
                   '"short >' || temporary_file || ' ' || class_name || '"'

   IF RC = 0 THEN DO
      'REQUEST STATUS=""'
      'WINDOW FORCE USE=' || temporary_file
   END
   ELSE DO
      'REQUEST STATUS=""'
      'REQUEST TITLE="Short Error" PROBLEM="Class ''' || class_name || ''' not found."'
   END

END
ELSE DO
   'REQUEST TITLE="Short Error" PROBLEM="Cursor must be placed over a proper class name."'
END


/* ---------------------------- END OF YOUR CODE --------------------- */

'UNLOCK' /* VERY important: unlock GUI */

exit

SYNTAX:

   SAY "Syntax error line" SIGL ":" ERRORTEXT(RC)
   'UNLOCK'

   exit
