Changeset 22052 for trunk/src/kernel32/conbuffervio.cpp
- Timestamp:
- Dec 30, 2012, 1:02:33 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/conbuffervio.cpp
r21916 r22052 112 112 register UCHAR ucChar; 113 113 APIRET rc; 114 U LONGRow;114 USHORT Row; 115 115 USHORT Column; 116 116 int numchar; … … 179 179 pConsoleGlobals->Options.ulSpeakerDuration); 180 180 break; 181 #if 0 181 182 182 case 8: /* Backspace */ 183 // not correct if deleting expanded tab character 184 rc = VioGetCurPos(&Row, &Column, 0); 185 if(!rc) { 186 187 } 183 { 184 BOOL go = FALSE; 188 185 if (pConsoleBuffer->coordCursorPosition.X > 0) 186 { 189 187 pConsoleBuffer->coordCursorPosition.X--; 190 191 //@@@PH overwrite old character 192 *(pConsoleBuffer->ppszLine[pConsoleBuffer->coordCursorPosition.Y] + 193 pConsoleBuffer->coordCursorPosition.X * 2) = 0x20; 188 go = TRUE; 189 } 190 else if (pConsoleBuffer->coordCursorPosition.Y > 0) 191 { 192 pConsoleBuffer->coordCursorPosition.Y--; 193 pConsoleBuffer->coordCursorPosition.X = pConsoleBuffer->coordBufferSize.X - 1; 194 go = TRUE; 195 } 196 if (go) 197 { 198 *(pConsoleBuffer->ppszLine[pConsoleBuffer->coordCursorPosition.Y] + 199 pConsoleBuffer->coordCursorPosition.X * 2) = 0x20; 200 VioWrtCharStr((PCH)" ", 1, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 201 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 202 } 194 203 break; 204 } 195 205 196 206 case 9: /* Tab */ 197 {198 rc = VioWrite199 207 pConsoleBuffer->coordCursorPosition.X = 200 208 (pConsoleBuffer->coordCursorPosition.X … … 206 214 pConsoleBuffer->coordBufferSize.X) 207 215 { 208 pConsoleBuffer->coordCursorPosition.X = 0;216 pConsoleBuffer->coordCursorPosition.X %= pConsoleBuffer->coordBufferSize.X; 209 217 pConsoleBuffer->coordCursorPosition.Y++; 210 218 … … 214 222 if (pConsoleBuffer->dwConsoleMode & ENABLE_WRAP_AT_EOL_OUTPUT) 215 223 { 216 iConsoleBufferScrollUp(pConsoleBuffer, /* scroll one line up */217 1);218 pConsoleBuffer->coordCursorPosition.Y --;224 VioScrollUp(0, 0, pConsoleBuffer->coordWindowSize.Y-1, pConsoleBuffer->coordWindowSize.X-1, 225 1, &filler[0], 0); 226 pConsoleBuffer->coordCursorPosition.Y = pConsoleBuffer->coordWindowSize.Y-1; 219 227 } 220 228 } 221 229 } 222 break; 223 #endif 230 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 231 break; 232 224 233 case 13: /* CARRIAGE RETURN */ 225 234 dprintf(("CR"));
Note:
See TracChangeset
for help on using the changeset viewer.