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