static void close_session(void);
+static void marc_file_write(const char *buf, size_t sz);
+
ODR getODROutputStream(void)
{
return out;
sprintf(fname, "%s.%03d.raw", dump_file_prefix, no);
of = fopen(fname, "wb");
- fwrite(buf, 1, len, of);
-
- fclose(of);
+ if (fwrite(buf, 1, len, of) != len)
+ {
+ printf("write failed for %s", fname);
+ }
+ if (fclose(of))
+ {
+ printf("close failed for %s", fname);
+ }
}
}
}
{
print_record((const unsigned char *) r->u.octet_aligned->buf,
r->u.octet_aligned->len);
- if (marc_file)
- fwrite(r->u.octet_aligned->buf, 1, r->u.octet_aligned->len, marc_file);
+ marc_file_write(r->u.octet_aligned->buf, r->u.octet_aligned->len);
}
else if (oid && r->which == Z_External_octet)
{
if (yaz_marc_decode_buf(mt, octet_buf, r->u.octet_aligned->len,
&result, &rlen)> 0)
{
- fwrite(result, rlen, 1, stdout);
+ if (fwrite(result, rlen, 1, stdout) != 1)
+ {
+ printf("write to stdout failed\n");
+ }
}
else
{
r->u.octet_aligned->len);
}
}
- if (marc_file)
- fwrite(octet_buf, 1, r->u.octet_aligned->len, marc_file);
+ marc_file_write(octet_buf, r->u.octet_aligned->len);
}
else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_sutrs))
{
return;
}
print_record(r->u.sutrs->buf, r->u.sutrs->len);
- if (marc_file)
- fwrite(r->u.sutrs->buf, 1, r->u.sutrs->len, marc_file);
+ marc_file_write(r->u.sutrs->buf, r->u.sutrs->len);
}
else if (oid && !oid_oidcmp(oid, yaz_oid_recsyn_grs_1))
{
FILE* includeFile;
char line[102400], *cp;
- if(strlen(arg)<1) {
- fprintf(stderr,"Error in source command use a filename\n");
+ if (strlen(arg) < 1)
+ {
+ fprintf(stderr, "Error in source command use a filename\n");
return -1;
}
includeFile = fopen(arg, "r");
- if(!includeFile) {
- fprintf(stderr,"Unable to open file %s for reading\n",arg);
+ if (!includeFile)
+ {
+ fprintf(stderr, "Unable to open file %s for reading\n",arg);
return -1;
}
- while(!feof(includeFile)) {
- memset(line,0,sizeof(line));
- fgets(line,sizeof(line),includeFile);
+ while (!feof(includeFile)) {
+ memset(line, 0, sizeof(line));
+ if (!fgets(line, sizeof(line), includeFile))
+ {
+ perror("fgets");
+ break;
+ }
- if(strlen(line) < 2) continue;
- if(line[0] == '#') continue;
+ if (strlen(line) < 2) continue;
+ if (line[0] == '#') continue;
if ((cp = strrchr(line, '\n')))
*cp = '\0';
- if( echo ) {
- printf( "processing line: %s\n",line );
- };
+ if (echo)
+ printf("processing line: %s\n", line);
process_cmd_line(line);
}
- if(fclose(includeFile)<0) {
+ if (fclose(includeFile))
+ {
perror("unable to close include file");
exit(1);
}
int cmd_subshell(const char* args)
{
- if(strlen(args))
- system(args);
- else
- system(getenv("SHELL"));
-
+ int ret = system(strlen(args) ? args : getenv("SHELL"));
printf("\n");
+ if (ret)
+ {
+ printf("Exit %d\n", ret);
+ }
return 1;
}
return 1;
}
+static void marc_file_write(const char *buf, size_t sz)
+{
+ if (marc_file)
+ {
+ if (fwrite(buf, 1, sz, marc_file) != sz)
+ {
+ perror("marcfile write");
+ }
+ }
+}
/*
this command takes 3 arge {name class oid}
*/
printf("\n");
if (rec->recordData_buf && rec->recordData_len)
{
- fwrite(rec->recordData_buf, 1, rec->recordData_len, stdout);
- if (marc_file)
- fwrite(rec->recordData_buf, 1, rec->recordData_len, marc_file);
+ if (fwrite(rec->recordData_buf, 1, rec->recordData_len, stdout) !=
+ rec->recordData_len)
+ {
+ printf("write to stdout failed\n");
+ }
+ printf("%.*s", rec->recordData_len, rec->recordData_buf);
+ marc_file_write(rec->recordData_buf, rec->recordData_len);
}
else
printf("No data!");