1 /* 2 * unistr.h - Exports for Unicode string handling. Part of the Linux-NTFS 3 * project. 4 * 5 * Copyright (c) 2000-2006 Anton Altaparmakov 6 * 7 * This program/include file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as published 9 * by the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program/include file is distributed in the hope that it will be 13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty 14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program (in the main directory of the Linux-NTFS 19 * distribution in the file COPYING); if not, write to the Free Software 20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 */ 22 23 #ifndef _NTFS_UNISTR_H 24 #define _NTFS_UNISTR_H 25 26 #include "types.h" 27 #include "layout.h" 28 29 extern BOOL ntfs_names_are_equal(const ntfschar *s1, size_t s1_len, 30 const ntfschar *s2, size_t s2_len, const IGNORE_CASE_BOOL ic, 31 const ntfschar *upcase, const u32 upcase_size); 32 33 extern int ntfs_names_collate(const ntfschar *name1, const u32 name1_len, 34 const ntfschar *name2, const u32 name2_len, 35 const int err_val, const IGNORE_CASE_BOOL ic, 36 const ntfschar *upcase, const u32 upcase_len); 37 38 extern int ntfs_ucsncmp(const ntfschar *s1, const ntfschar *s2, size_t n); 39 40 extern int ntfs_ucsncasecmp(const ntfschar *s1, const ntfschar *s2, size_t n, 41 const ntfschar *upcase, const u32 upcase_size); 42 43 extern u32 ntfs_ucsnlen(const ntfschar *s, u32 maxlen); 44 45 extern ntfschar *ntfs_ucsndup(const ntfschar *s, u32 maxlen); 46 47 extern void ntfs_name_upcase(ntfschar *name, u32 name_len, 48 const ntfschar *upcase, const u32 upcase_len); 49 50 extern void ntfs_file_value_upcase(FILE_NAME_ATTR *file_name_attr, 51 const ntfschar *upcase, const u32 upcase_len); 52 53 extern int ntfs_file_values_compare(const FILE_NAME_ATTR *file_name_attr1, 54 const FILE_NAME_ATTR *file_name_attr2, 55 const int err_val, const IGNORE_CASE_BOOL ic, 56 const ntfschar *upcase, const u32 upcase_len); 57 58 extern int ntfs_ucstombs(const ntfschar *ins, const int ins_len, char **outs, 59 int outs_len); 60 extern int ntfs_mbstoucs(const char *ins, ntfschar **outs, int outs_len); 61 62 extern void ntfs_upcase_table_build(ntfschar *uc, u32 uc_len); 63 64 extern ntfschar *ntfs_str2ucs(const char *s, int *len); 65 66 extern void ntfs_ucsfree(ntfschar *ucs); 67 68 #endif /* defined _NTFS_UNISTR_H */ 69