CVS update: php3
| From: | sas | Date: | Thu, 04 Feb 1999 18:28:04 +0000 |
| Subject: | CVS update: php3 | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-3894@lists.php.net to get a copy of this message | ||
Date: Thursday February 4, 1999 @ 13:28
Author: sas
Update of /repository/php3
In directory asf:/u/temp/cvs-serv21686
Modified Files:
compat.c compat.h
Log Message:
Portability clean ups
Index: php3/compat.c
diff -c php3/compat.c:1.1 php3/compat.c:1.2
*** php3/compat.c:1.1 Sun Jan 31 09:47:35 1999
--- php3/compat.c Thu Feb 4 13:28:04 1999
***************
*** 1,3 ****
--- 1,35 ----
+ /*
+ +----------------------------------------------------------------------+
+ | PHP HTML Embedded Scripting Language Version 3.0 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-1999 PHP Development Team (See Credits file) |
+ +----------------------------------------------------------------------+
+ | This program is free software; you can redistribute it and/or modify |
+ | it under the terms of one of the following licenses: |
+ | |
+ | A) the GNU General Public License as published by the Free Software |
+ | Foundation; either version 2 of the License, or (at your option) |
+ | any later version. |
+ | |
+ | B) the PHP License as published by the PHP Development Team and |
+ | included in the distribution in the file: LICENSE |
+ | |
+ | This program is distributed in the hope that it will be useful, |
+ | but WITHOUT ANY WARRANTY; without even the implied warranty of |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
+ | GNU General Public License for more details. |
+ | |
+ | You should have received a copy of both licenses referred to here. |
+ | If you did not, or have any questions about PHP licensing, please |
+ | contact core@php.net. |
+ +----------------------------------------------------------------------+
+ | Authors: Sascha Schumann <sas@schell.de> |
+ +----------------------------------------------------------------------+
+
+ $Id: compat.c,v 1.2 1999/02/04 18:28:04 sas Exp $
+ */
+
+
#include <errno.h>
#include "compat.h"
***************
*** 6,11 ****
--- 38,48 ----
#include <fcntl.h>
#endif
+ #if WIN32|WINNT
+ #include <windows.h>
+ #include <io.h>
+ #endif
+
#if !HAVE_FLOCK
int flock(int fd, int operation)
#if HAVE_STRUCT_FLOCK
***************
*** 22,27 ****
--- 59,68 ----
flck.l_type = F_WRLCK;
else if (operation & LOCK_UN)
flck.l_type = F_UNLCK;
+ else {
+ errno = EINVAL;
+ return -1;
+ }
ret = fcntl(fd, operation & LOCK_NB ? F_SETLK : F_SETLKW, &flck);
***************
*** 33,38 ****
--- 74,153 ----
return ret;
}
+ #elif WIN32|WINNT
+ /*
+ * Program: Unix compatibility routines
+ *
+ * Author: Mark Crispin
+ * Networks and Distributed Computing
+ * Computing & Communications
+ * University of Washington
+ * Administration Building, AG-44
+ * Seattle, WA 98195
+ * Internet: MRC@CAC.Washington.EDU
+ *
+ * Date: 14 September 1996
+ * Last Edited: 14 August 1997
+ *
+ * Copyright 1997 by the University of Washington
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appears in all copies and that both the
+ * above copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the University of Washington not be
+ * used in advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission. This software is made available
+ * "as is", and
+ * THE UNIVERSITY OF WASHINGTON DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
+ * WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT LIMITATION ALL IMPLIED * WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, AND IN
+ * NO EVENT SHALL THE UNIVERSITY OF WASHINGTON BE LIABLE FOR ANY SPECIAL,
+ * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, TORT
+ * (INCLUDING NEGLIGENCE) OR STRICT LIABILITY, ARISING OUT OF OR IN CONNECTION
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+ /* DEDICATION
+
+ * This file is dedicated to my dog, Unix, also known as Yun-chan and
+ * Unix J. Terwilliker Jehosophat Aloysius Monstrosity Animal Beast. Unix
+ * passed away at the age of 11 1/2 on September 14, 1996, 12:18 PM PDT, after
+ * a two-month bout with cirrhosis of the liver.
+ *
+ * He was a dear friend, and I miss him terribly.
+ *
+ * Lift a leg, Yunie. Luv ya forever!!!!
+ */
+ {
+ HANDLE hdl = (HANDLE) _get_osfhandle(fd);
+ DWORD low = 1, high = 0;
+ OVERLAPPED offset =
+ {0, 0, 0, 0, NULL};
+ if (hdl < 0)
+ return -1; /* error in file descriptor */
+ /* bug for bug compatible with Unix */
+ UnlockFileEx(hdl, 0, low, high, &offset);
+ switch (op & ~LOCK_NB) { /* translate to LockFileEx() op */
+ case LOCK_EX: /* exclusive */
+ if (LockFileEx(hdl, LOCKFILE_EXCLUSIVE_LOCK +
+ ((op & LOCK_NB) ? LOCKFILE_FAIL_IMMEDIATELY : 0),
+ 0, low, high, &offset))
+ return 0;
+ break;
+ case LOCK_SH: /* shared */
+ if (LockFileEx(hdl, ((op & LOCK_NB) ? LOCKFILE_FAIL_IMMEDIATELY : 0),
+ 0, low, high, &offset))
+ return 0;
+ break;
+ case LOCK_UN: /* unlock */
+ return 0; /* always succeeds */
+ default: /* default */
+ break;
+ }
+ errno = EINVAL; /* bad call */
+ return -1;
+ }
#else
#warning no proper flock support for your site
{
***************
*** 40,44 ****
return 0;
}
#endif
! #endif
!
--- 155,158 ----
return 0;
}
#endif
! #endif /* !HAVE_FLOCK */
Index: php3/compat.h
diff -c php3/compat.h:1.1 php3/compat.h:1.2
*** php3/compat.h:1.1 Sun Jan 31 09:47:35 1999
--- php3/compat.h Thu Feb 4 13:28:04 1999
***************
*** 13,16 ****
--- 13,27 ----
extern int flock(int fd, int operation);
#endif
+
+ #if WIN32||WINNT
+
+ /* These were in win32/flock.h, dunno if they are really needed
+ (or maybe break something) */
+
+ #define fsync _commit
+ #define ftruncate chsize
+
+ #endif /* WIN32|WINNT */
+
#endif
--
PHP Development Mailing List http://www.php.net/
To unsubscribe send an empty message to php-dev-unsubscribe@lists.php.net
For help: php-dev-help@lists.php.net