A rest argument keeps an empty first element; a removal block keeps its neighbour; the Markdown converter reads paragraphs whole; Smart App Control on the Windows page (from dev 1083db946f05)

- A rest argument (a list's or a table's items) now strips exactly ONE
  leading bar -- the separator from what precedes it -- so a second one is
  an empty first element: a table with an empty header corner is written
  `@table |` then ` | Maskulinum | ...`. Before, every leading bar was
  dropped and such a header row shifted one column left. New shipped suite
  tst/rest_test.sh.
- Text written hard against a closing ]# (a period, a letter) is no longer
  removed with the block; a following space or line break still is.
- sks/tns/md_to_sks.py converts inline Markdown per paragraph, so emphasis
  that wraps is converted and not mis-paired; bold may contain italic;
  tables are unnumbered; links to sibling .md files converted alongside
  become links to their html pages; the arrow becomes @rightarrow@.
- doc/install/windows_source_install.md: Smart App Control must be off --
  it blocks MSYS2's unsigned toolchain, and its Evaluation state turns
  itself on later.
This commit is contained in:
ack committed 2026-10-04 13:18:06 +02:00
1 parent 6e9889f7ae
commit bc2b3d8461
8 files changed
+244 -23

No files matched your search

+9 -6
View File
@@ -554,13 +554,16 @@ void mark_ignored_katoms(katom_list& katoms)
//auto is_ignore_begin = [](const Katom& k) { return k.m_type == katom_t::ignore_begin; };
//auto is_ignore_end = [](const Katom& k) { return k.m_type == katom_t::ignore_end; };
for (auto [op,cl] : find_spans(katoms, begin_ignore, end_ignore, true, "ignored")) {
// find_span_katoms() returns a half-open range: `end` is the katom
// AFTER the closing "]#", as every other caller reads it. This one
// read it as inclusive until 2026-10-02 and so removed the katom
// abutting the close: "#[...]#." lost its period, "#[...]#x" its x.
// A following space or newline is removed by design (the loop
// below, and here), which is what hid it.
auto [begin, end] = find_span_katoms(katoms, op, cl);
// std::for_each(begin, end + 1, [](Katom& k) { k.m_type = katom_t::ignored; });
std::for_each(begin, end + 1, mark_as_ignored);
//if (end + 1 != katoms.end() && (end+1)->m_type == katom_t::newline) {
if (end + 1 != katoms.end() && is_newline(*(end + 1))) {
//(end+1)->m_type = katom_t::ignored;
mark_as_ignored(*(end + 1));
std::for_each(begin, end, mark_as_ignored);
if (end != katoms.end() && is_newline(*end)) {
mark_as_ignored(*end);
}
}
bool ignore_line = false;