diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tool_main.c | 10 | ||||
-rw-r--r-- | src/tool_operate.c | 2 | ||||
-rw-r--r-- | src/tool_setup.h | 4 | ||||
-rw-r--r-- | src/tool_vms.h | 7 |
4 files changed, 17 insertions, 6 deletions
diff --git a/src/tool_main.c b/src/tool_main.c index 00a241032..95e9cc779 100644 --- a/src/tool_main.c +++ b/src/tool_main.c @@ -45,6 +45,16 @@ */ #include "memdebug.h" /* keep this as LAST include */ +#ifdef __VMS +/* + * vms_show is a global variable, used in main() as parameter for + * function vms_special_exit() to allow proper curl tool exiting. + * Its value may be set in other tool_*.c source files thanks to + * forward declaration present in tool_vms.h + */ +static int vms_show = 0; +#endif + /* * Ensure that file descriptors 0, 1 and 2 (stdin, stdout, stderr) are * open before starting to run. Otherwise, the first three network diff --git a/src/tool_operate.c b/src/tool_operate.c index 1a168afcb..4166fc2ef 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -73,6 +73,7 @@ #include "tool_writeenv.h" #include "tool_writeout.h" #include "tool_xattr.h" +#include "tool_vms.h" #include "memdebug.h" /* keep this as LAST include */ @@ -1537,7 +1538,6 @@ int operate(struct Configurable *config, int argc, argv_item_t argv[]) show_error: #ifdef __VMS - vms_show = 0; if(is_vms_shell()) { /* VMS DCL shell behavior */ if(!config->showerror) diff --git a/src/tool_setup.h b/src/tool_setup.h index 2065b6f27..c94686f96 100644 --- a/src/tool_setup.h +++ b/src/tool_setup.h @@ -49,10 +49,6 @@ # define main(x,y) curl_main(x,y) #endif -#ifdef __VMS -# include "tool_vms.h" -#endif - #ifdef TPF # undef select /* change which select is used for the curl command line tool */ diff --git a/src/tool_vms.h b/src/tool_vms.h index ad1339c03..1afd75ec8 100644 --- a/src/tool_vms.h +++ b/src/tool_vms.h @@ -25,7 +25,12 @@ #ifdef __VMS -int vms_show; /* If VMS error code has been written */ +/* + * Forward-declaration of global variable vms_show defined + * in tool_main.c, used in main() as parameter for function + * vms_special_exit() to allow proper curl tool exiting. + */ +extern int vms_show; int is_vms_shell(void); void vms_special_exit(int code, int vms_show); |