Blame lib/progname.h

Packit Service fdd496
/* Program name management.
Packit Service fdd496
   Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc.
Packit Service fdd496
   Written by Bruno Haible <bruno@clisp.org>, 2001.
Packit Service fdd496
Packit Service fdd496
   This program is free software: you can redistribute it and/or modify
Packit Service fdd496
   it under the terms of the GNU General Public License as published by
Packit Service fdd496
   the Free Software Foundation; either version 3 of the License, or
Packit Service fdd496
   (at your option) any later version.
Packit Service fdd496
Packit Service fdd496
   This program is distributed in the hope that it will be useful,
Packit Service fdd496
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service fdd496
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service fdd496
   GNU General Public License for more details.
Packit Service fdd496
Packit Service fdd496
   You should have received a copy of the GNU General Public License
Packit Service fdd496
   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
Packit Service fdd496
Packit Service fdd496
#ifndef _PROGNAME_H
Packit Service fdd496
#define _PROGNAME_H
Packit Service fdd496
Packit Service fdd496
/* Programs using this file should do the following in main():
Packit Service fdd496
     set_program_name (argv[0]);
Packit Service fdd496
 */
Packit Service fdd496
Packit Service fdd496
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
extern "C" {
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
Packit Service fdd496
/* String containing name the program is called with.  */
Packit Service fdd496
extern const char *program_name;
Packit Service fdd496
Packit Service fdd496
/* Set program_name, based on argv[0].
Packit Service fdd496
   argv0 must be a string allocated with indefinite extent, and must not be
Packit Service fdd496
   modified after this call.  */
Packit Service fdd496
extern void set_program_name (const char *argv0);
Packit Service fdd496
Packit Service fdd496
#if ENABLE_RELOCATABLE
Packit Service fdd496
Packit Service fdd496
/* Set program_name, based on argv[0], and original installation prefix and
Packit Service fdd496
   directory, for relocatability.  */
Packit Service fdd496
extern void set_program_name_and_installdir (const char *argv0,
Packit Service fdd496
                                             const char *orig_installprefix,
Packit Service fdd496
                                             const char *orig_installdir);
Packit Service fdd496
#undef set_program_name
Packit Service fdd496
#define set_program_name(ARG0) \
Packit Service fdd496
  set_program_name_and_installdir (ARG0, INSTALLPREFIX, INSTALLDIR)
Packit Service fdd496
Packit Service fdd496
/* Return the full pathname of the current executable, based on the earlier
Packit Service fdd496
   call to set_program_name_and_installdir.  Return NULL if unknown.  */
Packit Service fdd496
extern char *get_full_program_name (void);
Packit Service fdd496
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
Packit Service fdd496
#ifdef __cplusplus
Packit Service fdd496
}
Packit Service fdd496
#endif
Packit Service fdd496
Packit Service fdd496
Packit Service fdd496
#endif /* _PROGNAME_H */