#include "surround.h"

// VERSION
#define VERSIONSTR "0.1"
#define VERS "Freedom Back Orifice Key Log Filter By SuRRouND"
#define DATE VERSIONSTR "," "10.Jan.2000"
#define VERSTAG "\\0$VER: " VERS " (" DATE ")"
const static char VersTag[] = VERSTAG;

void display(void)
{
   printf("\n\2331mBoLogFilter v0.1 By SuRRouND 2000\2330m\n\n");
   return;
}

void main(int argc, char *argv[])
{
   char *log, *logtmp, a;
   long int x;
   int silence = 0;
   FILE *logarq;

   if (argc < 2)
   {
      display();
      printf("Syntax:\n");
      printf("LOGFILE -> Filename of bo keylog file.\n");
      printf("SILENCE -> Not display status msg.\n\n");
      printf("bologfilter [LOGFILE]\n");
      printf("bologfilter [LOGFILE] SILENCE\n");
      printf("bologfilter [LOGFILE] > ram:log.txt\n\n");
      exit(0);
   }

   if(!(logarq = fopen(argv[1], "r")))
   {
      display();
      printf("%s: not found or cant access...\n\n", argv[1]);
      exit(0);
   }

   if(!strcmp(strupr(argv[2]), "SILENCE"))
     silence = 1;

   // ALOCA MEMORIA PARA O LOG
   x = atof(ExaminaArquivo(argv[1], 0));
   log    = malloc(x);
   logtmp = malloc(x + 1000);
   log[0] = '\0';

   // LE O ARQUIVO E JOGA NA VARIAVEL
   x = 0;
   while(a = getc(logarq),! feof(logarq))
     log[x++] = a;
   log[x] = '\0';
   fclose(logarq);

   if(silence = 0)
     printf("Applying filter 1 [RETURN]\n");
   strcpy(logtmp, SubstituiString(log, "[RETURN]", "\n"));
   strcpy(log, logtmp);

   if(silence = 0)
     printf("Applying filter 2 [TAB]\n");
   strcpy(logtmp, SubstituiString(log, "[TAB]", "   "));
   strcpy(log, logtmp);

   if(silence = 0)
     printf("Applying filter 3 [BACK]\n");
   strcpy(logtmp, SubstituiString(log, "[BACK]", "\r"));
   strcpy(log, logtmp);

   if(silence = 0)
     printf("Applying filter 4 [SHIFT]\n");
   strcpy(logtmp, SubstituiString(log, "[SHIFT]/", ""));
   strcpy(log, logtmp);
   strcpy(logtmp, SubstituiString(log, "[SHIFT]", ""));
   strcpy(log, logtmp);

   if(silence = 0)
     printf("Applying filter 5 [^M]\n");
   strcpy(logtmp, SubstituiString(log, "^M", ""));
   strcpy(log, logtmp);

   printf("%s\n", log);

   free(log); free(logtmp);
   exit(0);
}


