Subject: 24.3.93; Definition of strnicmp needed for Cygwin-w32 build

From: Ken Brown <[email-masked]>
Date: Sat, 30 Aug 2014 14:16:03 -0400

Cygwin's /usr/include/string.h, which comes from newlib, contains a 
definition of strnicmp; this is needed for the Cygwin-w32 build.  That 
definition has recently been dropped from newlib, and so it will be gone 
in the next Cygwin release.  The following patch fixes the problem.  Is 
it OK for the release branch?

=== modified file 'src/cygw32.h'
--- src/cygw32.h        2014-01-01 07:43:34 +0000
+++ src/cygw32.h        2014-08-30 17:51:36 +0000
@@ -33,6 +33,11 @@
  #include "lisp.h"
  #include "coding.h"

+/* The following was in /usr/include/string.h prior to Cygwin 1.7.33.  */
+#ifndef strnicmp
+#define strnicmp strncasecmp
+#endif
+
  extern void syms_of_cygw32 (void);
  extern char * w32_strerror (int error_no);

=== modified file 'src/w32font.c'
--- src/w32font.c       2014-01-19 15:42:48 +0000
+++ src/w32font.c       2014-08-30 17:47:35 +0000
@@ -35,6 +35,8 @@
  #include "w32font.h"
  #ifdef WINDOWSNT
  #include "w32.h"
+#else  /* CYGWIN */
+#include "cygw32.h"
  #endif

  /* Cleartype available on Windows XP, cleartype_natural from XP SP1.

=== modified file 'src/w32reg.c'
--- src/w32reg.c        2014-01-01 07:43:34 +0000
+++ src/w32reg.c        2014-08-30 17:47:35 +0000
@@ -26,6 +26,10 @@

  #include <stdio.h>

+#ifdef CYGWIN
+#include "cygw32.h"
+#endif
+
  #define REG_ROOT "SOFTWARE\\GNU\\Emacs"

  /* Default system colors from the Display Control Panel settings.  */