summaryrefslogtreecommitdiff
path: root/support/dktools/dk4dirwc.h
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
committerNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
commit1f457376b478257b88d4a857f5ec1b6155442dd7 (patch)
tree2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4dirwc.h
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4dirwc.h')
-rw-r--r--support/dktools/dk4dirwc.h105
1 files changed, 74 insertions, 31 deletions
diff --git a/support/dktools/dk4dirwc.h b/support/dktools/dk4dirwc.h
index 1cc56524b5..e60d16a499 100644
--- a/support/dktools/dk4dirwc.h
+++ b/support/dktools/dk4dirwc.h
@@ -1,36 +1,14 @@
/*
- WARNING: This file was generated by dkct.
- 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: dk4dirwc.ctr
+Copyright (C) 2015-2020, Dirk Krause
+SPDX-License-Identifier: BSD-3-Clause
*/
/*
-Copyright (C) 2015-2017, Dirk Krause
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-* Redistributions in binary form must reproduce the above opyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
-* Neither the name of the author nor the names of contributors may be used
- to endorse or promote products derived from this software without specific
- prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``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 COPYRIGHT OWNER OR CONTRIBUTORS 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.
+ 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: dk4dirwc.ctr
*/
#ifndef DK4DIRWC_H_INCLUDED
@@ -47,19 +25,35 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#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 DK4STO_H_INCLUDED
+#if DK4_BUILDING_DKTOOLS4
#include "dk4sto.h"
+#else
+#include <dktools-4/dk4sto.h>
+#endif
#endif
@@ -130,7 +124,7 @@ dk4dir_wc_reset(dk4_dir_wc_t *dptr);
file name expansion.
*/
const wchar_t *
-dk4dir_wc_get_path(dk4_dir_wc_t *dptr);
+dk4dir_wc_get_path(dk4_dir_wc_t const *dptr);
/** Retrieve next directory name.
@param dptr Directory structure.
@@ -168,7 +162,56 @@ dk4dir_wc_compare(const void *l, const void *r, int cr);
@return Maximum name length.
*/
size_t
-dk4dir_wc_get_max_entry_length(dk4_dir_wc_t *dptr);
+dk4dir_wc_get_max_entry_length(dk4_dir_wc_t const *dptr);
+
+/** Create full path name for short file name in existing buffer.
+ @param buffer Result buffer.
+ @param szbuf Size of result buffer (number of wchar_t).
+ @param pdir Directory fn was obtained from.
+ @param fn Short file or directory name.
+ @param erp Error report, may be NULL.
+ @return 1 on success, 0 on error.
+
+ Error codes:
+ - DK4_E_INVALID_ARGUMENTS<br>
+ if buffer, pdir or fn is NULL or szbuf is 0,
+ - DK4_E_BUFFER_TOO_SMALL<br>
+ if the buffer is too small.
+*/
+int
+dk4dir_wc_full_name_buffer(
+ wchar_t *buffer,
+ size_t szbuf,
+ dk4_dir_wc_t const *pdir,
+ wchar_t const *fn,
+ dk4_er_t *erp
+);
+
+/** Create full path name for short file name in newly allocated buffer.
+ @param pdir Directory fn was obtained from.
+ @param fn Short file or directory name.
+ @param erp Error report, may be NULL.
+ @return Valid pointer to newly allocated buffer on success,
+ NULL on error.
+ On success use dk4mem_free() to release the memory when done with
+ the name.
+
+ Error codes:
+ - DK4_E_INVALID_ARGUMENTS<br>
+ if pdir or fn is NULL,
+ - DK4_E_MATH_OVERFLOW<br>
+ if the size calculation results in a numeric overflow.
+ - DK4_E_MEMORY_ALLOCATION_FAILED<br>
+ if the memory allocation failed,
+ - DK4_E_BUFFER_TOO_SMALL<br>
+ if the buffer is too small.
+*/
+wchar_t *
+dk4dir_wc_full_name_new(
+ dk4_dir_wc_t const *pdir,
+ wchar_t const *fn,
+ dk4_er_t *erp
+);
#ifdef __cplusplus
}