From 6c3b0571f0678da0512069869afaa284c054377e Mon Sep 17 00:00:00 2001 From: Vadim Dashevskiy Date: Fri, 18 May 2012 21:57:05 +0000 Subject: Folders renamed git-svn-id: http://svn.miranda-ng.org/main/trunk@59 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/Folders/rtf converter/rtf converter.cpp | 103 ++++++++++++++++++++++++ 1 file changed, 103 insertions(+) create mode 100644 plugins/Folders/rtf converter/rtf converter.cpp (limited to 'plugins/Folders/rtf converter/rtf converter.cpp') diff --git a/plugins/Folders/rtf converter/rtf converter.cpp b/plugins/Folders/rtf converter/rtf converter.cpp new file mode 100644 index 0000000000..8d51c0d79a --- /dev/null +++ b/plugins/Folders/rtf converter/rtf converter.cpp @@ -0,0 +1,103 @@ +#define _CRT_SECURE_NO_DEPRECATE + +#include +#include +#include + +#define MAX_PATH 260 +#define DEFAULT_OUTPUT "output.inc" + +void PrintUsage(char *programPath) +{ + printf("Usage\n"); + printf("%s input.doc [output.inc]\n", programPath); + printf("\nConverts a rtf text found in input.doc to a string that contains the rtf text and stores it in output.inc"); +} + +void Add(char *result, char *what) +{ + strcat(result, what); +} + +void Add(char *result, char chr) +{ + int len = strlen(result); + result[len++] = chr; + result[len] = '\0'; +} + +void Convert(char *input, char *output) +{ + int len = strlen(input); + int i; + output[0] = '\0'; + Add(output, '\"'); + for (i = 0; i < len; i++) + { + switch (input[i]) + { + case '\"': + Add(output, "\"\""); + break; + case '\\': + Add(output, "\\\\"); + break; + case '\n': + Add(output, "\\n"); + break; + default: + Add(output, input[i]); + } + } + Add(output, "\"\n"); +} + +void DoConversion(char *inFile, char *outFile) +{ + FILE *fin = fopen(inFile, "rt"); + FILE *fout = fopen(outFile, "wt"); + char buffer[2048]; + char out[4096]; + if ((fin) && (fout)) + { + while (!feof(fin)) + { + fgets(buffer, sizeof(buffer), fin); + if (strlen(buffer) > 0) + { + Convert(buffer, out); + fputs(out, fout); + } + } + } + if (fin) + { + fclose(fin); + } + if (fout) + { + fclose(fout); + } +} + +int main(int argc, char *argv[]) +{ + char input[MAX_PATH]; + char output[MAX_PATH]; + if ((argc < 2) || (argc > 3)) + { + PrintUsage(argv[0]); + return 0; + } + strcpy(input, argv[1]); + if (argc == 3) + { + strcpy(output, argv[2]); + } + else{ + strcpy(output, DEFAULT_OUTPUT); + } + DoConversion(input, output); + return 0; +} + -- cgit v1.2.3