1// Copyright (C) 2016 and later: Unicode, Inc. and others. 2// License & terms of use: http://www.unicode.org/copyright.html 3/* 4 ******************************************************************************* 5 * 6 * Copyright (C) 2003, International Business Machines 7 * Corporation and others. All Rights Reserved. 8 * 9 ******************************************************************************* 10 * file name: nfsprep.h 11 * encoding: US-ASCII 12 * tab size: 8 (not used) 13 * indentation:4 14 * 15 * created on: 2003jul11 16 * created by: Ram Viswanadha 17 */ 18#ifndef _NFSPREP_H 19#define _NFSPREP_H 20 21#include "unicode/utypes.h" 22 23#if !UCONFIG_NO_IDNA 24 25#include "unicode/ustring.h" 26#include "unicode/usprep.h" 27#include <stdlib.h> 28#include <string.h> 29 30 31/* this enum must be kept in syn with NFS4DataFileNames array in nfsprep.c */ 32enum NFS4ProfileState{ 33 NFS4_CS_PREP_CS, 34 NFS4_CS_PREP_CI, 35 NFS4_CIS_PREP, 36 NFS4_MIXED_PREP_PREFIX, 37 NFS4_MIXED_PREP_SUFFIX 38}; 39 40typedef enum NFS4ProfileState NFS4ProfileState; 41 42/** 43 * Prepares the source UTF-8 string for use in file names and 44 * returns UTF-8 string on output. 45 * @param src 46 * @param srcLen 47 * @param dest 48 * @param destCapacity 49 * @param state 50 * @param parseError 51 * @param status 52 */ 53int32_t 54nfs4_prepare(const char* src, int32_t srcLength, 55 char* dest, int32_t destCapacity, 56 NFS4ProfileState state, 57 UParseError* parseError, 58 UErrorCode* status); 59 60/** 61 * @param dest 62 * @param destCapacity 63 * @param src 64 * @param srcLen 65 * @param state 66 * @param parseError 67 * @param status 68 */ 69int32_t 70nfs4_mixed_prepare( const char* src, int32_t srcLength, 71 char* dest, int32_t destCapacity, 72 UParseError* parseError, 73 UErrorCode* status); 74 75/** 76 * @param dest 77 * @param destCapacity 78 * @param src 79 * @param srcLen 80 * @param state 81 * @param parseError 82 * @param status 83 */ 84int32_t 85nfs4_cis_prepare( const char* src, int32_t srcLength, 86 char* dest, int32_t destCapacity, 87 UParseError* parseError, 88 UErrorCode* status); 89 90/** 91 * @param dest 92 * @param destCapacity 93 * @param src 94 * @param srcLen 95 * @param state 96 * @param parseError 97 * @param status 98 */ 99int32_t 100nfs4_cs_prepare( const char* src, int32_t srcLength, 101 char* dest, int32_t destCapacity, 102 UBool isCaseSensitive, 103 UParseError* parseError, 104 UErrorCode* status); 105#endif 106 107#endif 108/* 109 * Hey, Emacs, please set the following: 110 * 111 * Local Variables: 112 * indent-tabs-mode: nil 113 * End: 114 * 115 */ 116