aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/FbTk/XmbFontImp.cc21
1 files changed, 19 insertions, 2 deletions
diff --git a/src/FbTk/XmbFontImp.cc b/src/FbTk/XmbFontImp.cc
index f0c323d..c9a87d0 100644
--- a/src/FbTk/XmbFontImp.cc
+++ b/src/FbTk/XmbFontImp.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: XmbFontImp.cc,v 1.1 2002/11/26 16:01:28 fluxgen Exp $ 22// $Id: XmbFontImp.cc,v 1.2 2002/11/26 20:04:15 fluxgen Exp $
23 23
24#include "XmbFontImp.hh" 24#include "XmbFontImp.hh"
25 25
@@ -44,6 +44,23 @@ using namespace std;
44 44
45namespace { 45namespace {
46 46
47#ifndef HAVE_STRCASESTR
48//
49// Tries to find a string in another and
50// ignoring the case of the characters
51// Returns 0 on success else pointer to str.
52const char *strcasestr(const char *str, const char *ptn) {
53 const char *s2, *p2;
54 for( ; *str; str++) {
55 for(s2=str, p2=ptn; ; s2++,p2++) {
56 if (!*p2) return str; // check if we reached the end of ptn, if so, return str
57 if (toupper(*s2) != toupper(*p2)) break; // check if the chars match(ignoring case)
58 }
59 }
60 return 0;
61}
62#endif //HAVE_STRCASESTR
63
47const char *getFontSize(const char *pattern, int *size) { 64const char *getFontSize(const char *pattern, int *size) {
48 const char *p; 65 const char *p;
49 const char *p2=0; 66 const char *p2=0;
@@ -80,7 +97,7 @@ const char *getFontElement(const char *pattern, char *buf, int bufsiz, ...) {
80 buf[bufsiz-1] = 0; 97 buf[bufsiz-1] = 0;
81 buf[bufsiz-2] = '*'; 98 buf[bufsiz-2] = '*';
82 while((v = va_arg(va, char *)) != 0) { 99 while((v = va_arg(va, char *)) != 0) {
83 p = strcasestr(pattern, v); 100 p = ::strcasestr(pattern, v);
84 if (p) { 101 if (p) {
85 std::strncpy(buf, p+1, bufsiz-2); 102 std::strncpy(buf, p+1, bufsiz-2);
86 p2 = strchr(buf, '-'); 103 p2 = strchr(buf, '-');