<feed xmlns='http://www.w3.org/2005/Atom'>
<title>xavi/dynstr, branch v0.1.0-rc1</title>
<subtitle>Dynamic string library in C99.
</subtitle>
<id>https://gitea.privatedns.org/xavi/dynstr/atom?h=v0.1.0-rc1</id>
<link rel='self' href='https://gitea.privatedns.org/xavi/dynstr/atom?h=v0.1.0-rc1'/>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/'/>
<updated>2023-10-02T12:39:43+00:00</updated>
<entry>
<title>Support installation</title>
<updated>2023-10-02T12:39:43+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-10-02T12:39:43+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=d0d843b7046ced76336604450f8eb78b4decfa09'/>
<id>urn:sha1:d0d843b7046ced76336604450f8eb78b4decfa09</id>
<content type='text'>
</content>
</entry>
<entry>
<title>CMakeLists.txt: add cmake_minimum_required</title>
<updated>2023-10-02T12:38:53+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-10-02T12:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=0e779caae658f118d535e9f0a74f0012eefca9a0'/>
<id>urn:sha1:0e779caae658f118d535e9f0a74f0012eefca9a0</id>
<content type='text'>
This command is mandatory for all CMake projects. 3.0 was chosen since
dynstr does not require any newer CMake features.
</content>
</entry>
<entry>
<title>CMakeLists.txt: Set project language to C</title>
<updated>2023-08-02T11:06:08+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-08-02T11:06:08+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=58bd7d93762e7a5eeba17e0cdb527b7f600ddc64'/>
<id>urn:sha1:58bd7d93762e7a5eeba17e0cdb527b7f600ddc64</id>
<content type='text'>
Otherwise, CMake tests the system C++ compiler by default, which is not
a requirement for dynstr.
</content>
</entry>
<entry>
<title>Makefile: add clean target</title>
<updated>2023-08-01T00:19:13+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-08-01T00:19:13+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=57c9dfcfd0261a1eb0074a3ab85001a342e4cd19'/>
<id>urn:sha1:57c9dfcfd0261a1eb0074a3ab85001a342e4cd19</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Support POSIX make(1) as build system</title>
<updated>2023-05-28T09:36:47+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-05-28T09:36:47+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=5c13c9b8385cb2742f342d4d2f64d4e2d21108ba'/>
<id>urn:sha1:5c13c9b8385cb2742f342d4d2f64d4e2d21108ba</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dynstr.c: Fix memory leak if realloc(3) fails</title>
<updated>2023-03-08T00:21:16+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-03-08T00:21:16+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=909d716a1e6d0c03b61b2a73ad3c2bd20fa55cf2'/>
<id>urn:sha1:909d716a1e6d0c03b61b2a73ad3c2bd20fa55cf2</id>
<content type='text'>
According to C99 §7.20.3.4:

If memory for the new object cannot be allocated, the old object is not
deallocated and its value is unchanged.

Therefore, a temporary pointer must be used to ensure the original
object can still be deallocated should realloc(3) return a null pointer.
</content>
</entry>
<entry>
<title>dynstr.c: Make zero-initialization portable</title>
<updated>2023-03-08T00:19:21+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-03-08T00:19:21+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=8e7557ef7a9a10781c79948afa69294afbdde10a'/>
<id>urn:sha1:8e7557ef7a9a10781c79948afa69294afbdde10a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Update copyright notice</title>
<updated>2023-03-08T00:18:47+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2023-03-08T00:18:47+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=0f2bf85be8deb008549e0099cb09bdc95f808c47'/>
<id>urn:sha1:0f2bf85be8deb008549e0099cb09bdc95f808c47</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix lifetime issues with va_list</title>
<updated>2020-10-14T06:27:19+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavier.delcampo@orain.io</email>
</author>
<published>2020-10-14T06:27:19+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=601a8133257c095032a3c43bd4319e2c0f105756'/>
<id>urn:sha1:601a8133257c095032a3c43bd4319e2c0f105756</id>
<content type='text'>
The standard requires both va_start and va_end to be called from the
same function. On the other hand, vsnprintf and vsprintf leave the
va_list on an undefined state according to the standard, so a copy must
be created before a second call to these functions.
</content>
</entry>
<entry>
<title>Add missing do/while (0) on convenience macros</title>
<updated>2020-10-08T09:24:31+00:00</updated>
<author>
<name>Xavier Del Campo Romero</name>
<email>xavi.dcr@tutanota.com</email>
</author>
<published>2020-10-08T06:47:15+00:00</published>
<link rel='alternate' type='text/html' href='https://gitea.privatedns.org/xavi/dynstr/commit/?id=837c9427de10ddcb5295f3840ead2a6c3aa61e69'/>
<id>urn:sha1:837c9427de10ddcb5295f3840ead2a6c3aa61e69</id>
<content type='text'>
</content>
</entry>
</feed>
