FLTK logo

[master] 1a8b941 - Fix Windows (VS) compiler warnings in fluid

FLTK matrix user chat room
(using Element browser app)   FLTK gitter user chat room   GitHub FLTK Project   FLTK News RSS Feed  
  FLTK Apps      FLTK Library      Forums      Links     Login 
 All Forums  |  Back to fltk.commit  ]
 
Previous Message ]Next Message ]

[master] 1a8b941 - Fix Windows (VS) compiler warnings in fluid "Albrecht Schlosser" Aug 30, 2021  
 
commit 1a8b94162da0a9eab88813d6b1928b483b7990eb
Author:     Albrecht Schlosser <albrechts.fltk@online.de>
AuthorDate: Mon Aug 30 22:00:59 2021 +0200
Commit:     Albrecht Schlosser <albrechts.fltk@online.de>
CommitDate: Mon Aug 30 23:45:16 2021 +0200

    Fix Windows (VS) compiler warnings in fluid

 FL/fl_casts.H                      | 17 ++++++++++++++++-
 fluid/CodeEditor.cxx               |  4 ++--
 fluid/ExternalCodeEditor_WIN32.cxx | 21 +++++++++++++++++----
 fluid/Fl_Function_Type.cxx         |  4 ++--
 fluid/Fl_Type.cxx                  | 28 ++++++++++++++--------------
 fluid/Fl_Widget_Type.cxx           |  6 +++---
 fluid/Fluid_Image.cxx              |  8 ++++----
 fluid/code.cxx                     |  4 ++--
 fluid/fluid.cxx                    |  6 +++---
 fluid/undo.cxx                     |  4 ++--
 fluid/widget_panel.cxx             |  8 ++++----
 fluid/widget_panel.fl              | 12 ++++++------
 fluid/widget_panel.h               |  2 +-
 13 files changed, 76 insertions(+), 48 deletions(-)

diff --git FL/fl_casts.H FL/fl_casts.H
index b4968c0..965f12e 100644
--- FL/fl_casts.H
+++ FL/fl_casts.H
@@ -1,4 +1,19 @@
-// experimental inline cast functions for the Fast Light Toolkit (FLTK)
+//
+// Experimental inline "cast functions" for the Fast Light Toolkit (FLTK).
+// See also issue #109: "VS2017 warnings when building fltk 1.4.x"
+//
+// Copyright 1998-2021 by Bill Spitzak and others.
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file.  If this
+// file is missing or damaged, see the license at:
+//
+//     https://www.fltk.org/COPYING.php
+//
+// Please see the following page on how to report bugs and issues:
+//
+//     https://www.fltk.org/bugs.php
+//
 
 #include <FL/platform_types.h>
 
