Sanitize status line msg - holymoly - A tor enabled gopher client written in CHICKEN scheme
 (HTM) git clone git://vernunftzentrum.de/holymoly.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e85ae8fc44a31816b3b4c1f56756e20cc205b399
 (DIR) parent 76540ec5fe88b93b47c89c9a96c31b3382a87a1c
 (HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
       Date:   Thu,  8 Mar 2018 22:11:47 +0100
       
       Sanitize status line msg
       
       I have found out the hard way that this is passed to snprintf twice so
       we need to escape any remaining tildes or this will get interpreted as
       control character...
       
       Diffstat:
         holymoly.scm                        |      19 +++++++++----------
       
       1 file changed, 9 insertions(+), 10 deletions(-)
       ---
 (DIR) diff --git a/holymoly.scm b/holymoly.scm
       @@ -1,4 +1,4 @@
       -(use tcp miscmacros srfi-13 srfi-4 posix ncurses matchable srfi-71)
       +(use irregex tcp miscmacros srfi-13 srfi-4 posix ncurses matchable srfi-71)
        
        (include "proxy.scm")
        (include "cursor.scm")
       @@ -115,15 +115,14 @@
                   (input-loop (cons input r))))))))
        
        (define (new-status . msg)
       -  (let-values (((l c) (getmaxyx (status-win))))
       -    (let ((m (apply sprintf msg)))
       -      (wclear (status-win))
       -      (mvwprintw (status-win) 0 0 (if (> (string-length m) c)
       -                                      (string-take m c)
       -                                      m))
       -      (mvwchgat (status-win) 0 0 -1 A_STANDOUT 0 #f)
       -      (wrefresh (status-win))
       -      (doupdate))))
       +  (let* ((m0 (apply sprintf msg))
       +         (m (irregex-replace/all "~" m0 "~~")))
       +     (let-values (((l c) (getmaxyx (status-win))))
       +         (wclear (status-win))
       +         (mvwprintw (status-win) 0 0 m)
       +         (mvwchgat (status-win) 0 0 -1 A_STANDOUT 0 #f)
       +         (wrefresh (status-win))
       +         (doupdate))))
        
        (define-record entry type title selector host port rest)
        (define-record-printer entry