minor improvements (fixes) to did-you-mean suggestions
authorKshitij Bansal <kshitij@cs.nyu.edu>
Fri, 16 May 2014 17:41:31 +0000 (13:41 -0400)
committerKshitij Bansal <kshitij@cs.nyu.edu>
Fri, 16 May 2014 17:41:31 +0000 (13:41 -0400)
src/options/base_options_handlers.h
src/options/options_template.cpp

index 3779f75c19e79651932b816cd94b5030c1aec6a1..15813a7745ea9d93f397a227e30af5697f98cb68 100644 (file)
@@ -100,7 +100,8 @@ inline InputLanguage stringToInputLanguage(std::string option, std::string optar
   Unreachable();
 }
 
-inline std::string suggestTags(char const* const* validTags, std::string inputTag)
+inline std::string suggestTags(char const* const* validTags, std::string inputTag,
+                               char const* const* additionalTags = NULL)
 {
   DidYouMean didYouMean;
 
@@ -108,6 +109,11 @@ inline std::string suggestTags(char const* const* validTags, std::string inputTa
   for(size_t i = 0; (opt = validTags[i]) != NULL; ++i) {
     didYouMean.addWord(validTags[i]);
   }
+  if(additionalTags != NULL) {
+    for(size_t i = 0; (opt = additionalTags[i]) != NULL; ++i) {
+      didYouMean.addWord(additionalTags[i]);
+    }
+  }
 
   return  didYouMean.getMatchAsString(inputTag);
 }
@@ -130,7 +136,7 @@ inline void addDebugTag(std::string option, std::string optarg, SmtEngine* smt)
        !Configuration::isTraceTag(optarg.c_str())) {
       throw OptionException(std::string("debug tag ") + optarg +
                             std::string(" not available.") +
-                            suggestTags(Configuration::getDebugTags(), optarg) );
+                            suggestTags(Configuration::getDebugTags(), optarg, Configuration::getTraceTags()) );
     }
   } else if(! Configuration::isDebugBuild()) {
     throw OptionException("debug tags not available in non-debug builds");
index a16e7f899835f1d8bc90696a1257244525845c77..39deb285a906bbdaecaa18a3f822ee59af7bd515 100644 (file)
@@ -570,7 +570,7 @@ std::string Options::suggestCommandLineOptions(const std::string& optionName) th
     didYouMean.addWord(std::string("--") + cmdlineOptions[i].name);
   }
 
-  return didYouMean.getMatchAsString(optionName);
+  return didYouMean.getMatchAsString(optionName.substr(0, optionName.find('=')));
 }
 
 static const char* smtOptions[] = {