+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
 
+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.
 
+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.
 
     (dv       "Didier Verna"      "didier@xemacs.org")
     (eb       "Eric Benson"       "eb@xemacs.org")
     (fabrice  "Fabrice Popineau"  "fabrice@xemacs.org")
-    (golubev  "I N Golubev"       "golubev@xemacs.org")
+    (golubev  "Ilya Golubev"      "golubev@xemacs.org")
     (gunnar   "Gunnar Evermann"   "gunnar@xemacs.org")
     (hbs      "Harlan Sexton"     "hbs@xemacs.org")
     (hisashi  "Hisashi Miyashita" "hisashi@xemacs.org")
     (golubev
      (widget-insert
       "\
-Sorry, no personal information available about me yet.\n"))
+I appreciate power of XEmacs, but elementary editing operations should
+be done by single keystrokes with no modifiers.  So would not use
+XEmacs until discovered viper, and now can't live without viper.
+Occasionally dislike something in there or in other free software, and
+try to get it fixed.  .plan file contains classic (perhaps reinvented
+independently) formula:
+
+Hacking world for ever
+
+(borrowed from \"Hacking X for Y\" in ")
+     (about-url-link "http://www.jargon.org/"
+                    "Jargon File" "www.jargon.org")
+     (widget-insert ").\n"))
     (gunnar
      (widget-insert
       "\
     (golubev
      (widget-insert
       "\
-Sorry, no information about my XEmacs contributions yet.\n"))
+Used XEmacs since early 1997.  Fixed bugs that annoy me, both in
+XEmacs core and in packages I use, mostly viper.  Hoping to get
+coding-cookie package distributed, which is also a fix of what I
+consider a bug.\n"))
     (gunnar
      (widget-insert
       "\
 
     ;; then it would terminate the search and be executed without this.
     (let ((i 32)
          (str (make-string 1 0)))
+      ;; #### GR (and C1 too, in KOI8 and Windows-land at least) should
+      ;; be printing.  But that breaks on high-bit-is-meta brain-damage.
+      ;; At least in no-mule, the high bit is treated as a meta bit.
+      ;; With GR treated as printable in isearch, any meta command
+      ;; events will not be executed because they are treated as GR
+      ;; characters by isearch, but then there is an error because
+      ;; event-to-character (properly) returns nil.
       (while (< i 127)
        (aset str 0 i)
        (define-key map str 'isearch-printing-char)
 
                      (fboundp 'browse-url-kde))]
        ["Mo%_zilla"
         (customize-set-variable 'browse-url-browser-function
-                                'browse-url-gnome-moz)
+                                'browse-url-mozilla)
         :style radio
         :selected (and (boundp 'browse-url-browser-function)
-                       (eq browse-url-browser-function 'browse-url-gnome-moz))
+                       (eq browse-url-browser-function 'browse-url-mozilla))
         :active (and (boundp 'browse-url-browser-function)
-                     (fboundp 'browse-url-gnome-moz))]
+                     (fboundp 'browse-url-mozilla))]
        ["G%_aleon"
         (customize-set-variable 'browse-url-browser-function
                                 'browse-url-galeon)
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
+2003-01-14  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * lwlib-Xm.c (): Don't reference xm_update_progress
+       --without-widgets.  Thanks Martin Buchholz <martin@xemacs.org>.
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
       xm_update_scrollbar (instance, widget, val);
     }
 #endif
+#ifdef LWLIB_WIDGETS_MOTIF
   else if (class == xmScaleWidgetClass)
     {
       xm_update_progress (instance, widget, val);
     }
+#endif
   /* Lastly update our global arg values. */
   if (val->args && val->args->nargs)
     XtSetValues (widget, val->args->args, val->args->nargs);
 
+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.
 
+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 $
 
 
+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.
 
+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.
 
 cflags   = $(CFLAGS) $(cppflags)
 #if defined (WIN32_NATIVE) || defined (CYGWIN)
 ldflags  = $(LDFLAGS) -mwindows -e _mainCRTStartup $(ld_switch_all) $(ld_dynamic_link_flags)
+# if defined (CYGWIN)
+ldflags += -Wl,--script=s/cygwin.sc
+# endif
 #else
 ldflags  = $(LDFLAGS) $(ld_switch_all) $(ld_dynamic_link_flags)
 #endif
 
 #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;
 
 #endif
 
   set_descriptor_non_blocking (inchannel);
+  set_descriptor_non_blocking (outchannel);
 
   /* Record this as an active process, with its channels.
      As a result, child_setup will close Emacs's side of the pipes.  */
 
       /* 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 
     {
 
 /* Return the syntax code for a particular character and mirror table. */
 
 #define SYNTAX_CODE_UNSAFE(table, c) \
-   XINT (CHAR_TABLE_VALUE_UNSAFE (table, c))
+   ((enum syntaxcode) XINT (CHAR_TABLE_VALUE_UNSAFE (table, c)))
 
-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. */
 
 
 #include <a.out.h>
 #endif
 
+#define STACK_SIZE 0x800000
 #define ALLOC_UNIT 0xFFFF
 #define ALLOC_MASK ~((unsigned long)(ALLOC_UNIT))
 #define ALIGN_ALLOC(addr) \
     }
   f_ohdr.dsize=new_data_size;
   f_ohdr.bsize=BSS_PAD_SIZE;
+  /* Prevent stack overflow with regexp usage. */
+  f_ohdr.SizeOfStackReserve = STACK_SIZE;
+
   if (write(a_new, &f_ohdr, sizeof(f_ohdr)) != sizeof(f_ohdr))
     {
       PERROR("failed to write optional header");
 
+2003-01-15  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * XEmacs 21.4.12 "Portable Code" is released.
+
+2003-01-06  Stephen J. Turnbull  <stephen@xemacs.org>
+
+       * automated/regexp-tests.el (stale match data): Stale match data
+       persists after failed match.  Thanks to <bjacob@ca.metsci.com>.
+
 2003-01-03  Stephen J. Turnbull  <stephen@xemacs.org>
 
        * XEmacs 21.4.11 "Native Windows TTY Support" is released.
 
       (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"))))
 
 emacs_is_beta=
 emacs_major_version=21
 emacs_minor_version=4
-emacs_beta_version=11
-xemacs_codename="Native Windows TTY Support"
+emacs_beta_version=12
+xemacs_codename="Portable Code"
 emacs_kit_version=
 infodock_major_version=4
 infodock_minor_version=0