mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 21:14:58 -06:00
23.01
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
// Windows/FileName.h
|
||||
|
||||
#ifndef __WINDOWS_FILE_NAME_H
|
||||
#define __WINDOWS_FILE_NAME_H
|
||||
#ifndef ZIP7_INC_WINDOWS_FILE_NAME_H
|
||||
#define ZIP7_INC_WINDOWS_FILE_NAME_H
|
||||
|
||||
#include "../Common/MyString.h"
|
||||
|
||||
@@ -54,6 +54,10 @@ bool IsDrivePath2(const wchar_t *s) throw(); // first 2 chars are drive chars li
|
||||
bool IsSuperPath(const wchar_t *s) throw();
|
||||
bool IsSuperOrDevicePath(const wchar_t *s) throw();
|
||||
|
||||
bool IsAltStreamPrefixWithColon(const UString &s) throw();
|
||||
// returns true, if super prefix was removed
|
||||
bool If_IsSuperPath_RemoveSuperPrefix(UString &s);
|
||||
|
||||
#ifndef USE_UNICODE_FSTRING
|
||||
bool IsDrivePath2(CFSTR s) throw(); // first 2 chars are drive chars like "a:"
|
||||
// bool IsDriveName2(CFSTR s) throw(); // is drive name like "a:"
|
||||
@@ -82,7 +86,7 @@ int FindAltStreamColon(CFSTR path) throw();
|
||||
bool IsAbsolutePath(const wchar_t *s) throw();
|
||||
unsigned GetRootPrefixSize(const wchar_t *s) throw();
|
||||
|
||||
#ifdef WIN_LONG_PATH
|
||||
#ifdef Z7_LONG_PATH
|
||||
|
||||
const int kSuperPathType_UseOnlyMain = 0;
|
||||
const int kSuperPathType_UseOnlySuper = 1;
|
||||
@@ -92,16 +96,16 @@ int GetUseSuperPathType(CFSTR s) throw();
|
||||
bool GetSuperPath(CFSTR path, UString &superPath, bool onlyIfNew);
|
||||
bool GetSuperPaths(CFSTR s1, CFSTR s2, UString &d1, UString &d2, bool onlyIfNew);
|
||||
|
||||
#define USE_MAIN_PATH (__useSuperPathType != kSuperPathType_UseOnlySuper)
|
||||
#define USE_MAIN_PATH_2 (__useSuperPathType1 != kSuperPathType_UseOnlySuper && __useSuperPathType2 != kSuperPathType_UseOnlySuper)
|
||||
#define USE_MAIN_PATH (_useSuperPathType != kSuperPathType_UseOnlySuper)
|
||||
#define USE_MAIN_PATH_2 (_useSuperPathType1 != kSuperPathType_UseOnlySuper && _useSuperPathType2 != kSuperPathType_UseOnlySuper)
|
||||
|
||||
#define USE_SUPER_PATH (__useSuperPathType != kSuperPathType_UseOnlyMain)
|
||||
#define USE_SUPER_PATH_2 (__useSuperPathType1 != kSuperPathType_UseOnlyMain || __useSuperPathType2 != kSuperPathType_UseOnlyMain)
|
||||
#define USE_SUPER_PATH (_useSuperPathType != kSuperPathType_UseOnlyMain)
|
||||
#define USE_SUPER_PATH_2 (_useSuperPathType1 != kSuperPathType_UseOnlyMain || _useSuperPathType2 != kSuperPathType_UseOnlyMain)
|
||||
|
||||
#define IF_USE_MAIN_PATH int __useSuperPathType = GetUseSuperPathType(path); if (USE_MAIN_PATH)
|
||||
#define IF_USE_MAIN_PATH int _useSuperPathType = GetUseSuperPathType(path); if (USE_MAIN_PATH)
|
||||
#define IF_USE_MAIN_PATH_2(x1, x2) \
|
||||
int __useSuperPathType1 = GetUseSuperPathType(x1); \
|
||||
int __useSuperPathType2 = GetUseSuperPathType(x2); \
|
||||
int _useSuperPathType1 = GetUseSuperPathType(x1); \
|
||||
int _useSuperPathType2 = GetUseSuperPathType(x2); \
|
||||
if (USE_MAIN_PATH_2)
|
||||
|
||||
#else
|
||||
@@ -109,8 +113,18 @@ bool GetSuperPaths(CFSTR s1, CFSTR s2, UString &d1, UString &d2, bool onlyIfNew)
|
||||
#define IF_USE_MAIN_PATH
|
||||
#define IF_USE_MAIN_PATH_2(x1, x2)
|
||||
|
||||
#endif // WIN_LONG_PATH
|
||||
#endif // Z7_LONG_PATH
|
||||
|
||||
/*
|
||||
if (dirPrefix != NULL && (path) is relative)
|
||||
{
|
||||
(dirPrefix) will be used
|
||||
result (fullPath) will contain prefix part of (dirPrefix).
|
||||
}
|
||||
Current_Dir path can be used in 2 cases:
|
||||
1) if (path) is relative && dirPrefix == NULL
|
||||
2) for _WIN32: if (path) is absolute starting wuth "\"
|
||||
*/
|
||||
bool GetFullPath(CFSTR dirPrefix, CFSTR path, FString &fullPath);
|
||||
bool GetFullPath(CFSTR path, FString &fullPath);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user