diff options
author | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
commit | 1f457376b478257b88d4a857f5ec1b6155442dd7 (patch) | |
tree | 2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4dir.h | |
parent | ac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff) |
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4dir.h')
-rw-r--r-- | support/dktools/dk4dir.h | 109 |
1 files changed, 78 insertions, 31 deletions
diff --git a/support/dktools/dk4dir.h b/support/dktools/dk4dir.h index b3bb35823b..3167ec4e1d 100644 --- a/support/dktools/dk4dir.h +++ b/support/dktools/dk4dir.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: dk4dir.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: dk4dir.ctr */ #ifndef DK4DIR_H_INCLUDED @@ -48,24 +26,44 @@ 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 #if DK4_CHAR_SIZE > 1 #ifndef DK4DIRWC_H_INCLUDED +#if DK4_BUILDING_DKTOOLS4 #include "dk4dirwc.h" +#else +#include <dktools-4/dk4dirwc.h> +#endif #endif #else #ifndef DK4DIR08_H_INCLUDED +#if DK4_BUILDING_DKTOOLS4 #include "dk4dir08.h" +#else +#include <dktools-4/dk4dir08.h> +#endif #endif #endif @@ -135,7 +133,7 @@ dk4dir_reset(dk4_dir_t *dptr); file name expansion. */ const dkChar * -dk4dir_get_path(dk4_dir_t *dptr); +dk4dir_get_path(dk4_dir_t const *dptr); /** Retrieve next directory name. @param dptr Directory structure. @@ -164,7 +162,56 @@ dk4dir_skip_files(dk4_dir_t *dptr); @return Maximum name length. */ size_t -dk4dir_get_max_entry_length(dk4_dir_t *dptr); +dk4dir_get_max_entry_length(dk4_dir_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 dkChar). + @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_full_name_buffer( + dkChar *buffer, + size_t szbuf, + dk4_dir_t const *pdir, + dkChar 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. +*/ +dkChar * +dk4dir_full_name_new( + dk4_dir_t const *pdir, + dkChar const *fn, + dk4_er_t *erp +); #ifdef __cplusplus } |