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 ep/src/conf.c between version 1.18 and 1.19

version 1.18, 2002/04/09 21:16:45 version 1.19, 2002/04/11 00:04:27
Line 44  static CFG_CONTEXT process_context = NUL
Line 44  static CFG_CONTEXT process_context = NUL
  */   */
   
 static struct cfg_option global_options[] = {  static struct cfg_option global_options[] = {
           {"help", 'h', NULL, CFG_BOOLEAN + CFG_MULTI, (void *) &(global_cfg.help), 0},
         {"silent", 's', "silent", CFG_BOOLEAN, (void *) &(global_cfg.silent), 0},          {"silent", 's', "silent", CFG_BOOLEAN, (void *) &(global_cfg.silent), 0},
         {"verbose", 'v', "verbose", CFG_BOOLEAN + CFG_MULTI, (void *) &(global_cfg.verbose), 0},          {"verbose", 'v', "verbose", CFG_BOOLEAN + CFG_MULTI, (void *) &(global_cfg.verbose), 0},
         {NULL, 'f', NULL, CFG_STRING + CFG_MULTI, (void *) &(global_cfg.config_file), 0},          {NULL, 'f', NULL, CFG_STRING + CFG_MULTI, (void *) &(global_cfg.config_file), 0},
Line 71  static struct cfg_option process_options
Line 72  static struct cfg_option process_options
  * Static function declarations   * Static function declarations
  */   */
   
   static void print_cfg_error(const CFG_CONTEXT con, int errorcode);
 static char *get_user_config_filename(void);  static char *get_user_config_filename(void);
 static void clear_global_cfg(void);  static void clear_global_cfg(void);
 static void clear_process_cfg(void);  static void clear_process_cfg(void);
Line 159  conf_parse_all(argc, argv)
Line 161  conf_parse_all(argc, argv)
         ret = conf_cmdline_parse(argc - 1, argv + 1, &global, &processes);          ret = conf_cmdline_parse(argc - 1, argv + 1, &global, &processes);
   
         if (ret != CFG_OK) {          if (ret != CFG_OK) {
                 /* TODO: better error informations */                  /* TODO: better error information */
                 msg_error_print("command line parsing error %d\n", ret);                  /* print_cfg_error(con, ret); */
                   if (ret == CFG_ERR_NOMEM)
                           msg_error_print("not enough memory for command line parsing\n");
                 /* XXX: free structures */                  /* XXX: free structures */
                 free_global(&global);                  free_global(&global);
                 free_processes(&processes);                  free_processes(&processes);
                 return NULL;                  return NULL;
         }          }
   
           if (global->help) {
                   msg_usage_print();
                   free_global(&global);
                   free_processes(&processes);
                   return NULL;
           }
   
         for (start_idx_size = 0; global->config_file != NULL          for (start_idx_size = 0; global->config_file != NULL
                         && global->config_file[start_idx_size] != NULL;                          && global->config_file[start_idx_size] != NULL;
                         start_idx_size++)                          start_idx_size++)
Line 219  conf_parse_all(argc, argv)
Line 230  conf_parse_all(argc, argv)
   
                 if (ret != CFG_OK                  if (ret != CFG_OK
                                 && (i >= 2 || (i < 2 && ret != CFG_ERR_FILE_NOT_FOUND))) {                                  && (i >= 2 || (i < 2 && ret != CFG_ERR_FILE_NOT_FOUND))) {
                         msg_error_print("config file '%s' parsing error %d\n",                          /* TODO: better error information */
                                         filename, ret);                          /* print_cfg_error(con, ret); */
                           if (ret == CFG_ERR_NOMEM)
                                   msg_error_print("not enough memory for config file parsing\n");
                           if (ret == CFG_ERR_FILE_NOT_FOUND)
                                   msg_error_print("file '%s' not found\n", filename);
                           /* msg_error_print("config file '%s' parsing error %d\n",
                              filename, ret); */
                         /* XXX: free structures */                          /* XXX: free structures */
                         if (i == 1)                          if (i == 1)
                                 free(filename);                                  free(filename);
Line 311  conf_parse_all(argc, argv)
Line 328  conf_parse_all(argc, argv)
   
         if (add_processes_to_proctable(&ptbl, processes,          if (add_processes_to_proctable(&ptbl, processes,
                                 start_idx_size, start_idx) < 0) {                                  start_idx_size, start_idx) < 0) {
                   msg_error_print("not enough memory\n");
                 /* XXX: free structures */                  /* XXX: free structures */
                 proctable_destroy(&ptbl);                  proctable_destroy(&ptbl);
                 free(start_idx);                  free(start_idx);
Line 406  conf_cfgfile_parse(filename, global, pro
Line 424  conf_cfgfile_parse(filename, global, pro
         if (! add_global_cfg_to_global(global))          if (! add_global_cfg_to_global(global))
                 return CFG_ERR_NOMEM;                  return CFG_ERR_NOMEM;
   
           if (ret != CFG_OK && ret != CFG_ERR_NOMEM && ret != CFG_ERR_FILE_NOT_FOUND)
                   print_cfg_error(cur_context, ret);
   
         return ret;          return ret;
 }  }
   
Line 444  conf_cmdline_parse(argc, argv, global, p
Line 465  conf_cmdline_parse(argc, argv, global, p
                 if (ret < 0 && ret != CFG_ERR_STOP_STR_FOUND) {                  if (ret < 0 && ret != CFG_ERR_STOP_STR_FOUND) {
                         if (! first_loop) {                          if (! first_loop) {
                                 /* TODO: better specification about error on command line */                                  /* TODO: better specification about error on command line */
                                 msg_error_print("error on command line (error %d at %s)\n",                                  /* print_cfg_error(cur_context, ret); */
                                                 ret, argv[index + cfg_get_cur_idx(cur_context)]);                                  /* msg_error_print("error on command line (error %d at %s)\n",
                                      ret, argv[index + cfg_get_cur_idx(cur_context)]); */
   
                                 break;                                  break;
                         }                          }
Line 458  conf_cmdline_parse(argc, argv, global, p
Line 480  conf_cmdline_parse(argc, argv, global, p
                         if (cfg_get_cur_idx(cur_context) < 1) {                          if (cfg_get_cur_idx(cur_context) < 1) {
                                 if (! first_loop) {                                  if (! first_loop) {
                                         msg_error_print("misplaced process separator '--'"                                          msg_error_print("misplaced process separator '--'"
                                                         " on command line");                                                          " on command line\n");
                                         break;                                          break;
                                 }                                  }
                         }                          }
Line 489  conf_cmdline_parse(argc, argv, global, p
Line 511  conf_cmdline_parse(argc, argv, global, p
         if (! add_global_cfg_to_global(global))          if (! add_global_cfg_to_global(global))
                 return CFG_ERR_NOMEM;                  return CFG_ERR_NOMEM;
   
           if (ret != CFG_OK && ret != CFG_ERR_NOMEM)
                   print_cfg_error(cur_context, ret);
   
         return ret;          return ret;
 }  }
   
Line 496  conf_cmdline_parse(argc, argv, global, p
Line 521  conf_cmdline_parse(argc, argv, global, p
  * Static function definitions   * Static function definitions
  */   */
   
           static void
   print_cfg_error(con, errorcode)
           const CFG_CONTEXT con;
           int errorcode;
   {
           register char *s;
   
           if ((s = cfg_get_error_str(con, errorcode)) == NULL) {
                   msg_error_print("not enough memory for error message creating\n");
                   return;
           }
   
           msg_error_print("%s\n", s);
           free(s);
   
           return;
   }
   
         static char *          static char *
 get_user_config_filename(void)  get_user_config_filename(void)
 {  {
Line 778  add_processes_to_proctable(p_ptbl, proce
Line 821  add_processes_to_proctable(p_ptbl, proce
                 }                  }
   
                 new_ptbl[i]->pid  = 0;                  new_ptbl[i]->pid  = 0;
                   new_ptbl[i]->nice = processes[i]->nice;
                 new_ptbl[i]->name = strdyn_safe_duplicate(processes[i]->name);                  new_ptbl[i]->name = strdyn_safe_duplicate(processes[i]->name);
                 new_ptbl[i]->argv = strdyn_safe_duplicate(processes[i]->argv);                  new_ptbl[i]->argv = strdyn_safe_duplicate(processes[i]->argv);
   
Line 803  add_processes_to_proctable(p_ptbl, proce
Line 847  add_processes_to_proctable(p_ptbl, proce
   
                                 if (ar == NULL) {                                  if (ar == NULL) {
                                         msg_error_print("not enough memory"                                          msg_error_print("not enough memory"
                                                         " for link argument exploding");                                                          " for link argument exploding\n");
                                         proctable_destroy(&new_ptbl);                                          proctable_destroy(&new_ptbl);
                                         return -1;                                          return -1;
                                 }                                  }

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

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