@@ -470,11 +470,15 @@ static void vgacon_set_cursor_size(int from, int to)
470
470
471
471
static void vgacon_cursor (struct vc_data * c , int mode )
472
472
{
473
+ unsigned int c_height ;
474
+
473
475
if (c -> vc_mode != KD_TEXT )
474
476
return ;
475
477
476
478
vgacon_restore_screen (c );
477
479
480
+ c_height = c -> vc_cell_height ;
481
+
478
482
switch (mode ) {
479
483
case CM_ERASE :
480
484
write_vga (14 , (c -> vc_pos - vga_vram_base ) / 2 );
@@ -489,30 +493,22 @@ static void vgacon_cursor(struct vc_data *c, int mode)
489
493
write_vga (14 , (c -> vc_pos - vga_vram_base ) / 2 );
490
494
switch (CUR_SIZE (c -> vc_cursor_type )) {
491
495
case CUR_UNDERLINE :
492
- vgacon_set_cursor_size (c -> vc_cell_height -
493
- (c -> vc_cell_height <
494
- 10 ? 2 : 3 ),
495
- c -> vc_cell_height -
496
- (c -> vc_cell_height <
497
- 10 ? 1 : 2 ));
496
+ vgacon_set_cursor_size (c_height -
497
+ (c_height < 10 ? 2 : 3 ),
498
+ c_height -
499
+ (c_height < 10 ? 1 : 2 ));
498
500
break ;
499
501
case CUR_TWO_THIRDS :
500
- vgacon_set_cursor_size (c -> vc_cell_height / 3 ,
501
- c -> vc_cell_height -
502
- (c -> vc_cell_height <
503
- 10 ? 1 : 2 ));
502
+ vgacon_set_cursor_size (c_height / 3 , c_height -
503
+ (c_height < 10 ? 1 : 2 ));
504
504
break ;
505
505
case CUR_LOWER_THIRD :
506
- vgacon_set_cursor_size ((c -> vc_cell_height * 2 ) / 3 ,
507
- c -> vc_cell_height -
508
- (c -> vc_cell_height <
509
- 10 ? 1 : 2 ));
506
+ vgacon_set_cursor_size (c_height * 2 / 3 , c_height -
507
+ (c_height < 10 ? 1 : 2 ));
510
508
break ;
511
509
case CUR_LOWER_HALF :
512
- vgacon_set_cursor_size (c -> vc_cell_height / 2 ,
513
- c -> vc_cell_height -
514
- (c -> vc_cell_height <
515
- 10 ? 1 : 2 ));
510
+ vgacon_set_cursor_size (c_height / 2 , c_height -
511
+ (c_height < 10 ? 1 : 2 ));
516
512
break ;
517
513
case CUR_NONE :
518
514
if (vga_video_type >= VIDEO_TYPE_VGAC )
@@ -521,7 +517,7 @@ static void vgacon_cursor(struct vc_data *c, int mode)
521
517
vgacon_set_cursor_size (31 , 31 );
522
518
break ;
523
519
default :
524
- vgacon_set_cursor_size (1 , c -> vc_cell_height );
520
+ vgacon_set_cursor_size (1 , c_height );
525
521
break ;
526
522
}
527
523
break ;
0 commit comments