#include "ded.h" /************************************************************************ * * * copyright Richard Bornat 1981 * * * ************************************************************************/ int streq(s1,s2) register char *s1, *s2; { register char c; while ((c = *s1++) == *s2++) if (c==0) return(true); return(false); } int streqtail(str,tail) register char *str, *tail; { while (*str != 0) { if (streq(str,tail)) return(true); str++; } return(false); } int anytail(str, tails) register char *str, *tails[]; { while (*tails != 0) if (streqtail(str, *tails)) return(true); else tails++; return(false); } int alpha(c) register char c; { return( ('a'<=c && c<='z') || ('A'<=c && c<='Z') ); } char lcase(c) register char c; { return('A'<=c && c<='Z' ? c+('a'-'A') : c); } int digit(c) register char c; { return('0'<=c && c<='9'); } int alphmer(c) register char c; { return(alpha(c) || digit(c)); } /* a procedure to ensure that you always produce a filename with * .old (or .dlog or whatever) since filenames can only be 14 * characters long */ void ncat2(s1,s2,s) char *s1,*s2,*s; { register char *p, *p1; register char c; char ns1[ENOUGH]; int l; p = p1 = s1; while ((c = *p++) != 0) if (c=='/') p1 = p; if ((l = strlength(p1)+strlength(s2)) > 14) { cat(s1,ns1); ns1[strlength(ns1)-(l-14)] = 0; cat2(ns1,s2,s); } else cat2(s1,s2,s); } void cat(s0, s) register char *s0, *s; { while (*s++ = *s0++); } void cat2(s1,s2,s) register char *s1,*s2; register char *s; { while (*s++ = *s1++); s--; while (*s++ = *s2++); } void cat3(s1,s2,s3,s) char *s1,*s2,*s3,*s; { cat2(s1,s2,s); cat2(s,s3,s); } int strlength(str) register char *str; { register int count=0; while (*str++ != 0) count++; return(count); } char *dtos(num,str) register int num; register char *str; { if (num>9) str = dtos(num/10,str); *str++ = (num % 10) + '0'; *str = 0; return(str); } char *stod(str, a_num) register char *str; int *a_num; { register int num = 0; register char c; while ('0'<=(c = *str++) && c<='9') num = num*10 + (c-'0'); *a_num = num; return(--str); }