DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T t

⟦3ea88641d⟧ TextFile

    Length: 3180 (0xc6c)
    Types: TextFile
    Names: »trechk.c«

Derivation

└─⟦b20c6495f⟧ Bits:30007238 EUUGD18: Wien-båndet, efterår 1987
    └─⟦this⟧ »EUUGD18/General/Empire.V/V1.1/EMPSUBS/trechk.c« 

TextFile

#define D_NEWSVERBS
#define D_TRTYCLAUSE
#define D_TRTSTR
#define D_FILES
#include        "empdef.h"

trechk(anum, vnum, cond)
int     anum, vnum, cond;
{
        register        i, ret;
        char    *cp, *getstri();
        char    treaties[32];
        int     n;
        long    now;

        time(&now);
        ret = 0;
        n = N_VIOL_TRE;
        for( i=0; i < maxnoc; i++ ) {
                treaties[i] = 0;
        }
        for( i=0; gettre(i) != -1; i++ ) {
                if( trty.trt_cna == 0 ) continue;
                if( trty.trt_cnb == 0 ) continue;
                if( trty.trt_exp <  now ) continue;
                if( vnum != 0 ) goto X244;
                if( anum == trty.trt_cna ) goto X172;
                if( anum != -trty.trt_cna ) goto X202;
X172:   
                if( (cond & trty.trt_acond) != 0 ) goto X414;
X202:   
                if( anum == trty.trt_cnb ) goto X230;
                if( anum != -trty.trt_cnb ) continue;
X230:   
                if( (cond & trty.trt_bcond) != 0 ) goto X414;
                continue;
X244:   
                if( anum == trty.trt_cna ) goto X272;
                if( anum != -trty.trt_cna ) goto X330;
X272:   
                if( vnum == trty.trt_cnb ) goto X320;
                if( vnum != -trty.trt_cnb ) goto X330;
X320:   
                if( (cond & trty.trt_acond) != 0 ) goto X414;
X330:   
                if( anum == trty.trt_cnb ) goto X356;
                if( anum != -trty.trt_cnb ) continue;
X356:   
                if( vnum == trty.trt_cna ) goto X404;
                if( vnum != -trty.trt_cna ) continue;
X404:   
                if( (cond & trty.trt_bcond) == 0 ) continue;
X414:   
                switch( ret ) {
                case 0:
                        ret = 1;
                case 1:
                        printf("This action is in contravention of ");
                        if( trty.trt_cna <  0 ||
                            trty.trt_cnb < 0 ) {
                                printf("pending ");
                        }
                        printf(" treaty #%d\n", i);
                        cp = getstri("Do you wish to go ahead with it anyway? (yes/no) ");
                        if( *cp == 'n' ) {
                                n = N_HONOR_TRE;
                                ret = -1;
                        }
                case -1:
                        if( anum != trty.trt_cna ) goto X626;
                        if( trty.trt_cnb <= 0 ) goto X626;
                        treaties[trty.trt_cnb] = 1;
X626:   
                        if( anum != trty.trt_cnb ) continue;
                        if( trty.trt_cna >  0 ) goto X652;
                        continue;
X652:   
                        treaties[trty.trt_cna] = 1;
                        continue;
                }
        }
        if( ret != 0 ) {
                n = N_HONOR_TRE;
                if( ret == 1 ) {
                        n = N_VIOL_TRE;
                }
                for( i=0; i < maxnoc; i++ ) {
                        if( treaties[i] == 0 ) continue;
                        nreport(anum, n, i);
                }
        }
        return(ret);
}