summaryrefslogtreecommitdiff
path: root/usr/src/lib/libc/port/stdio/ftello.c
diff options
context:
space:
mode:
authorJerry Jelinek <jerry.jelinek@joyent.com>2020-03-27 11:29:00 +0000
committerJerry Jelinek <jerry.jelinek@joyent.com>2020-03-27 11:29:00 +0000
commit6dcfbbc68f881fbf5c20d25817a0221dfb135170 (patch)
tree40307666f6d7711499061d8c4be75029a6d851e9 /usr/src/lib/libc/port/stdio/ftello.c
parentb0624b90ec9a0c04cca626925beee3ae403457ce (diff)
parentcd62a92d4a964bfe61d35ba2301b69e65e22a509 (diff)
downloadillumos-joyent-6dcfbbc68f881fbf5c20d25817a0221dfb135170.tar.gz
[illumos-gate merge]
commit cd62a92d4a964bfe61d35ba2301b69e65e22a509 7092 Want support for stdio memory streams 12360 fwrite can loop forever on zero byte write 12392 ftello64 doesn't handle ungetc() correctly when unbuffered commit 1470234269f4edea4cbf270cb2475e4988b788d5 12359 Want a means to set the umem mtbf at runtine commit 0ac311bae7f6f50d9ba506b52bd8860f2d68d4ce 12358 Need mbrtowc variant that indicates consumed zero bytes commit d726994754c938f91b6fd7e96b5cab3829615c58 12357 getc/putc_unlocked need to set orientation
Diffstat (limited to 'usr/src/lib/libc/port/stdio/ftello.c')
-rw-r--r--usr/src/lib/libc/port/stdio/ftello.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/usr/src/lib/libc/port/stdio/ftello.c b/usr/src/lib/libc/port/stdio/ftello.c
index 2eafdf1fef..cd43037ab1 100644
--- a/usr/src/lib/libc/port/stdio/ftello.c
+++ b/usr/src/lib/libc/port/stdio/ftello.c
@@ -25,9 +25,7 @@
*/
/* Copyright (c) 1988 AT&T */
-/* All Rights Reserved */
-
-#pragma ident "%Z%%M% %I% %E% SMI"
+/* All Rights Reserved */
/*
* Return file offset.
@@ -60,30 +58,7 @@
off64_t
ftello64(FILE *iop)
{
- ptrdiff_t adjust;
- off64_t tres;
- rmutex_t *lk;
-
- FLOCKFILE(lk, iop);
- if (iop->_cnt < 0)
- iop->_cnt = 0;
- if (iop->_flag & _IOREAD)
- adjust = (ptrdiff_t)-iop->_cnt;
- else if (iop->_flag & (_IOWRT | _IORW)) {
- adjust = 0;
- if (((iop->_flag & (_IOWRT | _IONBF)) == _IOWRT) &&
- (iop->_base != 0))
- adjust = iop->_ptr - iop->_base;
- } else {
- errno = EBADF; /* file descriptor refers to no open file */
- FUNLOCKFILE(lk);
- return ((off64_t)EOF);
- }
- tres = lseek64(FILENO(iop), 0, SEEK_CUR);
- if (tres >= 0)
- tres += (off64_t)adjust;
- FUNLOCKFILE(lk);
- return (tres);
+ return (ftell_common(iop));
}
#endif /* _LP64 */