X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=std.c;h=a7b2f4a21b02c7693f47e801757364079469b22b;hb=09fe1e22ce65b2478b47fc2cf1bbe9a9eb966212;hp=fcfead924b3f87d122c68dd5279465ec5101f887;hpb=0dce422d31d1178f93ecaf1dcf4e2c0bccb3c076;p=st.git diff --git a/std.c b/std.c index fcfead9..a7b2f4a 100644 --- a/std.c +++ b/std.c @@ -1,14 +1,8 @@ -#include -#include -#include +/* See LICENSE file for copyright and license details. */ +#include "util.h" #include #include #include -#include -#include -#if !(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) -#include -#endif #include #include #include @@ -22,9 +16,6 @@ void buffer(char c); void cmd(const char *cmdstr, ...); -void *emallocz(unsigned int size); -void eprint(const char *errstr, ...); -void eprintn(const char *errstr, ...); void getpty(void); void movea(int x, int y); void mover(int x, int y); @@ -70,68 +61,6 @@ cmd(const char *cmdstr, ...) { va_end(ap); } -void * -emallocz(unsigned int size) { - void *res = calloc(1, size); - - if(!res) - eprint("fatal: could not malloc() %u bytes\n", size); - return res; -} - -void -eprint(const char *errstr, ...) { - va_list ap; - - va_start(ap, errstr); - vfprintf(stderr, errstr, ap); - va_end(ap); - exit(EXIT_FAILURE); -} - -void -eprintn(const char *errstr, ...) { - va_list ap; - - va_start(ap, errstr); - vfprintf(stderr, errstr, ap); - va_end(ap); - fprintf(stderr, ": %s\n", strerror(errno)); - exit(EXIT_FAILURE); -} - -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) - eprintn("error, cannot open pty"); -#endif -#if defined(_XOPEN_SOURCE) - if(ptm != -1) { - if(grantpt(ptm) == -1) - eprintn("error, cannot grant access to pty"); - if(unlockpt(ptm) == -1) - eprintn("error, cannot unlock pty"); - ptsdev = ptsname(ptm); - if(!ptsdev) - eprintn("error, slave pty name undefined"); - pts = open(ptsdev, O_RDWR); - if(pts == -1) - eprintn("error, cannot open slave pty"); - } - else - eprintn("error, cannot open pty"); -#endif -} - void movea(int x, int y) { x = MAX(x, cols);