Index: src/ch/ch.rc =================================================================== diff -u -r4797e4b6b266900bfdcdf4ca6eda47c216ad9db1 -rdcc6234ed612a75910b8900704c9d564096a037a --- src/ch/ch.rc (.../ch.rc) (revision 4797e4b6b266900bfdcdf4ca6eda47c216ad9db1) +++ src/ch/ch.rc (.../ch.rc) (revision dcc6234ed612a75910b8900704c9d564096a037a) @@ -854,8 +854,8 @@ IDS_BUFFER_QUEUE_DEPTH "Buffer queue depth" IDS_FASTMOVEBEFOREBLOCK_STRING "Use fast move before blocking" IDS_USECUSTOMNAMING "Use custom naming" - IDS_CUSTOMNAME_FIRST "Name format for first copy (use %name)" - IDS_CUSTOMNAME_SUBSEQUENT "Name format for the subsequent copies (use %name, %count)" + IDS_CUSTOMNAME_FIRST "Name format for first copy (use %name, %ext)" + IDS_CUSTOMNAME_SUBSEQUENT "Name format for the subsequent copies (use %name, %ext, %count)" END STRINGTABLE @@ -976,8 +976,8 @@ STRINGTABLE BEGIN - IDS_FIRSTCOPY_STRING "%name - copy" - IDS_NEXTCOPY_STRING "%name - copy (%count)" + IDS_FIRSTCOPY_STRING "%name - copy%ext" + IDS_NEXTCOPY_STRING "%name - copy (%count)%ext" IDS_NOTFOUND_STRING "File not found (doesn't exist)" IDS_BYTE_STRING "B" IDS_KBYTE_STRING "kB" Index: src/ch/langs/polish.lng =================================================================== diff -u -r4797e4b6b266900bfdcdf4ca6eda47c216ad9db1 -rdcc6234ed612a75910b8900704c9d564096a037a Binary files differ Index: src/libchcore/TDestinationPathProvider.cpp =================================================================== diff -u -ref2ea2589f6eeed54f8001fee72936198172ceed -rdcc6234ed612a75910b8900704c9d564096a037a --- src/libchcore/TDestinationPathProvider.cpp (.../TDestinationPathProvider.cpp) (revision ef2ea2589f6eeed54f8001fee72936198172ceed) +++ src/libchcore/TDestinationPathProvider.cpp (.../TDestinationPathProvider.cpp) (revision dcc6234ed612a75910b8900704c9d564096a037a) @@ -105,7 +105,9 @@ // set the dest path TString strCheckPath = m_strFirstAltName; - strCheckPath.Replace(_T("%name"), pathFilename.ToString()); + strCheckPath.Replace(_T("%name"), pathFilename.GetFileTitle().ToString()); + strCheckPath.Replace(_T("%ext"), pathFilename.GetExtension().ToString()); + TSmartPath pathCheckPath(PathFromWString(strCheckPath)); // when adding to strDstPath check if the path already exists - if so - try again @@ -114,7 +116,8 @@ while(m_spFilesystem->PathExist(m_pathDestinationBase + pathCheckPath)) { strCheckPath = strFmt; - strCheckPath.Replace(_T("%name"), pathFilename.ToString()); + strCheckPath.Replace(_T("%name"), pathFilename.GetFileTitle().ToString()); + strCheckPath.Replace(_T("%ext"), pathFilename.GetExtension().ToString()); strCheckPath.Replace(_T("%count"), boost::lexical_cast(++iCounter).c_str()); pathCheckPath.FromString(strCheckPath); } Index: src/libchcore/TTaskConfigVerifier.cpp =================================================================== diff -u -rd18db617f4727a237c94b59af9b4328f829eda16 -rdcc6234ed612a75910b8900704c9d564096a037a --- src/libchcore/TTaskConfigVerifier.cpp (.../TTaskConfigVerifier.cpp) (revision d18db617f4727a237c94b59af9b4328f829eda16) +++ src/libchcore/TTaskConfigVerifier.cpp (.../TTaskConfigVerifier.cpp) (revision dcc6234ed612a75910b8900704c9d564096a037a) @@ -27,7 +27,7 @@ void TTaskConfigVerifier::VerifyAndUpdate(TConfig& rConfig, log_file* pLog) { TString strFirstFormat = GetTaskPropValue(rConfig); - if(strFirstFormat.Find(L"%name") == TString::npos) + if(strFirstFormat.Find(L"%name") == TString::npos || strFirstFormat.Find(L"%ext") == TString::npos) { TString strDefaultFormat = TaskPropData::GetDefaultValue(); if(pLog) @@ -42,7 +42,8 @@ } TString strSubsequentFormat = GetTaskPropValue(rConfig); - if(strSubsequentFormat.Find(L"%name") == TString::npos || strSubsequentFormat.Find(L"%count") == TString::npos) + if(strSubsequentFormat.Find(L"%name") == TString::npos || strSubsequentFormat.Find(L"%count") == TString::npos + || strSubsequentFormat.Find(L"%ext") == TString::npos) { TString strDefaultFormat = TaskPropData::GetDefaultValue(); if(pLog) Index: src/libchcore/TTaskConfiguration.h =================================================================== diff -u -rd18db617f4727a237c94b59af9b4328f829eda16 -rdcc6234ed612a75910b8900704c9d564096a037a --- src/libchcore/TTaskConfiguration.h (.../TTaskConfiguration.h) (revision d18db617f4727a237c94b59af9b4328f829eda16) +++ src/libchcore/TTaskConfiguration.h (.../TTaskConfiguration.h) (revision dcc6234ed612a75910b8900704c9d564096a037a) @@ -138,8 +138,8 @@ TASK_PROPERTY(eTO_IgnoreDirectories, bool, _T("Operation.IgnoreDirectories"), false); // Naming settings - TASK_PROPERTY(eTO_AlternateFilenameFormatString_First, TString, _T("Naming.AlternateFilenameFormatFirst"), _T("%name - copy")); - TASK_PROPERTY(eTO_AlternateFilenameFormatString_AfterFirst, TString, _T("Naming.AlternateFilenameFormatAfterFirst"), _T("%name - copy (%count)")); + TASK_PROPERTY(eTO_AlternateFilenameFormatString_First, TString, _T("Naming.AlternateFilenameFormatFirst"), _T("%name - copy%ext")); + TASK_PROPERTY(eTO_AlternateFilenameFormatString_AfterFirst, TString, _T("Naming.AlternateFilenameFormatAfterFirst"), _T("%name - copy (%count)%ext")); ///////////////////////////////////////////////////////////////////////////////////////////// // other properties names