treebird/src/string_helpers.h
me@ow.nekobit.net 657b648938 Search functions
FossilOrigin-Name: 1079a61c79c7ade533027a59b1bcc3641b50604851f13dbc82aeed9d9c044c7d
2022-05-04 00:11:17 +00:00

47 lines
1.7 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 MAKE_FOCUSED_IF(tab, test_tab) ((tab) == test_tab ? "focused" : "")
#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