Anonymous avatar Anonymous committed 022a877

set the pty's winsize

Comments (0)

Files changed (1)

 static int start = 0, cur = 0, len = 0;
 static int mfd;
 static pid_t child;
+static struct winsize ws;
 
 static struct termios set, dfl;
 
 void print_usr(void)
 {
 	int cols, left_prompt_len, right_prompt_len = 0;
-	struct winsize ws;
 
 	if (ioctl(STDOUT, TIOCGWINSZ, &ws) < 0)
 		err(1, "failed ioctl");
 						cursor_org();
 						cursor_clr();
 						fflush(stdout);
+						if (ioctl(STDOUT, TIOCGWINSZ, &ws) < 0)
+							err(1, "failed ioctl");
+						if (ioctl(mfd, TIOCSWINSZ, &ws) < 0)
+							err(1, "failed ioctl");
 						kill(-child, SIGWINCH);
 						break;
 					case CTRL('u') : start = cur = len = 0;   break;
 	memcpy(&set, &dfl, sizeof(set));
 	set.c_lflag &= ~ECHO;
 
-	if ((child = forkpty(&mfd, NULL, &set, NULL)) == 0) { //child
+	if (ioctl(STDOUT, TIOCGWINSZ, &ws) < 0)
+		err(1, "failed ioctl");
+
+	if ((child = forkpty(&mfd, NULL, &set, &ws)) == 0) { //child
 		execvp(argv[i], &argv[i]);
 		err(1, "failed execvp %s", argv[i]);
 	}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.