From 6a48f60e39cd1574ba6869242dfaf824dcbd37a8 Mon Sep 17 00:00:00 2001 From: Vincent Torri Date: Sat, 24 Jan 2009 22:29:19 +0000 Subject: [PATCH] * src/lib/evil_fcntl.c: fix fcntl() SVN revision: 38766 --- legacy/evil/ChangeLog | 5 +++++ legacy/evil/src/lib/evil_fcntl.c | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/legacy/evil/ChangeLog b/legacy/evil/ChangeLog index 2aa474f871..f21ebf9c6b 100644 --- a/legacy/evil/ChangeLog +++ b/legacy/evil/ChangeLog @@ -1,3 +1,8 @@ +2009-01-24 Vincent Torri + + * src/lib/evil_fcntl.c: + fix fcntl() + 2009-01-19 Vincent Torri * src/bin/Makefile.am: diff --git a/legacy/evil/src/lib/evil_fcntl.c b/legacy/evil/src/lib/evil_fcntl.c index 603fd1aaab..1863e0416d 100644 --- a/legacy/evil/src/lib/evil_fcntl.c +++ b/legacy/evil/src/lib/evil_fcntl.c @@ -56,34 +56,37 @@ int fcntl(int fd, int cmd, ...) #if ! ( defined(__CEGCC__) || defined(__MINGW32CE__) ) else if ((cmd == F_SETLK) || (cmd == F_SETLKW)) { - struct flock fl; + struct flock *fl; off_t length = 0; long pos; - fl = va_arg(va, struct flock); + fl = va_arg(va, struct flock *); - if (fl.l_len == 0) + if (fl->l_len == 0) { length = _lseek(fd, 0L, SEEK_END); if (length != -1L) res = 0; } - fl.l_len = length - fl.l_start - 1; + fl->l_len = length - fl->l_start - 1; - pos = _lseek(fd, fl.l_start, fl.l_whence); + pos = _lseek(fd, fl->l_start, fl->l_whence); if (pos != -1L) res = 0; - if ((fl.l_type == F_RDLCK) || (fl.l_type == F_WRLCK)) + printf ("Evil 1 %d %d %d\n", fl->l_type, F_RDLCK, F_WRLCK); + if ((fl->l_type == F_RDLCK) || (fl->l_type == F_WRLCK)) { + printf ("Evil 2\n"); if (cmd == F_SETLK) - res = _locking(fd, _LK_NBLCK, fl.l_len); /* if cannot be locked, we return immediatly */ + res = _locking(fd, _LK_NBLCK, fl->l_len); /* if cannot be locked, we return immediatly */ else /* F_SETLKW */ - res = _locking(fd, _LK_LOCK, fl.l_len); /* otherwise, we try several times */ + res = _locking(fd, _LK_LOCK, fl->l_len); /* otherwise, we try several times */ } - if (fl.l_type == F_UNLCK) - res = _locking(fd, _LK_UNLCK, fl.l_len); + printf ("Evil 3\n"); + if (fl->l_type == F_UNLCK) + res = _locking(fd, _LK_UNLCK, fl->l_len); } #endif /* __CEGCC__ || __MINGW32CE__ */