  /* We can't simply return c - '0' because this is ANSI C code, so it has to */
  /* work for any character set, not just ones which put the digits together  */
  /* in order.                                                                */

/* Puts the decimal value of the string s into *pn, returning 1 on success.   */
/* If s is empty, or contains non-digits, or represents an integer greater    */
/* than 9999, then *pn is not changed and 0 is returned. Does not use errmsg. */

/* Reads lines from stdin until EOF, or until a blank line is encountered,    */
/* in which case the newline is pushed back onto the input stream. Returns a  */
/* NULL-terminated array of pointers to individual lines, stripped of their   */
/* newline characters. Uses errmsg, and returns NULL on failure.              */
