| #ifndef _RAR_PATHFN_ |
| #define _RAR_PATHFN_ |
| |
| wchar* PointToName(const wchar *Path); |
| wchar* PointToLastChar(const wchar *Path); |
| wchar* ConvertPath(const wchar *SrcPath,wchar *DestPath); |
| void SetName(wchar *FullName,const wchar *Name,size_t MaxSize); |
| void SetExt(wchar *Name,const wchar *NewExt,size_t MaxSize); |
| void SetSFXExt(wchar *SFXName,size_t MaxSize); |
| wchar *GetExt(const wchar *Name); |
| bool CmpExt(const wchar *Name,const wchar *Ext); |
| bool IsWildcard(const wchar *Str); |
| bool IsPathDiv(int Ch); |
| bool IsDriveDiv(int Ch); |
| bool IsDriveLetter(const wchar *Path); |
| int GetPathDisk(const wchar *Path); |
| void AddEndSlash(wchar *Path,size_t MaxLength); |
| void MakeName(const wchar *Path,const wchar *Name,wchar *Pathname,size_t MaxSize); |
| void GetFilePath(const wchar *FullName,wchar *Path,size_t MaxLength); |
| void RemoveNameFromPath(wchar *Path); |
| #if defined(_WIN_ALL) && !defined(SFX_MODULE) |
| bool GetAppDataPath(wchar *Path,size_t MaxSize,bool Create); |
| void GetRarDataPath(wchar *Path,size_t MaxSize,bool Create); |
| #endif |
| #ifndef SFX_MODULE |
| bool EnumConfigPaths(uint Number,wchar *Path,size_t MaxSize,bool Create); |
| void GetConfigName(const wchar *Name,wchar *FullName,size_t MaxSize,bool CheckExist,bool Create); |
| #endif |
| wchar* GetVolNumPart(const wchar *ArcName); |
| void NextVolumeName(wchar *ArcName,uint MaxLength,bool OldNumbering); |
| bool IsNameUsable(const wchar *Name); |
| void MakeNameUsable(char *Name,bool Extended); |
| void MakeNameUsable(wchar *Name,bool Extended); |
| |
| void UnixSlashToDos(const char *SrcName,char *DestName,size_t MaxLength); |
| void DosSlashToUnix(const char *SrcName,char *DestName,size_t MaxLength); |
| void UnixSlashToDos(const wchar *SrcName,wchar *DestName,size_t MaxLength); |
| void DosSlashToUnix(const wchar *SrcName,wchar *DestName,size_t MaxLength); |
| |
| inline void SlashToNative(const char *SrcName,char *DestName,size_t MaxLength) |
| { |
| #ifdef _WIN_ALL |
| UnixSlashToDos(SrcName,DestName,MaxLength); |
| #else |
| DosSlashToUnix(SrcName,DestName,MaxLength); |
| #endif |
| } |
| |
| inline void SlashToNative(const wchar *SrcName,wchar *DestName,size_t MaxLength) |
| { |
| #ifdef _WIN_ALL |
| UnixSlashToDos(SrcName,DestName,MaxLength); |
| #else |
| DosSlashToUnix(SrcName,DestName,MaxLength); |
| #endif |
| } |
| |
| void ConvertNameToFull(const wchar *Src,wchar *Dest,size_t MaxSize); |
| bool IsFullPath(const wchar *Path); |
| bool IsFullRootPath(const wchar *Path); |
| void GetPathRoot(const wchar *Path,wchar *Root,size_t MaxSize); |
| int ParseVersionFileName(wchar *Name,bool Truncate); |
| wchar* VolNameToFirstName(const wchar *VolName,wchar *FirstName,size_t MaxSize,bool NewNumbering); |
| wchar* GetWideName(const char *Name,const wchar *NameW,wchar *DestW,size_t DestSize); |
| |
| #ifndef SFX_MODULE |
| void GenerateArchiveName(wchar *ArcName,size_t MaxSize,const wchar *GenerateMask,bool Archiving); |
| #endif |
| |
| #ifdef _WIN_ALL |
| bool GetWinLongPath(const wchar *Src,wchar *Dest,size_t MaxSize); |
| void ConvertToPrecomposed(wchar *Name,size_t NameSize); |
| void MakeNameCompatible(wchar *Name); |
| #endif |
| |
| #endif |