1
0
forked from Alepha/Alepha

Make a portable hook for getting program name.

This commit is contained in:
2023-11-10 22:51:03 -05:00
parent db70cb3b08
commit b21e8818e7
2 changed files with 50 additions and 5 deletions

View File

@ -10,6 +10,8 @@ static_assert( __cplusplus > 2020'99 );
#include <Alepha/StaticValue.h>
#include <Alepha/error.h>
#include <Alepha/System/programName.h>
namespace Alepha::Hydrogen ::detail:: ProgramOptions_m
{
namespace
@ -205,9 +207,7 @@ namespace Alepha::Hydrogen ::detail:: ProgramOptions_m
VariableMap substitutions=
{
// This uses a GNU extension, but it's fine. We can always make this
// portable, later.
{ "program-name"s, lambaste<=::program_invocation_short_name },
{ "program-name"s, lambaste<=System::programName() },
{ "option-name"s, lambaste<=name },
{ "default"s, [&defaultBuilder= defaultBuilder, &name= name]
{
@ -283,8 +283,7 @@ namespace Alepha::Hydrogen ::detail:: ProgramOptions_m
{
VariableMap substitutions
{
// Another use of the GNUism.
{ "program-name"s, lambaste<=::program_invocation_short_name },
{ "program-name"s, lambaste<=System::programName() },
};
if( canonicalName.has_value() ) substitutions[ "canonical-name"s ]= lambaste<=canonicalName.value();