void SlashFolderLocal(Stroka &folder) { if (!folder) return; #ifdef _win32_ size_t pos; while ((pos = folder.find('/')) != Stroka::npos) folder.replace(pos, 1, LOCSLASH_S); #endif if (folder[+folder-1] != LOCSLASH_C) folder.append(LOCSLASH_S); }
Stroka EncodeXMLString(const char* str) { Stroka strout; if (!str) return Stroka(); char num[15]; num[14] = 0; num[13] = ';'; for (const char* s = str, *s1; *s;) { for (s1 = s; safe_chars[(unsigned char)(*s1)]; s1++) ; if (s1 != s) strout.replace(+strout, 0, s, 0, s1 - s, s1 - s); s = s1; if (*s == 0) break; strout.replace(+strout, 0, "&#", 0, 2, 2); char *p = &num[13]; for (int code = csYandex.unicode[(unsigned char)(*s++)]; code > 0; code /= 10) *(--p) = '0' + (code % 10); strout.append(p); } return strout; }