binprint.c:

Reformattted source.  No substantive change.
This commit is contained in:
gdr-ftp 1999-01-15 15:54:40 +00:00
parent 8cea45f4f0
commit fc1083b2b0

View File

@ -26,82 +26,83 @@ unsigned int doline(char *dest, char *source,
unsigned char *buffer2; unsigned char *buffer2;
main(argc,argv) main(argc,argv)
int argc; int argc;
char **argv; char **argv;
{ {
int duh; int duh;
int a; int a;
int c,errflg = 0,columns = 16; int c,errflg = 0,columns = 16;
size_t pos = 0; size_t pos = 0;
unsigned char *buffer; unsigned char *buffer;
extern char *optarg; extern char *optarg;
extern int optind; extern int optind;
extern int getopt(int,char **,char*); extern int getopt(int,char **,char*);
while ((c = getopt(argc,argv, "Vc:")) != EOF) while ((c = getopt(argc,argv, "Vc:")) != EOF)
switch (c) { switch (c) {
case 'c' : case 'c' :
columns = atoi(optarg); columns = atoi(optarg);
break; break;
case 'V' : case 'V' :
fprintf(stdout, "binprint v1.2 for GNO/ME\n"); fprintf(stdout, "binprint v1.2 for GNO/ME\n");
exit(0); exit(0);
default : errflg++; default : errflg++;
}
if (errflg) {
fprintf(stderr,"usage: binprint [-c<columns>] files...\n");
exit(2);
} }
argv += optind; if (errflg) {
if (columns < 8) columns = 8; fprintf(stderr,"usage: binprint [-c<columns>] files...\n");
if ((buffer2 = (unsigned char *)malloc((size_t)(columns*4)+1)) == NULL) { exit(2);
fprintf(stderr,"Cannot allocate buffer space\n"); }
exit(1); argv += optind;
if (columns < 8) columns = 8;
if ((buffer2 = (unsigned char *)malloc((size_t)(columns*4)+1)) == NULL) {
fprintf(stderr,"Cannot allocate buffer space\n");
exit(1);
}
buffer = (unsigned char *)(buffer2+(columns*3));
if (optind == argc) {
duh = STDIN_FILENO;
goto action;
}
for (;optind<argc;optind++) {
if ((duh = open(*argv,O_RDONLY|O_BINARY)) == -1) {
fprintf(stderr,"error opening %s\n",*argv);
exit(1);
} }
buffer = (unsigned char *)(buffer2+(columns*3)); printf("\n%s\n",*argv);
if (optind == argc) { action:
duh = STDIN_FILENO; while ((a = (int)read(duh, buffer,
goto action; (size_t)(columns * sizeof(unsigned char)))) != 0) {
printGood(pos,buffer,a,columns);
pos += a;
} }
for (;optind<argc;optind++) { close(duh);
if ((duh = open(*argv,O_RDONLY|O_BINARY)) == -1) { }
fprintf(stderr,"error opening %s\n",*argv); free(buffer);
exit(1); free(buffer2);
} exit(0);
printf("\n%s\n",*argv);
action: while ((a = (int)read(duh, buffer,
(size_t)(columns * sizeof(unsigned char)))) != 0) {
printGood(pos,buffer,a,columns);
pos += a;
}
close(duh);
}
free(buffer);
free(buffer2);
exit(0);
} }
printGood(off,buf,real,form) printGood(off,buf,real,form)
long off; long off;
unsigned char *buf; unsigned char *buf;
int real; int real;
int form; int form;
{ {
if (!real) return; if (!real) return;
/* #if 0
printf("%8lX: ",off); printf("%8lX: ",off);
*/ #endif
/* The following is a hack required because of buffering by the stdio /* The following is a hack required because of buffering by the stdio
libraries. I wish it was not necesary... */ libraries. I wish it was not necesary... */
{ {
static char puthere[11]; static char puthere[11];
int howmany; int howmany;
howmany = sprintf(puthere,"%8lX: ",off); howmany = sprintf(puthere,"%8lX: ",off);
write(STDOUT_FILENO, puthere, (size_t)howmany); write(STDOUT_FILENO, puthere, (size_t)howmany);
} }
write(STDOUT_FILENO, buffer2, (size_t)doline(buffer2,buf,form,real)); write(STDOUT_FILENO, buffer2, (size_t)doline(buffer2,buf,form,real));
} }