19949213aSStephan Aßmus /*
2db904228SAxel Dörfler * Copyright 2004-2010, Axel Dörfler, axeld@pinc-software.de.
39949213aSStephan Aßmus * Distributed under the terms of the MIT License.
49949213aSStephan Aßmus */
59949213aSStephan Aßmus
69949213aSStephan Aßmus
79949213aSStephan Aßmus #include <stdio.h>
89949213aSStephan Aßmus #include <string.h>
970d59669SSiarzhuk Zharski #include <syslog.h>
109949213aSStephan Aßmus
11db904228SAxel Dörfler #include <Application.h>
1270d59669SSiarzhuk Zharski #include <Catalog.h>
13db904228SAxel Dörfler #include <FileIO.h>
14db904228SAxel Dörfler #include <TranslatorRoster.h>
15db904228SAxel Dörfler
16db904228SAxel Dörfler #include "TranslatorWindow.h"
17db904228SAxel Dörfler
18db904228SAxel Dörfler #include "convert.h"
19db904228SAxel Dörfler #include "RTF.h"
20db904228SAxel Dörfler #include "RTFTranslator.h"
21db904228SAxel Dörfler
22*546208a5SOliver Tappe #undef B_TRANSLATION_CONTEXT
23*546208a5SOliver Tappe #define B_TRANSLATION_CONTEXT "main"
2470d59669SSiarzhuk Zharski
259949213aSStephan Aßmus
269949213aSStephan Aßmus int
main(int argc,char ** argv)27db904228SAxel Dörfler main(int argc, char** argv)
289949213aSStephan Aßmus {
29db904228SAxel Dörfler if (argc > 1) {
30db904228SAxel Dörfler // Convert input files to plain text directly
31db904228SAxel Dörfler BFileIO output(stdout);
32db904228SAxel Dörfler int result = 0;
33db904228SAxel Dörfler
34db904228SAxel Dörfler for (int i = 1; i < argc; i++) {
35db904228SAxel Dörfler BFile input;
36db904228SAxel Dörfler status_t status = input.SetTo(argv[i], B_READ_ONLY);
37db904228SAxel Dörfler if (status != B_OK) {
3870d59669SSiarzhuk Zharski syslog(LOG_ERR,
3970d59669SSiarzhuk Zharski "RTFTranslator:Could not open file \"%s\": %s\n",
4070d59669SSiarzhuk Zharski argv[i], strerror(status));
41db904228SAxel Dörfler result = 1;
42db904228SAxel Dörfler continue;
43db904228SAxel Dörfler }
44db904228SAxel Dörfler
45db904228SAxel Dörfler RTF::Parser parser(input);
46db904228SAxel Dörfler RTF::Header header;
47db904228SAxel Dörfler
48db904228SAxel Dörfler status = parser.Parse(header);
49db904228SAxel Dörfler if (status != B_OK) {
5070d59669SSiarzhuk Zharski syslog(LOG_ERR,
5170d59669SSiarzhuk Zharski "RTFTranslator:Could not convert file \"%s\": %s\n",
5270d59669SSiarzhuk Zharski argv[i], strerror(status));
53db904228SAxel Dörfler result = 1;
54db904228SAxel Dörfler continue;
55db904228SAxel Dörfler }
56db904228SAxel Dörfler
57db904228SAxel Dörfler convert_to_plain_text(header, output);
58db904228SAxel Dörfler }
59db904228SAxel Dörfler
60eb5f3639SJerome Duval return result;
61db904228SAxel Dörfler }
62db904228SAxel Dörfler
6397c99097SRyan Leavengood BApplication app("application/x-vnd.Haiku-RTFTranslator");
649949213aSStephan Aßmus
659949213aSStephan Aßmus status_t result;
6670d59669SSiarzhuk Zharski result = LaunchTranslatorWindow(new RTFTranslator,
6770d59669SSiarzhuk Zharski B_TRANSLATE("RTF Settings"), BRect(0, 0, 225, 175));
689949213aSStephan Aßmus if (result != B_OK)
699949213aSStephan Aßmus return 1;
709949213aSStephan Aßmus
719949213aSStephan Aßmus app.Run();
729949213aSStephan Aßmus return 0;
739949213aSStephan Aßmus }
749949213aSStephan Aßmus
75