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

[PATCH 6/7] strbuf.h: drop boilerplate descriptions of strbuf_split_*

From
Jeff King <peff@peff.net>
Date
Jan 16, 2015, 09:05 UTC
Message-ID
<20150116090556.GF31113@peff.net>
In-Reply-To
<20150116090225.GA30797@peff.net>

The description of strbuf_split_buf says most of what needs to be said for all of the split variants that take strings, raw memory, etc. We have a boilerplate comment above each that points to the first. This boilerplate ends up making it harder to read, because it spaces out the functions, which could otherwise be read as a group.

Let's drop the boilerplate completely, and mention the variants in the top comment. This is perhaps slightly worse for a hypothetical system which pulls the documentation for each function out of the comment immediately preceding it. But such a system does not yet exist, and anyway, the end result of extracting the boilerplate comments would not lead to a very easy-to-read result. We would do better in the long run to teach the extraction system about groups of related functions.

Signed-off-by: Jeff King <peff@peff.net>
---
 strbuf.h | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/strbuf.h b/strbuf.h
index 6fa7156..61c9c73 100644
--- a/strbuf.h
+++ b/strbuf.h
@@ -441,36 +441,29 @@ static inline int strbuf_strip_suffix(struct strbuf *sb, const char *suffix)
  * substring containing everything following the (max-1)th terminator
  * character).
  *
+ * The most generic form is `strbuf_split_buf`, which takes an arbitrary
+ * pointer/len buffer. The `_str` variant takes a NUL-terminated string,
+ * the `_max` variant takes a strbuf, and just `strbuf_split` is a convenience
+ * wrapper to drop the `max` parameter.
+ *
  * For lighter-weight alternatives, see string_list_split() and
  * string_list_split_in_place().
  */
 extern struct strbuf **strbuf_split_buf(const char *, size_t,
 					int terminator, int max);
 
-/**
- * Split a NUL-terminated string at the specified terminator
- * character.  See strbuf_split_buf() for more information.
- */
 static inline struct strbuf **strbuf_split_str(const char *str,
 					       int terminator, int max)
 {
 	return strbuf_split_buf(str, strlen(str), terminator, max);
 }
 
-/**
- * Split a strbuf at the specified terminator character.  See
- * strbuf_split_buf() for more information.
- */
 static inline struct strbuf **strbuf_split_max(const struct strbuf *sb,
 						int terminator, int max)
 {
 	return strbuf_split_buf(sb->buf, sb->len, terminator, max);
 }
 
-/**
- * Split a strbuf at the specified terminator character.  See
- * strbuf_split_buf() for more information.
- */
 static inline struct strbuf **strbuf_split(const struct strbuf *sb,
 					   int terminator)
 {
-- 
2.2.1.425.g441bb3c
Previous: Jeff KingNext: Jeff King
Message 7 of 12 in “migrate api-strbuf.txt into strbuf.h”
  1. 0/7 migrate api-strbuf.txt into strbuf.hJeff King, Jan 16, 2015
  2. 1/7 strbuf.h: integrate api-strbuf.txt documentationJeff King, Jan 16, 2015
  3. 2/7 strbuf.h: unify documentation comments beginningsJeff King, Jan 16, 2015
  4. 3/7 strbuf.h: drop asciidoc list formatting from API docsJeff King, Jan 16, 2015
  5. 4/7 strbuf.h: format asciidoc code blocks as 4-space indentJeff King, Jan 16, 2015
  6. 5/7 strbuf.h: reorganize api function grouping headersJeff King, Jan 16, 2015
  7. 6/7 strbuf.h: drop boilerplate descriptions of strbuf_split_*Jeff King, Jan 16, 2015
  8. 7/7 strbuf.h: group documentation for trim functionsJeff King, Jan 16, 2015
  9. Junio C HamanoFeb 12, 2015
  10. Jeff KingFeb 12, 2015
  11. Junio C HamanoFeb 16, 2015
  12. Jonathan NiederFeb 17, 2015

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.