Mercurial > vba-linux
comparison 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 |
comparison
equal
deleted
inserted
replaced
0:8ced16adf2e1 | 1:f9f4f1b99eed |
---|---|
1 // Archive/Common/ItemNameUtils.cpp | |
2 | |
3 #include "StdAfx.h" | |
4 | |
5 #include "ItemNameUtils.h" | |
6 | |
7 namespace NArchive { | |
8 namespace NItemName { | |
9 | |
10 static const wchar_t kOSDirDelimiter = WCHAR_PATH_SEPARATOR; | |
11 static const wchar_t kDirDelimiter = L'/'; | |
12 | |
13 UString MakeLegalName(const UString &name) | |
14 { | |
15 UString zipName = name; | |
16 zipName.Replace(kOSDirDelimiter, kDirDelimiter); | |
17 return zipName; | |
18 } | |
19 | |
20 UString GetOSName(const UString &name) | |
21 { | |
22 UString newName = name; | |
23 newName.Replace(kDirDelimiter, kOSDirDelimiter); | |
24 return newName; | |
25 } | |
26 | |
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 } | |
36 | |
37 bool HasTailSlash(const AString &name, UINT codePage) | |
38 { | |
39 if (name.IsEmpty()) | |
40 return false; | |
41 LPCSTR prev = | |
42 #ifdef _WIN32 | |
43 CharPrevExA((WORD)codePage, name, &name[name.Length()], 0); | |
44 #else | |
45 (LPCSTR)(name) + (name.Length() - 1); | |
46 #endif | |
47 return (*prev == '/'); | |
48 } | |
49 | |
50 #ifndef _WIN32 | |
51 UString WinNameToOSName(const UString &name) | |
52 { | |
53 UString newName = name; | |
54 newName.Replace(L'\\', kOSDirDelimiter); | |
55 return newName; | |
56 } | |
57 #endif | |
58 | |
59 }} |