1996-05-03 18:29:10 +00:00
|
|
|
/* Utility and Unix shadow routines for GNU Emacs support programs on NT.
|
2017-01-01 03:14:01 +00:00
|
|
|
Copyright (C) 1994, 2002-2017 Free Software Foundation, Inc.
|
1996-05-03 18:29:10 +00:00
|
|
|
|
2008-05-09 23:19:13 +00:00
|
|
|
This file is part of GNU Emacs.
|
1996-05-03 18:29:10 +00:00
|
|
|
|
2008-05-09 23:19:13 +00:00
|
|
|
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
|
2016-03-10 15:34:52 +00:00
|
|
|
the Free Software Foundation, either version 3 of the License, or (at
|
|
|
|
your option) any later version.
|
1996-05-03 18:29:10 +00:00
|
|
|
|
2008-05-09 23:19:13 +00:00
|
|
|
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.
|
1996-05-03 18:29:10 +00:00
|
|
|
|
2008-05-09 23:19:13 +00:00
|
|
|
You should have received a copy of the GNU General Public License
|
|
|
|
along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
|
1996-05-03 18:29:10 +00:00
|
|
|
|
|
|
|
#include <pwd.h>
|
|
|
|
#include <malloc.h>
|
|
|
|
|
1997-08-09 01:46:03 +00:00
|
|
|
/* Include these headers now so we don't have to worry about include
|
|
|
|
order dependencies in common source files. */
|
|
|
|
#include <direct.h>
|
2013-08-04 17:52:25 +00:00
|
|
|
#include <fcntl.h>
|
1997-08-09 01:46:03 +00:00
|
|
|
#include <io.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
|
|
#ifdef sleep
|
|
|
|
#undef sleep
|
|
|
|
#endif
|
2013-03-30 17:00:51 +00:00
|
|
|
unsigned sleep (unsigned seconds);
|
1996-07-15 19:57:11 +00:00
|
|
|
char *getwd (char *dir);
|
Make building under stricter warning flags somewhat cleaner.
Flags used: -Wold-style-declaration -Wunused-function -Wstrict-prototypes
* lib-src/emacsclient.c (getcwd, w32_getenv):
* lib-src/ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes.
* nt/runemacs.c (set_user_model_id): Fix prototype.
* src/callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
* src/dired.c (opendir, readdir): Fix prototypes.
* src/editfns.c (w32_get_internal_run_time): Fix prototypes.
* src/keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
* src/ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
(telldir): Remove declaration.
* src/ralloc.c (real_morecore, __morecore): Fix prototypes.
* src/sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
* src/syssignal.h (strsignal): Fix prototype.
* src/term.c (tparam): Fix prototype.
(term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
(term_get_fkeys): Set inside "#ifndef DOS_NT".
* src/vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
and __morecore.
* src/w32gui.h (XParseGeometry): Fix prototype.
* src/w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
* src/w32term.c (my_set_focus): Declare inside #if 0.
* src/w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
(w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
(drain_message_queue, get_next_msg, post_msg, parse_button)
(ClipboardSequence_Proc): Fix prototypes.
(wait_for_sync): Remove declaration.
2010-07-25 00:20:51 +00:00
|
|
|
int getppid (void);
|
|
|
|
char * getlogin (void);
|
1996-05-03 18:29:10 +00:00
|
|
|
char * cuserid (char * s);
|
Make building under stricter warning flags somewhat cleaner.
Flags used: -Wold-style-declaration -Wunused-function -Wstrict-prototypes
* lib-src/emacsclient.c (getcwd, w32_getenv):
* lib-src/ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes.
* nt/runemacs.c (set_user_model_id): Fix prototype.
* src/callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
* src/dired.c (opendir, readdir): Fix prototypes.
* src/editfns.c (w32_get_internal_run_time): Fix prototypes.
* src/keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
* src/ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
(telldir): Remove declaration.
* src/ralloc.c (real_morecore, __morecore): Fix prototypes.
* src/sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
* src/syssignal.h (strsignal): Fix prototype.
* src/term.c (tparam): Fix prototype.
(term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
(term_get_fkeys): Set inside "#ifndef DOS_NT".
* src/vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
and __morecore.
* src/w32gui.h (XParseGeometry): Fix prototype.
* src/w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
* src/w32term.c (my_set_focus): Declare inside #if 0.
* src/w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
(w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
(drain_message_queue, get_next_msg, post_msg, parse_button)
(ClipboardSequence_Proc): Fix prototypes.
(wait_for_sync): Remove declaration.
2010-07-25 00:20:51 +00:00
|
|
|
unsigned getuid (void);
|
2013-03-30 17:00:51 +00:00
|
|
|
unsigned geteuid (void);
|
Make building under stricter warning flags somewhat cleaner.
Flags used: -Wold-style-declaration -Wunused-function -Wstrict-prototypes
* lib-src/emacsclient.c (getcwd, w32_getenv):
* lib-src/ntlib.h (getlogin, getuid, getegid, getgid): Fix prototypes.
* nt/runemacs.c (set_user_model_id): Fix prototype.
* src/callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
* src/dired.c (opendir, readdir): Fix prototypes.
* src/editfns.c (w32_get_internal_run_time): Fix prototypes.
* src/keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
* src/ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
(telldir): Remove declaration.
* src/ralloc.c (real_morecore, __morecore): Fix prototypes.
* src/sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
* src/syssignal.h (strsignal): Fix prototype.
* src/term.c (tparam): Fix prototype.
(term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
(term_get_fkeys): Set inside "#ifndef DOS_NT".
* src/vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
and __morecore.
* src/w32gui.h (XParseGeometry): Fix prototype.
* src/w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
* src/w32term.c (my_set_focus): Declare inside #if 0.
* src/w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
(w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
(drain_message_queue, get_next_msg, post_msg, parse_button)
(ClipboardSequence_Proc): Fix prototypes.
(wait_for_sync): Remove declaration.
2010-07-25 00:20:51 +00:00
|
|
|
unsigned getegid (void);
|
|
|
|
unsigned getgid (void);
|
2009-03-21 11:31:50 +00:00
|
|
|
int setuid (unsigned uid);
|
Fix the MS-Windows build broken by 2011-01-17T19:01:01Z!eggert@cs.ucla.edu and emacs-23/2010-05-21T19:51:48Z!acm@muc.de.
lib/makefile.w32-in:
lib/getopt_.h: New files.
src/s/ms-w32.h (HAVE_MKTIME): Remove.
src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
(GNULIB): New variable.
(LIBS): Add $(GNULIB).
$(TEMACS): Depend on $(GNULIB).
<top-level>: Fix font-lock disrupted by a lone `"'.
src/makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
(GETOPTOBJS, GETOPTDEPS): Remove targets.
(MOVEMAILOBJS): Replace $(GETOPTOBJS) with ../lib/$(BLD)/libgnu.$(A).
($(BLD)/movemail.exe): Depend on ../lib/getopt.h.
(ECLIENTOBJS, ETAGSOBJ, CTAGSOBJ, EBROWSEOBJ): Replace getopt.o
and getopt1.o with ../lib/$(BLD)/libgnu.$(A).
(clean): Don't remove getopt.h.
(getopt.h, $(BLD)/getopt.$(O), $(BLD)/getopt1.$(O)): Remove targets.
($(BLD)/ctags.$(O), $(BLD)/etags.$(O)): Replace getopt.h with
$(EMACS_ROOT)/lib/getopt.h.
nt/makefile.w32-in (all-other-dirs-nmake, all-other-dirs-gmake)
(bootstrap-nmake, bootstrap-gmake, bootstrap-clean-nmake)
(bootstrap-clean-gmake, clean-other-dirs-nmake)
(clean-other-dirs-gmake, cleanall-other-dirs-nmake)
(cleanall-other-dirs-gmake, distclean-other-dirs-nmake)
(distclean-other-dirs-gmake, maintainer-clean-other-dirs-nmake)
(maintainer-clean-other-dirs-gmake): Recurse into ../lib as well.
nt/configure.bat: Create lib/makefile.
nt/config.nt (HAVE_MKTIME, BROKEN_MKTIME): Remove.
(HAVE_ATTRIBUTE_ALIGNED, HAVE_C99_STRTOLD, HAVE_DECL_GETENV)
(HAVE_DECL_LOCALTIME_R, HAVE_WCHAR_T, PACKAGE, VERSION, inline)
(_GL_UNUSED, _UNUSED_PARAMETER_): Add definitions, for gnulib.
2011-01-29 12:36:11 +00:00
|
|
|
int setregid (unsigned rgid, unsigned gid);
|
1996-05-03 18:29:10 +00:00
|
|
|
char * getpass (const char * prompt);
|
2009-03-21 11:31:50 +00:00
|
|
|
int fchown (int fd, unsigned uid, unsigned gid);
|
2013-08-04 17:52:25 +00:00
|
|
|
int mkostemp (char * template, int flags);
|
1996-05-03 18:29:10 +00:00
|
|
|
|
1998-06-01 14:01:14 +00:00
|
|
|
/* redirect or undo interceptions created by config.h */
|
1997-08-09 01:46:03 +00:00
|
|
|
#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 open
|
|
|
|
#define open _open
|
|
|
|
#undef pipe
|
|
|
|
#define pipe _pipe
|
|
|
|
#undef read
|
|
|
|
#define read _read
|
|
|
|
#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
|
2005-06-04 20:10:49 +00:00
|
|
|
#ifndef fileno
|
1997-08-09 01:46:03 +00:00
|
|
|
#define fileno _fileno
|
2005-06-04 20:10:49 +00:00
|
|
|
#endif
|
1997-08-09 01:46:03 +00:00
|
|
|
#define getcwd _getcwd
|
|
|
|
#define getw _getw
|
|
|
|
#define getpid _getpid
|
|
|
|
#define isatty _isatty
|
|
|
|
#define locking _locking
|
|
|
|
#define logb _logb
|
|
|
|
#define _longjmp longjmp
|
|
|
|
#define popen _popen
|
|
|
|
#define pclose _pclose
|
|
|
|
#define umask _umask
|
|
|
|
#define utime _utime
|
|
|
|
#define index strchr
|
|
|
|
#define rindex strrchr
|
|
|
|
|
1998-06-01 14:01:14 +00:00
|
|
|
/* Make standard winsock definitions available if needed. */
|
|
|
|
#undef _WINSOCKAPI_
|
2000-08-22 21:24:06 +00:00
|
|
|
#undef _WINSOCK_H
|
1998-06-01 14:01:14 +00:00
|
|
|
|
1996-05-03 18:29:10 +00:00
|
|
|
/* end of ntlib.h */
|