refactor(3p/nix/libutil): Replace string2Int & trim functions

Replaces these functions with corresponding functions from Abseil,
namely absl::StripAsciiWhitespace and absl::SimpleAtoi.

In the course of doing this some minor things I encountered along the
way were also refactored.

This also changes the signatures of the various custom readFile
functions to use absl::string_view types.
This commit is contained in:
Vincent Ambo 2020-05-25 01:19:02 +01:00
parent b371821db5
commit 98299da0fd
19 changed files with 84 additions and 72 deletions

View file

@ -1,5 +1,7 @@
#include "attr-path.hh"
#include <absl/strings/numbers.h>
#include "eval-inline.hh"
#include "util.hh"
@ -50,7 +52,7 @@ Value* findAlongAttrPath(EvalState& state, const std::string& attrPath,
/* Is i an index (integer) or a normal attribute name? */
enum { apAttr, apIndex } apType = apAttr;
unsigned int attrIndex;
if (string2Int(attr, attrIndex)) {
if (absl::SimpleAtoi(attr, &attrIndex)) {
apType = apIndex;
}

View file

@ -4,6 +4,7 @@
#include <regex>
#include <utility>
#include <absl/strings/numbers.h>
#include <glog/logging.h>
#include "derivations.hh"
@ -243,7 +244,7 @@ NixInt DrvInfo::queryMetaInt(const std::string& name, NixInt def) {
/* Backwards compatibility with before we had support for
integer meta fields. */
NixInt n;
if (string2Int(v->string.s, n)) {
if (absl::SimpleAtoi(v->string.s, &n)) {
return n;
}
}

View file

@ -2,6 +2,8 @@
#include <memory>
#include <absl/strings/numbers.h>
#include "util.hh"
namespace nix {
@ -68,8 +70,8 @@ std::string nextComponent(std::string::const_iterator& p,
static bool componentsLT(const std::string& c1, const std::string& c2) {
int n1;
int n2;
bool c1Num = string2Int(c1, n1);
bool c2Num = string2Int(c2, n2);
bool c1Num = absl::SimpleAtoi(c1, &n1);
bool c2Num = absl::SimpleAtoi(c2, &n2);
if (c1Num && c2Num) {
return n1 < n2;