git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 1/3] add strnncmp() function

From
Jeremiah Mahler <jmmahler@gmail.com>
Date
Jun 17, 2014, 07:34 UTC
Message-ID
<50de63f47ded2337adcd8bce151190fb99b38d64.1402990051.git.jmmahler@gmail.com>
In-Reply-To
<cover.1402990051.git.jmmahler@gmail.com>

Add a strnncmp() function which behaves like strncmp() except it takes the length of both strings instead of just one. It behaves the same as strncmp() up to the minimum common length between the strings. When the strings are identical up to this minimum common length, the length difference is returned.

Signed-off-by: Jeremiah Mahler <jmmahler@gmail.com>
---
 strbuf.c | 9 +++++++++
 strbuf.h | 2 ++
 2 files changed, 11 insertions(+)
diff --git a/strbuf.c b/strbuf.c
index ac62982..4eb7954 100644
--- a/strbuf.c
+++ b/strbuf.c
@@ -600,3 +600,12 @@ char *xstrdup_tolower(const char *string)
 	result[i] = '\0';
 	return result;
 }
+
+int strnncmp(const char *a, int len_a, const char *b, int len_b)
+{
+	int min_len = (len_a < len_b) ? len_a : len_b;
+	int cmp = strncmp(a, b, min_len);
+	if (cmp)
+		return cmp;
+	return (len_a - len_b);
+}
diff --git a/strbuf.h b/strbuf.h
index e9ad03e..88af9bf 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -187,4 +187,6 @@ extern int fprintf_ln(FILE *fp, const char *fmt, ...);
 
 char *xstrdup_tolower(const char *);
 
+extern int strnncmp(const char *a, int len_a, const char *b, int len_b);
+
 #endif /* STRBUF_H */
-- 
2.0.0.695.g38ee9a9
Previous: Jeremiah MahlerNext: Torsten Bögershausen
Message 2 of 15 in “add strnncmp() function”
  1. 0/3 add strnncmp() functionJeremiah Mahler, Jun 17, 2014
  2. 1/3 add strnncmp() functionJeremiah Mahler, Jun 17, 2014
  3. Torsten BögershausenJun 17, 2014
  4. Jeremiah MahlerJun 17, 2014
  5. Erik Faye-LundJun 17, 2014
  6. Jeremiah MahlerJun 17, 2014
  7. Junio C HamanoJun 17, 2014
  8. Jeremiah MahlerJun 17, 2014
  9. 2/3 tree-walk: simplify via strnncmp()Jeremiah Mahler, Jun 17, 2014
  10. 3/3 unpack-trees: simplify via strnncmp()Jeremiah Mahler, Jun 17, 2014
  11. Torsten BögershausenJun 17, 2014
  12. Jeremiah MahlerJun 17, 2014
  13. Jonathan NiederJun 17, 2014
  14. Jeremiah MahlerJun 17, 2014
  15. Ondřej BílkaJun 18, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.