win32 KUriFilterData problem with ERROR define
Ralf Habacker
ralf.habacker at freenet.de
Wed Aug 29 14:55:30 BST 2007
Christian Ehrlicher schrieb:
>> Von: Ralf Habacker <ralf.habacker at freenet.de>
>> 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 ?
>>
>>
> Write to k-c-d and ask if we still can change it. If yes -> do it next monday. Otherwise include fixwin.h (it's from kdelibs/kdecore) - it should do nearly the same like you did.
>
I cannot find a fixwin.h in kdelibs\kdecore. Are your refering to
fixwinh.h from the kdewin32 package ? This file does not help in this case.
Ralf
More information about the kde-core-devel
mailing list