/*
**  $VER: ReConfig.ged 0.009 (10 May 1996)
**
**  © 1996 Stefan Berendes
**
**  PROGRAMNAME:  ReConfig.ged
**
**  FUNCTION:     Opens special config depending on suffix
**
**  $HISTORY:
**
**  10 May 1996 : 000.009 : bug fixed in filename parsing
**  02 May 1996 : 000.008 : use plain name IF no extension
**  02 May 1996 : 000.007 : better filename extension parsing
**  24 Apr 1996 : 000.006 : fixed bug IF filename has no extension
**  29 Mar 1996 : 000.005 : strip spaces from name, required by startup macro
**  29 Mar 1996 : 000.004 : introduced _std presets
**  29 Mar 1996 : 000.003 : specify presets dir
**  28 Mar 1996 : 000.002 : uses single configs
**  15 Mar 1996 : 000.001 : initial release
*/

OPTIONS RESULTS                             /* enable return codes     */

PARSE UPPER ARG configbase

IF configbase = "" THEN configbase = "GoldED:presets/GoldED"
ELSE IF Pos(":",configbase) = 0 THEN configbase = "GoldED:presets/"|| configbase
configbase=Compress(configbase)

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

/* OPTIONS FAILAT 22
rc = 1
DO UNTIL rc = 0
    'LOCK CURRENT'
    END
*/
'LOCK CURRENT'
OPTIONS FAILAT 6                            /* ignore warnings         */
SIGNAL ON SYNTAX                            /* ensure clean exit       */

/* ------------------------ INSERT YOUR CODE HERE: ------------------- */
'QUERY FILE VAR FILENAME'
dotpos = LastPos(".", FILENAME)
IF (dotpos ~= 0) THEN DO
    BASENAME = Left( FILENAME, dotpos-1)
    EXTNAME = SubStr( FILENAME, dotpos+1)


    ext = UPPER(EXTNAME)
    SELECT                      /* add your synonymous extensions here */
        WHEN ext = "H" THEN ext = "C"
        WHEN ext = "STY" THEN ext = "TeX"
        WHEN ext = "CLS" THEN ext = "TeX"
        WHEN ext = "GED" THEN ext = "REXX"
        WHEN ext = "AREXX" THEN ext = "REXX"
        OTHERWISE NOP
        END

    IF ext = "" THEN
        configname = configbase
    ELSE
        configname = configbase ||"_"|| ext

    configstd  = configbase || "_std"

    IF Exists(configstd || ".msc") = 0 THEN DO
        IF Exists(configname || ".msc") = 1 THEN DO
            'MISC LOAD CONFIG="'|| configname ||'.msc"'
            END
        ELSE DO
            'MISC LOAD CONFIG="'|| configbase ||'.msc"'
            END
        END
    IF Exists(configstd || ".key") = 0 THEN DO
        IF Exists(configname || ".key") = 1 THEN DO
            'BIND LOAD CONFIG="'|| configname ||'.key"'
            END
        ELSE DO
            'BIND LOAD CONFIG="'|| configbase ||'.key"'
            END
        END
    IF Exists(configstd || ".dic") = 0 THEN DO
        IF Exists(configname || ".dic") = 1 THEN DO
            'PHRASE LOAD CONFIG="'|| configname ||'.dic"'
            END
        ELSE DO
            'PHRASE LOAD CONFIG="'|| configbase ||'.dic"'
            END
        END
    IF Exists(configstd || ".hnt") = 0 THEN DO
        IF Exists(configname || ".hnt") = 1 THEN DO
            'HUNTER LOAD CONFIG="'|| configname ||'.hnt"'
            END
        ELSE DO
            'HUNTER LOAD CONFIG="'|| configbase ||'.hnt"'
            END
        END
    IF Exists(configstd || ".ref") = 0 THEN DO
        IF Exists(configname || ".ref") = 1 THEN DO
            'PATH LOAD CONFIG="'|| configname ||'.ref"'
            END
        ELSE DO
            'PATH LOAD CONFIG="'|| configbase ||'.ref"'
            END
        END
    IF Exists(configstd || ".api") = 0 THEN DO
        IF Exists(configname || ".api") = 1 THEN DO
            'API LOAD CONFIG="'|| configname ||'.api"'
            END
        ELSE DO
            'API LOAD CONFIG="'|| configbase ||'.api"'
            END
        END
    IF Exists(configstd || ".tpl") = 0 THEN DO
        IF Exists(configname || ".tpl") = 1 THEN DO
            'TMPLATE LOAD CONFIG="'|| configname ||'.tpl"'
            END
        ELSE DO
            'TMPLATE LOAD CONFIG="'|| configbase ||'.tpl"'
            END
        END
    IF Exists(configstd || ".ind") = 0 THEN DO
        IF Exists(configname || ".ind") = 1 THEN DO
            'INDENT LOAD CONFIG="'|| configname ||'.ind"'
            END
        ELSE DO
            'INDENT LOAD CONFIG="'|| configbase ||'.ind"'
            END
        END
    IF Exists(configstd || ".tab") = 0 THEN DO
        IF Exists(configname || ".tab") = 1 THEN DO
            'TABS LOAD CONFIG="'|| configname ||'.tab"'
            END
        ELSE DO
            'TABS LOAD CONFIG="'|| configbase ||'.tab"'
            END
        END
    IF Exists(configstd || ".dsp") = 0 THEN DO
        IF Exists(configname || ".dsp") = 1 THEN DO
            'SCREEN LOAD CONFIG="'|| configname ||'.dsp"'
            END
        ELSE DO
            'SCREEN LOAD CONFIG="'|| configbase ||'.dsp"'
            END
        END
    IF Exists(configstd || ".men") = 0 THEN DO
        IF Exists(configname || ".men") = 1 THEN DO
            'MENUS LOAD CONFIG="'|| configname ||'.men"'
            END
        ELSE DO
            'MENUS LOAD CONFIG="'|| configbase ||'.men"'
            END
        END
    IF Exists(configstd || ".gui") = 0 THEN DO
        IF Exists(configname || ".gui") = 1 THEN DO
            'GUI LOAD CONFIG="'|| configname ||'.gui"'
            END
        ELSE DO
            'GUI LOAD CONFIG="'|| configbase ||'.gui"'
            END
        END
    IF Exists(configstd || ".syn") = 0 THEN DO
        IF Exists(configname || ".syn") = 1 THEN DO
            'SYNTAX LOAD CONFIG="'|| configname ||'.syn"'
            END
        ELSE DO
            'SYNTAX LOAD CONFIG="'|| configbase ||'.syn"'
            END
        END
    IF Exists(configstd || ".lay") = 0 THEN DO
        IF Exists(configname || ".lay") = 1 THEN DO
            'LAYOUT LOAD CONFIG="'|| configname ||'.lay"'
            END
        ELSE DO
            'LAYOUT LOAD CONFIG="'|| configbase ||'.lay"'
            END
        END
    END     /* dot in the filename */
'UNLOCK' /* VERY important: unlock GUI */
EXIT

SYNTAX:

SAY "Sorry, error line" SIGL ":" ERRORTEXT(RC) ":-("
'UNLOCK'
EXIT
