MCPcopy Create free account
hub / github.com/Predelnik/DSpellCheck / do_parse_string

Function do_parse_string

src/common/Utility.cpp:153–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

151}
152
153static size_t do_parse_string(wchar_t *dest, const wchar_t *source) {
154 bool dry_run = dest == nullptr;
155 wchar_t *res_string = dest;
156 while (*source != L'\0') {
157 const wchar_t *last_pos = source;
158 if (*source == '\\') {
159 ++source;
160 if (!match_special_char(!dry_run ? dest : nullptr, source)) {
161 source = last_pos;
162 if (!dry_run)
163 *dest = *source;
164 ++source;
165 ++dest;
166 } else {
167 ++dest;
168 }
169 } else {
170 if (!dry_run)
171 *dest = *source;
172 ++source;
173 ++dest;
174 }
175 }
176 if (!dry_run)
177 *dest = L'\0';
178 return dest - res_string + 1;
179}
180
181std::wstring parse_string(const wchar_t *source) {
182 auto size = do_parse_string(nullptr, source);

Callers 1

parse_stringFunction · 0.85

Calls 1

match_special_charFunction · 0.85

Tested by

no test coverage detected