Viewing file: php_ini_builder.h (2.73 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* +----------------------------------------------------------------------+ | Copyright (c) The PHP Group | +----------------------------------------------------------------------+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is | | available through the world-wide-web at the following url: | | https://www.php.net/license/3_01.txt | | If you did not receive a copy of the PHP license and are unable to | | obtain it through the world-wide-web, please send a note to | | license@php.net so we can mail you a copy immediately. | +----------------------------------------------------------------------+ | Authors: Max Kellermann <max.kellermann@ionos.com> | +----------------------------------------------------------------------+ */
#ifndef PHP_INI_BUILDER_H #define PHP_INI_BUILDER_H
#include "php.h"
/** * A class which helps with constructing INI entries from the command * line. */ struct php_ini_builder { char *value; size_t length; };
BEGIN_EXTERN_C()
static inline void php_ini_builder_init(struct php_ini_builder *b) { b->value = NULL; b->length = 0; }
static inline void php_ini_builder_deinit(struct php_ini_builder *b) { free(b->value); }
/** * Null-terminate the buffer and return it. */ static inline char *php_ini_builder_finish(struct php_ini_builder *b) { if (b->value != NULL) { /* null-terminate the string */ b->value[b->length] = '\0'; }
return b->value; }
/** * Make room for more data. * * @param delta the number of bytes to be appended */ static inline void php_ini_builder_realloc(struct php_ini_builder *b, size_t delta) { /* reserve enough space for the null terminator */ b->value = realloc(b->value, b->length + delta + 1); }
/** * Prepend a string. * * @param src the source string * @param length the size of the source string */ PHPAPI void php_ini_builder_prepend(struct php_ini_builder *b, const char *src, size_t length);
#define php_ini_builder_prepend_literal(b, l) php_ini_builder_prepend(b, l, strlen(l))
/** * Append an unquoted name/value pair. */ PHPAPI void php_ini_builder_unquoted(struct php_ini_builder *b, const char *name, size_t name_length, const char *value, size_t value_length);
/** * Append a quoted name/value pair. */ PHPAPI void php_ini_builder_quoted(struct php_ini_builder *b, const char *name, size_t name_length, const char *value, size_t value_length);
/** * Parse an INI entry from the command-line option "--define". */ PHPAPI void php_ini_builder_define(struct php_ini_builder *b, const char *arg);
END_EXTERN_C()
#endif
|