Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Saturday, October 17, 2026

Diff for libcfg+/src/cfg+.c between version 1.14 and 1.15

version 1.14, 2001/12/05 23:58:48 version 1.15, 2001/12/08 18:23:52
Line 7 
Line 7 
 #include "cfg.h"  #include "cfg.h"
   
 static char *default_line_stop_str[2] = { "--", NULL };  static char *default_line_stop_str[2] = { "--", NULL };
 static char *default_file_stop_str[2] = { "[", NULL };  static char *default_file_stop_prefix[2] = { "[", NULL };
 static char *default_file_comment_str[3] = { "#", ";", 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_separator[3] = { ",", ";", NULL };  static char *default_multi_vals_separator[3] = { ",", ";", 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 };
   
   
 CFG_CONTEXT cfg_get_context(struct cfg_option *options)  CFG_CONTEXT cfg_get_context(struct cfg_option *options)
Line 28  CFG_CONTEXT cfg_get_context(struct cfg_o
Line 29  CFG_CONTEXT cfg_get_context(struct cfg_o
         con->type = CFG_NO_CONTEXT;          con->type = CFG_NO_CONTEXT;
   
         con->line_stop_str = strdyn_create_ar(default_line_stop_str);          con->line_stop_str = strdyn_create_ar(default_line_stop_str);
         con->file_stop_str = strdyn_create_ar(default_file_stop_str);          con->file_stop_prefix = strdyn_create_ar(default_file_stop_prefix);
         con->comment_str = strdyn_create_ar(default_file_comment_str);          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_separator = strdyn_create_ar(default_multi_separator);          con->multi_vals_separator = strdyn_create_ar(default_multi_vals_separator);
           con->multi_line_postfix = strdyn_create_ar(default_multi_line_postfix);
         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);
   
         if (con->line_stop_str == NULL          if (con->line_stop_str == NULL
                         || con->file_stop_str == NULL                          || con->file_stop_prefix == NULL
                         || con->comment_str == 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->line_option_arg_separator == NULL                          || con->line_option_arg_separator == NULL
                         || con->file_option_arg_separator == NULL                          || con->file_option_arg_separator == NULL
            )             )
Line 125  void cfg_free_context(const CFG_CONTEXT
Line 129  void cfg_free_context(const CFG_CONTEXT
 {  {
   
         cfg_clear_cmdline_stop_str(con);          cfg_clear_cmdline_stop_str(con);
         cfg_clear_cfgfile_stop_str(con);          cfg_clear_cfgfile_stop_prefix(con);
         cfg_clear_cfgfile_comment_str(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_separator(con);          cfg_clear_cmdline_multi_vals_separator(con);
           cfg_clear_cfgfile_multi_line_postfix(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);
   
Line 201  int main(int argc, char **argv)
Line 206  int main(int argc, char **argv)
                 { "double", 'd', "double", CFG_DOUBLE, (void *) &o_double, 0 },                  { "double", 'd', "double", CFG_DOUBLE, (void *) &o_double, 0 },
                 { "multi_double",'D',"mdouble",CFG_DOUBLE+CFG_MULTI_SEPARATED,(void*)&o_multi_double,0},                  { "multi_double",'D',"mdouble",CFG_DOUBLE+CFG_MULTI_SEPARATED,(void*)&o_multi_double,0},
                 { "string", 's', "string", CFG_STRING + CFG_MULTI, (void *) &o_string, 0 },                  { "string", 's', "string", CFG_STRING + CFG_MULTI, (void *) &o_string, 0 },
                 { NULL, '\0', NULL, CFG_STRING + CFG_MULTI + CFG_LEFTOVER_ARGS, (void *) &o_leftover, 0 },                  { NULL, '\0', "argv", CFG_STRING + CFG_MULTI + CFG_LEFTOVER_ARGS, (void*)&o_leftover,0},
                 CFG_END_OF_LIST                  CFG_END_OF_LIST
         };          };
   
         con = cfg_get_cmdline_context(argc, argv, options);          con = cfg_get_cmdline_context(argc, argv, options);
   
           cfg_set_context_flags(con, con->flags + CFG_ADVANCED_LEFTOVERS);
   
         while ((ret = cfg_get_next_opt(con)) > 0) {          while ((ret = cfg_get_next_opt(con)) > 0) {
                 printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n",                  printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n",
                                 ret,                                  ret,
Line 261  int main(int argc, char **argv)
Line 268  int main(int argc, char **argv)
                                 cfg_get_cur_idx(con),                                  cfg_get_cur_idx(con),
                                 argv[cfg_get_cur_idx(con)]);                                  argv[cfg_get_cur_idx(con)]);
   
   
         cfg_free_context(con);          cfg_free_context(con);
   
           if (o_cfgfile != NULL) {
                   con = cfg_get_cfgfile_context(0, 0, o_cfgfile, options);
                   cfg_remove_cfgfile_comment_prefix(con, "//");
                   cfg_add_cfgfile_comment_prefix(con, "//");
   
   
                   while ((ret = cfg_get_next_opt(con)) > 0) {
                           /*
                              printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n",
                              ret,
                              cfg_get_cur_opt(con),
                              cfg_get_cur_arg(con),
                              cfg_get_cur_idx(con),
                              argv[cfg_get_cur_idx(con)]);
                            */
                   }
   
                   if (ret != 0)
                           printf("***** cfgfile error %d\n", ret);
   
                   cfg_free_context(con);
           }
   
   
         printf("o_verbose = %d, o_nice = %d\n", o_verbose, o_nice);          printf("o_verbose = %d, o_nice = %d\n", o_verbose, o_nice);
         printf("o_boolean = %d\n", o_boolean);          printf("o_boolean = %d\n", o_boolean);
         printf("o_int = %d, o_uint = %u\n", o_int, o_uint);          printf("o_int = %d, o_uint = %u\n", o_int, o_uint);
Line 367  int main(int argc, char **argv)
Line 397  int main(int argc, char **argv)
                         puts("o_leftover uninitialized");                          puts("o_leftover uninitialized");
         }          }
   
         if (o_cfgfile != NULL) {  
                 con = cfg_get_cfgfile_context(0, 0, o_cfgfile, options);  
   
                 while ((ret = cfg_get_next_opt(con)) > 0) {  
                         /*  
                            printf("ret = %d, opt = '%s', arg = '%s', idx = %d, argv[idx] = '%s'\n",  
                            ret,  
                            cfg_get_cur_opt(con),  
                            cfg_get_cur_arg(con),  
                            cfg_get_cur_idx(con),  
                            argv[cfg_get_cur_idx(con)]);  
                          */  
                 }  
   
                 printf("error %d\n", ret);  
   
                 cfg_free_context(con);  
         }  
   
   
         return 0;          return 0;
 }  }

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top