1: #ifndef lint
   2: static char RCSid[] = "$Header: misc.c,v 2.0 85/11/21 07:21:41 jqj Exp $";
   3: #endif
   4: 
   5: /* $Log:	misc.c,v $
   6:  * Revision 2.0  85/11/21  07:21:41  jqj
   7:  * 4.3BSD standard release
   8:  *
   9:  * Revision 1.3  85/03/11  16:39:50  jqj
  10:  * *** empty log message ***
  11:  *
  12:  * Revision 1.3  85/03/11  16:39:50  jqj
  13:  * Public alpha-test version, released 11 March 1985
  14:  *
  15:  * Revision 1.2  85/02/21  11:05:34  jqj
  16:  * alpha test version
  17:  *
  18:  * Revision 1.1  85/02/15  13:55:34  jqj
  19:  * Initial revision
  20:  *
  21:  */
  22: 
  23: #include "compiler.h"
  24: 
  25: /*
  26:  * String allocation.
  27:  */
  28: char *
  29: copy(s)
  30:     char *s;
  31: {
  32:     char *p;
  33:     extern char *malloc();
  34: 
  35:     if ((p = malloc(strlen(s) + 1)) == NULL) {
  36:         error(FATAL, "out of string space");
  37:     }
  38:     (void) strcpy(p, s);
  39:     return (p);
  40: }
  41: 
  42: 
  43: /*
  44:  * like atoi, convert a string to an integer.  Accept
  45:  * 1/ numeric string, e.g. "34"
  46:  * 2/ hex string, e.g. "0x22"
  47:  * 3/ octal string, e.g. "042"
  48:  * Handles only positive integers.
  49:  */
  50: int
  51: stringtocard(str)
  52:     char *str;
  53: {
  54:     int val;
  55: 
  56:     if (
  57:         sscanf(str, " -0x%x", &val) > 0 ||
  58:         sscanf(str, " -0%o", &val) > 0)
  59:         return( -val);
  60:     if (
  61:         sscanf(str, " 0x%x", &val) > 0 ||
  62:         sscanf(str, " 0%o", &val) > 0 ||
  63:         sscanf(str, " %d", &val) > 0
  64:        )
  65:         return(val);
  66:     return(0);
  67: }
  68: 
  69: 
  70: /*
  71:  * Lisp operations.
  72:  */
  73: list
  74: cons(a, b)
  75:     list a, b;
  76: {
  77:     list p;
  78: 
  79:     if ((p = New(struct cons)) == NIL) {
  80:         error(FATAL,"Out of list space.");
  81:     }
  82:     car(p) = a;
  83:     cdr(p) = b;
  84:     return (p);
  85: }
  86: 
  87: length(p)
  88:     list p;
  89: {
  90:     int n;
  91: 
  92:     for (n = 0; p != NIL; p = cdr(p), n++)
  93:         ;
  94:     return (n);
  95: }
  96: 
  97: list
  98: nconc(p, q)
  99:     list p, q;
 100: {
 101:     list pp;
 102: 
 103:     pp = p;
 104:     if (p == NIL)
 105:         return (q);
 106:     while (cdr(p) != NIL)
 107:         p = cdr(p);
 108:     cdr(p) = q;
 109:     return (pp);
 110: }

Defined functions

Defined variables

RCSid defined in line 2; never used
Last modified: 1986-03-13
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 1164
Valid CSS Valid XHTML 1.0 Strict