--- joko/Uni/BSArch/01/prime.c 2006/05/15 11:27:10 1.16 +++ joko/Uni/BSArch/01/prime.c 2006/05/15 11:36:52 1.17 @@ -1,4 +1,4 @@ -/* $Id: prime.c,v 1.16 2006/05/15 11:27:10 franky Exp $ */ +/* $Id: prime.c,v 1.17 2006/05/15 11:36:52 franky Exp $ */ #include #include @@ -50,6 +50,7 @@ if (*endptr != '\0') { char message[256]; snprintf(message, 255, "Could not convert '%s' to a valid (integer) number.", nptr); + errno=EINVAL; if(warn) PRINTWARNING(message); else{ @@ -63,6 +64,7 @@ if (errno == ERANGE) { char message[256]; snprintf(message, 255, "Number is not in range of 'long int': %s", nptr); + errno=EINVAL; if(warn) PRINTWARNING(message); else{ @@ -98,10 +100,11 @@ /* try to open file for reading */ FILE * fp = fopen(argv[1], "r"); err=errno; + errno=0; /* (1) test-single-number mode: first argument is not a filename */ if (fp == NULL) { long int number = convert_number(argv[1],TRUE); - if(err){ + if(errno){ fprintf(stderr, "%s: %s\n", argv[1], strerror(err)); return -1; }