fpPair readLine() { fpPair pair; pair.fp = malloc( sizeof(pair.fp) ); pair.name = malloc( sizeof(pair.name) ); char *buffer = malloc( bufferSize * sizeof( char ) ); int fpEnd; fgets( buffer, bufferSize, stdin ); if(feof(stdin)) // prevent the reading in of a blank line { free (pair.name); free (pair.fp); free (buffer); return pair; } fpEnd = Str_find( buffer, 1, 0 , " "); pair.fp = Str_dup( buffer, 1, fpEnd, 1 ); pair.name = Str_dup( buffer, nameStart( buffer, fpEnd ), 0 , 1); free (buffer); return pair; }
int main(int argc, char *argv[]) { int i; if (Str_find(argv[0], 1, 0, "dirname") > 0) for (i = 1; i < argc; i += 2) Fmt_print("%s\n", dirname(argv[i], 1, 0)); else for (i = 1; i < argc; i += 2) Fmt_print("%s\n", basename(argv[i], 1, 0, i+1 < argc ? argv[i+1] : "")); return EXIT_SUCCESS; }