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

Re: [PATCH 1/3] Added generic string handling code.

From
TSTimo Sirainen <tss@iki.fi>
Date
May 23, 2007, 10:49 UTC
Message-ID
<1179917386.32181.1643.camel@hurina>
In-Reply-To
<20070522134007.GK4489@pasky.or.cz>
On Tue, 2007-05-22 at 15:40 +0200, Petr Baudis wrote:
Show 12 quoted lines
> On Sun, May 20, 2007 at 04:24:29AM CEST, Timo Sirainen wrote:
> > diff --git a/str.c b/str.c
> > new file mode 100644
> > index 0000000..d46e7f4
> > --- /dev/null
> > +++ b/str.c
> > @@ -0,0 +1,40 @@
> > +#include "str.h"
> > +
> > +void _str_append(struct string *str, const char *cstr)
> 
> _ is reserved namespace.
I remember __ is, but was _ too? A lot of programs are using that. :)
Show 13 quoted lines
> > +{
> > +	unsigned int avail = str->size - str->len;
> > +	unsigned int len = strlen(cstr);
> > +
> > +	if (len >= avail) {
> > +		len = avail - 1;
> > +		str->overflowed = 1;
> > +	}
> > +	memcpy(str->buf + str->len, cstr, len);
> > +	str->len += len;
> > +	str->buf[str->len] = '\0';
> 
> You can copy len + 1 and avoid this assignment.
Not if the string overflowed.
Show 5 quoted lines
> > +}
> > +
> > +void _str_printfa(struct string *str, const char *fmt, ...)
> 
> printfA?
"append". I think I got it originally from glib:

/* These aliases are included for compatibility. */ #define g_string_sprintf g_string_printf #define g_string_sprintfa g_string_append_printf

If there's a chance that this string handling code would get used, I could write another patch with a bit clearer names and support for dynamically growing strings too. Something like:

STATIC_STRING(name, 1234); sstr_append(name, "hello"); // or static_str_append()?

struct string *dyn = str_new(1024); // initial length str_append(dyn, "hello");

Previous: Petr BaudisNext: Petr Baudis
Message 5 of 7 in “Added generic string handling code.”
  1. 1/3 Added generic string handling code.Timo Sirainen, May 20, 2007
  2. Alex RiesenMay 20, 2007
  3. Timo SirainenMay 20, 2007
  4. Petr BaudisMay 22, 2007
  5. Timo SirainenMay 23, 2007
  6. Petr BaudisMay 23, 2007
  7. Timo SirainenMay 23, 2007

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.