Inline clipboard functions - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 428f01969aaf48ffa2983746c0a397bcc8946799
 (DIR) parent 65976c1a29f2945c3cfb6af74cd6440cf193021d
 (HTM) Author: Devin J. Pohly <djpohly@gmail.com>
       Date:   Tue, 17 Oct 2017 15:43:32 -0500
       
       Inline clipboard functions
       
       No need to keep a function that only calls another function in the same
       file.
       
       Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
       
       Diffstat:
         M win.h                               |       2 --
         M x.c                                 |      50 ++++++++++++-------------------
       
       2 files changed, 19 insertions(+), 33 deletions(-)
       ---
 (DIR) diff --git a/win.h b/win.h
       @@ -10,11 +10,9 @@ void drawregion(int, int, int, int);
        
        void xbell(void);
        void xclipcopy(void);
       -void xclippaste(void);
        void xhints(void);
        void xloadcols(void);
        int xsetcolorname(int, const char *);
        void xsettitle(char *);
        void xsetpointermotion(int);
       -void xselpaste(void);
        void xsetsel(char *, Time);
 (DIR) diff --git a/x.c b/x.c
       @@ -210,19 +210,33 @@ static char *opt_title = NULL;
        void
        clipcopy(const Arg *dummy)
        {
       -        xclipcopy();
       +        Atom clipboard;
       +
       +        if (sel.clipboard != NULL)
       +                free(sel.clipboard);
       +
       +        if (sel.primary != NULL) {
       +                sel.clipboard = xstrdup(sel.primary);
       +                clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
       +                XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
       +        }
        }
        
        void
        clippaste(const Arg *dummy)
        {
       -        xclippaste();
       +        Atom clipboard;
       +
       +        clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
       +        XConvertSelection(xw.dpy, clipboard, xsel.xtarget, clipboard,
       +                        xw.win, CurrentTime);
        }
        
        void
        selpaste(const Arg *dummy)
        {
       -        xselpaste();
       +        XConvertSelection(xw.dpy, XA_PRIMARY, xsel.xtarget, XA_PRIMARY,
       +                        xw.win, CurrentTime);
        }
        
        void
       @@ -519,35 +533,9 @@ selnotify(XEvent *e)
        }
        
        void
       -xselpaste(void)
       -{
       -        XConvertSelection(xw.dpy, XA_PRIMARY, xsel.xtarget, XA_PRIMARY,
       -                        xw.win, CurrentTime);
       -}
       -
       -void
        xclipcopy(void)
        {
       -        Atom clipboard;
       -
       -        if (sel.clipboard != NULL)
       -                free(sel.clipboard);
       -
       -        if (sel.primary != NULL) {
       -                sel.clipboard = xstrdup(sel.primary);
       -                clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
       -                XSetSelectionOwner(xw.dpy, clipboard, xw.win, CurrentTime);
       -        }
       -}
       -
       -void
       -xclippaste(void)
       -{
       -        Atom clipboard;
       -
       -        clipboard = XInternAtom(xw.dpy, "CLIPBOARD", 0);
       -        XConvertSelection(xw.dpy, clipboard, xsel.xtarget, clipboard,
       -                        xw.win, CurrentTime);
       +        clipcopy(NULL);
        }
        
        void
       @@ -634,7 +622,7 @@ brelease(XEvent *e)
                }
        
                if (e->xbutton.button == Button2) {
       -                xselpaste();
       +                selpaste(NULL);
                } else if (e->xbutton.button == Button1) {
                        if (sel.mode == SEL_READY) {
                                getbuttoninfo(e);