Ignore:
Timestamp:
Mar 18, 2008, 9:36:56 PM (13 years ago)
Author:
Sam Hocevar
Message:
  • Get rid of ugly tabs and trailing spaces everywhere.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • abuse/trunk/src/keydrv.cpp

    r56 r124  
    2626#include <sys/stat.h>
    2727
    28 /*      Key driver, by Jonathan Clark 
     28/*      Key driver, by Jonathan Clark
    2929          (portions from showkey.c)
    3030*/
     
    3636
    3737void clean_up(int close_fd) {
    38         ioctl(fd, KDSKBMODE, K_XLATE);
     38    ioctl(fd, KDSKBMODE, K_XLATE);
    3939
    40         tcsetattr(fd, TCSAFLUSH, &old_term);
     40    tcsetattr(fd, TCSAFLUSH, &old_term);
    4141        if (close_fd)
    42           {
    43             close(fd);
    44             unlink("/tmp/jckey-driver");
    45             exit(0);
    46           }
     42      {
     43        close(fd);
     44        unlink("/tmp/jckey-driver");
     45        exit(0);
     46      }
    4747}
    4848
    4949void go_raw(int open_fd)
    5050{
    51         struct termios new_term;
     51    struct termios new_term;
    5252        struct vt_stat v;
    5353        if (open_fd)
    5454        {
    55                 if ((fd = open("/dev/console", O_RDONLY)) < 0) {
    56                         perror("/dev/console");
    57                         exit(1);
    58                 }
    59         }
     55          if ((fd = open("/dev/console", O_RDONLY)) < 0) {
     56            perror("/dev/console");
     57            exit(1);
     58        }
     59    }
    6060        if (my_console==-1)
    6161        {
    62           ioctl(fd,VT_GETSTATE,&v);  /* see which console we are using */ 
     62          ioctl(fd,VT_GETSTATE,&v);  /* see which console we are using */
    6363          my_console=v.v_active;
    6464        }
    6565        ioctl(fd,VT_WAITACTIVE,my_console);  /* wait for our console to come back */
    6666
    67         tcgetattr(fd, &new_term);
    68         tcgetattr(fd, &old_term);
     67    tcgetattr(fd, &new_term);
     68    tcgetattr(fd, &old_term);
    6969
    70         new_term.c_lflag = new_term.c_lflag & ~ (ICANON | ECHO | ISIG );
    71         new_term.c_cc[VMIN] = 1; //sizeof(keyboard_buf);
    72         new_term.c_cc[VTIME] = 0;       /* 0.1 sec intercharacter timeout */
     70    new_term.c_lflag = new_term.c_lflag & ~ (ICANON | ECHO | ISIG );
     71    new_term.c_cc[VMIN] = 1; //sizeof(keyboard_buf);
     72    new_term.c_cc[VTIME] = 0;    /* 0.1 sec intercharacter timeout */
    7373
    74         tcsetattr(fd, TCSAFLUSH, &new_term);
    75         if (ioctl(fd, KDSKBMODE,
    76                 K_RAW)) {
    77                 perror("KDSKBMODE");
    78                 exit(1);
    79         }
     74    tcsetattr(fd, TCSAFLUSH, &new_term);
     75    if (ioctl(fd, KDSKBMODE,
     76        K_RAW)) {
     77        perror("KDSKBMODE");
     78        exit(1);
     79    }
    8080        system("stty raw </dev/console >/dev/console");
    8181
     
    8484void die(int x) {
    8585        fprintf(stderr,"die %d\n",x);
    86    
    87         clean_up(1);
    88         exit(1);
     86
     87    clean_up(1);
     88    exit(1);
    8989}
    9090
    91 int key_watch(int write_fd) 
     91int key_watch(int write_fd)
    9292{
    9393        unsigned char map[128];
    9494
    95         int i, n,lalt,ralt,switch_to,lctrl,rctrl,up,quit;
     95    int i, n,lalt,ralt,switch_to,lctrl,rctrl,up,quit;
    9696
    9797
    98         /*
    99                 if we receive a signal, we want to exit nicely, in
    100                 order not to leave the keyboard in an unusable mode
    101         */
    102         signal(SIGHUP, die);
    103         signal(SIGINT, die);
    104         signal(SIGQUIT, die);
    105         signal(SIGILL, die);
    106         signal(SIGTRAP, die);
    107         signal(SIGABRT, die);
    108         signal(SIGIOT, die);
    109         signal(SIGFPE, die);
    110         signal(SIGKILL, die);
    111         signal(SIGUSR1, die);
    112         signal(SIGSEGV, die);
    113         signal(SIGUSR2, die);
    114         signal(SIGPIPE, die);
    115         signal(SIGTERM, die);
    116         signal(SIGSTKFLT, die);
    117         /*signal(SIGCHLD, die);*/
    118         signal(SIGCONT, die);
    119         signal(SIGSTOP, die);
    120         signal(SIGTSTP, die);
    121         signal(SIGTTIN, die);
    122         signal(SIGTTOU, die);
     98    /*
     99        if we receive a signal, we want to exit nicely, in
     100        order not to leave the keyboard in an unusable mode
     101    */
     102    signal(SIGHUP, die);
     103    signal(SIGINT, die);
     104    signal(SIGQUIT, die);
     105    signal(SIGILL, die);
     106    signal(SIGTRAP, die);
     107    signal(SIGABRT, die);
     108    signal(SIGIOT, die);
     109    signal(SIGFPE, die);
     110    signal(SIGKILL, die);
     111    signal(SIGUSR1, die);
     112    signal(SIGSEGV, die);
     113    signal(SIGUSR2, die);
     114    signal(SIGPIPE, die);
     115    signal(SIGTERM, die);
     116    signal(SIGSTKFLT, die);
     117    /*signal(SIGCHLD, die);*/
     118    signal(SIGCONT, die);
     119    signal(SIGSTOP, die);
     120    signal(SIGTSTP, die);
     121    signal(SIGTTIN, die);
     122    signal(SIGTTOU, die);
    123123
    124124        go_raw(1);
    125125        quit=lalt=ralt=lctrl=rctrl=0;
    126126        memset(map,0,128);
    127         while (!quit) {
    128                 n = read(fd, keyboard_buf, sizeof(keyboard_buf));
    129                 for (i = 0; i < n; i++)
     127    while (!quit) {
     128        n = read(fd, keyboard_buf, sizeof(keyboard_buf));
     129        for (i = 0; i < n; i++)
    130130                { up=!(keyboard_buf[i]&0x80);
    131                   if ((keyboard_buf[i]&0x7f)==56) lalt=up; 
     131                  if ((keyboard_buf[i]&0x7f)==56) lalt=up;
    132132                  if ((keyboard_buf[i]&0x7f)==96) ralt=up;
    133133                  if ((keyboard_buf[i]&0x7f)==29) lctrl=up;
     
    136136                    map[(keyboard_buf[i]&0x7f)]=up;
    137137                    if (!write(write_fd,&keyboard_buf[i],1))
    138                     {
    139                       fprintf(stderr,"keydrv : unable to write to parent (cleaning up)\n");
    140                       clean_up(1);
    141                       exit(0);
    142                     }
     138            {
     139              fprintf(stderr,"keydrv : unable to write to parent (cleaning up)\n");
     140              clean_up(1);
     141              exit(0);
     142            }
    143143                  }
    144144                }
    145                 for (i = 0; i < n; i++)
     145        for (i = 0; i < n; i++)
    146146                {
    147147                  if ((lalt || ralt) && (keyboard_buf[i]&0x7f)>=59 &&
    148148                      (keyboard_buf[i]&0x7f)<=68)
    149                   { 
     149                  {
    150150
    151151                    switch_to=(keyboard_buf[i]&0x7f)-58;
    152152                    clean_up(0);
    153                    
     153       
    154154                    ioctl(fd,VT_ACTIVATE,switch_to);
    155                     go_raw(0); 
     155                    go_raw(0);
    156156                  }
    157157                  if ((lctrl || rctrl) && (keyboard_buf[i]&0x7f)==46)
     
    162162                }
    163163
    164         }
    165         clean_up(1);
    166         exit(0);
     164    }
     165    clean_up(1);
     166    exit(0);
    167167}
    168168
     
    177177  }
    178178  chd=fork();
    179   if (chd) 
     179  if (chd)
    180180  { printf("%d\n",chd);
    181181    return 0;
     
    183183  f=open("/tmp/jckey-driver",O_WRONLY);
    184184  if (f<0)
    185   { perror("/tmp/jckey-driver"); 
     185  { perror("/tmp/jckey-driver");
    186186    exit(1);
    187187  }
Note: See TracChangeset for help on using the changeset viewer.