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