OSDN Git Service

Upgrade to mksh 50c.
[android-x86/external-mksh.git] / src / funcs.c
index 77d9494..bb7971e 100644 (file)
@@ -1,5 +1,5 @@
 /*     $OpenBSD: c_ksh.c,v 1.34 2013/12/17 16:37:05 deraadt Exp $      */
-/*     $OpenBSD: c_sh.c,v 1.44 2013/09/04 15:49:18 millert Exp $       */
+/*     $OpenBSD: c_sh.c,v 1.45 2014/08/27 08:26:04 jmc Exp $   */
 /*     $OpenBSD: c_test.c,v 1.18 2009/03/01 20:11:06 otto Exp $        */
 /*     $OpenBSD: c_ulimit.c,v 1.19 2013/11/28 10:33:37 sobrado Exp $   */
 
@@ -38,7 +38,7 @@
 #endif
 #endif
 
-__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.256 2014/06/09 13:25:52 tg Exp $");
+__RCSID("$MirOS: src/bin/mksh/funcs.c,v 1.258 2014/09/03 19:55:51 tg Exp $");
 
 #if HAVE_KILLPG
 /*
@@ -3643,12 +3643,14 @@ c_cat(const char **wp)
                                break;
                        while (n) {
                                w = write(STDOUT_FILENO, cp, n);
+                               eno = errno;
+                               /* give the user a chance to ^C out */
+                               intrcheck();
                                if (w == -1) {
-                                       if (errno == EINTR)
+                                       if (eno == EINTR)
                                                /* interrupted, try again */
                                                continue;
                                        /* an error occured during writing */
-                                       eno = errno;
                                        bi_errorf("%s: %s", "<stdout>",
                                            cstrerror(eno));
                                        rv = 1;