diff options
Diffstat (limited to 'openbsd-compat/bsd-cygwin_util.c')
-rw-r--r-- | openbsd-compat/bsd-cygwin_util.c | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/openbsd-compat/bsd-cygwin_util.c b/openbsd-compat/bsd-cygwin_util.c deleted file mode 100644 index 9eedc88d..00000000 --- a/openbsd-compat/bsd-cygwin_util.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (c) 2000, 2001, 2011 Corinna Vinschen <vinschen@redhat.com> - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Created: Sat Sep 02 12:17:00 2000 cv - * - * This file contains functions for forcing opened file descriptors to - * binary mode on Windows systems. - */ - -#include "includes.h" - -#ifdef HAVE_CYGWIN - -#if defined(open) && open == binary_open -# undef open -#endif - -#include <sys/types.h> - -#include <fcntl.h> -#include <stdlib.h> -#include <unistd.h> -#include <windows.h> - -#include "xmalloc.h" - -int -binary_open(const char *filename, int flags, ...) -{ - va_list ap; - mode_t mode; - - va_start(ap, flags); - mode = va_arg(ap, mode_t); - va_end(ap); - return (open(filename, flags | O_BINARY, mode)); -} - -int -check_ntsec(const char *filename) -{ - return (pathconf(filename, _PC_POSIX_PERMISSIONS)); -} - -#define NL(x) x, (sizeof (x) - 1) -#define WENV_SIZ (sizeof (wenv_arr) / sizeof (wenv_arr[0])) - -static struct wenv { - const char *name; - size_t namelen; -} wenv_arr[] = { - { NL("ALLUSERSPROFILE=") }, - { NL("COMPUTERNAME=") }, - { NL("COMSPEC=") }, - { NL("CYGWIN=") }, - { NL("OS=") }, - { NL("PATH=") }, - { NL("PATHEXT=") }, - { NL("SYSTEMDRIVE=") }, - { NL("SYSTEMROOT=") }, - { NL("WINDIR=") } -}; - -char ** -fetch_windows_environment(void) -{ - char **e, **p; - unsigned int i, idx = 0; - - p = xcalloc(WENV_SIZ + 1, sizeof(char *)); - for (e = environ; *e != NULL; ++e) { - for (i = 0; i < WENV_SIZ; ++i) { - if (!strncmp(*e, wenv_arr[i].name, wenv_arr[i].namelen)) - p[idx++] = *e; - } - } - p[idx] = NULL; - return p; -} - -void -free_windows_environment(char **p) -{ - xfree(p); -} - -#endif /* HAVE_CYGWIN */ |