| verzia 1.17, 2001/12/10 21:01:48 |
verzia 1.18, 2001/12/16 20:44:37 |
|
|
| |
|
| #include "str/strdyn.h" |
#include "str/strdyn.h" |
| #include "str/strplus.h" |
#include "str/strplus.h" |
| |
|
| #include "cfg.h" |
#include "cfg.h" |
| |
#include "shared.h" |
| |
|
| static char *default_line_stop_str[2] = { "--", NULL }; |
static char *default_line_stop_str[2] = { "--", NULL }; |
| static char *default_file_stop_prefix[2] = { "[", NULL }; |
static char *default_file_stop_prefix[2] = { "[", NULL }; |
| static char *default_file_comment_prefix[4] = { "#", ";", "//", NULL }; |
static char *default_file_comment_prefix[4] = { "#", ";", "//", NULL }; |
| static char *default_short_option_prefix[2] = { "-", NULL }; |
static char *default_short_option_prefix[2] = { "-", NULL }; |
| static char *default_long_option_prefix[2] = { "--", NULL }; |
static char *default_long_option_prefix[2] = { "--", NULL }; |
| static char *default_multi_vals_separator[4] = { " ", ",", ";", NULL }; |
static char *default_line_multi_vals_separator[4] = { " ", ",", ";", NULL }; |
| |
static char *default_file_multi_vals_separator[4] = { " ", ",", ";", NULL }; |
| static char *default_line_option_arg_separator[2] = { "=", NULL }; |
static char *default_line_option_arg_separator[2] = { "=", NULL }; |
| static char *default_file_option_arg_separator[2] = { "=", NULL }; |
static char *default_file_option_arg_separator[2] = { "=", NULL }; |
| static char *default_multi_line_postfix[3] = { "\\", "multi\\", NULL }; |
static char *default_multi_line_postfix[3] = { "\\", "multi\\", NULL }; |
| |
static char *default_quote_prefix[3] = { "\"", "'", NULL }; |
| |
static char *default_quote_postfix[3] = { "\"", "'", NULL }; |
| |
|
| CFG_CONTEXT cfg_get_context(struct cfg_option *options) |
CFG_CONTEXT cfg_get_context(struct cfg_option *options) |
| { |
{ |
| Riadok 33 CFG_CONTEXT cfg_get_context(struct cfg_o |
|
| Riadok 37 CFG_CONTEXT cfg_get_context(struct cfg_o |
|
| con->comment_prefix = strdyn_create_ar(default_file_comment_prefix); |
con->comment_prefix = strdyn_create_ar(default_file_comment_prefix); |
| con->short_option_prefix = strdyn_create_ar(default_short_option_prefix); |
con->short_option_prefix = strdyn_create_ar(default_short_option_prefix); |
| con->long_option_prefix = strdyn_create_ar(default_long_option_prefix); |
con->long_option_prefix = strdyn_create_ar(default_long_option_prefix); |
| con->multi_vals_separator = strdyn_create_ar(default_multi_vals_separator); |
|
| con->multi_line_postfix = strdyn_create_ar(default_multi_line_postfix); |
con->multi_line_postfix = strdyn_create_ar(default_multi_line_postfix); |
| |
con->line_multi_vals_separator = |
| |
strdyn_create_ar(default_line_multi_vals_separator); |
| |
con->file_multi_vals_separator = |
| |
strdyn_create_ar(default_file_multi_vals_separator); |
| con->line_option_arg_separator = |
con->line_option_arg_separator = |
| strdyn_create_ar(default_line_option_arg_separator); |
strdyn_create_ar(default_line_option_arg_separator); |
| con->file_option_arg_separator = |
con->file_option_arg_separator = |
| strdyn_create_ar(default_file_option_arg_separator); |
strdyn_create_ar(default_file_option_arg_separator); |
| |
con->quote_prefix = strdyn_create_ar(default_quote_prefix); |
| |
con->quote_postfix = strdyn_create_ar(default_quote_postfix); |
| |
|
| if (con->line_stop_str == NULL |
if (con->line_stop_str == NULL |
| || con->file_stop_prefix == NULL |
|| con->file_stop_prefix == NULL |
| || con->comment_prefix == NULL |
|| con->comment_prefix == NULL |
| || con->short_option_prefix == NULL |
|| con->short_option_prefix == NULL |
| || con->long_option_prefix == NULL |
|| con->long_option_prefix == NULL |
| || con->multi_vals_separator == NULL |
|
| || con->multi_line_postfix == NULL |
|| con->multi_line_postfix == NULL |
| |
|| con->line_multi_vals_separator == NULL |
| |
|| con->file_multi_vals_separator == NULL |
| || con->line_option_arg_separator == NULL |
|| con->line_option_arg_separator == NULL |
| || con->file_option_arg_separator == NULL |
|| con->file_option_arg_separator == NULL |
| |
|| con->quote_prefix == NULL |
| |
|| con->quote_postfix == NULL |
| ) |
) |
| return NULL; |
return NULL; |
| |
|
| Riadok 128 void cfg_set_cfgfile_context( |
|
| Riadok 140 void cfg_set_cfgfile_context( |
|
| void cfg_free_context(const CFG_CONTEXT con) |
void cfg_free_context(const CFG_CONTEXT con) |
| { |
{ |
| |
|
| cfg_clear_cmdline_stop_str(con); |
cfg_clear_cmdline_stop_string(con); |
| cfg_clear_cfgfile_stop_prefix(con); |
cfg_clear_cfgfile_stop_prefix(con); |
| cfg_clear_cfgfile_comment_prefix(con); |
cfg_clear_cfgfile_comment_prefix(con); |
| cfg_clear_cmdline_short_option_prefix(con); |
cfg_clear_cmdline_short_option_prefix(con); |
| cfg_clear_cmdline_long_option_prefix(con); |
cfg_clear_cmdline_long_option_prefix(con); |
| cfg_clear_cmdline_multi_vals_separator(con); |
cfg_clear_cmdline_multi_vals_separator(con); |
| cfg_clear_cfgfile_multi_line_postfix(con); |
cfg_clear_cfgfile_multi_vals_separator(con); |
| cfg_clear_cmdline_option_arg_separator(con); |
cfg_clear_cmdline_option_arg_separator(con); |
| cfg_clear_cfgfile_option_arg_separator(con); |
cfg_clear_cfgfile_option_arg_separator(con); |
| |
cfg_clear_cfgfile_multi_line_postfix(con); |
| |
cfg_clear_quote_strings(con); |
| |
|
| if (con->used_opt_idx != NULL) |
if (con->used_opt_idx != NULL) |
| free(con->used_opt_idx); |
free(con->used_opt_idx); |
| Riadok 144 void cfg_free_context(const CFG_CONTEXT |
|
| Riadok 158 void cfg_free_context(const CFG_CONTEXT |
|
| /* |
/* |
| * We can't call free_currents(con), because it is stacic method defined |
* We can't call free_currents(con), because it is stacic method defined |
| * in cmdline.c; but no problem, we will do the free-job ourself. |
* in cmdline.c; but no problem, we will do the free-job ourself. |
| */ |
|
| |
|
| if (con->cur_opt != NULL) |
if (con->cur_opt != NULL) |
| free(con->cur_opt); |
free(con->cur_opt); |
| Riadok 153 void cfg_free_context(const CFG_CONTEXT |
|
| Riadok 166 void cfg_free_context(const CFG_CONTEXT |
|
| |
|
| con->cur_opt = con->cur_arg = NULL; |
con->cur_opt = con->cur_arg = NULL; |
| con->cur_opt_type = CFG_NONE_OPTION; |
con->cur_opt_type = CFG_NONE_OPTION; |
| |
*/ |
| |
|
| |
__cfg_free_currents(con); |
| |
|
| |
|
| if (con->fhandle != NULL) |
if (con->fhandle != NULL) |