summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2018-12-30 11:04:10 +0100
committerManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com>2018-12-30 11:04:10 +0100
commit362f9350868286b066070df7da1f496df08ecd73 (patch)
treed4bf7e564018d835092fff0f311ebcec6740d02d /src
parent26bb0e5a831be64f21eec41efef73571aebadab5 (diff)
parentde199c327e9b55bd615f7262724da8ecba1999cf (diff)
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src')
-rw-r--r--src/Fl.cxx1
-rw-r--r--src/Fl_Browser.cxx15
-rw-r--r--src/Fl_File_Chooser2.cxx4
-rw-r--r--src/Fl_Input_.cxx1
-rw-r--r--src/Fl_JPEG_Image.cxx5
-rw-r--r--src/Fl_Menu.cxx2
-rw-r--r--src/Fl_Menu_add.cxx2
-rw-r--r--src/Fl_Text_Buffer.cxx2
-rw-r--r--src/gl_draw.cxx34
9 files changed, 29 insertions, 37 deletions
diff --git a/src/Fl.cxx b/src/Fl.cxx
index b29b7a260..417a0acca 100644
--- a/src/Fl.cxx
+++ b/src/Fl.cxx
@@ -1306,6 +1306,7 @@ int Fl::handle_(int e, Fl_Window* window)
case FL_UNFOCUS:
window = 0;
+ // FALLTHROUGH
case FL_FOCUS:
fl_xfocus = window;
fl_fix_focus();
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;
}
}
}
diff --git a/src/Fl_File_Chooser2.cxx b/src/Fl_File_Chooser2.cxx
index 57226056d..426dbfd51 100644
--- a/src/Fl_File_Chooser2.cxx
+++ b/src/Fl_File_Chooser2.cxx
@@ -432,7 +432,8 @@ Fl_File_Chooser::count() {
void
Fl_File_Chooser::directory(const char *d)// I - Directory to change to
{
- char *dirptr; // Pointer into directory
+ char *dirptr; // Pointer into directory
+ char fixpath[FL_PATH_MAX]; // Path with slashes converted
// printf("Fl_File_Chooser::directory(\"%s\")\n", d == NULL ? "(null)" : d);
@@ -444,7 +445,6 @@ Fl_File_Chooser::directory(const char *d)// I - Directory to change to
if (Fl::system_driver()->backslash_as_slash()) {
// See if the filename contains backslashes...
char *slash; // Pointer to slashes
- char fixpath[FL_PATH_MAX]; // Path with slashes converted
if (strchr(d, '\\')) {
// Convert backslashes to slashes...
strlcpy(fixpath, d, sizeof(fixpath));
diff --git a/src/Fl_Input_.cxx b/src/Fl_Input_.cxx
index 1ffc3c402..ef6900d6e 100644
--- a/src/Fl_Input_.cxx
+++ b/src/Fl_Input_.cxx
@@ -1010,6 +1010,7 @@ int Fl_Input_::handletext(int event, int X, int Y, int W, int H) {
if (!(damage()&FL_DAMAGE_EXPOSE)) {minimal_update(position_); erase_cursor_only = 1;}
} else //if (Fl::selection_owner() != this)
minimal_update(mark_, position_);
+ // FALLTHROUGH
case FL_HIDE:
fl_reset_spot();
if (!readonly() && (when() & FL_WHEN_RELEASE))
diff --git a/src/Fl_JPEG_Image.cxx b/src/Fl_JPEG_Image.cxx
index 384acd2a4..6dcf030b5 100644
--- a/src/Fl_JPEG_Image.cxx
+++ b/src/Fl_JPEG_Image.cxx
@@ -255,9 +255,8 @@ extern "C" {
static void jpeg_mem_src(j_decompress_ptr cinfo, const unsigned char *data)
{
- my_src_ptr src;
- cinfo->src = (struct jpeg_source_mgr *)malloc(sizeof(my_source_mgr));
- src = (my_src_ptr)cinfo->src;
+ my_src_ptr src = (my_source_mgr*)malloc(sizeof(my_source_mgr));
+ cinfo->src = &(src->pub);
src->pub.init_source = init_source;
src->pub.fill_input_buffer = fill_input_buffer;
src->pub.skip_input_data = skip_input_data;
diff --git a/src/Fl_Menu.cxx b/src/Fl_Menu.cxx
index b51b4e040..3ab303dea 100644
--- a/src/Fl_Menu.cxx
+++ b/src/Fl_Menu.cxx
@@ -533,7 +533,7 @@ int menuwindow::find_selected(int mx, int my) {
if (my < 0 || my >= h()) return -1;
if (!itemheight) { // menubar
int xx = 3; int n = 0;
- const Fl_Menu_Item* m = menu ? menu->first() : 0;
+ const Fl_Menu_Item* m = menu->first();
for (; ; m = m->next(), n++) {
if (!m->text) return -1;
xx += m->measure(0, button) + 16;
diff --git a/src/Fl_Menu_add.cxx b/src/Fl_Menu_add.cxx
index 32da93df3..57534f4e3 100644
--- a/src/Fl_Menu_add.cxx
+++ b/src/Fl_Menu_add.cxx
@@ -176,7 +176,7 @@ int Fl_Menu_Item::insert(
if (m->flags&FL_SUBMENU && !compare(item, m->text)) break;
if (!m->text) { /* create a new menu */
- int n = (index==-1) ? (int) (m-array) : index;
+ int n = (int)(m-array); /* index is not used if label contains a path */
array = array_insert(array, msize, n, item, FL_SUBMENU|flags1);
msize++;
array = array_insert(array, msize, n+1, 0, 0);
diff --git a/src/Fl_Text_Buffer.cxx b/src/Fl_Text_Buffer.cxx
index 6b46dd497..8df527b1b 100644
--- a/src/Fl_Text_Buffer.cxx
+++ b/src/Fl_Text_Buffer.cxx
@@ -1248,7 +1248,7 @@ void Fl_Text_Buffer::remove_(int start, int end)
/* expand the gap to encompass the deleted characters */
mGapEnd += end - mGapStart;
- mGapStart -= mGapStart - start;
+ mGapStart = start;
/* update the length */
mLength -= end - start;
diff --git a/src/gl_draw.cxx b/src/gl_draw.cxx
index 695c4ee08..ed35d8d62 100644
--- a/src/gl_draw.cxx
+++ b/src/gl_draw.cxx
@@ -97,26 +97,24 @@ void gl_remove_displaylist_fonts()
for (int j = 0 ; j < FL_FREE_FONT ; ++j)
{
- Fl_Font_Descriptor* past = 0;
- Fl_Font_Descriptor** s_first = Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
- Fl_Font_Descriptor* f = *s_first;
- while (f != 0) {
- if(f->listbase) {
- if(f == *s_first) {
- *s_first = f->next;
- }
- else {
- past->next = f->next;
+ Fl_Font_Descriptor *prevDesc = 0L, *nextDesc = 0L;
+ Fl_Font_Descriptor *&firstDesc = *Fl_Gl_Window_Driver::global()->fontnum_to_fontdescriptor(j);
+ for (Fl_Font_Descriptor *desc = firstDesc; desc; desc = nextDesc)
+ {
+ nextDesc = desc->next;
+ if(desc->listbase) {
+ // remove descriptor from a single-linked list
+ if(desc == firstDesc) {
+ firstDesc = desc->next;
+ } else if (prevDesc) {
+ // prevDesc should not be NULL, but this test will make static analysis shut up
+ prevDesc->next = desc->next;
}
// It would be nice if this next line was in a destructor somewhere
- glDeleteLists(f->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
- Fl_Font_Descriptor* tmp = f;
- f = f->next;
- delete tmp;
- }
- else {
- past = f;
- f = f->next;
+ glDeleteLists(desc->listbase, Fl_Gl_Window_Driver::global()->genlistsize());
+ delete desc;
+ } else {
+ prevDesc = desc;
}
}
}