/* 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: dk4chdir8.ctr */ /** @file dk4chdir8.c The dk4chdir8 module. */ #line 63 "dk4chdir8.ctr" #include "dk4conf.h" #include "dk4chdir8.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 113 "dk4chdir8.ctr" int dk4chdir_c8(const char *nd, dk4_er_t *erp) { int back = 0; #if DK4_ON_WINDOWS && (DK4_WIN_AVOID_CRT || DK4_WIN_DENY_CRT) BOOL res; #endif #line 125 "dk4chdir8.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 res = SetCurrentDirectoryA(nd); if (res) { back = 1; } else { #line 136 "dk4chdir8.ctr" dk4error_set_ldetails(erp, DK4_E_SYSTEM, GetLastError()); } #else if (0 == _chdir(nd)) { back = 1; } else { #line 143 "dk4chdir8.ctr" dk4error_set_idetails(erp, DK4_E_SYSTEM, errno); } #endif #else if (0 == chdir(nd)) { back = 1; } else { #line 151 "dk4chdir8.ctr" dk4error_set_idetails(erp, DK4_E_SYSTEM, errno); } #endif } else { #line 156 "dk4chdir8.ctr" dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } #line 159 "dk4chdir8.ctr" return back; } /* vim: set ai sw=4 ts=4 : */