Don't try to treat whe whole LC_COLLATE as one big string

it would be a bad idea
custom
jacqueline 1 year ago
parent 2ef022a2f9
commit 2dd72320dd
  1. 6
      src/locale/collation.cpp

@ -6,7 +6,8 @@
#include "collation.hpp" #include "collation.hpp"
#include <stdint.h> #include <cstdint>
#include <cstring>
#include <memory> #include <memory>
#include "esp_flash_spi_init.h" #include "esp_flash_spi_init.h"
@ -61,7 +62,8 @@ auto GLibCollator::create() -> GLibCollator* {
// We reserve the first 8 bytes of the partition for an identifier / name. // We reserve the first 8 bytes of the partition for an identifier / name.
// Copy it out, then crop the rest of the region so that the LC_COLLATE parser // Copy it out, then crop the rest of the region so that the LC_COLLATE parser
// doesn't see it. // doesn't see it.
std::string name{static_cast<const char*>(region)}; const char* region_as_str = static_cast<const char*>(region);
std::string name{region_as_str, strnlen(region_as_str, 8)};
region = static_cast<const std::byte*>(region) + 8; region = static_cast<const std::byte*>(region) + 8;
auto data = std::make_unique<locale_data_t>(); auto data = std::make_unique<locale_data_t>();

Loading…
Cancel
Save