| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Allow MENU EXIT to "exit" to an arbitrary menu. This is really just a
variant of "MENU GOTO", but it allows displaying an exit marker.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two bugs:
- We didn't strip ^ symbols inheriting from MENU LABEL to MENU TITLE
- We did consider_for_hotkey() with the wrong menu (the submenu
itself, as opposed to the parent menu.)
As part of these changes, make a function available to create an
uninitialized, mutable refstring (that can be constructed and then
used as a refstring, that is.)
|
| |
|
|
|
|
|
|
| |
When we realloc() a block larger, try to protect the free block
following it from being immediately allocated by something else by
placing it at the end of the freelist instead of the beginning.
|
|
|
|
|
|
| |
Change the realloc() implementation to allow in-place growth. This is
an important step in handling files without knowing their sizes a
priori.
|
| |
|
|
|
|
|
| |
Correctly make it so MENU TITLE can be inherited upward as MENU TITLE
unless one is provided.
|
|
|
|
|
| |
Color directives would always end up attached to the root menu, no
matter what menu declaration they where actually located in.
|
|
|
|
|
| |
When encountering disabled entries, we want to keep going. Given that
these particular keys have nonstandard scrolling, but the handling there.
|
|
|
|
|
| |
The handling of the scrollbar for insanely huge menus was broken,
causing it to disappear off the bottom of the menu window.
|
|
|
|
|
| |
For each menu, remember what the current position of the cursor and
the scroll is.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Allow either "MENU LABEL" or "MENU TITLE" to default for each other.
|
| |
|
| |
|
|
|
|
|
|
| |
Since we store pointers to struct menu_entry, we can't put it in
storage that is subject to realloc(). Accordingly, make menu_entries
an indirect array instead.
|
|
|
|
|
| |
With this edit, the submenu system seems to have minimal
functionality.
|
| |
|
|
|
|
|
| |
Switch consistently to using refstrings; we now seem to have original
functionality back.
|
|
|
|
|
| |
Make refstr_get() handle NULL correctly; force it to be an inline
since it seems to make no difference for code size.
|
| |
|
| |
|
|
|
|
|
| |
Actually implement strnlen(), which was in the header files but not in
the library.
|
|
|
|
|
| |
Actually implement the library function syslinux_ipappend_strings(),
which had been in the header files but not in the actual library.
|
|
|
|
| |
Development snapshot before converting to refstrings
|
| |
|
|
|
|
|
|
|
| |
The Bochs VESA BIOS returns a value other than 1 for the number of
banks in unbanked modes. Ignore the number of banks if bank_size == 0
(the spec says that for unbanked modes, banks == 1 && bank_size == 0;
for banked modes banks > 1 and bank_size != 0).
|
|
|
|
|
| |
With the command line size being set to 2K, it's common to need longer
runs. Allow runs up to 8K.
|
|
|
|
|
|
| |
Intel Classic R+ computer with Adaptec 1542CP BIOS 1.02 passes garbage
in sp_drive, and the drive number originally passed in DL does not
have 80h bit set. Check for this case and compensate if appropriate.
|
|
|
|
|
|
| |
Use a dynamic array instead of a static array which we would simply
crash on overflow. Always make it a power-of-two sized so we don't
end up doing a realloc() and a full array copy on every extend.
|
|
|
|
|
| |
In the simple menu system, if we're showing a scrollbar at all, always
show at least one unit of it.
|
|
|
|
|
|
|
| |
Support putting virtual kernels in high memory instead of using a
dedicated segment for it. This both reduces the low memory footprint
by 64K, and allows for functionally unlimited labels (tested with over
a hundred thousand.)
|
|
|
|
|
| |
Make "Hello, World!" a little bit more plain, but do print out its
arguments, if any. Useful for testing.
|
|
|
|
|
|
| |
Don't close the A20 gate (restore to previous state); leave it open.
This is good for performance, but also avoids a nasty race condition
when leaving protected mode to then quickly re-enter protected mode.
|
|
|
|
|
| |
Clean up the interface to simple_pm_call so we generally can avoid a
bunch of push/call/pop/ret boilerplate.
|
|
|
|
|
|
|
|
|
| |
Refactor the bcopy routine to be able to reuse the pm entry and exit
portion to call other "simple" protected-mode routines ("simple" in
the sense that no interrupt thunking support is present or expected.)
Note: consider whether or not it would be preferrable to move the
thunking support into low memory and have it be always present.
|
|
|
|
| |
Suppress a warning about unused arguments.
|
|
|
|
| |
We do dword accesses to the row buffer, so align it to 4 bytes.
|
|
|
|
|
| |
Add macros __aligned() (which takes a byte count), and __alignas()
(which takes a type or expression whose type is used, same as sizeof).
|
|
|
|
| |
Minor cleanups for clarity
|
|
|
|
|
| |
Move the debugging function to a separate header file, so we can
include it at will when convenient.
|
|
|
|
|
|
|
|
|
| |
Set the window size to 2 GB for linear framebuffer, lest the
calculation:
l = min(bytes, win_size-win_off);
... incorrectly returns zero when win_off == 0.
|