From 288ca6a1be68a690693291a18dc24de6fcd8e1ab Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 7 Sep 2026 10:35:03 +1000 Subject: [PATCH 01/12] release: recls 1.10.0-rc4 Prepare release 1.10.0-rc4 targeting 10th September 2026: - include/recls/recls.h: bump version to 1.10.0-rc4 (0xC4), extend copyright to 2026, and wire RECLS_VER to RECLS_VER_AB directly; - CHANGES.md: record 1.10.0-rc4 changes including CMake canonicalisation, version macro updates, doc heading standardisation, and fixes; - NEWS.md: add 10th September 2026 release candidate 4 entry; - INSTALL.md: correct step numbering, script names, and cross-references; - CMakeLists.txt: update header date to 10th September 2026; - EXAMPLES.md: add entry for example_cpp_4; - examples/c/example_c_2.md: fix title heading to example_c_2; --- CHANGES.md | 62 +++++++++++-------- CMakeLists.txt | 29 +++++++-- EXAMPLES.md | 1 + INSTALL.md | 13 ++-- NEWS.md | 1 + TODO.md | 1 + examples/c/example_c_1.md | 2 +- examples/c/example_c_10.md | 2 +- examples/c/example_c_2.md | 2 +- examples/c/example_c_3.md | 2 +- examples/c/example_c_4.md | 2 +- examples/c/example_c_5.md | 2 +- examples/c/example_c_6.md | 2 +- examples/c/example_c_7.md | 2 +- examples/c/example_c_8.md | 2 +- examples/c/example_c_9.md | 2 +- examples/cpp/example_cpp_1.md | 2 +- examples/cpp/example_cpp_2.md | 2 +- examples/cpp/example_cpp_3.md | 2 +- examples/cpp/example_cpp_4.md | 2 +- include/recls/recls.h | 18 ++++-- prepare_cmake.sh | 12 ++-- src/incl.winstl.h | 2 +- .../main.c | 4 +- .../main.c | 4 +- 25 files changed, 108 insertions(+), 67 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 0208034b..c9f721e5 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,7 +1,19 @@ -# **recls** Changes +# recls - Changes -## 1.10.0 (release candidate 3) - 3rd August 2026 +## 1.10.0-rc4 - 10th September 2026 + +* Canonicalised CMake exclusion variables from reserved `CMAKE_NO_*` (`CMAKE_NO_B64`, `CMAKE_NO_PANTHEIOS`, `CMAKE_NO_SHWILD`) to canonical `NO_*` in **CMakeLists.txt** and **prepare_cmake.sh**; +* Added backwards-compatibility mappings with obsolete-variable warnings for legacy `CMAKE_NO_*` in **CMakeLists.txt**; +* Added `RECLS_VER_1_10_0_RC_2`, `RECLS_VER_1_10_0_RC_3`, and `RECLS_VER_1_10_0_RC_4` version definitions, updated `RECLS_VER_AB` to `0xC4`, and provided legacy `RECLS_VER_ALPHABETA` and `RECLS_VER_REVISION` compatibility aliases in **include/recls/recls.h**; +* Standardised top-level headings across C and C++ example companion documentation files (**examples/c/*.md**, **examples/cpp/*.md**); +* Fixed title heading typo in **examples/c/example_c_2.md**; +* Added **example_cpp_4** entry to **EXAMPLES.md**; +* Corrected step numbering, script name, and cross-references in **INSTALL.md**; +* Cleaned up formatting and indentation in **src/incl.winstl.h** and scratch test sources; + + +## 1.10.0-rc3 - 3rd August 2026 * Added modular GitHub Actions CI (**ci.yml** / **ci-cell.yml**) with install-smoke coverage; * Removed **HISTORY.md** (content merged into **CHANGES.md**); @@ -12,14 +24,14 @@ * Project boilerplate updates (**.gitattributes**, **.vimrc**, **.vscode/settings.json**); -## 1.10.0 (release candidate 2) - 30th June 2025 +## 1.10.0-rc2 - 30th June 2025 * Added `recls::device()`, `recls::directory()`, `recls::file()`, and `recls::socket()` stat-like functions, that attempt to obtain a file-system entry and then filter (or throw) for specific file type; * Added **libver** scratch-test; * Fixed boilerplate, wherein various 1.10.0-xxx releases were erroneously tagged 1.10.1-xxx; -## 1.10.0 (release candidate 1) - 6th May 2025 +## 1.10.0-rc1 - 6th May 2025 * Added `RECLS_F_NO_BREAK_INFINITE_LOOPS` search flag and (initial) supporting logic, which cures the macOS infinite-loop problem; * Added `RECLS_REMDIR_F_REMOVE_SOCKETS` flag and supporting logic in `Recls_RemoveDirectory()`; @@ -55,7 +67,7 @@ * Sorting of **TODO.md** in readiness for 1.11 work streams; -## 1.10.0 (beta 6) - 30th April 2025 +## 1.10.0-beta6 - 30th April 2025 * Added support for searching for/stat()-ing devices: `RECLS_F_DEVICES`, `RECLS_RC_ENTRY_IS_DEVICE`, **example_c_10** (which searches for devices), `recls::cpp::entry#is_device()`; * Ensuring full support across operating systems for `RECLS_F_STOP_ON_ACCESS_FAILURE`, including adding **test.scratch.ignore_inaccessible_nodes**; @@ -70,12 +82,12 @@ * Various tidyings and consistency fixes; -## 1.10.0 (beta 5) - 22nd April 2025 +## 1.10.0-beta5 - 22nd April 2025 * Added support for searching for/stat()-ing sockets: `RECLS_F_SOCKETS`, `RECLS_RC_ENTRY_IS_FILE`, `RECLS_RC_ENTRY_IS_SOCKET`; -## 1.10.0 (beta 4) - 17th April 2025 +## 1.10.0-beta4 - 17th April 2025 * Added `Recls_GetFileSizeGibiBytes()`, `Recls_GetFileSizeKibiBytes()`, `Recls_GetFileSizeMebiBytes()`, `Recls_GetFileSizeTebiBytes()`; * Fixed calculations (from 1,024 factor to 1,000) for `Recls_GetFileSizeGigaBytes()`, `Recls_GetFileSizeKiloBytes()`, `Recls_GetFileSizeMegaBytes()`; @@ -86,7 +98,7 @@ * Removed all Visual C++ solution/project files; -## 1.10.0 (beta 3) - 17th April 2025 +## 1.10.0-beta3 - 17th April 2025 * Fixes to `Recls_SqueezePath()`; * Wholesale improvements to examples (incl. **example_c_2** feedback, optional search-directory, memory-usage fix); @@ -95,14 +107,14 @@ * Updated dependency requirements; -## 1.10.0 (beta 2) - 23rd February 2025 +## 1.10.0-beta2 - 23rd February 2025 * GCC compatibility; **test.scratch.with_pantheios**: removed need for function pointer cast; * Boilerplate and tidying; -## 1.10.0 (beta 1) - 23rd February 2025 +## 1.10.0-beta1 - 23rd February 2025 * Added `Recls_IsEntrySocket()` API function and `recls::entry#is_socket()`; * Renamed API functions `Recls_IsFile*()` => `Recls_IsEntry*()`, and added backwards-compatible functions; @@ -111,7 +123,7 @@ * Updated dependency requirements; -## 1.10.0 (alpha 9) - 23rd October 2024 +## 1.10.0-alpha9 - 23rd October 2024 * Fleshed out **INSTALL.md**; * CMake build script consistency and minor fixes; @@ -119,14 +131,14 @@ * Project boilerplate / settings / ignores improvements; -## 1.10.0 (alpha 8) - 18th October 2024 +## 1.10.0-alpha8 - 18th October 2024 * CMake / GCC / MinGW compatibility improvements; * Tightening up CMake constructs; * Visual C++ (19xx+) compatibility; -## 1.10.0 (alpha 7) - 17th October 2024 +## 1.10.0-alpha7 - 17th October 2024 * Ensuring all **recls/cpp/*.hpp** files are self-sufficient; * MinGW compatibility; @@ -139,21 +151,21 @@ * Updated compatibility with **xTests** latest; -## 1.10.0 (alpha 6) - 10th July 2024 +## 1.10.0-alpha6 - 10th July 2024 * Visual C++ 17 (2022) compatibility; * CMake Windows compatibility; * GCC compatibility improvements; -## 1.10.0 (alpha 5) - 4th January 2024 +## 1.10.0-alpha5 - 4th January 2024 * Initial CMake support (building and installation; verified on macOS); * Renamed project boilerplate `.txt` files to `.md` (Markdown); * Project boilerplate updates; -## 1.10.0 (alpha 3) - 29th March 2021 +## 1.10.0-alpha3 - 29th March 2021 * search-relative-path now contains trailing slash for directories when RECLS_F_MARK_DIRS specified; * VC++ 15, 16 compatibility; @@ -165,7 +177,7 @@ * various fixes and refactorings; -## 1.10.0 (alpha 1) - 4th January 2021 +## 1.10.0-alpha1 - 4th January 2021 * improved flexibility in treatment of search-directory and patterns; * significant refactoring, simplification, removal of dead code; @@ -233,7 +245,7 @@ * NOTE: depends on STLSoft 1.9.121; -## 1.9.1 (alpha 8) - 4th June 2012 +## 1.9.1-alpha8 - 4th June 2012 * changed entry field volumeSerialNumber to deviceId; * added entry field volumeSerialNumber (and search flag RECLS_F_NODE_INDEX); @@ -245,7 +257,7 @@ * NOTE: depends on STLSoft 1.9.113; -## 1.9.1 (alpha 7) - 30th November 2011 +## 1.9.1-alpha7 - 30th November 2011 * added numLinks member to recls_entryinfo_t; * added member numRelativeDirectoryParts to recls_entryinfo_t; @@ -270,7 +282,7 @@ * NOTE: depends on STLSoft 1.9.111; -## 1.9.1 (alpha 6) - 18th October 2010 +## 1.9.1-alpha6 - 18th October 2010 * recls::entry: added get_file_size() method, ~ deprecated size() method; * recls::recls_exception: added 'patterns' property; @@ -281,7 +293,7 @@ * NOTE: depends on STLSoft 1.9.101; -## 1.9.1 (alpha 5) - 7th June 2010 +## 1.9.1-alpha5 - 7th June 2010 * added comparison operators for recls::cpp::entry; * added subscript operator to recls::cpp::root_sequence; @@ -293,7 +305,7 @@ * NOTE: depends on STLSoft 1.9.98; -## 1.9.1 (alpha 4) - 4th April 2010 +## 1.9.1-alpha4 - 4th April 2010 * fixed invalid calculation in stat(); * fixed path-relativity defect; @@ -303,7 +315,7 @@ * NOTE: depends on STLSoft 1.9.97; -## 1.9.1 (alpha 3) - 10th March 2010 +## 1.9.1-alpha3 - 10th March 2010 * Added support for Visual C++ 10 (including makefiles and implicit linking); * NOTE: bundles shwild 0.9.19; @@ -311,7 +323,7 @@ * NOTE: depends on STLSoft 1.9.96; -## 1.9.1 (alpha 2) - 11th February 2010 +## 1.9.1-alpha2 - 11th February 2010 * added VC++ 9 (Visual Studio 2008) solution/project files; * added Recls_GetFileSizeGigaBytes(), Recls_GetFileSizeMegaBytes(), Recls_GetFileSizeKiloBytes() API functions; @@ -321,7 +333,7 @@ * NOTE: C++ mapping also depends on STLSoft 1.10 alpha 13 (or later); -## 1.9.1 (alpha 1) - 9th February 2010 +## 1.9.1-alpha1 - 9th February 2010 * first release of recls 1.9; * merging 1.8's C++ and STL APIs into one: include for new C++ API; diff --git a/CMakeLists.txt b/CMakeLists.txt index 7542f13a..d3240d2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ # Purpose: Top-level CMake lists file for recls # # Created: 9th October 2019 -# Updated: 29th June 2025 +# Updated: 10th September 2026 # # ######################################################################## # @@ -166,11 +166,32 @@ if(DEFINED STLSOFT_INCLUDE_DIR) include_directories(${STLSOFT_INCLUDE_DIR}) endif() +if(DEFINED CMAKE_NO_B64 AND NOT DEFINED NO_B64) + + message(WARNING "variable 'CMAKE_NO_B64' is obsolete and will not be supported in a future version; use 'NO_B64' instead") + + set(NO_B64 ${CMAKE_NO_B64}) +endif() + +if(DEFINED CMAKE_NO_PANTHEIOS AND NOT DEFINED NO_PANTHEIOS) + + message(WARNING "variable 'CMAKE_NO_PANTHEIOS' is obsolete and will not be supported in a future version; use 'NO_PANTHEIOS' instead") + + set(NO_PANTHEIOS ${CMAKE_NO_PANTHEIOS}) +endif() + +if(DEFINED CMAKE_NO_SHWILD AND NOT DEFINED NO_SHWILD) + + message(WARNING "variable 'CMAKE_NO_SHWILD' is obsolete and will not be supported in a future version; use 'NO_SHWILD' instead") + + set(NO_SHWILD ${CMAKE_NO_SHWILD}) +endif() + # ############################ # b64 -if(NOT (CMAKE_NO_B64)) +if(NOT NO_B64) if(BUILD_TESTING) @@ -193,7 +214,7 @@ endif() # ############################ # Pantheios -if(NOT (CMAKE_NO_PANTHEIOS)) +if(NOT NO_PANTHEIOS) if(BUILD_TESTING) @@ -212,7 +233,7 @@ endif() # ############################ # shwild -if(NOT (CMAKE_NO_SHWILD)) +if(NOT NO_SHWILD) if(BUILD_TESTING) diff --git a/EXAMPLES.md b/EXAMPLES.md index 90129c9d..2d7af009 100644 --- a/EXAMPLES.md +++ b/EXAMPLES.md @@ -15,6 +15,7 @@ |**example_cpp_1**|C++|[examples/cpp/example_cpp_1/main.cpp](./examples/cpp/example_cpp_1/main.cpp)
[examples/cpp/example_cpp_1.md](./examples/cpp/example_cpp_1.md)|Demonstrates recursive search for all files under a given directory including all appropriate failure handling.| |**example_cpp_2**|C++|[examples/cpp/example_cpp_2/main.cpp](./examples/cpp/example_cpp_2/main.cpp)
[examples/cpp/example_cpp_2.md](./examples/cpp/example_cpp_2.md)|Demonstrates obtaining `stat()` of home directory using `recls::stat`, then recursive search under that of files matching a complex pattern| |**example_cpp_3**|C++|[examples/cpp/example_cpp_3/main.cpp](./examples/cpp/example_cpp_3/main.cpp)
[examples/cpp/example_cpp_3.md](./examples/cpp/example_cpp_3.md)|Demonstrates use of `recls::stat()` on current directory or named path, optionally specifying a type filter (use `"--help"` for usage), showing various elements of the path in exploded form| +|**example_cpp_4**|C++|[examples/cpp/example_cpp_4/main.cpp](./examples/cpp/example_cpp_4/main.cpp)
[examples/cpp/example_cpp_4.md](./examples/cpp/example_cpp_4.md)|Demonstrates use of `Recls_RemoveDirectory()`, optionally including files and sockets.| diff --git a/INSTALL.md b/INSTALL.md index e0cda458..e222c964 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -43,24 +43,23 @@ The primary choice for installation is by use of **CMake**. $ ./build_cmake.sh ``` - (**NOTE**: if you provide the flag `--run-make` (=== `-m`) in step 3 then you do + (**NOTE**: if you provide the flag `--run-make` (=== `-m`) in step 2 then you do not need this step.) 4. As a check, execute the built test program files via the - **build_run_all_unit_tests.sh** script, as in: + **run_all_unit_tests.sh** script, as in: ```bash $ ./run_all_unit_tests.sh ``` -6. Install the library on the host, via `cmake`, as in: - +5. Install the library on the host, via `cmake`, as in: ```bash $ sudo cmake --install ${SIS_CMAKE_BUILD_DIR:-./_build} --config Release ``` -7. Then to use the library, it is a simple matter as follows: +6. Then to use the library, it is a simple matter as follows: 1. Assuming a simplest possible program to verify the installation: @@ -83,7 +82,7 @@ The primary choice for installation is by use of **CMake**. 2. Compile your project against **recls**: - Due to the installation step (Step 6 above) there is no requirement + Due to the installation step (Step 5 above) there is no requirement for an explicit include directory for **recls**: ```bash @@ -92,7 +91,7 @@ The primary choice for installation is by use of **CMake**. 3. Link your project against **recls**: - Due to the installation step (Step 6 above) there is no requirement + Due to the installation step (Step 5 above) there is no requirement for an explicit library directory for **recls**: ```bash diff --git a/NEWS.md b/NEWS.md index fb2333db..b167d8d1 100644 --- a/NEWS.md +++ b/NEWS.md @@ -3,6 +3,7 @@ | Date | News Item | | --------------------- | --------------------------------------------------------- | +| 10th September 2026 | [recls 1.10.0 (release candidate 4)](https://github.com/synesissoftware/recls/releases/tag/1.10.0-rc4) released | | 3rd August 2026 | [recls 1.10.0 (release candidate 3)](https://github.com/synesissoftware/recls/releases/tag/1.10.0-rc3) released | | 30th June 2025 | recls 1.10.0 (release candidate 2) released | | 6th May 2025 | recls 1.10.0 (release candidate 1) released | diff --git a/TODO.md b/TODO.md index d9c7d1cc..7253bf48 100644 --- a/TODO.md +++ b/TODO.md @@ -48,6 +48,7 @@ * [x] ~~~Remove plethora of old makefiles~~~ - ✅; * [-] ~~~Provide small number of more "intelligent" makefiles~~~ - ❌; * [ ] Bazel, Jam, SCons, etc. scripts; +* [ ] Remove '--no-b64' flag and associated support (in **prepare_cmake.sh** and **CMakeLists.txt**), rendered redundant by recent improvements to **Pantheios**' CMake usage; diff --git a/examples/c/example_c_1.md b/examples/c/example_c_1.md index df4ef245..be4b951a 100644 --- a/examples/c/example_c_1.md +++ b/examples/c/example_c_1.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_1** +# recls - Example - **example_c_1** ## Summary diff --git a/examples/c/example_c_10.md b/examples/c/example_c_10.md index e24c2fef..719ddc3f 100644 --- a/examples/c/example_c_10.md +++ b/examples/c/example_c_10.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_10** +# recls - Example - **example_c_10** ## Summary diff --git a/examples/c/example_c_2.md b/examples/c/example_c_2.md index e4e77cd7..5590228f 100644 --- a/examples/c/example_c_2.md +++ b/examples/c/example_c_2.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_1** +# recls - Example - **example_c_2** ## Summary diff --git a/examples/c/example_c_3.md b/examples/c/example_c_3.md index 0788e299..80edaef1 100644 --- a/examples/c/example_c_3.md +++ b/examples/c/example_c_3.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_3** +# recls - Example - **example_c_3** ## Summary diff --git a/examples/c/example_c_4.md b/examples/c/example_c_4.md index 04c60fcb..59ffa3b7 100644 --- a/examples/c/example_c_4.md +++ b/examples/c/example_c_4.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_4** +# recls - Example - **example_c_4** ## Summary diff --git a/examples/c/example_c_5.md b/examples/c/example_c_5.md index 51fc88f1..7152fcbf 100644 --- a/examples/c/example_c_5.md +++ b/examples/c/example_c_5.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_5** +# recls - Example - **example_c_5** ## Summary diff --git a/examples/c/example_c_6.md b/examples/c/example_c_6.md index b5d28a54..f900c184 100644 --- a/examples/c/example_c_6.md +++ b/examples/c/example_c_6.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_6** +# recls - Example - **example_c_6** ## Summary diff --git a/examples/c/example_c_7.md b/examples/c/example_c_7.md index 3baffd75..a58b05ca 100644 --- a/examples/c/example_c_7.md +++ b/examples/c/example_c_7.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_7** +# recls - Example - **example_c_7** ## Summary diff --git a/examples/c/example_c_8.md b/examples/c/example_c_8.md index 74ede669..7787f11d 100644 --- a/examples/c/example_c_8.md +++ b/examples/c/example_c_8.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_8** +# recls - Example - **example_c_8** ## Summary diff --git a/examples/c/example_c_9.md b/examples/c/example_c_9.md index 5aad0119..6227d4cc 100644 --- a/examples/c/example_c_9.md +++ b/examples/c/example_c_9.md @@ -1,4 +1,4 @@ -# recls Example - **example_c_9** +# recls - Example - **example_c_9** ## Summary diff --git a/examples/cpp/example_cpp_1.md b/examples/cpp/example_cpp_1.md index 0ffbdfb2..651ac41a 100644 --- a/examples/cpp/example_cpp_1.md +++ b/examples/cpp/example_cpp_1.md @@ -1,4 +1,4 @@ -# recls Example - **example_cpp_1** +# recls - Example - **example_cpp_1** ## Summary diff --git a/examples/cpp/example_cpp_2.md b/examples/cpp/example_cpp_2.md index a8ec148e..75832822 100644 --- a/examples/cpp/example_cpp_2.md +++ b/examples/cpp/example_cpp_2.md @@ -1,4 +1,4 @@ -# recls Example - **example_cpp_2** +# recls - Example - **example_cpp_2** ## Summary diff --git a/examples/cpp/example_cpp_3.md b/examples/cpp/example_cpp_3.md index 1796c35a..033b1115 100644 --- a/examples/cpp/example_cpp_3.md +++ b/examples/cpp/example_cpp_3.md @@ -1,4 +1,4 @@ -# recls Example - **example_cpp_3** +# recls - Example - **example_cpp_3** ## Summary diff --git a/examples/cpp/example_cpp_4.md b/examples/cpp/example_cpp_4.md index b1e753df..c111a03d 100644 --- a/examples/cpp/example_cpp_4.md +++ b/examples/cpp/example_cpp_4.md @@ -1,4 +1,4 @@ -# recls Example - **example_cpp_4** +# recls - Example - **example_cpp_4** ## Summary diff --git a/include/recls/recls.h b/include/recls/recls.h index 25912558..953f9cbb 100644 --- a/include/recls/recls.h +++ b/include/recls/recls.h @@ -4,11 +4,11 @@ * Purpose: Main header file for recls API. * * Created: 15th August 2003 - * Updated: 3rd August 2026 + * Updated: 10th September 2026 * * Home: https://github.com/synesissoftware/recls * - * Copyright (c) 2019-2025, Matthew Wilson and Synesis Information Systems + * Copyright (c) 2019-2026, Matthew Wilson and Synesis Information Systems * Copyright (c) 2003-2019, Matthew Wilson and Synesis Software * All rights reserved. * @@ -53,7 +53,7 @@ # define RECLS_VER_RECLS_H_RECLS_MAJOR 3 # define RECLS_VER_RECLS_H_RECLS_MINOR 28 # define RECLS_VER_RECLS_H_RECLS_REVISION 0 -# define RECLS_VER_RECLS_H_RECLS_EDIT 161 +# define RECLS_VER_RECLS_H_RECLS_EDIT 162 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */ /** \name recls API Version @@ -143,22 +143,28 @@ # define RECLS_VER_1_10_0_B05 0x010a0085 # define RECLS_VER_1_10_0_B06 0x010a0086 # define RECLS_VER_1_10_0_RC_1 0x010a00c1 +# define RECLS_VER_1_10_0_RC_2 0x010a00c2 +# define RECLS_VER_1_10_0_RC_3 0x010a00c3 +# define RECLS_VER_1_10_0_RC_4 0x010a00c4 #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */ #define RECLS_VER_MAJOR 1 #define RECLS_VER_MINOR 10 #define RECLS_VER_PATCH 0 -#define RECLS_VER_ALPHABETA 0xC3 +#define RECLS_VER_AB 0xC4 #define RECLS_VER \ (0\ | ( RECLS_VER_MAJOR << 24 ) \ | ( RECLS_VER_MINOR << 16 ) \ | ( RECLS_VER_PATCH << 8 ) \ - | ( RECLS_VER_ALPHABETA << 0 ) \ + | ( RECLS_VER_AB << 0 ) \ ) -#define RECLS_VER_REVISION RECLS_VER_PATCH +#ifndef RECLS_DOCUMENTATION_SKIP_SECTION +# define RECLS_VER_ALPHABETA RECLS_VER_AB +# define RECLS_VER_REVISION RECLS_VER_PATCH +#endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */ /* ///////////////////////////////////////////////////////////////////////// diff --git a/prepare_cmake.sh b/prepare_cmake.sh index 61477592..b90f1070 100755 --- a/prepare_cmake.sh +++ b/prepare_cmake.sh @@ -191,9 +191,9 @@ if [ $MinGW -ne 0 ]; then -DBUILD_EXAMPLES:BOOL=$CMakeBuildExamplesFlag \ -DBUILD_TESTING:BOOL=$CMakeBuildTestingFlag \ -DCMAKE_BUILD_TYPE=$Configuration \ - -DCMAKE_NO_B64:BOOL=$CMakeNoB64 \ - -DCMAKE_NO_PANTHEIOS:BOOL=$CMakeNoPantheios \ - -DCMAKE_NO_SHWILD:BOOL=$CMakeNoShwild \ + -DNO_B64:BOOL=$CMakeNoB64 \ + -DNO_PANTHEIOS:BOOL=$CMakeNoPantheios \ + -DNO_SHWILD:BOOL=$CMakeNoShwild \ -DUSE_UNIXEM:BOOL=$CMakeUSE_UNIXem \ -G "MinGW Makefiles" \ -S $Dir \ @@ -206,9 +206,9 @@ else -DBUILD_EXAMPLES:BOOL=$CMakeBuildExamplesFlag \ -DBUILD_TESTING:BOOL=$CMakeBuildTestingFlag \ -DCMAKE_BUILD_TYPE=$Configuration \ - -DCMAKE_NO_B64:BOOL=$CMakeNoB64 \ - -DCMAKE_NO_PANTHEIOS:BOOL=$CMakeNoPantheios \ - -DCMAKE_NO_SHWILD:BOOL=$CMakeNoShwild \ + -DNO_B64:BOOL=$CMakeNoB64 \ + -DNO_PANTHEIOS:BOOL=$CMakeNoPantheios \ + -DNO_SHWILD:BOOL=$CMakeNoShwild \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=$CMakeVerboseMakefileFlag \ -DMSVC_USE_MT:BOOL=$CMakeMsvcMtFlag \ -DUSE_UNIXEM:BOOL=$CMakeUSE_UNIXem \ diff --git a/src/incl.winstl.h b/src/incl.winstl.h index f98beacf..6edee356 100644 --- a/src/incl.winstl.h +++ b/src/incl.winstl.h @@ -54,7 +54,7 @@ * inclusion control */ - #endif /* !RECLS_INCL_SRC_H_INCL_WINSTL */ +#endif /* !RECLS_INCL_SRC_H_INCL_WINSTL */ /* ///////////////////////////// end of file //////////////////////////// */ diff --git a/test/scratch/test.scratch.ignore_inaccessible_nodes/main.c b/test/scratch/test.scratch.ignore_inaccessible_nodes/main.c index e9ecf159..9a487ba7 100644 --- a/test/scratch/test.scratch.ignore_inaccessible_nodes/main.c +++ b/test/scratch/test.scratch.ignore_inaccessible_nodes/main.c @@ -4,7 +4,7 @@ * Purpose: Scratch-test exercising the skipping of inaccessible nodes. * * Created: 28th April 2025 - * Updated: 4th May 2025 + * Updated: 18th August 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -56,7 +56,7 @@ void RECLS_CALLCONV_DEFAULT recls_log_to_pantheios( * main() */ - int RECLS_CALLCONV_DEFAULT process_fn( +int RECLS_CALLCONV_DEFAULT process_fn( /* [in] */ recls_entry_t hEntry , /* [in] */ recls_process_fn_param_t param ) diff --git a/test/scratch/test.scratch.stop_on_access_failure/main.c b/test/scratch/test.scratch.stop_on_access_failure/main.c index 2f274072..577b6d03 100644 --- a/test/scratch/test.scratch.stop_on_access_failure/main.c +++ b/test/scratch/test.scratch.stop_on_access_failure/main.c @@ -4,7 +4,7 @@ * Purpose: Scratch-test exercising the skipping of inaccessible nodes. * * Created: 1st May 2025 - * Updated: 4th May 2025 + * Updated: 18th August 2026 * * ////////////////////////////////////////////////////////////////////// */ @@ -56,7 +56,7 @@ void RECLS_CALLCONV_DEFAULT recls_log_to_pantheios( * main() */ - int RECLS_CALLCONV_DEFAULT process_fn( +int RECLS_CALLCONV_DEFAULT process_fn( /* [in] */ recls_entry_t hEntry , /* [in] */ recls_process_fn_param_t param ) From afe9557e5c967fdd9b17e0dcc9420a218bd632aa Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 09:34:24 +1000 Subject: [PATCH 02/12] chore(c-cpp): union files.associations from ~/dev vscode settings Give the 28 in-wave C/C++ projects (and gold **c** / **cxx** / **c_cxx** templates) a sorted **files.associations** union of all associations found under **~/dev**; --- .editorconfig | 55 +++++++++++++++++++++++++++++++++++++++++++ .vscode/settings.json | 38 +++++++++++++++++++++++++++++- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000..47f19665 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,55 @@ +root = true + +# Language indent/EOL/charset overlap with .vscode/settings.json. +# Rulers, renderWhitespace, detectIndentation, mergeEditor, and +# language-server settings cannot be expressed here — they stay in +# settings.json. + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +indent_style = tab +insert_final_newline = true +trim_trailing_whitespace = true + +# [bat] +[*.{bat,cmd}] +end_of_line = crlf +indent_size = 4 +indent_style = space + +# [c] +[*.{c,h}] +indent_size = 4 +indent_style = space + +# [cmake] +[{CMakeLists.txt,*.cmake}] +indent_size = 4 +indent_style = tab + +# [cpp] +[*.{cpp,cxx,hpp,hxx}] +indent_size = 4 +indent_style = space + +# [json] +[*.json] +indent_size = 2 +indent_style = space + +# [markdown] +[*.md] +indent_size = 2 +indent_style = space + +# [shellscript] +[*.{bash,sh,zsh}] +indent_size = 2 +indent_style = space + +# [yaml] +[*.{yaml,yml}] +indent_size = 2 +indent_style = space diff --git a/.vscode/settings.json b/.vscode/settings.json index 4044afcb..6a0da10a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,6 +5,8 @@ "editor.tabSize": 4, }, "[c]": { + "editor.defaultFormatter": "ms-vscode.cpptools", + "editor.formatOnSave": true, "editor.insertSpaces": true, "editor.rulers": [ 60, 64, 68, 72, 76 ], "editor.tabSize": 4, @@ -14,6 +16,8 @@ "editor.tabSize": 4, }, "[cpp]": { + "editor.defaultFormatter": "ms-vscode.cpptools", + "editor.formatOnSave": true, "editor.insertSpaces": true, "editor.rulers": [ 60, 64, 68, 72, 76 ], "editor.tabSize": 4, @@ -49,13 +53,28 @@ "editor.insertSpaces": true, "editor.tabSize": 2, }, + "C_Cpp.autocompleteAddParentheses": true, + "C_Cpp.clang_format_fallbackStyle": "none", + "C_Cpp.clang_format_style": "file", + "C_Cpp.default.cStandard": "c17", + "C_Cpp.default.cppStandard": "c++17", + "C_Cpp.enhancedColorization": "enabled", + "C_Cpp.errorSquiggles": "enabled", + "C_Cpp.formatting": "clangFormat", + "C_Cpp.intelliSenseEngine": "default", "cmake.configureOnOpen": false, + "debug.allowBreakpointsEverywhere": true, "editor.detectIndentation": false, "editor.insertSpaces": false, "editor.renderWhitespace": "all", "editor.rulers": [ 76 ], "editor.tabSize": 2, "files.associations": { + "*.gemspec": "ruby", + "*.mdoc": "troff", + "*.roff": "troff", + "Gemfile": "ruby", + "Rakefile": "ruby", "__bit_reference": "cpp", "__bits": "cpp", "__config": "cpp", @@ -76,13 +95,17 @@ "__tuple": "cpp", "__verbose_abort": "cpp", "algorithm": "cpp", + "api.h": "c", "array": "cpp", "atomic": "cpp", + "auto_buffer.h": "c", "bit": "cpp", "bitset": "cpp", "cctype": "cpp", "charconv": "cpp", "chrono": "cpp", + "clasp.h": "c", + "cli_helpers.h": "c", "clocale": "cpp", "cmath": "cpp", "compare": "cpp", @@ -109,6 +132,7 @@ "functional": "cpp", "implicit_link.h": "c", "initializer_list": "cpp", + "invoke.h": "c", "io.h": "c", "iomanip": "cpp", "ios": "cpp", @@ -119,28 +143,39 @@ "limits": "cpp", "list": "cpp", "locale": "cpp", + "main.h": "c", "map": "cpp", "memory": "cpp", "memory_resource": "cpp", "mutex": "cpp", + "net_helpers.h": "c", "new": "cpp", "numbers": "cpp", "numeric": "cpp", "optional": "cpp", "ostream": "cpp", + "path_functions.h": "c", + "print": "cpp", "queue": "cpp", "random": "cpp", "ranges": "cpp", "ratio": "cpp", + "rc.h": "c", + "recls.h": "c", + "result_codes_.h": "c", "semaphore": "cpp", "set": "cpp", "setenv.h": "c", "shwild.h": "c", + "sleep_functions.h": "c", "span": "cpp", "sstream": "cpp", "stack": "cpp", + "stdatomic.h": "c", + "stdbool.h": "c", "stdexcept": "cpp", "stdio.h": "c", + "stock.h": "c", "stop_token": "cpp", "streambuf": "cpp", "string": "cpp", @@ -149,6 +184,7 @@ "terse-api.h": "c", "text_encoding": "cpp", "thread": "cpp", + "trace.h": "c", "tuple": "cpp", "type_traits": "cpp", "typeinfo": "cpp", @@ -159,6 +195,7 @@ "utility": "cpp", "variant": "cpp", "vector": "cpp", + "williamscrc.h": "c", "xfacet": "cpp", "xhash": "cpp", "xiosbase": "cpp", @@ -180,4 +217,3 @@ "files.trimTrailingWhitespace": true, "git.mergeEditor": false, } - From 5c01fb1dbb008f7d00c3a6e93b61f30ef3061621 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 10:13:30 +1000 Subject: [PATCH 03/12] .gitattributes --- .gitattributes | 116 ++++++++++++++++++++++++++----- .gitignore | 184 +++++++++++++++++++++---------------------------- 2 files changed, 176 insertions(+), 124 deletions(-) diff --git a/.gitattributes b/.gitattributes index 5495a203..76a2f865 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,17 +1,99 @@ -*.c linguist-language=C -*.cmake linguist-detectable=false -*.cmd linguist-detectable=false -*.cpp linguist-language=C++ -*.cxx linguist-language=C++ -*.dsp linguist-detectable=false -*.dsw linguist-detectable=false -*.h linguist-language=C -*.hpp linguist-language=C++ -*.html linguist-detectable=false -*.hxx linguist-language=C++ -*.sh linguist-detectable=false -*.sln linguist-detectable=false -*.vcxproj linguist-detectable=false -*.vimrc linguist-detectable=false -CMakeLists.txt linguist-detectable=false -makefile linguist-detectable=false +# .gitattributes — C / C++ (GitHub-hosted) +# +# Sources: GitHub Docs (line endings), git-scm gitattributes (diff=cpp), +# gitattributes/gitattributes C++.gitattributes + Common.gitattributes, +# github-linguist overrides. + +# Default: detect text, normalize to LF in the repository +* text=auto + +# --- Source --- +*.c text diff=cpp +*.c++ text diff=cpp +*.cc text diff=cpp +*.cpp text diff=cpp +*.cxx text diff=cpp +*.h text diff=cpp +*.h++ text diff=cpp +*.hh text diff=cpp +*.hpp text diff=cpp +*.hxx text diff=cpp +*.inc text +*.inl text +*.ipp text +*.tcc text +*.tpp text + +# --- Build / config --- +*.am text +*.cmake text +*.m4 text +*.mak text +*.mk text +*akefile text +CMakeLists.txt text +configure text eol=lf +configure.ac text + +# --- Scripts --- +*.bash text eol=lf +*.bat text eol=crlf +*.cmd text eol=crlf +*.ps1 text eol=crlf +*.sh text eol=lf +*.zsh text eol=lf + +# --- Docs / meta --- +*.adoc text +*.markdown text diff=markdown +*.md text diff=markdown +*.txt text +AUTHORS text +CHANGELOG text +CHANGES text +CONTRIBUTING text +COPYING text +LICENSE text +NEWS text +README text +TODO text +.gitattributes text +.gitignore text + +# --- Serialisation --- +*.json text +*.toml text +*.xml text +*.yaml text +*.yml text + +# --- Compiled / binary artefacts --- +*.a binary +*.dll binary +*.dylib binary +*.exe binary +*.gch binary +*.la binary +*.lai binary +*.lib binary +*.lo binary +*.o binary +*.obj binary +*.out binary +*.pch binary +*.slo binary +*.so binary + +# --- Archives / images (common) --- +*.gif binary +*.gz binary +*.ico binary +*.jpeg binary +*.jpg binary +*.png binary +*.tar binary +*.zip binary + +# --- GitHub Linguist --- +**/build/** linguist-generated +**/cmake-build-*/** linguist-generated diff --git a/.gitignore b/.gitignore index eed185f8..226c1608 100644 --- a/.gitignore +++ b/.gitignore @@ -1,166 +1,127 @@ -# Synesis Information Systems .gitignore for C/C++ libraries +# Synesis Information Systems .gitignore for C / C++ libraries # directories (by name) -/.git-old/ -/.vs/ +bin/ +ideas/ +ipch/ +lib/ +scripts/internal/ +Win32/ +x64/ +.idea/ .svn/ +.vs/ -.classpath -/.idea/ -/__pycache__ -/node_modules +__pycache__/ -/_build/ +/_analyses/ /_build-ci/ +/_build/ /_internal/ -/_analyses/ - -/bin/ -/ipch/ -/lib/ -bin/ -ipch/ -lib/ -/doc/ /docs/ /dox/ -/dox /ideas/ -ideas/ +/include/xcontract/ +/include/xcover/ /included/ +/node_modules/ /releases/ /scratch/ -/temp/ - -/--include -/--src -/-include -/-src - -/examples/bin -/examples/c/bin -/examples/cpp/bin - -/examples/lib -/examples/c/lib -/examples/cpp/lib - -projects/util/vc10-generated/ - -perf_test/ - -scripts/internal/ - -/include/b64/ -/include/shwild/ -/include/xcontract/ -/include/xcover/ -/include/xtests/ -/src/b64/ -/src/shwild/ /src/xcontract/ /src/xcover/ -/src/xtests/ +/target/ +/temp/ + +/examples/bin/ +/examples/c/bin/ +/examples/c/lib/ +/examples/cpp/bin/ +/examples/cpp/lib/ +/examples/lib/ -Debug Multithreaded DLL/ Debug Multithreaded Dll/ -Debug Multithreaded pseudoUNIX/ +Debug Multithreaded DLL/ Debug Multithreaded pseudoUnix/ +Debug Multithreaded pseudoUNIX/ Debug Multithreaded/ Debug/ +DebugDll/ DebugDLL/ DebugDLLUNIX/ -DebugDll/ -DebugMTDLL/ +DebugMt/ DebugMTDll/ +DebugMTDLL/ DebugMTUnix/ -DebugMt/ DebugNox/ -DebugUNIX/ DebugUnix/ -Release Multithreaded DLL/ +DebugUNIX/ Release Multithreaded Dll/ -Release Multithreaded pseudoUNIX/ +Release Multithreaded DLL/ Release Multithreaded pseudoUnix/ +Release Multithreaded pseudoUNIX/ Release Multithreaded/ Release/ +ReleaseDll/ ReleaseDLL/ ReleaseDLLUNIX/ -ReleaseDll/ -ReleaseMTDLL/ +ReleaseMt/ ReleaseMTDll/ +ReleaseMTDLL/ ReleaseMTUnix/ -ReleaseMt/ ReleaseNox/ ReleaseUnix/ UDebug/ UDebugMt/ -URelease/ -UReleaseMt/ -Unicode Debug Multithreaded DLL/ Unicode Debug Multithreaded Dll/ +Unicode Debug Multithreaded DLL/ Unicode Debug Multithreaded/ Unicode Debug/ -Unicode Release Multithreaded DLL/ Unicode Release Multithreaded Dll/ +Unicode Release Multithreaded DLL/ Unicode Release Multithreaded/ Unicode Release/ - -Win32/ -x64/ +URelease/ +UReleaseMt/ # directories (by pattern) -/build/ar* -/build/bc5* -/build/como* -/build/cw* -/build/gcc3* -/build/gcc4* -/build/icl* -/build/vc5* -/build/*.zip - /include-*/ # files (by name) .DS_Store + +.classpath +.env.development.local +.env.local +.env.production.local +.env.test.local .ruby-version -.ruby-version-exclusions .svnignore .svnignore-at-root .update_deps -.env.local -.env.development.local -.env.test.local -.env.production.local - -list_changes.cmd -logging-bailout.txt -prepare.cmd -sh.exe.stackdump -tidydir.cmd -update_deps.cmd +build/CMakeCache.txt build/makefile.tmpl build/makefile.tools.xml build/shwild.tmplgen -build/CMakeCache.txt - -include/fastformat/internal/dos2unix.has.been.performed include/pantheios/internal/dos2unix.has.been.performed include/stlsoft/dos2unix.has.been.performed include/stlsoft/internal/dos2unix.has.been.performed - +list_changes.cmd +logging-bailout.txt +prepare.cmd +sh.exe.stackdump test/testpatterns.orj test/tests-plan.txt +tidydir.cmd +update_deps.cmd # files (by pattern) @@ -168,8 +129,6 @@ test/tests-plan.txt *~ *.*~ *.???_obj -*.VC.db -*.VC.opendb *.a *.app *.aps @@ -177,6 +136,7 @@ test/tests-plan.txt *.bak *.chm *.class +*.csproj*user *.d *.diff *.dll @@ -213,32 +173,42 @@ test/tests-plan.txt *.slo *.so *.suo -*.swp *.sw[ponm] +*.swp *.test *.tlog *.tmp *.unsuccessfulbuild -*.vcproj*.user -*.vcxproj*.user -*.csproj*user -*.vcproj*user -*.vcxproj*user +*.VC.db +*.VC.opendb *.xcuserstate *.zip -*.vc71.sln -*.vc8.sln -*.vc9.sln +/build/*.tmpl +/build/*.tmplgen +/build/*.tools.xml +/build/*.zip +/build/ar* +/build/bc5* +/build/como* +/build/cw* +/build/gcc3* +/build/gcc4* +/build/icl* +/build/vc5* RCa0* RCb0* -build/*.tmplgen -build/*.tmpl -build/*.tools.xml - npm-debug.log* yarn-debug.log* yarn-error.log* +*.vc71.sln +*.vc8.sln +*.vc9.sln +*.vcproj*.user +*.vcproj*user +*.vcxproj*.user +*.vcxproj*user + From ebdb40ad26b032a25988512ffa6ed0ff04704fe4 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 10:17:30 +1000 Subject: [PATCH 04/12] .vscode/settings.json --- .vscode/settings.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 6a0da10a..6aa78f6c 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,7 +8,7 @@ "editor.defaultFormatter": "ms-vscode.cpptools", "editor.formatOnSave": true, "editor.insertSpaces": true, - "editor.rulers": [ 60, 64, 68, 72, 76 ], + "editor.rulers": [ 60, 64, 68, 72, 76, 120 ], "editor.tabSize": 4, }, "[cmake]": { @@ -19,7 +19,7 @@ "editor.defaultFormatter": "ms-vscode.cpptools", "editor.formatOnSave": true, "editor.insertSpaces": true, - "editor.rulers": [ 60, 64, 68, 72, 76 ], + "editor.rulers": [ 60, 64, 68, 72, 76, 120 ], "editor.tabSize": 4, }, "[json]": { @@ -38,6 +38,7 @@ }, "[ruby]": { "editor.insertSpaces": true, + "editor.rulers": [ 60, 76 ], "editor.tabSize": 2, }, "[shellscript]": { From bc2841947cbb909fe936097391be560e3ec5c7dd Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 10:18:51 +1000 Subject: [PATCH 05/12] .vimrc --- .vimrc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.vimrc b/.vimrc index 1bf33a0e..cebe6af5 100644 --- a/.vimrc +++ b/.vimrc @@ -42,29 +42,29 @@ autocmd BufWritePre * %s/\s\+$//e augroup sis_c_cxx autocmd! + " [bat] + autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76 " [c] / [cpp] autocmd FileType c,cpp setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,64,68,72,76 - " [rust] - autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76 - " [cmake] autocmd FileType cmake setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 - " [shellscript] - autocmd FileType sh,bash,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76 - - " [bat] - autocmd FileType bat,dosbatch setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76 - - " [json] / [markdown] / [yaml] / [ruby] - autocmd FileType json,markdown,yaml,ruby setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 + " [json] / [markdown] / [ruby] / [yaml] + autocmd FileType json,markdown,ruby,yaml setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 " [python] autocmd FileType python setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=60,76 + " [rust] + autocmd FileType rs setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4 colorcolumn=76 + + " [shellscript] + autocmd FileType bash,sh,zsh setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 colorcolumn=60,76 + " [toml] autocmd FileType toml setlocal noexpandtab tabstop=2 shiftwidth=2 softtabstop=2 + augroup END From 343e124ea4c3513cb688ae11a6318a18c088ca60 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 10:19:37 +1000 Subject: [PATCH 06/12] .sis --- .sis/project_name.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 .sis/project_name.txt diff --git a/.sis/project_name.txt b/.sis/project_name.txt new file mode 100644 index 00000000..2c5a72f5 --- /dev/null +++ b/.sis/project_name.txt @@ -0,0 +1 @@ +recls From 4062b1eedd5ee7f92a76b0ed55427889239e2a97 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 10:21:59 +1000 Subject: [PATCH 07/12] CHANGES.md --- CHANGES.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGES.md b/CHANGES.md index c9f721e5..5b83cf77 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,12 @@ # recls - Changes +## Unreleased + +* Applied **misc-dev-scripts** **0.6.0** editor/Git/`.sis` drop-in templates on **boilerplate**; +* Restored historical **.gitignore** patterns as a sorted union with **misc-dev-scripts** gold section layout; + + ## 1.10.0-rc4 - 10th September 2026 * Canonicalised CMake exclusion variables from reserved `CMAKE_NO_*` (`CMAKE_NO_B64`, `CMAKE_NO_PANTHEIOS`, `CMAKE_NO_SHWILD`) to canonical `NO_*` in **CMakeLists.txt** and **prepare_cmake.sh**; From 296bdea41845aeb1d0b69914eefd262592576d46 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 11:14:09 +1000 Subject: [PATCH 08/12] chore(): use computed PREFIX_VER with documented PATCH Align library version macros to c-cpp-standards. Define MAJOR, MINOR, PATCH, and ALPHABETA; compute PREFIX_VER by shifts; keep REVISION as a skip-section alias of PATCH (target at column 60); retain named historical VER_* constants only for comparison and documentation. --- include/recls/recls.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/recls/recls.h b/include/recls/recls.h index 953f9cbb..115b6618 100644 --- a/include/recls/recls.h +++ b/include/recls/recls.h @@ -4,7 +4,7 @@ * Purpose: Main header file for recls API. * * Created: 15th August 2003 - * Updated: 10th September 2026 + * Updated: 17th September 2026 * * Home: https://github.com/synesissoftware/recls * @@ -163,7 +163,7 @@ #ifndef RECLS_DOCUMENTATION_SKIP_SECTION # define RECLS_VER_ALPHABETA RECLS_VER_AB -# define RECLS_VER_REVISION RECLS_VER_PATCH +# define RECLS_VER_REVISION RECLS_VER_PATCH #endif /* !RECLS_DOCUMENTATION_SKIP_SECTION */ From d6432720c7c5193e38f710e886e8a1624ca87645 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 11:59:56 +1000 Subject: [PATCH 09/12] test(): ship scratch libver version reporter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add or normalise test/scratch/libver to print the hosting PREFIX_VER as “Name: vM.m.p.ab (PREFIX_VER = 0x........)” and, when sibling public headers are included, an “efferent dependencies:” block. --- test/scratch/libver/main.cpp | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/test/scratch/libver/main.cpp b/test/scratch/libver/main.cpp index 36907166..5316465a 100644 --- a/test/scratch/libver/main.cpp +++ b/test/scratch/libver/main.cpp @@ -11,6 +11,7 @@ #define PROGRAM_NAME "libver" + template< typename T_stream , typename T_integer @@ -18,13 +19,16 @@ template< void version( T_stream& stm +, char const* prefix , char const* libname +, char const* macroname , T_integer libver ) { stm + << prefix << libname - << " v" + << ": v" << ((libver >> 24) & 0xff) << '.' << ((libver >> 16) & 0xff) @@ -32,6 +36,13 @@ version( << ((libver >> 8) & 0xff) << '.' << ((libver >> 0) & 0xff) + << " (" + << macroname + << " = 0x" + << std::hex << std::setfill('0') << std::setw(8) + << static_cast(libver) + << std::dec + << ")" << std::endl ; } @@ -40,15 +51,17 @@ version( int main(int /* argc */, char* /* argv */[]) { { - auto const libver = RECLS_VER; + unsigned const libver = RECLS_VER; - version(std::cout, "\trecls", libver); + version(std::cout, "", "recls", "RECLS_VER", libver); } + std::cout << "\n" << "efferent dependencies:" << std::endl; + { - auto const libver = _STLSOFT_VER; + unsigned const libver = _STLSOFT_VER; - version(std::cout, "\tSTLSoft", libver); + version(std::cout, "\t", "STLSoft", "_STLSOFT_VER", libver); } return EXIT_SUCCESS; From 89689659d81e87637682f6634ba8f1e980fac4eb Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 17 Sep 2026 16:24:35 +1000 Subject: [PATCH 10/12] test(): rename scratch libver to versions Move test/scratch/libver to test/scratch/versions and retarget the executable as versions so C/C++ reporters match the Phase 3 freeze. --- test/scratch/CMakeLists.txt | 2 +- test/scratch/{libver => versions}/CMakeLists.txt | 2 +- test/scratch/{libver => versions}/main.cpp | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) rename test/scratch/{libver => versions}/CMakeLists.txt (69%) rename test/scratch/{libver => versions}/main.cpp (94%) diff --git a/test/scratch/CMakeLists.txt b/test/scratch/CMakeLists.txt index a6d12793..c18c4960 100644 --- a/test/scratch/CMakeLists.txt +++ b/test/scratch/CMakeLists.txt @@ -1,5 +1,4 @@ -add_subdirectory(libver) add_subdirectory(test.scratch.cpp_api) add_subdirectory(test.scratch.entry_attributes) add_subdirectory(test.scratch.ignore_inaccessible_nodes) @@ -10,3 +9,4 @@ if(Pantheios_FOUND) add_subdirectory(test.scratch.with_pantheios) endif(Pantheios_FOUND) +add_subdirectory(versions) diff --git a/test/scratch/libver/CMakeLists.txt b/test/scratch/versions/CMakeLists.txt similarity index 69% rename from test/scratch/libver/CMakeLists.txt rename to test/scratch/versions/CMakeLists.txt index f7b34a2c..f6fedee9 100644 --- a/test/scratch/libver/CMakeLists.txt +++ b/test/scratch/versions/CMakeLists.txt @@ -1,2 +1,2 @@ # SIS:AUTO_GENERATED: Remove this line if you edit the file, otherwise it will be overwritten -define_example_program(libver main.cpp) +define_example_program(versions main.cpp) diff --git a/test/scratch/libver/main.cpp b/test/scratch/versions/main.cpp similarity index 94% rename from test/scratch/libver/main.cpp rename to test/scratch/versions/main.cpp index 5316465a..b44147fe 100644 --- a/test/scratch/libver/main.cpp +++ b/test/scratch/versions/main.cpp @@ -9,7 +9,7 @@ #include -#define PROGRAM_NAME "libver" +#define PROGRAM_NAME "versions" template< From c5865080c6d3c66f92bb70ffd82e3c1620e0883c Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Tue, 22 Sep 2026 05:09:54 +1000 Subject: [PATCH 11/12] .gitattributes --- .gitattributes | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/.gitattributes b/.gitattributes index 76a2f865..1ad0590c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,6 +3,11 @@ # Sources: GitHub Docs (line endings), git-scm gitattributes (diff=cpp), # gitattributes/gitattributes C++.gitattributes + Common.gitattributes, # github-linguist overrides. +# +# Linguist language-bar policy (Synesis): classify public C API headers as C +# and *.cmake as CMake scripts; keep helper scripts, IDE project files, and +# CMakeLists.txt config out of the advertised language mix. Prefer +# -linguist-detectable over linguist-detectable=false. # Default: detect text, normalize to LF in the repository * text=auto @@ -97,3 +102,25 @@ TODO text # --- GitHub Linguist --- **/build/** linguist-generated **/cmake-build-*/** linguist-generated + +# Classification (C-primary / C API with C++ tests; *.cmake as CMake scripts) +*.c linguist-language=C +*.cmake linguist-language=CMake +*.cpp linguist-language=C++ +*.cxx linguist-language=C++ +*.h linguist-language=C +*.hpp linguist-language=C++ +*.hxx linguist-language=C++ + +# Keep the bar on library languages (helpers / legacy IDE / docs / +# CMakeLists.txt config; leave *.cmake detectable as CMake) +*.cmd -linguist-detectable +*.dsp -linguist-detectable +*.dsw -linguist-detectable +*.html -linguist-detectable +*.sh -linguist-detectable +*.sln -linguist-detectable +*.vcxproj -linguist-detectable +*.vimrc -linguist-detectable +CMakeLists.txt -linguist-detectable +makefile -linguist-detectable From d3af47fe14ea2fc985b54864d380eff61f6113e8 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Tue, 22 Sep 2026 09:02:35 +1000 Subject: [PATCH 12/12] fix(c-cpp): quote Dir resolution in CMake helper scripts Use Dir=$(cd "$(dirname "$ScriptPath")" && pwd) so paths with spaces resolve reliably; apply the same one-line fix across in-wave helper scripts (prepare/build/clean/ctest/remove and run_all_*). --- build_cmake.sh | 2 +- clean_cmake.sh | 2 +- prepare_cmake.sh | 2 +- remove_cmake_artefacts.sh | 2 +- run_all_examples.sh | 2 +- run_all_scratch_tests.sh | 2 +- run_all_unit_tests.sh | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build_cmake.sh b/build_cmake.sh index 5ffe489d..1f14b8ca 100755 --- a/build_cmake.sh +++ b/build_cmake.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make diff --git a/clean_cmake.sh b/clean_cmake.sh index 0abbeede..b9b4ddf4 100755 --- a/clean_cmake.sh +++ b/clean_cmake.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make diff --git a/prepare_cmake.sh b/prepare_cmake.sh index b90f1070..d56e50dc 100755 --- a/prepare_cmake.sh +++ b/prepare_cmake.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make diff --git a/remove_cmake_artefacts.sh b/remove_cmake_artefacts.sh index 7416db9f..09adac18 100755 --- a/remove_cmake_artefacts.sh +++ b/remove_cmake_artefacts.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} diff --git a/run_all_examples.sh b/run_all_examples.sh index 83aeee30..5b1eeebe 100755 --- a/run_all_examples.sh +++ b/run_all_examples.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make diff --git a/run_all_scratch_tests.sh b/run_all_scratch_tests.sh index 131f7229..0359fb8f 100755 --- a/run_all_scratch_tests.sh +++ b/run_all_scratch_tests.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make diff --git a/run_all_unit_tests.sh b/run_all_unit_tests.sh index 0edc8ea8..40268546 100755 --- a/run_all_unit_tests.sh +++ b/run_all_unit_tests.sh @@ -1,7 +1,7 @@ #! /bin/bash ScriptPath=$0 -Dir=$(cd $(dirname "$ScriptPath"); pwd) +Dir=$(cd "$(dirname "$ScriptPath")" && pwd) Basename=$(basename "$ScriptPath") CMakeDir=${SIS_CMAKE_BUILD_DIR:-$Dir/_build} [[ -n "$MSYSTEM" ]] && DefaultMakeCmd=mingw32-make.exe || DefaultMakeCmd=make