Support bidi reordering of unibyte strings. Fix crash displaying "All" in mode line...
[bpt/emacs.git] / nt / config.nt
index 7765919..c071baf 100644 (file)
@@ -337,6 +337,17 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 # define restrict
 #endif
 
+/* A va_copy replacement for MSVC.  */
+#ifdef _MSC_VER
+# ifdef _WIN64
+#  ifndef va_copy
+#   error "va_copy is needed, but not defined!"
+#  endif
+# else /* not _WIN64 */
+#  define va_copy(d,s) ((d) = (s))
+# endif         /* not _WIN64 */
+#endif  /* _MSC_VER */
+
 /* Define as a marker that can be attached to declarations that might not
     be used.  This helps to reduce warnings, such as from
     GCC -Wunused-parameter.  */
@@ -470,14 +481,29 @@ extern char *getenv ();
 #define BITS_PER_LONG 32
 #endif
 
-#if defined __MINGW32__ || 1400 <= _MSC_VER
-/* C99-style long long and "%lld" both work, so use them.  */
-# define BITS_PER_LONG_LONG 64
-#elif 1200 <= _MSC_VER
+#if defined(__MINGW32__) || _MSC_VER >= 1400
+
+/* Define to 1 if the system has the type `long long int'. */
+# define HAVE_LONG_LONG_INT 1
+
+/* Define to 1 if the system has the type `unsigned long long int'. */
+# define HAVE_UNSIGNED_LONG_LONG_INT 1
+
+#elif _MSC_VER >= 1200
+
+/* Temporarily disable wider-than-pointer integers until they're tested more.
+   Build with CFLAGS='-DWIDE_EMACS_INT' to try them out.  */
+/* #undef WIDE_EMACS_INT */
+
+# ifdef WIDE_EMACS_INT
+
 /* Use pre-C99-style 64-bit integers.  */
 # define EMACS_INT __int64
 # define BITS_PER_EMACS_INT 64
 # define pI "I64"
+
+# endif
+
 #endif
 
 #ifndef POINTER_TYPE