From e4dbb4f1dd078b48a6494686fe1f7687601c3e7f Mon Sep 17 00:00:00 2001 From: Marcus Holland-Moritz Date: Wed, 28 Jun 2023 03:02:57 +0200 Subject: [PATCH] Parse unicode filter rules --- src/mkdwarfs_main.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mkdwarfs_main.cpp b/src/mkdwarfs_main.cpp index cc6bf5a5..55e587cf 100644 --- a/src/mkdwarfs_main.cpp +++ b/src/mkdwarfs_main.cpp @@ -393,7 +393,7 @@ int mkdwarfs_main(int argc, sys_char** argv) { metadata_compression, log_level_str, timestamp, time_resolution, order, progress_mode, recompress_opts, pack_metadata, file_hash_algo, debug_filter, max_similarity_size, input_list_str, chmod_str; - std::vector filter; + std::vector filter; size_t num_workers, num_scanner_workers; bool no_progress = false, remove_header = false, no_section_index = false, force_overwrite = false; @@ -514,7 +514,7 @@ int mkdwarfs_main(int argc, sys_char** argv) { "Python script for customization") #endif ("filter,F", - po::value>(&filter)->multitoken(), + po_sys_value>(&filter)->multitoken(), "add filter rule") ("debug-filter", po::value(&debug_filter)->implicit_value("all"), @@ -882,10 +882,11 @@ int mkdwarfs_main(int argc, sys_char** argv) { bs->set_root_path(path); for (auto const& rule : filter) { + auto srule = sys_string_to_string(rule); try { - bs->add_filter_rule(rule); + bs->add_filter_rule(srule); } catch (std::exception const& e) { - std::cerr << "error: could not parse filter rule '" << rule + std::cerr << "error: could not parse filter rule '" << srule << "': " << e.what() << "\n"; return 1; }