For more details, including developers involved and dates, see the
 ChangeLogs, or use CVS diff to view the patches.
 
+to 21.4.12 "Portable Code"
+
+-- Fix: Type typos (welcome back!) -- Martin Buchholz
+-- Fix: Cygwin link breakage with new binutils -- Sergey Okhapkin
+-- Fix: Cygwin: Bump stack size to 8MB for large regexps -- Andy Piper
+-- Fix: Cygwin build breakage from Ben's printing patch -- Rick Rankin
+-- Fix: Don't require GNOME for Mozilla -- Ville Skyttä
+-- Fix: nnimap hangs in process output -- Daiki Ueno
+-- Update: about.el information -- Ilya Golubev
+-- Update: More tests/automated/regexp-tests.el cases -- Stephen Turnbull
+
 to 21.4.11 "Native Windows TTY Support"
 
 -- (**) More menubar options for browse-url -- Ville Skyttä
 
        * configure.in: Add new option `--with-utf-2000'; define `UTF2000'
        if it is specified.
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
+2003-01-13  Ilya Golubev  <golubev@xemacs.org>
+
+       * etc/photos/golubev.png, etc/photos/golubevm.png: New.
+
+2003-01-05  Rick Rankin  <rick_rankin@yahoo.com>
+
+        * configure.in: Add -lkernel32 to the list of system libraries 
+        linked under Cygwin. Needed for IsBadReadPtr().
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
     fi
 
     install_pp="$blddir/lib-src/installexe.sh"
-    libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool\" to \$libs_system"; fi
+    libs_system="$libs_system -lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool\" to \$libs_system"; fi
     test "$with_dragndrop" != no && dragndrop_proto="$dragndrop_proto msw" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"msw\" to \$dragndrop_proto"; fi
     if test "$window_system" != x11; then
        window_system=msw
 
     fi
 
     install_pp="$blddir/lib-src/installexe.sh"
-    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lwinspool, libs_system)
+    XE_APPEND(-lshell32 -lgdi32 -luser32 -lcomdlg32 -lcomctl32 -lkernel32 -lwinspool, libs_system)
     test "$with_dragndrop" != no && XE_APPEND(msw, dragndrop_proto)
     if test "$window_system" != x11; then
        window_system=msw
 
        * files.el (insert-file-contents-literally): Treat file as binary;
        call file-name-handlers. [sync with Emacs 20.3.10]
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
+2003-01-13  Ilya Golubev  <golubev@xemacs.org>
+
+       * about.el: Update golubev data.
+
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * isearch-mode.el (isearch-mode-map): Substitute comment on
+       desirability, and back out "GR is printable" changes.
+
+2003-01-08  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * isearch-mode.el (isearch-mode-map): Don't bind CSI.
+
+2003-01-07  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * isearch-mode.el (isearch-mode-map): GR (and C1) is printable.
+
+2003-01-06  Ville Skyttä  <scop@xemacs.org>
+
+       * menubar-items.el (default-menubar): Use browse-url-mozilla
+       instead of browse-url-gnome-moz for Mozilla.
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
          japanese-jisx0208
          =jis-x0208-1990
          japanese-jisx0212
-         =jis-x0213-1-2000
-         =jis-x0213-2-2000
          japanese-jisx0208-1978
          chinese-gb2312
          korean-ksc5601
          chinese-cns11643-5
          chinese-cns11643-6
          chinese-cns11643-7
+         =jis-x0213-1-2000
+         =jis-x0213-2-2000
          ;; chinese-gb12345
          chinese-isoir165
          katakana-jisx0201
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
        * all: port from cygwin setup.
 
-%%% $Id: ChangeLog,v 1.2.2.19 2002/12/12 06:21:23 stephent Exp $
-$Revision: 1.2.2.19 $
+%%% $Id: ChangeLog,v 1.2.2.20 2003/01/03 10:49:30 stephent Exp $
+$Revision: 1.2.2.20 $
 
 
        (Vcharset_thai_tis620): Likewise.
        (Vcharset_katakana_jisx0201): Likewise.
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
+2003-01-14  Sergey Okhapkin <sos@prospect.com.ru>
+
+       * Makefile.in.in (ldflags): re-order sections for gcc 3.2.
+       * s/cygwin.sc: new linker file.
+
+2003-01-14  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       Build fixes courtesy Martin Buchholz <martin@xemacs.org>:
+
+       * redisplay-x.c (x_output_string): Use X11-specified types.
+       * syntax.c, syntax.h (SYNTAX_CODE): Use enum syntaxcode, not int.
+       * emacs.c (__free_hook): Use typeof with Intel compiler.
+       * config.h.in (alloca.h): Quick safe hack to please Intel compiler.
+
+2003-01-08  Andy Piper  <andy@xemacs.org>
+
+       * unexcw.c (copy_executable_and_dump_data_section): Set the stack
+       reserve size during unexec().
+
+2003-01-07  Daiki Ueno  <daiki@xemacs.org>
+
+       * process-unix.c (unix_create_process): Don't let outchannel block.
+
+2003-01-05  Rick Rankin  <rick_rankin@yahoo.com>
+
+        * emacs.c: Include "syswindows.h" when compiling under Cygwin.
+        Needed for IsBadReadPtr().
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
 #elif defined __DECC
 #include <alloca.h>
 #pragma intrinsic(alloca)
