OSDN Git Service

* syscalls.c (_isatty): Fix return value.
authorcorinna <corinna>
Fri, 27 Aug 2010 20:55:35 +0000 (20:55 +0000)
committercorinna <corinna>
Fri, 27 Aug 2010 20:55:35 +0000 (20:55 +0000)
libgloss/ChangeLog
libgloss/arm/syscalls.c

index 1c3e162..5227215 100644 (file)
@@ -1,3 +1,7 @@
+2010-08-27  Christophe Lyon  <christophe.lyon@st.com>
+
+       * syscalls.c (_isatty): Fix return value.
+
 2010-07-23  Naveen.H.S  <naveenh1@kpitcummins.com>
             Gina Verlekar <gina.verlekar@kpitcummins.com>
 
index 0e0a5da..15cc69f 100644 (file)
@@ -770,24 +770,30 @@ int
 _isatty (int fd)
 {
   struct fdent *pfd;
+  int tty;
 
   pfd = findslot (fd);
   if (pfd == NULL)
     {
       errno = EBADF;
-      return -1;
+      return 0;
     }
 
 #ifdef ARM_RDI_MONITOR
-  return checkerror (do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle));
+  tty = do_AngelSWI (AngelSWI_Reason_IsTTY, &pfd->handle);
 #else
   register r0 asm("r0");
   r0 = pfd->handle;
   asm ("swi %a2"
        : "=r" (r0)
        : "0"(r0), "i" (SWI_IsTTY));
-  return checkerror (r0);
+  tty = r0;
 #endif
+
+  if (tty == 1)
+    return 1;
+  errno = get_errno ();
+  return 0;
 }
 
 int