Melchior FRANZ a écrit :
> * Stuart Buchanan -- Saturday 31 May 2008:
>
>> + if (!_filter.empty() && (strcasestr(entry.c_str(), _filter.c_str())
>> == NULL))
>>
>
> quote from 'man strcasestr':
>
> The strcasestr() function is a non-standard extension.
>
> I doubt that it's available on all supported platforms.
>
I confirm there in no strcasestr or equivalent in MS runtime.
The patch below should be portable, although more convoluted.
-Fred
cvs -z4 -w -q diff -u -wb -- src\GUI\AirportList.cxx
src\GUI\AirportList.hxx (in directory I:\Devel\FlightGear\)
Index: src/GUI/AirportList.cxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/GUI/AirportList.cxx,v
retrieving revision 1.18
diff -u -w -b -r1.18 AirportList.cxx
--- src/GUI/AirportList.cxx 11 Mar 2008 15:58:57 -0000 1.18
+++ src/GUI/AirportList.cxx 1 Jun 2008 10:21:57 -0000
@@ -2,6 +2,8 @@
#include <Main/globals.hxx>
#include <Airports/simple.hxx>
+#include <locale>
+
#include "AirportList.hxx"
@@ -25,12 +27,15 @@
int num_apt = _airports->size();
char **content = new char *[num_apt + 1];
+ const std::ctype<char> &ct = std::use_facet<std::ctype<char> >(
std::locale() );
int n = 0;
for (int i = 0; i < num_apt; i++) {
const FGAirport *apt = _airports->getAirport(i);
- STD::string entry(apt->getName() + " (" + apt->getId() + ')');
+ std::string aid = apt->getId();
+ ct.toupper( (char *)aid.data(), (char *)aid.data()+aid.size() );
+ std::string entry(apt->getName() + " (" + aid + ')');
- if (!_filter.empty() && entry.find(_filter) == STD::string::npos)
+ if (!_filter.empty() && entry.find(_filter) == std::string::npos)
continue;
content[n] = new char[entry.size() + 1];
@@ -60,7 +65,8 @@
void
AirportList::setValue (const char *s)
{
- STD::string filter(s);
+ std::string filter(s);
+ std::use_facet<std::ctype<char> >( std::locale() ).toupper( (char
*)filter.data(), (char *)filter.data()+filter.size() );
if (filter != _filter) {
_filter = filter;
create_list();
Index: src/GUI/AirportList.hxx
===================================================================
RCS file: /var/cvs/FlightGear-0.9/FlightGear/src/GUI/AirportList.hxx,v
retrieving revision 1.7
diff -u -w -b -r1.7 AirportList.hxx
--- src/GUI/AirportList.hxx 11 Mar 2008 15:58:57 -0000 1.7
+++ src/GUI/AirportList.hxx 1 Jun 2008 10:08:17 -0000
@@ -9,10 +9,6 @@
#include <plib/puAux.h>
#include "dialog.hxx"
-
-
-SG_USING_STD(string);
-
class FGAirportList;
class AirportList : public puaList, public GUI_ID
@@ -28,7 +24,7 @@
private:
FGAirportList * _airports;
char ** _content;
- STD::string _filter;
+ std::string _filter;
};
#endif // __AIRPORTLIST_HXX
--
Frédéric Bouvier
http://my.fotolia.com/frfoto/ Photo gallery
http://fgsd.sourceforge.net/ FlightGear Scenery Designer
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel