URI:
       tmptoi.c - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tmptoi.c (580B)
       ---
            1 #include "os.h"
            2 #include <mp.h>
            3 #include "dat.h"
            4 
            5 /*
            6  *  this code assumes that mpdigit is at least as
            7  *  big as an int.
            8  */
            9 
           10 mpint*
           11 itomp(int i, mpint *b)
           12 {
           13         if(b == nil)
           14                 b = mpnew(0);
           15         mpassign(mpzero, b);
           16         if(i != 0)
           17                 b->top = 1;
           18         if(i < 0){
           19                 b->sign = -1;
           20                 *b->p = -i;
           21         } else
           22                 *b->p = i;
           23         return b;
           24 }
           25 
           26 int
           27 mptoi(mpint *b)
           28 {
           29         uint x;
           30 
           31         if(b->top==0)
           32                 return 0;
           33         x = *b->p;
           34         if(b->sign > 0){
           35                 if(b->top > 1 || (x > MAXINT))
           36                         x = (int)MAXINT;
           37                 else
           38                         x = (int)x;
           39         } else {
           40                 if(b->top > 1 || x > MAXINT+1)
           41                         x = (int)MININT;
           42                 else
           43                         x = -(int)x;
           44         }
           45         return x;
           46 }