X-Git-Url: https://code.delx.au/refind/blobdiff_plain/ea0768929fa3b215a77375130c19ae0710947400..b04a842814ccc991ed93a52acbd7ac27768be686:/refind/main.c diff --git a/refind/main.c b/refind/main.c index 69e80fc..0cbf538 100644 --- a/refind/main.c +++ b/refind/main.c @@ -34,7 +34,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* - * Modifications copyright (c) 2012-2015 Roderick W. Smith + * Modifications copyright (c) 2012-2016 Roderick W. Smith * * Modifications distributed under the terms of the GNU General Public * License (GPL) version 3 (GPLv3), or (at your option) any later version. @@ -197,7 +197,7 @@ static VOID AboutrEFInd(VOID) AddMenuInfoLine(&AboutMenu, PoolPrint(L"rEFInd Version %s", REFIND_VERSION)); AddMenuInfoLine(&AboutMenu, L""); AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer"); - AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2015 Roderick W. Smith"); + AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012-2016 Roderick W. Smith"); AddMenuInfoLine(&AboutMenu, L"Portions Copyright (c) Intel Corporation and others"); AddMenuInfoLine(&AboutMenu, L"Distributed under the terms of the GNU GPLv3 license"); AddMenuInfoLine(&AboutMenu, L""); @@ -410,8 +410,12 @@ EFI_STATUS StartEFIImageList(IN EFI_DEVICE_PATH **DevicePaths, if (ErrorInStep != NULL) *ErrorInStep = 3; } - if (IsDriver) + if (IsDriver) { + // Below should have no effect on most systems, but works + // around bug with some EFIs that prevents filesystem drivers + // from binding to partitions. ConnectFilesystemDriver(ChildImageHandle); + } // re-open file handles ReinitRefitLib(); @@ -1402,11 +1406,12 @@ static BOOLEAN ScanLoaderDir(IN REFIT_VOLUME *Volume, IN CHAR16 *Path, IN CHAR16 MyStriCmp(Extension, L".icns") || MyStriCmp(Extension, L".png") || (MyStriCmp(DirEntry->FileName, FALLBACK_BASENAME) && (MyStriCmp(Path, L"EFI\\BOOT"))) || - StriSubCmp(L"shell", DirEntry->FileName) || + FilenameIn(Volume, Path, DirEntry->FileName, SHELL_NAMES) || IsSymbolicLink(Volume, Path, DirEntry) || /* is symbolic link */ HasSignedCounterpart(Volume, Path, DirEntry->FileName) || /* a file with same name plus ".efi.signed" is present */ - FilenameIn(Volume, Path, DirEntry->FileName, GlobalConfig.DontScanFiles)) + FilenameIn(Volume, Path, DirEntry->FileName, GlobalConfig.DontScanFiles)) { continue; // skip this + } if (Path) SPrint(FileName, 255, L"\\%s\\%s", Path, DirEntry->FileName);