--- freem/src/strings.c 2025/03/09 19:50:47 1.3
+++ freem/src/strings.c 2025/05/01 17:02:30 1.8
@@ -1,5 +1,5 @@
/*
- * $Id: strings.c,v 1.3 2025/03/09 19:50:47 snw Exp $
+ * $Id: strings.c,v 1.8 2025/05/01 17:02:30 snw Exp $
* freem string library
*
*
@@ -24,6 +24,21 @@
* along with FreeM. If not, see .
*
* $Log: strings.c,v $
+ * Revision 1.8 2025/05/01 17:02:30 snw
+ * Further debugging improvements
+ *
+ * Revision 1.7 2025/04/15 02:24:43 snw
+ * Improve FreeM logging capabilities
+ *
+ * Revision 1.6 2025/04/13 04:22:43 snw
+ * Fix snprintf calls
+ *
+ * Revision 1.5 2025/04/10 01:24:39 snw
+ * Remove C++ style comments
+ *
+ * Revision 1.4 2025/04/09 19:52:02 snw
+ * Eliminate as many warnings as possible while building with -Wall
+ *
* Revision 1.3 2025/03/09 19:50:47 snw
* Second phase of REUSE compliance and header reformat
*
@@ -37,6 +52,7 @@
#include
#include
#include
+#include
/* length of 'source' string in bytes */
long int stlen (const char *source)
@@ -57,7 +73,6 @@ long int stnlen (const char *source, siz
return length;
}
-
/* copy string from 'source' to 'dest' */
long int stcpy (char *dest, const char *source)
{
@@ -108,7 +123,6 @@ short int stcat (char *dest, const char
while ((dest[i] = *source++) != EOL) {
if (i++ >= STRLEN) {
- //printf("i = %d\r\n", i);
dest[--i] = EOL;
return FALSE;
}
@@ -118,18 +132,6 @@ short int stcat (char *dest, const char
return TRUE;
}
-long int stncat (char *dest, const char *source, size_t siz)
-{
- long int srclen;
- long int dstlen;
-
- srclen = stnlen (source, siz);
- dstlen = stnlen (dest, siz);
-
-
- return 0;
-}
-
/* compare str1 and str2 */
short int stcmp (char *str1, char *str2)
{
@@ -182,6 +184,48 @@ char *trim (char *s)
}
+/*
+int stnprintf(char *dst, int size, char *fmt, ...)
+{
+ va_list ptr;
+ va_start (ptr, fmt);
+
+ char ch;
+ char typ;
+
+ register int i;
+ register int k;
+
+ k = 0;
+
+ for (i = 0; fmt[i] != '\201'; i++) {
+ ch = fmt[i];
+
+ if ((k + 1) == size) {
+ dst[k + 1] = '\201';
+ return k;
+ }
+
+ if (ch == '%') {
+ typ = fmt[++i];
+
+ switch (typ) {
+
+ case '%':
+ dst[k++] = '%';
+ break;
+
+ case 's':
+
+
+ }
+ }
+ else if (ch == '\') {
+
+ }
+ }
+}
+*/
/* convert EOL-terminated string 'mstr' to NUL-terminated string in-place */
void stcnv_m2c(char *mstr)
@@ -225,6 +269,7 @@ void stncnv_c2m(char *cstr, size_t siz)
return;
}
+
/* convert at most 'count' characters of *key into human-readable format in *buf */
size_t key_to_name(char *buf, const char *key, size_t count)
{
@@ -249,7 +294,7 @@ size_t key_to_name(char *buf, const char
c = key[i];
next = key[i + 1];
- switch (key[i]) {
+ switch (c) {
case EOL:
@@ -419,7 +464,8 @@ size_t name_to_key(char *buf, const char
}
n_to_k_done:
-
+ buf[j] = '\201';
+
return j;
}
@@ -485,8 +531,8 @@ void uuid_v4 (char *buf)
seg2[4] = '\0';
- snprintf (seg3, 5, "%04x", seg3num);
- snprintf (seg4, 5, "%04x", seg4num);
+ snprintf (seg3, sizeof (seg3), "%04x", seg3num);
+ snprintf (seg4, sizeof (seg4), "%04x", seg4num);
for (i = 0; i < 12; i++) {
seg5[i] = chars[rand () % 16];