|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.