reunite pty.c with std.c
This commit is contained in:
		
							parent
							
								
									6c6b65ea6e
								
							
						
					
					
						commit
						082d8bb82b
					
				
							
								
								
									
										42
									
								
								pty.c
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								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 | ||||
| } | ||||
							
								
								
									
										40
									
								
								std.c
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								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; | ||||
| @ -207,6 +211,38 @@ scroll(int l) { | ||||
| 	cmd("seek(%d,%d)", cx, cy + 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; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Matthias-Christian Ott
						Matthias-Christian Ott