exFAT file system implementation library.
Free exFAT implementation.
- Copyright (C) 2010-2014 Andrew Nayenko
+ Copyright (C) 2010-2018 Andrew Nayenko
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it->current = NULL;
}
-struct exfat_node* exfat_readdir(struct exfat* ef, struct exfat_iterator* it)
+struct exfat_node* exfat_readdir(struct exfat_iterator* it)
{
if (it->current == NULL)
it->current = it->parent->child;
static int compare_char(struct exfat* ef, uint16_t a, uint16_t b)
{
- if (a >= ef->upcase_chars || b >= ef->upcase_chars)
- return (int) a - (int) b;
-
- return (int) le16_to_cpu(ef->upcase[a]) - (int) le16_to_cpu(ef->upcase[b]);
+ return (int) ef->upcase[a] - (int) ef->upcase[b];
}
static int compare_name(struct exfat* ef, const le16_t* a, const le16_t* b)
*node = NULL;
- rc = utf8_to_utf16(buffer, name, EXFAT_NAME_MAX, n);
+ rc = utf8_to_utf16(buffer, name, EXFAT_NAME_MAX + 1, n);
if (rc != 0)
return rc;
rc = exfat_opendir(ef, parent, &it);
if (rc != 0)
return rc;
- while ((*node = exfat_readdir(ef, &it)))
+ while ((*node = exfat_readdir(&it)))
{
if (compare_name(ef, buffer, (*node)->name) == 0)
{
exfat_put_node(ef, *parent);
return -ENOENT;
}
- rc = utf8_to_utf16(name, p, EXFAT_NAME_MAX, n);
+ rc = utf8_to_utf16(name, p, EXFAT_NAME_MAX + 1, n);
if (rc != 0)
{
exfat_put_node(ef, *parent);