| 100 | ModRootAliasContext context; |
| 101 | context.prefix = name; |
| 102 | context.prefixLen = separator - name; |
| 103 | context.rest = separator + 1; |
| 104 | if (context.prefixLen == 0 || !*context.rest) |
| 105 | return {}; |
| 106 | |
| 107 | ModSystem::EnumDirectories(ResolveModRootAliasCallback, &context); |
| 108 | return context.resolved; |
| 109 | } |
| 110 | } // namespace |
| 111 | |
| 112 | QFBank::QFBank() |
| 113 | { |
| 114 | EXCLUSIVE(); |
| 115 | _handle = nullptr; |
| 116 | _handleOverlapped = nullptr; |
| 117 | _serialize = false; |
| 118 | _error = true; // no open called yet |
| 119 | _locked = true; |
| 120 | _lockable = false; |
| 121 | } |
| 122 | |
| 123 | #define WIN_DIR '\\' |
| 124 | #define UNIX_DIR '/' |
| 125 | |
| 126 | #define BEG_SERIALIZE \ |
| 127 | { \ |
| 128 | PoseidonAssert(!_serialize); \ |
| 129 | _serialize = true; \ |
| 130 | } |
| 131 | #define END_SERIALIZE \ |
| 132 | { \ |
| 133 | PoseidonAssert(_serialize); \ |
| 134 | _serialize = false; \ |
| 135 | } |
| 136 | |
| 137 | #ifdef NO_MMAP |
| 138 | #define USE_MAPPING 0 |