Yang Tse wrote:
2009/6/10, John E. Malmberg wrote:

This patch against the 7.19.6-20090609 daily snapshot makes things work.

[...]
+++ packages/vms/curlmsg_vms.h  Tue Jun  9 01:27:48 2009
[...]
+++ src/main.c  Tue Jun  9 23:56:29 2009
[...]
+++ src/os-specific.c   Tue Jun  9 01:26:49 2009
[...]
+++ src/os-specific.c   Tue Jun  9 01:26:49 2009
[...]

The src/os-specific.c part is duplicated. Any chance there's something missing?

Yes.  Revised patch attached that includes os-specific.h.

And, wouldn't things get simpler, with less #ifdef's, if 'vms_show'
was completely removed from curlmsg_vms.h?

Maybe.  I am trying to remember why I did not end up doing that.

I think that the vms_show variable is only used in the main.c module.

Regards,
-John
[email protected]
Personal Opinion Only


--- /src_root/curl-7.19.6-daily/packages/vms/curlmsg_vms.h      Wed Sep  3 
21:00:13 2008
+++ packages/vms/curlmsg_vms.h  Tue Jun  9 01:27:48 2009
@@ -7,8 +7,16 @@
 /*                                                                          */
 /* If you update CURLMSG.MSG make sure to update this file to match.        */
 /*                                                                          */
+
+/* The MODULE_OS_SPECIFC sections are only used by os-specific.c */
+/* And must not be public to other modules to prevent duplicate symbols */
+
+#ifdef MODULE_OS_SPECIFIC
+     int vms_show = 0;
 #include "curlmsg.h"
-int       vms_show = 0;
+#else
+     extern int vms_show;
+#endif
 /*
 #define   FAC_CURL      0xC01
 #define   FAC_SYSTEM    0
@@ -20,10 +28,11 @@
 #define   SEV_WARNING   0
 #define   SEV_SUCCESS   1
 #define   SEV_ERROR     2
-#define   SEV_INFO      3   
+#define   SEV_INFO      3
 #define   SEV_FATAL     4
 */
-long vms_cond[] = 
+#ifdef MODULE_OS_SPECIFIC
+static const long vms_cond[] =
         {
         CURL_OK,
        CURL_UNSUPPORTED_PROTOCOL,
@@ -111,3 +120,4 @@
        CURLE_SSL_ISSUER_ERROR,
         CURL_CURL_LAST
         };
+#endif
--- /src_root/curl-7.19.6-daily/src/main.c      Mon Jun  8 21:00:17 2009
+++ src/main.c  Tue Jun  9 23:56:29 2009
@@ -114,10 +114,6 @@
 #include <netinet/tcp.h> /* for TCP_KEEPIDLE, TCP_KEEPINTVL */
 #endif
 
-#ifdef __VMS
-#  include "curlmsg_vms.h"
-#endif
-
 #include "os-specific.h"
 
 /* The last #include file should be: */
--- /src_root/curl-7.19.6-daily/src/os-specific.c       Fri Jun  5 11:14:50 2009
+++ src/os-specific.c   Tue Jun  9 01:26:49 2009
@@ -25,7 +25,8 @@
 #include <curl/curl.h>
 
 #ifdef __VMS
-#  include "curlmsg_vms.h"
+#  define MODULE_OS_SPECIFIC 1
+   int vms_show;
 #endif
 
 #define ENABLE_CURLX_PRINTF
@@ -39,7 +40,10 @@
 
 #ifdef __VMS
 
-int vms_shell = -1;
+void decc$__posix_exit(int __status);
+void decc$exit(int __status);
+
+static int vms_shell = -1;
 
 /* VMS has a DCL shell and and also has Unix shells ported to it.
  * When curl is running under a Unix shell, we want it to be as much
--- /src_root/curl-7.19.6-daily/src/os-specific.h       Fri Jun  5 11:14:50 2009
+++ src/os-specific.h   Tue Jun  9 01:26:38 2009
@@ -25,16 +25,14 @@
 
 #ifdef __VMS
 
-extern int vms_shell;
-
-void decc$__posix_exit(int __status);
-void decc$exit(int __status);
-
 int is_vms_shell(void);
 void vms_special_exit(int code, int vms_show);
 
+
 #undef exit
 #define exit(__code) vms_special_exit((__code), (0))
+
+#  include "curlmsg_vms.h"
 
 #endif /* __VMS */
 

Reply via email to