From f0604a33239afd12b695f0ce592e1e35bba3a504 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 7 Sep 2026 10:11:47 +1000 Subject: [PATCH 1/2] misc --- CHANGES.md | 2 +- test/scratch/test.scratch.link/test.scratch.link.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGES.md b/CHANGES.md index 0d5bc44..62dedd4 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,4 +1,4 @@ -# UNIXem - CHANGES +# UNIXem - Changes ## 1.14.0-beta1 - 9th August 2026 diff --git a/test/scratch/test.scratch.link/test.scratch.link.c b/test/scratch/test.scratch.link/test.scratch.link.c index 2dd76bf..5c30370 100644 --- a/test/scratch/test.scratch.link/test.scratch.link.c +++ b/test/scratch/test.scratch.link/test.scratch.link.c @@ -127,3 +127,4 @@ int main(int argc, char *argv[]) /* ///////////////////////////// end of file //////////////////////////// */ + From ea89d14991d91f7a08899ea993783283a1388623 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 7 Sep 2026 11:06:12 +1000 Subject: [PATCH 2/2] release: UNIXem 1.14.0-rc1 Prepare release 1.14.0-rc1 targeting 10th September 2026: - CMakeLists.txt: canonicalise exclusion variable CMAKE_NO_SHWILD to NO_SHWILD, provide backwards-compatibility fallback with obsolescence warning, and update header date to 10th September 2026; - prepare_cmake.sh: pass -DNO_SHWILD cache flag in MinGW and default branches; - include/unixem/unixem.h: bump version to 1.14.0-rc1 (0xC1), wire UNIXEM_VER directly to UNIXEM_VER_AB, provide legacy compatibility aliases for UNIXEM_VER_ALPHABETA and UNIXEM_VER_REVISION, increment edit count to 34, and update header date to 10th September 2026; - CHANGES.md: record 1.14.0-rc1 changes; - NEWS.md: add 10th September 2026 release candidate 1 entry and add third Details column across table; - INSTALL.md: note -E alongside -T in step 2 and cite ctest_cmake.sh in step 4; - README.md: document stpcpy, stpncpy, wcpcpy, and wcpncpy in Utility APIs table; - TODO.md: update Updated date to 10th September 2026; --- CHANGES.md | 10 +++++ CMakeLists.txt | 11 +++++- INSTALL.md | 8 ++-- NEWS.md | 81 +++++++++++++++++++++-------------------- README.md | 8 ++-- TODO.md | 2 +- include/unixem/unixem.h | 19 +++++++--- prepare_cmake.sh | 4 +- 8 files changed, 84 insertions(+), 59 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 62dedd4..f776316 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,16 @@ # UNIXem - Changes +## 1.14.0-rc1 - 10th September 2026 + +* Canonicalised CMake exclusion variable from reserved `CMAKE_NO_SHWILD` to canonical `NO_SHWILD` in **CMakeLists.txt** and **prepare_cmake.sh**; +* Added backwards-compatibility mapping with obsolete-variable warning for legacy `CMAKE_NO_SHWILD` in **CMakeLists.txt**; +* Updated `UNIXEM_VER_MINOR` to 14, `UNIXEM_VER_AB` to `0xC1`, wired `UNIXEM_VER` to `UNIXEM_VER_AB` directly, and provided legacy `UNIXEM_VER_ALPHABETA` and `UNIXEM_VER_REVISION` compatibility aliases in **include/unixem/unixem.h**; +* Added third **Details** column to **NEWS.md** table; +* Updated installation instructions in **INSTALL.md**; +* Documented `stpcpy`, `stpncpy`, `wcpcpy`, and `wcpncpy` in **README.md**; + + ## 1.14.0-beta1 - 9th August 2026 * added `stpcpy()`; diff --git a/CMakeLists.txt b/CMakeLists.txt index 243dada..5a3a856 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,7 @@ # Purpose: Top-level CMake lists file for UNIXem # # Created: 10th July 2024 -# Updated: 4th August 2026 +# Updated: 10th September 2026 # # ######################################################################## # @@ -162,7 +162,14 @@ endif() # ############################ # shwild (optional) -if(NOT (CMAKE_NO_SHWILD)) +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() + +if(NOT NO_SHWILD) if(BUILD_TESTING) diff --git a/INSTALL.md b/INSTALL.md index 16df6dc..ae11ca5 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -41,10 +41,10 @@ The primary choice for installation is by use of **CMake**. ``` **NOTE**: if you intend only to build the library then you can eschew - building of tests (via flag `-T`) and use the command: + building of examples (`-E`) and tests (`-T`) and use the command: ```bash - $ ./prepare_cmake.sh -T + $ ./prepare_cmake.sh -E -T ``` In this case, you do not need to have installed **STLSoft**, **shwild**, @@ -61,8 +61,8 @@ The primary choice for installation is by use of **CMake**. (**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 programs via **run_all_unit_tests.sh**, - as in: +4. As a check, execute the built test programs via **run_all_unit_tests.sh** + (or **ctest_cmake.sh**), as in: ```bash $ ./run_all_unit_tests.sh diff --git a/NEWS.md b/NEWS.md index edf78fc..314b39b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,46 +1,47 @@ # UNIXem - News -| Date | News Item | -| ------------- | ---------------------- | -| 9th Aug 2026 | Release of [UNIXem 1.14.0-beta1](https://github.com/synesissoftware/UNIXem/releases/tag/1.14.0-beta1) | -| 4th Aug 2026 | Release of [UNIXem 1.13.0-beta1](https://github.com/synesissoftware/UNIXem/releases/tag/1.13.0-beta1) | -| 7th Sep 2025 | Release of [UNIXem 1.13.0-alpha1](https://github.com/synesissoftware/UNIXem/releases/tag/1.13.0-alpha1) | -| 19th May 2025 | UNIXem 1.12.8 released | -| 1st May 2025 | UNIXem 1.12.7 released | -| 17th Dec 2020 | UNIXem 1.12.6 released | -| 19th Jul 2020 | UNIXem 1.12.5 released | -| 19th Jul 2020 | UNIXem 1.12.4 released | -| 14th Oct 2019 | UNIXem 1.12.3 released | -| 14th Oct 2019 | UNIXem 1.12.2 released | -| 9th Oct 2019 | UNIXem 1.11.4 released | -| 2nd Jan 2017 | UNIXem 1.11.2 released | -| 7th Oct 2015 | UNIXem 1.11.1 released | -| 25th Sep 2015 | UNIXem 1.10.2 released | -| 30th Jul 2015 | UNIXem 1.10.1 released | -| 16th Jun 2012 | UNIXem 1.9.3 released | -| 4th Feb 2011 | UNIXem 1.9.2 released | -| 13th Aug 2010 | UNIXem 1.9.1 released | -| 13th Aug 2010 | UNIXem 1.8.5 released | -| 4th Apr 2010 | UNIXem 1.8.4 released | -| 6th Feb 2010 | UNIXem 1.8.3 released | -| 13th May 2008 | UNIXem 1.8.2 released | -| 22nd Apr 2008 | UNIXem 1.8.1 released | -| 20th Apr 2008 | UNIXem 1.7.5 released | -| 24th Feb 2008 | UNIXem 1.7.4 released | -| 12th Mar 2007 | UNIXem 1.7.3 released | -| 12th Sep 2006 | UNIXem 1.7.2 released | -| 3rd Sep 2006 | UNIXem 1.7.1 released | -| 12th Aug 2006 | UNIXem 1.5.2 released | -| 21st Sep 2005 | UNIXem 1.5.1 released | -| 19th Jun 2005 | UNIXem 1.5.3 released | -| 23rd May 2005 | UNIXem 1.5.2 released | -| 17th Feb 2005 | UNIXem 1.5.1 released | -| 29th Jun 2004 | UNIXem 1.4 released | -| 16th Jun 2004 | UNIXem 1.3 released | -| 3rd Jan 2004 | UNIXem 1.2 released | -| 2nd Nov 2003 | UNIXem 1.1 released | -| 2nd Feb 2003 | UNIXem 1.0 released | +| Date | News Item | Details | +| ------------------- | ---------------------- | ------- | +| 10th September 2026 | Release of [UNIXem 1.14.0-rc1](https://github.com/synesissoftware/UNIXem/releases/tag/1.14.0-rc1) | | +| 9th August 2026 | Release of [UNIXem 1.14.0-beta1](https://github.com/synesissoftware/UNIXem/releases/tag/1.14.0-beta1) | | +| 4th August 2026 | Release of [UNIXem 1.13.0-beta1](https://github.com/synesissoftware/UNIXem/releases/tag/1.13.0-beta1) | | +| 7th September 2025 | Release of [UNIXem 1.13.0-alpha1](https://github.com/synesissoftware/UNIXem/releases/tag/1.13.0-alpha1) | | +| 19th May 2025 | UNIXem 1.12.8 released | | +| 1st May 2025 | UNIXem 1.12.7 released | | +| 17th December 2020 | UNIXem 1.12.6 released | | +| 19th July 2020 | UNIXem 1.12.5 released | | +| 19th July 2020 | UNIXem 1.12.4 released | | +| 14th October 2019 | UNIXem 1.12.3 released | | +| 14th October 2019 | UNIXem 1.12.2 released | | +| 9th October 2019 | UNIXem 1.11.4 released | | +| 2nd January 2017 | UNIXem 1.11.2 released | | +| 7th October 2015 | UNIXem 1.11.1 released | | +| 25th September 2015 | UNIXem 1.10.2 released | | +| 30th July 2015 | UNIXem 1.10.1 released | | +| 16th June 2012 | UNIXem 1.9.3 released | | +| 4th February 2011 | UNIXem 1.9.2 released | | +| 13th August 2010 | UNIXem 1.9.1 released | | +| 13th August 2010 | UNIXem 1.8.5 released | | +| 4th April 2010 | UNIXem 1.8.4 released | | +| 6th February 2010 | UNIXem 1.8.3 released | | +| 13th May 2008 | UNIXem 1.8.2 released | | +| 22nd April 2008 | UNIXem 1.8.1 released | | +| 20th April 2008 | UNIXem 1.7.5 released | | +| 24th February 2008 | UNIXem 1.7.4 released | | +| 12th March 2007 | UNIXem 1.7.3 released | | +| 12th September 2006 | UNIXem 1.7.2 released | | +| 3rd September 2006 | UNIXem 1.7.1 released | | +| 12th August 2006 | UNIXem 1.5.2 released | | +| 21st September 2005 | UNIXem 1.5.1 released | | +| 19th June 2005 | UNIXem 1.5.3 released | | +| 23rd May 2005 | UNIXem 1.5.2 released | | +| 17th February 2005 | UNIXem 1.5.1 released | | +| 29th June 2004 | UNIXem 1.4 released | | +| 16th June 2004 | UNIXem 1.3 released | | +| 3rd January 2004 | UNIXem 1.2 released | | +| 2nd November 2003 | UNIXem 1.1 released | | +| 2nd February 2003 | UNIXem 1.0 released | | diff --git a/README.md b/README.md index 3de1e6d..a244e36 100644 --- a/README.md +++ b/README.md @@ -74,10 +74,10 @@ Top-level compatibility headers (e.g. [`dirent.h`](./include/dirent.h), [`unistd ### Utility APIs -| API(s) | Header | Purpose | Restrictions | -| ------------------------------------------------------------ | -------------------------------------------------- | ---------------------------------- | -------------------------- | -| `begins_with`, `ends_with` | [`unixem/util/str.h`](./include/unixem/util/str.h) | **UNIXem.Util.Str** string helpers | Helper API (also internal) | -| `char_is_path_sep`, `directory_exists`, `get_home_directory` | [`unixem/util/fs.h`](./include/unixem/util/fs.h) | **UNIXem.Util.FS** path/FS helpers | Helper API (also internal) | +| API(s) | Header | Purpose | Restrictions | +| -------------------------------------------------------------------- | -------------------------------------------------- | ---------------------------------- | -------------------------- | +| `begins_with`, `ends_with`, `stpcpy`, `stpncpy`, `wcpcpy`, `wcpncpy` | [`unixem/util/str.h`](./include/unixem/util/str.h) | **UNIXem.Util.Str** string helpers | Helper API (also internal) | +| `char_is_path_sep`, `directory_exists`, `get_home_directory` | [`unixem/util/fs.h`](./include/unixem/util/fs.h) | **UNIXem.Util.FS** path/FS helpers | Helper API (also internal) | ### Compatibility placeholders diff --git a/TODO.md b/TODO.md index a3afd75..ca54e85 100644 --- a/TODO.md +++ b/TODO.md @@ -1,6 +1,6 @@ # UNIXem - TODO -Updated: 4th August 2026 +Updated: 10th September 2026 ## Functional improvements diff --git a/include/unixem/unixem.h b/include/unixem/unixem.h index ec4968b..4d36d28 100644 --- a/include/unixem/unixem.h +++ b/include/unixem/unixem.h @@ -4,7 +4,7 @@ * Purpose: Version header for the UNIXem API. * * Created: 29th August 2005 - * Updated: 4th August 2026 + * Updated: 10th September 2026 * * Home: https://github.com/synesissoftware/UNIXem * @@ -56,7 +56,7 @@ # define UNIXEM_VER_UNIXEM_H_UNIXEM_MAJOR 1 # define UNIXEM_VER_UNIXEM_H_UNIXEM_MINOR 7 # define UNIXEM_VER_UNIXEM_H_UNIXEM_REVISION 9 -# define UNIXEM_VER_UNIXEM_H_UNIXEM_EDIT 33 +# define UNIXEM_VER_UNIXEM_H_UNIXEM_EDIT 34 #endif /* !UNIXEM_DOCUMENTATION_SKIP_SECTION */ /** \def UNIXEM_VER_MAJOR @@ -71,24 +71,31 @@ * The patch (aka revision) version number of UNIXem */ +/** \def UNIXEM_VER_AB + * The alpha/beta/rc number of UNIXem + */ + /** \def UNIXEM_VER * The current composite version number of UNIXem */ #define UNIXEM_VER_MAJOR 1 -#define UNIXEM_VER_MINOR 13 +#define UNIXEM_VER_MINOR 14 #define UNIXEM_VER_PATCH 0 -#define UNIXEM_VER_ALPHABETA 0x81 +#define UNIXEM_VER_AB 0xC1 #define UNIXEM_VER \ (0\ | ( UNIXEM_VER_MAJOR << 24 ) \ | ( UNIXEM_VER_MINOR << 16 ) \ | ( UNIXEM_VER_PATCH << 8 ) \ - | ( UNIXEM_VER_ALPHABETA << 0 ) \ + | ( UNIXEM_VER_AB << 0 ) \ ) -#define UNIXEM_VER_REVISION UNIXEM_VER_PATCH +#ifndef UNIXEM_DOCUMENTATION_SKIP_SECTION +# define UNIXEM_VER_ALPHABETA UNIXEM_VER_AB +# define UNIXEM_VER_REVISION UNIXEM_VER_PATCH +#endif /* !UNIXEM_DOCUMENTATION_SKIP_SECTION */ /* ////////////////////////////////////////////////////////////////////// */ diff --git a/prepare_cmake.sh b/prepare_cmake.sh index 514d48d..352ab04 100755 --- a/prepare_cmake.sh +++ b/prepare_cmake.sh @@ -169,7 +169,7 @@ if [ $MinGW -ne 0 ]; then -DBUILD_EXAMPLES:BOOL=$CMakeBuildExamplesFlag \ -DBUILD_TESTING:BOOL=$CMakeBuildTestingFlag \ -DCMAKE_BUILD_TYPE=$Configuration \ - -DCMAKE_NO_SHWILD:BOOL=$CMakeNoShwild \ + -DNO_SHWILD:BOOL=$CMakeNoShwild \ -DMSVC_USE_MT:BOOL=$CMakeMsvcMtFlag \ -G "MinGW Makefiles" \ -S $Dir \ @@ -182,7 +182,7 @@ else -DBUILD_EXAMPLES:BOOL=$CMakeBuildExamplesFlag \ -DBUILD_TESTING:BOOL=$CMakeBuildTestingFlag \ -DCMAKE_BUILD_TYPE=$Configuration \ - -DCMAKE_NO_SHWILD:BOOL=$CMakeNoShwild \ + -DNO_SHWILD:BOOL=$CMakeNoShwild \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=$CMakeVerboseMakefileFlag \ -DMSVC_USE_MT:BOOL=$CMakeMsvcMtFlag \ -S $Dir \