X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2FUtil.cc;h=6e2ea152e7acef7522d8d0a65f08da416da66476;hb=75b6a5a378966efc09c355109ab42467ddc6d845;hp=bc685bfaf4dac4e2c55cd7c133ed83933c62cd36;hpb=1775e867c408bbea2b7f197c0c40b26e586e9ef1;p=chaz%2Fopenbox diff --git a/src/Util.cc b/src/Util.cc index bc685bfa..6e2ea152 100644 --- a/src/Util.cc +++ b/src/Util.cc @@ -26,6 +26,8 @@ #endif // HAVE_CONFIG_H extern "C" { +#include + #ifdef HAVE_STRING_H #include #endif @@ -48,11 +50,9 @@ extern "C" { #if defined(HAVE_PROCESS_H) && defined(__EMX__) # include #endif // HAVE_PROCESS_H __EMX__ -} - -#include #include +} #include @@ -141,6 +141,18 @@ bool Rect::intersects(const Rect &a) const { } +bool Rect::contains(int __x, int __y) const { + return __x >= _x1 && __x <= _x2 && + __y >= _y1 && __y <= _y2; +} + + +bool Rect::contains(const Rect& a) const { + return a._x1 >= _x1 && a._x2 <= _x2 && + a._y1 >= _y1 && a._y2 <= _y2; +} + + string expandTilde(const string& s) { if (s[0] != '~') return s; @@ -157,13 +169,11 @@ void bexec(const string& command, const string& displaystring) { setsid(); int ret = putenv(const_cast(displaystring.c_str())); assert(ret != -1); - string cmd = "exec "; - cmd += command; - execl("/bin/sh", "/bin/sh", "-c", cmd.c_str(), NULL); - exit(0); + ret = execl("/bin/sh", "/bin/sh", "-c", command.c_str(), NULL); + exit(ret); } #else // __EMX__ - spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", command, NULL); + spawnlp(P_NOWAIT, "cmd.exe", "cmd.exe", "/c", command.c_str(), NULL); #endif // !__EMX__ } @@ -182,8 +192,9 @@ string textPropertyToString(Display *display, XTextProperty& text_prop) { string ret; if (text_prop.value && text_prop.nitems > 0) { - ret = (char *) text_prop.value; - if (text_prop.encoding != XA_STRING) { + if (text_prop.encoding == XA_STRING) { + ret = (char *) text_prop.value; + } else { text_prop.nitems = strlen((char *) text_prop.value); char **list; @@ -236,10 +247,8 @@ string itostring(unsigned long i) { string itostring(long i) { - if (i < 0) { - std::string tmp = itostring( (unsigned long) -i); + std::string tmp = itostring( (unsigned long) std::abs(i)); + if (i < 0) tmp.insert(tmp.begin(), '-'); - return tmp; - } else - return itostring( (unsigned long) i); + return tmp; }