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

Diff for libcfg+/src/props.c between version 1.17 and 1.18

version 1.17, 2002/05/30 22:29:45 version 1.18, 2002/06/23 10:48:46
Line 28 
Line 28 
   
 /* Default properties {{{ */  /* Default properties {{{ */
 char *cfg_default_properties[CFG_N_PROPS][4] = {  char *cfg_default_properties[CFG_N_PROPS][4] = {
         { NULL, NULL, NULL, NULL }, /* CFG_LINE_STOP_STRING */          /* CFG_LINE_STOP_STRING */                                              { NULL, NULL, NULL, NULL },
         { "-",  NULL, NULL, NULL }, /* CFG_LINE_SHORT_OPTION_PREFIX */          /* CFG_LINE_SHORT_OPTION_PREFIX */                              { "-",  NULL, NULL, NULL },
         { "--", NULL, NULL, NULL }, /* CFG_LINE_LONG_OPTION_PREFIX */          /* CFG_LINE_LONG_OPTION_PREFIX */                               { "--", NULL, NULL, NULL },
         { "=",  NULL, NULL, NULL }, /* CFG_LINE_OPTION_ARG_SEPARATOR */          /* CFG_LINE_OPTION_ARG_SEPARATOR */                             { "=",  NULL, NULL, NULL },
         { " ",  ",",  ";",  NULL }, /* CFG_LINE_MULTI_VALS_SEPARATOR */          /* CFG_LINE_MULTI_VALS_SEPARATOR */                             { ",",  ";",  NULL, NULL },
         { "\"", "'",  NULL, NULL }, /* CFG_QUOTE_PREFIX */          /* CFG_LINE_MULTI_VALS_LEFTOVER_SEPARATOR */    { NULL, NULL, NULL, NULL },
 { "\"", "'",  NULL, NULL }, /* CFG_QUOTE_POSTFIX */          /* CFG_LINE_QUOTE_PREFIX */                                             { NULL, NULL, NULL, NULL },
 { NULL, NULL, NULL, NULL }, /* CFG_FILE_STOP_PREFIX */          /* CFG_LINE_QUOTE_POSTFIX */                                    { NULL, NULL, NULL, NULL },
 { "#",  ";",  NULL, NULL }, /* CFG_FILE_COMMENT_PREFIX */          /* CFG_FILE_STOP_PREFIX */                                              { NULL, NULL, NULL, NULL },
 { "\\", NULL, NULL, NULL }, /* CFG_FILE_MULTI_LINE_POSTFIX */          /* CFG_FILE_COMMENT_PREFIX */                                   { "#",  ";",  NULL, NULL },
 { "=",  NULL, NULL, NULL }, /* CFG_FILE_OPTION_ARG_SEPARATOR */          /* CFG_FILE_MULTI_LINE_POSTFIX */                               { "\\", NULL, NULL, NULL },
 { " ",  ",",  ";",  NULL }  /* CFG_FILE_MULTI_VALS_SEPARATOR */          /* CFG_FILE_OPTION_ARG_SEPARATOR */                             { "=",  NULL, NULL, NULL },
 }; /* }}} */          /* CFG_FILE_MULTI_VALS_SEPARATOR */                             { ",",  ";",  " ",  NULL },
           /* CFG_FILE_MULTI_VALS_LEFTOVER_SEPARATOR */    { " ",  NULL, NULL, NULL },
           /* CFG_FILE_QUOTE_PREFIX */                                             { "\"", "'",  NULL, NULL },
           /* CFG_FILE_QUOTE_POSTFIX */                                    { "\"", "'",  NULL, NULL },
           }; /* }}} */
   
 /*  /*
  * Static functions for strdyn manipulation   * Static functions for strdyn manipulation
Line 66  strdyn_array_add(where, str)
Line 70  strdyn_array_add(where, str)
   
         *where = strdyn_add(*where, str);          *where = strdyn_add(*where, str);
   
         return *where == NULL ? 0 : 1;          return *where != NULL;
 } /* }}} */  } /* }}} */
   
         static int          static int
