diff --git a/CHANGES.md b/CHANGES.md
index ed4e1d4..721204b 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,11 @@
# cstring - CHANGES
+## 4.0.15 - 6th September 2026
+
+* Updated all `\param` and `\retval` Doxygen documentation comments in **cstring.h**, **cstring.vector.h**, and **cstring.core.c** to obey the 76-rule and terminate with a semicolon;
+
+
## 4.0.14 - 9th August 2026
4.0.14
diff --git a/Doxyfile b/Doxyfile
index 78af943..0a6dc6e 100644
--- a/Doxyfile
+++ b/Doxyfile
@@ -2,7 +2,7 @@
PROJECT_NAME = "cstring"
PROJECT_BRIEF = "Extensible C-style strings and vectors of such, for Unix and Windows"
-PROJECT_NUMBER = 4.0.14
+PROJECT_NUMBER = 4.0.15
# Prefer SIS_CMAKE_BUILD_DIR-aligned output (same convention as Diagnosticism).
# ./dox/ remains gitignored for legacy/local runs that override OUTPUT_DIRECTORY.
diff --git a/NEWS.md b/NEWS.md
index febcbad..73010ca 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -3,6 +3,7 @@
| Date | News Item |
| ------------------ | ------------------------------------------------------------------------------------------- |
+| 6th September 2026 | Release of [cstring 4.0.15](https://github.com/synesissoftware/cstring/releases/tag/4.0.15) |
| 9th August 2026 | Release of [cstring 4.0.14](https://github.com/synesissoftware/cstring/releases/tag/4.0.14) |
| 7th August 2026 | Release of [cstring 4.0.14-alpha1](https://github.com/synesissoftware/cstring/releases/tag/4.0.14-alpha1) |
| 2nd August 2026 | Release of [cstring 4.0.13](https://github.com/synesissoftware/cstring/releases/tag/4.0.13) |
diff --git a/include/cstring/cstring.h b/include/cstring/cstring.h
index 8812c68..d0b2e84 100644
--- a/include/cstring/cstring.h
+++ b/include/cstring/cstring.h
@@ -4,7 +4,7 @@
* Purpose: Definition of the cstring.core API.
*
* Created: 16th June 1994
- * Updated: 9th August 2026
+ * Updated: 6th September 2026
*
* Home: http://synesis.com.au/software/
*
@@ -55,8 +55,8 @@
#ifndef CSTRING_DOCUMENTATION_SKIP_SECTION
# define CSTRING_VER_CSTRING_H_CSTRING_MAJOR 3
# define CSTRING_VER_CSTRING_H_CSTRING_MINOR 11
-# define CSTRING_VER_CSTRING_H_CSTRING_REVISION 12
-# define CSTRING_VER_CSTRING_H_CSTRING_EDIT 84
+# define CSTRING_VER_CSTRING_H_CSTRING_REVISION 13
+# define CSTRING_VER_CSTRING_H_CSTRING_EDIT 85
#endif /* !CSTRING_DOCUMENTATION_SKIP_SECTION */
/** \def CSTRING_VER_MAJOR
@@ -114,6 +114,7 @@
# define CSTRING_VER_4_0_13 0x04000dff
# define CSTRING_VER_4_0_14_A1 0x04000e41
# define CSTRING_VER_4_0_14 0x04000eff
+# define CSTRING_VER_4_0_15 0x04000fff
#endif /* !CSTRING_DOCUMENTATION_SKIP_SECTION */
/** \def CSTRING_VER_MAJOR
@@ -134,7 +135,7 @@
#define CSTRING_VER_MAJOR 4
#define CSTRING_VER_MINOR 0
-#define CSTRING_VER_PATCH 14
+#define CSTRING_VER_PATCH 15
#define CSTRING_VER_ALPHABETA 0xFF
#define CSTRING_VER \
@@ -365,7 +366,7 @@ typedef struct cstring_t cstring_t;
* given error code
* \ingroup group__cstring_api
*
- * \param rc The error code. Must be one of the CSTRING_RC enumeration
+ * \param rc The error code. Must be one of the CSTRING_RC enumeration;
*
* \return A non-NULL nul-terminated string
*/
@@ -378,7 +379,7 @@ cstring_getStatusCodeString(
/** \brief Returns the length of the string returned by
* cstring_getStatusCodeString() for the given error code.
*
- * \param rc The error code. Must be one of the CSTRING_RC enumeration
+ * \param rc The error code. Must be one of the CSTRING_RC enumeration;
*
* \return The length of the string returned by
* cstring_getStatusCodeString() for the the given error code, or 0 if the
@@ -425,13 +426,14 @@ cstring_init(
/** \brief Creates a cstring instance from a C-style string
* \ingroup group__cstring_api
*
- * \param pcs The uninitialised cstring instance to be created
- * \param s Pointer to the C-style string to copy. May be NULL
+ * \param pcs The uninitialised cstring instance to be created;
+ * \param s Pointer to the C-style string to copy. May be NULL;
*
* \note This must only be called on an uninitialised cstring instance
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -443,15 +445,17 @@ cstring_create(
/** \brief Creates a cstring instance from a fixed number of characters
* \ingroup group__cstring_api
*
- * \param pcs The uninitialised cstring instance to be created
+ * \param pcs The uninitialised cstring instance to be created;
* \param s Pointer to the first character in the array from which to copy.
- * Must not be NULL, unless \c cch is 0
- * \param cch The number of characters to be copied into the cstring instance
+ * Must not be NULL, unless \c cch is 0;
+ * \param cch The number of characters to be copied into the cstring
+ * instance;
*
* \note This must only be called on an uninitialised cstring instance
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -465,14 +469,15 @@ cstring_createLen(
* of a character
* \ingroup group__cstring_api
*
- * \param pcs The uninitialised cstring instance to be created
- * \param ch The character to be repeated
- * \param n The number of repetitions of character \c c
+ * \param pcs The uninitialised cstring instance to be created;
+ * \param ch The character to be repeated;
+ * \param n The number of repetitions of character \c c;
*
* \note This must only be called on an uninitialised cstring instance
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -486,22 +491,27 @@ cstring_createN(
/** \brief Creates a cstring instance with special characteristics from a C-style string
* \ingroup group__cstring_api
*
- * \param pcs The uninitialised cstring instance to be created
- * \param s Pointer to the C-style string to copy. May be NULL
- * \param flags The flags defining the characteristics of the cstring instance
- * \param arena The memory buffer for borrowed (CSTRING_F_MEMORY_IS_BORROWED),
- * or a pointer to a custom memory arena. Note that custom memory arenas are
- * not currently supported, and this parameter must be NULL unless the flag
- * CSTRING_F_MEMORY_IS_BORROWED is specified
+ * \param pcs The uninitialised cstring instance to be created;
+ * \param s Pointer to the C-style string to copy. May be NULL;
+ * \param flags The flags defining the characteristics of the cstring
+ * instance;
+ * \param arena The memory buffer for borrowed
+ * (CSTRING_F_MEMORY_IS_BORROWED), or a pointer to a custom memory arena.
+ * Note that custom memory arenas are not currently supported, and this
+ * parameter must be NULL unless the flag CSTRING_F_MEMORY_IS_BORROWED is
+ * specified;
* \param capacity The capacity of the buffer specified in \c arena, or
- * otherwise ignored
+ * otherwise ignored;
*
* \note This must only be called on an uninitialised cstring instance
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
- * \retval CSTRING_RC_INVALIDARENA an invalid arena specification was given in the \c flags parameter
- * \retval CSTRING_RC_CUSTOMARENANOTSUPPORTED A custom arena was specified, which is not yet supported
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
+ * \retval CSTRING_RC_INVALIDARENA an invalid arena specification was given
+ * in the \c flags parameter;
+ * \retval CSTRING_RC_CUSTOMARENANOTSUPPORTED A custom arena was specified,
+ * which is not yet supported;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -516,24 +526,30 @@ cstring_createEx(
/** \brief Creates a cstring instance with special characteristics from a fixed number of characters
* \ingroup group__cstring_api
*
- * \param pcs The uninitialised cstring instance to be created
+ * \param pcs The uninitialised cstring instance to be created;
* \param s Pointer to the first character in the array from which to copy.
- * Must not be NULL, unless \c cch is 0
- * \param cch The number of characters to be copied into the cstring instance
- * \param flags The flags defining the characteristics of the cstring instance
- * \param arena The memory buffer for borrowed (CSTRING_F_MEMORY_IS_BORROWED),
- * or a pointer to a custom memory arena. Note that custom memory arenas are
- * not currently supported, and this parameter must be NULL unless the flag
- * CSTRING_F_MEMORY_IS_BORROWED is specified
+ * Must not be NULL, unless \c cch is 0;
+ * \param cch The number of characters to be copied into the cstring
+ * instance;
+ * \param flags The flags defining the characteristics of the cstring
+ * instance;
+ * \param arena The memory buffer for borrowed
+ * (CSTRING_F_MEMORY_IS_BORROWED), or a pointer to a custom memory arena.
+ * Note that custom memory arenas are not currently supported, and this
+ * parameter must be NULL unless the flag CSTRING_F_MEMORY_IS_BORROWED is
+ * specified;
* \param capacity The capacity of the buffer specified in \c arena, or
- * otherwise ignored
+ * otherwise ignored;
*
* \note This must only be called on an uninitialised cstring instance
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
- * \retval CSTRING_RC_INVALIDARENA an invalid arena specification was given in the \c flags parameter
- * \retval CSTRING_RC_CUSTOMARENANOTSUPPORTED A custom arena was specified, which is not yet supported
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
+ * \retval CSTRING_RC_INVALIDARENA an invalid arena specification was given
+ * in the \c flags parameter;
+ * \retval CSTRING_RC_CUSTOMARENANOTSUPPORTED A custom arena was specified,
+ * which is not yet supported;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -549,12 +565,12 @@ cstring_createLenEx(
/** \brief Releases resources and resets the attributes of the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring instance to be destroyed
+ * \param pcs The cstring instance to be destroyed;
*
* \note This must only be called on an initialised cstring instance, which is
* then rendered in the uninitialised state.
*
- * \retval CSTRING_RC_SUCCESS the capacity was destroyed
+ * \retval CSTRING_RC_SUCCESS the capacity was destroyed;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -566,16 +582,22 @@ cstring_destroy(
/** \brief Removes the allocated buffer from the cstring instance into a caller supplied pointer
* \ingroup group__cstring_api
*
- * \param pcs the cstring instance whose buffer is to be retrieved. May not be NULL.
- * \param pRaw pointer to a buffer pointer which will receive the yielded raw memory. May not be NULL. May not be equal to pPayload.
- * \param pPayload pointer to a buffer pointer which will receive the yielded payload. May not be NULL. May not be equal to pRaw.
+ * \param pcs the cstring instance whose buffer is to be retrieved. May not
+ * be NULL;
+ * \param pRaw pointer to a buffer pointer which will receive the yielded
+ * raw memory. May not be NULL. May not be equal to pPayload;
+ * \param pPayload pointer to a buffer pointer which will receive the
+ * yielded payload. May not be NULL. May not be equal to pRaw;
*
* \note The values of *pRaw and *pPayload may not be equal
*
- * \retval CSTRING_RC_SUCCESS the buffer was yielded
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_BORROWED the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_CANNOTYIELDFROMSO the cstring instance uses realloc() in a Win32 dynamic library
+ * \retval CSTRING_RC_SUCCESS the buffer was yielded;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_BORROWED the cstring instance is marked fixed
+ * (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_CANNOTYIELDFROMSO the cstring instance uses realloc()
+ * in a Win32 dynamic library;
*
* \note When linked to cstring as a Win32 dynamic library, this function will not
* work for strings allocated via realloc()
@@ -602,18 +624,23 @@ cstring_yield(
/** Sets the capacity of the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring instance to be adjusted
- * \param capacity The capacity to which the cstring instance should be adjusted
+ * \param pcs The cstring instance to be adjusted;
+ * \param capacity The capacity to which the cstring instance should be
+ * adjusted;
*
* \note If the specified capacity would cause the string contents to be
* truncated, the value is adjusted to the minimum possible without
* requiring truncation.
*
- * \retval CSTRING_RC_SUCCESS the capacity was adjusted
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the capacity was adjusted;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -626,14 +653,19 @@ cstring_setCapacity(
/** \brief Assigns a C-style string to the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring to assign to
- * \param s Pointer to the C-style string to assign. May be NULL
+ * \param pcs The cstring to assign to;
+ * \param s Pointer to the C-style string to assign. May be NULL;
*
- * \retval CSTRING_RC_SUCCESS the requested number of bytes were assigned to the cstring
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the requested number of bytes were assigned to
+ * the cstring;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*
* \note The function is safe with respect to 'self-assignment', i.e, \c s can
* refer to (part of) the payload of \c pcs, and the function will still
@@ -649,20 +681,25 @@ cstring_assign(
/** \brief Assigns a fixed number of characters to the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring to assign to
- * \param s Pointer to the first character in the array from which to assign.
- * Must not be NULL, unless \c cch is 0
- * \param cch The number of characters to assign
+ * \param pcs The cstring to assign to;
+ * \param s Pointer to the first character in the array from which to
+ * assign. Must not be NULL, unless \c cch is 0;
+ * \param cch The number of characters to assign;
*
* \note If the source has embedded nul characters, they will be incorporated
* into the cstring contents, which means that calling strlen() on the payload
* pointer may give inconsistent results
*
- * \retval CSTRING_RC_SUCCESS the requested number of bytes were assigned to the cstring
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the requested number of bytes were assigned to
+ * the cstring;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -675,14 +712,19 @@ cstring_assignLen(
/** \brief Copies the contents of one cstring instance to another
* \ingroup group__cstring_api
*
- * \param pcs The cstring to assign to
- * \param pcsSrc The cstring whose contents will be copied
- *
- * \retval CSTRING_RC_SUCCESS the requested number of bytes were copied to the cstring
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \param pcs The cstring to assign to;
+ * \param pcsSrc The cstring whose contents will be copied;
+ *
+ * \retval CSTRING_RC_SUCCESS the requested number of bytes were copied to
+ * the cstring;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -694,14 +736,19 @@ cstring_copy(
/** \brief Appends a C-style string to the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring to append to
- * \param s Pointer to the C-style string to append. May be NULL
- *
- * \retval CSTRING_RC_SUCCESS the requested number of bytes were appended to the cstring
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \param pcs The cstring to append to;
+ * \param s Pointer to the C-style string to append. May be NULL;
+ *
+ * \retval CSTRING_RC_SUCCESS the requested number of bytes were appended to
+ * the cstring;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -713,20 +760,25 @@ cstring_append(
/** \brief Appends a fixed number of characters to the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring to append to
- * \param s Pointer to the first character in the array from which to append.
- * Must not be NULL, unless \c cch is 0
- * \param cch The number of characters to append
+ * \param pcs The cstring to append to;
+ * \param s Pointer to the first character in the array from which to
+ * append. Must not be NULL, unless \c cch is 0;
+ * \param cch The number of characters to append;
*
* \note If the source has embedded nul characters, they will be incorporated
* into the cstring contents, which means that calling strlen() on the payload
* pointer may give inconsistent results
*
- * \retval CSTRING_RC_SUCCESS the requested number of bytes were appended to the cstring
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked fixed (CSTRING_F_MEMORY_IS_FIXED)
- * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked borrowed (CSTRING_F_MEMORY_IS_BORROWED)
- * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the operation
+ * \retval CSTRING_RC_SUCCESS the requested number of bytes were appended to
+ * the cstring;
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_EXCEEDFIXEDCAPACITY the cstring instance is marked
+ * fixed (CSTRING_F_MEMORY_IS_FIXED);
+ * \retval CSTRING_RC_EXCEEDBORROWEDCAPACITY the cstring instance is marked
+ * borrowed (CSTRING_F_MEMORY_IS_BORROWED);
+ * \retval CSTRING_RC_OUTOFMEMORY insufficient memory to carry out the
+ * operation;
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -739,13 +791,16 @@ cstring_appendLen(
/** \brief Truncates the cstring instance
* \ingroup group__cstring_api
*
- * \param pcs The cstring to truncate
- * \param len The required length. Ignored if not less than the current length
+ * \param pcs The cstring to truncate;
+ * \param len The required length. Ignored if not less than the current
+ * length;
*
* \note The cstring instance must not be readonly
*
- * \retval CSTRING_RC_SUCCESS cstring instance contents were truncated (or the truncation length was out of bounds)
- * \retval CSTRING_RC_READONLY the cstring instance is marked readonly (CSTRING_F_MEMORY_IS_READONLY)
+ * \retval CSTRING_RC_SUCCESS cstring instance contents were truncated (or
+ * the truncation length was out of bounds);
+ * \retval CSTRING_RC_READONLY the cstring instance is marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -757,14 +812,18 @@ cstring_truncate(
/** \brief Swaps the contents of the two cstring instances
* \ingroup group__cstring_api
*
- * \param pcs1 the cstring instance whose contents will be swapped with \c pcs2
- * \param pcs2 the cstring instance whose contents will be swapped with \c pcs1
+ * \param pcs1 the cstring instance whose contents will be swapped with
+ * \c pcs2;
+ * \param pcs2 the cstring instance whose contents will be swapped with
+ * \c pcs1;
*
* \note Neither instance can be either readonly or fixed-and-borrowed
*
- * \retval CSTRING_RC_SUCCESS string instance contents were swapped
- * \retval CSTRING_RC_READONLY one or both instances are marked readonly (CSTRING_F_MEMORY_IS_READONLY)
- * \retval CSTRING_RC_BORROWED one or both instances are marked fixed (CSTRING_F_MEMORY_IS_BORROWED)
+ * \retval CSTRING_RC_SUCCESS string instance contents were swapped;
+ * \retval CSTRING_RC_READONLY one or both instances are marked readonly
+ * (CSTRING_F_MEMORY_IS_READONLY);
+ * \retval CSTRING_RC_BORROWED one or both instances are marked fixed
+ * (CSTRING_F_MEMORY_IS_BORROWED);
*/
CSTRING_EXTERN_C
CSTRING_RC
@@ -776,18 +835,18 @@ cstring_swap(
/** Reads in a line of text from the given text stream
*
- * \param stm The stream from which the line will be read
+ * \param stm The stream from which the line will be read;
* \param pcs The initialised string instance into which the line will be
- * stored.
- * \param numRead An optional pointer to a variable to receive the number
- * of characters appended to the string. May be NULL
+ * stored;
+ * \param numRead An optional pointer to a variable to receive the number of
+ * characters appended to the string. May be NULL;
*
- * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested
- * by ferror())
+ * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested by
+ * ferror());
* \retval CSTRING_RC_SUCCESS A line terminated by a carriage return was
- * read in
- * \retval CSTRING_RC_EOF A line terminted by the end-of-file was read in
- * \retval -other- any other value returned by cstring_appendLen()
+ * read in;
+ * \retval CSTRING_RC_EOF A line terminted by the end-of-file was read in;
+ * \retval -other- any other value returned by cstring_appendLen();
*
* \pre (NULL != pcs)
*/
@@ -801,17 +860,17 @@ cstring_readline(
/** Writes a line of text to the given text stream
*
- * \param stm The stream to which the line will be written
+ * \param stm The stream to which the line will be written;
* \param pcs The initialised string instance containing the string to be
- * written, after which a carriage-return is appended.
+ * written, after which a carriage-return is appended;
* \param numWritten An optional pointer to a variable to receive the number
- * of characters written to the stream. May be NULL
+ * of characters written to the stream. May be NULL;
*
- * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested
- * by ferror())
+ * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested by
+ * ferror());
* \retval CSTRING_RC_SUCCESS A line terminated by a carriage return was
- * read in
- * \retval CSTRING_RC_IOERROR Could not write to the stream
+ * read in;
+ * \retval CSTRING_RC_IOERROR Could not write to the stream;
*
* \pre (NULL != pcs)
*/
@@ -825,15 +884,15 @@ cstring_writeline(
/** Writes a string to the given text stream
*
- * \param stm The stream to which the string will be written
- * \param pcs The initialised string instance to be written
+ * \param stm The stream to which the string will be written;
+ * \param pcs The initialised string instance to be written;
* \param numWritten An optional pointer to a variable to receive the number
- * of characters written to the stream. May be NULL
+ * of characters written to the stream. May be NULL;
*
- * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested
- * by ferror())
- * \retval CSTRING_RC_SUCCESS The string was written
- * \retval CSTRING_RC_IOERROR Could not write to the stream
+ * \retval CSTRING_RC_INVALIDSTREAM The stream was not valid (as tested by
+ * ferror());
+ * \retval CSTRING_RC_SUCCESS The string was written;
+ * \retval CSTRING_RC_IOERROR Could not write to the stream;
*
* \pre (NULL != pcs)
*/
@@ -874,11 +933,11 @@ cstring_insertLen(
/** Replaces a specified section of the string with another
*
- * \param pcs The cstring instance whose contents will be modified
+ * \param pcs The cstring instance whose contents will be modified;
* \param index The position of the replaced section. May be negative, in
- * which case it represents the position from the end of the string
- * \param len The length of the replaced section
- * \param s The replacing string
+ * which case it represents the position from the end of the string;
+ * \param len The length of the replaced section;
+ * \param s The replacing string;
*
* \note If the identified section to be replaced is outside the bounds of
* the string,
@@ -897,12 +956,12 @@ cstring_replace(
/** Replaces a specified section of the string with another
*
- * \param pcs The cstring instance whose contents will be modified
+ * \param pcs The cstring instance whose contents will be modified;
* \param index The position of the replaced section. May be negative, in
- * which case it represents the position from the end of the string
- * \param len The length of the replaced section
- * \param s The replacing string
- * \param cch The replacing string length
+ * which case it represents the position from the end of the string;
+ * \param len The length of the replaced section;
+ * \param s The replacing string;
+ * \param cch The replacing string length;
*
* \note If the identified section to be replaced is outside the bounds of
* the string,
@@ -922,14 +981,14 @@ cstring_replaceLen(
/** Replaces all instances of one substring with another
*
- * \param pcs The cstring instance whose contents will be modified
- * \param f The string to search for. If NULL or the empty string,
- * the function returns immediately
- * \param t The string to replace with. If NULL or the empty string,
- * all occurences of \c f will be removed
+ * \param pcs The cstring instance whose contents will be modified;
+ * \param f The string to search for. If NULL or the empty string, the
+ * function returns immediately;
+ * \param t The string to replace with. If NULL or the empty string, all
+ * occurences of \c f will be removed;
* \param numReplaced An optional pointer to a variable to receive the
* number of replacements performed. May be NULL if caller does not
- * require
+ * require;
*
* \pre (NULL != pcs)
*/
diff --git a/include/cstring/cstring.vector.h b/include/cstring/cstring.vector.h
index 3671f7a..7a0511f 100644
--- a/include/cstring/cstring.vector.h
+++ b/include/cstring/cstring.vector.h
@@ -4,7 +4,7 @@
* Purpose: Definition of the cstring.vector API.
*
* Created: 21st January 2012
- * Updated: 2nd August 2026
+ * Updated: 6th September 2026
*
* Home: http://synesis.com.au/software/
*
@@ -54,8 +54,8 @@
#ifndef CSTRING_DOCUMENTATION_SKIP_SECTION
# define CSTRING_VER_CSTRING_H_VECTOR_MAJOR 1
# define CSTRING_VER_CSTRING_H_VECTOR_MINOR 0
-# define CSTRING_VER_CSTRING_H_VECTOR_REVISION 2
-# define CSTRING_VER_CSTRING_H_VECTOR_EDIT 8
+# define CSTRING_VER_CSTRING_H_VECTOR_REVISION 3
+# define CSTRING_VER_CSTRING_H_VECTOR_EDIT 9
#endif /* !CSTRING_DOCUMENTATION_SKIP_SECTION */
@@ -127,7 +127,7 @@ cstring_vector_init(
* \note This must only be called on an initialised cstring-vector instance,
* which is then rendered in the uninitialised state.
*
- * \retval CSTRING_RC_SUCCESS the capacity was destroyed
+ * \retval CSTRING_RC_SUCCESS the capacity was destroyed;
*
* \pre (NULL != pcsv)
*/
@@ -169,14 +169,15 @@ cstring_vector_create(
/**
*
- * \param pcsv Pointer to the c-string vector instance
- * \param position Position within the vector at which to insert the given item(s)
+ * \param pcsv Pointer to the c-string vector instance;
+ * \param position Position within the vector at which to insert the given
+ * item(s);
* \param strings Pointer to an array of cstring_t instances with at least
* as many elements as \c numStrings. May be NULL, in which case the
* function will behave as if \c strings points to an array containing
- * \c numStrings blank cstring_t instances.
+ * \c numStrings blank cstring_t instances;
* \param numStrings The number of cstring_t instances to be inserted at the
- * given position.
+ * given position;
*
* \pre (NULL != pcsv)
* \pre (position <= pcsv->len)
diff --git a/src/cstring.core.c b/src/cstring.core.c
index 2e9608b..22631bf 100644
--- a/src/cstring.core.c
+++ b/src/cstring.core.c
@@ -4,7 +4,7 @@
* Purpose: The implementation of the cstring core API
*
* Created: 16th June 1994
- * Updated: 2nd August 2026
+ * Updated: 6th September 2026
*
* Home: http://synesis.com.au/software/
*
@@ -189,9 +189,9 @@ convert_negative_index(
}
/*
- * \param dst Destination. May NOT be \c NULL
- * \param src Source. May be \c NULL
- * \param lim Maximum number of elements in \c dst
+ * \param dst Destination. May NOT be \c NULL;
+ * \param src Source. May be \c NULL;
+ * \param lim Maximum number of elements in \c dst;
*
* \return The actual length of src if not \c NULL; 0 otherwise
*