win32 KUriFilterData problem with ERROR define

Ralf Habacker ralf.habacker at freenet.de
Sun Sep 2 18:13:16 BST 2007


Andreas Pakulat schrieb:
> On 29.08.07 14:45:49, Christian Ehrlicher wrote:
>   
>>> Von: Ralf Habacker <ralf.habacker at freenet.de>
>>> 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.
>>     
>
> Isn't there a general exception to "fix broken API", this is broken API - IMHO.
> I'd say if you can find all usages and port them, just make it camel-case.
>   
I like to ask if there are objectivities against using CamelCase
UriTypes enum values in class KUriFilterData.

I have prepared patches for the related parts identified by a 
UriFilterData search in lxr.kde.org.

I would apply them tomorrow.

Ralf


-------------- next part --------------
A non-text attachment was scrubbed...
Name: kurifilterdata-patch.zip
Type: application/x-zip-compressed
Size: 8499 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20070902/c4962614/attachment.bin>


More information about the kde-core-devel mailing list