Disabled stanzas are not completely ignored

  • Joe van Tunen
    Joe van Tunen

    I have some stanzas that look like this:

    menuentry "shellx64_2" {
    icon \efi\refind\icons\tool_shell.icns
    loader \efi\tools\shellx64_2beta.efi

    During scan, I get errors like this:
    "Warning: Attempt to load icon of the wrong size from '\efi\refind\icons\tool_shell.icns'"

    I think this means the code is trying to load the icon even though I have the stanza set to disabled. The icon causing the warning is from rEFInd's binary package. I guess it's not appropriately sized for boot loader options which are supposed to use the os type icons instead of the tool type or volume type icons.

    The simplest fix would be to move "disabled" to the top of the stanza, then have the code ignore all other options if Entry->Enabled is false. There's no point loading the icon or doing any other work if the stanza is disabled. This change would lead to different behaviors depending on where the disabled option is placed. In that case, the code could be changed to store all the options and then do work on those options after the stanza is finished being read as long as one of the read options is not "disabled". This might be necessary if you add "override" and "remove" options for existing scanned boot loaders.