summaryrefslogtreecommitdiff
path: root/plugins/folders/rtf converter/rtf converter.cpp
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2012-05-15 10:38:20 +0000
commit48540940b6c28bb4378abfeb500ec45a625b37b6 (patch)
tree2ef294c0763e802f91d868bdef4229b6868527de /plugins/folders/rtf converter/rtf converter.cpp
parent5c350913f011e119127baeb32a6aedeb4f0d33bc (diff)
initial commit
git-svn-id: http://svn.miranda-ng.org/main/trunk@2 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/folders/rtf converter/rtf converter.cpp')
-rw-r--r--plugins/folders/rtf converter/rtf converter.cpp103
1 files changed, 103 insertions, 0 deletions
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 <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#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;
+}
+