static void Signal_Handler(int sig);
static void CatchInterrupt(int sig);
static void SetHandlers(void);
+static char* get_program_name(char *arg);
char *whoami; /* used by menu.c ugh!!! */
char *moira_server;
Menu *menu;
char **arg;
- if (!(program_name = strrchr(argv[0], '/')))
- program_name = argv[0];
- else
- program_name++;
- program_name = strdup(program_name);
+ program_name = get_program_name(argv[0]);
whoami = strdup(program_name); /* used by menu.c, ugh !!! */
user = mrcl_krb_user();
signal(SIGINT, CatchInterrupt);
}
#endif
+
+#ifdef _WIN32
+static char* get_program_name(char *arg)
+{
+ char* prog;
+ char* ext;
+ prog = max(max(strrchr(arg, '/'), strrchr(arg, '\\')) + 1, arg);
+ prog = _strlwr(prog);
+ prog = strdup(prog);
+ ext = strrchr(prog, '.');
+ if (ext && !strcmp(ext, ".exe"))
+ *ext = 0;
+ return prog;
+}
+#else
+static char* get_program_name(char *arg)
+{
+ char* prog;
+ if (!(prog = strrchr(arg, '/')))
+ prog = arg;
+ else
+ prog++;
+ return strdup(prog);
+}
+#endif