VMS support.

Submitted by: Richard Levitte <richard@levitte.org>
diff --git a/apps/apps.c b/apps/apps.c
index f9cc270..354043e 100644
--- a/apps/apps.c
+++ b/apps/apps.c
@@ -201,6 +201,27 @@
 	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,6 +235,7 @@
 	out[size-1]='\0';
 	}
 #endif
+#endif
 
 #ifdef WIN32
 int WIN32_rename(char *from, char *to)