mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[ui] use GNU fdisk's sys_type.h for FS type description
* also fixed persistent FS tooltip when no device is attached
This commit is contained in:
		
							parent
							
								
									df42dadd08
								
							
						
					
					
						commit
						7280b0c45b
					
				
					 5 changed files with 163 additions and 78 deletions
				
			
		|  | @ -150,6 +150,7 @@ | ||||||
|     <ClInclude Include="..\msapi_utf8.h" /> |     <ClInclude Include="..\msapi_utf8.h" /> | ||||||
|     <ClInclude Include="..\rufus.h" /> |     <ClInclude Include="..\rufus.h" /> | ||||||
|     <ClInclude Include="..\license.h" /> |     <ClInclude Include="..\license.h" /> | ||||||
|  |     <ClInclude Include="..\sys_types.h" /> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <Manifest Include="..\common_controls_and_elevation.manifest" /> |     <Manifest Include="..\common_controls_and_elevation.manifest" /> | ||||||
|  |  | ||||||
|  | @ -32,6 +32,9 @@ | ||||||
|     <ClInclude Include="..\license.h"> |     <ClInclude Include="..\license.h"> | ||||||
|       <Filter>Header Files</Filter> |       <Filter>Header Files</Filter> | ||||||
|     </ClInclude> |     </ClInclude> | ||||||
|  |     <ClInclude Include="..\sys_types.h"> | ||||||
|  |       <Filter>Header Files</Filter> | ||||||
|  |     </ClInclude> | ||||||
|   </ItemGroup> |   </ItemGroup> | ||||||
|   <ItemGroup> |   <ItemGroup> | ||||||
|     <None Include="..\rufus.ico"> |     <None Include="..\rufus.ico"> | ||||||
|  |  | ||||||
|  | @ -26,6 +26,10 @@ const char* additional_copyrights = | ||||||
| "http://pcunleashed.com\r\n" | "http://pcunleashed.com\r\n" | ||||||
| "Freeware\r\n" | "Freeware\r\n" | ||||||
| "\r\n" | "\r\n" | ||||||
|  | "FS Type description from by GNU fdisk:\r\n" | ||||||
|  | "http://www.gnu.org/software/fdisk\r\n" | ||||||
|  | "GNU General Public License (GPL) v3 or later\r\n" | ||||||
|  | "\r\n" | ||||||
| "About and License dialogs inspired by WinSCP\r\n" | "About and License dialogs inspired by WinSCP\r\n" | ||||||
| "Copyright (c) 2000-2011 Martin Prikryl\r\n" | "Copyright (c) 2000-2011 Martin Prikryl\r\n" | ||||||
| "GNU General Public License (GPL) v3 or later"; | "GNU General Public License (GPL) v3 or later"; | ||||||
|  |  | ||||||
							
								
								
									
										89
									
								
								rufus.c
									
										
									
									
									
								
							
							
						
						
									
										89
									
								
								rufus.c
									
										
									
									
									
								
							|  | @ -47,6 +47,7 @@ | ||||||
| #include "msapi_utf8.h" | #include "msapi_utf8.h" | ||||||
| #include "resource.h" | #include "resource.h" | ||||||
| #include "rufus.h" | #include "rufus.h" | ||||||
|  | #include "sys_types.h" | ||||||
| 
 | 
 | ||||||
| #if !defined(GUID_DEVINTERFACE_DISK) | #if !defined(GUID_DEVINTERFACE_DISK) | ||||||
| const GUID GUID_DEVINTERFACE_DISK = { 0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b} }; | const GUID GUID_DEVINTERFACE_DISK = { 0x53f56307L, 0xb6bf, 0x11d0, {0x94, 0xf2, 0x00, 0xa0, 0xc9, 0x1e, 0xfb, 0x8b} }; | ||||||
|  | @ -123,87 +124,17 @@ void StatusPrintf(const char *format, ...) | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Convert a partition type to its human readable form |  * Convert a partition type to its human readable form using | ||||||
|  * http://www.win.tue.nl/~aeb/partitions/partition_types-1.html
 |  * (slightly modified) entries from GNU fdisk | ||||||
