Repository :
https://github.com/FarGroup/FarManager
On branch : master
Link :
https://github.com/FarGroup/FarManager/commit/2c1883a7dbecdf6811ea51189e7c35e060dcf38c
>---------------------------------------------------------------
commit 2c1883a7dbecdf6811ea51189e7c35e060dcf38c
Author: Yegor Mialyk <
16239726+y...@users.noreply.github.com>
Date: Fri Aug 22 17:16:33 2025 -0700
Continue 6534: Add support for *. (trailing dot) to match files without extensions
>---------------------------------------------------------------
2c1883a7dbecdf6811ea51189e7c35e060dcf38c
far/changelog | 5 +++++
far/processname.cpp | 11 ++++++++---
far/vbuild.m4 | 2 +-
3 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/far/changelog b/far/changelog
index d7a680322..367c7a957 100644
--- a/far/changelog
+++ b/far/changelog
@@ -1,3 +1,8 @@
+--------------------------------------------------------------------------------
+Yegor 2025-08-22 17:17:00-07:00 - build 6537
+
+1. Continue 6534: Add support for *. to match files without extensions.
+
--------------------------------------------------------------------------------
shmuel 2025-08-22 17:11:22+03:00 - build 6536
diff --git a/far/processname.cpp b/far/processname.cpp
index b038a7017..6559b352c 100644
--- a/far/processname.cpp
+++ b/far/processname.cpp
@@ -159,6 +159,7 @@ bool CmpName(const string_view pattern, string_view str, const bool skippath, co
size_t pi = 0, si = 0;
auto StarPI = string_view::npos;
auto StarSI = string_view::npos;
+ auto HasDot = false;
const auto try_backtrack = [&]
{
@@ -193,6 +194,9 @@ bool CmpName(const string_view pattern, string_view str, const bool skippath, co
while (si <= str.size())
{
+ if (si < str.size() && str[si] == L'.')
+ HasDot = true;
+
if (pi >= pattern.size())
{
if (si == str.size())
@@ -264,7 +268,8 @@ bool CmpName(const string_view pattern, string_view str, const bool skippath, co
continue;
}
- if (CmpNameLegacyMode && si == str.size() && pattern.substr(pi) == L".*"sv)
+ if (CmpNameLegacyMode && si == str.size() &&
+ (pattern.substr(pi) == L".*"sv || !HasDot && pattern.substr(pi) == L"."sv))
return true;
if (!try_backtrack())
@@ -455,7 +460,7 @@ TEST_CASE("CmpName")
{ 9, L".txt"sv, false },
{ 9, L"a.txt"sv, false },
{ 9, L"t.txt"sv, false },
- { 9, L"test"sv, false },
+ { 9, L"test"sv, true },
{ 9, L"test."sv, true },
{ 9, L"test.."sv, true },
{ 9, L"test.b.txt"sv, false },
@@ -468,7 +473,7 @@ TEST_CASE("CmpName")
{ 10, L".txt"sv, false },
{ 10, L"a.txt"sv, false },
{ 10, L"t.txt"sv, false },
- { 10, L"test"sv, false },
+ { 10, L"test"sv, true },
{ 10, L"test."sv, true },
{ 10, L"test.."sv, true },
{ 10, L"test.b.txt"sv, false },
diff --git a/far/vbuild.m4 b/far/vbuild.m4
index 564868d8a..652227f1f 100644
--- a/far/vbuild.m4
+++ b/far/vbuild.m4
@@ -1 +1 @@
-6536
+6537