|
|
@ -2,42 +2,27 @@ |
|
|
|
#include <stdlib.h> |
|
|
|
#include <stdlib.h> |
|
|
|
#include <string.h> |
|
|
|
#include <string.h> |
|
|
|
|
|
|
|
|
|
|
|
#include <getopt.h> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int main (int argc, char **argv){ |
|
|
|
int main (int argc, char **argv){ |
|
|
|
char name[FILENAME_MAX]; |
|
|
|
char name[FILENAME_MAX]; |
|
|
|
FILE *bob,*joe,*moe; |
|
|
|
FILE *bob,*joe,*moe; |
|
|
|
int out, thing, factor, arg, modifier; |
|
|
|
int thing, factor, arg; |
|
|
|
out = 0; |
|
|
|
if(argc >= 3){ |
|
|
|
factor=0; |
|
|
|
char *end_char; |
|
|
|
while((modifier=getopt(argc,argv,"0123456789c"))+1){ |
|
|
|
factor = strtol(argv[1], &end_char, 0); |
|
|
|
switch(modifier){ |
|
|
|
if(!*(argv[1]) || *end_char) |
|
|
|
case 'c': |
|
|
|
{ |
|
|
|
joe = stdout; |
|
|
|
fputs("I can haz number?\n", stderr); |
|
|
|
out = 1; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
case '0': case '1': case '2': case '3': case '4': |
|
|
|
|
|
|
|
case '5': case '6': case '7': case '8': case '9': |
|
|
|
|
|
|
|
factor=factor*10+modifier-'0'; |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
default: |
|
|
|
|
|
|
|
fputs("You're going to have to be clearer about what you want.\n",stderr); |
|
|
|
|
|
|
|
return EXIT_FAILURE; |
|
|
|
return EXIT_FAILURE; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
arg = 2; |
|
|
|
|
|
|
|
}else{ |
|
|
|
|
|
|
|
factor = 9; |
|
|
|
|
|
|
|
arg = 1; |
|
|
|
} |
|
|
|
} |
|
|
|
if(factor==0){ |
|
|
|
if(argc<2){ |
|
|
|
factor=9; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
argc-=optind; |
|
|
|
|
|
|
|
argv+=optind; |
|
|
|
|
|
|
|
arg=0; |
|
|
|
|
|
|
|
if(argc<1){ |
|
|
|
|
|
|
|
fputs("I pity the fool who don't have an input file!\n",stderr); |
|
|
|
fputs("I pity the fool who don't have an input file!\n",stderr); |
|
|
|
return EXIT_FAILURE; |
|
|
|
return EXIT_FAILURE; |
|
|
|
} |
|
|
|
} |
|
|
|
if(argc>1){ |
|
|
|
|
|
|
|
fputs("Be patient, one thing at a time!\n",stderr); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if(strlen(argv[arg]) >= FILENAME_MAX - 4) |
|
|
|
if(strlen(argv[arg]) >= FILENAME_MAX - 4) |
|
|
|
{ |
|
|
|
{ |
|
|
|
fputs("It's a filename, not a novel.\n", stderr); |
|
|
|
fputs("It's a filename, not a novel.\n", stderr); |
|
|
@ -49,11 +34,9 @@ int main (int argc, char **argv){ |
|
|
|
fputs("NO YOU FOOL, A REAL ONE!\n",stderr); |
|
|
|
fputs("NO YOU FOOL, A REAL ONE!\n",stderr); |
|
|
|
return EXIT_FAILURE; |
|
|
|
return EXIT_FAILURE; |
|
|
|
} |
|
|
|
} |
|
|
|
if(!out){ |
|
|
|
if((joe = fopen(name,"w"))==NULL){ |
|
|
|
if((joe = fopen(name,"w"))==NULL){ |
|
|
|
fputs("Ummm, you seem to have an unwritable file or directory or something silly called the output file, this is dumb. Please stop.\n",stderr); |
|
|
|
fputs("Ummm, you seem to have an unwritable file or directory or something silly called the output file, this is dumb. Please stop.\n",stderr); |
|
|
|
return EXIT_FAILURE; |
|
|
|
return EXIT_FAILURE; |
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if((moe = fopen("/dev/urandom","r"))==NULL){ |
|
|
|
if((moe = fopen("/dev/urandom","r"))==NULL){ |
|
|
|
fputs("So, you aren't random enough. Annoying.\n",stderr); |
|
|
|
fputs("So, you aren't random enough. Annoying.\n",stderr); |
|
|
|