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());