|  */ |  */ | ||||||
| static const char* GetPartitionType(BYTE Type) | static const char* GetPartitionType(BYTE Type) | ||||||
| { | { | ||||||
| 	switch(Type) { | 	int i; | ||||||
| 	case 0x00:  | 	for (i=0; i<ARRAYSIZE(msdos_systypes); i++) { | ||||||
| 		return "Unused"; | 		if (msdos_systypes[i].type == Type) | ||||||
| 	case 0x01: | 			return msdos_systypes[i].name; | ||||||
| 		return "DOS FAT12"; |  | ||||||
| 	case 0x02: |  | ||||||
| 		return "Logical Disk Manager"; |  | ||||||
| 	case 0x04: |  | ||||||
| 		return "DOS 3.0+ FAT16"; |  | ||||||
| 	case 0x05: |  | ||||||
| 		return "Extended Partition"; |  | ||||||
| 	case 0x06: |  | ||||||
| 		return "DOS 3.31+ FAT16 (Huge)"; |  | ||||||
| 	case 0x07: |  | ||||||
| 		return "NTFS"; |  | ||||||
| 	case 0x0b: |  | ||||||
| 		return "Win95 FAT32"; |  | ||||||
| 	case 0x0c: |  | ||||||
| 		return "Win95 FAT32 (LBA)"; |  | ||||||
| 	case 0x0e: |  | ||||||
| 		return "Win95 FAT16 (LBA)"; |  | ||||||
| 	case 0x0f: |  | ||||||
| 		return "Win95 Extended (LBA)"; |  | ||||||
| 	case 0x11: |  | ||||||
| 		return "Hidden DOS FAT12"; |  | ||||||
| 	case 0x12: |  | ||||||
| 		return "Diagnostics Partition"; |  | ||||||
| 	case 0x14: |  | ||||||
| 		return "Hidden DOS 3.0+ FAT16"; |  | ||||||
| 	case 0x16: |  | ||||||
| 		return "Hidden DOS 3.31+ FAT16 (Huge)"; |  | ||||||
| 	case 0x17: |  | ||||||
| 		return "Hidden NTFS"; |  | ||||||
| 	case 0x1b: |  | ||||||
| 		return "Hidden Win95 FAT32"; |  | ||||||
| 	case 0x1c: |  | ||||||
| 		return "Hidden Win95 FAT32 (LBA)"; |  | ||||||
| 	case 0x1e: |  | ||||||
| 		return "Hidden Win95 FAT16 (LBA)"; |  | ||||||
| 	case 0x1f: |  | ||||||
| 		return "Hidden Win95 Extended (LBA)"; |  | ||||||
| 	case 0x27: |  | ||||||
| 		return "Windows Recovery"; |  | ||||||
| 	case 0x42: |  | ||||||
| 		return "Windows 2000 Dynamic Extended"; |  | ||||||
| 	case 0x63: |  | ||||||
| 		return "Unix System V"; |  | ||||||
| 	case 0x82: |  | ||||||
| 		return "Linux Swap"; |  | ||||||
| 	case 0x83: |  | ||||||
| 		return "Linux"; |  | ||||||
| 	case 0x85: |  | ||||||
| 		return "Linux Extended"; |  | ||||||
| 	case 0x8e: |  | ||||||
| 		return "Linux LVM"; |  | ||||||
| 	case 0x9f: |  | ||||||
| 	case 0xa6: |  | ||||||
| 	case 0xa9: |  | ||||||
| 		return "BSD"; |  | ||||||
| 	case 0xa8: |  | ||||||
| 	case 0xaf: |  | ||||||
| 		return "OS-X"; |  | ||||||
| 	case 0xab: |  | ||||||
| 		return "OS-X (Boot)"; |  | ||||||
| 	case 0xeb: |  | ||||||
| 		return "BeOS"; |  | ||||||
| 	case 0xfa: |  | ||||||
| 		return "Bochs"; |  | ||||||
| 	case 0xfb: |  | ||||||
| 	case 0xfc: |  | ||||||
| 		return "VMWare"; |  | ||||||
| 	case 0xfd: |  | ||||||
| 		return "Linux RAID"; |  | ||||||
| 	default: |  | ||||||
| 		return "Unknown"; |  | ||||||
| 	} | 	} | ||||||
|  | 	return "Unknown"; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  | @ -351,7 +282,7 @@ static BOOL GetDriveInfo(void) | ||||||
| 				if (DriveLayout->PartitionEntry[i].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) { | 				if (DriveLayout->PartitionEntry[i].Mbr.PartitionType != PARTITION_ENTRY_UNUSED) { | ||||||
| 					uprintf("Partition #%d:\n", ++nb_partitions); | 					uprintf("Partition #%d:\n", ++nb_partitions); | ||||||
| 					if (hFSTooltip == NULL) { | 					if (hFSTooltip == NULL) { | ||||||
| 						safe_sprintf(tmp, sizeof(tmp), "Existing file system: %s (0x%02X)", | 						safe_sprintf(tmp, sizeof(tmp), "Current file system: %s (0x%02X)", | ||||||
| 							GetPartitionType(DriveLayout->PartitionEntry[i].Mbr.PartitionType), | 							GetPartitionType(DriveLayout->PartitionEntry[i].Mbr.PartitionType), | ||||||
| 							DriveLayout->PartitionEntry[i].Mbr.PartitionType); | 							DriveLayout->PartitionEntry[i].Mbr.PartitionType); | ||||||
| 						hFSTooltip = CreateTooltip(hFileSystem, tmp, -1); | 						hFSTooltip = CreateTooltip(hFileSystem, tmp, -1); | ||||||
|  | @ -413,7 +344,9 @@ static BOOL PopulateProperties(int ComboIndex) | ||||||
| 	IGNORE_RETVAL(ComboBox_ResetContent(hFileSystem)); | 	IGNORE_RETVAL(ComboBox_ResetContent(hFileSystem)); | ||||||
| 	SetWindowTextA(hLabel, ""); | 	SetWindowTextA(hLabel, ""); | ||||||
| 	DestroyTooltip(hDeviceTooltip); | 	DestroyTooltip(hDeviceTooltip); | ||||||
|  | 	DestroyTooltip(hFSTooltip); | ||||||
| 	hDeviceTooltip = NULL; | 	hDeviceTooltip = NULL; | ||||||
|  | 	hFSTooltip = NULL; | ||||||
| 	memset(&SelectedDrive, 0, sizeof(SelectedDrive)); | 	memset(&SelectedDrive, 0, sizeof(SelectedDrive)); | ||||||
| 
 | 
 | ||||||
| 	if (ComboIndex < 0) { | 	if (ComboIndex < 0) { | ||||||
|  |  | ||||||
							
								
								
									
										144
									
								
								sys_types.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								sys_types.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,144 @@ | ||||||
|  | /*
 | ||||||
|  |     GNU fdisk - a clone of Linux fdisk. | ||||||
|  | 
 | ||||||
|  |     Copyright (C) 2006 | ||||||
|  |     Free Software Foundation, Inc. | ||||||
|  | 
 | ||||||
|  |     This program is free software; you can redistribute it and/or modify | ||||||
|  |     it under the terms of the GNU General Public License as published by | ||||||
|  |     the Free Software Foundation; either version 3 of the License, or | ||||||
|  |     (at your option) any later version. | ||||||
|  | 
 | ||||||
|  |     This program is distributed in the hope that it will be useful, | ||||||
|  |     but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |     GNU General Public License for more details. | ||||||
|  | 
 | ||||||
|  |     You should have received a copy of the GNU General Public License | ||||||
|  |     along with this program; if not, write to the Free Software | ||||||
|  |     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | ||||||
|  | */ | ||||||
|  | 
 | ||||||
|  | #ifndef SYS_TYPES_H_INCLUDED | ||||||
|  | #define SYS_TYPES_H_INCLUDED | ||||||
|  | 
 | ||||||
|  | typedef struct { | ||||||
|  | 	unsigned char type; | ||||||
|  | 	const char *name; | ||||||
|  | } SysType; | ||||||
|  | 
 | ||||||
|  | #define N_(String) String | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* The system types for msdos partition tables
 | ||||||
|  |  * Needed for lfdisk and some interface improvements | ||||||
|  |  */ | ||||||
|  | SysType msdos_systypes[] = { | ||||||
|  | 	{ 0x00, N_("Empty") }, | ||||||
|  | 	{ 0x01, N_("FAT12") }, | ||||||
|  | 	{ 0x02, N_("XENIX root") }, | ||||||
|  | 	{ 0x03, N_("XENIX usr") }, | ||||||
|  | 	{ 0x04, N_("Small FAT16") }, | ||||||
|  | 	{ 0x05, N_("Extended") }, | ||||||
|  | 	{ 0x06, N_("FAT16") }, | ||||||
|  | 	{ 0x07, N_("NTFS") }, | ||||||
|  | 	{ 0x08, N_("AIX") }, | ||||||
|  | 	{ 0x09, N_("AIX Bootable") }, | ||||||
|  | 	{ 0x0a, N_("OS/2 Boot Manager") }, | ||||||
|  | 	{ 0x0b, N_("FAT32") }, | ||||||
|  | 	{ 0x0c, N_("FAT32 LBA") }, | ||||||
|  | 	{ 0x0e, N_("FAT16 LBA") }, | ||||||
|  | 	{ 0x0f, N_("Extended LBA") }, | ||||||
|  | 	{ 0x10, N_("OPUS") }, | ||||||
|  | 	{ 0x11, N_("Hidden FAT12") }, | ||||||
|  | 	{ 0x12, N_("Compaq Diagnostics") }, | ||||||
|  | 	{ 0x14, N_("Hidden Small FAT16") }, | ||||||
|  | 	{ 0x16, N_("Hidden FAT16") }, | ||||||
|  | 	{ 0x17, N_("Hidden NTFS") }, | ||||||
|  | 	{ 0x18, N_("AST SmartSleep") }, | ||||||
|  | 	{ 0x1b, N_("Hidden FAT32") }, | ||||||
|  | 	{ 0x1c, N_("Hidden FAT32 LBA") }, | ||||||
|  | 	{ 0x1e, N_("Hidden FAT16 LBA") }, | ||||||
|  | 	{ 0x24, N_("NEC DOS") }, | ||||||
|  | 	{ 0x27, N_("Hidden NTFS WinRE") }, | ||||||
|  | 	{ 0x39, N_("Plan 9") }, | ||||||
|  | 	{ 0x3c, N_("PMagic recovery") }, | ||||||
|  | 	{ 0x40, N_("Venix 80286") }, | ||||||
|  | 	{ 0x41, N_("PPC PReP Boot") }, | ||||||
|  | 	{ 0x42, N_("SFS") }, | ||||||
|  | 	{ 0x4d, N_("QNX4.x") }, | ||||||
|  | 	{ 0x4e, N_("QNX4.x 2nd Partition") }, | ||||||
|  | 	{ 0x4f, N_("QNX4.x 3rd Partition") }, | ||||||
|  | 	{ 0x50, N_("OnTrack DM") }, | ||||||
|  | 	{ 0x51, N_("OnTrackDM6 Aux1") }, | ||||||
|  | 	{ 0x52, N_("CP/M") }, | ||||||
|  | 	{ 0x53, N_("OnTrackDM6 Aux3") }, | ||||||
|  | 	{ 0x54, N_("OnTrack DM6") }, | ||||||
|  | 	{ 0x55, N_("EZ Drive") }, | ||||||
|  | 	{ 0x56, N_("Golden Bow") }, | ||||||
|  | 	{ 0x5c, N_("Priam Edisk") }, | ||||||
|  | 	{ 0x61, N_("SpeedStor") }, | ||||||
|  | 	{ 0x63, N_("GNU HURD/SysV") }, | ||||||
|  | 	{ 0x64, N_("Netware 286") }, | ||||||
|  | 	{ 0x65, N_("Netware 386") }, | ||||||
|  | 	{ 0x70, N_("DiskSec MultiBoot") }, | ||||||
|  | 	{ 0x75, N_("PC/IX") }, | ||||||
|  | 	{ 0x80, N_("Minix <1.4a") }, | ||||||
|  | 	{ 0x81, N_("Minix >1.4b") }, | ||||||
|  | 	{ 0x82, N_("Linux Swap") }, | ||||||
|  | 	{ 0x83, N_("Linux") }, | ||||||
|  | 	{ 0x84, N_("OS/2 Hidden C:") }, | ||||||
|  | 	{ 0x85, N_("Linux Extended") }, | ||||||
|  | 	{ 0x86, N_("NTFS Volume Set") }, | ||||||
|  | 	{ 0x87, N_("NTFS Volume Set") }, | ||||||
|  | 	{ 0x88, N_("Linux Plaintext") }, | ||||||
|  | 	{ 0x8e, N_("Linux LVM") }, | ||||||
|  | 	{ 0x93, N_("Amoeba") }, | ||||||
|  | 	/*This guys created a seperate partition for badblocks?! */ | ||||||
|  | 	{ 0x94, N_("Amoeba BBT") }, | ||||||
|  | 	{ 0x9f, N_("BSD/OS") }, | ||||||
|  | 	{ 0xa0, N_("Thinkpad Hibernation") }, | ||||||
|  | 	{ 0xa5, N_("FreeBSD") }, | ||||||
|  | 	{ 0xa6, N_("OpenBSD") }, | ||||||
|  | 	{ 0xa7, N_("NeXTSTEP") }, | ||||||
|  | 	{ 0xa8, N_("Darwin UFS") }, | ||||||
|  | 	{ 0xa9, N_("NetBSD") }, | ||||||
|  | 	{ 0xab, N_("Darwin Boot") }, | ||||||
|  | 	{ 0xaf, N_("HFS/HFS+") }, | ||||||
|  | 	{ 0xb7, N_("BSDI") }, | ||||||
|  | 	{ 0xb8, N_("BSDI Swap") }, | ||||||
|  | 	/* Beware of the Hidden wizard */ | ||||||
|  | 	{ 0xbb, N_("Boot Wizard Hidden") }, | ||||||
|  | 	{ 0xbe, N_("Solaris Boot") }, | ||||||
|  | 	{ 0xbf, N_("Solaris") }, | ||||||
|  | 	{ 0xc1, N_("DRDOS/2 FAT12") }, | ||||||
|  | 	{ 0xc4, N_("DRDOS/2 smFAT16") }, | ||||||
|  | 	{ 0xc6, N_("DRDOS/2 FAT16") }, | ||||||
|  | 	/* Reminds me of Rush - 2112 */ | ||||||
|  | 	{ 0xc7, N_("Syrinx") }, | ||||||
|  | 	{ 0xda, N_("Non-FS Data") }, | ||||||
|  | 	{ 0xdb, N_("CP/M") }, | ||||||
|  | 	{ 0xde, N_("Dell Utility") }, | ||||||
|  | 	/* Should 0x20 be DontBootIt then? */ | ||||||
|  | 	{ 0xdf, N_("BootIt") }, | ||||||
|  | 	{ 0xe1, N_("DOS Access") }, | ||||||
|  | 	{ 0xe3, N_("DOS R/O") }, | ||||||
|  | 	/*I sense some strange déjà vu */ | ||||||
|  | 	{ 0xe4, N_("SpeedStor") }, | ||||||
|  | 	{ 0xfb, N_("VMware VMFS") }, | ||||||
|  | 	{ 0xfc, N_("VMware VMKCORE") }, | ||||||
|  | 	{ 0xeb, N_("BeOS") }, | ||||||
|  | 	{ 0xee, N_("GPT") }, | ||||||
|  | 	{ 0xef, N_("EFI FAT") }, | ||||||
|  | 	{ 0xf0, N_("Linux/PA-RISC Boot") }, | ||||||
|  | 	{ 0xf1, N_("SpeedStor") }, | ||||||
|  | 	{ 0xf2, N_("DOS secondary") }, | ||||||
|  | 	/* Are these guys trying for a Guinness record or something? */ | ||||||
|  | 	{ 0xf4, N_("SpeedStor") }, | ||||||
|  | 	{ 0xfd, N_("Linux RAID Auto") }, | ||||||
|  | 	{ 0xfe, N_("LANstep") }, | ||||||
|  | 	{ 0xff, N_("XENIX BBT") }, | ||||||
|  | 	{ 0, NULL } | ||||||
|  | }; | ||||||
|  | 
 | ||||||
|  | #endif | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue