fix compilation with vc++
authorVincent Torri <vincent.torri@gmail.com>
Tue, 8 Dec 2009 17:34:57 +0000 (17:34 +0000)
committerVincent Torri <vincent.torri@gmail.com>
Tue, 8 Dec 2009 17:34:57 +0000 (17:34 +0000)
SVN revision: 44284

legacy/embryo/src/bin/embryo_cc_amx.h
legacy/embryo/src/bin/embryo_cc_prefix.c
legacy/embryo/src/bin/embryo_cc_sc1.c
legacy/embryo/src/bin/embryo_cc_sc5.c

index d5cb64e..dbf612f 100644 (file)
 #define sEXPMAX         19     /* maximum name length for file version <= 6 */
 #define sNAMEMAX        31     /* maximum name length of symbol name */
 
+#if defined (_MSC_VER) || (defined (__SUNPRO_C) && __SUNPRO_C < 0x5100)
+# pragma pack(1)
+# define EMBRYO_STRUCT_PACKED
+#elif defined (__GNUC__) || (defined (__SUNPRO_C) && __SUNPRO_C >= 0x5100)
+# define EMBRYO_STRUCT_PACKED __attribute__((packed))
+#else
+# define EMBRYO_STRUCT_PACKED
+#endif
+
    typedef struct tagAMX_FUNCSTUB
    {
       unsigned int        address;
       char                name[sEXPMAX + 1];
-   } __attribute__((packed)) AMX_FUNCSTUB;
+   } EMBRYO_STRUCT_PACKED AMX_FUNCSTUB;
 
 /* The AMX structure is the internal structure for many functions. Not all
  * fields are valid at all times; many fields are cached in local variables.
       cell reset_stk     ;
       cell reset_hea     ;
       cell          *syscall_d;        /* relocated value/address for the SYSCALL.D opcode */
-   } __attribute__((packed)) AMX;
+   } EMBRYO_STRUCT_PACKED AMX;
 
 /* The AMX_HEADER structure is both the memory format as the file format. The
  * structure is used internaly.
       int pubvars    ; /* the "public variables" table */
       int tags       ; /* the "public tagnames" table */
       int nametable  ; /* name table, file version 7 only */
-   } __attribute__((packed)) AMX_HEADER;
+   } EMBRYO_STRUCT_PACKED AMX_HEADER;
+
+#if defined _MSC_VER || (defined (__SUNPRO_C) && __SUNPRO_C < 0x5100)
+# pragma pack()
+#endif
+
 #define AMX_MAGIC       0xf1e0
 
    enum
index 3979693..5b1c0a0 100644 (file)
@@ -8,20 +8,23 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <unistd.h>
 #include <string.h>
 #include <sys/types.h>
 #include <dirent.h>
 #include <sys/stat.h>
 #include <sys/time.h>
-#include <sys/param.h>
 #include <math.h>
 #include <fnmatch.h>
 #include <limits.h>
 #include <ctype.h>
 #include <time.h>
 #include <dirent.h>
-#include <dlfcn.h>      /* dlopen,dlclose,etc */
+
+#ifndef _MSC_VER
+# include <unistd.h>
+# include <sys/param.h>
+#endif
+
 #ifdef HAVE_EVIL
 # include <Evil.h>      /* for realpath */
 #else
index c34688e..ef6e4f0 100644 (file)
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
+
+#ifndef _MSC_VER
+# include <unistd.h>
+#endif
+
 #ifdef HAVE_EVIL
 # include <Evil.h>
 #endif /* HAVE_EVIL */
index cc5fd4f..06cf7ae 100644 (file)
 # include <config.h>
 #endif
 
-#include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <string.h>
+
+#ifndef _MSC_VER
+# include <unistd.h>
+#endif
+
 #include "embryo_cc_sc.h"
 #include "embryo_cc_sc5.scp"