aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorMichal Privoznik <mprivozn@redhat.com>2012-06-13 11:11:27 +0200
committerMichal Privoznik <mprivozn@redhat.com>2012-06-14 15:04:28 +0200
commitb00469b61522db5cae4debc9041fb1fc6b6746f8 (patch)
tree19ba5e730a4e9ce84bda9dc0fb60b59d752bd4ed /tools
parentqemu: Fix off-by-one error while unescaping monitor strings (diff)
downloadlibvirt-b00469b61522db5cae4debc9041fb1fc6b6746f8.tar.gz
libvirt-b00469b61522db5cae4debc9041fb1fc6b6746f8.tar.bz2
libvirt-b00469b61522db5cae4debc9041fb1fc6b6746f8.zip
virsh: Honor reedit opts printing to a function
When printing reedit options we make stdin raw. However, this results in stdout being raw as well. Therefore we need to return carriage when doing new line. Unfortunately, '\r' cannot be part of internationalized messages hence we must move them to formatting string which then in turn become huge and disarranged. To solve this, a new function is introduced which takes variable string arguments and prepend each with "\r\n" just before printing.
Diffstat (limited to 'tools')
-rw-r--r--tools/virsh.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/tools/virsh.c b/tools/virsh.c
index 18625009c..6077d84b3 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -655,6 +655,19 @@ vshReconnect(vshControl *ctl)
ctl->useSnapshotOld = false;
}
+static void
+vshPrintRaw(vshControl *ctl, ...)
+{
+ va_list ap;
+ char *key;
+
+ va_start(ap, ctl);
+ while ((key = va_arg(ap, char *)) != NULL) {
+ vshPrint(ctl, "%s\r\n", key);
+ }
+ va_end(ap);
+}
+
/**
* vshAskReedit:
* @msg: Question to ask user
@@ -690,10 +703,13 @@ vshAskReedit(vshControl *ctl, const char *msg)
c = c_tolower(getchar());
if (c == '?') {
- vshPrint(ctl, "\r\n%s", _("y - yes, start editor again\n"
- "n - no, throw away my changes\n"
- "f - force, try to redefine again\n"
- "? - print this help\n"));
+ vshPrintRaw(ctl,
+ "",
+ _("y - yes, start editor again"),
+ _("n - no, throw away my changes"),
+ _("f - force, try to redefine again"),
+ _("? - print this help"),
+ NULL);
continue;
} else if (c == 'y' || c == 'n' || c == 'f') {
break;