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;
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
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);
+ }