Changeset 22059 for trunk/src/kernel32/conbuffervio.cpp
- Timestamp:
- Jan 10, 2013, 10:47:04 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/conbuffervio.cpp
r22052 r22059 265 265 numchar = numchar - ulCounter; 266 266 267 if(pConsoleBuffer->coordCursorPosition.X + numchar > pConsoleBuffer->coordWindowSize.X)267 while (numchar) 268 268 { 269 int tmp = pConsoleBuffer->coordWindowSize.X - pConsoleBuffer->coordCursorPosition.X; 270 271 VioWrtCharStr(&pszBuffer[ulCounter], tmp, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 272 ulCounter += tmp; 273 numchar -= tmp; 274 275 pConsoleBuffer->coordCursorPosition.X = 0; 276 pConsoleBuffer->coordCursorPosition.Y++; 277 if(pConsoleBuffer->coordCursorPosition.Y >= pConsoleBuffer->coordWindowSize.Y) { 278 dprintf(("scrollup")); 279 VioScrollUp(0, 0, pConsoleBuffer->coordWindowSize.Y-1, pConsoleBuffer->coordWindowSize.X-1, 280 1, &filler[0], 0); 281 pConsoleBuffer->coordCursorPosition.Y = pConsoleBuffer->coordWindowSize.Y-1; 282 } 283 VioWrtCharStr(&pszBuffer[ulCounter], numchar, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 284 pConsoleBuffer->coordCursorPosition.X += numchar; 285 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 269 if(pConsoleBuffer->coordCursorPosition.X + numchar > pConsoleBuffer->coordWindowSize.X) 270 { 271 int tmp = pConsoleBuffer->coordWindowSize.X - pConsoleBuffer->coordCursorPosition.X; 272 273 VioWrtCharStr(&pszBuffer[ulCounter], tmp, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 274 ulCounter += tmp; 275 numchar -= tmp; 276 277 pConsoleBuffer->coordCursorPosition.X = 0; 278 pConsoleBuffer->coordCursorPosition.Y++; 279 if(pConsoleBuffer->coordCursorPosition.Y >= pConsoleBuffer->coordWindowSize.Y) { 280 dprintf(("scrollup")); 281 VioScrollUp(0, 0, pConsoleBuffer->coordWindowSize.Y-1, pConsoleBuffer->coordWindowSize.X-1, 282 1, &filler[0], 0); 283 pConsoleBuffer->coordCursorPosition.Y = pConsoleBuffer->coordWindowSize.Y-1; 284 } 285 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 286 } 287 else { 288 VioWrtCharStr(&pszBuffer[ulCounter], numchar, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 289 ulCounter += numchar; 290 pConsoleBuffer->coordCursorPosition.X += numchar; 291 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0); 292 numchar = 0; 293 } 286 294 } 287 else {288 VioWrtCharStr(&pszBuffer[ulCounter], numchar, pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0);289 pConsoleBuffer->coordCursorPosition.X += numchar;290 VioSetCurPos(pConsoleBuffer->coordCursorPosition.Y, pConsoleBuffer->coordCursorPosition.X, 0);291 }292 ulCounter += numchar;293 295 } 294 296 }
Note:
See TracChangeset
for help on using the changeset viewer.