From f67c544e164e622141199f03f03971c3c9d7e942 Mon Sep 17 00:00:00 2001 From: Aaron Cunliffe <7946141+aaroncunliffe@users.noreply.github.com> Date: Mon, 2 Feb 2026 10:27:02 +0000 Subject: [PATCH 1/2] fix: webserver folder creation regex change (#653) ## Summary Resolves #562 Implements regex change to support valid characters discussed by @daveallie in issue [here](https://github.com/crosspoint-reader/crosspoint-reader/issues/562#issuecomment-3830809156). Also rejects `.` and `..` as folder names which are invalid in FAT32 and exFAT filesystems ## Additional Context - Unsure on the wording for the alert, it feels overly explicit, but that might be a good thing. Happy to change. --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**< PARTIALLY >**_ --- docs/webserver.md | 2 +- src/network/html/FilesPage.html | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/webserver.md b/docs/webserver.md index 355bac41..d1d3bac5 100644 --- a/docs/webserver.md +++ b/docs/webserver.md @@ -153,7 +153,7 @@ Click **File Manager** to access file management features. 1. Click the **+ Add** button in the top-right corner 2. Select **New Folder** from the dropdown menu -3. Enter a folder name (letters, numbers, underscores, and hyphens only) +3. Enter a folder name (must not contain characters \" * : < > ? / \\ | and must not be . or ..) 4. Click **Create Folder** This is useful for organizing your ebooks by genre, author, or series. diff --git a/src/network/html/FilesPage.html b/src/network/html/FilesPage.html index bfdbe3cc..95993b8e 100644 --- a/src/network/html/FilesPage.html +++ b/src/network/html/FilesPage.html @@ -1146,10 +1146,10 @@ function retryAllFailedUploads() { return; } - // Validate folder name (no special characters except underscore and hyphen) - const validName = /^[a-zA-Z0-9_\-]+$/.test(folderName); + // Validate folder name + const validName = /^(?!\.{1,2}$)[^"*:<>?\/\\|]+$/.test(folderName); if (!validName) { - alert('Folder name can only contain letters, numbers, underscores, and hyphens.'); + alert('Folder name cannot contain \" * : < > ? / \\ | and must not be . or ..'); return; } From d403044f76bbdbcc684913221a6ee0969ffb2cfc Mon Sep 17 00:00:00 2001 From: Aaron Cunliffe <7946141+aaroncunliffe@users.noreply.github.com> Date: Tue, 3 Feb 2026 15:24:23 +0000 Subject: [PATCH 2/2] fix: Increase network SSID display length (#670) ## Rationale I have 2 wifi access points with almost identical names, just one has `_EXT` at the end of it. With the current display limit of 13 characters before adding ellipsis, I can't tell which is which. Before device screenshot with masked SSIDs: ## Summary Adjusted displayed length from 13 characters to 30 in the Wifi selection screen - I've left some space for potential proportional font changes in the future After image with masked SSIDs: --- ### AI Usage While CrossPoint doesn't have restrictions on AI tools in contributing, please be transparent about their usage as it helps set the right context for reviewers. Did you use AI tools to help write this code? _**< NO >**_ --- src/activities/network/WifiSelectionActivity.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/activities/network/WifiSelectionActivity.cpp b/src/activities/network/WifiSelectionActivity.cpp index 8bf83a93..becd41a3 100644 --- a/src/activities/network/WifiSelectionActivity.cpp +++ b/src/activities/network/WifiSelectionActivity.cpp @@ -546,8 +546,8 @@ void WifiSelectionActivity::renderNetworkList() const { // Draw network name (truncate if too long) std::string displayName = network.ssid; - if (displayName.length() > 16) { - displayName.replace(13, displayName.length() - 13, "..."); + if (displayName.length() > 33) { + displayName.replace(30, displayName.length() - 30, "..."); } renderer.drawText(UI_10_FONT_ID, 20, networkY, displayName.c_str());