< prev index next >
src/java.base/share/native/libjli/java.c
Print this page
@@ -1985,18 +1985,27 @@
/* Initialize the usage message with the usual preamble */
(*env)->CallStaticVoidMethod(env, cls, initHelp, jprogname);
CHECK_EXCEPTION_RETURN();
-
/* Assemble the other variant part of the usage */
for (i=1; i<knownVMsCount; i++) {
if (knownVMs[i].flag == VM_KNOWN) {
- NULL_CHECK(vm1 = (*env)->NewStringUTF(env, knownVMs[i].name));
+ char *longOpt = (char *)JLI_MemAlloc(JLI_StrLen(knownVMs[i].name) + 2);
+ *longOpt = '\0';
+ JLI_StrCat(longOpt, "-");
+ JLI_StrCat(longOpt, knownVMs[i].name);
+ NULL_CHECK(vm1 = (*env)->NewStringUTF(env, longOpt));
NULL_CHECK(vm2 = (*env)->NewStringUTF(env, knownVMs[i].name+1));
(*env)->CallStaticVoidMethod(env, cls, vmSelect, vm1, vm2);
CHECK_EXCEPTION_RETURN();
+ JLI_MemFree(longOpt);
+ /* Mention the short option as a synonym */
+ NULL_CHECK(vm1 = (*env)->NewStringUTF(env, knownVMs[i].name));
+ NULL_CHECK(vm2 = (*env)->NewStringUTF(env, knownVMs[i].name+1));
+ (*env)->CallStaticVoidMethod(env, cls, vmSynonym, vm1, vm2);
+ CHECK_EXCEPTION_RETURN();
}
}
for (i=1; i<knownVMsCount; i++) {
if (knownVMs[i].flag == VM_ALIASED_TO) {
NULL_CHECK(vm1 = (*env)->NewStringUTF(env, knownVMs[i].name));
@@ -2195,10 +2204,11 @@
static int
KnownVMIndex(const char* name)
{
int i;
if (JLI_StrCCmp(name, "-J") == 0) name += 2;
+ if (JLI_StrCCmp(name, "--") == 0) name += 1;
for (i = 0; i < knownVMsCount; i++) {
if (!JLI_StrCmp(name, knownVMs[i].name)) {
return i;
}
}
< prev index next >