treebird/src/string_helpers.h
me@ow.nekobit.net c19ad92804 Config sidebar, focused sidebar items
FossilOrigin-Name: 0020cf420a262b023b7b11eef46efc28b2ad42a439d9dfd35057aad823f4894e
2022-03-29 19:11:43 +00:00

46 lines
1.6 KiB
C

/*
* Treebird - Lightweight frontend for Pleroma
* Copyright (C) 2022 Nekobit
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
#ifndef STRING_HELPERS_H
#define STRING_HELPERS_H
#include <stddef.h>
/** Returns str. If NULL, returns empty string */
#define STR_NULL_EMPTY(str) ((str) ? (str) : "")
#define CAT_TEXT(cat, cfg_cat) ((cat) == (cfg_cat)) ? "focused" : ""
/**
* Constructs a string based on a function
*
* @param func A function, with void* being the string,
* size_t being an index, and int* being the returned parse size
* @param strings The array of strings
* @param strings_len len of `strings`
* @param ret_size Set to the full result string size, useful for large
* results
* @return The result, this MUST be free'd when finished and checked for NULL.
*/
char* construct_func_strings(char* (*func)(void*, size_t, int*),
void* strings,
size_t strings_len,
size_t* ret_size);
#endif // STRING_HELPERS_H