<feed xmlns='http://www.w3.org/2005/Atom'>
<title>paraslash/string.h, branch pu</title>
<subtitle>paraslash - network audio streaming tools</subtitle>
<id>https://git.tue.mpg.de/cgit/paraslash/atom?h=pu</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/paraslash/atom?h=pu'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/'/>
<updated>2026-05-24T17:11:03Z</updated>
<entry>
<title>Move read_size_header() from string.c to stat.c.</title>
<updated>2026-05-24T17:11:03Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-05-12T17:18:00Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=863e96af0135dc20c53ddc85aab5f6f2e71f4860'/>
<id>urn:sha1:863e96af0135dc20c53ddc85aab5f6f2e71f4860</id>
<content type='text'>
This way it can be static, and executables which don't need it don't contain
a copy of this function.
</content>
</entry>
<entry>
<title>Switch to SPDX identifiers.</title>
<updated>2026-03-17T22:45:43Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2026-03-15T14:57:29Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=ea0cecf96e08c489fdcc94d046019f4ce46f58e2'/>
<id>urn:sha1:ea0cecf96e08c489fdcc94d046019f4ce46f58e2</id>
<content type='text'>
Generated with

	sed -i 's|Copyright.*Andre Noll.*|SPDX-License-Identifier: GPL-2.0 */|g' *.c *.h

followed by manually tweaking the result a bit. No license change intended.
</content>
</entry>
<entry>
<title>Remove para_strcat().</title>
<updated>2026-01-04T21:20:54Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-11-02T15:18:10Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=aa22b304ebac28d2ef770a10488240ee4f573e3e'/>
<id>urn:sha1:aa22b304ebac28d2ef770a10488240ee4f573e3e</id>
<content type='text'>
There is only a single user in audioc.c, and this user can easily avoid the
function by allocating only a single buffer.
</content>
</entry>
<entry>
<title>Modify para_hostname() to return a static buffer.</title>
<updated>2025-08-07T12:49:36Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-07-09T23:54:11Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=51ad4f6ba4d91ffc0c37cf56882a5ac60fea81c3'/>
<id>urn:sha1:51ad4f6ba4d91ffc0c37cf56882a5ac60fea81c3</id>
<content type='text'>
All but one caller immediately free the result after using it. The exception
is daemon.c, which maintains a copy in struct daemon, and leaks it on exit.

All users can trivially be converted to use the new version, which does not
require to free the result.
</content>
</entry>
<entry>
<title>Doxify version functions.</title>
<updated>2025-03-25T00:52:10Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-03-25T00:15:34Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=65c9e9f0230d2da3cc9b68e96daf80f5aeb8c40c'/>
<id>urn:sha1:65c9e9f0230d2da3cc9b68e96daf80f5aeb8c40c</id>
<content type='text'>
The two auto-generated public functions come undoxified, so document
their declarations in string.h.

Fixes: 69bace22205b4bb01673f7c9873f57a43bd6a0f7
</content>
</entry>
<entry>
<title>build: Revamp git versioning.</title>
<updated>2025-03-25T00:51:36Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2025-01-01T00:16:48Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=09ca227ad87eaa2a549cd438fc7d8a6ab4d35973'/>
<id>urn:sha1:09ca227ad87eaa2a549cd438fc7d8a6ab4d35973</id>
<content type='text'>
This rewrites GIT-VERSION-GEN and renames it to version-gen.sh. The
main difference is that the script now generates version.c rather
than version.h, speeding up the build because switching branches
or transitioning from a clean to a dirty work-tree (or vice versa)
changes the version string. Before the patch, all files which included
version.h were recompiled. With the patch applied, only the short
version.c needs to be recompiled.

The generated version,c defines one function which returns the
single-line version string and a second function which returns
the multi-line version information (author, copyright, git URL
etc). This information is now passed to version-gen.sh via environment
variables. The CPP macros we had before are removed.
</content>
</entry>
<entry>
<title>build: Merge version.{c,h} into string.{c,h}.</title>
<updated>2025-03-25T00:51:36Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-12-31T23:48:26Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=8a74b53e48b4e68989dc2eeaa6fbb193c644af7e'/>
<id>urn:sha1:8a74b53e48b4e68989dc2eeaa6fbb193c644af7e</id>
<content type='text'>
This is a preparatory patch for the upcoming revamp of the git
version script. The revamped script generates version.c, a file
which is currently tracked by git. We can easily get rid of it (and
of version.h) since all paraslash executables link in both string.o
and version.o. So let's move the three small functions of version.c
to string.c and their declarations from version.h to string.h.
</content>
</entry>
<entry>
<title>Open-code find_arg().</title>
<updated>2022-10-03T20:42:13Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2022-08-25T14:33:29Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=a0707daa23f8706326aa837f969c20d3e4ee02aa'/>
<id>urn:sha1:a0707daa23f8706326aa837f969c20d3e4ee02aa</id>
<content type='text'>
There is only one caller in client_common.c, so open-code the logic
there and get rid of the public function and the unused error code.
</content>
</entry>
<entry>
<title>Merge topic branch t/overflow into master</title>
<updated>2022-10-03T16:01:20Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2022-10-03T15:59:56Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=563b56a493d6a2bdcdebafadd907954dbe1de8a8'/>
<id>urn:sha1:563b56a493d6a2bdcdebafadd907954dbe1de8a8</id>
<content type='text'>
This series implements a new memory allocation API which checks
for overflows. The first part of the series just renames the main
allocation functions. Later patches in the series implement allocators
which take two size_t arguments (like calloc(3)) and check whether the
multiplication overflows by employing the __builtin_mul_overflow()
primitive supported by gcc and clang. This requires us to bump the
lowest supported gcc and clang version.

* refs/heads/t/overflow:
  build: Compile with -ftrapv.
  string: Introduce arr_zalloc().
  string: Introduce arr_alloc().
  string: Introduce arr_realloc() and check for integer overflow.
  string: Rename para_calloc() -&gt; zalloc().
  string: Rename para_malloc() -&gt; alloc().
  string: Overhaul para_strdup().
</content>
</entry>
<entry>
<title>Merge branch 'refs/heads/t/ll'</title>
<updated>2022-09-18T14:35:09Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2022-09-18T14:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/paraslash/commit/?id=5967ac5353739c3ff571dd12d4c6814fa8493ad8'/>
<id>urn:sha1:5967ac5353739c3ff571dd12d4c6814fa8493ad8</id>
<content type='text'>
Two little cleanups related to the logging facility and two commits
which add the ll command to para_server and para_audiod.

The merge resulted in a conflict in afs.c due to the earlier merge of
the poll topic branch which replaced all calls to select() by calls
to poll(). The implementation of the ll server command introduced a
new caller of select(), afs_select(), which needs to be replaced by
afs_poll() to resolve the conflict.

* refs/heads/t/ll:
  New server command: ll to change the log level at runtime.
  New audiod command: ll to change the log level at runtime.
  daemon: Kill get_loglevel_by_name().
  server/audiod: Don't parse loglevel argument unnecessarily.
</content>
</entry>
</feed>
