$OpenBSD: patch-provider_libserver_ECStoreObjectTable_cpp,v 1.2 2010/08/31 17:57:21 ajacoutot Exp $
--- provider/libserver/ECStoreObjectTable.cpp.orig	Mon Aug 30 13:01:48 2010
+++ provider/libserver/ECStoreObjectTable.cpp	Tue Aug 31 15:14:05 2010
@@ -655,7 +655,9 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 	unsigned int ulLastPos;
 	unsigned int ulColId = 0;
 	std::string strData;
+#ifndef __OpenBSD__
 	locale_t loc = createlocale(LC_NUMERIC, "C");
+#endif
 	
 	if(lpSession == NULL || lpsMapKey == NULL)
 	{
@@ -707,7 +709,11 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 			break;
 		case PT_R4:
  			lpPropVal->__union = SOAP_UNION_propValData_flt;
+#ifndef __OpenBSD__
 			lpPropVal->Value.flt = (float)strtod_l(lpDBRow[ulColId], NULL, loc);
+#else
+			lpPropVal->Value.flt = (float)strtod(lpDBRow[ulColId], NULL);
+#endif
 			break;
 		case PT_BOOLEAN:
  			lpPropVal->__union = SOAP_UNION_propValData_b;
@@ -715,7 +721,11 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 			break;
 		case PT_DOUBLE:
  			lpPropVal->__union = SOAP_UNION_propValData_dbl;
+#ifndef __OpenBSD__
 			lpPropVal->Value.dbl = strtod_l(lpDBRow[ulColId], NULL, loc);
+#else
+			lpPropVal->Value.dbl = strtod(lpDBRow[ulColId], NULL);
+#endif
 			break;
 		case PT_CURRENCY:
 			lpPropVal->Value.hilo = s_alloc<hiloLong>(soap);
@@ -725,7 +735,11 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 			break;
 		case PT_APPTIME:
  			lpPropVal->__union = SOAP_UNION_propValData_dbl;
+#ifndef __OpenBSD__
 			lpPropVal->Value.dbl = strtod_l(lpDBRow[ulColId], NULL, loc);
+#else
+			lpPropVal->Value.dbl = strtod(lpDBRow[ulColId], NULL);
+#endif
 			break;
 		case PT_SYSTIME:
 			lpPropVal->Value.hilo = s_alloc<hiloLong>(soap);
@@ -818,7 +832,11 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 			{
 				ParseMVProp(lpDBRow[ulColId], lpDBLen[ulColId], &ulLastPos, &strData);
 
+#ifndef __OpenBSD__
 				lpPropVal->Value.mvflt.__ptr[j] = (float)strtod_l(strData.c_str(), NULL, loc);
+#else
+				lpPropVal->Value.mvflt.__ptr[j] = (float)strtod(strData.c_str(), NULL);
+#endif
 			}
 			break;
 		case PT_MV_APPTIME:
@@ -838,7 +856,11 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 			{
 				ParseMVProp(lpDBRow[ulColId], lpDBLen[ulColId], &ulLastPos, &strData);
 
+#ifndef __OpenBSD__
 				lpPropVal->Value.mvdbl.__ptr[j] = strtod_l(strData.c_str(), NULL, loc);
+#else
+				lpPropVal->Value.mvdbl.__ptr[j] = strtod(strData.c_str(), NULL);
+#endif
 			}
 			break;
 		case PT_MV_CURRENCY:
@@ -946,7 +968,9 @@ ECRESULT ECStoreObjectTable::CopyDatabaseRowToSOAPProp
 	} 
 
 exit:
+#ifndef __OpenBSD__
 	freelocale(loc);
+#endif
 	return er;
 }
 
