Author: pschweitzer
Date: Sat Oct 17 23:01:19 2015
New Revision: 69579
URL:
http://svn.reactos.org/svn/reactos?rev=69579&view=rev
Log:
[SHELL32]
Enable formatting a Ext volume from GUI.
Patch by Peter Hater
Modified:
trunk/reactos/boot/bootdata/hivesft.inf
trunk/reactos/dll/win32/shell32/dialogs/drive.cpp
Modified: trunk/reactos/boot/bootdata/hivesft.inf
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesft.inf?…
==============================================================================
--- trunk/reactos/boot/bootdata/hivesft.inf [iso-8859-1] (original)
+++ trunk/reactos/boot/bootdata/hivesft.inf [iso-8859-1] Sat Oct 17 23:01:19 2015
@@ -1094,6 +1094,7 @@
HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","FAT",0x00000000,"ufat.dll"
HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","FAT32",0x00000000,"ufat.dll"
HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","FATX",0x00000000,"ufatx.dll"
+HKLM,"SOFTWARE\ReactOS\ReactOS\CurrentVersion\IFS","EXT2",0x00000000,"uext2.dll"
; Winlogon settings
HKLM,"SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Winlogon","ConsoleShell",0x00020000,"%SystemRoot%\system32\cmd.exe"
Modified: trunk/reactos/dll/win32/shell32/dialogs/drive.cpp
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/dialogs/…
==============================================================================
--- trunk/reactos/dll/win32/shell32/dialogs/drive.cpp [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/dialogs/drive.cpp [iso-8859-1] Sat Oct 17 23:01:19
2015
@@ -91,6 +91,11 @@
else
ClusterSize = 2048;
}
+ else if (!wcsicmp(szFs, L"EXT2"))
+ {
+ // auto block size calculation
+ ClusterSize = 0;
+ }
else
return FALSE;
@@ -200,7 +205,7 @@
if (SendMessageW(hDlgCtrl, CB_GETLBTEXT, iSelIndex, (LPARAM)wszBuf) == CB_ERR)
return;
- szDrive[0] = pContext->Drive + 'A';
+ szDrive[0] = pContext->Drive + L'A';
if (!GetDiskFreeSpaceExW(szDrive, &FreeBytesAvailableUser,
&TotalNumberOfBytes, NULL))
return;
@@ -273,6 +278,25 @@
SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
}
ClusterSize *= 2;
+ }
+ }
+ else if (!wcsicmp(wszBuf, L"EXT2"))
+ {
+ if (!GetDefaultClusterSize(wszBuf, &ClusterSize, &TotalNumberOfBytes))
+ {
+ TRACE("EXT2 is not supported on hdd larger than 32T current %lu\n",
TotalNumberOfBytes.QuadPart);
+ SendMessageW(hDlgCtrl, CB_DELETESTRING, iSelIndex, 0);
+ return;
+ }
+
+ if (LoadStringW(shell32_hInstance, IDS_DEFAULT_CLUSTER_SIZE, wszBuf,
_countof(wszBuf)))
+ {
+ hDlgCtrl = GetDlgItem(hwndDlg, 28680);
+ SendMessageW(hDlgCtrl, CB_RESETCONTENT, 0, 0);
+ lIndex = SendMessageW(hDlgCtrl, CB_ADDSTRING, 0, (LPARAM)wszBuf);
+ if (lIndex != CB_ERR)
+ SendMessageW(hDlgCtrl, CB_SETITEMDATA, lIndex, (LPARAM)ClusterSize);
+ SendMessageW(hDlgCtrl, CB_SETCURSEL, 0, 0);
}
}
else
@@ -415,7 +439,7 @@
DWORD ClusterSize;
/* set volume path */
- szDrive[0] = pContext->Drive;
+ szDrive[0] = pContext->Drive + L'A';
/* get filesystem */
hDlgCtrl = GetDlgItem(hwndDlg, 28677);