Mercurial > hg > truffle
diff src/share/vm/runtime/arguments.cpp @ 11070:6e3634222155
8017611: Auto corrector for mistyped vm options
Summary: The auto corrector for mistyped vm options fuzzy-matches existing flags based on string similarity (Dice's coefficient).
Reviewed-by: kvn, dsamersoff, hseigel, johnc
author | tamao |
---|---|
date | Fri, 28 Jun 2013 20:18:04 -0700 |
parents | c92b74c62d97 |
children | 8b789ce47503 |
line wrap: on
line diff
--- a/src/share/vm/runtime/arguments.cpp Mon Jul 01 09:30:23 2013 -0700 +++ b/src/share/vm/runtime/arguments.cpp Fri Jun 28 20:18:04 2013 -0700 @@ -849,7 +849,7 @@ arg_len = equal_sign - argname; } - Flag* found_flag = Flag::find_flag((char*)argname, arg_len, true); + Flag* found_flag = Flag::find_flag((const char*)argname, arg_len, true); if (found_flag != NULL) { char locked_message_buf[BUFLEN]; found_flag->get_locked_message(locked_message_buf, BUFLEN); @@ -870,6 +870,14 @@ } else { jio_fprintf(defaultStream::error_stream(), "Unrecognized VM option '%s'\n", argname); + Flag* fuzzy_matched = Flag::fuzzy_match((const char*)argname, arg_len, true); + if (fuzzy_matched != NULL) { + jio_fprintf(defaultStream::error_stream(), + "Did you mean '%s%s%s'?\n", + (fuzzy_matched->is_bool()) ? "(+/-)" : "", + fuzzy_matched->name, + (fuzzy_matched->is_bool()) ? "" : "=<value>"); + } } // allow for commandline "commenting out" options like -XX:#+Verbose