Subversion Repositories HelenOS-historic

Rev

Rev 588 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 588 Rev 601
Line 301... Line 301...
301
    bool shift, capslock;
301
    bool shift, capslock;
302
    bool letter = false;
302
    bool letter = false;
303
 
303
 
304
    spinlock_lock(&keylock);
304
    spinlock_lock(&keylock);
305
    switch (sc) {
305
    switch (sc) {
306
        case SC_LSHIFT:
306
    case SC_LSHIFT:
307
        case SC_RSHIFT:
307
    case SC_RSHIFT:
308
            keyflags |= PRESSED_SHIFT;
308
            keyflags |= PRESSED_SHIFT;
309
        break;
309
        break;
310
        case SC_CAPSLOCK:
310
    case SC_CAPSLOCK:
311
        keyflags |= PRESSED_CAPSLOCK;
311
        keyflags |= PRESSED_CAPSLOCK;
312
        break;
312
        break;
-
 
313
    case SC_SPEC_ESCAPE:
-
 
314
        break;
-
 
315
    case SC_LEFTARR:
-
 
316
        chardev_push_character(&kbrd, 0x1b);
-
 
317
        chardev_push_character(&kbrd, 0x5b);
-
 
318
        chardev_push_character(&kbrd, 0x44);
-
 
319
        break;
-
 
320
    case SC_RIGHTARR:
-
 
321
        chardev_push_character(&kbrd, 0x1b);
-
 
322
        chardev_push_character(&kbrd, 0x5b);
-
 
323
        chardev_push_character(&kbrd, 0x43);
-
 
324
        break;
-
 
325
    case SC_UPARR:
-
 
326
        chardev_push_character(&kbrd, 0x1b);
-
 
327
        chardev_push_character(&kbrd, 0x5b);
-
 
328
        chardev_push_character(&kbrd, 0x41);
-
 
329
        break;
-
 
330
    case SC_DOWNARR:
-
 
331
        chardev_push_character(&kbrd, 0x1b);
-
 
332
        chardev_push_character(&kbrd, 0x5b);
-
 
333
        chardev_push_character(&kbrd, 0x42);
-
 
334
        break;
313
        default:
335
    default:
314
            letter = is_lower(ascii);
336
            letter = is_lower(ascii);
315
        capslock = (keyflags & PRESSED_CAPSLOCK) || (lockflags & LOCKED_CAPSLOCK);
337
        capslock = (keyflags & PRESSED_CAPSLOCK) || (lockflags & LOCKED_CAPSLOCK);
316
        shift = keyflags & PRESSED_SHIFT;
338
        shift = keyflags & PRESSED_SHIFT;
317
        if (letter && capslock)
339
        if (letter && capslock)
318
            shift = !shift;
340
            shift = !shift;