Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Correctly sort config entries for --help.
[simgrid.git] / src / xbt / config.cpp
index 539ba59..02512d8 100644 (file)
@@ -1,9 +1,9 @@
-/* Copyright (c) 2004-2014,2016. The SimGrid Team. All rights reserved.     */
+/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved.     */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
 
-#include <stdio.h>
+#include <cstdio>
 
 #include <algorithm>
 #include <cerrno>
@@ -39,7 +39,7 @@ extern "C" {
 namespace simgrid {
 namespace config {
 
-missing_key_error::~missing_key_error() {}
+missing_key_error::~missing_key_error() = default;
 
 class Config;
 
@@ -392,7 +392,7 @@ void Config::showAliases()
 
   xbt_dict_foreach(this->aliases, dict_cursor, name, dictel)
     names.push_back(name);
-  std::sort(names.begin(), names.end());
+  std::sort(begin(names), end(names), [](char* a, char* b) { return strcmp(a, b) < 0; });
 
   for (auto name : names)
     printf("   %s: %s\n", name, (*this)[name].getDescription().c_str());
@@ -408,7 +408,7 @@ void Config::help()
 
   xbt_dict_foreach(this->options, dict_cursor, name, variable)
     names.push_back(name);
-  std::sort(names.begin(), names.end());
+  std::sort(begin(names), end(names), [](char* a, char* b) { return strcmp(a, b) < 0; });
 
   for (auto name : names) {
     variable = (simgrid::config::ConfigurationElement*) xbt_dict_get(this->options, name);
@@ -536,7 +536,7 @@ void xbt_cfg_help()    { simgrid_config->help(); }
  */
 void xbt_cfg_set_parse(const char *options)
 {
-  if (!options || !strlen(options)) {   /* nothing to do */
+  if (not options || not strlen(options)) { /* nothing to do */
     return;
   }
   char *optionlist_cpy = xbt_strdup(options);
@@ -544,7 +544,7 @@ void xbt_cfg_set_parse(const char *options)
   XBT_DEBUG("List to parse and set:'%s'", options);
   char *option = optionlist_cpy;
   while (1) {                   /* breaks in the code */
-    if (!option)
+    if (not option)
       break;
     char *name = option;
     int len = strlen(name);
@@ -573,7 +573,7 @@ void xbt_cfg_set_parse(const char *options)
 
     if (name[0] == ' ' || name[0] == '\n' || name[0] == '\t')
       continue;
-    if (!strlen(name))
+    if (not strlen(name))
       break;
 
     char *val = strchr(name, ':');
@@ -904,7 +904,7 @@ XBT_TEST_UNIT("c++flags", test_config_cxx_flags, "C++ flags")
   xbt_test_assert(string_flag == "bar", "Check string flag");
   xbt_test_assert(double_flag == 8.0, "Check double flag");
   xbt_test_assert(bool_flag1, "Check bool1 flag");
-  xbt_test_assert(!bool_flag2, "Check bool2 flag");
+  xbt_test_assert(not bool_flag2, "Check bool2 flag");
 
   xbt_cfg_free(&simgrid_config);
   simgrid_config = temp;