X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=std.c;h=a7b2f4a21b02c7693f47e801757364079469b22b;hb=5f287254715dd91f2c508a2a6b9853f0ef4ed785;hp=4c28ae4fcfef272c12843f1e0908936ee3695b88;hpb=5e680d7102ec540ca5859a87a82a2c8d93532518;p=st.git diff --git a/std.c b/std.c index 4c28ae4..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,13 +16,10 @@ 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); -void parse(void); +void parseesc(void); void scroll(int l); void shell(void); void sigchld(int n); @@ -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);