diff --git a/apps/apps.c b/apps/apps.c index 1a24b1c596308..5863b33850ea9 100644 --- a/apps/apps.c +++ b/apps/apps.c @@ -354,6 +354,22 @@ int WIN32_rename(char *from, char *to) } #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; diff --git a/apps/apps.h b/apps/apps.h index dae52bd016758..31dd0dc9e174b 100644 --- a/apps/apps.h +++ b/apps/apps.h @@ -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 +/* 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)