zitot

htmlify

Feb 21st, 2021
797
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // output file with the following characters converted to be html safe
  2. // "    "
  3. // '    '
  4. // &    &
  5. // <    &lt;
  6. // >    &gt;
  7. #pragma warning(disable:4996)
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11.  
  12. #define FALSE 0
  13. #define TRUE 1
  14. int main(int argc, char* argv[])
  15. {
  16.     char ch;
  17.     FILE* read;
  18.     // optional append file, else just pipe the stream in cmd: reader.exe read.txt > output.txt
  19.     int appending = FALSE;
  20.     FILE* append;
  21.  
  22.     if (argc == 2)
  23.     {
  24.         read = fopen(argv[1], "r");
  25.         append = NULL;
  26.     }
  27.     else if (argc > 2) {
  28.         read = fopen(argv[1], "r");
  29.         append = fopen(argv[2], "a");
  30.         appending = TRUE;
  31.     }
  32.     else {
  33.         perror("Expected read file.\n");
  34.         exit(EXIT_FAILURE);
  35.     }
  36.  
  37.     if (read == NULL)
  38.     {
  39.         perror("Error while opening the file.\n");
  40.         exit(EXIT_FAILURE);
  41.     }
  42.  
  43.     if (appending == TRUE)
  44.     {
  45.         if (append == NULL)
  46.         {
  47.             perror("Error while opening the file.\n");
  48.             exit(EXIT_FAILURE);
  49.         }
  50.     }
  51.  
  52.     while((ch = fgetc(read)) != EOF)
  53.     {
  54.         switch(ch){
  55.             case  '<':
  56.                 if(appending == TRUE)
  57.                     fputs("&lt;", append);
  58.                 else
  59.                     printf("&lt;");
  60.             break;
  61.             case  '>':
  62.                 if (appending == TRUE)
  63.                     fputs("&gt;", append);
  64.                 else
  65.                     printf("&gt;");
  66.             break;
  67.             case  '&':
  68.                 if (appending == TRUE)
  69.                     fputs("&amp;", append);
  70.                 else
  71.                     printf("&amp;");
  72.             break;
  73.             case  '"':
  74.                 if (appending == TRUE)
  75.                     fputs("&quot;", append);
  76.                 else
  77.                     printf("&quot;");
  78.             break;
  79.             case '\'':
  80.                 if (appending == TRUE)
  81.                     fputs("&apos;", append);
  82.                 else
  83.                     printf("&apos;");
  84.             break;
  85.             default:
  86.                 if (appending == TRUE)
  87.                     fputc(ch, append);
  88.                 else
  89.                     printf("%c", ch);
  90.         }
  91.     }
  92.  
  93.     fclose(read);
  94.     if (appending == TRUE)
  95.         fclose(append);
  96.     return 0;
  97. }
  98.  
  99.  
RAW Paste Data