Rev 3628 | Rev 3638 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3628 | Rev 3634 | ||
---|---|---|---|
Line 35... | Line 35... | ||
35 | * @brief Functions that work with FAT directory entries. |
35 | * @brief Functions that work with FAT directory entries. |
36 | */ |
36 | */ |
37 | 37 | ||
38 | #include "fat_dentry.h" |
38 | #include "fat_dentry.h" |
39 | #include <ctype.h> |
39 | #include <ctype.h> |
- | 40 | #include <string.h> |
|
40 | 41 | ||
41 | #define FAT_PAD ' ' |
42 | #define FAT_PAD ' ' |
42 | 43 | ||
43 | #define FAT_DENTRY_UNUSED 0x00 |
44 | #define FAT_DENTRY_UNUSED 0x00 |
44 | #define FAT_DENTRY_E5_ESC 0x05 |
45 | #define FAT_DENTRY_E5_ESC 0x05 |
Line 51... | Line 52... | ||
51 | return true; |
52 | return true; |
52 | else |
53 | else |
53 | return false; |
54 | return false; |
54 | } |
55 | } |
55 | 56 | ||
- | 57 | /** Compare path component with the name read from the dentry. |
|
- | 58 | * |
|
- | 59 | * This function compares the path component with the name read from the dentry. |
|
- | 60 | * The comparison is case insensitive and tolerates a mismatch on the trailing |
|
- | 61 | * dot character at the end of the name (i.e. when there is a dot, but no |
|
- | 62 | * extension). |
|
- | 63 | * |
|
- | 64 | * @param name Node name read from the dentry. |
|
- | 65 | * @param component Path component. |
|
- | 66 | * |
|
- | 67 | * @return Zero on match, non-zero otherwise. |
|
- | 68 | */ |
|
- | 69 | int fat_dentry_namecmp(char *name, const char *component) |
|
- | 70 | { |
|
- | 71 | int rc; |
|
- | 72 | if (!(rc = stricmp(name, component))) |
|
- | 73 | return rc; |
|
- | 74 | if (!strchr(name, '.')) { |
|
- | 75 | /* |
|
- | 76 | * There is no '.' in the name, so we know that there is enough |
|
- | 77 | * space for appending an extra '.' to name. |
|
- | 78 | */ |
|
- | 79 | name[strlen(name)] = '.'; |
|
- | 80 | name[strlen(name) + 1] = '\0'; |
|
- | 81 | rc = stricmp(name, component); |
|
- | 82 | } |
|
- | 83 | return rc; |
|
- | 84 | } |
|
- | 85 | ||
56 | bool fat_dentry_name_verify(const char *name) |
86 | bool fat_dentry_name_verify(const char *name) |
57 | { |
87 | { |
58 | unsigned i, dot; |
88 | unsigned i, dot; |
59 | bool dot_found = false; |
89 | bool dot_found = false; |
60 | 90 |