Line 77  strdyn_array_remove(where, str)
Line 81  strdyn_array_remove(where, str)
         if (*where != NULL)          if (*where != NULL)
                 *where = strdyn_remove_str_all(*where, str);                  *where = strdyn_remove_str_all(*where, str);
   
         return *where == NULL ? 0 : 1;          return *where != NULL;
 } /* }}} */  } /* }}} */
   
   
Line 130  cfg_get_context_flags(con)
Line 134  cfg_get_context_flags(con)
  * Functions for multi values separator manipulation.   * Functions for multi values separator manipulation.
  */   */
   
 #define cfg_normal_property_type(type) (type >= 0 && type < CFG_N_PROPS)  #define cfg_normal_property_type(type) ((type) >= 0 && (type) < CFG_N_PROPS)
 #define cfg_virtual_property_type(type) (type > CFG_N_PROPS)  #define cfg_virtual_property_type(type) ((type) > CFG_N_PROPS)
   
         void          void
 cfg_clear_property(con, type)  cfg_clear_property(con, type)
Line 142  cfg_clear_property(con, type)
Line 146  cfg_clear_property(con, type)
                 strdyn_array_clear(&(con->prop[type]));                  strdyn_array_clear(&(con->prop[type]));
         }          }
         else if (cfg_virtual_property_type(type)) {          else if (cfg_virtual_property_type(type)) {
                 /* TODO */                  switch (type) {
                           default: /* unknown special property; do nothing */
                                   break;
                           case CFG_QUOTE:
                                   cfg_clear_property(con, CFG_LINE_QUOTE);
                                   cfg_clear_property(con, CFG_FILE_QUOTE);
                                   break;
                           case CFG_LINE_QUOTE:
                                   cfg_clear_property(con, CFG_LINE_QUOTE_PREFIX);
                                   cfg_clear_property(con, CFG_LINE_QUOTE_POSTFIX);
                                   break;
                           case CFG_FILE_QUOTE:
                                   cfg_clear_property(con, CFG_FILE_QUOTE_PREFIX);
                                   cfg_clear_property(con, CFG_FILE_QUOTE_POSTFIX);
                                   break;
                           case CFG_QUOTE_PREFIX:
                                   cfg_clear_property(con, CFG_LINE_QUOTE_PREFIX);
                                   cfg_clear_property(con, CFG_FILE_QUOTE_PREFIX);
                                   break;
                           case CFG_QUOTE_POSTFIX:
                                   cfg_clear_property(con, CFG_LINE_QUOTE_POSTFIX);
                                   cfg_clear_property(con, CFG_FILE_QUOTE_POSTFIX);
                                   break;
                           case CFG_MULTI_VALS_SEPARATOR:
                                   cfg_clear_property(con, CFG_LINE_MULTI_VALS_SEPARATOR);
                                   cfg_clear_property(con, CFG_FILE_MULTI_VALS_SEPARATOR);
                                   break;
                           case CFG_LINE_MULTI_VALS_SEPARATOR:
                                   cfg_clear_property(con, CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR);
                                   cfg_clear_property(con, CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR);
                                   break;
                           case CFG_FILE_MULTI_VALS_SEPARATOR:
                                   cfg_clear_property(con, CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR);
                                   cfg_clear_property(con, CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR);
                                   break;
                           case CFG_NORMAL_MULTI_VALS_SEPARATOR:
                                   cfg_clear_property(con, CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR);
                                   cfg_clear_property(con, CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR);
                                   break;
                           case CFG_LEFTOVER_MULTI_VALS_SEPARATOR:
                                   cfg_clear_property(con, CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR);
                                   cfg_clear_property(con, CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR);
                                   break;
                           case CFG_OPTION_ARG_SEPARATOR:
                                   cfg_clear_property(con, CFG_LINE_OPTION_ARG_SEPARATOR);
                                   cfg_clear_property(con, CFG_FILE_OPTION_ARG_SEPARATOR);
                                   break;
                   }
         }          }
 } /* }}} */  } /* }}} */
   
