diff --git a/src/iso.c b/src/iso.c index 4b54deff..0086fea1 100644 --- a/src/iso.c +++ b/src/iso.c @@ -57,6 +57,7 @@ int64_t iso_blocking_status = -1; static const char* psz_extract_dir; static const char* bootmgr_efi_name = "bootmgr.efi"; static const char* ldlinux_name = "ldlinux.sys"; +static const char* syslinux_v5_file = "ldlinux.c32"; static const char* efi_dirname = "/efi/boot"; static const char* isolinux_name[] = { "isolinux.cfg", "syslinux.cfg", "extlinux.conf"}; static const char* pe_dirname[] = { "/i386", "/minint" }; @@ -115,6 +116,11 @@ static __inline BOOL check_iso_props(const char* psz_dirname, BOOL* is_syslinux_ *is_syslinux_cfg = TRUE; } + // Check for a syslinux v5.0 file anywhere + if (safe_stricmp(psz_basename, syslinux_v5_file) == 0) { + iso_report.has_syslinux_v5 = TRUE; + } + // Check for an old incompatible c32 file anywhere for (i=0; i4GB file: %s\r\n Uses EFI: %s%s\r\n Uses Bootmgr: %s\r\n Uses WinPE: %s%s\r\n Uses isolinux: %s\n", + uprintf("ISO label: '%s'\r\n Size: %lld bytes\r\n Has a >4GB file: %s\r\n Uses EFI: %s%s\r\n Uses Bootmgr: %s\r\n Uses WinPE: %s%s\r\n Uses isolinux: %s (v%s)\n", iso_report.label, iso_report.projected_size, iso_report.has_4GB_file?"Yes":"No", (iso_report.has_efi || iso_report.has_win7_efi)?"Yes":"No", (iso_report.has_win7_efi && (!iso_report.has_efi))?" (win7_x64)":"", iso_report.has_bootmgr?"Yes":"No", - IS_WINPE(iso_report.winpe)?"Yes":"No", (iso_report.uses_minint)?" (with /minint)":"", iso_report.has_isolinux?"Yes":"No"); - if (iso_report.has_isolinux) { + IS_WINPE(iso_report.winpe)?"Yes":"No", (iso_report.uses_minint)?" (with /minint)":"", iso_report.has_isolinux?"Yes":"No", + iso_report.has_syslinux_v5?"5.0 or later":"4.x or earlier"); + if (iso_report.has_isolinux && !iso_report.has_syslinux_v5) { for (i=0; i