Mercurial > vba-linux
view src/win32/7zip/7z/CPP/7zip/Archive/Common/ItemNameUtils.cpp @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line source
1 // Archive/Common/ItemNameUtils.cpp3 #include "StdAfx.h"5 #include "ItemNameUtils.h"7 namespace NArchive {8 namespace NItemName {10 static const wchar_t kOSDirDelimiter = WCHAR_PATH_SEPARATOR;11 static const wchar_t kDirDelimiter = L'/';13 UString MakeLegalName(const UString &name)14 {15 UString zipName = name;16 zipName.Replace(kOSDirDelimiter, kDirDelimiter);17 return zipName;18 }20 UString GetOSName(const UString &name)21 {22 UString newName = name;23 newName.Replace(kDirDelimiter, kOSDirDelimiter);24 return newName;25 }27 UString GetOSName2(const UString &name)28 {29 if (name.IsEmpty())30 return UString();31 UString newName = GetOSName(name);32 if (newName[newName.Length() - 1] == kOSDirDelimiter)33 newName.Delete(newName.Length() - 1);34 return newName;35 }37 bool HasTailSlash(const AString &name, UINT codePage)38 {39 if (name.IsEmpty())40 return false;41 LPCSTR prev =42 #ifdef _WIN3243 CharPrevExA((WORD)codePage, name, &name[name.Length()], 0);44 #else45 (LPCSTR)(name) + (name.Length() - 1);46 #endif47 return (*prev == '/');48 }50 #ifndef _WIN3251 UString WinNameToOSName(const UString &name)52 {53 UString newName = name;54 newName.Replace(L'\\', kOSDirDelimiter);55 return newName;56 }57 #endif59 }}