From b407512248034dee23186febfc5e6c9597b77912 Mon Sep 17 00:00:00 2001 From: Mounir IDRASSI Date: Sat, 30 Jan 2016 00:39:43 +0100 Subject: MacOSX: Support creation exFAT volumes on OSX using the built-in command newfs_exfat --- src/Main/CommandLineInterface.cpp | 2 ++ src/Main/Forms/VolumeCreationWizard.cpp | 9 +++++++-- src/Main/Forms/VolumeFormatOptionsWizardPage.cpp | 1 + src/Main/TextUserInterface.cpp | 10 ++++++++-- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/Main/CommandLineInterface.cpp b/src/Main/CommandLineInterface.cpp index 281b1aec..566fdb21 100644 --- a/src/Main/CommandLineInterface.cpp +++ b/src/Main/CommandLineInterface.cpp @@ -316,6 +316,8 @@ namespace VeraCrypt { ArgFilesystem = VolumeCreationOptions::FilesystemType::MacOsExt; } + else if (str.IsSameAs (L"exFAT", false)) + ArgFilesystem = VolumeCreationOptions::FilesystemType::exFAT; #elif defined (TC_FREEBSD) || defined (TC_SOLARIS) else if (str.IsSameAs (L"UFS", false)) ArgFilesystem = VolumeCreationOptions::FilesystemType::UFS; diff --git a/src/Main/Forms/VolumeCreationWizard.cpp b/src/Main/Forms/VolumeCreationWizard.cpp index 4b63ce2f..1e4c2513 100755 --- a/src/Main/Forms/VolumeCreationWizard.cpp +++ b/src/Main/Forms/VolumeCreationWizard.cpp @@ -445,13 +445,18 @@ namespace VeraCrypt switch (SelectedFilesystemType) { +#if defined (TC_LINUX) case VolumeCreationOptions::FilesystemType::Ext2: fsFormatter = "mkfs.ext2"; break; case VolumeCreationOptions::FilesystemType::Ext3: fsFormatter = "mkfs.ext3"; break; case VolumeCreationOptions::FilesystemType::Ext4: fsFormatter = "mkfs.ext4"; break; + case VolumeCreationOptions::FilesystemType::NTFS: fsFormatter = "mkfs.ntfs"; break; + case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "mkfs.exfat"; break; +#elif defined (TC_MACOSX) case VolumeCreationOptions::FilesystemType::MacOsExt: fsFormatter = "newfs_hfs"; break; + case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "newfs_exfat"; break; +#elif defined (TC_FREEBSD) || defined (TC_SOLARIS) case VolumeCreationOptions::FilesystemType::UFS: fsFormatter = "newfs" ; break; - case VolumeCreationOptions::FilesystemType::NTFS: fsFormatter = "mkfs.ntfs" ; break; - case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "mkfs.exfat" ; break; +#endif default: break; } diff --git a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp index 6e0aa432..8a60a346 100644 --- a/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp +++ b/src/Main/Forms/VolumeFormatOptionsWizardPage.cpp @@ -39,6 +39,7 @@ namespace VeraCrypt FilesystemTypeChoice->Append (L"exFAT", (void *) VolumeCreationOptions::FilesystemType::exFAT); #elif defined (TC_MACOSX) FilesystemTypeChoice->Append (L"Mac OS Extended", (void *) VolumeCreationOptions::FilesystemType::MacOsExt); + FilesystemTypeChoice->Append (L"exFAT", (void *) VolumeCreationOptions::FilesystemType::exFAT); #elif defined (TC_FREEBSD) || defined (TC_SOLARIS) FilesystemTypeChoice->Append (L"UFS", (void *) VolumeCreationOptions::FilesystemType::UFS); #endif diff --git a/src/Main/TextUserInterface.cpp b/src/Main/TextUserInterface.cpp index d0d25041..632552b7 100644 --- a/src/Main/TextUserInterface.cpp +++ b/src/Main/TextUserInterface.cpp @@ -740,6 +740,7 @@ namespace VeraCrypt ShowInfo (L" 7) exFAT"); filesystems.push_back (VolumeCreationOptions::FilesystemType::exFAT); #elif defined (TC_MACOSX) ShowInfo (L" 3) Mac OS Extended"); filesystems.push_back (VolumeCreationOptions::FilesystemType::MacOsExt); + ShowInfo (L" 4) exFAT"); filesystems.push_back (VolumeCreationOptions::FilesystemType::exFAT); #elif defined (TC_FREEBSD) || defined (TC_SOLARIS) ShowInfo (L" 3) UFS"); filesystems.push_back (VolumeCreationOptions::FilesystemType::UFS); #endif @@ -827,13 +828,18 @@ namespace VeraCrypt switch (options->Filesystem) { +#if defined (TC_LINUX) case VolumeCreationOptions::FilesystemType::Ext2: fsFormatter = "mkfs.ext2"; break; case VolumeCreationOptions::FilesystemType::Ext3: fsFormatter = "mkfs.ext3"; break; case VolumeCreationOptions::FilesystemType::Ext4: fsFormatter = "mkfs.ext4"; break; - case VolumeCreationOptions::FilesystemType::MacOsExt: fsFormatter = "newfs_hfs"; break; - case VolumeCreationOptions::FilesystemType::UFS: fsFormatter = "newfs" ; break; case VolumeCreationOptions::FilesystemType::NTFS: fsFormatter = "mkfs.ntfs"; break; case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "mkfs.exfat"; break; +#elif defined (TC_MACOSX) + case VolumeCreationOptions::FilesystemType::MacOsExt: fsFormatter = "newfs_hfs"; break; + case VolumeCreationOptions::FilesystemType::exFAT: fsFormatter = "newfs_exfat"; break; +#elif defined (TC_FREEBSD) || defined (TC_SOLARIS) + case VolumeCreationOptions::FilesystemType::UFS: fsFormatter = "newfs" ; break; +#endif default: throw ParameterIncorrect (SRC_POS); } -- cgit v1.2.3