Project

General

Profile

Feature #225 ยป 0026-astring.c-Replace-NULLs-with-nullptrs.patch

Marko Lindqvist, 02/04/2024 05:38 PM

View differences:

utility/astring.c
/* utility */
#include "fcintl.h"
#include "fcthread.h"
#include "log.h" /* fc_assert */
#include "log.h" /* fc_assert() */
#include "mem.h"
#include "support.h" /* fc_vsnprintf, fc_strlcat */
#include "support.h" /* fc_vsnprintf(), fc_strlcat() */
#include "astring.h"
......
void astr_free(struct astring *astr)
{
if (astr->n_alloc > 0) {
fc_assert_ret(NULL != astr->str);
fc_assert_ret(astr->str != nullptr);
free(astr->str);
}
......
void astr_clear(struct astring *astr)
{
if (astr->n == 0) {
/* astr_reserve is really astr_size, so we don't want to reduce the
* size. */
/* astr_reserve() is really astr_size(), so we don't want to reduce
* the size. */
astr_reserve(astr, 1);
}
astr->str[0] = '\0';
......
}
/************************************************************************//**
Replace the spaces by line breaks when the line lenght is over the desired
one.
Replace the spaces by line breaks when the line lenght is over
the desired one.
****************************************************************************/
void astr_break_lines(struct astring *astr, size_t desired_len)
{
......
const char *astr_build_or_list(struct astring *astr,
const char *const *items, size_t number)
{
fc_assert_ret_val(NULL != astr, NULL);
fc_assert_ret_val(0 < number, NULL);
fc_assert_ret_val(NULL != items, NULL);
fc_assert_ret_val(astr != nullptr, nullptr);
fc_assert_ret_val(0 < number, nullptr);
fc_assert_ret_val(items != nullptr, nullptr);
if (1 == number) {
/* TRANS: "or"-separated string list with one single item. */
......
} else {
/* Estimate the space we need. */
astr_reserve(astr, number * 64);
/* TRANS: start of an "or"-separated string list with more than two
* items. */
/* TRANS: start of an "or"-separated string list with more than
* two items. */
astr_set(astr, Q_("?or-list:%s"), *items++);
while (1 < --number) {
/* TRANS: next elements of an "or"-separated string list with more
* than two items. */
astr_add(astr, Q_("?or-list:, %s"), *items++);
}
/* TRANS: end of an "or"-separated string list with more than two
* items. */
/* TRANS: end of an "or"-separated string list with more than
* two items. */
astr_add(astr, Q_("?or-list:, or %s"), *items);
}
......
const char *astr_build_and_list(struct astring *astr,
const char *const *items, size_t number)
{
fc_assert_ret_val(NULL != astr, NULL);
fc_assert_ret_val(0 < number, NULL);
fc_assert_ret_val(NULL != items, NULL);
fc_assert_ret_val(astr != nullptr, nullptr);
fc_assert_ret_val(0 < number, nullptr);
fc_assert_ret_val(items != nullptr, nullptr);
if (1 == number) {
/* TRANS: "and"-separated string list with one single item. */
......
} else {
/* Estimate the space we need. */
astr_reserve(astr, number * 64);
/* TRANS: start of an "and"-separated string list with more than two
* items. */
/* TRANS: start of an "and"-separated string list with more than
* two items. */
astr_set(astr, Q_("?and-list:%s"), *items++);
while (1 < --number) {
/* TRANS: next elements of an "and"-separated string list with more
* than two items. */
astr_add(astr, Q_("?and-list:, %s"), *items++);
}
/* TRANS: end of an "and"-separated string list with more than two
* items. */
/* TRANS: end of an "and"-separated string list with more than
* two items. */
astr_add(astr, Q_("?and-list:, and %s"), *items);
}
    (1-1/1)