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];
|
||||
|
|
|
@ -1048,6 +1048,22 @@ lsn_t iso9660_get_dir_extent(const iso9660_dir_t *p_idr);
|
|||
*/
|
||||
char *iso9660_get_system_id(const iso9660_pvd_t *p_pvd);
|
||||
|
||||
/*!
|
||||
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.
|
||||
|
||||
*/
|
||||
bool_3way_t iso9660_have_rr(iso9660_t *p_iso, uint64_t u_file_limit);
|
||||
|
||||
/*!
|
||||
Get the system ID. psz_system_id is set to NULL if there
|
||||
is some problem in getting this and false is returned.
|
||||
|
|
|
@ -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…
Reference in a new issue