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
mcan defined in line 56; used 1 times
mcmp defined in line 89; used 1 times

Defined variables

sccsid defined in line 8; never used
xv_oid defined in line 13; never used
Last modified: 1985-04-30
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1106
Valid CSS Valid XHTML 1.0 Strict