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:
parent
b371821db5
commit
98299da0fd
19 changed files with 84 additions and 72 deletions
19
third_party/nix/src/libutil/util.cc
vendored
19
third_party/nix/src/libutil/util.cc
vendored
|
|
@ -12,6 +12,7 @@
|
|||
#include <thread>
|
||||
#include <utility>
|
||||
|
||||
#include <absl/strings/string_view.h>
|
||||
#include <fcntl.h>
|
||||
#include <grp.h>
|
||||
#include <pwd.h>
|
||||
|
|
@ -306,16 +307,17 @@ std::string readFile(int fd) {
|
|||
return std::string((char*)buf.data(), st.st_size);
|
||||
}
|
||||
|
||||
std::string readFile(const Path& path, bool drain) {
|
||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
||||
std::string readFile(absl::string_view path, bool drain) {
|
||||
AutoCloseFD fd = open(std::string(path).c_str(), O_RDONLY | O_CLOEXEC);
|
||||
if (!fd) {
|
||||
throw SysError(format("opening file '%1%'") % path);
|
||||
}
|
||||
return drain ? drainFD(fd.get()) : readFile(fd.get());
|
||||
}
|
||||
|
||||
void readFile(const Path& path, Sink& sink) {
|
||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
||||
void readFile(absl::string_view path, Sink& sink) {
|
||||
// TODO(tazjin): use stdlib functions for this stuff
|
||||
AutoCloseFD fd = open(std::string(path).c_str(), O_RDONLY | O_CLOEXEC);
|
||||
if (!fd) {
|
||||
throw SysError("opening file '%s'", path);
|
||||
}
|
||||
|
|
@ -1213,15 +1215,6 @@ std::string concatStringsSep(const std::string& sep, const StringSet& ss) {
|
|||
return s;
|
||||
}
|
||||
|
||||
std::string trim(const std::string& s, const std::string& whitespace) {
|
||||
auto i = s.find_first_not_of(whitespace);
|
||||
if (i == std::string::npos) {
|
||||
return "";
|
||||
}
|
||||
auto j = s.find_last_not_of(whitespace);
|
||||
return std::string(s, i, j == std::string::npos ? j : j - i + 1);
|
||||
}
|
||||
|
||||
std::string replaceStrings(const std::string& s, const std::string& from,
|
||||
const std::string& to) {
|
||||
if (from.empty()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue