1/* 2 * Copyright 2004-2010, Axel D��rfler, axeld@pinc-software.de. 3 * Distributed under the terms of the MIT License. 4 */ 5 6 7#include <stdio.h> 8#include <string.h> 9#include <syslog.h> 10 11#include <Application.h> 12#include <Catalog.h> 13#include <FileIO.h> 14#include <TranslatorRoster.h> 15 16#include "TranslatorWindow.h" 17 18#include "convert.h" 19#include "RTF.h" 20#include "RTFTranslator.h" 21 22#undef B_TRANSLATION_CONTEXT 23#define B_TRANSLATION_CONTEXT "main" 24 25 26int 27main(int argc, char** argv) 28{ 29 if (argc > 1) { 30 // Convert input files to plain text directly 31 BFileIO output(stdout); 32 int result = 0; 33 34 for (int i = 1; i < argc; i++) { 35 BFile input; 36 status_t status = input.SetTo(argv[i], B_READ_ONLY); 37 if (status != B_OK) { 38 syslog(LOG_ERR, 39 "RTFTranslator:Could not open file \"%s\": %s\n", 40 argv[i], strerror(status)); 41 result = 1; 42 continue; 43 } 44 45 RTF::Parser parser(input); 46 RTF::Header header; 47 48 status = parser.Parse(header); 49 if (status != B_OK) { 50 syslog(LOG_ERR, 51 "RTFTranslator:Could not convert file \"%s\": %s\n", 52 argv[i], strerror(status)); 53 result = 1; 54 continue; 55 } 56 57 convert_to_plain_text(header, output); 58 } 59 60 return result; 61 } 62 63 BApplication app("application/x-vnd.Haiku-RTFTranslator"); 64 65 status_t result; 66 result = LaunchTranslatorWindow(new RTFTranslator, 67 B_TRANSLATE("RTF Settings"), BRect(0, 0, 225, 175)); 68 if (result != B_OK) 69 return 1; 70 71 app.Run(); 72 return 0; 73} 74 75