Annotation of researchv10no/cmd/basic/bite/src/save.c, revision 1.1

1.1     ! root        1: /* Copyright Bell Telephone Laboratories Whippany, N.J.
        !             2: 
        !             3:  *     ***********************************
        !             4:  *     ***********************************
        !             5:  *     ******* SAVE A BITE PROGRAM *******
        !             6:  *     *** R. B. Drake WH 8C-005 X4163 ***
        !             7:  *     **** Sun Aug 26 11:27:17 1979 *****
        !             8:  *     ***********************************
        !             9:  *     ***********************************
        !            10: 
        !            11: */
        !            12: /*   "@(#) save.c:  V 1.1  12/21/80" */
        !            13: 
        !            14: /* This routine is used to save BASIC programs in standard ASCII format
        !            15:    on the UNIX file system. Files saved in this way can be edited by
        !            16:    the standard unix editor if desired. However if that is done no
        !            17:    syntax checking can be done until the file is "loaded" */
        !            18: #include "bas.h"
        !            19: extern char filnam[];
        !            20: 
        !            21: save()
        !            22: {
        !            23:        FILE *fopen(),*fp;
        !            24:        char *ptr;
        !            25:        if(expr[0] == '\0' && filnam[0] == '\0')
        !            26:                getfnam();
        !            27:        if(expr[0] != '\0')
        !            28:        {
        !            29:                if(strlen(expr) > 40)
        !            30:                {
        !            31:                        error(inst.thing.linno,4);
        !            32:                        return(-1);
        !            33:                }
        !            34:                strcpy(filnam,expr);
        !            35:                postb(filnam);
        !            36:        }
        !            37:        if(fetch(0,&ptr) < 0)
        !            38:        {
        !            39:                error(inst.thing.linno,5);
        !            40:                return(-1);
        !            41:        }
        !            42:        if((fp=fopen(filnam,"w")) == 0)
        !            43:        {
        !            44:                error(inst.thing.linno,4);
        !            45:                return(-1);
        !            46:        }
        !            47:        outit(fp);
        !            48:        while(fetch(-1,&ptr) ==0)
        !            49:                outit(fp);
        !            50:        fclose(fp);
        !            51:        printf("File saved on %s\n",filnam);
        !            52:        return 0;
        !            53: }
        !            54: outit(fp)
        !            55: FILE *fp;
        !            56: {
        !            57: extern char linbuf[];
        !            58: char *op;
        !            59: int i;
        !            60:        expand();
        !            61:        fprintf(fp,"%d",inst.thing.linno);
        !            62:        if((inst.thing.opcode.hibyte&0377) > 0200)
        !            63:        {
        !            64:                i=(inst.thing.opcode.hibyte&0377) - 0200;
        !            65:                while(i--)
        !            66:                        fprintf(fp,"\t");
        !            67:        }
        !            68:        else
        !            69:                fprintf(fp," ");
        !            70:        op = decode(inst.thing.opcode.lobyte);
        !            71:        if(op[0]=='\010')
        !            72:        fprintf(fp,"%s\n",linbuf);
        !            73:        else
        !            74:        fprintf(fp,"%s %s\n",op,linbuf);
        !            75: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.