license headers in libnetxms changed to LGPL
[public/netxms.git] / src / libnetxms / main.cpp
index 3bc85d0..b5bc175 100644 (file)
@@ -1,11 +1,11 @@
 /* 
 ** NetXMS - Network Management System
 ** Utility Library
-** Copyright (C) 2003 Victor Kirhenshtein
+** Copyright (C) 2003-2010 Victor Kirhenshtein
 **
 ** This program is free software; you can redistribute it and/or modify
-** it under the terms of the GNU General Public License as published by
-** the Free Software Foundation; either version 2 of the License, or
+** it under the terms of the GNU Lesser General Public License as published
+** by the Free Software Foundation; either version 3 of the License, or
 ** (at your option) any later version.
 **
 ** This program is distributed in the hope that it will be useful,
 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ** GNU General Public License for more details.
 **
-** You should have received a copy of the GNU General Public License
+** You should have received a copy of the GNU Lesser General Public License
 ** along with this program; if not, write to the Free Software
 ** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 **
-** $module: main.cpp
+** File: main.cpp
 **
 **/
 
@@ -65,12 +65,12 @@ double LIBNETXMS_EXPORTABLE __bswap_double(double dVal)
 
 
 //
-// Swap bytes in wide string
+// Swap bytes in wide string (UCS-2)
 //
 
-void LIBNETXMS_EXPORTABLE __bswap_wstr(WCHAR *pStr)
+void LIBNETXMS_EXPORTABLE __bswap_wstr(UCS2CHAR *pStr)
 {
-   WCHAR *pch;
+   UCS2CHAR *pch;
 
    for(pch = pStr; *pch != 0; pch++)
       *pch = htons(*pch);
@@ -99,6 +99,33 @@ void LIBNETXMS_EXPORTABLE strupr(char *in)
        }
 }
 
+#if defined(UNICODE_UCS2) || defined(UNICODE_UCS4)
+
+void LIBNETXMS_EXPORTABLE wcsupr(WCHAR *in)
+{
+       WCHAR *p = in;
+
+       if (in == NULL) 
+   { 
+               return;
+       }
+       
+       for (; *p != 0; p++) 
+   {
+               // TODO: check/set locale
+#if HAVE_TOWUPPER
+               *p = towupper(*p);
+#else
+               if (*p < 256)
+               {
+                       *p = (WCHAR)toupper(*p);
+               }
+#endif
+       }
+}
+
+#endif
+
 #endif
 
 
@@ -111,6 +138,11 @@ void LIBNETXMS_EXPORTABLE strupr(char *in)
 #ifndef UNDER_CE // FIXME
 BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
 {
+   if (dwReason == DLL_PROCESS_ATTACH)
+       {
+      DisableThreadLibraryCalls(hInstance);
+               SEHInit();
+       }
    return TRUE;
 }
 #endif // UNDER_CE