fc_sort: make outfile argument optional

When working on fc_sort to try to understand why using /usr/s?bin/... file
contexts has been reported not to work properly [1], I found it frustrating not
to be able to do "tmp/fc_sort my_filecontexts.fc" and see the result printed on
the screen.  This patch implements this behavior by making optional the second
argument of fc_sort.

[1] commit 36e2216f8 of contrib repository,
http://git.overlays.gentoo.org/gitweb/?p=proj/hardened-refpolicy.git;a=commit;h=36e2216f82192660d063012e69281f27ba20864b
This commit is contained in:
Nicolas Iooss 2014-03-23 22:01:39 +01:00 committed by Chris PeBenito
parent 572c617c91
commit aa3fa6d2fd
1 changed files with 13 additions and 7 deletions

View File

@ -328,13 +328,13 @@ int main(int argc, char *argv[])
/* Check for the correct number of command line arguments. */
if (argc != 3) {
fprintf(stderr, "Usage: %s <infile> <outfile>\n",argv[0]);
if (argc < 2 || argc > 3) {
fprintf(stderr, "Usage: %s <infile> [<outfile>]\n",argv[0]);
return 1;
}
input_name = argv[1];
output_name = argv[2];
output_name = (argc >= 3) ? argv[2] : NULL;
i = j = lines = 0;
@ -526,9 +526,13 @@ int main(int argc, char *argv[])
fc_merge_sort(master);
/* Open the output file. */
if (!(out_file = fopen(output_name, "w"))) {
printf("Error: failure opening output file for write.\n");
return -1;
if (output_name) {
if (!(out_file = fopen(output_name, "w"))) {
printf("Error: failure opening output file for write.\n");
return -1;
}
} else {
out_file = stdout;
}
/* Output the sorted file_context linked list to the output file. */
@ -555,7 +559,9 @@ int main(int argc, char *argv[])
}
free(master);
fclose(out_file);
if (output_name) {
fclose(out_file);
}
return 0;
}