]> git.sur5r.net Git - bacula/bacula/commitdiff
Try to eliminate multiple blank lines output in bat
authorKern Sibbald <kern@sibbald.com>
Wed, 19 Oct 2011 11:18:40 +0000 (13:18 +0200)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:50:06 +0000 (14:50 +0200)
bacula/src/qt-console/bcomm/dircomm.cpp
bacula/src/qt-console/bcomm/dircomm.h

index d2534d23080bf8e475cc8e1926550c1c65b2ae29..0514936718d4375f96747d113f876dc59474fd12 100644 (file)
@@ -1,7 +1,7 @@
 /*
    Bacula® - The Network Backup Solution
 
-   Copyright (C) 2007-2010 Free Software Foundation Europe e.V.
+   Copyright (C) 2007-2011 Free Software Foundation Europe e.V.
 
    The main author of Bacula is Kern Sibbald, with contributions from
    many others, a complete list can be found in the file AUTHORS.
@@ -47,6 +47,7 @@ DirComm::DirComm(Console *parent, int conn):  m_notifier(NULL),  m_api_set(false
    m_sock = NULL;
    m_at_prompt = false;
    m_at_main_prompt = false;
+   m_sent_blank = false;
    m_conn = conn;
    m_in_command = 0;
    m_in_select = false;
@@ -257,6 +258,19 @@ int DirComm::write(const char *msg)
    m_at_prompt = false;
    m_at_main_prompt = false;
    if (mainWin->m_commDebug) Pmsg2(000, "conn %i send: %s\n", m_conn, msg);
+   /*
+    * Ensure we send only one blank line.  Multiple blank lines are
+    *  simply discarded, it keeps the console output looking nicer.
+    */
+   if (m_sock->msglen == 0 || (m_sock->msglen == 1 && *m_sock->msg == '\n')) {
+      if (!m_sent_blank) {
+         m_sent_blank = true;
+         return m_sock->send();
+      } else {
+         return -1;             /* discard multiple blanks */
+      }
+   }
+   m_sent_blank = false;        /* clear flag */
    return m_sock->send();
 }
 
index fbc0da61e7c52cd0fccea39f66e08f457d82a077..31a5c82fd77b0418e41faf1aa93bbc747c88bc20 100644 (file)
@@ -78,6 +78,7 @@ private:
    BSOCK *m_sock;   
    bool m_at_prompt;
    bool m_at_main_prompt;
+   bool m_sent_blank;
    int  m_in_command;
    QSocketNotifier *m_notifier;
    bool m_api_set;