Parcourir la source

:bug: 修复\b的bug

fslongjin il y a 3 ans
Parent
commit
1e52bbe901

+ 1 - 12
kernel/common/printk.c

@@ -693,7 +693,6 @@ int printk_color(unsigned int FRcolor, unsigned int BKcolor, const char *fmt, ..
             }
 
             putchar(pos.FB_address, pos.width, pos.x * pos.char_size_x, pos.y * pos.char_size_y, FRcolor, BKcolor, ' ');
-            ++pos.x;
 
             auto_newline();
         }
@@ -754,7 +753,7 @@ int scroll(bool direction, int pixels, bool animation)
         return do_scroll(direction, pixels);
     else
     {
-        int count_pixels = 0;
+
         int steps;
         if (pixels > 10)
             steps = 5;
@@ -775,7 +774,6 @@ int scroll(bool direction, int pixels, bool animation)
             trace[js_trace] = (int)(accelerate * i + 0.5);
             current_pixels += trace[js_trace];
             do_scroll(direction, trace[js_trace]);
-            count_pixels += trace[js_trace];
 
             ++js_trace;
         }
@@ -785,7 +783,6 @@ int scroll(bool direction, int pixels, bool animation)
         {
             delta_x = pixels / 2 - current_pixels;
             current_pixels += delta_x;
-            count_pixels += delta_x;
             do_scroll(direction, delta_x);
         }
 
@@ -794,7 +791,6 @@ int scroll(bool direction, int pixels, bool animation)
         {
             current_pixels += trace[i];
             do_scroll(direction, trace[i]);
-            count_pixels += trace[i];
         }
 
         if (current_pixels > pixels)
@@ -804,16 +800,9 @@ int scroll(bool direction, int pixels, bool animation)
         if (current_pixels < pixels)
         {
             delta_x = pixels - current_pixels;
-            count_pixels += delta_x;
             current_pixels += delta_x;
             do_scroll(direction, delta_x);
         }
-        if (count_pixels != pixels)
-        {
-            kBUG("In printk: count_pixels(%d) != pixels(%d) current_pixels = %d", count_pixels, pixels, current_pixels);
-            while (1)
-                ;
-        }
     }
 
     return 0;

+ 1 - 1
kernel/driver/keyboard/keyboard.c

@@ -345,7 +345,7 @@ void keyboard_analyze_keycode()
             break;
         }
         if (key)
-            printk_color(ORANGE, WHITE, "(key:%c)\t", key);
+            printk_color(ORANGE, BLACK, "%c", key);
     }
 }
 

+ 3 - 3
kernel/driver/keyboard/keyboard.h

@@ -70,8 +70,8 @@ uint keycode_map_normal[NUM_SCAN_CODES*MAP_COLS] =
 /*0x0b*/	'0',		')',
 /*0x0c*/	'-',		'_',
 /*0x0d*/	'=',		'+',
-/*0x0e*/	0,		0,		//BACKSPACE	
-/*0x0f*/	0,		0,		//TAB
+/*0x0e*/	'\b',		'\b',		//BACKSPACE	
+/*0x0f*/	'\t',		'\t',		//TAB
 
 /*0x10*/	'q',		'Q',
 /*0x11*/	'w',		'W',
@@ -85,7 +85,7 @@ uint keycode_map_normal[NUM_SCAN_CODES*MAP_COLS] =
 /*0x19*/	'p',		'P',
 /*0x1a*/	'[',		'{',
 /*0x1b*/	']',		'}',
-/*0x1c*/	0,		0,		//ENTER
+/*0x1c*/	'\n',		'\n',		//ENTER
 /*0x1d*/	0x1d,		0x1d,		//CTRL Left
 /*0x1e*/	'a',		'A',
 /*0x1f*/	's',		'S',