Rev 4167 | Rev 4235 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4167 | Rev 4211 | ||
|---|---|---|---|
| Line 100... | Line 100... | ||
| 100 | { |
100 | { |
| 101 | while (*str) |
101 | while (*str) |
| 102 | putc_function(*(str++)); |
102 | putc_function(*(str++)); |
| 103 | } |
103 | } |
| 104 | 104 | ||
| - | 105 | void serial_putchar(wchar_t ch) |
|
| - | 106 | { |
|
| - | 107 | (*putc_function)(ch); |
|
| - | 108 | } |
|
| - | 109 | ||
| 105 | void serial_goto(const unsigned int row, const unsigned int col) |
110 | void serial_goto(const unsigned int row, const unsigned int col) |
| 106 | { |
111 | { |
| 107 | if ((row > scr_height) || (col > scr_width)) |
112 | if ((row > scr_height) || (col > scr_width)) |
| 108 | return; |
113 | return; |
| 109 | 114 | ||
| Line 254... | Line 259... | ||
| 254 | field = &data[j * w + i]; |
259 | field = &data[j * w + i]; |
| 255 | 260 | ||
| 256 | a1 = &field->attrs; |
261 | a1 = &field->attrs; |
| 257 | if (!attrs_same(*a0, *a1)) |
262 | if (!attrs_same(*a0, *a1)) |
| 258 | serial_set_attrs(a1); |
263 | serial_set_attrs(a1); |
| 259 | (*putc_function)(field->character); |
264 | serial_putchar(field->character); |
| 260 | a0 = a1; |
265 | a0 = a1; |
| 261 | } |
266 | } |
| 262 | } |
267 | } |
| 263 | } |
268 | } |
| 264 | 269 | ||
| Line 274... | Line 279... | ||
| 274 | ipc_callid_t callid; |
279 | ipc_callid_t callid; |
| 275 | ipc_call_t call; |
280 | ipc_call_t call; |
| 276 | keyfield_t *interbuf = NULL; |
281 | keyfield_t *interbuf = NULL; |
| 277 | size_t intersize = 0; |
282 | size_t intersize = 0; |
| 278 | 283 | ||
| 279 | char c; |
284 | wchar_t c; |
| 280 | int col, row, w, h; |
285 | int col, row, w, h; |
| 281 | int fgcolor; |
286 | int fgcolor; |
| 282 | int bgcolor; |
287 | int bgcolor; |
| 283 | int flags; |
288 | int flags; |
| 284 | int style; |
289 | int style; |
| Line 341... | Line 346... | ||
| 341 | col = IPC_GET_ARG3(call); |
346 | col = IPC_GET_ARG3(call); |
| 342 | if ((lastcol != col) || (lastrow != row)) |
347 | if ((lastcol != col) || (lastrow != row)) |
| 343 | serial_goto(row, col); |
348 | serial_goto(row, col); |
| 344 | lastcol = col + 1; |
349 | lastcol = col + 1; |
| 345 | lastrow = row; |
350 | lastrow = row; |
| 346 | (*putc_function)(c); |
351 | serial_putchar(c); |
| 347 | retval = 0; |
352 | retval = 0; |
| 348 | break; |
353 | break; |
| 349 | case FB_CURSOR_GOTO: |
354 | case FB_CURSOR_GOTO: |
| 350 | row = IPC_GET_ARG1(call); |
355 | row = IPC_GET_ARG1(call); |
| 351 | col = IPC_GET_ARG2(call); |
356 | col = IPC_GET_ARG2(call); |