From ae5ce5e36856a934e370d85f312b0951c865ae50 Mon Sep 17 00:00:00 2001 From: fluxgen Date: Fri, 16 May 2003 00:46:41 +0000 Subject: fixed -log argument and did some cleaning --- src/main.cc | 226 +++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 125 insertions(+), 101 deletions(-) diff --git a/src/main.cc b/src/main.cc index d0a17d7..b8b08af 100644 --- a/src/main.cc +++ b/src/main.cc @@ -1,8 +1,6 @@ // main.cc for Fluxbox Window manager -// Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen(at)linuxmail.org) -// -// main.cc for Blackbox - an X11 Window manager -// Copyright (c) 1997 - 2000 Brad Hughes (bhughes@tcac.net) +// Copyright (c) 2001 - 2003 Henrik Kinnunen (fluxgen at users.sourceforge.net) +// and 2003 Simon Bowden (rathnor at users.sourceforge.net) // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), @@ -16,20 +14,17 @@ // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL // THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: main.cc,v 1.16 2003/05/07 23:17:24 rathnor Exp $ - - +// $Id: main.cc,v 1.17 2003/05/16 00:46:41 fluxgen Exp $ -#include "i18n.hh" #include "fluxbox.hh" - -#include "../version.h" +#include "i18n.hh" +#include "version.h" #ifdef HAVE_CONFIG_H #include "config.h" @@ -43,28 +38,84 @@ #include #include #include - -#ifdef HAVE_UNISTD_H -#include -#endif // HAVE_UNISTD_H - -#ifdef HAVE_SYS_PARAM_H -#include -#endif // HAVE_SYS_PARAM_H - #include +#include #include #include using namespace std; +void showInfo(ostream &ostr) { + ostr<<"Fluxbox version: "<<__fluxbox_version< disabled): "<= argc) { fprintf(stderr, - i18n->getMessage( - FBNLS::mainSet, FBNLS::mainRCRequiresArg, + i18n.getMessage(FBNLS::mainSet, FBNLS::mainRCRequiresArg, "error: '-rc' requires and argument\n")); exit(1); } @@ -86,94 +136,46 @@ int main(int argc, char **argv) { if ((++i) >= argc) { fprintf(stderr, - i18n->getMessage( - FBNLS::mainSet, FBNLS::mainDISPLAYRequiresArg, + i18n.getMessage(FBNLS::mainSet, FBNLS::mainDISPLAYRequiresArg, "error: '-display' requires an argument\n")); exit(1); } session_display = argv[i]; - char dtmp[255]; - sprintf(dtmp, "DISPLAY=%s", session_display); - - if (putenv(dtmp)) { + std::string display_env = "DISPLAY=" + session_display; + if (putenv(const_cast(display_env.c_str()))) { fprintf(stderr, - i18n-> - getMessage( - FBNLS::mainSet, FBNLS::mainWarnDisplaySet, + i18n. + getMessage(FBNLS::mainSet, FBNLS::mainWarnDisplaySet, "warning: couldn't set environment variable 'DISPLAY'\n")); perror("putenv()"); } } else if (strcmp(argv[i], "-version") == 0 || strcmp(argv[i], "-v") == 0) { // print current version string - printf("Fluxbox %s : (c) 2001-2003 Henrik Kinnunen \n\n", - __fluxbox_version); + cerr<<"Fluxbox "<<__fluxbox_version<<" : (c) 2001-2003 Henrik Kinnunen "<= argc) { + cerr<<"error: '-log' need an argument"< - getMessage( - FBNLS::mainSet, FBNLS::mainUsage, - "Fluxbox %s : (c) 2001-2003 Henrik Kinnunen\n\n" + printf(i18n. + getMessage(FBNLS::mainSet, FBNLS::mainUsage, + "Fluxbox %s : (c) %s Henrik Kinnunen\n" + "Website: http://www.fluxbox.org/ \n\n" " -display \t\tuse display connection.\n" " -rc \t\t\tuse alternate resource file.\n" " -version\t\t\tdisplay version and exit.\n" - " -info\t\t\tdisplay some useful information.\n" + " -info\t\t\t\tdisplay some useful information.\n" + "\t-log \t\t\tlog output to file.\n" " -help\t\t\t\tdisplay this help text and exit.\n\n"), - __fluxbox_version); - ::exit(0); + __fluxbox_version, "2001-2003"); + exit(0); } else if (strcmp(argv[i], "-info") == 0 || strcmp(argv[i], "-i") == 0) { -#define NOT "-" - cout<<"Compiled options ("< disabled): "< fluxbox; int exitcode=EXIT_FAILURE; + + streambuf *outbuf = 0; + streambuf *errbuf = 0; + + ofstream log_file(log_filename.c_str()); + + // setup log file + if (log_file) { + cerr<<"Loggin to: "<eventLoop(); + exitcode = EXIT_SUCCESS; + } catch (std::out_of_range &oor) { cerr<<"Fluxbox: Out of range: "<