View | Details | Raw Unified | Return to bug 272077
Collapse All | Expand All

(-)b/stand/lua/core.lua (-4 / +24 lines)
Lines 222-238 function core.kernelList() Link Here
222
		return core.cached_kernels
222
		return core.cached_kernels
223
	end
223
	end
224
224
225
	local k = loader.getenv("kernel")
225
	local default_kernel = loader.getenv("kernel")
226
	local v = loader.getenv("kernels")
226
	local v = loader.getenv("kernels")
227
	local autodetect = loader.getenv("kernels_autodetect") or ""
227
	local autodetect = loader.getenv("kernels_autodetect") or ""
228
228
229
	local kernels = {}
229
	local kernels = {}
230
	local unique = {}
230
	local unique = {}
231
	local i = 0
231
	local i = 0
232
	if k ~= nil then
232
233
	if default_kernel then
233
		i = i + 1
234
		i = i + 1
234
		kernels[i] = k
235
		kernels[i] = default_kernel
235
		unique[k] = true
236
		unique[default_kernel] = true
236
	end
237
	end
237
238
238
	if v ~= nil then
239
	if v ~= nil then
Lines 260-265 function core.kernelList() Link Here
260
		return core.cached_kernels
261
		return core.cached_kernels
261
	end
262
	end
262
263
264
	local present = {}
265
263
	-- Automatically detect other bootable kernel directories using a
266
	-- Automatically detect other bootable kernel directories using a
264
	-- heuristic.  Any directory in /boot that contains an ordinary file
267
	-- heuristic.  Any directory in /boot that contains an ordinary file
265
	-- named "kernel" is considered eligible.
268
	-- named "kernel" is considered eligible.
Lines 288-295 function core.kernelList() Link Here
288
			unique[file] = true
291
			unique[file] = true
289
		end
292
		end
290
293
294
		present[file] = true
295
291
		::continue::
296
		::continue::
292
	end
297
	end
298
299
	-- If we found more than one kernel, prune the "kernel" specified kernel
300
	-- off of the list if it wasn't found during traversal.  If we didn't
301
	-- actually find any kernels, we just assume that they know what they're
302
	-- doing and leave it alone.
303
	if default_kernel and not present[default_kernel] and #kernels > 1 then
304
		for i = 1, #kernels do
305
			if i == #kernels then
306
				kernels[i] = nil
307
			else
308
				kernels[i] = kernels[i + 1]
309
			end
310
		end
311
	end
312
293
	core.cached_kernels = kernels
313
	core.cached_kernels = kernels
294
	return core.cached_kernels
314
	return core.cached_kernels
295
end
315
end

Return to bug 272077