Commits

Evan Gates  committed 88e751d

add set pty size stuff

  • Participants
  • Parent commits fde8ae9
  • Branches utf8

Comments (0)

Files changed (1)

 int wcur = 0, wlen = 0;
 int mfd;
 pid_t child;
+struct winsize ws;
 
 int bad_char = 0;
 
 void print_usr(void)
 {
 	int cols, i, sb, 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;
 					default :
 	if (signal(SIGCHLD, sigchld) == SIG_ERR)
 		err(1, "failed to install SIGCHLD handler");
 
-	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]);
 	}