summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-08-10 12:50:04 (GMT)
committerrathnor <rathnor>2003-08-10 12:50:04 (GMT)
commitc8c5072fd1a542cc3783cb5b32e5e4b68e45efe7 (patch)
tree29e6bab43c762e475844e8d42080ffd939db870b
parentbabf480280200fa4af3d8ab917a9f9ad76a6309c (diff)
downloadfluxbox_lack-c8c5072fd1a542cc3783cb5b32e5e4b68e45efe7.zip
fluxbox_lack-c8c5072fd1a542cc3783cb5b32e5e4b68e45efe7.tar.bz2
fix ~ to work properly in session.menuFile
-rw-r--r--ChangeLog3
-rw-r--r--src/FbTk/StringUtil.cc5
-rw-r--r--src/Screen.cc15
-rw-r--r--src/fluxbox.cc9
-rw-r--r--src/fluxbox.hh4
5 files changed, 17 insertions, 19 deletions
diff --git a/ChangeLog b/ChangeLog
index 0a4a8d2..7201b26 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
1(Format: Year/Month/Day) 1(Format: Year/Month/Day)
2Changes for 0.9.5: 2Changes for 0.9.5:
3*03/08/10:
4 * Fix session.menuFile to work with ~ properly (Simon)
5 fluxbox.hh/cc Screen.cc
3*03/08/07: 6*03/08/07:
4 * Updated fluxbox-generate_menu (Thanks Han) 7 * Updated fluxbox-generate_menu (Thanks Han)
5 Test before warning, browser details, minor indent issues 8 Test before warning, browser details, minor indent issues
diff --git a/src/FbTk/StringUtil.cc b/src/FbTk/StringUtil.cc
index 761014f..8532662 100644
--- a/src/FbTk/StringUtil.cc
+++ b/src/FbTk/StringUtil.cc
@@ -19,7 +19,7 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: StringUtil.cc,v 1.3 2003/07/01 01:49:13 rathnor Exp $ 22// $Id: StringUtil.cc,v 1.4 2003/08/10 12:50:04 rathnor Exp $
23 23
24#include "StringUtil.hh" 24#include "StringUtil.hh"
25 25
@@ -73,7 +73,6 @@ const char *strcasestr(const char *str, const char *ptn) {
73 returns expanded filename 73 returns expanded filename
74*/ 74*/
75string expandFilename(const std::string &filename) { 75string expandFilename(const std::string &filename) {
76
77 string retval; 76 string retval;
78 size_t pos = filename.find_first_not_of(" \t"); 77 size_t pos = filename.find_first_not_of(" \t");
79 if (pos != std::string::npos && filename[pos] == '~') { 78 if (pos != std::string::npos && filename[pos] == '~') {
@@ -84,7 +83,7 @@ string expandFilename(const std::string &filename) {
84 } 83 }
85 } else 84 } else
86 return filename; //return unmodified value 85 return filename; //return unmodified value
87 86
88 return retval; 87 return retval;
89} 88}
90 89
diff --git a/src/Screen.cc b/src/Screen.cc
index 0ec1655..593dd69 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: Screen.cc,v 1.212 2003/08/04 12:50:06 fluxgen Exp $ 25// $Id: Screen.cc,v 1.213 2003/08/10 12:50:04 rathnor Exp $
26 26
27 27
28#include "Screen.hh" 28#include "Screen.hh"
@@ -1612,8 +1612,10 @@ void BScreen::initMenu() {
1612 1612
1613 bool defaultMenu = true; 1613 bool defaultMenu = true;
1614 Fluxbox * const fb = Fluxbox::instance(); 1614 Fluxbox * const fb = Fluxbox::instance();
1615 if (fb->getMenuFilename()) { 1615 if (fb->getMenuFilename().size() > 0) {
1616 ifstream menu_file(fb->getMenuFilename()); 1616 std::string menufilestr = fb->getMenuFilename();
1617 menufilestr = FbTk::StringUtil::expandFilename(menufilestr);
1618 ifstream menu_file(menufilestr.c_str());
1617 1619
1618 if (!menu_file.fail()) { 1620 if (!menu_file.fail()) {
1619 if (! menu_file.eof()) { 1621 if (! menu_file.eof()) {
@@ -1650,11 +1652,11 @@ void BScreen::initMenu() {
1650 i18n->getMessage( 1652 i18n->getMessage(
1651 FBNLS::ScreenSet, FBNLS::ScreenEmptyMenuFile, 1653 FBNLS::ScreenSet, FBNLS::ScreenEmptyMenuFile,
1652 "%s: Empty menu file"), 1654 "%s: Empty menu file"),
1653 fb->getMenuFilename()); 1655 menufilestr.c_str());
1654 } 1656 }
1655 menu_file.close(); 1657 menu_file.close();
1656 } else 1658 } else
1657 perror(fb->getMenuFilename()); 1659 perror(menufilestr.c_str());
1658 } 1660 }
1659 1661
1660 if (defaultMenu) { 1662 if (defaultMenu) {
@@ -1674,8 +1676,7 @@ void BScreen::initMenu() {
1674 FBNLS::ScreenSet, FBNLS::ScreenExit, 1676 FBNLS::ScreenSet, FBNLS::ScreenExit,
1675 "Exit"), 1677 "Exit"),
1676 exit_fb); 1678 exit_fb);
1677 } else 1679 }
1678 fb->saveMenuFilename(fb->getMenuFilename());
1679} 1680}
1680 1681
1681/// looks through a menufile and adds correct items to the root-menu. 1682/// looks through a menufile and adds correct items to the root-menu.
diff --git a/src/fluxbox.cc b/src/fluxbox.cc
index 342338c..f910e7b 100644
--- a/src/fluxbox.cc
+++ b/src/fluxbox.cc
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: fluxbox.cc,v 1.178 2003/08/04 18:16:22 fluxgen Exp $ 25// $Id: fluxbox.cc,v 1.179 2003/08/10 12:50:04 rathnor Exp $
26 26
27#include "fluxbox.hh" 27#include "fluxbox.hh"
28 28
@@ -1625,13 +1625,8 @@ void Fluxbox::load_rc() {
1625 1625
1626 XrmValue value; 1626 XrmValue value;
1627 char *value_type; 1627 char *value_type;
1628 1628 if (m_rc_menufile->size() == 0)
1629 if (m_rc_menufile->size()) {
1630 *m_rc_menufile = StringUtil::expandFilename(*m_rc_menufile);
1631 if (!m_rc_menufile->size())
1632 m_rc_menufile.setDefaultValue(); 1629 m_rc_menufile.setDefaultValue();
1633 } else
1634 m_rc_menufile.setDefaultValue();
1635 1630
1636 if (m_rc_slitlistfile->size() != 0) { 1631 if (m_rc_slitlistfile->size() != 0) {
1637 *m_rc_slitlistfile = StringUtil::expandFilename(*m_rc_slitlistfile); 1632 *m_rc_slitlistfile = StringUtil::expandFilename(*m_rc_slitlistfile);
diff --git a/src/fluxbox.hh b/src/fluxbox.hh
index 4f32ea3..1d35f83 100644
--- a/src/fluxbox.hh
+++ b/src/fluxbox.hh
@@ -22,7 +22,7 @@
22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 22// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
23// DEALINGS IN THE SOFTWARE. 23// DEALINGS IN THE SOFTWARE.
24 24
25// $Id: fluxbox.hh,v 1.69 2003/07/28 15:06:36 rathnor Exp $ 25// $Id: fluxbox.hh,v 1.70 2003/08/10 12:50:04 rathnor Exp $
26 26
27#ifndef FLUXBOX_HH 27#ifndef FLUXBOX_HH
28#define FLUXBOX_HH 28#define FLUXBOX_HH
@@ -113,7 +113,7 @@ public:
113 inline const std::vector<Fluxbox::Titlebar>& getTitlebarLeft() const { return *m_rc_titlebar_left; } 113 inline const std::vector<Fluxbox::Titlebar>& getTitlebarLeft() const { return *m_rc_titlebar_left; }
114 inline const std::string &getStyleFilename() const { return *m_rc_stylefile; } 114 inline const std::string &getStyleFilename() const { return *m_rc_stylefile; }
115 115
116 inline const char *getMenuFilename() const { return m_rc_menufile->c_str(); } 116 inline const std::string &getMenuFilename() const { return *m_rc_menufile; }
117 inline const std::string &getSlitlistFilename() const { return *m_rc_slitlistfile; } 117 inline const std::string &getSlitlistFilename() const { return *m_rc_slitlistfile; }
118 inline int colorsPerChannel() const { return *m_rc_colors_per_channel; } 118 inline int colorsPerChannel() const { return *m_rc_colors_per_channel; }
119 inline int getNumberOfLayers() const { return *m_rc_numlayers; } 119 inline int getNumberOfLayers() const { return *m_rc_numlayers; }