aboutsummaryrefslogtreecommitdiff
path: root/src/main.cc
AgeCommit message (Collapse)AuthorFilesLines
2016-09-11std::auto_ptr to std::unique_ptrMathias Gumz1-2/+1
2015-01-31Improve I18n supportMathias Gumz1-1/+1
Among the first steps to produce better i18n support is to test the created translations adhoc without running "make install". To achieve this, fluxbox now honors several environment variables: - NLSPATH: fluxbox won't create the absolute path to the catalog and thus catopen() is free to use NLSPATH as described in the manpage. Example given: "/tmp/%N" will pick "/tmp/fluxbox.cat". %N refers to FLUXBOX_CATFILE. - FLUXBOX_CATFILE: By setting FLUXBOX_CATFILE the users can make fluxbox to use a different name for the catalog file. Default: "fluxbox.cat" - FLUXBOX_CATDIR: Per default fluxbox tries to find FLUXBOX_CATFILE at several places. Setting this environment variable allows to point fluxbox to a different search path for the catalog files. Then, fluxbox tries catopen() first without changing the deduced catalog file name. After that it applies some heuristics to get a good catalog file name.
2015-01-31Clean up FbTk::I18n APIMathias Gumz1-1/+1
Move private stuff into FbTk/I18n.cc.
2015-01-16Fix uninitialized variables; cosmeticsMathias Gumz1-16/+6
Note: I expect only modern compilers will hit the source of fluxbox. It seems futile to guard stdlib headers while demanding <algorithm> etc. This should trim down the noise in the source quite a bit.
2015-01-03Update release versionMathias Gumz1-0/+4
2014-04-11merge Sami Kerola's new build-systemMathias Gumz1-4/+12
2014-02-18Fix race condition on shutdownMathias Gumz1-380/+91
This commit fixes primarily a race condition that occurs when xinit(1) shuts down: by not acting properly fluxbox gets caught in an infinite loop. It caused bug #1100. xinit(1) sends a SIGHUP signal to all processes. fluxbox tries to shutdown itself properly by shutting down workspaces and screens. While doing that, the Xserver might be gone already. Additionally, fluxbox used to restart() itself on SIGHUP, which is clearly not the right thing to do when xinit(1) is about to end the session. So, fluxbox does this: * handling SIGHUP now shuts down fluxbox without clearing workspaces and screens. * A 2 second alarm() is triggered in Fluxbox::shutdown() as a last resort * XSetIOErrorHandler() is used to recognize the disconnect from the xserver. * SIGUSR1 is for restarting fluxbox, SIGUSR2 for reloading the config * FbTk/SignalHandler.cc/hh is gone; this unused abstraction served currently no real purpose. Signal handling is now done in main.cc * Unrelated to the issue itself src/main.cc was trimmed down quite a bit and the code (responsible for handling the command line interface) was moved to src/cli*
2014-02-17update of copyright infoMathias Gumz1-1/+1
2013-06-29fix detection of $HOME folderMathias Gumz1-7/+4
usually $HOME is set when fluxbox runs. in some rare scenarios (eg., fuzzying binaries to detect bugs) one could launch fluxbox by using 'env -i' and thus eliminating $HOME from the environment. to prevent crashes fluxbox uses now 'getpwuid()' when $HOME is not set to detect the home folder.
2013-05-26build-sys: use AC_USE_SYSTEM_EXTENSIONSSami Kerola1-5/+0
The earlier _GNU_SOURCE definitions possibly did not take effect everywhere where it was intended.
2013-05-26build-sys: include config.h to all files using automakeSami Kerola1-4/+0
Do not try to be too smart which compilations need config.h, as most of them will simply because of the config.h has information about system capabilities.
2013-02-14Updates copyright date information in some binariesMathias Gumz1-1/+1
2013-01-10Optional removal of SystemTray toolMathias Gumz1-0/+6
Added the option to remove the SystemTray tool completely from fluxbox.
2012-12-12Fix build regression: enable XRANDR support by defaultMathias Gumz1-0/+9
The changes made in b178bed60b5bd8b2c9ed0cbc67fd729ff3820589 used the wrong variable to set the default state of '--enable-randr' in configure.in, that is fixed now. I also removed '--enable-randr12': If support for the Xrandr-extension is available at compile time we set HAVE_RANDR; if there is also support for Xrandr-1.2 (or higher), we also set HAVE_RANDR1_2 automatically. Other changes: * cleaned out public interface of 'class Fluxbox' * added 'RANDR' to output of 'fluxbox -info'
2012-12-05Simplified 'configure' / build systemMathias Gumz1-3/+3
* reduced duplicated auto-code * renamed '--enable-newwmspec' to '--enable-ewmh' * don't compile 'Slit'-code when '--disable-slit' * use AS_IF() in configure.in * use AS_HELP_STRING() instead of obsolete AC_HELP_STRING in configure.in * removed redundant calls to 'imlib2-config' to fill in $IMLIB2_CFLAGS and $IMLIB2_LIBS, AC_PATH_GENERIC() does that out of the box already
2012-01-04Exceptions should be caught by reference.Ryan Pavlik1-1/+1
Found using cppcheck.
2011-10-31main.cc,FbTk/StringUtil.cc: On windows, use USERPROFILE instead of HOMERyan Pavlik1-1/+4
2011-10-31main.cc: Add a wrapper for two-argument mkdir on WindowsRyan Pavlik1-0/+8
2011-10-31Merge branches 'fix-out-of-range-memory', 'obey-configure' and ↵Ryan Pavlik1-9/+13
'other-improvements' into windows-mingw
2011-10-31main.cc: Use expandFilename for default pathsRyan Pavlik1-6/+7
2011-10-31main.cc: Check getenv output better.Ryan Pavlik1-2/+2
Windows returns pointers to empty strings for non-existent env vars.
2011-10-31main.cc: Only sync() if we can.Ryan Pavlik1-1/+4
2011-10-17removed obsolete handler for the gnome-window manager hintsMathias Gumz1-5/+0
nowadays every app should use the extended window manager hints exclusively.
2011-09-10sync the copied config files to disk before continuingMathias Gumz1-0/+11
otherwise a race condition might appear between copying the default config files to .fluxbox/ and executing 'fluxbox-update_configs'. under macosx this lead to 'fluxbox hangs'.
2011-02-23updated year and copyright infoMathias Gumz1-2/+2
2011-02-23almost 10 years of fluxboxMathias Gumz1-1/+1
2010-10-13bugfix: std::string() does not like NULL on constructionMathias Gumz1-6/+19
not having DISPLAY set (eg: on a headless system) caused fluxbox to crash.
2010-09-20use 'system()' to run 'fluxbox-update_configs'Mathias Gumz1-3/+1
by using FbCommands::ExecureCmd() we run 'fluxbox-update_configs' in the bacground while booting a new fluxbox instance already. 'system()' waits until 'fluxbox-update_configs' is done and then gives the control back to fluxbox.
2010-09-18changed the way we create the '~/.fluxbox' directory to avoid race conditionsMathias Gumz1-9/+115
before bringing up the first instance of Fluxbox we prepare the directory and the files it needs. if the config version of exiting files is lower than what we expect, we upgrade the config files. after that we bring up Fluxbox. the old way was problematic because setupConfigFiles() calls 'fluxbox-update_configs' which does its job in the background while fluxbox continues to boot. 'fluxbox-update_configs' sends a USR2 signal to the booting fluxbox (it might even be finished, no one knows) which triggers 'load_rc()' which triggered 'setupConfigFiles()' again which might trigger 'fluxbox-update_configs' again (on my machine 'fluxbox-update_configs' was called 3 times and left a pretty crippled 'keys' file when it was done). bootstrapping before bringing up fluxbox resolves the issue. as a bonus: no need to send USR2 to fluxbox to reload the config file because fluxbox has not even tried to read it yet.
2010-09-18cosmeticMathias Gumz1-55/+106
2010-09-17bugfix: avoid naive use of 'putenv' by providing 'FbTk::App::setenv()'Mathias Gumz1-2/+1
to quote from 'man putenv': The string pointed to by string becomes part of the environment, so altering the string changes the environment. so, using putenv like { std::string foo("FOO=bar"); putenv(foo.c_str()); } is wrong and leads to a potentially corrupted environment. valgrind complaint correctly. FbTk::App seems to be the appropriate place to hold '::seten()' because it alters the environment of the application.
2010-09-17missing initializationsMathias Gumz1-0/+1
'valgrind' reported a lot of code branches based upon uninitialized variables. some are not identified yet.
2010-09-17moved commandline parsing to its own functionMathias Gumz1-20/+36
2010-09-05added info about 'BIDI' support to 'fluxbox -info'Mathias Gumz1-1/+5
2009-03-04Renamed function svnversion() to gitrevision() because now we uses GIT.Slava Semushin1-2/+2
No functional change. Signed-off-by: Slava Semushin <php-coder@altlinux.ru>
2008-10-04recognize --option in addition to -option for most thingsMark Tiefenbruck1-9/+9
2008-08-22add -sync command line option for debugging X issuesMark Tiefenbruck1-1/+6
2008-06-11updated the copyright where it's easily visible: `fluxbox -v` and COPYRIGHT.skiidoo1-2/+2
nls/translators: typo, plus Translation.m.desc never existed. Never. more consistent keys file comments in fluxbox-update_config.
2008-06-03add new command line option -list-commandsMark Tiefenbruck1-1/+9
2008-01-25std::string.c_str() is never NULLMathias Gumz1-5/+2
2008-01-04remove old svn $Id$ tagsMark Tiefenbruck1-2/+0
2007-12-25removed KDE configure optionMark Tiefenbruck1-5/+0
2007-12-20replace svn stuff with gitMark Tiefenbruck1-1/+1
2007-12-14fix compile issue with gcc 4.3Mark Tiefenbruck1-0/+6
2007-08-11Changed to Fluxbox Teamfluxgen1-1/+1
2007-07-31add some decorations to torn menus, and fix restart without an argumentmarkt1-8/+10
2007-07-24fix ToggleDecor for fullscreen and decorationless windows, plus some other ↵markt1-1/+5
cleanup
2007-04-24fixed a bug in parsing cli, thanks to steven kah hien wong <steven at ↵mathias1-5/+6
zensaki dot com>
2007-04-17basicly cosmetic changes, patch by slava semushinmathias1-25/+17
2007-03-22small update for the copyright datemathias1-2/+2