[fdo][FDO161][New] '_wcsnicmp' was not declared in this scope

Mateusz Loskot mateusz at loskot.net
Wed Sep 6 22:24:57 EDT 2006


You can view the artifact detail at the following URL:

    https://fdo.osgeo.org/servlets/Scarab/id/FDO161

Type
 Defect

Artifact ID
 FDO161 ('_wcsnicmp' was not declared in this scope)

Reported by
 Mateusz Loskot
 mloskot (mateusz at loskot.net)

New artifact details:
---------------------------------------------------------

- OS Distribution and Version set to new value
  Ubuntu 6.06
- Platform set to new value
  PC
- Summary set to new value
  '_wcsnicmp' was not declared in this scope
- Steps to Reproduce set to new value
  1. Download/update latest sources of fdocore
2. Try to compile
- Artifact created
- Subcomponent set to new value
  UTILITIES
- Artifact Status set to new value
  Unconfirmed
- Operating system set to new value
  Linux
- Component set to new value
  FDO
- Description set to new value
  A few minutes ago I run 'svn update' to update my local copy of fdocore:

mloskot:~/dev/fdo/_svn$ svn up
U    Utilities/Common/Src/FdoCommonConnStringParser.cpp
U    Utilities/Common/Src/FdoCommonConnPropDictionary.cpp
U    Utilities/Common/Inc/FdoCommonConnStringParser.h
U    Utilities/Common/Inc/FdoCommonConnPropDictionary.h


Next, I run make (there are no new files so ./configure run is not required):

mloskot:~/dev/fdo/_svn$ make
./Inc/FdoCommonConnPropDictionary.h: In member function 'ConnectionProperty* FdoCommonPropDictionary<T>::FindProperty(const wchar_t*)':
./Inc/FdoCommonConnPropDictionary.h:751: error: there are no arguments to '_wcsnicmp' that depend on a template parameter, so a declaration of '_wcsnicmp' must be available
./Inc/FdoCommonConnPropDictionary.h:751: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
./Inc/FdoCommonConnPropDictionary.h: In member function 'ConnectionProperty* FdoCommonPropDictionary<T>::FindProperty(const wchar_t*) [with T = FdoIConnectionPropertyDictionary]':
./Inc/FdoCommonConnPropDictionary.h:595:   instantiated from 'void FdoCommonPropDictionary<T>::SetProperty(const FdoString*, const FdoString*) [with T = FdoIConnectionPropertyDictionary]'
Src/FdoCommonConnPropDictionary.cpp:80:   instantiated from here
./Inc/FdoCommonConnPropDictionary.h:751: error: '_wcsnicmp' was not declared in this scope
./Inc/FdoCommonConnPropDictionary.h: In member function 'ConnectionProperty* FdoCommonPropDictionary<T>::FindProperty(const wchar_t*) [with T = FdoIDataStorePropertyDictionary]':
./Inc/FdoCommonConnPropDictionary.h:579:   instantiated from 'const FdoString* FdoCommonPropDictionary<T>::GetProperty(const FdoString*) [with T = FdoIDataStorePropertyDictionary]'
Src/FdoCommonConnPropDictionary.cpp:151:   instantiated from here
./Inc/FdoCommonConnPropDictionary.h:751: error: '_wcsnicmp' was not declared in this scope
make[2]: *** [FdoCommonConnPropDictionary.lo] Error 1
make[2]: Leaving directory `/home/mloskot/dev/fdo/_svn/Utilities/Common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/mloskot/dev/fdo/_svn/Utilities'
make: *** [all-recursive] Error 1
mloskot:~/dev/fdo/_svn$



There are two defects:

1. Unix/GCC compatibility issue

_wcsnicmp() function is not a C/C++ standard function
but Microsoft's extension.

Complete list of wcs* functions from <wchar.h> header added to the C Standard,
with Amendment 1, 1995:
http://www.dinkumware.com/manuals/?manual=compleat&page=wchar.html

2. Non-platform specific issue

Missing header (likely wchar.h) with declaration/prototype of _wcsnicmp() function.
In file FdoCommonConnPropDictionary.h, full declaration of _wcsnicmp() function
must be available, otherwise the code is ill-formed and should not compile.

Tested with GCC 4.0.3 compiler.
- Defect Severity set to new value
  Critical

---------------------------------------------------------
This message was automatically generated by Project Tracker.








More information about the Fdo_issues mailing list