reunite pty.c with std.c - 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 082d8bb82bc478bdd0b1470232ba52976a0c035d
 (DIR) parent 6c6b65ea6ec775cc02c25b8cf69cce32971f9fe8
 (HTM) Author: Matthias-Christian Ott <ott@enolink.de>
       Date:   Mon, 21 Jul 2008 10:34:02 +0200
       
       reunite pty.c with std.c
       
       Diffstat:
         D pty.c                               |      42 -------------------------------
         M std.c                               |      40 +++++++++++++++++++++++++++++--
       
       2 files changed, 38 insertions(+), 44 deletions(-)
       ---
 (DIR) diff --git a/pty.c b/pty.c
       @@ -1,42 +0,0 @@
       -/* See LICENSE file for copyright and license details. */
       -#include <sys/types.h>
       -#include <sys/stat.h>
       -#include <fcntl.h>
       -#include <stdlib.h>
       -#if !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
       -#include <pty.h>
       -#endif
       -
       -extern int ptm, pts;
       -
       -void
       -getpty(void) {
       -        char *ptsdev;
       -
       -#if defined(_GNU_SOURCE)
       -        ptm = getpt();
       -#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
       -        ptm = posix_openpt(O_RDWR);
       -#else
       -        ptm = open("/dev/ptmx", O_RDWR);
       -        if(ptm == -1)
       -                if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1)
       -                        err(EXIT_FAILURE, "cannot open pty");
       -#endif
       -#if defined(_XOPEN_SOURCE)
       -        if(ptm != -1) {
       -                if(grantpt(ptm) == -1)
       -                        err(EXIT_FAILURE, "cannot grant access to pty");
       -                if(unlockpt(ptm) == -1)
       -                        err(EXIT_FAILURE, "cannot unlock pty");
       -                ptsdev = ptsname(ptm);
       -                if(!ptsdev)
       -                        err(EXIT_FAILURE, "slave pty name undefined");
       -                pts = open(ptsdev, O_RDWR);
       -                if(pts == -1)
       -                        err(EXIT_FAILURE, "cannot open slave pty");
       -        }
       -        else
       -                err(EXIT_FAILURE, "cannot open pty");
       -#endif
       -}
 (DIR) diff --git a/std.c b/std.c
       @@ -3,6 +3,10 @@
        #include <sys/wait.h>
        #include <ctype.h>
        #include <err.h>
       +#include <fcntl.h>
       +#if !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600)
       +#include <pty.h>
       +#endif
        #include <signal.h>
        #include <stdarg.h>
        #include <stdio.h>
       @@ -17,7 +21,7 @@
        static void buffer(char c);
        static void cmd(const char *cmdstr, ...);
        static int getch();
       -void getpty(void);
       +static void getpty(void);
        static void movea(int x, int y);
        static void mover(int x, int y);
        static void parseesc(void);
       @@ -41,7 +45,7 @@ typedef struct {
        static int cols = 80, lines = 25;
        static int cx = 0, cy = 0;
        static int c;
       -int ptm, pts;
       +static int ptm, pts;
        static _Bool bold, digit, qmark;
        static pid_t pid;
        static RingBuffer buf;
       @@ -208,6 +212,38 @@ scroll(int l) {
        }
        
        void
       +getpty(void) {
       +        char *ptsdev;
       +
       +#if defined(_GNU_SOURCE)
       +        ptm = getpt();
       +#elif _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
       +        ptm = posix_openpt(O_RDWR);
       +#else
       +        ptm = open("/dev/ptmx", O_RDWR);
       +        if(ptm == -1)
       +                if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1)
       +                        err(EXIT_FAILURE, "cannot open pty");
       +#endif
       +#if defined(_XOPEN_SOURCE)
       +        if(ptm != -1) {
       +                if(grantpt(ptm) == -1)
       +                        err(EXIT_FAILURE, "cannot grant access to pty");
       +                if(unlockpt(ptm) == -1)
       +                        err(EXIT_FAILURE, "cannot unlock pty");
       +                ptsdev = ptsname(ptm);
       +                if(!ptsdev)
       +                        err(EXIT_FAILURE, "slave pty name undefined");
       +                pts = open(ptsdev, O_RDWR);
       +                if(pts == -1)
       +                        err(EXIT_FAILURE, "cannot open slave pty");
       +        }
       +        else
       +                err(EXIT_FAILURE, "cannot open pty");
       +#endif
       +}
       +
       +void
        shell(void) {
                static char *shell = NULL;