print "#include <stdio.h>";
print "EXEC SQL INCLUDE sqlca;";
print "#include \"dump_db.h\"";
- print "#define dump_date dump_str\n";
+ print "#define dump_bin dump_str\n";
print "/* This file automatically generated */" > "bkup1.pc";
print "/* Do not edit */\n" >> "bkup1.pc";
printf "\t\tif(sqlca.sqlcode != 0) break;\n";
for (i = 0; i < count; i++) {
if (i != 0) print "\t\tdump_sep(f);";
- if (vtype[i] ~ /str/) {
+ if (vtype[i] ~ /str/ || vtype[i] ~ /date/) {
printf "\t\tdump_str(f, strtrim(t_%s));\n", vname[i];
} else {
printf "\t\tdump_%s(f, t_%s);\n", vtype[i], vname[i];
FILE *open_file();
-char act[257];
EXEC SQL BEGIN DECLARE SECTION;
char *db="moira";
EXEC SQL END DECLARE SECTION;
}
prefix = argv[1];
- memset(act, 0, 256);
-
- for (i=0; i<' '; i++) act[i]=2;
- for (i=128; i<256; i++) act[i]=2;
- act[SEP_CHAR]=1;
- act['\\']=1;
- act[127]=2;
-
EXEC SQL CONNECT :db IDENTIFIED BY :db;
do_backups(prefix);
register int t;
for (ibp = str; 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(c<32 || c>126 || c==SEP_CHAR || c=='\\') {
if (putc1('\\', f) < 0) wpunt();
t = ((c>>6)&7) + '0';
if (putc1(t,f) < 0) wpunt();
if (putc1(t,f) < 0) wpunt();
t = (c&7) + '0';
if (putc1(t,f) < 0) wpunt();
- break;
-
- default:
- punt("Can't get here");
- }
- }
-}
-
-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:
+ } else {
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");
}
}
}