Rizin
unix-like reverse engineering framework and cli tools
tuklib_progname.c
Go to the documentation of this file.
1
//
5
//
6
// Author: Lasse Collin
7
//
8
// This file has been put into the public domain.
9
// You can do whatever you want with this file.
10
//
12
13
#include "
tuklib_progname.h
"
14
#include <string.h>
15
16
17
#if !HAVE_DECL_PROGRAM_INVOCATION_NAME
18
char
*
progname
=
NULL
;
19
#endif
20
21
22
extern
void
23
tuklib_progname_init
(
char
**
argv
)
24
{
25
#ifdef TUKLIB_DOSLIKE
26
// On these systems, argv[0] always has the full path and .exe
27
// suffix even if the user just types the plain program name.
28
// We modify argv[0] to make it nicer to read.
29
30
// Strip the leading path.
31
char
*
p
=
argv
[0] + strlen(
argv
[0]);
32
while
(
argv
[0] <
p
&&
p
[-1] !=
'/'
&&
p
[-1] !=
'\\'
)
33
--
p
;
34
35
argv
[0] =
p
;
36
37
// Strip the .exe suffix.
38
p
= strrchr(
p
,
'.'
);
39
if
(
p
!=
NULL
)
40
*
p
=
'\0'
;
41
42
// Make it lowercase.
43
for
(
p
=
argv
[0]; *
p
!=
'\0'
; ++
p
)
44
if
(*
p
>=
'A'
&& *
p
<=
'Z'
)
45
*
p
= *
p
-
'A'
+
'a'
;
46
#endif
47
48
progname
=
argv
[0];
49
return
;
50
}
NULL
#define NULL
Definition:
cris-opc.c:27
p
void * p
Definition:
libc.cpp:67
argv
static static fork const void static count static fd const char const char static newpath char char argv
Definition:
sflib.h:40
tuklib_progname_init
void tuklib_progname_init(char **argv)
Definition:
tuklib_progname.c:23
progname
char * progname
Definition:
tuklib_progname.c:18
tuklib_progname.h
Program name to be displayed in messages.
subprojects
xz-5.2.5
src
common
tuklib_progname.c
Generated by
1.9.1