summaryrefslogtreecommitdiff
path: root/jpegtran.c
diff options
context:
space:
mode:
Diffstat (limited to 'jpegtran.c')
-rw-r--r--jpegtran.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/jpegtran.c b/jpegtran.c
index 058e844..1f7e521 100644
--- a/jpegtran.c
+++ b/jpegtran.c
@@ -380,7 +380,11 @@ parse_switches(j_compress_ptr cinfo, int argc, char **argv,
*/
int
+#ifdef GTEST
+jpegtran(int argc, char **argv)
+#else
main(int argc, char **argv)
+#endif
{
struct jpeg_decompress_struct srcinfo;
struct jpeg_compress_struct dstinfo;
@@ -456,7 +460,7 @@ main(int argc, char **argv)
if ((fp = fopen(argv[file_index], READ_BINARY)) == NULL) {
fprintf(stderr, "%s: can't open %s for reading\n", progname,
argv[file_index]);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
} else {
/* default input file is stdin */
@@ -466,26 +470,26 @@ main(int argc, char **argv)
if (icc_filename != NULL) {
if ((icc_file = fopen(icc_filename, READ_BINARY)) == NULL) {
fprintf(stderr, "%s: can't open %s\n", progname, icc_filename);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
if (fseek(icc_file, 0, SEEK_END) < 0 ||
(icc_len = ftell(icc_file)) < 1 ||
fseek(icc_file, 0, SEEK_SET) < 0) {
fprintf(stderr, "%s: can't determine size of %s\n", progname,
icc_filename);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
if ((icc_profile = (JOCTET *)malloc(icc_len)) == NULL) {
fprintf(stderr, "%s: can't allocate memory for ICC profile\n", progname);
fclose(icc_file);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
if (fread(icc_profile, icc_len, 1, icc_file) < 1) {
fprintf(stderr, "%s: can't read ICC profile from %s\n", progname,
icc_filename);
free(icc_profile);
fclose(icc_file);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
fclose(icc_file);
if (copyoption == JCOPYOPT_ALL)
@@ -513,7 +517,7 @@ main(int argc, char **argv)
*/
if (!jtransform_request_workspace(&srcinfo, &transformoption)) {
fprintf(stderr, "%s: transformation is not perfect\n", progname);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
#endif
@@ -549,7 +553,7 @@ main(int argc, char **argv)
if ((fp = fopen(outfilename, WRITE_BINARY)) == NULL) {
fprintf(stderr, "%s: can't open %s for writing\n", progname,
outfilename);
- exit(EXIT_FAILURE);
+ return EXIT_FAILURE;
}
} else {
/* default output file is stdout */
@@ -591,11 +595,9 @@ main(int argc, char **argv)
end_progress_monitor((j_common_ptr)&dstinfo);
#endif
- if (icc_profile != NULL)
- free(icc_profile);
+ free(icc_profile);
/* All done. */
- exit(jsrcerr.num_warnings + jdsterr.num_warnings ?
- EXIT_WARNING : EXIT_SUCCESS);
- return 0; /* suppress no-return-value warnings */
+ return (jsrcerr.num_warnings + jdsterr.num_warnings ?
+ EXIT_WARNING : EXIT_SUCCESS);
}