Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
9af457ed
Commit
9af457ed
authored
Aug 14, 2004
by
Markus Amsler
Committed by
Alexandre Julliard
Aug 14, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add DOS editing key support in BUFFERED INPUT.
parent
87115b23
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
7 deletions
+25
-7
int21.c
dlls/winedos/int21.c
+22
-7
vga.c
dlls/winedos/vga.c
+3
-0
No files found.
dlls/winedos/int21.c
View file @
9af457ed
...
@@ -246,6 +246,19 @@ typedef struct
...
@@ -246,6 +246,19 @@ typedef struct
#define EL_Serial 0x04
#define EL_Serial 0x04
#define EL_Memory 0x05
#define EL_Memory 0x05
/* BIOS Keyboard Scancodes */
#define KEY_LEFT 0x4B
#define KEY_RIGHT 0x4D
#define KEY_UP 0x48
#define KEY_DOWN 0x50
#define KEY_IC 0x52
/* insert char */
#define KEY_DC 0x53
/* delete char */
#define KEY_BACKSPACE 0x0E
#define KEY_HOME 0x47
#define KEY_END 0x4F
#define KEY_NPAGE 0x49
#define KEY_PPAGE 0x51
struct
magic_device
struct
magic_device
{
{
...
@@ -1148,19 +1161,21 @@ static WORD INT21_BufferedInput( CONTEXT86 *context, BYTE *ptr, WORD capacity )
...
@@ -1148,19 +1161,21 @@ static WORD INT21_BufferedInput( CONTEXT86 *context, BYTE *ptr, WORD capacity )
if
(
ascii
==
'\r'
||
ascii
==
'\n'
)
if
(
ascii
==
'\r'
||
ascii
==
'\n'
)
{
{
/*
* FIXME: What should be echoed here?
*/
DOSVM_PutChar
(
'\r'
);
DOSVM_PutChar
(
'\n'
);
ptr
[
length
]
=
'\r'
;
ptr
[
length
]
=
'\r'
;
return
length
+
1
;
return
length
+
1
;
}
}
/*
/*
*
FIXME: This function is supposed to support
*
DOS handles only backspace and KEY_LEFT
*
DOS editing keys...
*
perhaps we should do more
*/
*/
if
(
ascii
==
'\b'
||
scan
==
KEY_LEFT
)
{
if
(
length
==
0
)
continue
;
DOSVM_PutChar
(
'\b'
);
length
--
;
continue
;
}
/*
/*
* If the buffer becomes filled to within one byte of
* If the buffer becomes filled to within one byte of
...
...
dlls/winedos/vga.c
View file @
9af457ed
...
@@ -808,7 +808,10 @@ void VGA_PutChar(BYTE ascii)
...
@@ -808,7 +808,10 @@ void VGA_PutChar(BYTE ascii)
switch
(
ascii
)
{
switch
(
ascii
)
{
case
'\b'
:
case
'\b'
:
if
(
vga_text_x
)
if
(
vga_text_x
)
{
vga_text_x
--
;
vga_text_x
--
;
VGA_PutCharAt
(
vga_text_x
,
vga_text_y
,
' '
,
0
);
}
break
;
break
;
case
'\t'
:
case
'\t'
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment