diff options
| -rw-r--r-- | pty.c | 12 | ||||
| -rw-r--r-- | st.c | 14 | ||||
| -rw-r--r-- | std.c | 25 | ||||
| -rw-r--r-- | util.c | 23 | ||||
| -rw-r--r-- | util.h | 2 | 
5 files changed, 31 insertions, 45 deletions
| @@ -22,22 +22,22 @@ getpty(void) {  	ptm = open("/dev/ptmx", O_RDWR);  	if(ptm == -1)  		if(openpty(&ptm, &pts, NULL, NULL, NULL) == -1) -			eprintn("error, cannot open pty"); +			err(EXIT_FAILURE, "cannot open pty");  #endif  #if defined(_XOPEN_SOURCE)  	if(ptm != -1) {  		if(grantpt(ptm) == -1) -			eprintn("error, cannot grant access to pty"); +			err(EXIT_FAILURE, "cannot grant access to pty");  		if(unlockpt(ptm) == -1) -			eprintn("error, cannot unlock pty"); +			err(EXIT_FAILURE, "cannot unlock pty");  		ptsdev = ptsname(ptm);  		if(!ptsdev) -			eprintn("error, slave pty name undefined"); +			err(EXIT_FAILURE, "slave pty name undefined");  		pts = open(ptsdev, O_RDWR);  		if(pts == -1) -			eprintn("error, cannot open slave pty"); +			err(EXIT_FAILURE, "cannot open slave pty");  	}  	else -		eprintn("error, cannot open pty"); +		err(EXIT_FAILURE, "cannot open pty");  #endif  } @@ -1,13 +1,17 @@  /* See LICENSE file for copyright and license details. */ -#include "util.h"  #include <stdio.h> +#include <stdlib.h>  #include <string.h>  int  main(int argc, char *argv[]) { -	if(argc == 2 && !strcmp("-v", argv[1])) -		eprint("st-"VERSION", © 2007-2008 st engineers, see LICENSE for details\n"); -	else if(argc != 1) -		eprint("usage: st [-v]\n"); +	if(argc == 2 && !strcmp("-v", argv[1])) { +		fprintf(stderr, "st-"VERSION", © 2007-2008 st engineers, see LICENSE for details\n"); +		exit(EXIT_SUCCESS); +	} +	else if(argc != 1) { +		fprintf(stderr, "usage: st [-v]\n"); +		exit(EXIT_FAILURE); +	}  	return 0;  } @@ -3,6 +3,7 @@  #include <sys/types.h>  #include <sys/wait.h>  #include <ctype.h> +#include <err.h>  #include <signal.h>  #include <stdarg.h>  #include <stdio.h> @@ -73,7 +74,7 @@ getch() {  	if(rbuf.i++ >= rbuf.n) {  		rbuf.n = read(ptm, rbuf.data, LENGTH(rbuf.data));  		if(rbuf.n == -1) -			eprintn("error, cannot read from slave pty"); +			err(EXIT_FAILURE, "cannot read from slave pty");  		rbuf.i = 0;  	}  	return rbuf.data[rbuf.i]; @@ -113,7 +114,7 @@ parseesc(void) {  				qmark = 1;  			else if(c == ';') {  				if(!digit) -					eprint("syntax error\n"); +					errx(EXIT_FAILURE, "syntax error");  				digit = 0;  				j++;  			} @@ -216,7 +217,7 @@ shell(void) {  	pid = fork();  	switch(pid) {  	case -1: -		eprint("error, cannot fork\n"); +		err(EXIT_FAILURE, "cannot fork");  	case 0:  		setsid();  		dup2(pts, STDIN_FILENO); @@ -237,7 +238,7 @@ sigchld(int n) {  	int ret;  	if(waitpid(pid, &ret, 0) == -1) -		eprintn("error, waiting for child failed"); +		err(EXIT_FAILURE, "waiting for child failed");  	if(WIFEXITED(ret))  		exit(WEXITSTATUS(ret));  	else @@ -257,7 +258,7 @@ unbuffer(void) {  void  ungetch(int c) {  	if(rbuf.i + 1 >= rbuf.n) -		eprint("error, read buffer full\n"); +		errx(EXIT_FAILURE, "read buffer full");  	rbuf.data[rbuf.i++] = c;  } @@ -266,10 +267,14 @@ main(int argc, char *argv[]) {  	fd_set rfds;  	int r; -	if(argc == 2 && !strcmp("-v", argv[1])) -		eprint("std-"VERSION", © 2008 Matthias-Christian Ott\n"); -	else if(argc == 1) -		eprint("usage: st [-v]\n"); +	if(argc == 2 && !strcmp("-v", argv[1])) { +		fprintf(stderr, "std-"VERSION", © 2008 Matthias-Christian Ott\n"); +		exit(EXIT_SUCCESS); +	} +	else if(argc == 1) { +		fprintf(stderr, "usage: st [-v]\n"); +		exit(EXIT_FAILURE); +	}  	getpty();  	shell();  	FD_ZERO(&rfds); @@ -278,7 +283,7 @@ main(int argc, char *argv[]) {  	for(;;) {  		r = select(ptm + 1, &rfds, NULL, NULL, NULL);  		if(r == -1) -			eprintn("error, cannot select"); +			err(EXIT_FAILURE, "cannot select");  		if(FD_ISSET(ptm, &rfds)) {  			do {  				c = getch(); @@ -11,27 +11,6 @@ emallocz(unsigned int size) {  	void *res = calloc(1, size);  	if(!res) -		eprint("fatal: could not malloc() %u bytes\n", size); +		err(EXIT_FAILURE, "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); -} @@ -1,5 +1,3 @@  /* See LICENSE file for copyright and license details. */  void *emallocz(unsigned int size); -void eprint(const char *errstr, ...); -void eprintn(const char *errstr, ...); | 
