Changeset a35b458 in mainline for uspace/lib/c/generic/io/chargrid.c
- Timestamp:
- 2018-03-02T20:10:49Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f1380b7
- Parents:
- 3061bc1
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:38:31)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-03-02 20:10:49)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/io/chargrid.c
r3061bc1 ra35b458 57 57 sizeof(chargrid_t) + cols * rows * sizeof(charfield_t); 58 58 chargrid_t *scrbuf; 59 59 60 60 if ((flags & CHARGRID_FLAG_SHARED) == CHARGRID_FLAG_SHARED) { 61 61 scrbuf = (chargrid_t *) as_area_create(AS_AREA_ANY, size, … … 69 69 return NULL; 70 70 } 71 71 72 72 scrbuf->size = size; 73 73 scrbuf->flags = flags; … … 75 75 scrbuf->rows = rows; 76 76 scrbuf->cursor_visible = false; 77 77 78 78 scrbuf->attrs.type = CHAR_ATTR_STYLE; 79 79 scrbuf->attrs.val.style = STYLE_NORMAL; 80 80 81 81 scrbuf->top_row = 0; 82 82 chargrid_clear(scrbuf); 83 83 84 84 return scrbuf; 85 85 } … … 107 107 scrbuf->top_row = (scrbuf->top_row + 1) % scrbuf->rows; 108 108 chargrid_clear_row(scrbuf, scrbuf->row); 109 109 110 110 return scrbuf->rows; 111 111 } 112 112 113 113 return 2; 114 114 } … … 122 122 return chargrid_update_rows(scrbuf); 123 123 } 124 124 125 125 return 1; 126 126 } … … 144 144 assert(scrbuf->col < scrbuf->cols); 145 145 assert(scrbuf->row < scrbuf->rows); 146 146 147 147 charfield_t *field = 148 148 chargrid_charfield_at(scrbuf, scrbuf->col, scrbuf->row); 149 149 150 150 field->ch = ch; 151 151 field->attrs = scrbuf->attrs; 152 152 field->flags |= CHAR_FLAG_DIRTY; 153 153 154 154 if (update) { 155 155 scrbuf->col++; 156 156 return chargrid_update_cols(scrbuf); 157 157 } 158 158 159 159 return 1; 160 160 } … … 173 173 assert(scrbuf->col < scrbuf->cols); 174 174 assert(scrbuf->row < scrbuf->rows); 175 175 176 176 scrbuf->col = 0; 177 177 scrbuf->row++; 178 178 179 179 return chargrid_update_rows(scrbuf); 180 180 } … … 194 194 assert(scrbuf->col < scrbuf->cols); 195 195 assert(scrbuf->row < scrbuf->rows); 196 196 197 197 sysarg_t spaces = tab_size - scrbuf->cols % tab_size; 198 198 sysarg_t flush = 1; 199 199 200 200 for (sysarg_t i = 0; i < spaces; i++) 201 201 flush += chargrid_putchar(scrbuf, ' ', true) - 1; 202 202 203 203 return flush; 204 204 } … … 220 220 assert(scrbuf->col < scrbuf->cols); 221 221 assert(scrbuf->row < scrbuf->rows); 222 222 223 223 if ((scrbuf->col == 0) && (scrbuf->row == 0)) 224 224 return 0; 225 225 226 226 if (scrbuf->col == 0) { 227 227 scrbuf->col = scrbuf->cols - 1; 228 228 scrbuf->row--; 229 229 230 230 chargrid_putchar(scrbuf, ' ', false); 231 231 return 2; 232 232 } 233 233 234 234 scrbuf->col--; 235 235 chargrid_putchar(scrbuf, ' ', false); … … 249 249 scrbuf->data[pos].flags = CHAR_FLAG_DIRTY; 250 250 } 251 251 252 252 scrbuf->col = 0; 253 253 scrbuf->row = 0; … … 284 284 assert(col); 285 285 assert(row); 286 286 287 287 *col = scrbuf->col; 288 288 *row = scrbuf->row; … … 305 305 charfield_t *field = 306 306 chargrid_charfield_at(scrbuf, col, row); 307 307 308 308 field->ch = 0; 309 309 field->attrs = scrbuf->attrs;
Note:
See TracChangeset
for help on using the changeset viewer.