VMS below version 7 doesn't have strcasecmp, so let's roll our own on VMS.
authorRichard Levitte <levitte@openssl.org>
Thu, 10 Oct 2002 09:05:05 +0000 (09:05 +0000)
committerRichard Levitte <levitte@openssl.org>
Thu, 10 Oct 2002 09:05:05 +0000 (09:05 +0000)
PR: 184

apps/apps.c
apps/apps.h

index 1a24b1c..5863b33 100644 (file)
@@ -354,6 +354,22 @@ int WIN32_rename(char *from, char *to)
        }
 #endif
 
        }
 #endif
 
+#ifdef OPENSSL_SYS_VMS
+int VMS_strcasecmp(const char *str1, const char *str2)
+       {
+       while (*str1 && *str2)
+               {
+               int res = toupper(*str1) - toupper(*str2);
+               if (res) return res < 0 ? -1 : 1;
+               }
+       if (*str1)
+               return 1;
+       if (*str2)
+               return -1;
+       return 0;
+       }
+#endif
+
 int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
        {
        int num,len,i;
 int chopup_args(ARGS *arg, char *buf, int *argc, char **argv[])
        {
        int num,len,i;
index dae52bd..31dd0dc 100644 (file)
@@ -139,6 +139,12 @@ long app_RAND_load_files(char *file); /* `file' is a list of files to read,
 int WIN32_rename(char *oldname,char *newname);
 #endif
 
 int WIN32_rename(char *oldname,char *newname);
 #endif
 
+/* VMS below version 7.0 doesn't have strcasecmp() */
+#ifdef OPENSSL_SYS_VMS
+#define strcasecmp(str1,str2) VMS_strcasecmp((str1),(str2))
+int VMS_strcasecmp(const char *str1, const char *str2);
+#endif
+
 #ifndef MONOLITH
 
 #define MAIN(a,v)      main(a,v)
 #ifndef MONOLITH
 
 #define MAIN(a,v)      main(a,v)