Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2010-08-27 15:55:36 +0400
committerCorinna Vinschen <corinna@vinschen.de>2010-08-27 15:55:36 +0400
commit95c929196bd915aa0435ea0ca61b43727abf8e93 (patch)
treedeb06cd0f677844ca96f108ab8b6e8077cd999b8 /libgloss/arm
parent1165007539a2db492adc4aded73e081edb99be1e (diff)
* syscalls.c (_isatty): Fix return value.
Diffstat (limited to 'libgloss/arm')
-rw-r--r--libgloss/arm/syscalls.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libgloss/arm/syscalls.c b/libgloss/arm/syscalls.c
index 0e0a5dae0..15cc69f61 100644
--- a/libgloss/arm/syscalls.c
+++ b/libgloss/arm/syscalls.c
@@ -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