mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[iso] update libcdio to latest
* Also remove MSG_176 from English version * Also perform additional cleanup and remove a Clang warning * Closes #224
This commit is contained in:
		
							parent
							
								
									f97f60d55a
								
							
						
					
					
						commit
						fcf16fed25
					
				
					 8 changed files with 338 additions and 223 deletions
				
			
		|  | @ -11,7 +11,10 @@ s/[ \t]*$// | |||
| 
 | ||||
| # remove the UI controls for "en-US" as they are just here for translators | ||||
| # 1,300 means we only do this for the the first 300 lines | ||||
| 1,300 {/g IDD_DIALOG/,/g IDD_MESSAGES/{/g IDD_MESSAGES/!d}} | ||||
| 1,300 {/^g IDD_DIALOG/,/^g IDD_MESSAGES/{/^g IDD_MESSAGES/!d}} | ||||
| 
 | ||||
| # also remove the "translated by" line for English | ||||
| 1,500{/^t MSG_176/d} | ||||
| 
 | ||||
| # output file *MUST* be CR/LF | ||||
| s/$/\r/ | ||||
|  | @ -367,7 +367,6 @@ static BOOL FormatFAT32(DWORD DriveIndex) | |||
| 	// Debug temp vars
 | ||||
| 	ULONGLONG FatNeeded, ClusterCount; | ||||
| 
 | ||||
| 	// TODO: use another lmsg for Large FAT32
 | ||||
| 	PrintStatus(0, TRUE, lmprintf(MSG_222, "Large FAT32")); | ||||
| 	VolumeId = GetVolumeID(); | ||||
| 
 | ||||
|  | @ -1439,7 +1438,7 @@ DWORD WINAPI FormatThread(LPVOID param) | |||
| 					goto out; | ||||
| 				} | ||||
| 				if ((bt == BT_UEFI) && (!iso_report.has_efi) && (iso_report.has_win7_efi)) { | ||||
| 					// TODO: (v1.4.0) check ISO with EFI only
 | ||||
| 					// TODO: Check ISO with EFI only
 | ||||
| 					PrintStatus(0, TRUE, lmprintf(MSG_232)); | ||||
| 					wim_image[0] = drive_name[0]; | ||||
| 					efi_dst[0] = drive_name[0]; | ||||
|  |  | |||
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							|  | @ -1519,3 +1519,102 @@ iso9660_ifs_is_xa (const iso9660_t * p_iso) | |||
|   if (!p_iso) return false; | ||||
|   return yep == p_iso->b_xa; | ||||
| } | ||||
| 
 | ||||
