From a6bcdb2ac7f518d748d2127361e57aaae8d48b77 Mon Sep 17 00:00:00 2001 From: Aduneer <249940941+Aduneer@users.noreply.github.com> Date: Sun, 23 Aug 2026 10:23:43 +0200 Subject: [PATCH] Release 0.3.2 Three deck-file fixes. PR #27. The CHANGELOG's Unreleased section becomes 0.3.2 and its entries gain the PR number, which the file's own preamble promises. The summary gains a line saying which of the three is the reason to upgrade: one of them could delete lines out of a file the user wrote, and that is not a thing to leave a reader to work out from three equal-looking bullets. No transcript changed for the version bump, which is what the placeholder in normalise.awk exists for: releasing does not touch 50 expected files. The demo GIF is current -- nothing in this release changes what any screen looks like. --- CHANGELOG.md | 10 ++++++---- src/cli.h | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ba0c730..2fadbc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,10 +3,11 @@ Notable changes per release. Dates are the release date; the PR numbers link the detail, which is where the reasoning lives. -## Unreleased +## 0.3.2 — 2026-08-23 Three ways a deck file could be damaged or a path mistyped, all of them found -by pointing the app at files nobody had thought to point it at. +by pointing the app at files nobody had thought to point it at. The first is +the one to upgrade for: it could delete lines out of a file you wrote. ### Fixed @@ -27,18 +28,19 @@ by pointing the app at files nobody had thought to point it at. Blank lines are carried the same way, so a deck with sections in it round trips byte for byte and a save that changes nothing still writes nothing. + (#27) - **A deck path that cannot hold a deck is refused, before the menu.** Naming a directory loaded an empty deck and opened as normal; so did naming a file under a directory that does not exist. Either way the problem only surfaced as a failed save, after a card had been typed in. Both are checked up front - now, for every mode, and exit 2 with the reason. + now, for every mode, and exit 2 with the reason. (#27) - **CRLF decks load clean.** A deck written on Windows, or exported by a spreadsheet, kept the carriage return as part of each answer. It was invisible on screen, but it went back to disk as a quoted `"hello\r"` and stayed there. The line ending is now stripped where the line is parsed, which - covers imports as well as decks, and writing normalises to `\n`. + covers imports as well as decks, and writing normalises to `\n`. (#27) ## 0.3.1 — 2026-08-20 diff --git a/src/cli.h b/src/cli.h index cc5eb20..3e5ecf2 100644 --- a/src/cli.h +++ b/src/cli.h @@ -4,7 +4,7 @@ namespace FlashTerm { // Pre-1.0 on purpose: the deck format and review flow are still gaining // features, and 1.0.0 would promise a stability that is not being offered yet. -inline constexpr char kVersion[] = "0.3.1"; +inline constexpr char kVersion[] = "0.3.2"; // What the command line asked for. Anything that is not RunDeck is handled and // exited on immediately, before a deck is touched.