DO NOT REPLY TO THIS MESSAGE. INSTEAD, POST ANY RESPONSES TO THE LINK BELOW.
[STR New]
Link: http://www.fltk.org/str.php?L2164
Version: 1.3-current
Fl_Preferences is broken for svn fltk-1.3 for cygwin,
it works for svn fltk-1.1.
In Fl_Preferences::RootNode::RootNode,
there is the following code for mingw
#ifndef __CYGWIN__
if (!filename[1] && !filename[0]) {
strcpy(filename, "C:\\FLTK");
For cygwin there is:
if (!filename[0]) strcpy(filename, "C:\\FLTK");
The mingw code works on wide characters, the cygwin
code on 1 byte chars. Since filename is a wide character
string the cygwin test is incorrect, and filename
is always set to c:\\fltk.
The attached patch fixes this
Link: http://www.fltk.org/str.php?L2164
Version: 1.3-currentIndex: Fl_Preferences.cxx
===================================================================
--- Fl_Preferences.cxx (revision 6670)
+++ Fl_Preferences.cxx (working copy)
@@ -816,13 +816,22 @@
switch (root) {
case SYSTEM:
+#ifndef __CYGWIN__
err = RegOpenKeyW( HKEY_LOCAL_MACHINE, FLPREFS_RESOURCEW, &key );
+#else
+ err = RegOpenKey( HKEY_LOCAL_MACHINE, FLPREFS_RESOURCE, &key );
+#endif
if (err == ERROR_SUCCESS) {
nn = FL_PATH_MAX - appDataLen;
+#ifndef __CYGWIN__
err = RegQueryValueExW( key, L"Common AppData", 0L, &type,
(BYTE*)filename, &nn );
+#else
+ err = RegQueryValueEx( key, "Common AppData", 0L, &type,
+ (BYTE*)filename, &nn );
+#endif
if ( ( err != ERROR_SUCCESS ) && ( type == REG_SZ ) ) {
filename[0] = 0;
@@ -832,13 +841,22 @@
}
break;
case USER:
+#ifndef __CYGWIN__
err = RegOpenKeyW( HKEY_CURRENT_USER, FLPREFS_RESOURCEW, &key );
+#else
+ err = RegOpenKey( HKEY_CURRENT_USER, FLPREFS_RESOURCE, &key );
+#endif
if (err == ERROR_SUCCESS) {
nn = FL_PATH_MAX - appDataLen;
+#ifndef __CYGWIN__
err = RegQueryValueExW( key, L"AppData", 0L, &type,
(BYTE*)filename, &nn );
+#else
+ err = RegQueryValueEx( key, "AppData", 0L, &type,
+ (BYTE*)filename, &nn );
+#endif
if ( ( err != ERROR_SUCCESS ) && ( type == REG_SZ ) ) {
filename[0] = 0;
_______________________________________________
fltk-bugs mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk-bugs