Fix a couple of outstanding issues: update STATUS file, fix NO_FP_API problems.
[openssl.git] / apps / apps.c
index d3d601d9ed9d5131bf1643bd796d3bb8cfe2d84d..3a27f2c6f140b4ae7131e315ebe8c03d7796a410 100644 (file)
@@ -201,6 +201,27 @@ void program_name(char *in, char *out, int size)
        out[n]='\0';
        }
 #else
+#ifdef VMS
+void program_name(char *in, char *out, int size)
+       {
+       char *p=in, *q;
+       char *chars=":]>";
+
+       while(*chars != '\0')
+               {
+               q=strrchr(p,*chars);
+               if (q > p)
+                       p = q + 1;
+               chars++;
+               }
+
+       q=strrchr(p,'.');
+       if (q == NULL)
+               q = in+size;
+       strncpy(out,p,q-p);
+       out[q-p]='\0';
+       }
+#else
 void program_name(char *in, char *out, int size)
        {
        char *p;
@@ -214,14 +235,21 @@ void program_name(char *in, char *out, int size)
        out[size-1]='\0';
        }
 #endif
+#endif
 
 #ifdef WIN32
 int WIN32_rename(char *from, char *to)
        {
+#ifdef WINNT
        int ret;
+/* Note: MoveFileEx() doesn't work under Win95, Win98 */
 
        ret=MoveFileEx(from,to,MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED);
        return(ret?0:-1);
+#else
+       unlink(to);
+       return MoveFile(from, to);
+#endif
        }
 #endif
 
@@ -296,3 +324,14 @@ int app_init(long mesgwin)
        return(1);
        }
 #endif
+
+int MS_CALLBACK key_callback(char *buf, int len, int verify, void *key)
+       {
+       int i;
+
+       if (key == NULL) return(0);
+       i=strlen(key);
+       i=(i > len)?len:i;
+       memcpy(buf,key,i);
+       return(i);
+       }