t = split(temp[2], temp2, ")")
if (t != 2) printf "Can't parse %s\n", temp[2];
printf "\tchar\tt_%s[%d];\n", vname[count], temp2[1]+1;
- vtype[count]="str"
+ if ($1 == "signature") {
+ vtype[count]="bin"
+ } else {
+ vtype[count]="str"
+ }
} else if ($2 ~ /DATE/) {
printf "\tchar\tt_%s[26];\n", vname[count]
vtype[count]="str"
}
}
+dump_bin(f, str)
+ register FILE *f;
+ register char *str;
+{
+ register char *ibp = str;
+ register int c; /* PCC doesn't put chars in registers.. */
+ register int t;
+
+ for (; c = (unsigned char) *ibp; ibp++) {
+ switch(act[c]) {
+ case 1:
+ if (putc1('\\', f) < 0) wpunt();
+ /* fall thru.. */
+ case 0:
+ if (putc1(c, f) < 0) wpunt();
+
+ break;
+ case 2:
+ if (putc1('\\', f) < 0) wpunt();
+ t = ((c>>6)&7) + '0';
+ if (putc1(t,f) < 0) wpunt();
+ t = ((c>>3)&7) + '0';
+ if (putc1(t,f) < 0) wpunt();
+ t = (c&7) + '0';
+ if (putc1(t,f) < 0) wpunt();
+ break;
+
+ default:
+ punt("Can't get here");
+ }
+ }
+}
+
safe_close(stream)
FILE *stream;
{