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
  • in line 28
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
xalloc defined in line 21; used 4 times
xfree defined in line 38; used 39 times

Defined variables

xv_oid defined in line 5; never used
Last modified: 1983-07-26
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 828
Valid CSS Valid XHTML 1.0 Strict