Annotation of 41BSD/lib/libmp/util.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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