diff --git fluid/CodeEditor.cxx fluid/CodeEditor.cxx
index 3d7d475..a6bfecc 100644
--- fluid/CodeEditor.cxx
+++ fluid/CodeEditor.cxx
@@ -2,7 +2,7 @@
 // Code editor widget for the Fast Light Tool Kit (FLTK).
 // Syntax highlighting rewritten by erco@seriss.com 09/15/20.
 //
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -165,7 +165,7 @@ int CodeEditor::auto_indent(int, CodeEditor* e) {
   *ptr = '\0';
   if (*text) {
     // use only a single 'insert' call to avoid redraw issues
-    int n = strlen(text);
+    size_t n = strlen(text);
     char *b = (char*)malloc(n+2);
     *b = '\n';
     strcpy(b+1, text);
diff --git fluid/ExternalCodeEditor_WIN32.cxx fluid/ExternalCodeEditor_WIN32.cxx
index 06d6868..a137b3e 100644
--- fluid/ExternalCodeEditor_WIN32.cxx
+++ fluid/ExternalCodeEditor_WIN32.cxx
@@ -1,6 +1,19 @@
 //
-//      External code editor management class for Windows
+// External code editor management class for Windows
 //
+// Copyright 1998-2021 by Bill Spitzak and others.
+//
+// This library is free software. Distribution and use rights are outlined in
+// the file "COPYING" which should have been included with this file.  If this
+// file is missing or damaged, see the license at:
+//
+//     https://www.fltk.org/COPYING.php
+//
+// Please see the following page on how to report bugs and issues:
+//
+//     https://www.fltk.org/bugs.php
+//
+
 //      Note: This entire file Windows only.
 
 #include <FL/Fl.H>      // Fl_Timeout_Handler..
@@ -243,8 +256,8 @@ int ExternalCodeEditor::handle_changes(const char **code, int force) {
   // Changes? Load file. Be sure to fallthru to CloseHandle()
   int ret = 0;
   if ( changed || force ) {
-    size_t buflen = size_t(fsize.QuadPart);
-    char *buf = (char*)malloc(buflen + 1);
+    DWORD buflen = (DWORD)fsize.QuadPart;
+    char *buf = (char*)malloc((size_t)buflen + 1);
     DWORD count;
     if ( ReadFile(fh, buf, buflen, &count, 0) == 0 ) {
       fl_alert("ERROR: ReadFile() failed for %s: %s",
@@ -378,7 +391,7 @@ static int save_file(const char *filename,
     return(-1);
   }
   // Write the file, being careful to CloseHandle() even on errs
-  DWORD clen = strlen(code);
+  DWORD clen = (DWORD)strlen(code);
   DWORD count = 0;
   int ret = 0;
   if ( WriteFile(fh, code, clen, &count, NULL) == 0 ) {
diff --git fluid/Fl_Function_Type.cxx fluid/Fl_Function_Type.cxx
index 54b4a73..2ece47e 100644
--- fluid/Fl_Function_Type.cxx
+++ fluid/Fl_Function_Type.cxx
@@ -1,7 +1,7 @@
 //
 // C function type code for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -500,7 +500,7 @@ void Fl_Code_Type::write_code1() {
   const char *ind = indent();
   while( (pch=strchr(c,'\n')) )
   {
-    int line_len = pch - c;
+    int line_len = int(pch - c);
     if (line_len < 1)
       write_c("\n");
     else
diff --git fluid/Fl_Type.cxx fluid/Fl_Type.cxx
index 12103d8..ae467ef 100644
--- fluid/Fl_Type.cxx
+++ fluid/Fl_Type.cxx
@@ -1,19 +1,7 @@
 //
 // Widget type code for the Fast Light Tool Kit (FLTK).
 //
-// Each object described by Fluid is one of these objects.  They
-// are all stored in a double-linked list.
-//
-// They "type" of the object is covered by the virtual functions.
-// There will probably be a lot of these virtual functions.
-//
-// The type browser is also a list of these objects, but they
-// are "factory" instances, not "real" ones.  These objects exist
-// only so the "make" method can be called on them.  They are
-// not in the linked list and are not written to files or
-// copied or otherwise examined.
-//
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -26,6 +14,18 @@
 //     https://www.fltk.org/bugs.php
 //
 
+// Each object described by Fluid is one of these objects.  They
+// are all stored in a double-linked list.
+//
+// The "type" of the object is covered by the virtual functions.
+// There will probably be a lot of these virtual functions.
+//
+// The type browser is also a list of these objects, but they
+// are "factory" instances, not "real" ones.  These objects exist
+// only so the "make" method can be called on them.  They are
+// not in the linked list and are not written to files or
+// copied or otherwise examined.
+
 #include <FL/Fl.H>
 #include <FL/Fl_Browser_.H>
 #include <FL/fl_draw.H>
@@ -682,7 +682,7 @@ int storestring(const char *n, const char * & p, int nostrip) {
     if (!nostrip) while (isspace((int)(unsigned char)*n)) n++;
     const char *e = n + strlen(n);
     if (!nostrip) while (e > n && isspace((int)(unsigned char)*(e-1))) e--;
-    length = e-n;
+    length = int(e-n);
     if (!length) n = 0;
   }
   if (n == p) return 0;
diff --git fluid/Fl_Widget_Type.cxx fluid/Fl_Widget_Type.cxx
index e63c299..17765dc 100644
--- fluid/Fl_Widget_Type.cxx
+++ fluid/Fl_Widget_Type.cxx
@@ -1,7 +1,7 @@
 //
 // Widget type code for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -379,7 +379,7 @@ void label_cb(Fl_Input* i, void *v) {
   if (v == LOAD) {
     i->static_value(current_widget->label());
     if (strlen(i->value()) >= oldlabellen) {
-      oldlabellen = strlen(i->value())+128;
+      oldlabellen = (int)strlen(i->value())+128;
       oldlabel = (char*)realloc(oldlabel,oldlabellen);
     }
     strcpy(oldlabel,i->value());
@@ -1343,7 +1343,7 @@ void user_data_type_cb(Fl_Input *i, void *v) {
 // "v_attributes" let user type in random code for attribute settings:
 
 void v_input_cb(Fl_Input* i, void* v) {
-  int n = fl_intptr_t(i->user_data());
+  int n = fl_int(i->user_data());
   if (v == LOAD) {
     i->static_value(current_widget->extra_code(n));
   } else {
diff --git fluid/Fluid_Image.cxx fluid/Fluid_Image.cxx
index ba44175..1057f17 100644
--- fluid/Fluid_Image.cxx
+++ fluid/Fluid_Image.cxx
@@ -1,7 +1,7 @@
 //
 // Pixmap (and other images) label support for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2016 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -55,7 +55,7 @@ void Fluid_Image::write_static() {
       pixmap_header_written = write_number;
     }
     write_c("static const char *%s[] = {\n", idata_name);
-    write_cstring(img->data()[0], strlen(img->data()[0]));
+    write_cstring(img->data()[0], (int)strlen(img->data()[0]));
 
     int i;
     int ncolors, chars_per_color;
@@ -68,7 +68,7 @@ void Fluid_Image::write_static() {
     } else {
       for (i = 1; i <= ncolors; i ++) {
         write_c(",\n");
-        write_cstring(img->data()[i], strlen(img->data()[i]));
+        write_cstring(img->data()[i], (int)strlen(img->data()[i]));
       }
     }
     for (; i < img->count(); i ++) {
@@ -107,7 +107,7 @@ void Fluid_Image::write_static() {
       if (nData) {
         char *data = (char*)calloc(nData, 1);
         if (fread(data, nData, 1, f)==0) { /* ignore */ }
-        write_cdata(data, nData);
+        write_cdata(data, (int)nData);
         free(data);
       }
       fclose(f);
diff --git fluid/code.cxx fluid/code.cxx
index 4603e95..5cf4622 100644
--- fluid/code.cxx
+++ fluid/code.cxx
@@ -1,7 +1,7 @@
 //
 // Code output routines for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2015 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -233,7 +233,7 @@ void write_cstring(const char *s, int length) {
 }
 
 // write a C string, quoting characters if necessary:
-void write_cstring(const char *s) {write_cstring(s,strlen(s));}
+void write_cstring(const char *s) {write_cstring(s, (int)strlen(s));}
 
 // write an array of C binary data (does not add a null):
 void write_cdata(const char *s, int length) {
diff --git fluid/fluid.cxx fluid/fluid.cxx
index 1f7e277..0e12bba 100644
--- fluid/fluid.cxx
+++ fluid/fluid.cxx
@@ -1,7 +1,7 @@
 //
 // FLUID main entry for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -1348,7 +1348,7 @@ public:
   int  close();
 
   FILE * desc() const { return _fpt;} // non null if file is open
-  char * get_line(char * line, size_t s) const {return _fpt ? fgets(line, s, _fpt) : NULL;}
+  char * get_line(char * line, size_t s) const {return _fpt ? fgets(line, (int)s, _fpt) : NULL;}
 
 #if defined(_WIN32)  && !defined(__CYGWIN__)
 protected:
@@ -1767,7 +1767,7 @@ int main(int argc,char **argv) {
     int i, n = pm.plugins();
     for (i=0; i<n; i++) {
       Fl_Commandline_Plugin *pi = (Fl_Commandline_Plugin*)pm.plugin(i);
-      if (pi) len += strlen(pi->help());
+      if (pi) len += (int)strlen(pi->help());
     }
     char *buf = (char*)malloc(len+1);
     sprintf(buf, msg, argv[0]);
diff --git fluid/undo.cxx fluid/undo.cxx
index 40b0f04..1afbb09 100644
--- fluid/undo.cxx
+++ fluid/undo.cxx
@@ -1,7 +1,7 @@
 //
 // FLUID undo support for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2017 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -61,7 +61,7 @@ static char *undo_filename(int level) {
 
   if (!undo_path_len) {
     fluid_prefs.getUserdataPath(undo_path, sizeof(undo_path));
-    undo_path_len = strlen(undo_path);
+    undo_path_len = (unsigned int)strlen(undo_path);
   }
 
   // append filename: "undo_PID_LEVEL.fl"
diff --git fluid/widget_panel.cxx fluid/widget_panel.cxx
index 162fa86..30bb686 100644
--- fluid/widget_panel.cxx
+++ fluid/widget_panel.cxx
@@ -1,7 +1,7 @@
 //
 // Widget panel for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -24,7 +24,7 @@ static void cb_(Fl_Tabs* o, void* v) {
 }
 
 Fl_Menu_Item menu_[] = {
- {"   Image Alignment   ", 0,  0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
+ {"   Image Alignment   ", 0,  0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
  {"image over text", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_IMAGE_OVER_TEXT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"text over image", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_OVER_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"text next to image", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_TEXT_NEXT_TO_IMAGE), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
@@ -34,7 +34,7 @@ Fl_Menu_Item menu_[] = {
 };
 
 Fl_Menu_Item menu_1[] = {
- {"   Inside && Outside   ", 0,  0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
+ {"   Inside && Outside   ", 0,  0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
  {"top left", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_TOP_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"top", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"top right", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_TOP_RIGHT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
@@ -44,7 +44,7 @@ Fl_Menu_Item menu_1[] = {
  {"bottom left", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_LEFT), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"bottom", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"bottom right", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_BOTTOM_RIGHT), 128, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
- {"   Outside Alignment   ", 0,  0, (void*)(0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
+ {"   Outside Alignment   ", 0,  0, (void*)((fl_intptr_t)0xFFFFFFFF), 1, (uchar)FL_NORMAL_LABEL, 2, 11, 0},
  {"left top", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"right top", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_RIGHT_TOP), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
  {"left bottom", 0,  0, (void*)((fl_intptr_t)FL_ALIGN_LEFT_BOTTOM), 0, (uchar)FL_NORMAL_LABEL, 0, 11, 0},
diff --git fluid/widget_panel.fl fluid/widget_panel.fl
index 986f05e..ab45161 100644
--- fluid/widget_panel.fl
+++ fluid/widget_panel.fl
@@ -5,7 +5,7 @@ code_name {.cxx}
 comment {//
 // Widget panel for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
@@ -46,7 +46,7 @@ Function {make_widget_panel()} {
           xywh {95 40 309 20} labelfont 1 labelsize 11 align 4
         } {
           Fl_Input {} {
-            callback label_cb
+            callback label_cb selected
             tooltip {The label text for the widget.
 Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 textsize 11 resizable
           }
@@ -134,7 +134,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te
           } {
             MenuItem {} {
               label {   Image Alignment   }
-              user_data 0xFFFFFFFF
+              user_data (fl_intptr_t)0xFFFFFFFF
               xywh {145 145 100 20} labelfont 2 labelsize 11 deactivate
             }
             MenuItem {} {
@@ -169,7 +169,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te
           } {
             MenuItem {} {
               label {   Inside && Outside   }
-              user_data 0xFFFFFFFF
+              user_data {(fl_intptr_t)0xFFFFFFFF}
               xywh {135 135 100 20} labelfont 2 labelsize 11 deactivate
             }
             MenuItem {} {
@@ -219,7 +219,7 @@ Use Ctrl-J for newlines.} xywh {95 40 190 20} labelfont 1 labelsize 11 when 1 te
             }
             MenuItem {} {
               label {   Outside Alignment   }
-              user_data 0xFFFFFFFF
+              user_data {(fl_intptr_t)0xFFFFFFFF}
               xywh {125 125 100 20} labelfont 2 labelsize 11 deactivate
             }
             MenuItem {} {
@@ -674,7 +674,7 @@ wCallback->do_callback(wCallback, v);} open
       Fl_Button {} {
         label Revert
         callback revert_cb
-        comment {Hidden Revert button} selected
+        comment {Hidden Revert button}
         xywh {90 370 60 20} labelsize 11 hide
       }
       Fl_Button wLiveMode {
diff --git fluid/widget_panel.h fluid/widget_panel.h
index 3f7a176..221ac37 100644
--- fluid/widget_panel.h
+++ fluid/widget_panel.h
@@ -1,7 +1,7 @@
 //
 // Widget panel for the Fast Light Tool Kit (FLTK).
 //
-// Copyright 1998-2020 by Bill Spitzak and others.
+// Copyright 1998-2021 by Bill Spitzak and others.
 //
 // This library is free software. Distribution and use rights are outlined in
 // the file "COPYING" which should have been included with this file.  If this
Direct Link to Message ]
 
     
Previous Message ]Next Message ]
 
 

Comments are owned by the poster. All other content is copyright 1998-2024 by Bill Spitzak and others. This project is hosted by The FLTK Team. Please report site problems to 'erco@seriss.com'.