tvi: suspending with ^z - neatvi - [fork] simple vi-type editor with UTF-8 support
 (HTM) git clone git://src.adamsgaard.dk/neatvi
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit 0b29f0c4ffb2ed6a6e2d41d74f07a9824ab26502
 (DIR) parent 51394946699311750dfd04dc04f756ccd6e05ab0
 (HTM) Author: Ali Gholami Rudi <ali@rudi.ir>
       Date:   Sat, 30 May 2015 21:17:14 +0430
       
       vi: suspending with ^z
       
       Diffstat:
         M term.c                              |       8 ++++++++
         M vi.c                                |       5 +++++
         M vi.h                                |       1 +
       
       3 files changed, 14 insertions(+), 0 deletions(-)
       ---
 (DIR) diff --git a/term.c b/term.c
       t@@ -1,4 +1,5 @@
        #include <poll.h>
       +#include <signal.h>
        #include <stdio.h>
        #include <stdlib.h>
        #include <string.h>
       t@@ -38,6 +39,13 @@ void term_done(void)
                tcsetattr(0, 0, &termios);
        }
        
       +void term_suspend(void)
       +{
       +        term_done();
       +        kill(getpid(), SIGSTOP);
       +        term_init();
       +}
       +
        void term_record(void)
        {
                if (!term_sbuf)
 (DIR) diff --git a/vi.c b/vi.c
       t@@ -975,6 +975,11 @@ static void vi(void)
                                                break;
                                        redraw = 1;
                                        break;
       +                        case TK_CTL('z'):
       +                                term_pos(xrows, 0);
       +                                term_suspend();
       +                                redraw = 1;
       +                                break;
                                case 'u':
                                        lbuf_undo(xb);
                                        redraw = 1;
 (DIR) diff --git a/vi.h b/vi.h
       t@@ -104,6 +104,7 @@ char *uc_lastline(char *s);
        
        void term_init(void);
        void term_done(void);
       +void term_suspend(void);
        void term_str(char *s);
        void term_chr(int ch);
        void term_pos(int r, int c);