Author: kevans
Date: Mon Jun 11 01:32:18 2018
New Revision: 334939
URL: https://svnweb.freebsd.org/changeset/base/334939

Log:
  lualoader: Allow brand-*.lua for adding new brands
  
  dteske@, I believe, had originally pointed out that lualoader failed to
  allow logo-*.lua for new logos to be added. When correcting this mistake, I
  failed to do the same for brands.
  
  Correct the sub-mistake: creating new brands is almost identical to creating
  new logos, except one must use `drawer.addBrand` and 'graphic' is the only
  valid key for a branddef at the moment.
  
  While here, I've added `drawer.default_brand` to be set to name of brand to
  be used (e.g. 'fbsd', project default).
  
  Eventually this whole goolash will be documented.
  
  Reported by:  kmoore, iXsystems

Modified:
  head/stand/lua/drawer.lua

Modified: head/stand/lua/drawer.lua
==============================================================================
--- head/stand/lua/drawer.lua   Mon Jun 11 01:22:01 2018        (r334938)
+++ head/stand/lua/drawer.lua   Mon Jun 11 01:32:18 2018        (r334939)
@@ -51,6 +51,22 @@ local function menuEntryName(drawing_menu, entry)
        return entry.name
 end
 
+local function getBranddef(brand)
+       if brand == nil then
+               return nil
+       end
+       -- Look it up
+       local branddef = drawer.branddefs[brand]
+
+       -- Try to pull it in
+       if branddef == nil then
+               try_include('brand-' .. brand)
+               branddef = drawer.branddefs[brand]
+       end
+
+       return branddef
+end
+
 local function getLogodef(logo)
        if logo == nil then
                return nil
@@ -79,6 +95,8 @@ fbsd_brand = {
 none = {""}
 
 -- Module exports
+drawer.default_brand = 'fbsd'
+
 drawer.menu_name_handlers = {
        -- Menu name handlers should take the menu being drawn and entry being
        -- drawn as parameters, and return the name of the item.
@@ -315,8 +333,13 @@ function drawer.drawbrand()
        local y = tonumber(loader.getenv("loader_brand_y")) or
            drawer.brand_position.y
 
-       local graphic = drawer.branddefs[loader.getenv("loader_brand")] or
-           fbsd_brand
+       local branddef = getBranddef(loader.getenv("loader_brand"))
+
+       if branddef == nil then
+               branddef = getBranddef(drawer.default_brand)
+       end
+
+       local graphic = branddef.graphic
 
        x = x + drawer.shift.x
        y = y + drawer.shift.y
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to