Skip to content

Commit

Permalink
diz implementation changes, other refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
alabuzhev committed Mar 4, 2016
1 parent ad9d1e5 commit daa77bd
Show file tree
Hide file tree
Showing 14 changed files with 252 additions and 183 deletions.
8 changes: 7 additions & 1 deletion far/changelog
@@ -1,4 +1,10 @@
drkns 03.03.2016 21:29:48 +0200 - build 4569
drkns 04.03.2016 22:12:43 +0200 - build 4570

1. Немного переделана работа с описаниями - теперь в файлы должно вноситься меньше изменений при обновлении.

2. Прочий рефакторинг.

drkns 03.03.2016 21:29:48 +0200 - build 4569

1. Уточнение 4568.

Expand Down
50 changes: 50 additions & 0 deletions far/codepage.hpp
Expand Up @@ -37,11 +37,61 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

namespace unicode
{
// TODO: replace after decommissioning VC10
// #define NOT_PTR(T) typename T, typename std::enable_if<!std::is_pointer<T>::value>::type* = nullptr
// typename<NOT_PTR(T)>

#define NOT_PTR(result_type) typename std::enable_if<!std::is_pointer<T>::value, result_type>::type

size_t to(uintptr_t Codepage, const wchar_t* Data, size_t Size, char* Buffer, size_t BufferSize, bool* UsedDefaultChar = nullptr);
template<class T>
NOT_PTR(size_t) to(uintptr_t Codepage, const T& Data, char* Buffer, size_t BufferSize, bool* UsedDefaultChar = nullptr)
{
return to(Codepage, Data.data(), Data.size(), Buffer, BufferSize, UsedDefaultChar);
}
template<class T>
NOT_PTR(size_t) to(uintptr_t Codepage, const wchar_t* Data, size_t Size, T& Buffer, bool* UsedDefaultChar = nullptr)
{
return to(Codepage, Data, Size, Buffer.data(), Buffer.size(), UsedDefaultChar);
}
template<class T, class Y>
NOT_PTR(size_t) to(uintptr_t Codepage, const T& Data, Y& Buffer, bool* UsedDefaultChar = nullptr)
{
return to(Codepage, Data.data(), Data.size(), Buffer.data(), Buffer.size(), UsedDefaultChar);
}

std::string to(uintptr_t Codepage, const wchar_t* Data, size_t Size, bool* UsedDefaultChar = nullptr);
template<class T>
NOT_PTR(std::string) to(uintptr_t Codepage, const T& Data, bool* UsedDefaultChar = nullptr)
{
return to(Codepage, Data.data(), Data.size(), UsedDefaultChar);
}

size_t from(uintptr_t Codepage, const char* Data, size_t Size, wchar_t* Buffer, size_t BufferSize);
template<class T>
NOT_PTR(size_t) from(uintptr_t Codepage, const T& Data, wchar_t* Buffer, size_t BufferSize)
{
return from(Codepage, Data.data(), Data.size(), Buffer, BufferSize);
}
template<class T>
NOT_PTR(size_t) from(uintptr_t Codepage, const char* Data, size_t Size, T& Buffer)
{
return from(Codepage, Data, Size, Buffer.data(), Buffer.size());
}
template<class T, class Y>
NOT_PTR(size_t) from(uintptr_t Codepage, const T& Data, Y& Buffer)
{
return from(Codepage, Data.data(), Data.size(), Buffer.data(), Buffer.size());
}

string from(uintptr_t Codepage, const char* Data, size_t Size);
template<class T>
NOT_PTR(string) from(uintptr_t Codepage, const T& Data)
{
return from(Codepage, Data.data(), Data.size());
}

#undef NOT_PTR
}

void swap_bytes(const void* Src, void* Dst, size_t SizeInBytes);
Expand Down
2 changes: 1 addition & 1 deletion far/copy.cpp
Expand Up @@ -1937,7 +1937,7 @@ COPY_CODES ShellCopy::CopyFileTree(const string& Dest)
{
if (!strRenamedName.empty())
{
DestDiz.DeleteDiz(strSelName,strSelShortName);
DestDiz.Erase(strSelName,strSelShortName);
SrcPanel->CopyDiz(strSelName,strSelShortName,strRenamedName,strRenamedName,&DestDiz);
}
else
Expand Down

0 comments on commit daa77bd

Please sign in to comment.