+#elif defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
+/* defer #include to end of file */
 #elif defined HAVE_ALLOCA_H
 #include <alloca.h>
 #elif defined(_AIX)
 
 #undef PDUMP
 
+#ifndef NOT_C_CODE
+#if defined __INTEL_COMPILER && defined HAVE_ALLOCA_H
+/* icc's alloca.h pulls in <features.h>,
+   but that must be done after _GNU_SOURCE and friends are defined */
+#include <alloca.h>
+#endif
+#endif /* C code */
+
 #endif /* _SRC_CONFIG_H_ */
 
 #include "sysfile.h"
 #include "systime.h"
 
+#ifdef CYGWIN
+#include "syswindows.h"
+#endif
+
 #ifdef PDUMP
 #include "dumper.h"
 #endif
   /* Disable all calls to free() when XEmacs is exiting and it doesn't */
   /* matter. */
   __free_hook =
-#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */
+#if defined __GNUC__ || defined __INTEL_COMPILER
+/* prototype of __free_hook varies with glibc version */
     (__typeof__ (__free_hook))
 #endif
     voodoo_free_hook;
 
 #if defined(GNU_MALLOC)
   __free_hook =
-#ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */
+#if defined __GNUC__ || defined __INTEL_COMPILER
+/* prototype of __free_hook varies with glibc version */
     (__typeof__ (__free_hook))
 #endif
     voodoo_free_hook;
 
       /* We draw underlines in the same color as the text. */
       if (cachel->underline)
        {
-         long upos;
-         long uthick;
+         unsigned long upos;
+         unsigned long uthick;
          XFontStruct *xfont;
 
          xfont = FONT_INSTANCE_X_FONT (XFONT_INSTANCE (font));
 
   else if (CONSP (tmp_table) && INTP (XCAR (tmp_table)))
     {
       syntax_cache.use_code = 1;
-      syntax_cache.syntax_code = XINT (XCAR(tmp_table));
+      syntax_cache.syntax_code = (enum syntaxcode) XINT (XCAR (tmp_table));
     }
   else 
     {
 
 /* Declarations having to do with XEmacs syntax tables.
    Copyright (C) 1985, 1992, 1993 Free Software Foundation, Inc.
-   Copyright (C) 2001 MORIOKA Tomohiko
+   Copyright (C) 2001,2003 MORIOKA Tomohiko
 
 This file is part of XEmacs.
 
 /* Return the syntax code for a particular character and mirror table. */
 
 #ifdef UTF2000
-INLINE_HEADER int SYNTAX_CODE_UNSAFE (Lisp_Char_Table *table, Emchar c);
-INLINE_HEADER int
+INLINE_HEADER enum syntaxcode
+SYNTAX_CODE_UNSAFE (Lisp_Char_Table *table, Emchar c);
+INLINE_HEADER enum syntaxcode
 SYNTAX_CODE_UNSAFE (Lisp_Char_Table *table, Emchar c)
 {
   int code = CHAR_TABLE_VALUE_UNSAFE (table, c);
 }
 #else
 #define SYNTAX_CODE_UNSAFE(table, c) \
-   XINT (CHAR_TABLE_VALUE_UNSAFE (table, c))
+   ((enum syntaxcode) XINT (CHAR_TABLE_VALUE_UNSAFE (table, c)))
 #endif
 
-INLINE_HEADER int SYNTAX_CODE (Lisp_Char_Table *table, Emchar c);
-INLINE_HEADER int
+INLINE_HEADER enum syntaxcode SYNTAX_CODE (Lisp_Char_Table *table, Emchar c);
+INLINE_HEADER enum syntaxcode
 SYNTAX_CODE (Lisp_Char_Table *table, Emchar c)
 {
   return SYNTAX_CODE_UNSAFE (table, c);
                                           syntax table to the cache. */
   Lisp_Object object;                  /* The buffer or string the current
                                           syntax cache applies to. */
-  int syntax_code;                     /* Syntax code of current char. */
+  enum syntaxcode syntax_code;         /* Syntax code of current char. */
   Lisp_Object current_syntax_table;    /* Syntax table for current pos. */
   Lisp_Object old_prop;                        /* Syntax-table prop at prev pos. */
 
 
       (Assert (not (string-match "@[A]" (string ?@ ch1))))
       (Assert (eq (string-match "@[^A]" (string ?@ ch1)) 0))
       (Assert (not (string-match "@?A" (string ?@ ch1))))))
+
+;; More stale match data tests.
+;; Thanks to <bjacob@ca.metsci.com>.
+(Assert (not (progn (string-match "a" "a")
+                   (string-match "b" "a")
+                   (match-string 0 "a"))))
+(Assert (not (progn (string-match "a" "a")
+                   (string-match "b" "a")
+                   (match-string 1 "a"))))
+(Assert (not (progn (string-match "\\(a\\)" "a")
+                   (string-match "\\(b\\)" "a")
+                   (match-string 0 "a"))))
+(Assert (not (progn (string-match "\\(a\\)" "a")
+                   (string-match "\\(b\\)" "a")
+                   (match-string 1 "a"))))