123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- ///////////////////////////////////////////////////////////////////////////////
- //
- /// \file tuklib_progname.c
- /// \brief Program name to be displayed in messages
- //
- // Author: Lasse Collin
- //
- // This file has been put into the public domain.
- // You can do whatever you want with this file.
- //
- ///////////////////////////////////////////////////////////////////////////////
- #include "tuklib_progname.h"
- #include <string.h>
- #if !HAVE_DECL_PROGRAM_INVOCATION_NAME
- char *progname = NULL;
- #endif
- extern void
- tuklib_progname_init(char **argv)
- {
- #ifdef TUKLIB_DOSLIKE
- // On these systems, argv[0] always has the full path and .exe
- // suffix even if the user just types the plain program name.
- // We modify argv[0] to make it nicer to read.
- // Strip the leading path.
- char *p = argv[0] + strlen(argv[0]);
- while (argv[0] < p && p[-1] != '/' && p[-1] != '\\')
- --p;
- argv[0] = p;
- // Strip the .exe suffix.
- p = strrchr(p, '.');
- if (p != NULL)
- *p = '\0';
- // Make it lowercase.
- for (p = argv[0]; *p != '\0'; ++p)
- if (*p >= 'A' && *p <= 'Z')
- *p = *p - 'A' + 'a';
- #endif
- progname = argv[0];
- return;
- }
|