Annotation of 43BSDReno/lib/libmp/util.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char sccsid[] = "@(#)util.c     5.2 (Berkeley) 3/2/87";
        !             3: #endif not lint
        !             4: 
        !             5: char *malloc();
        !             6: #ifdef lint
        !             7: int xv_oid;
        !             8: #endif
        !             9: #include <stdio.h>
        !            10: #include <mp.h>
        !            11: move(a,b) MINT *a,*b;
        !            12: {      int i,j;
        !            13:        xfree(b);
        !            14:        b->len=a->len;
        !            15:        if((i=a->len)<0) i = -i;
        !            16:        if(i==0) return;
        !            17:        b->val=xalloc(i,"move");
        !            18:        for(j=0;j<i;j++)
        !            19:                b->val[j]=a->val[j];
        !            20:        return;
        !            21: }
        !            22: dummy(){}
        !            23: short *xalloc(nint,s) char *s;
        !            24: {      short *i;
        !            25:        i=(short *)malloc(2*(unsigned)nint+4);
        !            26: #ifdef DBG
        !            27:        if(dbg) fprintf(stderr, "%s: %o\n",s,i);
        !            28: #endif
        !            29:        if(i!=NULL) return(i);
        !            30:        fatal("mp: no free space");
        !            31:        return(0);
        !            32: }
        !            33: fatal(s) char *s;
        !            34: {
        !            35:        fprintf(stderr,"%s\n",s);
        !            36:        VOID fflush(stdout);
        !            37:        sleep(2);
        !            38:        abort();
        !            39: }
        !            40: xfree(c) MINT *c;
        !            41: {
        !            42: #ifdef DBG
        !            43:        if(dbg) fprintf(stderr, "xfree ");
        !            44: #endif
        !            45:        if(c->len==0) return;
        !            46:        shfree(c->val);
        !            47:        c->len=0;
        !            48:        return;
        !            49: }
        !            50: mcan(a) MINT *a;
        !            51: {      int i,j;
        !            52:        if((i=a->len)==0) return;
        !            53:        else if(i<0) i= -i;
        !            54:        for(j=i;j>0 && a->val[j-1]==0;j--);
        !            55:        if(j==i) return;
        !            56:        if(j==0)
        !            57:        {       xfree(a);
        !            58:                return;
        !            59:        }
        !            60:        if(a->len > 0) a->len=j;
        !            61:        else a->len = -j;
        !            62: }
        !            63: MINT *itom(n)
        !            64: {      MINT *a;
        !            65:        a=(MINT *)xalloc(2,"itom");
        !            66:        if(n>0)
        !            67:        {       a->len=1;
        !            68:                a->val=xalloc(1,"itom1");
        !            69:                *a->val=n;
        !            70:                return(a);
        !            71:        }
        !            72:        else if(n<0)
        !            73:        {       a->len = -1;
        !            74:                a->val=xalloc(1,"itom2");
        !            75:                *a->val= -n;
        !            76:                return(a);
        !            77:        }
        !            78:        else
        !            79:        {       a->len=0;
        !            80:                return(a);
        !            81:        }
        !            82: }
        !            83: mcmp(a,b) MINT *a,*b;
        !            84: {      MINT c;
        !            85:        int res;
        !            86:        if(a->len!=b->len) return(a->len-b->len);
        !            87:        c.len=0;
        !            88:        msub(a,b,&c);
        !            89:        res=c.len;
        !            90:        xfree(&c);
        !            91:        return(res);
        !            92: }

unix.superglobalmegacorp.com

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