summaryrefslogtreecommitdiffstats
path: root/src/grep/lib/getprogname-w32.c
blob: ab02a6c31efc40884b172019b4c6d9df8936ccf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/* Added by bird - Public Domain. */

#include <windows.h>
#include <string.h>

static char g_szProgName[260] = {0};

const char *getprogname(void)
{
    if (g_szProgName[0] == '\0')
    {
        char       szName[260];
        UINT const cchName = GetModuleFileNameA(NULL, szName, sizeof(szName));
        UINT       offName = cchName;
        while (   offName > 0
               && szName[offName - 1] != '\\'
               && szName[offName - 1] != '/'
               && szName[offName - 1] != ':')
            offName--;
        memcpy(g_szProgName, &szName[offName], cchName - offName);
    }
    return g_szProgName;
}