/* -*-c-*-
*
- * $Id: mptext-string.c,v 1.1 1999/11/17 18:02:16 mdw Exp $
+ * $Id: mptext-string.c,v 1.4 2004/04/01 12:50:09 mdw Exp $
*
* Reading and writing large integers on strings
*
/*----- Revision history --------------------------------------------------*
*
* $Log: mptext-string.c,v $
+ * Revision 1.4 2004/04/01 12:50:09 mdw
+ * Add cyclic group abstraction, with test code. Separate off exponentation
+ * functions for better static linking. Fix a buttload of bugs on the way.
+ * Generally ensure that negative exponents do inversion correctly. Add
+ * table of standard prime-field subgroups. (Binary field subgroups are
+ * currently unimplemented but easy to add if anyone ever finds a good one.)
+ *
+ * Revision 1.3 2000/08/04 23:23:44 mdw
+ * Various <ctype.h> fixes.
+ *
+ * Revision 1.2 1999/12/22 15:56:21 mdw
+ * Make the buffer passed to `put' op constant.
+ *
* Revision 1.1 1999/11/17 18:02:16 mdw
* New multiprecision integer arithmetic suite.
*
mptext_stringctx *c = p;
if (c->buf >= c->lim)
return (EOF);
- return (*c->buf++);
+ return ((unsigned char)*c->buf++);
}
static void unget(int ch, void *p)
c->buf--;
}
-static int put(char *s, size_t sz, void *p)
+static int put(const char *s, size_t sz, void *p)
{
mptext_stringctx *c = p;
int rc = 0;
mp *mp_readstring(mp *m, const char *p, char **end, int radix)
{
mptext_stringctx c;
- c.buf = (char *)p;
+ c.buf = (/*unconst */ char *)p;
c.lim = c.buf + strlen(p);
m = mp_read(m, radix, &mptext_stringops, &c);
if (end)