summaryrefslogtreecommitdiff
path: root/fluid
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2007-01-03 02:56:36 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2007-01-03 02:56:36 +0000
commite806450644365883a6561552bdb2dc65566a8e20 (patch)
treeb7e8bbd5db483b63a7fd1c23872e5ee2bbcf6716 /fluid
parent230a2a4332d9ac83ad2ca588c353e0dcfc3535ff (diff)
Use strspn() to look at full words (better "o" detection)
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5577 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'fluid')
-rw-r--r--fluid/Fl_Widget_Type.cxx19
1 files changed, 11 insertions, 8 deletions
diff --git a/fluid/Fl_Widget_Type.cxx b/fluid/Fl_Widget_Type.cxx
index 64d657f12..69c7dc07c 100644
--- a/fluid/Fl_Widget_Type.cxx
+++ b/fluid/Fl_Widget_Type.cxx
@@ -1995,19 +1995,22 @@ void Fl_Widget_Type::write_code1() {
{
int instring = 0;
int inname = 0;
- for (ptr = extra_code(n); *ptr; ptr ++)
+ for (ptr = extra_code(n); *ptr; ptr ++) {
if (instring) {
if (*ptr == '\\') ptr++;
else if (*ptr == '\"') instring = 0;
} else if (inname && !isalnum(*ptr & 255)) inname = 0;
else if (*ptr == '\"') instring = 1;
- else if (!strncmp(ptr, "o->", 3) || !strncmp(ptr, "o)", 2) ||
- !strncmp(ptr, "o,", 2) || !strncmp(ptr, "o ", 2)) break;
- else if (isalnum(*ptr & 255)) inname = 1;
-
- if (*ptr) {
- varused = 1;
- break;
+ else if (isalnum(*ptr & 255) || *ptr == '_') {
+ size_t len = strspn(ptr, "0123456789_"
+ "abcdefghijklmnopqrstuvwxyz"
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+
+ if (!strncmp(ptr, "o", len)) {
+ varused = 1;
+ break;
+ } else ptr += len - 1;
+ }
}
}
}