summaryrefslogtreecommitdiff
path: root/pcl/pl/plmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'pcl/pl/plmain.c')
-rw-r--r--pcl/pl/plmain.c38
1 files changed, 21 insertions, 17 deletions
diff --git a/pcl/pl/plmain.c b/pcl/pl/plmain.c
index c4e9d293f..eb9819455 100644
--- a/pcl/pl/plmain.c
+++ b/pcl/pl/plmain.c
@@ -774,7 +774,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
/* open the device if not yet open */
if (pdev->is_open == 0 && (code = gs_opendevice(pdev)) < 0) {
- return code;
+ break;
}
if (dev_proc(pdev, dev_spec_op)(pdev, gxdso_supports_saved_pages, NULL, 0) <= 0) {
errprintf(pmi->memory, " --saved-pages not supported by the '%s' device.\n",
@@ -794,8 +794,6 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
color = dev_proc(pdev, map_cmyk_color)(pdev, cmyk_white);
code = dev_proc(pdev, fill_rectangle)(pdev, 0, 0, pdev->width, pdev->height, color);
}
- if (code < 0)
- return code;
break;
#endif /* not defined OMIT_SAVED_PAGES */
/* The following code is only to allow regression testing of saved-pages */
@@ -805,7 +803,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
gx_device *pdev = pmi->device;
if ((code = gs_opendevice(pdev)) < 0)
- return code;
+ break;
if (dev_proc(pdev, dev_spec_op)(pdev, gxdso_supports_saved_pages, NULL, 0) <= 0) {
errprintf(pmi->memory, " --saved-pages-test not supported by the '%s' device.\n",
@@ -825,16 +823,15 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
color = dev_proc(pdev, map_cmyk_color)(pdev, cmyk_white);
code = dev_proc(pdev, fill_rectangle)(pdev, 0, 0, pdev->width, pdev->height, color);
}
- if (code < 0)
- return code;
- pmi->saved_pages_test_mode = true;
+ if (code >= 0)
+ pmi->saved_pages_test_mode = true;
#endif /* OMIT_SAVED_PAGES_TEST */
break;
}
/* FALLTHROUGH */
default:
dmprintf1(pmi->memory, "Unrecognized switch: %s\n", arg);
- return -1;
+ code = -1;
case '\0':
/* read from stdin - must be last arg */
continue;
@@ -854,11 +851,12 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
else {
/* -dDefaultBooleanIs_TRUE */
code = check_for_special_int(pmi, arg, (int)bval);
+ if (code < 0) code = 0;
if (code == 1)
code =
param_write_bool((gs_param_list *) params,
arg, &bval);
- continue;
+ break;
}
if (value && value[0] == '/') {
@@ -871,7 +869,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
if (code == 1)
code = param_write_name((gs_param_list *) params,
buffer, &str);
- continue;
+ break;
}
/* Search for a non-decimal 'radix' number */
else if (strchr(value, '#')) {
@@ -907,6 +905,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
strncpy(buffer, arg, eqp - arg);
buffer[eqp - arg] = '\0';
code = check_for_special_int(pmi, arg, number);
+ if (code < 0) code = 0;
if (code == 1)
code =
param_write_int((gs_param_list *) params,
@@ -939,6 +938,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
strncpy(buffer, arg, eqp - arg);
buffer[eqp - arg] = '\0';
code = check_for_special_int(pmi, arg, vi);
+ if (code < 0) code = 0;
if (code == 1)
code =
param_write_int((gs_param_list *) params,
@@ -957,6 +957,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
strncpy(buffer, arg, eqp - arg);
buffer[eqp - arg] = '\0';
code = check_for_special_int(pmi, arg, (int)bval);
+ if (code < 0) code = 0;
if (code == 1)
code =
param_write_bool((gs_param_list *) params,
@@ -966,6 +967,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
strncpy(buffer, arg, eqp - arg);
buffer[eqp - arg] = '\0';
code = check_for_special_int(pmi, arg, (int)bval);
+ if (code < 0) code = 0;
if (code == 1)
code =
param_write_bool((gs_param_list *) params,
@@ -999,7 +1001,8 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
code =
param_write_int_array((gs_param_list *) params,
"HWSize", &ia);
- pmi->page_set_on_command_line = true;
+ if (code >= 0)
+ pmi->page_set_on_command_line = true;
}
break;
case 'H':
@@ -1084,7 +1087,7 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
/* we expect the language to exit properly otherwise
there was some sort of problem */
if (code != e_ExitLanguage)
- return (code == 0 ? -1 : code);
+ if (code == 0) code = -1;
else
code = 0;
}
@@ -1099,9 +1102,10 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
if (sscanf(arg, "%d", &maxk) != 1) {
dmprintf(pmi->memory,
"-K must be followed by a number\n");
- return -1;
+ code = -1;
}
- rawheap->limit = (long)maxk << 10;
+ else
+ rawheap->limit = (long)maxk << 10;
}
break;
case 'o':
@@ -1202,14 +1206,12 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
}
value = eqp + 1;
if (!strncmp(arg, "DEVICE", 6)) {
- int code = pl_top_create_device(pmi,
+ code = pl_top_create_device(pmi,
get_device_index(pmi->
memory,
value),
false);
- if (code < 0)
- return code;
/* check for icc settings */
} else
if (!strncmp
@@ -1246,6 +1248,8 @@ pl_main_process_options(pl_main_instance_t * pmi, arg_list * pal,
set_debug_flags(arg, gs_debug);
break;
}
+ if (code < 0)
+ return code;
}
out:if (help) {
arg_finit(pal);