From 55e1a1f3acd12f09abf10109366bf609daf65189 Mon Sep 17 00:00:00 2001 From: Andy Kopra Date: Fri, 31 Jul 2026 00:25:18 +0200 Subject: [PATCH] Fix html::page declaration/definition divergence from the const sweep The four defaulted parameters in html_util.h stayed by-value while the definition became const&, leaving the called overload undefined. Linux's -shared linking hid it (lazy dlopen resolution); it broke the book-structure HTML path at runtime. Both sides now agree (const&, defaults kept); combine_files converted consistently as well. (from dev a910e11431d2) --- README.md | 2 +- mac/file.cpp | 8 ++++---- mac/file.h | 6 +++--- sks/target/html_util.h | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 61b44aa..f1d19e4 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ are regenerated on each release — patches cannot be merged directly. Report problems (or send patches) to the author; accepted changes are applied to the development tree and appear in a following snapshot. -This snapshot was assembled from development commit `64b1abf23e56`. +This snapshot was assembled from development commit `a910e11431d2`. ## License diff --git a/mac/file.cpp b/mac/file.cpp index 420d1b6..9cb99c7 100644 --- a/mac/file.cpp +++ b/mac/file.cpp @@ -570,12 +570,12 @@ strings_t find_files_with_extension( } std::string combine_files( - std::vector filenames, - std::string prolog, std::string epilog, - std::function processor) + const std::vector& filenames, + const std::string& prolog, const std::string& epilog, + const std::function & processor) { std::string result = prolog; - for (std::string f : filenames) { + for (const std::string& f : filenames) { result += "\n/* " + file_basename(f) + " */\n"; result += string_from_file(f); } diff --git a/mac/file.h b/mac/file.h index 888e4bb..74c883c 100644 --- a/mac/file.h +++ b/mac/file.h @@ -59,9 +59,9 @@ std::vector pathnames_with_extension( std::vector find_files_with_extension( const fs::path& root, const std::string& ext, bool case_insensitive=false); std::string combine_files( - std::vector filenames, - std::string prolog="", std::string epilog="", - std::function processor = nullptr); + const std::vector& filenames, + const std::string& prolog="", const std::string& epilog="", + const std::function & processor = nullptr); bool files_differ(const fs::path& p1, const fs::path& p2, diff --git a/sks/target/html_util.h b/sks/target/html_util.h index 34c57d0..b44470a 100644 --- a/sks/target/html_util.h +++ b/sks/target/html_util.h @@ -88,10 +88,10 @@ namespace html { const std::string& version, const std::string& copyright, const std::string& css, - strings_t css_filenames = {}, - strings_t js_filenames = {}, - strings_t local_fonts = {}, - std::string logo = {}); + const strings_t& css_filenames = {}, + const strings_t& js_filenames = {}, + const strings_t& local_fonts = {}, + const std::string& logo = {}); void add_title(elements_t& body, const std::string& title, const std::string& logo=""); void add_title(elements_t& body, const std::string& title, const std::string& logo);