[PATCH v2] virsh: Honor reedit opts printing to a function

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
---
 tools/virsh.c |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/tools/virsh.c b/tools/virsh.c
index 98305c0..11dc0e7 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, "\r\n%s", 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;
-- 
1.7.8.5

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]