mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-02-26 01:31:30 -05:00
Fixed the file-rehashing problem, by replacing all "," by "\," in file names in fc-own* files. When re-loading, all "\," are turned back into "," and not used as separators. Warning: although this is backward compatible with the old file format, peers having ","s in their files cannot exchange file lists with older RS versions.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/branches/v0.4.x@1835 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
47076a3615
commit
45c749c4f1
@ -776,7 +776,20 @@ int FileIndex::loadIndex(std::string filename, std::string expectedHash, uint64_
|
|||||||
/* parse line */
|
/* parse line */
|
||||||
while(1)
|
while(1)
|
||||||
{
|
{
|
||||||
getline(ss, word, ',');
|
word.clear() ;
|
||||||
|
|
||||||
|
while(1)
|
||||||
|
{
|
||||||
|
std::string tmp ;
|
||||||
|
getline(ss,tmp,',') ;
|
||||||
|
word += tmp ;
|
||||||
|
|
||||||
|
if(word[word.length()-1] == '\\') // when we find the string "\," we turn it into "," and continue
|
||||||
|
word[word.length()-1] = ',' ;
|
||||||
|
else
|
||||||
|
break ;
|
||||||
|
}
|
||||||
|
|
||||||
if (ss.eof())
|
if (ss.eof())
|
||||||
goto error;
|
goto error;
|
||||||
tokens.push_back(word);
|
tokens.push_back(word);
|
||||||
@ -906,18 +919,22 @@ int FileIndex::saveIndex(std::string filename, std::string &fileHash, uint64_t &
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Turns all "," in the string into "\,"
|
||||||
|
//
|
||||||
std::string FixName(std::string in)
|
std::string FixName(std::string in)
|
||||||
{
|
{
|
||||||
/* replace any , with _ */
|
/* replace any , with _ */
|
||||||
|
std::string out ;
|
||||||
|
int j=0 ;
|
||||||
|
|
||||||
for(unsigned int i = 0; i < in.length(); i++)
|
for(unsigned int i = 0; i < in.length(); i++)
|
||||||
{
|
{
|
||||||
if (in[i] == ',')
|
if (in[i] == ',')
|
||||||
{
|
out += "\\" ;
|
||||||
in[i] = '_';
|
|
||||||
}
|
out.push_back(in[i]) ;
|
||||||
}
|
}
|
||||||
return in;
|
return out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user