summaryrefslogtreecommitdiff
path: root/support/dktools/dk4appmkdh.ctr
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
committerNorbert Preining <norbert@preining.info>2020-10-12 03:04:00 +0000
commit0ce40abb18ec02ec6fd6bcc5f21612c88daa7578 (patch)
tree416289fe1448873fd8ca33051f50ad85bffa8aaa /support/dktools/dk4appmkdh.ctr
parentfdb18507cd80dc17f5a5256153d34668b4f4e61c (diff)
CTAN sync 202010120303
Diffstat (limited to 'support/dktools/dk4appmkdh.ctr')
-rw-r--r--support/dktools/dk4appmkdh.ctr432
1 files changed, 0 insertions, 432 deletions
diff --git a/support/dktools/dk4appmkdh.ctr b/support/dktools/dk4appmkdh.ctr
deleted file mode 100644
index fa582d996c..0000000000
--- a/support/dktools/dk4appmkdh.ctr
+++ /dev/null
@@ -1,432 +0,0 @@
-%% options
-
-copyright owner = Dirk Krause
-copyright year = 2015-xxxx
-SPDX-License-Identifier: BSD-3-Clause
-
-
-
-%% header
-
-/** @file
- Create directory structure.
-*/
-
-#ifndef DK4CONF_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4conf.h"
-#else
-#include <dktools-4/dk4conf.h>
-#endif
-#endif
-
-#ifndef DK4TYPES_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4types.h"
-#else
-#include <dktools-4/dk4types.h>
-#endif
-#endif
-
-#ifndef DK4ERROR_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4error.h"
-#else
-#include <dktools-4/dk4error.h>
-#endif
-#endif
-
-#ifndef DK4APP_H_INCLUDED
-#if DK4_BUILDING_DKTOOLS4
-#include "dk4app.h"
-#else
-#include <dktools-4/dk4app.h>
-#endif
-#endif
-
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/** Create directory structure.
- @param fn File name.
- @param lc Flag: Last component in fn is directory too.
- @param app Application structure for diagnostics, may be NULL.
- @return 1 on success, 0 on error.
-*/
-int
-dk4app_mkdir_hierarchy(const dkChar *fn, int lc, dk4_app_t *app);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-
-
-%% module
-
-#include "dk4conf.h"
-#include "dk4types.h"
-
-#if DK4_ON_WINDOWS
-#ifndef WINDOWS_H_INCLUDED
-#include <windows.h>
-#define WINDOWS_H_INCLUDED 1
-#endif
-#endif
-
-#include "dk4appmkdh.h"
-
-#if DK4_HAVE_SYS_STAT_H
-#ifndef SYS_STAT_H_INCLUDED
-#include <sys/stat.h>
-#define SYS_STAT_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_SYS_TYPES_H
-#ifndef SYS_TYPES_H_INCLUDED
-#include <sys/types.h>
-#define SYS_TYPES_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_DIRECT_H
-#ifndef DIRECT_H_INCLUDED
-#include <direct.h>
-#define DIRECT_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_STDLIB_H
-#ifndef STDLIB_H_INCLUDED
-#include <stdlib.h>
-#define STDLIB_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_UNISTD_H
-#ifndef UNISTD_H_INCLUDED
-#include <unistd.h>
-#define UNISTD_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_STRING_H
-#ifndef STRING_H_INCLUDED
-#include <string.h>
-#define STRING_H_INCLUDED 1
-#endif
-#endif
-
-#if DK4_HAVE_ERRNO_H
-#ifndef ERRNO_H_INCLUDED
-#include <errno.h>
-#define ERRNO_H_INCLUDED 1
-#endif
-#endif
-
-#ifndef DK4MEM_H_INCLUDED
-#include "dk4mem.h"
-#endif
-
-#ifndef DK4CONST_H_INCLUDED
-#include "dk4const.h"
-#endif
-
-#ifndef DK4MPL_H_INCLUDED
-#include "dk4mpl.h"
-#endif
-
-#ifndef DK4STR_H_INCLUDED
-#include "dk4strd.h"
-#endif
-
-#ifndef DK4STRDA_H_INCLUDED
-#include "dk4strda.h"
-#endif
-
-#ifndef DK4MAODD_H_INCLUDED
-#include "dk4maodd.h"
-#endif
-
-#ifndef DK4MAODH_H_INCLUDED
-#include "dk4maodh.h"
-#endif
-
-#ifndef DK4STAT_H_INCLUDED
-#include "dk4stat.h"
-#endif
-
-#ifndef DK4PATH_H_INCLUDED
-#include "dk4pathd.h"
-#endif
-
-#if DK4_CHAR_SIZE > 1
-#ifndef DK4MKDHW_H_INCLUDED
-#include "dk4mkdhw.h"
-#endif
-#else
-#ifndef DK4MKDH8_H_INCLUDED
-#include "dk4mkdh8.h"
-#endif
-#endif
-
-#if DK4_HAVE_ASSERT_H
-#ifndef ASSERT_H_INCLUDED
-#include <assert.h>
-#define ASSERT_H_INCLUDED 1
-#endif
-#endif
-
-
-$!trace-include
-
-
-
-static
-void
-dk4app_mkdir_hierarchy_report(dk4_app_t *app, const dkChar *fnb, dk4_er_t *erp)
-{
-#if DK4_ON_WINDOWS
- dkChar eb1[8 * sizeof(DWORD)];
- dkChar eb2[8 * sizeof(DWORD)];
- int res;
-#endif
-
- switch (erp->ec) {
- case DK4_E_NON_DIR: {
- dk4app_log_base3(app, DK4_LL_ERROR, 43, 44, fnb);
- } break;
-#if DK4_ON_WINDOWS
- case DK4_E_CREATE_DIR_FAILED: {
- if (ERROR_ALREADY_EXISTS == (erp->dt).lDetails1) {
- dk4app_log_base3(app, DK4_LL_ERROR, 43, 44, fnb);
- goto finished;
- }
- if (ERROR_PATH_NOT_FOUND == (erp->dt).lDetails1) {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 51, fnb);
- goto finished;
- }
- if (ERROR_ACCESS_DENIED == (erp->dt).lDetails1) {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 55, fnb);
- goto finished;
- }
- if (ERROR_BAD_NET_NAME == (erp->dt).lDetails1) {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 74, fnb);
- goto finished;
- }
- if (ERROR_BAD_NETPATH == (erp->dt).lDetails1) {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 75, fnb);
- goto finished;
- }
- res = dk4ma_write_decimal_unsigned(
- eb1, DK4_SIZEOF(eb1,dkChar), (dk4_um_t)((erp->dt).lDetails1), 0, NULL
- );
- if (0 != res) {
- res = dk4ma_write_hex_unsigned(
- eb2, DK4_SIZEOF(eb2,dkChar), (dk4_um_t)((erp->dt).lDetails1), 0, NULL
- );
- }
- if (0 != res) {
- dk4app_log_base7( app, DK4_LL_ERROR, 46, 69, 70, 71, fnb, eb1, eb2);
- } else {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 40, fnb);
- }
- } break;
-#endif
- case DK4_E_MKDIR_FAILED: {
- switch ((erp->dt).iDetails1) {
-#ifdef EEXIST
- case EEXIST : { /* Path already exists */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 49, fnb);
- } break;
-#endif
-#ifdef ENOENT
- case ENOENT : { /* Path not found */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 51, fnb);
- } break;
-#endif
-#ifdef EACCES
- case EACCES : { /* Permissions problem */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 55, fnb);
- } break;
-#endif
-#ifdef EIO
- case EIO : { /* I/O error occured */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 59, fnb);
- } break;
-#endif
-#ifdef EMLINK
- case EMLINK : {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 63, fnb);
- } break;
-#endif
-#ifdef ENAMETOOLONG
- case ENAMETOOLONG : { /* Name too long */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 65, fnb);
- } break;
-#endif
-#ifdef ENOMEM
- case ENOMEM : { /* Insufficient kernel memory */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 62, fnb);
- } break;
-#endif
-#ifdef ENOSPC
- case ENOSPC : { /* Not enough space (space/quota) */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 60, fnb);
- } break;
-#endif
-#ifdef EPERM
- case EPERM : { /* FS does not support dir creation */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 58, fnb);
- } break;
-#endif
-#ifdef EROFS
- case EROFS : { /* Read-only file system */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 56, fnb);
- } break;
-#endif
-#ifdef ENOTDIR
- case ENOTDIR : { /* One component is not a dir */
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 150, fnb);
- } break;
-#endif
- default: {
- dk4app_log_with_errno(
- app, DK4_LL_ERROR, 46, 79, 80, 46, 77, fnb, errno
- );
- } break;
- }
- } break;
- case DK4_E_NOT_FOUND : {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 73, fnb);
- } break;
- case DK4_E_INVALID_ARGUMENTS : {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 47, fnb);
- } break;
- default: {
- dk4app_log_base3(app, DK4_LL_ERROR, 46, 72, fnb);
- } break;
- }
-#if DK4_ON_WINDOWS
- finished: ;
-#endif
-}
-
-
-
-static
-int
-dk4app_mkdir_hierarchy_on_copy(dkChar *fn, int lc, dk4_app_t *app)
-{
- dk4_er_t er;
- dkChar *pc = NULL;
- int back = 0;
-
- /* Correct path name */
- dk4path_correct_sep(fn);
-
- dk4error_init(&er);
-#if DK4_CHAR_SIZE > 1
- pc = dk4mkdir_hierarchy_wc_first_sep(fn, &back, lc, &er);
-#else
- pc = dk4mkdir_hierarchy_c8_first_sep(fn, &back, lc, &er);
-#endif
- if ((NULL != pc) || (0 != back)) {
- if (NULL != pc) {
- back = 1;
- while (NULL != pc) {
- *pc = dkT('\0');
- if (0 < dk4str_len(fn)) {
- dk4error_init(&er);
-#if DK4_CHAR_SIZE > 1
- if (0 == dk4mkdir_hierarchy_wc_one(fn, 0, &er))
-#else
- if (0 == dk4mkdir_hierarchy_c8_one(fn, 0, &er))
-#endif
- {
- back = 0;
- dk4app_mkdir_hierarchy_report(app, fn, &er);
- }
- }
-#if DK4_HAVE_BACKSLASH_AS_SEP
- *pc = dkT('\\');
- pc = dk4str_chr(&(pc[1]), dkT('\\'));
-#else
- *pc = dkT('/');
- pc = dk4str_chr(&(pc[1]), dkT('/'));
-#endif
- }
- if (0 != lc) {
- dk4error_init(&er);
-#if DK4_CHAR_SIZE > 1
- if (0 == dk4mkdir_hierarchy_wc_one(fn, 0, &er))
-#else
- if (0 == dk4mkdir_hierarchy_c8_one(fn, 0, &er))
-#endif
- {
- back = 0;
- dk4app_mkdir_hierarchy_report(app, fn, &er);
- }
- }
- }
- } else {
- dk4app_mkdir_hierarchy_report(app, fn, &er);
- }
- return back;
-}
-
-
-
-static
-int
-dk4app_mkdir_hierarchy_local(const dkChar *fn, int lc, dk4_app_t *app)
-{
- dkChar mycp[DK4_MAX_PATH];
- int back = 0;
- if (dk4str_cpy_s(mycp, DK4_SIZEOF(mycp,dkChar), fn, NULL)) {
- back = dk4app_mkdir_hierarchy_on_copy(mycp, lc, app);
- } else {
- /* ERROR: Bug */
- }
- return back;
-}
-
-
-
-int
-dk4app_mkdir_hierarchy(const dkChar *fn, int lc, dk4_app_t *app)
-{
- dkChar *mycp;
- size_t sz;
- int back = 0;
- $? "+ dk4app_mkdir_hierarchy PTR=%d", TR_IPTR(fn)
-#if DK4_USE_ASSERT
- assert(NULL != fn);
-#endif
- if (NULL != fn) {
-#if DK4_ON_WINDOWS || (1 == DK4_CHAR_SIZE)
- sz = dk4str_len(fn);
- if (DK4_MAX_PATH > sz) {
- back = dk4app_mkdir_hierarchy_local(fn, lc, app);
- } else {
- mycp = dk4str_dup_app(fn, app);
- if (NULL != mycp) {
- back = dk4app_mkdir_hierarchy_on_copy(mycp, lc, app);
- dk4mem_free(mycp);
- }
- }
-#else
- /* ERROR: Not supported */
-#error "Wide characters are supported on the Windows platform only!"
-#endif
- } else { $? "! fn"
- } $? "- dk4app_mkdir_hierarchy %d", back
- return back;
-}
-
-