A few quick hacks to get the Squirrel debugger sqdbg to compile on Linux
authorIngo Ruhnke <grumbel@gmail.com>
Wed, 13 Aug 2014 00:45:28 +0000 (02:45 +0200)
committerIngo Ruhnke <grumbel@gmail.com>
Wed, 13 Aug 2014 00:45:28 +0000 (02:45 +0200)
external/squirrel/sqdbg/sqdbgserver.cpp
external/squirrel/sqdbg/sqdbgserver.h
external/squirrel/sqdbg/sqrdbg.cpp
external/squirrel/sqdbg/sqrdbg.h

index c7909c8..f7c4aac 100755 (executable)
@@ -1,9 +1,17 @@
 #include <squirrel.h>\r
 #include <assert.h>\r
+#include <stdio.h>\r
+#include <string.h>\r
+#include <stdlib.h>\r
 #include <sqstdblob.h>\r
 #include "sqrdbg.h"\r
 #include "sqdbgserver.h"\r
 \r
+#ifndef _WIN32\r
+#  define Sleep sleep\r
+#  include <sys/types.h>\r
+#  include <sys/socket.h>\r
+#endif\r
 \r
 #ifndef _UNICODE\r
 #define scstrcpy strcpy\r
@@ -633,7 +641,7 @@ void SQDbgServer::EndDocument()
 //this can be done much better/faster(do we need that?)\r
 const SQChar *SQDbgServer::escape_xml(const SQChar *s)\r
 {\r
-       SQChar *temp=sq_getscratchpad(_v,((SQInteger)scstrlen(s)*6) + sizeof SQChar);\r
+       SQChar *temp=sq_getscratchpad(_v,((SQInteger)scstrlen(s)*6) + sizeof(SQChar));\r
        SQChar *dest=temp;\r
        while(*s!=_SC('\0')){\r
                \r
@@ -659,4 +667,4 @@ const SQChar *SQDbgServer::escape_xml(const SQChar *s)
        *dest=_SC('\0');\r
        return temp;\r
        \r
-}
\ No newline at end of file
+}\r
index 272fce3..20f398d 100755 (executable)
@@ -8,7 +8,13 @@
 #include <map>\r
 #include <string>\r
 #include <vector>\r
-#include <winsock.h>\r
+#ifdef _WIN32\r
+#  include <winsock.h>\r
+#else\r
+#  include <unistd.h>\r
+#  define SOCKET int\r
+#  define INVALID_SOCKET (-1)\r
+#endif\r
 \r
 typedef std::basic_string<SQChar> SQDBGString;\r
 \r
@@ -148,4 +154,4 @@ public:
 #define sqdbg_closesocket(x) close((x))\r
 #endif\r
 \r
-#endif //_SQ_DBGSERVER_H_ 
\ No newline at end of file
+#endif //_SQ_DBGSERVER_H_ \r
index 542b048..eb9130e 100755 (executable)
@@ -1,5 +1,16 @@
 #include <squirrel.h>\r
-#include <winsock.h>\r
+#ifdef _WIN32\r
+#  include <winsock.h>\r
+#else\r
+#  include <sys/types.h>\r
+#  include <sys/socket.h>\r
+#  include <arpa/inet.h>\r
+#  include <sys/time.h>\r
+#  define SOCKET_ERROR (-1)\r
+#  define TIMEVAL struct timeval\r
+#endif\r
+#include <stdio.h>\r
+#include <string.h>\r
 #include <squirrel.h>\r
 #include <squirrel.h>\r
 #include "sqrdbg.h"\r
@@ -11,9 +22,9 @@ SQInteger error_handler(HSQUIRRELVM v);
 \r
 HSQREMOTEDBG sq_rdbg_init(HSQUIRRELVM v,unsigned short port,SQBool autoupdate)\r
 {\r
-       WSADATA wsadata;\r
-       sockaddr_in bindaddr;\r
+       struct sockaddr_in bindaddr;\r
 #ifdef _WIN32\r
+       WSADATA wsadata;\r
        if (WSAStartup (MAKEWORD(2,2), &wsadata) != 0){\r
                return NULL;  \r
        }       \r
@@ -48,7 +59,7 @@ SQRESULT sq_rdbg_waitforconnections(HSQREMOTEDBG rdbg)
        sq_pop(rdbg->_v,1);\r
 \r
        sockaddr_in cliaddr;\r
-       int addrlen=sizeof(cliaddr);\r
+       socklen_t addrlen=sizeof(cliaddr);\r
        if(listen(rdbg->_accept,0)==SOCKET_ERROR)\r
                return sq_throwerror(rdbg->_v,_SC("error on listen(socket)"));\r
        rdbg->_endpoint = accept(rdbg->_accept,(sockaddr*)&cliaddr,&addrlen);\r
index c3cc568..71585a2 100755 (executable)
@@ -4,7 +4,9 @@
 #ifdef __cplusplus\r
 extern "C" {\r
 #endif\r
+#ifdef _WIN32\r
 #pragma comment(lib, "WSOCK32.LIB")\r
+#endif\r
 \r
 struct SQDbgServer;\r
 typedef SQDbgServer* HSQREMOTEDBG;\r
@@ -18,4 +20,4 @@ SQRESULT sq_rdbg_update(HSQREMOTEDBG rdbg);
 } /*extern "C"*/\r
 #endif\r
 \r
-#endif //_SQ_RDBG_H_
\ No newline at end of file
+#endif //_SQ_RDBG_H_\r