#include <stdarg.h>
#include <setjmp.h>
#include <ctype.h>
-#include <libgen.h> /* for XPG version of basename(3) */
#include <string.h>
+#define BASENAME(p) strrchr(p, '/') ? strrchr(p, '/') + 1 : strrchr(p, '\\') ? strrchr(p, '\\') + 1 : p
#include <math.h>
#ifdef HAVE_ASSERT_H
flex_init_regex();
/* Enable C++ if program name ends with '+'. */
- program_name = basename (argv[0]);
+ program_name = BASENAME(argv[0]);
if (program_name != NULL &&
program_name[strlen (program_name) - 1] == '+')
fprintf (fp, "%s\n", usage);
}
else {
- /* Find the basename of argv[0] */
- const char *p;
-
- p = s->argv[0] + strlen (s->argv[0]);
- while (p != s->argv[0] && *p != '/')
- --p;
- if (*p == '/')
- p++;
-
- fprintf (fp, _("Usage: %s [OPTIONS]...\n"), p);
+ fprintf (fp, _("Usage: %s [OPTIONS]...\n"), BASENAME(s->argv[0]) );
}
fprintf (fp, "\n");