/* Copyright (C) 2019-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk4chdirw.ctr */ /** @file dk4chdirw.c The dk4chdirw module. */ #line 65 "dk4chdirw.ctr" #include "dk4conf.h" #include "dk4chdirw.h" #if DK4_ON_WINDOWS #ifndef WINDOWS_H_INCLUDED #include #define WINDOWS_H_INCLUDED 1 #endif #endif #if DK4_HAVE_UNISTD_H #ifndef UNISTD_H_INCLUDED #include #define UNISTD_H_INCLUDED 1 #endif #endif #if DK4_HAVE_STDLIB_H #ifndef STDLIB_H_INCLUDED #include #define STDLIB_H_INCLUDED 1 #endif #endif #if DK4_HAVE_DIRECT_H #ifndef DIRECT_H_INCLUDED #include #define DIRECT_H_INCLUDED 1 #endif #endif #if DK4_HAVE_ERRNO_H #ifndef ERRNO_H_INCLUDED #include #define ERRNO_H_INCLUDED 1 #endif #endif #if DK4_HAVE_ASSERT_H #ifndef ASSERT_H_INCLUDED #include #define ASSERT_H_INCLUDED 1 #endif #endif #line 115 "dk4chdirw.ctr" int dk4chdir_wc(const wchar_t *nd, dk4_er_t *erp) { int back = 0; #line 123 "dk4chdirw.ctr" #if DK4_USE_ASSERT assert(NULL != nd); #endif if (NULL != nd) { #if DK4_ON_WINDOWS #if DK4_WIN_AVOID_CRT || DK4_WIN_DENY_CRT if (SetCurrentDirectoryW(nd)) { back = 1; } else { #line 133 "dk4chdirw.ctr" dk4error_set_ldetails(erp, DK4_E_SYSTEM, GetLastError()); } #else if (0 == _wchdir(nd)) { back = 1; } else { #line 140 "dk4chdirw.ctr" dk4error_set_idetails(erp, DK4_E_SYSTEM, errno); } #endif #else #line 145 "dk4chdirw.ctr" dk4error_set_simple_error_code(erp, DK4_E_NOT_SUPPORTED); #endif } else { #line 149 "dk4chdirw.ctr" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } #line 152 "dk4chdirw.ctr" return back; } /* vim: set ai sw=4 ts=4 : */