win32 KUriFilterData problem with ERROR define
Ralf Habacker
ralf.habacker at freenet.de
Wed Aug 29 14:42:45 CEST 2007
Hi,
in kio's KUriFilterData class
(http://lxr.kde.org/source/KDE/kdelibs/kio/kio/kurifilter.h#098)
there are the following enums defined
m UriTypes { NET_PROTOCOL=0, LOCAL_FILE, LOCAL_DIR, EXECUTABLE, HELP,
SHELL, BLOCKED, ERROR, UNKNOWN };
Because they are all uppercase at least the ERROR value collidates with
a win 32 preprozessor macro definition.
I recognized this when compiling kdebase with msvc
In
KonqMisc::konqFilteredURL
the line
193: if( data.uriType() == KUriFilterData::ERROR &&
!data.errorMsg().isEmpty() )
is converted to
193: if( data.uriType() == KUriFilterData::0 && !data.errorMsg().isEmpty() )
which results in a error.
I can correct this problem in konqmisc.cpp by undefining ERROR after
all includes as shown below
#ifdef Q_WS_WIN
// windows defines ERROR
#undef ERROR
#endif
I remember that there were other similar cases and that they were fixed
by using non-all-uppercase enum values.
How to proceed ?
Ralf
More information about the Kde-windows
mailing list