| static bool_3way_t | ||||
| iso_have_rr_traverse (iso9660_t *p_iso, const iso9660_stat_t *_root, | ||||
| 		      char **splitpath, uint64_t *pu_file_limit) | ||||
| { | ||||
|   unsigned offset = 0; | ||||
|   uint8_t *_dirbuf = NULL; | ||||
|   int ret; | ||||
|   bool_3way_t have_rr = nope; | ||||
| 
 | ||||
|   if (!splitpath[0]) return false; | ||||
| 
 | ||||
|   if (_root->type == _STAT_FILE) return nope; | ||||
|   if (*pu_file_limit == 0) return dunno; | ||||
| 
 | ||||
|   cdio_assert (_root->type == _STAT_DIR); | ||||
| 
 | ||||
|   _dirbuf = calloc(1, _root->secsize * ISO_BLOCKSIZE); | ||||
|   if (!_dirbuf) | ||||
|     { | ||||
|     cdio_warn("Couldn't calloc(1, %d)", _root->secsize * ISO_BLOCKSIZE); | ||||
|     return dunno; | ||||
|     } | ||||
| 
 | ||||
|   ret = iso9660_iso_seek_read (p_iso, _dirbuf, _root->lsn, _root->secsize); | ||||
|   if (ret!=ISO_BLOCKSIZE*_root->secsize) return false; | ||||
| 
 | ||||
|   while (offset < (_root->secsize * ISO_BLOCKSIZE)) | ||||
|     { | ||||
|       iso9660_dir_t *p_iso9660_dir = (void *) &_dirbuf[offset]; | ||||
|       iso9660_stat_t *p_stat; | ||||
| 
 | ||||
|       if (!iso9660_get_dir_len(p_iso9660_dir)) | ||||
| 	{ | ||||
| 	  offset++; | ||||
| 	  continue; | ||||
| 	} | ||||
| 
 | ||||
|       p_stat = _iso9660_dir_to_statbuf (p_iso9660_dir, p_iso->b_xa, | ||||
| 					p_iso->u_joliet_level); | ||||
|       have_rr = p_stat->rr.b3_rock; | ||||
|       if ( have_rr != yep) { | ||||
| 	have_rr = iso_have_rr_traverse (p_iso, p_stat, &splitpath[1], pu_file_limit); | ||||
|       } | ||||
|       if (have_rr != nope) { | ||||
| 	free (_dirbuf); | ||||
| 	return have_rr; | ||||
|       } | ||||
|       free(p_stat); | ||||
| 
 | ||||
|       offset += iso9660_get_dir_len(p_iso9660_dir); | ||||
|       *pu_file_limit = (*pu_file_limit)-1; | ||||
|       if ((*pu_file_limit) == 0) { | ||||
| 	free (_dirbuf); | ||||
| 	return dunno; | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|   cdio_assert (offset == (_root->secsize * ISO_BLOCKSIZE)); | ||||
| 
 | ||||
|   /* not found */ | ||||
|   free (_dirbuf); | ||||
|   return nope; | ||||
| } | ||||
| 
 | ||||
| /*!
 | ||||
|   Return "yup" if any file has Rock-Ridge extensions. Warning: this can | ||||
|   be time consuming. On an ISO 9600 image with lots of files but no Rock-Ridge | ||||
|   extensions, the entire directory structure will be scanned up to u_file_limit. | ||||
| 
 | ||||
|   @param p_iso the ISO-9660 file image to get data from | ||||
| 
 | ||||
|   @param u_file_limit the maximimum number of (non-rock-ridge) files | ||||
|   to consider before giving up and returning "dunno". | ||||
| 
 | ||||
|   "dunno" can also be returned if there was some error encountered | ||||
|   such as not being able to allocate memory in processing. | ||||
| 
 | ||||
| */ | ||||
| extern bool_3way_t | ||||
| iso9660_have_rr(iso9660_t *p_iso, uint64_t u_file_limit) | ||||
| { | ||||
|   iso9660_stat_t *p_root; | ||||
|   char *p_psz_splitpath[2] = {strdup("/"), strdup("")}; | ||||
|   bool_3way_t is_rr = nope; | ||||
| 
 | ||||
|   if (!p_iso) return false; | ||||
| 
 | ||||
|   p_root = _ifs_stat_root (p_iso); | ||||
|   if (!p_root) return dunno; | ||||
| 
 | ||||
|   if (u_file_limit == 0) u_file_limit = UINT64_MAX; | ||||
| 
 | ||||
|   is_rr = iso_have_rr_traverse (p_iso, p_root, p_psz_splitpath, &u_file_limit); | ||||
|   free(p_root); | ||||
|   // _cdio_strfreev (p_psz_splitpath);
 | ||||
| 
 | ||||
|   return is_rr; | ||||
| } | ||||
|  |  | |||
|  | @ -246,7 +246,7 @@ void add_dialog_command(int index, loc_cmd* lcmd) | |||
| { | ||||
| 	char str[128]; | ||||
| 	uint32_t i; | ||||
| 	if ((lcmd == NULL) || (index < 0) || (index >= ARRAYSIZE(loc_dlg))) { | ||||
| 	if ((lcmd == NULL) || (lcmd->txt[0] == NULL) || (index < 0) || (index >= ARRAYSIZE(loc_dlg))) { | ||||
| 		uprintf("localization: invalid parameter for add_dialog_command\n"); | ||||
| 		return; | ||||
| 	} | ||||
|  |  | |||
|  | @ -2099,10 +2099,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine | |||
| 	if ( (!get_supported_locales(loc_file)) | ||||
| 	  || ((selected_locale = ((locale_name == NULL)?get_locale_from_lcid(lcid, TRUE):get_locale_from_name(locale_name, TRUE))) == NULL) ) { | ||||
| 		uprintf("FATAL: Could not access locale!\n"); | ||||
| 		MessageBoxU(NULL, "The locale data is missing or invalid. This application will now exit." | ||||
| 			// TODO: remove this line for release!
 | ||||
| 			"\n\nTRANSLATORS: You need to add a 'v 1.0.0' line to your loc file. See the latest 'new_translation.loc'", | ||||
| 			"Fatal error", MB_ICONSTOP); | ||||
| 		MessageBoxU(NULL, "The locale data is missing or invalid. This application will now exit.", "Fatal error", MB_ICONSTOP); | ||||
| 		goto out; | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | |||
| IDD_DIALOG DIALOGEX 12, 12, 206, 329 | ||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||
| EXSTYLE WS_EX_APPWINDOW | ||||
| CAPTION "Rufus v1.4.0.327" | ||||
| CAPTION "Rufus v1.4.0.328" | ||||
| FONT 8, "MS Shell Dlg", 400, 0, 0x1 | ||||
| BEGIN | ||||
|     DEFPUSHBUTTON   "Start",IDC_START,94,291,50,14 | ||||
|  | @ -288,8 +288,8 @@ END | |||
| // | ||||
| 
 | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 1,4,0,327 | ||||
|  PRODUCTVERSION 1,4,0,327 | ||||
|  FILEVERSION 1,4,0,328 | ||||
|  PRODUCTVERSION 1,4,0,328 | ||||
|  FILEFLAGSMASK 0x3fL | ||||
| #ifdef _DEBUG | ||||
|  FILEFLAGS 0x1L | ||||
|  | @ -306,13 +306,13 @@ BEGIN | |||
|         BEGIN | ||||
|             VALUE "CompanyName", "Akeo Consulting (http://akeo.ie)" | ||||
|             VALUE "FileDescription", "Rufus" | ||||
|             VALUE "FileVersion", "1.4.0.327" | ||||
|             VALUE "FileVersion", "1.4.0.328" | ||||
|             VALUE "InternalName", "Rufus" | ||||
|             VALUE "LegalCopyright", "© 2011-2013 Pete Batard (GPL v3)" | ||||
|             VALUE "LegalTrademarks", "http://www.gnu.org/copyleft/gpl.html" | ||||
|             VALUE "OriginalFilename", "rufus.exe" | ||||
|             VALUE "ProductName", "Rufus" | ||||
|             VALUE "ProductVersion", "1.4.0.327" | ||||
|             VALUE "ProductVersion", "1.4.0.328" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|  |  | |||
|  | @ -36,7 +36,7 @@ | |||
| #include "smart.h" | ||||
| #include "hdd_vs_ufd.h" | ||||
| 
 | ||||
| 
 | ||||
| #if defined(RUFUS_TEST) | ||||
| /* Helper functions */ | ||||
| static uint8_t GetAtaDirection(uint8_t AtaCmd, uint8_t Features) { | ||||
| 	// Far from complete -- only the commands we *may* use.
 | ||||
|  | @ -352,6 +352,7 @@ BOOL Identify(HANDLE hPhysical) | |||
| 	_aligned_free(idd); | ||||
| 	return TRUE; | ||||
| } | ||||
| #endif | ||||
| 
 | ||||
| /* Generic SMART access. Kept for reference, as it doesn't work for USB to ATA/SATA bridges */ | ||||
| #if 0 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue