/* progname.h: Declarations for argv[0] equivalents.
Copyright 1994, 1996, 2008, 2010-2019 Karl Berry.
Copyright 1999, 2005 Olaf Weber.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this library; if not, see . */
#ifndef KPATHSEA_PROGNAME_H
#define KPATHSEA_PROGNAME_H
#include
#include
#ifdef __cplusplus
extern "C" {
#endif
/* Return directory ARGV0 comes from. Check PATH if ARGV0 is not
absolute. */
#if !defined (WIN32)
extern KPSEDLL string kpathsea_selfdir (kpathsea kpse, const_string argv0);
#endif
/* Set the two members `invocation_name' and `invocation_short_name'
in the KPSE instance to a copy of ARGV0 and everything in ARGV0 after
the last directory separator, respectively. Set `program_name' (also in
the KPSE instance) to a copy of PROGNAME or the value of
kpse_invocation_short_name if PROGNAME is NULL. This function also
sets the SELFAUTO* environment variables. */
extern KPSEDLL void kpathsea_set_program_name (kpathsea kpse,
const_string argv0, const_string progname);
/* See also `kpathsea_reset_program_name', which is defined in tex-file.c.
That function is to be used to set kpse->program_name to a different
value. It clears the path searching information, to ensure that
the search paths are appropriate to the new name. */
#if defined (KPSE_COMPAT_API)
#if !defined (WIN32)
extern KPSEDLL string kpse_selfdir (const_string argv0);
#endif
extern KPSEDLL void kpse_set_program_name (const_string argv0,
const_string progname);
#endif /* KPSE_COMPAT_API */
/* Returns ARGV0 with any leading path and on some systems the suffix
for executables stripped off. This returns a new string. */
extern KPSEDLL string kpse_program_basename (const_string argv0);
#ifdef __cplusplus
}
#endif
#endif /* not KPATHSEA_PROGNAME_H */