*/
#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
#include "tool_writeenv.h"
#include "tool_writeout.h"
#include "tool_xattr.h"
+#include "tool_vms.h"
#include "memdebug.h" /* keep this as LAST include */
show_error:
#ifdef __VMS
- vms_show = 0;
if(is_vms_shell()) {
/* VMS DCL shell behavior */
if(!config->showerror)
# 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 */
#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);