Line 156  cfg_add_property(con, type, str)
Line 207  cfg_add_property(con, type, str)
                 return strdyn_array_add(&(con->prop[type]), str);                  return strdyn_array_add(&(con->prop[type]), str);
         }          }
         else if (cfg_virtual_property_type(type)) {          else if (cfg_virtual_property_type(type)) {
                 /* TODO */                  register int ret = 1;
                   switch (type) {
                           default: /* unknown special property; do nothing */
                                   ret = 0;
                                   break;
                           case CFG_QUOTE:
                                   ret &= cfg_add_property(con, CFG_LINE_QUOTE, str);
                                   ret &= cfg_add_property(con, CFG_FILE_QUOTE, str);
                                   break;
                           case CFG_LINE_QUOTE:
                                   ret &= cfg_add_property(con, CFG_LINE_QUOTE_PREFIX, str);
                                   ret &= cfg_add_property(con, CFG_LINE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_FILE_QUOTE:
                                   ret &= cfg_add_property(con, CFG_FILE_QUOTE_PREFIX, str);
                                   ret &= cfg_add_property(con, CFG_FILE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_QUOTE_PREFIX:
                                   ret &= cfg_add_property(con, CFG_LINE_QUOTE_PREFIX, str);
                                   ret &= cfg_add_property(con, CFG_FILE_QUOTE_PREFIX, str);
                                   break;
                           case CFG_QUOTE_POSTFIX:
                                   ret &= cfg_add_property(con, CFG_LINE_QUOTE_POSTFIX, str);
                                   ret &= cfg_add_property(con, CFG_FILE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_LINE_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_FILE_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_NORMAL_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_LEFTOVER_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_OPTION_ARG_SEPARATOR:
                                   ret &= cfg_add_property(con,
                                                   CFG_LINE_OPTION_ARG_SEPARATOR, str);
                                   ret &= cfg_add_property(con,
                                                   CFG_FILE_OPTION_ARG_SEPARATOR, str);
                                   break;
                   }
   
                   return ret;
         }          }
   
         return 0; /* failure */          return 0; /* failure */
Line 172  cfg_remove_property(con, type, str)
Line 286  cfg_remove_property(con, type, str)
                 return strdyn_array_remove(&(con->prop[type]), str);                  return strdyn_array_remove(&(con->prop[type]), str);
         }          }
         else if (cfg_virtual_property_type(type)) {          else if (cfg_virtual_property_type(type)) {
                 /* TODO */                  register int ret = 1;
                   switch (type) {
                           default: /* unknown special property; do nothing */
                                   ret = 0;
                                   break;
                           case CFG_QUOTE:
                                   ret &= cfg_remove_property(con, CFG_LINE_QUOTE, str);
                                   ret &= cfg_remove_property(con, CFG_FILE_QUOTE, str);
                                   break;
                           case CFG_LINE_QUOTE:
                                   ret &= cfg_remove_property(con, CFG_LINE_QUOTE_PREFIX, str);
                                   ret &= cfg_remove_property(con, CFG_LINE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_FILE_QUOTE:
                                   ret &= cfg_remove_property(con, CFG_FILE_QUOTE_PREFIX, str);
                                   ret &= cfg_remove_property(con, CFG_FILE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_QUOTE_PREFIX:
                                   ret &= cfg_remove_property(con, CFG_LINE_QUOTE_PREFIX, str);
                                   ret &= cfg_remove_property(con, CFG_FILE_QUOTE_PREFIX, str);
                                   break;
                           case CFG_QUOTE_POSTFIX:
                                   ret &= cfg_remove_property(con, CFG_LINE_QUOTE_POSTFIX, str);
                                   ret &= cfg_remove_property(con, CFG_FILE_QUOTE_POSTFIX, str);
                                   break;
                           case CFG_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_LINE_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_FILE_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_NORMAL_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_NORMAL_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_LEFTOVER_MULTI_VALS_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_LEFTOVER_MULTI_VALS_SEPARATOR, str);
                                   break;
                           case CFG_OPTION_ARG_SEPARATOR:
                                   ret &= cfg_remove_property(con,
                                                   CFG_LINE_OPTION_ARG_SEPARATOR, str);
                                   ret &= cfg_remove_property(con,
                                                   CFG_FILE_OPTION_ARG_SEPARATOR, str);
                                   break;
                   }
   
                   return ret;
         }          }
   
         return 0; /* failure */          return 0; /* failure */
 } /* }}} */  } /* }}} */
   
 #if 0  
         void  
 cfg_clear_multi_vals_separator(con)  
         const CFG_CONTEXT con;  
 {  
         cfg_clear_cmdline_multi_vals_separator(con);  
         cfg_clear_cfgfile_multi_vals_separator(con);  
 }  
   
         int  
 cfg_add_multi_vals_separator(con, str)  
         const CFG_CONTEXT con;  
         char              *str;  
 {  
         return cfg_add_cmdline_multi_vals_separator(con, str)  
                 && cfg_add_cfgfile_multi_vals_separator(con, str);  
 }  
   
         int  
 cfg_remove_multi_vals_separator(con, str)  
         const CFG_CONTEXT con;  
         char              *str;  
 {  
         return cfg_remove_cmdline_multi_vals_separator(con, str)  
                 && cfg_remove_cfgfile_multi_vals_separator(con, str);  
 }  
   
 /*  
  * Functions for option argument separator manipulation.  
  */  
   
         void  
 cfg_clear_option_arg_separator(con)  
         const CFG_CONTEXT con;  
 {  
         cfg_clear_cmdline_option_arg_separator(con);  
         cfg_clear_cfgfile_option_arg_separator(con);  
 }  
   
         int  
 cfg_add_option_arg_separator(con, str)  
         const CFG_CONTEXT con;  
         char              *str;  
 {  
         return cfg_add_cmdline_option_arg_separator(con, str)  
                 && cfg_add_cfgfile_option_arg_separator(con, str);  
 }  
   
         int  
 cfg_remove_option_arg_separator(con, str)  
         const CFG_CONTEXT con;  
         char              *str;  
 {  
         return cfg_remove_cmdline_option_arg_separator(con, str)  
                 && cfg_remove_cfgfile_option_arg_separator(con, str);  
 }  
   
 /*  
  * Functions for quotations string manipulation.  
  */  
   
         void  
 cfg_clear_quote_strings(con)  
         const CFG_CONTEXT con;  
 {  
         __cfg_clear_strdyn_array(&con->quote_prefix);  
         __cfg_clear_strdyn_array(&con->quote_postfix);  
 }  
   
         int  
 cfg_add_quote_strings(con, prefix, postfix)  
         const CFG_CONTEXT con;  
         char              *prefix;  
         char              *postfix;  
 {  
         return __cfg_add_strdyn_array(&con->quote_prefix, prefix)  
                 && __cfg_add_strdyn_array(&con->quote_postfix, postfix);  
 }  
   
         int  
 cfg_remove_quote_strings(con, prefix, postfix)  
         const CFG_CONTEXT con;  
         char              *prefix;  
         char              *postfix;  
 {  
         return __cfg_remove_strdyn_array(&con->quote_prefix, prefix)  
                 && __cfg_remove_strdyn_array(&con->quote_postfix, postfix);  
 }  
   
 #endif  
   
 /* Modeline for ViM {{{  /* Modeline for ViM {{{
  * vim:set ts=4:   * vim:set ts=4:
  * vim600:fdm=marker fdl=0 fdc=0:   * vim600:fdm=marker fdl=0 fdc=0:

Legend:
Removed from v.1.17  
changed lines
  Added in v.1.18

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