summaryrefslogtreecommitdiff
path: root/src/Fl_Browser.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fl_Browser.cxx')
-rw-r--r--src/Fl_Browser.cxx15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/Fl_Browser.cxx b/src/Fl_Browser.cxx
index 7621c6598..72aa8de37 100644
--- a/src/Fl_Browser.cxx
+++ b/src/Fl_Browser.cxx
@@ -378,8 +378,7 @@ int Fl_Browser::item_height(void *item) const {
Fl_Font font = textfont(); // default font
int tsize = textsize(); // default size
if ( format_char() ) { // can be NULL
- while (*str==format_char()) {
- str++;
+ while (*str==format_char() && *str++ && *str!=format_char()) {
switch (*str++) {
case 'l': case 'L': tsize = 24; break;
case 'm': case 'M': tsize = 18; break;
@@ -391,7 +390,6 @@ int Fl_Browser::item_height(void *item) const {
case 'C': while (isdigit(*str & 255)) str++; break; // skip a color number
case 'F': font = (Fl_Font)strtol(str,&str,10); break;
case 'S': tsize = strtol(str,&str,10); break;
- case 0: case '@': str--;
case '.': goto END_FORMAT;
}
}
@@ -458,9 +456,6 @@ int Fl_Browser::item_width(void *item) const {
case '.':
done = 1;
break;
- case '@':
- str--;
- done = 1;
}
if (done)
@@ -511,7 +506,7 @@ void Fl_Browser::item_draw(void* item, int X, int Y, int W, int H) const {
char* str = l->txt;
const int* i = column_widths();
- bool first = true; // for icon
+ bool firstLoop = true; // for icon
while (W > 6) { // do each tab-separated field
int w1 = W; // width for this field
char* e = 0; // pointer to end of field or null if none
@@ -520,8 +515,8 @@ void Fl_Browser::item_draw(void* item, int X, int Y, int W, int H) const {
if (e) {*e = 0; w1 = *i++;}
}
// Icon drawing code
- if (first) {
- first = false;
+ if (firstLoop) {
+ firstLoop = false;
if (l->icon) {
l->icon->draw(X+2,Y+1); // leave 2px left, 1px above
int iconw = l->icon->w()+2;
@@ -578,8 +573,6 @@ void Fl_Browser::item_draw(void* item, int X, int Y, int W, int H) const {
break;
case '.':
goto BREAK;
- case '@':
- str--; goto BREAK;
}
}
}