summaryrefslogtreecommitdiff
path: root/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java')
-rw-r--r--libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java34
1 files changed, 22 insertions, 12 deletions
diff --git a/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java b/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
index 4ce22cb3033..052b6c43d73 100644
--- a/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
+++ b/libjava/classpath/gnu/javax/security/auth/callback/ConsoleCallbackHandler.java
@@ -157,7 +157,8 @@ public class ConsoleCallbackHandler extends AbstractCallbackHandler
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
if (c.getPrompt() != null)
- out.println(c.getPrompt());
+ out.print(c.getPrompt());
+
String[] choices = null;
int[] values = null;
switch (c.getOptionType())
@@ -175,6 +176,7 @@ public class ConsoleCallbackHandler extends AbstractCallbackHandler
ConfirmationCallback.OK, ConfirmationCallback.CANCEL
};
break;
+
case ConfirmationCallback.YES_NO_CANCEL_OPTION:
out.print(messages.getString("callback.yesNoCancel"));
choices = new String[] {
@@ -191,19 +193,26 @@ public class ConsoleCallbackHandler extends AbstractCallbackHandler
ConfirmationCallback.NO, ConfirmationCallback.CANCEL
};
break;
+
case ConfirmationCallback.YES_NO_OPTION:
out.print(messages.getString("callback.yesNo"));
- choices = new String[] {
- messages.getString("callback.yes"),
- messages.getString("callback.no"),
- messages.getString("callback.shortYes"),
- messages.getString("callback.shortNo")
- };
- values = new int[] {
- ConfirmationCallback.YES, ConfirmationCallback.NO,
- ConfirmationCallback.YES, ConfirmationCallback.NO
- };
+ choices = new String[] { messages.getString("callback.yes"),
+ messages.getString("callback.no"),
+ messages.getString("callback.shortYes"),
+ messages.getString("callback.shortNo") };
+ values = new int[] { ConfirmationCallback.YES,
+ ConfirmationCallback.NO,
+ ConfirmationCallback.YES,
+ ConfirmationCallback.NO };
+ int defaultOption = c.getDefaultOption();
+ if (defaultOption > -1 && defaultOption < choices.length)
+ {
+ out.print("[");
+ out.print(choices[defaultOption]);
+ out.print("] ");
+ }
break;
+
case ConfirmationCallback.UNSPECIFIED_OPTION:
choices = c.getOptions();
values = new int[choices.length];
@@ -220,6 +229,7 @@ public class ConsoleCallbackHandler extends AbstractCallbackHandler
out.print(choices[c.getDefaultOption()]);
out.print("] ");
break;
+
default:
throw new IllegalArgumentException();
}
@@ -242,7 +252,7 @@ public class ConsoleCallbackHandler extends AbstractCallbackHandler
protected void handleLanguage(LanguageCallback c) throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- out.println(messages.getString("callback.language"));
+ out.print(messages.getString("callback.language"));
String reply = null;
reply = in.readLine();
if (reply == null)