loader: no-TERM_EMU is broken now
If TERM_EMU is not defined, we do not have curx variable. Use conout mode for efi and expose get_pos() for i386.
This commit is contained in:
parent
14e0010729
commit
2a0e2c88db
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=347391
@ -138,7 +138,7 @@ efi_cons_rawputchar(int c)
|
|||||||
if (c == '\t') {
|
if (c == '\t') {
|
||||||
int n;
|
int n;
|
||||||
|
|
||||||
n = 8 - ((curx + 8) % 8);
|
n = 8 - ((conout->Mode->CursorColumn + 8) % 8);
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
efi_cons_rawputchar(' ');
|
efi_cons_rawputchar(' ');
|
||||||
} else {
|
} else {
|
||||||
|
@ -49,6 +49,8 @@ static int vidc_ischar(void);
|
|||||||
|
|
||||||
static int vidc_started;
|
static int vidc_started;
|
||||||
|
|
||||||
|
void get_pos(int *x, int *y);
|
||||||
|
|
||||||
#ifdef TERM_EMU
|
#ifdef TERM_EMU
|
||||||
#define MAXARGS 8
|
#define MAXARGS 8
|
||||||
#define DEFAULT_FGCOLOR 7
|
#define DEFAULT_FGCOLOR 7
|
||||||
@ -57,7 +59,6 @@ static int vidc_started;
|
|||||||
void end_term(void);
|
void end_term(void);
|
||||||
void bail_out(int c);
|
void bail_out(int c);
|
||||||
void vidc_term_emu(int c);
|
void vidc_term_emu(int c);
|
||||||
void get_pos(int *x, int *y);
|
|
||||||
void curs_move(int *_x, int *_y, int x, int y);
|
void curs_move(int *_x, int *_y, int x, int y);
|
||||||
void write_char(int c, int fg, int bg);
|
void write_char(int c, int fg, int bg);
|
||||||
void scroll_up(int rows, int fg, int bg);
|
void scroll_up(int rows, int fg, int bg);
|
||||||
@ -138,6 +139,11 @@ vidc_rawputchar(int c)
|
|||||||
|
|
||||||
if (c == '\t') {
|
if (c == '\t') {
|
||||||
int n;
|
int n;
|
||||||
|
#ifndef TERM_EMU
|
||||||
|
int curx, cury;
|
||||||
|
|
||||||
|
get_pos(&curx, %cury);
|
||||||
|
#endif
|
||||||
|
|
||||||
n = 8 - ((curx + 8) % 8);
|
n = 8 - ((curx + 8) % 8);
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
@ -190,8 +196,6 @@ vidc_rawputchar(int c)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef TERM_EMU
|
|
||||||
|
|
||||||
/* Get cursor position on the screen. Result is in edx. Sets
|
/* Get cursor position on the screen. Result is in edx. Sets
|
||||||
* curx and cury appropriately.
|
* curx and cury appropriately.
|
||||||
*/
|
*/
|
||||||
@ -208,6 +212,8 @@ get_pos(int *x, int *y)
|
|||||||
*y = (v86.edx & 0xff00) >> 8;
|
*y = (v86.edx & 0xff00) >> 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TERM_EMU
|
||||||
|
|
||||||
/* Move cursor to x rows and y cols (0-based). */
|
/* Move cursor to x rows and y cols (0-based). */
|
||||||
void
|
void
|
||||||
curs_move(int *_x, int *_y, int x, int y)
|
curs_move(int *_x, int *_y, int x, int y)
|
||||||
|
Loading…
Reference in New Issue
Block a user