mirror of
https://github.com/RetroShare/RetroShare.git
synced 2025-05-02 06:06:10 -04:00
Fixed umlauts (utf8) in Windows. Changed some parameters to reference pointer. Added virtual folders to the lib.
Recompile needed. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3509 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
parent
dccfbf20b0
commit
ed737e2c9f
21 changed files with 892 additions and 914 deletions
|
@ -801,7 +801,7 @@ void FileIndexMonitor::updateShareFlags(const SharedDirInfo& dir)
|
|||
cb->notifyListChange(NOTIFY_LIST_DIRLIST_LOCAL, 0);
|
||||
}
|
||||
/* interface */
|
||||
void FileIndexMonitor::setSharedDirectories(std::list<SharedDirInfo> dirs)
|
||||
void FileIndexMonitor::setSharedDirectories(std::list<SharedDirInfo>& dirs)
|
||||
{
|
||||
cb->notifyListPreChange(NOTIFY_LIST_DIRLIST_LOCAL, 0);
|
||||
|
||||
|
@ -822,8 +822,7 @@ void FileIndexMonitor::setSharedDirectories(std::list<SharedDirInfo> dirs)
|
|||
|
||||
/* check if dir exists before adding in */
|
||||
std::string path = (*it).filename;
|
||||
DIR *dir = opendir(path.c_str());
|
||||
if (!dir)
|
||||
if (!RsDirUtil::checkDirectory(path))
|
||||
{
|
||||
#ifdef FIM_DEBUG
|
||||
std::cerr << "FileIndexMonitor::setSharedDirectories()";
|
||||
|
@ -834,7 +833,6 @@ void FileIndexMonitor::setSharedDirectories(std::list<SharedDirInfo> dirs)
|
|||
{
|
||||
checkeddirs.push_back(*it);
|
||||
}
|
||||
closedir(dir);
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -915,7 +913,10 @@ bool FileIndexMonitor::internal_setSharedDirectories()
|
|||
{
|
||||
/* get the head directory */
|
||||
std::string root_dir = (*it).filename;
|
||||
std::string top_dir = RsDirUtil::getTopDir(root_dir);
|
||||
std::string top_dir = it->virtualname;
|
||||
if (top_dir.empty()) {
|
||||
top_dir = RsDirUtil::getTopDir(root_dir);
|
||||
}
|
||||
|
||||
/* if unique -> add, else add modifier */
|
||||
bool unique = false;
|
||||
|
@ -931,6 +932,8 @@ bool FileIndexMonitor::internal_setSharedDirectories()
|
|||
if (directoryMap.end()== (cit=directoryMap.find(tst_dir)))
|
||||
{
|
||||
unique = true;
|
||||
/* store calculated name */
|
||||
it->virtualname = tst_dir;
|
||||
/* add it! */
|
||||
directoryMap[tst_dir.c_str()] = *it;
|
||||
#ifdef FIM_DEBUG
|
||||
|
|
|
@ -109,7 +109,7 @@ class FileIndexMonitor: public CacheSource, public RsThread
|
|||
int RequestDirDetails(std::string uid, std::string path, DirDetails &details) const ;
|
||||
|
||||
// set/update shared directories
|
||||
virtual void setSharedDirectories(std::list<SharedDirInfo> dirs);
|
||||
virtual void setSharedDirectories(std::list<SharedDirInfo>& dirs);
|
||||
void getSharedDirectories(std::list<SharedDirInfo>& dirs);
|
||||
void updateShareFlags(const SharedDirInfo& info) ;
|
||||
|
||||
|
|
|
@ -529,7 +529,7 @@ FileIndex::~FileIndex()
|
|||
delete root;
|
||||
}
|
||||
|
||||
int FileIndex::setRootDirectories(std::list<std::string> inlist, time_t updtime)
|
||||
int FileIndex::setRootDirectories(std::list<std::string> &inlist, time_t updtime)
|
||||
{
|
||||
/* set update time to zero */
|
||||
std::map<std::string, DirEntry *>::iterator it;
|
||||
|
|
|
@ -204,7 +204,7 @@ class FileIndex
|
|||
~FileIndex();
|
||||
|
||||
/* control root entries */
|
||||
int setRootDirectories(std::list<std::string> inlist, time_t utime);
|
||||
int setRootDirectories(std::list<std::string> &inlist, time_t utime);
|
||||
int getRootDirectories(std::list<std::string> &outlist);
|
||||
|
||||
/* update (index building) */
|
||||
|
|
|
@ -198,6 +198,7 @@ std::list<RsItem *> ftFiMonitor::saveList(bool &cleanup)
|
|||
{
|
||||
RsFileConfigItem *fi = new RsFileConfigItem();
|
||||
fi->file.path = (*it).filename ;
|
||||
fi->file.name = (*it).virtualname ;
|
||||
fi->flags = (*it).shareflags ;
|
||||
|
||||
sList.push_back(fi);
|
||||
|
@ -234,6 +235,7 @@ bool ftFiMonitor::loadList(std::list<RsItem *> load)
|
|||
|
||||
SharedDirInfo info ;
|
||||
info.filename = fi->file.path;
|
||||
info.virtualname = fi->file.name;
|
||||
info.shareflags = fi->flags & (RS_FILE_HINTS_BROWSABLE | RS_FILE_HINTS_NETWORK_WIDE) ;
|
||||
|
||||
dirList.push_back(info) ;
|
||||
|
@ -252,7 +254,7 @@ void ftFiMonitor::updateShareFlags(const SharedDirInfo& info)
|
|||
IndicateConfigChanged();
|
||||
}
|
||||
|
||||
void ftFiMonitor::setSharedDirectories(std::list<SharedDirInfo> dirList)
|
||||
void ftFiMonitor::setSharedDirectories(std::list<SharedDirInfo>& dirList)
|
||||
{
|
||||
FileIndexMonitor::setSharedDirectories(dirList);
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class ftFiMonitor: public FileIndexMonitor, public ftSearch, public p3Config
|
|||
virtual bool search(std::string hash, uint32_t hintflags, FileInfo &info) const;
|
||||
|
||||
/* overloaded set dirs enables config indication */
|
||||
virtual void setSharedDirectories(std::list<SharedDirInfo> dirList);
|
||||
virtual void setSharedDirectories(std::list<SharedDirInfo>& dirList);
|
||||
virtual void updateShareFlags(const SharedDirInfo& info) ;
|
||||
|
||||
/***
|
||||
|
|
|
@ -235,7 +235,6 @@ int ftFileCreator::locked_initializeFileAttrs()
|
|||
#ifdef FILE_DEBUG
|
||||
std::cerr << "ftFileCreator::initializeFileAttrs() trying (r+b) " << file_name << " this: " << this << std::endl;
|
||||
#endif
|
||||
std::cerr << std::endl;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -578,7 +578,7 @@ bool ftServer::setSharedDirectories(std::list<SharedDirInfo> &dirs)
|
|||
return true;
|
||||
}
|
||||
|
||||
bool ftServer::addSharedDirectory(SharedDirInfo dir)
|
||||
bool ftServer::addSharedDirectory(SharedDirInfo& dir)
|
||||
{
|
||||
std::list<SharedDirInfo> dirList;
|
||||
mFiMon->getSharedDirectories(dirList);
|
||||
|
|
|
@ -191,7 +191,7 @@ virtual std::string getPartialsDirectory();
|
|||
|
||||
virtual bool getSharedDirectories(std::list<SharedDirInfo> &dirs);
|
||||
virtual bool setSharedDirectories(std::list<SharedDirInfo> &dirs);
|
||||
virtual bool addSharedDirectory(SharedDirInfo dir);
|
||||
virtual bool addSharedDirectory(SharedDirInfo& dir);
|
||||
virtual bool updateShareFlags(const SharedDirInfo& dir); // updates the flags. The directory should already exist !
|
||||
virtual bool removeSharedDirectory(std::string dir);
|
||||
|
||||
|
|
|
@ -92,6 +92,7 @@ const uint32_t CB_CODE_MEDIA = 0x0004;
|
|||
struct SharedDirInfo
|
||||
{
|
||||
std::string filename ;
|
||||
std::string virtualname ;
|
||||
uint32_t shareflags ; // RS_FILE_HINTS_NETWORK_WIDE | RS_FILE_HINTS_BROWSABLE
|
||||
};
|
||||
|
||||
|
@ -184,7 +185,7 @@ class RsFiles
|
|||
virtual std::string getPartialsDirectory() = 0;
|
||||
|
||||
virtual bool getSharedDirectories(std::list<SharedDirInfo> &dirs) = 0;
|
||||
virtual bool addSharedDirectory(SharedDirInfo dir) = 0;
|
||||
virtual bool addSharedDirectory(SharedDirInfo& dir) = 0;
|
||||
virtual bool updateShareFlags(const SharedDirInfo& dir) = 0; // updates the flags. The directory should already exist !
|
||||
virtual bool removeSharedDirectory(std::string dir) = 0;
|
||||
|
||||
|
|
|
@ -363,8 +363,19 @@ int RsDirUtil::breakupDirList(std::string path,
|
|||
|
||||
bool RsDirUtil::checkDirectory(std::string dir)
|
||||
{
|
||||
int val;
|
||||
mode_t st_mode;
|
||||
#ifdef WINDOWS_SYS
|
||||
std::wstring wdir;
|
||||
librs::util::ConvertUtf8ToUtf16(dir, wdir);
|
||||
struct _stat buf;
|
||||
val = _wstat(wdir.c_str(), &buf);
|
||||
st_mode = buf.st_mode;
|
||||
#else
|
||||
struct stat buf;
|
||||
int val = stat(dir.c_str(), &buf);
|
||||
val = stat(dir.c_str(), &buf);
|
||||
st_mode = buf.st_mode;
|
||||
#endif
|
||||
if (val == -1)
|
||||
{
|
||||
#ifdef RSDIR_DEBUG
|
||||
|
@ -373,7 +384,7 @@ bool RsDirUtil::checkDirectory(std::string dir)
|
|||
#endif
|
||||
return false;
|
||||
}
|
||||
else if (!S_ISDIR(buf.st_mode))
|
||||
else if (!S_ISDIR(st_mode))
|
||||
{
|
||||
// Some other type - error.
|
||||
#ifdef RSDIR_DEBUG
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue