Skip to content

Commit

Permalink
Make macros::expand_numeric return int64_t
Browse files Browse the repository at this point in the history
While we can't change the C API there is really no reason to add a new
32 bit API. Changing now while it is still internal.
  • Loading branch information
ffesti committed Nov 18, 2024
1 parent 3006c84 commit c70c940
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
8 changes: 4 additions & 4 deletions rpmio/macro.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2063,12 +2063,12 @@ macros::expand_this(const char *n, ARGV_const_t args, int flags)
return std::make_pair(rc, target);
}

std::pair<int,int>
std::pair<int,int64_t>
macros::expand_numeric(const std::string & src, int flags)
{
auto [ exrc, s ] = macros().expand(src, flags);
const char *val = s.c_str();
int rc = 0;
int64_t rc = 0;
if (!(val && *val != '%'))
rc = 0;
else if (*val == 'Y' || *val == 'y')
Expand All @@ -2077,14 +2077,14 @@ macros::expand_numeric(const std::string & src, int flags)
rc = 0;
else {
char *end;
rc = strtol(val, &end, 0);
rc = strtoll(val, &end, 0);
if (!(end && *end == '\0'))
rc = 0;
}
return std::make_pair(exrc, rc);
}

std::pair<int,int>
std::pair<int,int64_t>
macros::expand_numeric(const std::initializer_list<std::string> & src, int flags)
{
string buf;
Expand Down
4 changes: 2 additions & 2 deletions rpmio/rpmmacro_internal.hh
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,8 @@ public:
std::pair<int,std::string> expand_this(const char *n, ARGV_const_t args,
int flags = 0);
/* Expand macros to numeric value, with a return code (rc, number) */
std::pair<int,int> expand_numeric(const std::string & src, int flags = 0);
std::pair<int,int> expand_numeric(const std::initializer_list<std::string> & src,
std::pair<int,int64_t> expand_numeric(const std::string & src, int flags = 0);
std::pair<int,int64_t> expand_numeric(const std::initializer_list<std::string> & src,
int flags = 0);
void init(const char *macrofiles);
bool is_defined(const char *n);
Expand Down

0 comments on commit c70c940

Please sign in to comment.