]> code.delx.au - gnu-emacs/blobdiff - lib-src/ntlib.h
Close bug#3992.
[gnu-emacs] / lib-src / ntlib.h
index 39df4d03fd42a965333745d50b5f491fc361319f..ab1e7ba2866910673b5a50060d8b5f1cbbf93551 100644 (file)
 /* Utility and Unix shadow routines for GNU Emacs support programs on NT.
-   Copyright (C) 1994 Free Software Foundation, Inc.
+   Copyright (C) 1994, 2002, 2003, 2004, 2005, 2006, 2007,
+                 2008, 2009, 2010 Free Software Foundation, Inc.
 
-   This file is part of GNU Emacs.
+This file is part of GNU Emacs.
 
-   GNU Emacs is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any later
-   version.
+GNU Emacs is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
 
-   GNU Emacs 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.
+GNU Emacs 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 the GNU General Public License along
-   with GNU Emacs; see the file COPYING.  If not, write to the Free Software
-   Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+You should have received a copy of the GNU General Public License
+along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
-*/
 
 #include <pwd.h>
 #include <malloc.h>
 
-void sleep(int seconds);
+/* Include these headers now so we don't have to worry about include
+   order dependencies in common source files.  */
+#include <direct.h>
+#include <io.h>
+#include <stdio.h>
+
+#ifdef sleep
+#undef sleep
+#endif
+void sleep(unsigned long seconds);
 char *getwd (char *dir);
 int getppid(void);
 char * getlogin ();
 char * cuserid (char * s);
-int getuid ();
-int setuid (int uid);
-struct passwd * getpwuid (int uid);
+unsigned getuid ();
+unsigned getegid ();
+unsigned getgid ();
+int setuid (unsigned uid);
+int setegid (unsigned gid);
 char * getpass (const char * prompt);
-int fchown (int fd, int uid, int gid);
+int fchown (int fd, unsigned uid, unsigned gid);
 
 #ifndef BSTRING
 #define bzero(b, l) memset(b, 0, l)
 #define bcopy(s, d, l) memcpy(d, s, l)
 #define bcmp(a, b, l) memcmp(a, b, l)
+#endif
 
-#define index   strchr
-#define rindex  strrchr
+/* redirect or undo interceptions created by config.h */
+#undef access
+#define access  _access
+#undef chdir
+#define chdir   _chdir
+#undef chmod
+#define chmod   _chmod
+#undef close
+#define close   _close
+#undef creat
+#define creat   _creat
+#undef ctime
+#undef dup
+#define dup     _dup
+#undef dup2
+#define dup2    _dup2
+#undef fopen
+#undef mkdir
+#define mkdir   _mkdir
+#undef mktemp
+#define mktemp  _mktemp
+#undef open
+#define open    _open
+#undef pipe
+#define pipe    _pipe
+#undef read
+#define read    _read
+#undef rename
+#undef rmdir
+#define rmdir   _rmdir
+#undef unlink
+#define unlink  _unlink
+#undef write
+#define write   _write
+
+/* map to MSVC names */
+#define execlp    _execlp
+#define execvp    _execvp
+#define fdopen   _fdopen
+#ifndef fileno
+#define fileno   _fileno
 #endif
+#define getcwd   _getcwd
+#define getw     _getw
+#define getpid    _getpid
+#define isatty    _isatty
+#define locking   _locking
+#define logb      _logb
+#define _longjmp  longjmp
+#define lseek     _lseek
+#define popen     _popen
+#define pclose    _pclose
+#define umask    _umask
+#define utime    _utime
+#define index     strchr
+#define rindex    strrchr
+
+/* Make standard winsock definitions available if needed.  */
+#undef _WINSOCKAPI_
+#undef _WINSOCK_H
 
 /* end of ntlib.h */
+
+/* arch-tag: 93444f66-7b98-4aa5-a5cd-01444094af28
+   (do not change this comment) */