diff options
| author | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2018-12-30 11:04:10 +0100 |
|---|---|---|
| committer | ManoloFLTK <41016272+ManoloFLTK@users.noreply.github.com> | 2018-12-30 11:04:10 +0100 |
| commit | 362f9350868286b066070df7da1f496df08ecd73 (patch) | |
| tree | d4bf7e564018d835092fff0f311ebcec6740d02d /src | |
| parent | 26bb0e5a831be64f21eec41efef73571aebadab5 (diff) | |
| parent | de199c327e9b55bd615f7262724da8ecba1999cf (diff) | |
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl.cxx | 1 | ||||
| -rw-r--r-- | src/Fl_Browser.cxx | 15 | ||||
| -rw-r--r-- | src/Fl_File_Chooser2.cxx | 4 | ||||
| -rw-r--r-- | src/Fl_Input_.cxx | 1 | ||||
| -rw-r--r-- | src/Fl_JPEG_Image.cxx | 5 | ||||
| -rw-r--r-- | src/Fl_Menu.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Menu_add.cxx | 2 | ||||
| -rw-r--r-- | src/Fl_Text_Buffer.cxx | 2 | ||||
| -rw-r--r-- | src/gl_draw.cxx | 34 |
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; } } } |
