int N = 0x10000;
int verbose = 0;
int doinit = 1;
+ int keynul = 1;
+ int recnul = 1;
+
+ void *(*copier)(void *, void *, size_t);
enum op op;
break;
case 'K':
key_opt = packdigit(optarg);
+ keynul = 0;
break;
case 'k':
key_opt = optarg;
break;
case 'R':
rec_opt = packdigit(optarg);
+ recnul = 0;
break;
case 'r':
rec_opt = optarg;
return 1;
}
- memcpy(key, key_opt ? : "RIVERRUN", keysize + 1);
- memcpy(rec, rec_opt ? : "PALEFIRE", recsize + 1);
+ copier = keynul ? &strncpy : &memcpy;
+ copier(key, key_opt ? : "RIVERRUN", keysize + 1);
+ copier = recnul ? &strncpy : &memcpy;
+ copier(rec, rec_opt ? : "PALEFIRE", recsize + 1);
if (op == OP_INSERT)
return doop(0, key, rec, IAM_IOC_INSERT, "IAM_IOC_INSERT");