license headers in libnetxms changed to LGPL
[public/netxms.git] / src / libnetxms / main.cpp
index 1a64510..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
 **
 **/
 
@@ -47,10 +47,41 @@ QWORD LIBNETXMS_EXPORTABLE __bswap_64(QWORD qwVal)
 
 
 //
+// Swap bytes in double
+//
+
+double LIBNETXMS_EXPORTABLE __bswap_double(double dVal)
+{
+   double dResult;
+   BYTE *sptr = (BYTE *)&dVal;
+   BYTE *dptr = (BYTE *)&dResult + 7;
+   int i;
+
+   for(i = 0; i < 8; i++, sptr++, dptr--)
+      *dptr = *sptr;
+
+   return dResult;
+}
+
+
+//
+// Swap bytes in wide string (UCS-2)
+//
+
+void LIBNETXMS_EXPORTABLE __bswap_wstr(UCS2CHAR *pStr)
+{
+   UCS2CHAR *pch;
+
+   for(pch = pStr; *pch != 0; pch++)
+      *pch = htons(*pch);
+}
+
+
+//
 // strupr() implementation for non-windows platforms
 //
 
-#ifndef _WIN32
+#if !defined(_WIN32) && !defined(_NETWARE)
 
 void LIBNETXMS_EXPORTABLE strupr(char *in)
 {
@@ -68,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
 
 
@@ -77,9 +135,35 @@ void LIBNETXMS_EXPORTABLE strupr(char *in)
 
 #ifdef _WIN32
 
+#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
 
 #endif   /* _WIN32 */
+
+
+//
+// NetWare library entry point
+//
+
+#ifdef _NETWARE
+
+int _init(void)
+{
+   return 0;
+}
+
+int _fini(void)
+{
+   return 0;
+}
+
+#endif