зеркало из https://github.com/mozilla/gecko-dev.git
35 строки
893 B
C++
35 строки
893 B
C++
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
//
|
|
// String manipulation functions used in the RLZ library.
|
|
|
|
#include "rlz/lib/string_utils.h"
|
|
|
|
namespace rlz_lib {
|
|
|
|
bool BytesToString(const unsigned char* data,
|
|
int data_len,
|
|
std::string* string) {
|
|
if (!string)
|
|
return false;
|
|
|
|
string->clear();
|
|
if (data_len < 1 || !data)
|
|
return false;
|
|
|
|
static const char kHex[] = "0123456789ABCDEF";
|
|
|
|
// Fix the buffer size to begin with to avoid repeated re-allocation.
|
|
string->resize(data_len * 2);
|
|
int index = data_len;
|
|
while (index--) {
|
|
string->at(2 * index) = kHex[data[index] >> 4]; // high digit
|
|
string->at(2 * index + 1) = kHex[data[index] & 0x0F]; // low digit
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
} // namespace rlz_lib
|