Annotation of 43BSDReno/lib/libmp/util.c, revision 1.1.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.