diff options
Diffstat (limited to 'support/dktools/dk4strw.h')
-rw-r--r-- | support/dktools/dk4strw.h | 442 |
1 files changed, 0 insertions, 442 deletions
diff --git a/support/dktools/dk4strw.h b/support/dktools/dk4strw.h deleted file mode 100644 index 714a60c019..0000000000 --- a/support/dktools/dk4strw.h +++ /dev/null @@ -1,442 +0,0 @@ -/* -Copyright (C) 2015-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: dk4strw.ctr -*/ - -#ifndef DK4STRW_H_INCLUDED -/** Avoid multiple inclusions. */ -#define DK4STRW_H_INCLUDED 1 - - -#line 10 "dk4strw.ctr" - -/** @file - Additional string functions for - wchar_t strings. - - Although some of the functions in this module duplicate - functionality from the C runtime library on Windows, you should use - the functions from this module. - With DK4DK4_WIN_AVOID_CRT or DK4_WIN_DENY_CRT defined to non-zero - these functions call Windows API functions like - lstrcmpW() ... instead of CRT functions. -*/ - -#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 STDLIB_H_INCLUDED -#include <stdlib.h> -#define STDLIB_H_INCLUDED 1 -#endif - -#if DK4_HAVE_WCHAR_H -#ifndef WCHAR_H_INCLUDED -#include <wchar.h> -#define WCHAR_H_INCLUDED 1 -#endif -#endif - - -#ifdef __cplusplus -extern "C" { -#endif - -/** Copy string, check destination buffer size. - - CRT on Windows: Optional. - @param dst Destination buffer address. - @param sz Destination buffer size. - @param src Source string. - @param erp Error report, may be NULL. - @return 1 on success, 0 on error. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - if dst or src is NULL or sz is 0, - - DK4_E_BUFFER_TOO_SMALL<br> - if the dst buffer is too small. -*/ -int -dk4strw_cpy_s(wchar_t *dst, size_t sz, const wchar_t *src, dk4_er_t *erp); - -/** Concatenate strings, check destination buffer size. - - CRT on Windows: Optional. - @param dst Destination buffer address. - @param sz Destination buffer size. - @param src Source string. - @param erp Error report, may be NULL. - @return 1 on success, 0 on error. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - if dst or src is NULL or sz is 0, - - DK4_E_MATH_OVERFLOW<br> - if a mathematical overflow occured in size calculation, - - DK4_E_BUFFER_TOO_SMALL<br> - if the concatenated string doest not fit into the buffer. -*/ -int -dk4strw_cat_s(wchar_t *dst, size_t sz, const wchar_t *src, dk4_er_t *erp); - -/** Copy characters within a string from right to left. - This copy operation is intended for moving characters within - one string from right to left, making the string shorter - as is. This function does not check buffer size or report - any error. - For normal string copy operations, use the dk4strw_cpy_s() - function instead. - - CRT on Windows: Not used. - @param dst Destination buffer address. - @param src Source string. -*/ -void -dk4strw_cpy_to_left(wchar_t *dst, const wchar_t *src); - -/** Find string length. - - CRT on Windows: Optional, disabling CRT reduces functionality - to strings with length fitting to int. - @param src Source string. - @return String length. -*/ -size_t -dk4strw_len(const wchar_t *src); - -/** Compare two strings. - - CRT on Windows: Optional. - @param s1 Left string, may be NULL. - @param s2 Right string, may be NULL. - @return 1 if s1>s2, 0 if s1==s2, -1 if s1<s2. -*/ -int -dk4strw_cmp(const wchar_t *s1, const wchar_t *s2); - -/** Compare two strings. - - CRT on Windows: Optional. - @param s1 Left string, may be NULL. - @param s2 Right string, may be NULL. - @param n Maximum number of characters to compare. - @return 1 if s1>s2, 0 if s1==s2, -1 if s1<s2. -*/ -int -dk4strw_ncmp(const wchar_t *s1, const wchar_t *s2, size_t n); - -/** Compare two strings, case-insensitive comparison. - - CRT on Windows: Optional. - @param s1 Left string, may be NULL. - @param s2 Right string, may be NULL. - @return 1 if s1>s2, 0 if s1==s2, -1 if s1<s2. -*/ -int -dk4strw_casecmp(const wchar_t *s1, const wchar_t *s2); - -/** Compare two file path names. - - CRT on Windows: Optional. - @param s1 Left string, may be NULL. - @param s2 Right string, may be NULL. - @return 1 if s1>s2, 0 if s1==s2, -1 if s1<s2. -*/ -int -dk4strw_pathcmp(const wchar_t *s1, const wchar_t *s2); - -/** Find first occurance of character c in string s. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param s String to search for c. - @param c Character to find. - @return Pointer to first occurance if found, NULL otherwise. -*/ -wchar_t * -dk4strw_chr(const wchar_t *s, wchar_t c); - -/** Find last occurance of character c in string s. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param s String to search for c. - @param c Character to find. - @return Pointer to last occurance if found, NULL otherwise. -*/ -wchar_t * -dk4strw_rchr(const wchar_t *s, wchar_t c); - -/** Convert character to upper-case character. - - CRT on windows: Optional, disabling CRT degrades performance. - @param c Character to convert. - @return Conversion result. -*/ -wchar_t -dk4strw_toupper(wchar_t c); - -/** Convert character to lower-case character. - - CRT on windows: Optional, disabling CRT degrades performance. - @param c Character to convert. - @return Conversion result. -*/ -wchar_t -dk4strw_tolower(wchar_t c); - -/** Retrieve first token from *stringp. - CRT on Windows: Optional, disabling CRT degrades performance. - @param stringp Adress of string pointer. - @param delim String containing the delimiter set, - my be NULL to use the default delimiter - set (space, tabulator, carriage return and newline). - @return Pointer to first token on success, NULL if no (further) - token found. -*/ -wchar_t * -dk4strw_sep(wchar_t **stringp, const wchar_t *delim); - -/** Find first token in string. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param src String to search for tokens. - @param delim String containing the delimiter characters, - may be NULL to use the default delimiter set. - @return Pointer to first token if found, NULL otherwise. -*/ -wchar_t * -dk4strw_start(const wchar_t *src, const wchar_t *delim); - -/** Cut string after first token, find start of second token in string. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param src String to search for tokens, - normally the result of dk4strw_start() or a - previous dk4strw_next() call. - @param delim String containing the delimiter characters, - may be NULL to use the default delimiter set. - @return Pointer to second token if found, NULL otherwise. -*/ -wchar_t * -dk4strw_next(wchar_t *src, const wchar_t *delim); - -/** Split a string into tokens. - CRT on Windows: Optional, disabling CRT degrades performance. - @param dpp Pointer to string pointer array. - @param szdpp Size of destination string pointer array. - @param src Source string to process. - @param delim String containing delimiter characters, - may be NULL to use the default delimiter set. - @param erp Error report, may be NULL. - @return Number of tokens found on success, 0 if no token - found or on error. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - for invalid function arguments, - - DK4_E_BUFFER_TOO_SMALL<br> - with dt.mem.nelem set to the number of tokens in string if the dpp - array is too short. -*/ -size_t -dk4strw_tokenize( - wchar_t **dpp, size_t szdpp, wchar_t *src, const wchar_t *delim, dk4_er_t *erp -); - -/** Normalize a string (remove leading and trailing delimiters, - replace delimiter sequences by just one delimiter). - - CRT on Windows: Optional, disabling CRT degrades performance. - @param src Buffer containing the string to normalize. - @param delim String containing delimiter characters, - may be NULL to use the default delimiter set. -*/ -void -dk4strw_normalize(wchar_t *src, const wchar_t *delim); - -/** Find index of a string in an array of strings. - - CRT on Windows: Optional. - @param arr Array of strings. - @param str String to find in array. - @param cs Flag: Case-sensitive search (0=no, other=yes). - @return Non-negative index value on success, -1 on error. -*/ -int -dk4strw_array_index(const wchar_t * const *arr, const wchar_t *str, int cs); - -/** Find index of a string in an array of strings. - - CRT on windows: Optional, disabling CRT degrades performance - for case-insensitive comparisons. - @param arr Array of strings allowing abbreviation. - @param spec Special character indicating start of optional text. - @param str String to find in array. - @param cs Flag: Case-sensitive search (0=no, other=yes). - @return Non-negative index value on success, -1 on error. -*/ -int -dk4strw_abbr_index( - const wchar_t * const *arr, - wchar_t spec, - const wchar_t *str, - int cs -); - -/** Check whether a text matches a pattern, the text may be abbreviated. - - CRT on windows: Optional, disabling CRT degrades performance - for case-insensitive comparisons. - @param str Text to check. - @param pattern Pattern for comparison. - @param spec Special character marking the abbreviation in the - pattern. - @param cs Flag: Case sensitive (1) or not (0). - @return 1 for a match, 0 otherwise. -*/ -int -dk4strw_is_abbr(const wchar_t *str,const wchar_t *pattern,wchar_t spec,int cs); - -/** Check whether a string represents a boolean value. - - CRT on windows: Optional, disabling CRT degrades performance. - @param str String to check. - @return 1 if str represents a boolean value, 0 otherwise. -*/ -int -dk4strw_is_bool(const wchar_t *str); - -/** Check whether a string represents the boolean value TRUE. - - CRT on windows: Optional, disabling CRT degrades performance. - @param str String to check. - @return 1 if str represents the boolean value TRUE, 0 otherwise. -*/ -int -dk4strw_is_on(const wchar_t *str); - -#if (DK4_ON_WINDOWS) || (DK4_HAVE_MALLOC && DK4_HAVE_FREE) - -/** Duplicate string in dynamically allocated memory. - - CRT on Windows: Optional, disabling CRT reduces functionality - to strings with length fitting to int and overall size in - bytes - including finalizer - fitting into a DWORD. - @param src String to duplicate. - @param erp Error report, may be NULL. - @return Pointer to string in new memory on succes, NULL on error. - Use dk4mem_free() to release the memory after usage. - - Error codes: - - DK4_E_INVALID_ARGUMENTS<br> - if src is a NULL pointer, - - DK4_E_MATH_OVERFLOW<br> - on mathematical overflow in size calculation, - - DK4_E_MEMORY<br> - if no memory is available. -*/ -wchar_t * -dk4strw_dup(const wchar_t *src, dk4_er_t *erp); - -#endif - - - -/** Remove trailing white spaces. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param str String to remove white spaces from. - @param whsp White spaces set. -*/ -void -dk4strw_rtwh(wchar_t *str, const wchar_t *whsp); - -/** Remove trailing newline from line. - - CRT on Windows: Not used. - @param lptr Line pointer. -*/ -void -dk4strw_delnl(wchar_t *lptr); - -/** Skip the first text words in a line, return pointer to start - of next word. - - CRT on Windows: Optional, disabling CRT degrades performance. - @param line Line to process. - @param skip Number of words to skip. - @return Pointer to next word on success, NULL on error. -*/ -const wchar_t * -dk4strw_skip(const wchar_t *line, size_t skip); - -/** Sanitize string (overwrite using 0). - - CRT on Windows: Optional. - @param str Address of string to sanitize. - @return 1 on success, 0 on error. -*/ -int -dk4strw_sanitize(wchar_t *str); - -/** Sanitize string buffer (overwrite using 0 bytes). - - CRT on Windows: Optional. - @param str Address of string buffer. - @param sz Size of string buffer (number of wchar_t). - @return 1 on success, 0 on error. -*/ -int -dk4strw_buffer_sanitize(wchar_t *str, size_t sz); - -/** Sanitize dynamically allocated memory and release it. - - CRT on Windows: Optional. - @param str Address of string to sanitize and release. - @return 1 on success, 0 on error. -*/ -int -dk4strw_free_sanitized(wchar_t *str); - -#ifdef __cplusplus -} -#endif - - -/** Sanitize string and release it, set pointer to NULL. - @param p Pointer to string to release. -*/ -#define dk4strw_release_sanitized(p) \ -do { if (NULL != p) { (void)dk4strw_free_sanitized(p); } p = NULL; } while (0) - - -#endif |